From 699b7f09d496fed97eff4ad0c585ec69ee0623ff Mon Sep 17 00:00:00 2001 From: Tropicalista Date: Wed, 23 Oct 2024 07:37:28 +0200 Subject: [PATCH] pre cleanup --- build/admin.asset.php | 2 +- build/admin.js | 113 +- build/admin.js.map | 2 +- build/blocks/button/block.json | 10 +- build/blocks/button/index.asset.php | 2 +- build/blocks/button/index.js | 10 +- build/blocks/button/index.js.map | 2 +- build/blocks/button/render.php | 12 +- build/blocks/button/style-index-rtl.css | 1 + build/blocks/button/style-index.css | 1 + build/blocks/button/style-index.css.map | 2 +- build/blocks/fieldset/block.json | 19 + build/blocks/fieldset/index.asset.php | 2 +- build/blocks/fieldset/index.js | 2 +- build/blocks/form/index-rtl.css | 5 + build/blocks/form/index.asset.php | 2 +- build/blocks/form/index.css | 5 + build/blocks/form/index.css.map | 2 +- build/blocks/form/index.js | 5 +- build/blocks/form/index.js.map | 2 +- build/blocks/form/style-index-rtl.css | 65 +- build/blocks/form/style-index.css | 65 +- build/blocks/form/style-index.css.map | 2 +- build/blocks/input/block.json | 5 + build/blocks/input/index.asset.php | 2 +- build/blocks/input/index.js | 40 +- build/blocks/input/index.js.map | 2 +- build/blocks/input/render.php | 24 +- build/blocks/input/style-index-rtl.css | 7 +- build/blocks/input/style-index.css | 7 +- build/blocks/input/style-index.css.map | 2 +- build/blocks/library/index.asset.php | 2 +- build/blocks/library/index.js | 6 +- build/blocks/library/index.js.map | 2 +- build/blocks/library/view.asset.php | 2 +- build/blocks/library/view.js | 62 +- build/blocks/library/view.js.map | 2 +- build/blocks/multichoices/block.json | 15 + build/blocks/multichoices/index.asset.php | 2 +- build/blocks/multichoices/index.js | 178 +- build/blocks/multichoices/index.js.map | 2 +- build/blocks/output/block.json | 3 + build/blocks/output/index.asset.php | 2 +- build/blocks/output/index.js | 2 +- build/blocks/select/block.json | 22 + build/blocks/select/index.asset.php | 2 +- build/blocks/select/index.js | 77 +- build/blocks/select/index.js.map | 2 +- build/blocks/select/render.php | 22 + build/blocks/textarea/block.json | 3 + build/blocks/textarea/index.asset.php | 2 +- build/blocks/textarea/index.js | 41 +- build/blocks/textarea/index.js.map | 2 +- build/blocks/textarea/render.php | 11 +- build/form-settings.asset.php | 2 +- build/form-settings.js | 105 +- build/form-settings.js.map | 2 +- build/style-admin-rtl.css | 9 + build/style-admin.css | 9 + build/style-admin.css.map | 2 +- composer.json | 3 +- composer.lock | 278 +- formello.php | 4 +- includes/Actions/Action.php | 5 +- includes/Actions/Email.php | 7 +- includes/Activator.php | 2 +- includes/Admin.php | 11 - includes/Blocks.php | 23 +- includes/Deactivator.php | 1 - includes/Frontend.php | 5 +- includes/I18n.php | 2 +- includes/Loader.php | 65 +- includes/Log.php | 110 + includes/OLD/Utils/functions.php | 21 +- includes/Plugin.php | 9 + includes/Rest/Base.php | 2 +- includes/Rest/{Template.php => Importer.php} | 46 +- includes/Rest/License.php | 2 +- includes/Rest/Submissions.php | 8 +- includes/TagReplacers/Fields.php | 2 +- includes/Utils/functions.php | 19 +- includes/Utils/register-cpt.php | 20 +- includes/Validators/MaxLengthRule.php | 72 +- includes/Validators/MinLengthRule.php | 72 +- phpcs.xml.dist | 14 +- src/admin/pages/submission/fields-data.js | 11 +- src/admin/pages/submission/index.js | 49 +- src/admin/pages/submission/submission-data.js | 3 +- src/admin/pages/submissions/forms.js | 21 +- src/admin/pages/submissions/submissions.js | 31 +- src/admin/pages/submissions/test.ts | 165 + src/admin/pages/tools/tabs/exporter.js | 8 +- src/admin/style.scss | 9 + src/blocks/button/block.json | 10 +- src/blocks/button/edit.js | 3 +- src/blocks/button/render.php | 12 +- src/blocks/button/save.js | 7 +- src/blocks/button/style.scss | 1 + src/blocks/fieldset/block.json | 19 + src/blocks/form/editor.scss | 5 + src/blocks/form/style.scss | 69 +- src/blocks/input/block.json | 5 + src/blocks/input/edit.js | 2 +- src/blocks/input/render.php | 24 +- src/blocks/input/style.scss | 9 +- src/blocks/input/use-field-props.js | 1 - src/blocks/library/config.js | 2 +- src/blocks/library/edit.js | 2 + src/blocks/library/view.js | 55 +- src/blocks/multichoices/block.json | 11 + src/blocks/multichoices/edit.js | 3 +- src/blocks/output/block.json | 1 + src/blocks/select/block.json | 16 + src/blocks/select/edit.js | 2 +- src/blocks/select/opts.js | 56 +- src/blocks/select/render.php | 22 + src/blocks/select/save.js | 2 +- src/blocks/textarea/block.json | 1 + src/blocks/textarea/edit.js | 3 +- src/blocks/textarea/render.php | 11 +- src/components/field-options/index.js | 9 + src/components/field-options/toolbar.js | 20 +- src/components/field-options/validation.js | 4 +- src/components/inline-edit.js | 32 + src/components/merge-tags/functions.js | 2 +- src/components/merge-tags/tab-content.js | 6 +- src/form-settings/settings/actions.js | 1 + src/form-settings/settings/basic.js | 5 +- vendor/appsero/client/readme.md | 2 +- vendor/appsero/client/src/Client.php | 22 +- vendor/appsero/client/src/Insights.php | 722 ++- vendor/autoload.php | 2 +- vendor/bin/phpunit | 123 + vendor/bin/phpunit.bat | 5 + vendor/composer/autoload_classmap.php | 548 ++ vendor/composer/autoload_files.php | 3 + vendor/composer/autoload_psr4.php | 8 + vendor/composer/autoload_real.php | 10 +- vendor/composer/autoload_static.php | 610 +- vendor/composer/installed.json | 2253 +++++++- vendor/composer/installed.php | 326 +- vendor/doctrine/deprecations/LICENSE | 19 + vendor/doctrine/deprecations/README.md | 157 + vendor/doctrine/deprecations/composer.json | 38 + .../lib/Doctrine/Deprecations/Deprecation.php | 313 + .../PHPUnit/VerifyDeprecations.php | 66 + .../instantiator/.doctrine-project.json | 47 + vendor/doctrine/instantiator/CONTRIBUTING.md | 35 + vendor/doctrine/instantiator/LICENSE | 19 + vendor/doctrine/instantiator/README.md | 38 + vendor/doctrine/instantiator/composer.json | 48 + .../doctrine/instantiator/docs/en/index.rst | 68 + .../doctrine/instantiator/docs/en/sidebar.rst | 4 + vendor/doctrine/instantiator/psalm.xml | 16 + .../Exception/ExceptionInterface.php | 12 + .../Exception/InvalidArgumentException.php | 50 + .../Exception/UnexpectedValueException.php | 59 + .../Doctrine/Instantiator/Instantiator.php | 262 + .../Instantiator/InstantiatorInterface.php | 24 + vendor/katzgrau/klogger/src/Logger.php | 698 +-- vendor/myclabs/deep-copy/LICENSE | 20 + vendor/myclabs/deep-copy/README.md | 406 ++ vendor/myclabs/deep-copy/composer.json | 43 + .../deep-copy/src/DeepCopy/DeepCopy.php | 313 + .../src/DeepCopy/Exception/CloneException.php | 9 + .../DeepCopy/Exception/PropertyException.php | 9 + .../src/DeepCopy/Filter/ChainableFilter.php | 24 + .../Doctrine/DoctrineCollectionFilter.php | 33 + .../DoctrineEmptyCollectionFilter.php | 28 + .../Filter/Doctrine/DoctrineProxyFilter.php | 22 + .../deep-copy/src/DeepCopy/Filter/Filter.php | 18 + .../src/DeepCopy/Filter/KeepFilter.php | 16 + .../src/DeepCopy/Filter/ReplaceFilter.php | 39 + .../src/DeepCopy/Filter/SetNullFilter.php | 24 + .../Matcher/Doctrine/DoctrineProxyMatcher.php | 22 + .../src/DeepCopy/Matcher/Matcher.php | 14 + .../src/DeepCopy/Matcher/PropertyMatcher.php | 39 + .../DeepCopy/Matcher/PropertyNameMatcher.php | 32 + .../DeepCopy/Matcher/PropertyTypeMatcher.php | 52 + .../DeepCopy/Reflection/ReflectionHelper.php | 78 + .../TypeFilter/Date/DateIntervalFilter.php | 33 + .../src/DeepCopy/TypeFilter/ReplaceFilter.php | 30 + .../DeepCopy/TypeFilter/ShallowCopyFilter.php | 17 + .../TypeFilter/Spl/ArrayObjectFilter.php | 36 + .../TypeFilter/Spl/SplDoublyLinkedList.php | 10 + .../Spl/SplDoublyLinkedListFilter.php | 51 + .../src/DeepCopy/TypeFilter/TypeFilter.php | 13 + .../src/DeepCopy/TypeMatcher/TypeMatcher.php | 29 + .../deep-copy/src/DeepCopy/deep_copy.php | 20 + vendor/phar-io/manifest/.gitignore | 7 + vendor/phar-io/manifest/.php_cs | 67 + vendor/phar-io/manifest/.travis.yml | 33 + vendor/phar-io/manifest/LICENSE | 31 + vendor/phar-io/manifest/README.md | 30 + vendor/phar-io/manifest/build.xml | 50 + vendor/phar-io/manifest/composer.json | 42 + vendor/phar-io/manifest/composer.lock | 69 + .../phar-io/manifest/examples/example-01.php | 23 + vendor/phar-io/manifest/phive.xml | 4 + vendor/phar-io/manifest/phpunit.xml | 20 + .../manifest/src/ManifestDocumentMapper.php | 193 + .../phar-io/manifest/src/ManifestLoader.php | 66 + .../manifest/src/ManifestSerializer.php | 163 + .../manifest/src/exceptions/Exception.php | 14 + .../InvalidApplicationNameException.php | 16 + .../src/exceptions/InvalidEmailException.php | 14 + .../src/exceptions/InvalidUrlException.php | 14 + .../exceptions/ManifestDocumentException.php | 6 + .../ManifestDocumentMapperException.php | 6 + .../exceptions/ManifestElementException.php | 6 + .../exceptions/ManifestLoaderException.php | 6 + .../manifest/src/values/Application.php | 20 + .../manifest/src/values/ApplicationName.php | 65 + vendor/phar-io/manifest/src/values/Author.php | 57 + .../manifest/src/values/AuthorCollection.php | 43 + .../src/values/AuthorCollectionIterator.php | 56 + .../manifest/src/values/BundledComponent.php | 48 + .../src/values/BundledComponentCollection.php | 43 + .../BundledComponentCollectionIterator.php | 56 + .../src/values/CopyrightInformation.php | 42 + vendor/phar-io/manifest/src/values/Email.php | 47 + .../phar-io/manifest/src/values/Extension.php | 75 + .../phar-io/manifest/src/values/Library.php | 20 + .../phar-io/manifest/src/values/License.php | 42 + .../phar-io/manifest/src/values/Manifest.php | 138 + .../src/values/PhpExtensionRequirement.php | 32 + .../src/values/PhpVersionRequirement.php | 31 + .../manifest/src/values/Requirement.php | 14 + .../src/values/RequirementCollection.php | 43 + .../values/RequirementCollectionIterator.php | 56 + vendor/phar-io/manifest/src/values/Type.php | 60 + vendor/phar-io/manifest/src/values/Url.php | 47 + .../manifest/src/xml/AuthorElement.php | 21 + .../src/xml/AuthorElementCollection.php | 19 + .../manifest/src/xml/BundlesElement.php | 19 + .../manifest/src/xml/ComponentElement.php | 21 + .../src/xml/ComponentElementCollection.php | 19 + .../manifest/src/xml/ContainsElement.php | 31 + .../manifest/src/xml/CopyrightElement.php | 25 + .../manifest/src/xml/ElementCollection.php | 58 + .../phar-io/manifest/src/xml/ExtElement.php | 17 + .../manifest/src/xml/ExtElementCollection.php | 20 + .../manifest/src/xml/ExtensionElement.php | 21 + .../manifest/src/xml/LicenseElement.php | 21 + .../manifest/src/xml/ManifestDocument.php | 118 + .../xml/ManifestDocumentLoadingException.php | 48 + .../manifest/src/xml/ManifestElement.php | 100 + .../phar-io/manifest/src/xml/PhpElement.php | 27 + .../manifest/src/xml/RequiresElement.php | 19 + .../tests/ManifestDocumentMapperTest.php | 110 + .../manifest/tests/ManifestLoaderTest.php | 83 + .../manifest/tests/ManifestSerializerTest.php | 114 + .../manifest/tests/_fixture/custom.xml | 10 + .../_fixture/extension-invalidcompatible.xml | 13 + .../manifest/tests/_fixture/extension.xml | 13 + .../tests/_fixture/invalidversion.xml | 11 + .../_fixture/invalidversionconstraint.xml | 11 + .../manifest/tests/_fixture/library.xml | 11 + .../manifest/tests/_fixture/manifest.xml | 11 + .../manifest/tests/_fixture/phpunit-5.6.5.xml | 46 + .../phar-io/manifest/tests/_fixture/test.phar | Bin 0 -> 7165 bytes .../ManifestDocumentLoadingExceptionTest.php | 19 + .../tests/values/ApplicationNameTest.php | 57 + .../manifest/tests/values/ApplicationTest.php | 44 + .../tests/values/AuthorCollectionTest.php | 62 + .../manifest/tests/values/AuthorTest.php | 45 + .../values/BundledComponentCollectionTest.php | 63 + .../tests/values/BundledComponentTest.php | 42 + .../tests/values/CopyrightInformationTest.php | 62 + .../manifest/tests/values/EmailTest.php | 35 + .../manifest/tests/values/ExtensionTest.php | 109 + .../manifest/tests/values/LibraryTest.php | 44 + .../manifest/tests/values/LicenseTest.php | 41 + .../manifest/tests/values/ManifestTest.php | 187 + .../values/PhpExtensionRequirementTest.php | 26 + .../values/PhpVersionRequirementTest.php | 38 + .../values/RequirementCollectionTest.php | 63 + .../phar-io/manifest/tests/values/UrlTest.php | 35 + .../tests/xml/AuthorElementCollectionTest.php | 18 + .../manifest/tests/xml/AuthorElementTest.php | 25 + .../manifest/tests/xml/BundlesElementTest.php | 41 + .../xml/ComponentElementCollectionTest.php | 18 + .../tests/xml/ComponentElementTest.php | 25 + .../tests/xml/ContainsElementTest.php | 63 + .../tests/xml/CopyrightElementTest.php | 52 + .../tests/xml/ExtElementCollectionTest.php | 19 + .../manifest/tests/xml/ExtElementTest.php | 21 + .../tests/xml/ExtensionElementTest.php | 25 + .../manifest/tests/xml/LicenseElementTest.php | 25 + .../tests/xml/ManifestDocumentTest.php | 110 + .../manifest/tests/xml/PhpElementTest.php | 48 + .../tests/xml/RequiresElementTest.php | 37 + vendor/phar-io/version/.gitignore | 7 + vendor/phar-io/version/.php_cs | 67 + vendor/phar-io/version/.travis.yml | 33 + vendor/phar-io/version/CHANGELOG.md | 44 + vendor/phar-io/version/LICENSE | 31 + vendor/phar-io/version/README.md | 61 + vendor/phar-io/version/build.xml | 41 + vendor/phar-io/version/composer.json | 34 + vendor/phar-io/version/phive.xml | 5 + vendor/phar-io/version/phpunit.xml | 19 + .../phar-io/version/src/PreReleaseSuffix.php | 95 + vendor/phar-io/version/src/Version.php | 175 + .../version/src/VersionConstraintParser.php | 122 + .../version/src/VersionConstraintValue.php | 123 + vendor/phar-io/version/src/VersionNumber.php | 41 + .../constraints/AbstractVersionConstraint.php | 32 + .../constraints/AndVersionConstraintGroup.php | 43 + .../src/constraints/AnyVersionConstraint.php | 29 + .../constraints/ExactVersionConstraint.php | 22 + .../GreaterThanOrEqualToVersionConstraint.php | 38 + .../constraints/OrVersionConstraintGroup.php | 43 + ...SpecificMajorAndMinorVersionConstraint.php | 48 + .../SpecificMajorVersionConstraint.php | 37 + .../src/constraints/VersionConstraint.php | 26 + .../version/src/exceptions/Exception.php | 14 + .../InvalidPreReleaseSuffixException.php | 7 + .../exceptions/InvalidVersionException.php | 6 + .../UnsupportedVersionConstraintException.php | 14 + .../VersionConstraintParserTest.php | 146 + .../Unit/AbstractVersionConstraintTest.php | 25 + .../Unit/AndVersionConstraintGroupTest.php | 52 + .../tests/Unit/AnyVersionConstraintTest.php | 41 + .../tests/Unit/ExactVersionConstraintTest.php | 58 + ...aterThanOrEqualToVersionConstraintTest.php | 47 + .../Unit/OrVersionConstraintGroupTest.php | 65 + .../tests/Unit/PreReleaseSuffixTest.php | 46 + ...ificMajorAndMinorVersionConstraintTest.php | 45 + .../SpecificMajorVersionConstraintTest.php | 44 + .../version/tests/Unit/VersionTest.php | 113 + .../reflection-common/.github/dependabot.yml | 7 + .../.github/workflows/push.yml | 223 + .../phpdocumentor/reflection-common/LICENSE | 22 + .../phpdocumentor/reflection-common/README.md | 11 + .../reflection-common/composer.json | 28 + .../reflection-common/src/Element.php | 30 + .../reflection-common/src/File.php | 35 + .../reflection-common/src/Fqsen.php | 89 + .../reflection-common/src/Location.php | 53 + .../reflection-common/src/Project.php | 25 + .../reflection-common/src/ProjectFactory.php | 28 + .../phpdocumentor/reflection-docblock/LICENSE | 21 + .../reflection-docblock/README.md | 74 + .../reflection-docblock/composer.json | 57 + .../reflection-docblock/src/DocBlock.php | 228 + .../src/DocBlock/Description.php | 118 + .../src/DocBlock/DescriptionFactory.php | 178 + .../src/DocBlock/ExampleFinder.php | 158 + .../src/DocBlock/Serializer.php | 156 + .../src/DocBlock/StandardTagFactory.php | 364 ++ .../reflection-docblock/src/DocBlock/Tag.php | 31 + .../src/DocBlock/TagFactory.php | 73 + .../src/DocBlock/Tags/Author.php | 102 + .../src/DocBlock/Tags/BaseTag.php | 53 + .../src/DocBlock/Tags/Covers.php | 99 + .../src/DocBlock/Tags/Deprecated.php | 108 + .../src/DocBlock/Tags/Example.php | 197 + .../Tags/Factory/AbstractPHPStanFactory.php | 122 + .../src/DocBlock/Tags/Factory/Factory.php | 41 + .../DocBlock/Tags/Factory/MethodFactory.php | 81 + .../DocBlock/Tags/Factory/PHPStanFactory.php | 16 + .../DocBlock/Tags/Factory/ParamFactory.php | 92 + .../DocBlock/Tags/Factory/PropertyFactory.php | 54 + .../Tags/Factory/PropertyReadFactory.php | 54 + .../Tags/Factory/PropertyWriteFactory.php | 54 + .../DocBlock/Tags/Factory/ReturnFactory.php | 52 + .../DocBlock/Tags/Factory/StaticMethod.php | 25 + .../src/DocBlock/Tags/Factory/VarFactory.php | 54 + .../src/DocBlock/Tags/Formatter.php | 24 + .../Tags/Formatter/AlignFormatter.php | 50 + .../Tags/Formatter/PassthroughFormatter.php | 30 + .../src/DocBlock/Tags/Generic.php | 89 + .../src/DocBlock/Tags/InvalidTag.php | 142 + .../src/DocBlock/Tags/Link.php | 76 + .../src/DocBlock/Tags/Method.php | 358 ++ .../src/DocBlock/Tags/MethodParameter.php | 67 + .../src/DocBlock/Tags/Param.php | 185 + .../src/DocBlock/Tags/Property.php | 132 + .../src/DocBlock/Tags/PropertyRead.php | 132 + .../src/DocBlock/Tags/PropertyWrite.php | 132 + .../src/DocBlock/Tags/Reference/Fqsen.php | 37 + .../src/DocBlock/Tags/Reference/Reference.php | 22 + .../src/DocBlock/Tags/Reference/Url.php | 35 + .../src/DocBlock/Tags/Return_.php | 76 + .../src/DocBlock/Tags/See.php | 104 + .../src/DocBlock/Tags/Since.php | 102 + .../src/DocBlock/Tags/Source.php | 115 + .../src/DocBlock/Tags/TagWithType.php | 74 + .../src/DocBlock/Tags/Throws.php | 64 + .../src/DocBlock/Tags/Uses.php | 98 + .../src/DocBlock/Tags/Var_.php | 132 + .../src/DocBlock/Tags/Version.php | 105 + .../src/DocBlockFactory.php | 313 + .../src/DocBlockFactoryInterface.php | 23 + .../src/Exception/PcreException.php | 44 + .../reflection-docblock/src/Utils.php | 62 + vendor/phpdocumentor/type-resolver/LICENSE | 21 + vendor/phpdocumentor/type-resolver/README.md | 177 + .../phpdocumentor/type-resolver/composer.json | 51 + .../type-resolver/src/FqsenResolver.php | 80 + .../type-resolver/src/PseudoType.php | 19 + .../src/PseudoTypes/ArrayShape.php | 52 + .../src/PseudoTypes/ArrayShapeItem.php | 65 + .../src/PseudoTypes/CallableString.php | 39 + .../src/PseudoTypes/ConstExpression.php | 55 + .../type-resolver/src/PseudoTypes/False_.php | 40 + .../src/PseudoTypes/FloatValue.php | 45 + .../src/PseudoTypes/HtmlEscapedString.php | 39 + .../src/PseudoTypes/IntegerRange.php | 61 + .../src/PseudoTypes/IntegerValue.php | 45 + .../type-resolver/src/PseudoTypes/List_.php | 50 + .../src/PseudoTypes/LiteralString.php | 39 + .../src/PseudoTypes/LowercaseString.php | 39 + .../src/PseudoTypes/NegativeInteger.php | 39 + .../src/PseudoTypes/NonEmptyList.php | 50 + .../PseudoTypes/NonEmptyLowercaseString.php | 39 + .../src/PseudoTypes/NonEmptyString.php | 39 + .../src/PseudoTypes/NumericString.php | 39 + .../src/PseudoTypes/Numeric_.php | 47 + .../src/PseudoTypes/PositiveInteger.php | 39 + .../src/PseudoTypes/StringValue.php | 47 + .../src/PseudoTypes/TraitString.php | 39 + .../type-resolver/src/PseudoTypes/True_.php | 40 + .../phpdocumentor/type-resolver/src/Type.php | 25 + .../type-resolver/src/TypeResolver.php | 634 ++ .../type-resolver/src/Types/AbstractList.php | 83 + .../src/Types/AggregatedType.php | 125 + .../type-resolver/src/Types/ArrayKey.php | 42 + .../type-resolver/src/Types/Array_.php | 29 + .../type-resolver/src/Types/Boolean.php | 32 + .../src/Types/CallableParameter.php | 77 + .../type-resolver/src/Types/Callable_.php | 57 + .../type-resolver/src/Types/ClassString.php | 62 + .../type-resolver/src/Types/Collection.php | 68 + .../type-resolver/src/Types/Compound.php | 38 + .../type-resolver/src/Types/Context.php | 95 + .../src/Types/ContextFactory.php | 422 ++ .../type-resolver/src/Types/Expression.php | 51 + .../type-resolver/src/Types/Float_.php | 32 + .../type-resolver/src/Types/Integer.php | 32 + .../src/Types/InterfaceString.php | 56 + .../type-resolver/src/Types/Intersection.php | 37 + .../type-resolver/src/Types/Iterable_.php | 38 + .../type-resolver/src/Types/Mixed_.php | 32 + .../type-resolver/src/Types/Never_.php | 35 + .../type-resolver/src/Types/Null_.php | 32 + .../type-resolver/src/Types/Nullable.php | 51 + .../type-resolver/src/Types/Object_.php | 69 + .../type-resolver/src/Types/Parent_.php | 34 + .../type-resolver/src/Types/Resource_.php | 32 + .../type-resolver/src/Types/Scalar.php | 32 + .../type-resolver/src/Types/Self_.php | 34 + .../type-resolver/src/Types/Static_.php | 39 + .../type-resolver/src/Types/String_.php | 32 + .../type-resolver/src/Types/This.php | 35 + .../type-resolver/src/Types/Void_.php | 35 + vendor/phpspec/prophecy/CHANGES.md | 344 ++ vendor/phpspec/prophecy/LICENSE | 23 + vendor/phpspec/prophecy/README.md | 411 ++ vendor/phpspec/prophecy/composer.json | 62 + .../prophecy/src/Prophecy/Argument.php | 240 + .../Prophecy/Argument/ArgumentsWildcard.php | 104 + .../Prophecy/Argument/Token/AnyValueToken.php | 52 + .../Argument/Token/AnyValuesToken.php | 52 + .../Argument/Token/ApproximateValueToken.php | 63 + .../Argument/Token/ArrayCountToken.php | 88 + .../Argument/Token/ArrayEntryToken.php | 152 + .../Argument/Token/ArrayEveryEntryToken.php | 82 + .../Prophecy/Argument/Token/CallbackToken.php | 86 + .../Argument/Token/ExactValueToken.php | 124 + .../Argument/Token/IdenticalValueToken.php | 76 + .../Prophecy/Argument/Token/InArrayToken.php | 74 + .../Argument/Token/LogicalAndToken.php | 83 + .../Argument/Token/LogicalNotToken.php | 73 + .../Argument/Token/NotInArrayToken.php | 75 + .../Argument/Token/ObjectStateToken.php | 104 + .../Argument/Token/StringContainsToken.php | 67 + .../Argument/Token/TokenInterface.php | 43 + .../src/Prophecy/Argument/Token/TypeToken.php | 76 + .../prophecy/src/Prophecy/Call/Call.php | 171 + .../prophecy/src/Prophecy/Call/CallCenter.php | 256 + .../Prophecy/Comparator/ClosureComparator.php | 60 + .../src/Prophecy/Comparator/Factory.php | 49 + .../Prophecy/Comparator/FactoryProvider.php | 42 + .../Comparator/ProphecyComparator.php | 46 + .../src/Prophecy/Doubler/CachedDoubler.php | 69 + .../ClassPatch/ClassPatchInterface.php | 48 + .../ClassPatch/DisableConstructorPatch.php | 77 + .../Doubler/ClassPatch/KeywordPatch.php | 68 + .../Doubler/ClassPatch/MagicCallPatch.php | 105 + .../ClassPatch/ProphecySubjectPatch.php | 114 + .../ReflectionClassNewInstancePatch.php | 59 + .../Doubler/ClassPatch/SplFileInfoPatch.php | 121 + .../Doubler/ClassPatch/ThrowablePatch.php | 95 + .../Doubler/ClassPatch/TraversablePatch.php | 98 + .../src/Prophecy/Doubler/DoubleInterface.php | 22 + .../prophecy/src/Prophecy/Doubler/Doubler.php | 147 + .../Doubler/Generator/ClassCodeGenerator.php | 119 + .../Doubler/Generator/ClassCreator.php | 62 + .../Doubler/Generator/ClassMirror.php | 290 + .../Doubler/Generator/Node/ArgumentNode.php | 187 + .../Generator/Node/ArgumentTypeNode.php | 10 + .../Doubler/Generator/Node/ClassNode.php | 242 + .../Doubler/Generator/Node/MethodNode.php | 263 + .../Doubler/Generator/Node/ReturnTypeNode.php | 47 + .../Generator/Node/TypeNodeAbstract.php | 117 + .../Doubler/Generator/ReflectionInterface.php | 22 + .../Doubler/Generator/TypeHintReference.php | 53 + .../src/Prophecy/Doubler/LazyDouble.php | 152 + .../src/Prophecy/Doubler/NameGenerator.php | 55 + .../Call/UnexpectedCallException.php | 52 + .../Doubler/ClassCreatorException.php | 38 + .../Doubler/ClassMirrorException.php | 38 + .../Doubler/ClassNotFoundException.php | 36 + .../Exception/Doubler/DoubleException.php | 18 + .../Exception/Doubler/DoublerException.php | 18 + .../Doubler/InterfaceNotFoundException.php | 23 + .../Doubler/MethodNotExtendableException.php | 41 + .../Doubler/MethodNotFoundException.php | 71 + .../Doubler/ReturnByReferenceException.php | 47 + .../src/Prophecy/Exception/Exception.php | 22 + .../Exception/InvalidArgumentException.php | 16 + .../Prediction/AggregateException.php | 65 + .../Prediction/FailedPredictionException.php | 24 + .../Exception/Prediction/NoCallsException.php | 18 + .../Prediction/PredictionException.php | 18 + .../UnexpectedCallsCountException.php | 41 + .../Prediction/UnexpectedCallsException.php | 41 + .../Prophecy/MethodProphecyException.php | 37 + .../Prophecy/ObjectProphecyException.php | 38 + .../Exception/Prophecy/ProphecyException.php | 18 + .../ClassAndInterfaceTagRetriever.php | 63 + .../PhpDocumentor/ClassTagRetriever.php | 55 + .../MethodTagRetrieverInterface.php | 29 + .../Prophecy/Prediction/CallPrediction.php | 72 + .../Prediction/CallTimesPrediction.php | 94 + .../Prediction/CallbackPrediction.php | 57 + .../Prophecy/Prediction/NoCallsPrediction.php | 54 + .../Prediction/PredictionInterface.php | 38 + .../src/Prophecy/Promise/CallbackPromise.php | 58 + .../src/Prophecy/Promise/PromiseInterface.php | 35 + .../Promise/ReturnArgumentPromise.php | 52 + .../src/Prophecy/Promise/ReturnPromise.php | 46 + .../src/Prophecy/Promise/ThrowPromise.php | 93 + .../src/Prophecy/Prophecy/MethodProphecy.php | 623 ++ .../src/Prophecy/Prophecy/ObjectProphecy.php | 294 + .../Prophecy/Prophecy/ProphecyInterface.php | 31 + .../Prophecy/ProphecySubjectInterface.php | 36 + .../src/Prophecy/Prophecy/Revealer.php | 44 + .../Prophecy/Prophecy/RevealerInterface.php | 29 + .../phpspec/prophecy/src/Prophecy/Prophet.php | 147 + .../prophecy/src/Prophecy/Util/ExportUtil.php | 202 + .../prophecy/src/Prophecy/Util/StringUtil.php | 101 + vendor/phpstan/phpdoc-parser/LICENSE | 21 + vendor/phpstan/phpdoc-parser/README.md | 121 + vendor/phpstan/phpdoc-parser/composer.json | 44 + .../src/Ast/AbstractNodeVisitor.php | 34 + .../phpdoc-parser/src/Ast/Attribute.php | 16 + .../Ast/ConstExpr/ConstExprArrayItemNode.php | 36 + .../src/Ast/ConstExpr/ConstExprArrayNode.php | 30 + .../src/Ast/ConstExpr/ConstExprFalseNode.php | 17 + .../src/Ast/ConstExpr/ConstExprFloatNode.php | 26 + .../Ast/ConstExpr/ConstExprIntegerNode.php | 26 + .../src/Ast/ConstExpr/ConstExprNode.php | 10 + .../src/Ast/ConstExpr/ConstExprNullNode.php | 17 + .../src/Ast/ConstExpr/ConstExprStringNode.php | 26 + .../src/Ast/ConstExpr/ConstExprTrueNode.php | 17 + .../src/Ast/ConstExpr/ConstFetchNode.php | 35 + .../ConstExpr/DoctrineConstExprStringNode.php | 42 + .../QuoteAwareConstExprStringNode.php | 78 + vendor/phpstan/phpdoc-parser/src/Ast/Node.php | 22 + .../phpdoc-parser/src/Ast/NodeAttributes.php | 38 + .../phpdoc-parser/src/Ast/NodeTraverser.php | 312 + .../phpdoc-parser/src/Ast/NodeVisitor.php | 87 + .../src/Ast/NodeVisitor/CloningVisitor.php | 20 + .../Ast/PhpDoc/AssertTagMethodValueNode.php | 50 + .../Ast/PhpDoc/AssertTagPropertyValueNode.php | 50 + .../src/Ast/PhpDoc/AssertTagValueNode.php | 46 + .../src/Ast/PhpDoc/DeprecatedTagValueNode.php | 27 + .../PhpDoc/Doctrine/DoctrineAnnotation.php | 35 + .../Ast/PhpDoc/Doctrine/DoctrineArgument.php | 43 + .../src/Ast/PhpDoc/Doctrine/DoctrineArray.php | 32 + .../Ast/PhpDoc/Doctrine/DoctrineArrayItem.php | 47 + .../PhpDoc/Doctrine/DoctrineTagValueNode.php | 36 + .../src/Ast/PhpDoc/ExtendsTagValueNode.php | 32 + .../src/Ast/PhpDoc/GenericTagValueNode.php | 26 + .../src/Ast/PhpDoc/ImplementsTagValueNode.php | 32 + .../src/Ast/PhpDoc/InvalidTagValueNode.php | 53 + .../src/Ast/PhpDoc/MethodTagValueNode.php | 58 + .../PhpDoc/MethodTagValueParameterNode.php | 49 + .../src/Ast/PhpDoc/MixinTagValueNode.php | 32 + .../PhpDoc/ParamClosureThisTagValueNode.php | 35 + ...ImmediatelyInvokedCallableTagValueNode.php | 30 + .../ParamLaterInvokedCallableTagValueNode.php | 30 + .../src/Ast/PhpDoc/ParamOutTagValueNode.php | 35 + .../src/Ast/PhpDoc/ParamTagValueNode.php | 46 + .../src/Ast/PhpDoc/PhpDocChildNode.php | 10 + .../src/Ast/PhpDoc/PhpDocNode.php | 450 ++ .../src/Ast/PhpDoc/PhpDocTagNode.php | 36 + .../src/Ast/PhpDoc/PhpDocTagValueNode.php | 10 + .../src/Ast/PhpDoc/PhpDocTextNode.php | 26 + .../src/Ast/PhpDoc/PropertyTagValueNode.php | 36 + ...PureUnlessCallableIsImpureTagValueNode.php | 30 + .../Ast/PhpDoc/RequireExtendsTagValueNode.php | 32 + .../PhpDoc/RequireImplementsTagValueNode.php | 32 + .../src/Ast/PhpDoc/ReturnTagValueNode.php | 32 + .../src/Ast/PhpDoc/SelfOutTagValueNode.php | 32 + .../src/Ast/PhpDoc/TemplateTagValueNode.php | 50 + .../src/Ast/PhpDoc/ThrowsTagValueNode.php | 32 + .../PhpDoc/TypeAliasImportTagValueNode.php | 38 + .../src/Ast/PhpDoc/TypeAliasTagValueNode.php | 32 + .../Ast/PhpDoc/TypelessParamTagValueNode.php | 41 + .../src/Ast/PhpDoc/UsesTagValueNode.php | 32 + .../src/Ast/PhpDoc/VarTagValueNode.php | 36 + .../src/Ast/Type/ArrayShapeItemNode.php | 49 + .../src/Ast/Type/ArrayShapeNode.php | 59 + .../Ast/Type/ArrayShapeUnsealedTypeNode.php | 34 + .../src/Ast/Type/ArrayTypeNode.php | 34 + .../src/Ast/Type/CallableTypeNode.php | 52 + .../Ast/Type/CallableTypeParameterNode.php | 48 + .../Type/ConditionalTypeForParameterNode.php | 49 + .../src/Ast/Type/ConditionalTypeNode.php | 49 + .../src/Ast/Type/ConstTypeNode.php | 26 + .../src/Ast/Type/GenericTypeNode.php | 58 + .../src/Ast/Type/IdentifierTypeNode.php | 26 + .../src/Ast/Type/IntersectionTypeNode.php | 37 + .../src/Ast/Type/InvalidTypeNode.php | 38 + .../src/Ast/Type/NullableTypeNode.php | 26 + .../src/Ast/Type/ObjectShapeItemNode.php | 48 + .../src/Ast/Type/ObjectShapeNode.php | 31 + .../src/Ast/Type/OffsetAccessTypeNode.php | 36 + .../src/Ast/Type/ThisTypeNode.php | 17 + .../phpdoc-parser/src/Ast/Type/TypeNode.php | 10 + .../src/Ast/Type/UnionTypeNode.php | 37 + .../phpstan/phpdoc-parser/src/Lexer/Lexer.php | 198 + .../src/Parser/ConstExprParser.php | 333 ++ .../src/Parser/ParserException.php | 106 + .../phpdoc-parser/src/Parser/PhpDocParser.php | 1301 +++++ .../src/Parser/StringUnescaper.php | 100 + .../src/Parser/TokenIterator.php | 383 ++ .../phpdoc-parser/src/Parser/TypeParser.php | 1110 ++++ .../phpdoc-parser/src/Printer/DiffElem.php | 44 + .../phpdoc-parser/src/Printer/Differ.php | 196 + .../phpdoc-parser/src/Printer/Printer.php | 870 +++ .../phpunit/php-code-coverage/.gitattributes | 1 + .../php-code-coverage/.github/CONTRIBUTING.md | 1 + .../.github/ISSUE_TEMPLATE.md | 18 + .../php-code-coverage/.github/stale.yml | 44 + vendor/phpunit/php-code-coverage/.gitignore | 7 + vendor/phpunit/php-code-coverage/.php_cs.dist | 189 + vendor/phpunit/php-code-coverage/.travis.yml | 40 + .../php-code-coverage/ChangeLog-6.1.md | 41 + vendor/phpunit/php-code-coverage/LICENSE | 33 + vendor/phpunit/php-code-coverage/README.md | 40 + vendor/phpunit/php-code-coverage/build.xml | 19 + .../phpunit/php-code-coverage/composer.json | 55 + vendor/phpunit/php-code-coverage/phpunit.xml | 21 + .../php-code-coverage/src/CodeCoverage.php | 1008 ++++ .../php-code-coverage/src/Driver/Driver.php | 47 + .../php-code-coverage/src/Driver/PHPDBG.php | 96 + .../php-code-coverage/src/Driver/Xdebug.php | 112 + .../CoveredCodeNotExecutedException.php | 17 + .../src/Exception/Exception.php | 17 + .../Exception/InvalidArgumentException.php | 36 + .../MissingCoversAnnotationException.php | 17 + .../src/Exception/RuntimeException.php | 14 + .../UnintentionallyCoveredCodeException.php | 44 + .../phpunit/php-code-coverage/src/Filter.php | 164 + .../src/Node/AbstractNode.php | 328 ++ .../php-code-coverage/src/Node/Builder.php | 225 + .../php-code-coverage/src/Node/Directory.php | 427 ++ .../php-code-coverage/src/Node/File.php | 611 ++ .../php-code-coverage/src/Node/Iterator.php | 89 + .../php-code-coverage/src/Report/Clover.php | 258 + .../php-code-coverage/src/Report/Crap4j.php | 165 + .../src/Report/Html/Facade.php | 167 + .../src/Report/Html/Renderer.php | 270 + .../src/Report/Html/Renderer/Dashboard.php | 281 + .../src/Report/Html/Renderer/Directory.php | 98 + .../src/Report/Html/Renderer/File.php | 529 ++ .../Renderer/Template/coverage_bar.html.dist | 5 + .../Renderer/Template/css/bootstrap.min.css | 7 + .../Html/Renderer/Template/css/custom.css | 0 .../Html/Renderer/Template/css/nv.d3.min.css | 1 + .../Html/Renderer/Template/css/octicons.css | 5 + .../Html/Renderer/Template/css/style.css | 122 + .../Renderer/Template/dashboard.html.dist | 281 + .../Renderer/Template/directory.html.dist | 60 + .../Template/directory_item.html.dist | 13 + .../Html/Renderer/Template/file.html.dist | 72 + .../Renderer/Template/file_item.html.dist | 14 + .../Renderer/Template/icons/file-code.svg | 1 + .../Template/icons/file-directory.svg | 1 + .../Renderer/Template/js/bootstrap.min.js | 7 + .../Html/Renderer/Template/js/d3.min.js | 5 + .../Report/Html/Renderer/Template/js/file.js | 61 + .../Html/Renderer/Template/js/jquery.min.js | 2 + .../Html/Renderer/Template/js/nv.d3.min.js | 8 + .../Html/Renderer/Template/js/popper.min.js | 5 + .../Renderer/Template/method_item.html.dist | 11 + .../php-code-coverage/src/Report/PHP.php | 64 + .../php-code-coverage/src/Report/Text.php | 283 + .../src/Report/Xml/BuildInformation.php | 76 + .../src/Report/Xml/Coverage.php | 69 + .../src/Report/Xml/Directory.php | 14 + .../src/Report/Xml/Facade.php | 287 + .../php-code-coverage/src/Report/Xml/File.php | 81 + .../src/Report/Xml/Method.php | 56 + .../php-code-coverage/src/Report/Xml/Node.php | 87 + .../src/Report/Xml/Project.php | 85 + .../src/Report/Xml/Report.php | 92 + .../src/Report/Xml/Source.php | 38 + .../src/Report/Xml/Tests.php | 46 + .../src/Report/Xml/Totals.php | 140 + .../php-code-coverage/src/Report/Xml/Unit.php | 95 + vendor/phpunit/php-code-coverage/src/Util.php | 40 + .../phpunit/php-code-coverage/src/Version.php | 30 + .../php-code-coverage/tests/TestCase.php | 400 ++ .../tests/_files/BankAccount-clover.xml | 26 + .../tests/_files/BankAccount-crap4j.xml | 59 + .../tests/_files/BankAccount-text.txt | 12 + .../tests/_files/BankAccount.php | 33 + .../tests/_files/BankAccountTest.php | 68 + .../_files/CoverageClassExtendedTest.php | 14 + .../tests/_files/CoverageClassTest.php | 14 + .../CoverageFunctionParenthesesTest.php | 13 + ...erageFunctionParenthesesWhitespaceTest.php | 13 + .../tests/_files/CoverageFunctionTest.php | 13 + .../CoverageMethodOneLineAnnotationTest.php | 12 + .../_files/CoverageMethodParenthesesTest.php | 14 + ...overageMethodParenthesesWhitespaceTest.php | 14 + .../tests/_files/CoverageMethodTest.php | 14 + .../tests/_files/CoverageNoneTest.php | 11 + .../tests/_files/CoverageNotPrivateTest.php | 14 + .../tests/_files/CoverageNotProtectedTest.php | 14 + .../tests/_files/CoverageNotPublicTest.php | 14 + .../tests/_files/CoverageNothingTest.php | 15 + .../tests/_files/CoveragePrivateTest.php | 14 + .../tests/_files/CoverageProtectedTest.php | 14 + .../tests/_files/CoveragePublicTest.php | 14 + .../CoverageTwoDefaultClassAnnotations.php | 17 + .../tests/_files/CoveredClass.php | 36 + .../tests/_files/CoveredFunction.php | 4 + .../php-code-coverage/tests/_files/Crash.php | 2 + .../NamespaceCoverageClassExtendedTest.php | 14 + .../_files/NamespaceCoverageClassTest.php | 14 + ...NamespaceCoverageCoversClassPublicTest.php | 17 + .../NamespaceCoverageCoversClassTest.php | 22 + .../_files/NamespaceCoverageMethodTest.php | 14 + .../NamespaceCoverageNotPrivateTest.php | 14 + .../NamespaceCoverageNotProtectedTest.php | 14 + .../_files/NamespaceCoverageNotPublicTest.php | 14 + .../_files/NamespaceCoveragePrivateTest.php | 14 + .../_files/NamespaceCoverageProtectedTest.php | 14 + .../_files/NamespaceCoveragePublicTest.php | 14 + .../tests/_files/NamespaceCoveredClass.php | 38 + .../_files/NotExistingCoveredElementTest.php | 26 + .../BankAccount.php.html | 249 + .../CoverageForBankAccount/dashboard.html | 287 + .../HTML/CoverageForBankAccount/index.html | 118 + .../dashboard.html | 285 + .../index.html | 118 + ...with_class_and_anonymous_function.php.html | 172 + .../dashboard.html | 283 + .../index.html | 108 + .../source_with_ignore.php.html | 196 + .../BankAccount.php.xml | 262 + .../XML/CoverageForBankAccount/index.xml | 33 + .../index.xml | 30 + ..._with_class_and_anonymous_function.php.xml | 161 + .../CoverageForFileWithIgnoredLines/index.xml | 30 + .../source_with_ignore.php.xml | 187 + .../class-with-anonymous-function-clover.xml | 21 + .../class-with-anonymous-function-crap4j.xml | 26 + .../class-with-anonymous-function-text.txt | 12 + .../tests/_files/ignored-lines-clover.xml | 17 + .../tests/_files/ignored-lines-crap4j.xml | 37 + .../tests/_files/ignored-lines-text.txt | 10 + ...urce_with_class_and_anonymous_function.php | 19 + .../tests/_files/source_with_ignore.php | 37 + .../tests/_files/source_with_namespace.php | 20 + .../source_with_oneline_annotations.php | 36 + .../tests/_files/source_without_ignore.php | 4 + .../tests/_files/source_without_namespace.php | 18 + .../php-code-coverage/tests/bootstrap.php | 8 + .../tests/tests/BuilderTest.php | 250 + .../tests/tests/CloverTest.php | 49 + .../tests/tests/CodeCoverageTest.php | 499 ++ .../tests/tests/Crap4jTest.php | 49 + .../tests/tests/FilterTest.php | 198 + .../tests/tests/HTMLTest.php | 103 + .../tests/tests/TextTest.php | 49 + .../tests/tests/UtilTest.php | 29 + .../php-code-coverage/tests/tests/XmlTest.php | 98 + vendor/phpunit/php-file-iterator/ChangeLog.md | 100 + vendor/phpunit/php-file-iterator/LICENSE | 33 + vendor/phpunit/php-file-iterator/README.md | 14 + .../phpunit/php-file-iterator/composer.json | 37 + .../phpunit/php-file-iterator/src/Facade.php | 112 + .../phpunit/php-file-iterator/src/Factory.php | 83 + .../php-file-iterator/src/Iterator.php | 116 + .../phpunit/php-text-template/.gitattributes | 1 + vendor/phpunit/php-text-template/.gitignore | 5 + vendor/phpunit/php-text-template/LICENSE | 33 + vendor/phpunit/php-text-template/README.md | 14 + .../phpunit/php-text-template/composer.json | 29 + .../php-text-template/src/Template.php | 135 + vendor/phpunit/php-timer/ChangeLog.md | 48 + vendor/phpunit/php-timer/LICENSE | 33 + vendor/phpunit/php-timer/README.md | 49 + vendor/phpunit/php-timer/composer.json | 42 + vendor/phpunit/php-timer/src/Exception.php | 14 + .../php-timer/src/RuntimeException.php | 14 + vendor/phpunit/php-timer/src/Timer.php | 100 + .../phpunit/php-token-stream/.gitattributes | 1 + .../php-token-stream/.github/FUNDING.yml | 1 + vendor/phpunit/php-token-stream/.gitignore | 3 + vendor/phpunit/php-token-stream/.travis.yml | 26 + vendor/phpunit/php-token-stream/ChangeLog.md | 71 + vendor/phpunit/php-token-stream/LICENSE | 33 + vendor/phpunit/php-token-stream/README.md | 14 + vendor/phpunit/php-token-stream/build.xml | 21 + vendor/phpunit/php-token-stream/composer.json | 39 + vendor/phpunit/php-token-stream/phpunit.xml | 21 + vendor/phpunit/php-token-stream/src/Token.php | 1361 +++++ .../php-token-stream/src/Token/Stream.php | 587 ++ .../src/Token/Stream/CachingFactory.php | 46 + .../php-token-stream/src/Token/Util.php | 19 + .../tests/Token/ClassTest.php | 152 + .../tests/Token/ClosureTest.php | 64 + .../tests/Token/FunctionTest.php | 124 + .../tests/Token/IncludeTest.php | 53 + .../tests/Token/InterfaceTest.php | 169 + .../tests/Token/NamespaceTest.php | 62 + .../_fixture/classExtendsNamespacedClass.php | 10 + .../tests/_fixture/classInNamespace.php | 6 + .../tests/_fixture/classInScopedNamespace.php | 9 + .../_fixture/classUsesNamespacedFunction.php | 8 + .../class_with_method_named_empty.php | 7 + ...h_method_that_declares_anonymous_class.php | 15 + ..._method_that_declares_anonymous_class2.php | 16 + ...ltiple_anonymous_classes_and_functions.php | 26 + .../tests/_fixture/closure.php | 7 + .../tests/_fixture/issue19.php | 3 + .../tests/_fixture/issue30.php | 8 + ...tipleNamespacesWithOneClassUsingBraces.php | 12 + ...espacesWithOneClassUsingNonBraceSyntax.php | 14 + .../_fixture/php-code-coverage-issue-424.php | 13 + .../tests/_fixture/source.php | 42 + .../tests/_fixture/source2.php | 6 + .../tests/_fixture/source3.php | 14 + .../tests/_fixture/source4.php | 30 + .../tests/_fixture/source5.php | 5 + .../php-token-stream/tests/bootstrap.php | 15 + vendor/phpunit/phpunit/.editorconfig | 14 + vendor/phpunit/phpunit/.gitattributes | 7 + .../phpunit/.github/CODE_OF_CONDUCT.md | 28 + .../phpunit/phpunit/.github/CONTRIBUTING.md | 68 + .../phpunit/phpunit/.github/ISSUE_TEMPLATE.md | 15 + .../phpunit/phpunit/.github/workflows/ci.yml | 84 + vendor/phpunit/phpunit/.gitignore | 21 + vendor/phpunit/phpunit/.php_cs.dist | 201 + vendor/phpunit/phpunit/.travis.yml | 38 + vendor/phpunit/phpunit/ChangeLog-7.5.md | 195 + vendor/phpunit/phpunit/LICENSE | 33 + vendor/phpunit/phpunit/README.md | 40 + vendor/phpunit/phpunit/build.xml | 428 ++ vendor/phpunit/phpunit/composer.json | 90 + vendor/phpunit/phpunit/phive.xml | 7 + vendor/phpunit/phpunit/phpunit | 61 + vendor/phpunit/phpunit/phpunit.xml | 32 + vendor/phpunit/phpunit/phpunit.xsd | 307 + vendor/phpunit/phpunit/src/Exception.php | 17 + .../phpunit/phpunit/src/Framework/Assert.php | 2896 ++++++++++ .../src/Framework/Assert/Functions.php | 1668 ++++++ .../src/Framework/AssertionFailedError.php | 24 + .../src/Framework/CodeCoverageException.php | 14 + .../src/Framework/Constraint/ArrayHasKey.php | 81 + .../src/Framework/Constraint/ArraySubset.php | 133 + .../src/Framework/Constraint/Attribute.php | 79 + .../src/Framework/Constraint/Callback.php | 47 + .../Constraint/ClassHasAttribute.php | 80 + .../Constraint/ClassHasStaticAttribute.php | 51 + .../src/Framework/Constraint/Composite.php | 70 + .../src/Framework/Constraint/Constraint.php | 148 + .../src/Framework/Constraint/Count.php | 123 + .../Framework/Constraint/DirectoryExists.php | 53 + .../src/Framework/Constraint/Exception.php | 82 + .../Framework/Constraint/ExceptionCode.php | 63 + .../Framework/Constraint/ExceptionMessage.php | 73 + .../ExceptionMessageRegularExpression.php | 71 + .../src/Framework/Constraint/FileExists.php | 53 + .../src/Framework/Constraint/GreaterThan.php | 53 + .../src/Framework/Constraint/IsAnything.php | 55 + .../src/Framework/Constraint/IsEmpty.php | 65 + .../src/Framework/Constraint/IsEqual.php | 150 + .../src/Framework/Constraint/IsFalse.php | 35 + .../src/Framework/Constraint/IsFinite.php | 35 + .../src/Framework/Constraint/IsIdentical.php | 144 + .../src/Framework/Constraint/IsInfinite.php | 35 + .../src/Framework/Constraint/IsInstanceOf.php | 91 + .../src/Framework/Constraint/IsJson.php | 73 + .../src/Framework/Constraint/IsNan.php | 35 + .../src/Framework/Constraint/IsNull.php | 35 + .../src/Framework/Constraint/IsReadable.php | 53 + .../src/Framework/Constraint/IsTrue.php | 35 + .../src/Framework/Constraint/IsType.php | 152 + .../src/Framework/Constraint/IsWritable.php | 53 + .../src/Framework/Constraint/JsonMatches.php | 111 + .../JsonMatchesErrorMessageProvider.php | 62 + .../src/Framework/Constraint/LessThan.php | 53 + .../src/Framework/Constraint/LogicalAnd.php | 123 + .../src/Framework/Constraint/LogicalNot.php | 171 + .../src/Framework/Constraint/LogicalOr.php | 120 + .../src/Framework/Constraint/LogicalXor.php | 125 + .../Constraint/ObjectHasAttribute.php | 34 + .../Constraint/RegularExpression.php | 56 + .../src/Framework/Constraint/SameSize.php | 18 + .../Framework/Constraint/StringContains.php | 76 + .../Framework/Constraint/StringEndsWith.php | 48 + .../StringMatchesFormatDescription.php | 103 + .../Framework/Constraint/StringStartsWith.php | 54 + .../Constraint/TraversableContains.php | 118 + .../Constraint/TraversableContainsOnly.php | 93 + .../CoveredCodeNotExecutedException.php | 14 + .../src/Framework/DataProviderTestSuite.php | 44 + .../src/Framework/Error/Deprecated.php | 15 + .../phpunit/src/Framework/Error/Error.php | 26 + .../phpunit/src/Framework/Error/Notice.php | 15 + .../phpunit/src/Framework/Error/Warning.php | 15 + .../phpunit/src/Framework/Exception.php | 78 + .../src/Framework/ExceptionWrapper.php | 118 + .../Framework/ExpectationFailedException.php | 39 + .../phpunit/src/Framework/IncompleteTest.php | 18 + .../src/Framework/IncompleteTestCase.php | 76 + .../src/Framework/IncompleteTestError.php | 14 + .../InvalidCoversTargetException.php | 14 + .../InvalidParameterGroupException.php | 17 + .../MissingCoversAnnotationException.php | 14 + .../Framework/MockObject/Builder/Identity.php | 30 + .../MockObject/Builder/InvocationMocker.php | 277 + .../Framework/MockObject/Builder/Match.php | 26 + .../MockObject/Builder/MethodNameMatch.php | 26 + .../MockObject/Builder/NamespaceMatch.php | 37 + .../MockObject/Builder/ParametersMatch.php | 50 + .../src/Framework/MockObject/Builder/Stub.php | 26 + .../Exception/BadMethodCallException.php | 14 + .../MockObject/Exception/Exception.php | 17 + .../MockObject/Exception/RuntimeException.php | 14 + .../ForwardCompatibility/MockObject.php | 16 + .../src/Framework/MockObject/Generator.php | 1030 ++++ .../MockObject/Generator/deprecation.tpl.dist | 2 + .../Generator/mocked_class.tpl.dist | 46 + .../Generator/mocked_class_method.tpl.dist | 8 + .../Generator/mocked_clone.tpl.dist | 4 + .../Generator/mocked_method.tpl.dist | 22 + .../Generator/mocked_method_void.tpl.dist | 20 + .../Generator/mocked_static_method.tpl.dist | 5 + .../Generator/proxied_method.tpl.dist | 26 + .../Generator/proxied_method_void.tpl.dist | 26 + .../MockObject/Generator/trait_class.tpl.dist | 4 + .../Generator/unmocked_clone.tpl.dist | 5 + .../MockObject/Generator/wsdl_class.tpl.dist | 7 + .../MockObject/Generator/wsdl_method.tpl.dist | 4 + .../MockObject/Invocation/Invocation.php | 31 + .../Invocation/ObjectInvocation.php | 40 + .../Invocation/StaticInvocation.php | 268 + .../Framework/MockObject/InvocationMocker.php | 186 + .../src/Framework/MockObject/Invokable.php | 38 + .../src/Framework/MockObject/Matcher.php | 309 + .../MockObject/Matcher/AnyInvokedCount.php | 26 + .../MockObject/Matcher/AnyParameters.php | 31 + .../Matcher/ConsecutiveParameters.php | 137 + .../MockObject/Matcher/DeferredError.php | 40 + .../MockObject/Matcher/Invocation.php | 47 + .../MockObject/Matcher/InvokedAtIndex.php | 81 + .../Matcher/InvokedAtLeastCount.php | 55 + .../MockObject/Matcher/InvokedAtLeastOnce.php | 43 + .../MockObject/Matcher/InvokedAtMostCount.php | 55 + .../MockObject/Matcher/InvokedCount.php | 106 + .../MockObject/Matcher/InvokedRecorder.php | 63 + .../MockObject/Matcher/MethodName.php | 68 + .../MockObject/Matcher/Parameters.php | 158 + .../Matcher/StatelessInvocation.php | 50 + .../src/Framework/MockObject/MockBuilder.php | 408 ++ .../src/Framework/MockObject/MockMethod.php | 355 ++ .../Framework/MockObject/MockMethodSet.php | 36 + .../src/Framework/MockObject/MockObject.php | 57 + .../phpunit/src/Framework/MockObject/Stub.php | 29 + .../MockObject/Stub/ConsecutiveCalls.php | 56 + .../Framework/MockObject/Stub/Exception.php | 42 + .../MockObject/Stub/MatcherCollection.php | 26 + .../MockObject/Stub/ReturnArgument.php | 41 + .../MockObject/Stub/ReturnCallback.php | 52 + .../MockObject/Stub/ReturnReference.php | 45 + .../Framework/MockObject/Stub/ReturnSelf.php | 38 + .../Framework/MockObject/Stub/ReturnStub.php | 45 + .../MockObject/Stub/ReturnValueMap.php | 51 + .../src/Framework/MockObject/Verifiable.php | 26 + .../phpunit/src/Framework/OutputError.php | 14 + .../phpunit/src/Framework/RiskyTest.php | 14 + .../phpunit/src/Framework/RiskyTestError.php | 14 + .../phpunit/src/Framework/SelfDescribing.php | 21 + .../phpunit/src/Framework/SkippedTest.php | 14 + .../phpunit/src/Framework/SkippedTestCase.php | 76 + .../src/Framework/SkippedTestError.php | 14 + .../src/Framework/SkippedTestSuiteError.php | 14 + .../phpunit/src/Framework/SyntheticError.php | 61 + vendor/phpunit/phpunit/src/Framework/Test.php | 23 + .../phpunit/src/Framework/TestCase.php | 2138 +++++++ .../phpunit/src/Framework/TestFailure.php | 154 + .../phpunit/src/Framework/TestListener.php | 66 + .../TestListenerDefaultImplementation.php | 53 + .../phpunit/src/Framework/TestResult.php | 1146 ++++ .../phpunit/src/Framework/TestSuite.php | 962 ++++ .../src/Framework/TestSuiteIterator.php | 101 + .../Framework/UnexpectedValueException.php | 14 + .../UnintentionallyCoveredCodeError.php | 18 + .../phpunit/phpunit/src/Framework/Warning.php | 24 + .../phpunit/src/Framework/WarningTestCase.php | 71 + .../phpunit/src/Runner/BaseTestRunner.php | 172 + .../phpunit/phpunit/src/Runner/Exception.php | 14 + .../Filter/ExcludeGroupFilterIterator.php | 18 + .../phpunit/src/Runner/Filter/Factory.php | 51 + .../src/Runner/Filter/GroupFilterIterator.php | 51 + .../Filter/IncludeGroupFilterIterator.php | 18 + .../src/Runner/Filter/NameFilterIterator.php | 122 + .../Runner/Hook/AfterIncompleteTestHook.php | 15 + .../src/Runner/Hook/AfterLastTestHook.php | 15 + .../src/Runner/Hook/AfterRiskyTestHook.php | 15 + .../src/Runner/Hook/AfterSkippedTestHook.php | 15 + .../Runner/Hook/AfterSuccessfulTestHook.php | 15 + .../src/Runner/Hook/AfterTestErrorHook.php | 15 + .../src/Runner/Hook/AfterTestFailureHook.php | 15 + .../phpunit/src/Runner/Hook/AfterTestHook.php | 21 + .../src/Runner/Hook/AfterTestWarningHook.php | 15 + .../src/Runner/Hook/BeforeFirstTestHook.php | 15 + .../src/Runner/Hook/BeforeTestHook.php | 15 + .../phpunit/phpunit/src/Runner/Hook/Hook.php | 14 + .../phpunit/src/Runner/Hook/TestHook.php | 14 + .../src/Runner/Hook/TestListenerAdapter.php | 137 + .../phpunit/src/Runner/PhptTestCase.php | 598 ++ .../src/Runner/ResultCacheExtension.php | 104 + .../src/Runner/StandardTestSuiteLoader.php | 112 + .../phpunit/src/Runner/TestSuiteLoader.php | 22 + .../phpunit/src/Runner/TestSuiteSorter.php | 360 ++ vendor/phpunit/phpunit/src/Runner/Version.php | 64 + vendor/phpunit/phpunit/src/TextUI/Command.php | 1384 +++++ .../phpunit/src/TextUI/ResultPrinter.php | 596 ++ .../phpunit/phpunit/src/TextUI/TestRunner.php | 1328 +++++ vendor/phpunit/phpunit/src/Util/Blacklist.php | 196 + .../phpunit/src/Util/Configuration.php | 1331 +++++ .../src/Util/ConfigurationGenerator.php | 60 + .../phpunit/phpunit/src/Util/ErrorHandler.php | 106 + .../phpunit/phpunit/src/Util/FileLoader.php | 68 + .../phpunit/phpunit/src/Util/Filesystem.php | 35 + vendor/phpunit/phpunit/src/Util/Filter.php | 83 + vendor/phpunit/phpunit/src/Util/Getopt.php | 183 + .../phpunit/phpunit/src/Util/GlobalState.php | 172 + .../src/Util/InvalidArgumentHelper.php | 35 + vendor/phpunit/phpunit/src/Util/Json.php | 83 + vendor/phpunit/phpunit/src/Util/Log/JUnit.php | 432 ++ .../phpunit/phpunit/src/Util/Log/TeamCity.php | 391 ++ .../phpunit/src/Util/NullTestResultCache.php | 31 + .../src/Util/PHP/AbstractPhpProcess.php | 377 ++ .../src/Util/PHP/DefaultPhpProcess.php | 218 + .../Util/PHP/Template/PhptTestCase.tpl.dist | 40 + .../Util/PHP/Template/TestCaseClass.tpl.dist | 108 + .../Util/PHP/Template/TestCaseMethod.tpl.dist | 110 + .../src/Util/PHP/WindowsPhpProcess.php | 46 + vendor/phpunit/phpunit/src/Util/Printer.php | 139 + .../phpunit/src/Util/RegularExpression.php | 27 + vendor/phpunit/phpunit/src/Util/Test.php | 1121 ++++ .../src/Util/TestDox/CliTestDoxPrinter.php | 429 ++ .../src/Util/TestDox/HtmlResultPrinter.php | 131 + .../src/Util/TestDox/NamePrettifier.php | 193 + .../src/Util/TestDox/ResultPrinter.php | 339 ++ .../phpunit/src/Util/TestDox/TestResult.php | 155 + .../src/Util/TestDox/TextResultPrinter.php | 47 + .../src/Util/TestDox/XmlResultPrinter.php | 205 + .../phpunit/src/Util/TestResultCache.php | 196 + .../src/Util/TestResultCacheInterface.php | 21 + .../phpunit/src/Util/TextTestListRenderer.php | 43 + vendor/phpunit/phpunit/src/Util/Type.php | 36 + .../src/Util/XdebugFilterScriptGenerator.php | 72 + vendor/phpunit/phpunit/src/Util/Xml.php | 282 + .../phpunit/src/Util/XmlTestListRenderer.php | 81 + vendor/phpunit/phpunit/tests/_files/3194.php | 42 + vendor/phpunit/phpunit/tests/_files/3530.wsdl | 33 + .../tests/_files/AbstractMockTestClass.php | 18 + .../phpunit/tests/_files/AbstractTest.php | 18 + .../phpunit/tests/_files/AbstractTrait.php | 23 + .../phpunit/tests/_files/AnInterface.php | 13 + .../_files/AnInterfaceWithReturnType.php | 13 + .../phpunit/tests/_files/AnotherInterface.php | 13 + .../phpunit/tests/_files/ArrayAccessible.php | 47 + .../phpunit/tests/_files/AssertionExample.php | 16 + .../tests/_files/AssertionExampleTest.php | 20 + .../phpunit/phpunit/tests/_files/Author.php | 25 + .../phpunit/tests/_files/BankAccount.php | 80 + .../phpunit/tests/_files/BankAccountTest.php | 93 + .../tests/_files/BankAccountTest.test.php | 86 + .../phpunit/tests/_files/BankAccountTest2.php | 56 + vendor/phpunit/phpunit/tests/_files/Bar.php | 16 + .../tests/_files/BeforeAndAfterTest.php | 47 + .../_files/BeforeClassAndAfterClassTest.php | 47 + .../BeforeClassWithOnlyDataProviderTest.php | 48 + vendor/phpunit/phpunit/tests/_files/Book.php | 18 + .../phpunit/tests/_files/Calculator.php | 22 + .../ChangeCurrentWorkingDirectoryTest.php | 19 + .../ClassThatImplementsSerializable.php | 23 + .../ClassWithAllPossibleReturnTypes.php | 64 + .../_files/ClassWithNonPublicAttributes.php | 47 + .../ClassWithScalarTypeDeclarations.php | 15 + .../tests/_files/ClassWithSelfTypeHint.php | 15 + .../tests/_files/ClassWithStaticMethod.php | 15 + .../tests/_files/ClassWithToString.php | 20 + .../ClassWithVariadicArgumentMethod.php | 20 + .../tests/_files/ClonedDependencyTest.php | 67 + .../phpunit/tests/_files/ConcreteTest.my.php | 16 + .../phpunit/tests/_files/ConcreteTest.php | 16 + .../phpunit/tests/_files/CountConstraint.php | 45 + .../_files/CoverageClassExtendedTest.php | 22 + .../tests/_files/CoverageClassNothingTest.php | 22 + .../tests/_files/CoverageClassTest.php | 22 + .../CoverageClassWithoutAnnotationsTest.php | 19 + ...verageCoversOverridesCoversNothingTest.php | 25 + .../CoverageFunctionParenthesesTest.php | 21 + ...erageFunctionParenthesesWhitespaceTest.php | 21 + .../tests/_files/CoverageFunctionTest.php | 21 + .../CoverageMethodNothingCoversMethod.php | 23 + .../_files/CoverageMethodNothingTest.php | 22 + .../CoverageMethodOneLineAnnotationTest.php | 20 + .../_files/CoverageMethodParenthesesTest.php | 22 + ...overageMethodParenthesesWhitespaceTest.php | 22 + .../tests/_files/CoverageMethodTest.php | 22 + .../_files/CoverageNamespacedFunctionTest.php | 21 + .../phpunit/tests/_files/CoverageNoneTest.php | 19 + .../tests/_files/CoverageNotPrivateTest.php | 22 + .../tests/_files/CoverageNotProtectedTest.php | 22 + .../tests/_files/CoverageNotPublicTest.php | 22 + .../tests/_files/CoveragePrivateTest.php | 22 + .../tests/_files/CoverageProtectedTest.php | 22 + .../tests/_files/CoveragePublicTest.php | 22 + .../CoverageTwoDefaultClassAnnotations.php | 25 + .../phpunit/tests/_files/CoveredClass.php | 44 + .../phpunit/tests/_files/CoveredFunction.php | 12 + .../phpunit/tests/_files/CustomPrinter.php | 14 + .../tests/_files/DataProviderDebugTest.php | 58 + .../_files/DataProviderDependencyTest.php | 33 + .../tests/_files/DataProviderFilterTest.php | 49 + .../_files/DataProviderIncompleteTest.php | 47 + .../DataProviderIssue2833/FirstTest.php | 30 + .../DataProviderIssue2833/SecondTest.php | 22 + .../_files/DataProviderIssue2859/phpunit.xml | 10 + .../another/TestWithDataProviderTest.php | 28 + .../DataProviderIssue2922/FirstTest.php | 31 + .../DataProviderIssue2922/SecondTest.php | 21 + .../tests/_files/DataProviderSkippedTest.php | 47 + .../phpunit/tests/_files/DataProviderTest.php | 31 + .../tests/_files/DataProviderTestDoxTest.php | 83 + .../_files/DataproviderExecutionOrderTest.php | 48 + ...roviderExecutionOrderTest_result_cache.txt | 1 + .../tests/_files/DependencyFailureTest.php | 55 + .../tests/_files/DependencySuccessTest.php | 34 + .../tests/_files/DependencyTestSuite.php | 23 + .../tests/_files/DoNoAssertionTestCase.php | 17 + ...mAssertionsButPerformingAssertionsTest.php | 22 + .../phpunit/tests/_files/DoubleTestCase.php | 39 + .../phpunit/tests/_files/DummyBarTest.php | 18 + .../phpunit/tests/_files/DummyException.php | 12 + .../phpunit/tests/_files/DummyFooTest.php | 18 + .../tests/_files/EmptyTestCaseTest.php | 14 + .../phpunit/tests/_files/ExampleTrait.php | 16 + .../ExceptionInAssertPostConditionsTest.php | 50 + .../ExceptionInAssertPreConditionsTest.php | 50 + .../tests/_files/ExceptionInSetUpTest.php | 50 + .../ExceptionInTearDownAfterClassTest.php | 28 + .../tests/_files/ExceptionInTearDownTest.php | 50 + .../phpunit/tests/_files/ExceptionInTest.php | 50 + .../ExceptionInTestDetectedInTeardown.php | 29 + .../tests/_files/ExceptionNamespaceTest.php | 45 + .../tests/_files/ExceptionStackTest.php | 34 + .../phpunit/tests/_files/ExceptionTest.php | 149 + .../tests/_files/ExceptionWithThrowable.php | 13 + .../phpunit/phpunit/tests/_files/Failure.php | 18 + .../phpunit/tests/_files/FailureTest.php | 85 + .../phpunit/tests/_files/FalsyConstraint.php | 26 + .../phpunit/tests/_files/FatalTest.php | 22 + .../phpunit/tests/_files/FinalClass.php | 24 + vendor/phpunit/phpunit/tests/_files/Foo.php | 16 + .../phpunit/tests/_files/FunctionCallback.php | 20 + .../phpunit/tests/_files/Go ogle-Sea.rch.wsdl | 198 + .../phpunit/tests/_files/GoogleSearch.wsdl | 198 + .../tests/_files/IgnoreCodeCoverageClass.php | 25 + .../_files/IgnoreCodeCoverageClassTest.php | 25 + .../phpunit/tests/_files/IncompleteTest.php | 18 + .../tests/_files/Inheritance/InheritanceA.php | 14 + .../tests/_files/Inheritance/InheritanceB.php | 17 + .../tests/_files/InheritedTestCase.php | 15 + .../phpunit/phpunit/tests/_files/IniTest.php | 18 + .../InterfaceWithSemiReservedMethodName.php | 13 + .../_files/InterfaceWithStaticMethod.php | 13 + .../phpunit/tests/_files/IsolationTest.php | 23 + .../tests/_files/JsonData/arrayObject.json | 1 + .../tests/_files/JsonData/simpleObject.json | 1 + .../phpunit/tests/_files/MethodCallback.php | 29 + .../_files/MethodCallbackByReference.php | 21 + .../phpunit/tests/_files/MockRunner.php | 17 + .../tests/_files/MockTestInterface.php | 15 + .../phpunit/phpunit/tests/_files/Mockable.php | 37 + .../tests/_files/MultiDependencyTest.php | 50 + .../MultiDependencyTest_result_cache.txt | 1 + .../tests/_files/MultipleDataProviderTest.php | 89 + .../phpunit/tests/_files/MyCommand.php | 24 + .../phpunit/tests/_files/MyTestListener.php | 121 + .../phpunit/tests/_files/NamedConstraint.php | 37 + .../NamespaceCoverageClassExtendedTest.php | 22 + .../_files/NamespaceCoverageClassTest.php | 22 + ...NamespaceCoverageCoversClassPublicTest.php | 25 + .../NamespaceCoverageCoversClassTest.php | 30 + .../_files/NamespaceCoverageMethodTest.php | 22 + .../NamespaceCoverageNotPrivateTest.php | 22 + .../NamespaceCoverageNotProtectedTest.php | 22 + .../_files/NamespaceCoverageNotPublicTest.php | 22 + .../_files/NamespaceCoveragePrivateTest.php | 22 + .../_files/NamespaceCoverageProtectedTest.php | 22 + .../_files/NamespaceCoveragePublicTest.php | 22 + .../tests/_files/NamespaceCoveredClass.php | 46 + .../tests/_files/NamespaceCoveredFunction.php | 15 + .../tests/_files/NoArgTestCaseTest.php | 17 + .../phpunit/tests/_files/NoTestCaseClass.php | 12 + .../phpunit/tests/_files/NoTestCases.php | 17 + .../phpunit/tests/_files/NonStatic.php | 15 + .../_files/NotExistingCoveredElementTest.php | 34 + .../tests/_files/NotPublicTestCase.php | 21 + .../tests/_files/NotSelfDescribingTest.php | 29 + .../phpunit/tests/_files/NotVoidTestCase.php | 14 + .../phpunit/tests/_files/NothingTest.php | 17 + .../_files/NumericGroupAnnotationTest.php | 38 + .../phpunit/tests/_files/OneTestCase.php | 21 + .../phpunit/tests/_files/OutputTestCase.php | 37 + .../phpunit/tests/_files/OverrideTestCase.php | 15 + .../_files/ParseTestMethodAnnotationsMock.php | 24 + .../tests/_files/PartialMockTestClass.php | 26 + .../RequirementsClassBeforeClassHookTest.php | 21 + .../_files/RequirementsClassDocBlockTest.php | 30 + .../phpunit/tests/_files/RequirementsTest.php | 466 ++ .../phpunit/tests/_files/RouterTest.php | 34 + .../tests/_files/SampleArrayAccess.php | 42 + .../phpunit/tests/_files/SampleClass.php | 24 + .../tests/_files/SeparateProcessesTest.php | 29 + .../phpunit/tests/_files/Singleton.php | 30 + .../phpunit/tests/_files/SingletonClass.php | 35 + .../phpunit/tests/_files/SomeClass.php | 19 + .../phpunit/tests/_files/StackTest.php | 34 + .../tests/_files/StaticMockTestClass.php | 20 + .../phpunit/tests/_files/StatusTest.php | 50 + .../tests/_files/StopOnErrorTestSuite.php | 29 + .../tests/_files/StopOnWarningTestSuite.php | 23 + .../tests/_files/StopsOnWarningTest.php | 17 + .../phpunit/tests/_files/StringableClass.php | 16 + .../phpunit/phpunit/tests/_files/Struct.php | 18 + .../phpunit/phpunit/tests/_files/Success.php | 18 + .../tests/_files/TemplateMethodsTest.php | 62 + .../tests/_files/TestAutoreferenced.php | 20 + .../phpunit/tests/_files/TestDoxGroupTest.php | 29 + .../tests/_files/TestGeneratorMaker.php | 18 + .../phpunit/tests/_files/TestIncomplete.php | 18 + .../phpunit/tests/_files/TestIterator.php | 45 + .../phpunit/tests/_files/TestIterator2.php | 43 + .../tests/_files/TestIteratorAggregate.php | 23 + .../tests/_files/TestIteratorAggregate2.php | 24 + .../phpunit/tests/_files/TestProxyFixture.php | 49 + .../phpunit/tests/_files/TestRisky.php | 18 + .../phpunit/tests/_files/TestSkipped.php | 18 + .../phpunit/tests/_files/TestTestError.php | 18 + .../phpunit/tests/_files/TestWarning.php | 19 + .../phpunit/tests/_files/TestWithTest.php | 34 + .../_files/TestableCliTestDoxPrinter.php | 25 + .../tests/_files/ThrowExceptionTestCase.php | 18 + .../tests/_files/ThrowNoExceptionTestCase.php | 17 + .../tests/_files/TraitWithConstructor.php | 23 + .../_files/TraversableMockTestInterface.php | 12 + .../phpunit/tests/_files/TruthyConstraint.php | 26 + .../VariousIterableDataProviderTest.php | 47 + .../phpunit/phpunit/tests/_files/WasRun.php | 20 + .../tests/_files/WrapperIteratorAggregate.php | 29 + vendor/phpunit/phpunit/tests/_files/bar.xml | 1 + .../_files/configuration.colors.empty.xml | 1 + .../_files/configuration.colors.false.xml | 1 + .../_files/configuration.colors.invalid.xml | 1 + .../_files/configuration.colors.true.xml | 1 + .../_files/configuration.columns.default.xml | 1 + .../_files/configuration.custom-printer.xml | 2 + .../_files/configuration.defaulttestsuite.xml | 10 + .../_files/configuration.one-file-suite.xml | 7 + .../tests/_files/configuration.suites.xml | 6 + .../phpunit/tests/_files/configuration.xml | 162 + .../tests/_files/configuration_empty.xml | 49 + .../configuration_execution_order_options.xml | 9 + .../_files/configuration_stop_on_defect.xml | 2 + .../_files/configuration_stop_on_error.xml | 2 + .../configuration_stop_on_incomplete.xml | 2 + .../_files/configuration_stop_on_warning.xml | 2 + .../tests/_files/configuration_whitelist.xml | 15 + .../tests/_files/configuration_xinclude.xml | 84 + .../tests/_files/expectedFileFormat.txt | 1 + vendor/phpunit/phpunit/tests/_files/foo.xml | 1 + .../tests/_files/phpt-for-coverage.phpt | 8 + .../_files/phpt-unsupported-section.phpt | 10 + .../phpunit/tests/_files/phpt-xfail.phpt | 11 + .../phpunit-example-extension/phpunit.xml | 10 + .../tests/OneTest.php | 21 + .../phpunit-example-extension-3.0.3.phar | Bin 0 -> 7698 bytes ...uctureAttributesAreSameButValuesAreNot.xml | 10 + .../tests/_files/structureExpected.xml | 10 + .../tests/_files/structureIgnoreTextNodes.xml | 13 + .../_files/structureIsSameButDataIsNot.xml | 10 + .../structureWrongNumberOfAttributes.xml | 10 + .../_files/structureWrongNumberOfNodes.xml | 9 + vendor/phpunit/phpunit/tests/bootstrap.php | 17 + .../tests/end-to-end/_files/Extension.php | 93 + .../tests/end-to-end/_files/HookTest.php | 52 + .../tests/end-to-end/_files/NullPrinter.php | 19 + .../end-to-end/_files/expect_external.txt | 1 + .../phpunit/tests/end-to-end/_files/hooks.xml | 14 + .../end-to-end/_files/phpt-env.expected.txt | 1 + .../tests/end-to-end/_files/phpt_external.php | 10 + .../tests/end-to-end/abstract-test-class.phpt | 24 + .../phpunit/tests/end-to-end/assertion.phpt | 38 + .../tests/end-to-end/cache-result.phpt | 29 + .../tests/end-to-end/cli/columns-max.phpt | 19 + .../phpunit/tests/end-to-end/cli/columns.phpt | 19 + .../cli/generate-configuration.phpt | 21 + .../end-to-end/cli/test-file-not-found.phpt | 12 + .../end-to-end/code-coverage-ignore.phpt | 36 + .../tests/end-to-end/code-coverage-phpt.phpt | 43 + .../tests/end-to-end/colors-always.phpt | 18 + .../tests/end-to-end/concrete-test-class.phpt | 18 + .../end-to-end/custom-printer-debug.phpt | 26 + .../end-to-end/custom-printer-verbose.phpt | 31 + .../tests/end-to-end/dataprovider-debug.phpt | 33 + .../end-to-end/dataprovider-issue-2833.phpt | 17 + .../end-to-end/dataprovider-issue-2859.phpt | 17 + .../end-to-end/dataprovider-issue-2922.phpt | 18 + .../dataprovider-log-xml-isolation.phpt | 46 + .../end-to-end/dataprovider-log-xml.phpt | 45 + .../end-to-end/dataprovider-testdox.phpt | 34 + .../phpunit/tests/end-to-end/debug.phpt | 25 + .../tests/end-to-end/default-isolation.phpt | 19 + .../phpunit/tests/end-to-end/default.phpt | 18 + .../defaulttestsuite-using-testsuite.phpt | 21 + .../tests/end-to-end/defaulttestsuite.phpt | 19 + .../defects-first-order-via-cli.phpt | 37 + .../tests/end-to-end/dependencies-clone.phpt | 22 + .../end-to-end/dependencies-isolation.phpt | 49 + .../tests/end-to-end/dependencies.phpt | 48 + .../end-to-end/dependencies2-isolation.phpt | 19 + .../tests/end-to-end/dependencies2.phpt | 18 + .../end-to-end/dependencies3-isolation.phpt | 19 + .../tests/end-to-end/dependencies3.phpt | 19 + .../disable-code-coverage-ignore.phpt | 40 + .../tests/end-to-end/dump-xdebug-filter.phpt | 32 + .../tests/end-to-end/empty-testcase.phpt | 25 + .../tests/end-to-end/exception-stack.phpt | 64 + .../end-to-end/exclude-group-isolation.phpt | 21 + .../tests/end-to-end/exclude-group.phpt | 20 + .../execution-order-options-via-config.phpt | 30 + .../tests/end-to-end/failure-isolation.phpt | 140 + .../end-to-end/failure-reverse-list.phpt | 140 + .../phpunit/tests/end-to-end/failure.phpt | 139 + .../tests/end-to-end/fatal-isolation.phpt | 24 + .../end-to-end/filter-class-isolation.phpt | 21 + .../tests/end-to-end/filter-class.phpt | 20 + ...ider-by-classname-and-range-isolation.phpt | 21 + ...r-dataprovider-by-classname-and-range.phpt | 20 + ...lter-dataprovider-by-number-isolation.phpt | 21 + .../filter-dataprovider-by-number.phpt | 20 + ...-dataprovider-by-only-range-isolation.phpt | 21 + .../filter-dataprovider-by-only-range.phpt | 20 + ...dataprovider-by-only-regexp-isolation.phpt | 21 + .../filter-dataprovider-by-only-regexp.phpt | 20 + ...dataprovider-by-only-string-isolation.phpt | 21 + .../filter-dataprovider-by-only-string.phpt | 20 + ...ilter-dataprovider-by-range-isolation.phpt | 21 + .../filter-dataprovider-by-range.phpt | 20 + ...lter-dataprovider-by-regexp-isolation.phpt | 21 + .../filter-dataprovider-by-regexp.phpt | 20 + ...lter-dataprovider-by-string-isolation.phpt | 21 + .../filter-dataprovider-by-string.phpt | 20 + .../filter-method-case-insensitive.phpt | 20 + ...ilter-method-case-sensitive-no-result.phpt | 20 + .../end-to-end/filter-method-isolation.phpt | 21 + .../tests/end-to-end/filter-method.phpt | 20 + .../tests/end-to-end/filter-no-results.phpt | 20 + .../end-to-end/forward-compatibility.phpt | 18 + .../tests/end-to-end/group-isolation.phpt | 21 + .../phpunit/tests/end-to-end/group.phpt | 23 + .../phpunit/tests/end-to-end/help.phpt | 113 + .../phpunit/tests/end-to-end/help2.phpt | 114 + .../phpunit/tests/end-to-end/hooks.phpt | 38 + .../tests/end-to-end/ini-isolation.phpt | 21 + .../phpunit/tests/end-to-end/list-groups.phpt | 18 + .../phpunit/tests/end-to-end/list-suites.phpt | 16 + .../end-to-end/list-tests-dataprovider.phpt | 19 + .../list-tests-xml-dataprovider.phpt | 31 + .../tests/end-to-end/log-junit-phpt.phpt | 28 + .../phpunit/tests/end-to-end/log-junit.phpt | 91 + .../tests/end-to-end/log-teamcity-phpt.phpt | 25 + .../tests/end-to-end/log-teamcity.phpt | 38 + .../mock-objects/generator/232.phpt | 135 + .../3154_namespaced_constant_resolving.phpt | 119 + .../mock-objects/generator/3530.phpt | 27 + .../mock-objects/generator/3967.phpt | 103 + .../mock-objects/generator/397.phpt | 105 + .../generator/abstract_class.phpt | 154 + .../mock-objects/generator/class.phpt | 132 + .../generator/class_call_parent_clone.phpt | 84 + .../class_call_parent_constructor.phpt | 83 + .../class_dont_call_parent_clone.phpt | 83 + .../class_dont_call_parent_constructor.phpt | 83 + ...ing_interface_call_parent_constructor.phpt | 88 + ...nterface_dont_call_parent_constructor.phpt | 88 + .../generator/class_nonexistent_method.phpt | 106 + .../mock-objects/generator/class_partial.phpt | 110 + .../class_with_deprecated_method.phpt | 112 + .../generator/class_with_final_method.phpt | 84 + .../class_with_method_named_method.phpt | 98 + ...ullable_typehinted_variadic_arguments.phpt | 106 + ...od_with_typehinted_variadic_arguments.phpt | 106 + ...s_with_method_with_variadic_arguments.phpt | 106 + .../constant_as_parameter_default_value.phpt | 106 + .../mock-objects/generator/interface.phpt | 104 + .../invocation_object_clone_object.phpt | 133 + .../generator/namespaced_class.phpt | 134 + .../namespaced_class_call_parent_clone.phpt | 86 + ...espaced_class_call_parent_constructor.phpt | 85 + ...mespaced_class_dont_call_parent_clone.phpt | 85 + ...ed_class_dont_call_parent_constructor.phpt | 85 + ...ing_interface_call_parent_constructor.phpt | 90 + ...nterface_dont_call_parent_constructor.phpt | 90 + .../generator/namespaced_class_partial.phpt | 112 + .../generator/namespaced_interface.phpt | 106 + .../generator/nonexistent_class.phpt | 81 + .../nonexistent_class_with_namespace.phpt | 89 + ...ith_namespace_starting_with_separator.phpt | 89 + .../generator/nullable_types.phpt | 106 + .../mock-objects/generator/proxy.phpt | 136 + .../return_type_declarations_closure.phpt | 104 + .../return_type_declarations_final.phpt | 111 + .../return_type_declarations_generator.phpt | 104 + .../return_type_declarations_nullable.phpt | 104 + ...eturn_type_declarations_object_method.phpt | 107 + .../return_type_declarations_parent.phpt | 110 + .../return_type_declarations_self.phpt | 104 + ...eturn_type_declarations_static_method.phpt | 90 + .../return_type_declarations_void.phpt | 102 + .../generator/scalar_type_declarations.phpt | 106 + .../mock-objects/generator/wsdl_class.phpt | 37 + .../generator/wsdl_class_namespace.phpt | 38 + .../generator/wsdl_class_partial.phpt | 30 + .../mock-method/call_original.phpt | 49 + .../call_original_with_argument.phpt | 49 + .../call_original_with_argument_variadic.phpt | 49 + .../call_original_with_return_type_void.phpt | 49 + .../mock-method/clone_method_arguments.phpt | 45 + .../deprecated_with_description.phpt | 50 + .../deprecated_without_description.phpt | 50 + .../mock-method/private_method.phpt | 45 + .../mock-method/protected_method.phpt | 45 + .../mock-method/return_by_reference.phpt | 45 + .../return_by_reference_with_return_type.phpt | 45 + .../mock-objects/mock-method/return_type.phpt | 45 + .../mock-method/return_type_parent.phpt | 49 + .../mock-method/return_type_self.phpt | 45 + .../mock-method/static_method.phpt | 28 + .../static_method_with_return_type.phpt | 28 + .../mock-method/with_argument.phpt | 45 + .../mock-method/with_argument_default.phpt | 45 + .../with_argument_default_constant.phpt | 50 + .../with_argument_default_null.phpt | 45 + .../mock-method/with_argument_nullable.phpt | 45 + .../mock-method/with_argument_reference.phpt | 45 + .../with_argument_typed_array.phpt | 45 + .../with_argument_typed_callable.phpt | 45 + .../with_argument_typed_class.phpt | 45 + .../with_argument_typed_scalar.phpt | 45 + .../mock-method/with_argument_typed_self.phpt | 45 + .../with_argument_typed_unkown_class.phpt | 45 + .../with_argument_typed_variadic.phpt | 45 + .../mock-method/with_argument_variadic.phpt | 45 + .../mock-method/with_arguments.phpt | 45 + .../phpunit/tests/end-to-end/mycommand.phpt | 24 + .../end-to-end/options-after-arguments.phpt | 18 + .../order-by-default-invalid-via-cli.phpt | 19 + .../tests/end-to-end/output-isolation.phpt | 20 + .../end-to-end/phar-extension-suppressed.phpt | 12 + .../tests/end-to-end/phar-extension.phpt | 21 + .../phpunit/tests/end-to-end/phpt-args.phpt | 12 + .../phpunit/tests/end-to-end/phpt-env.phpt | 12 + .../tests/end-to-end/phpt-external.phpt | 6 + .../tests/end-to-end/phpt-parsing.phpt | 26 + .../phpunit/tests/end-to-end/phpt-stderr.phpt | 8 + .../phpunit/tests/end-to-end/phpt-stdin.phpt | 11 + .../phpunit/tests/end-to-end/phpt-xfail.phpt | 18 + .../end-to-end/regression/GitHub/1149.phpt | 20 + .../regression/GitHub/1149/Issue1149Test.php | 28 + .../end-to-end/regression/GitHub/1216.phpt | 25 + .../regression/GitHub/1216/Issue1216Test.php | 18 + .../regression/GitHub/1216/bootstrap1216.php | 10 + .../regression/GitHub/1216/phpunit1216.xml | 8 + .../end-to-end/regression/GitHub/1265.phpt | 21 + .../regression/GitHub/1265/Issue1265Test.php | 18 + .../regression/GitHub/1265/phpunit1265.xml | 2 + .../end-to-end/regression/GitHub/1330.phpt | 24 + .../regression/GitHub/1330/Issue1330Test.php | 18 + .../regression/GitHub/1330/phpunit1330.xml | 5 + .../end-to-end/regression/GitHub/1335.phpt | 19 + .../regression/GitHub/1335/Issue1335Test.php | 77 + .../regression/GitHub/1335/bootstrap1335.php | 21 + .../end-to-end/regression/GitHub/1337.phpt | 19 + .../regression/GitHub/1337/Issue1337Test.php | 29 + .../end-to-end/regression/GitHub/1348.phpt | 33 + .../regression/GitHub/1348/Issue1348Test.php | 24 + .../end-to-end/regression/GitHub/1351.phpt | 46 + .../GitHub/1351/ChildProcessClass1351.php | 12 + .../regression/GitHub/1351/Issue1351Test.php | 59 + .../end-to-end/regression/GitHub/1374.phpt | 19 + .../regression/GitHub/1374/Issue1374Test.php | 31 + .../end-to-end/regression/GitHub/1437.phpt | 26 + .../regression/GitHub/1437/Issue1437Test.php | 19 + .../end-to-end/regression/GitHub/1468.phpt | 20 + .../regression/GitHub/1468/Issue1468Test.php | 21 + .../end-to-end/regression/GitHub/1471.phpt | 26 + .../regression/GitHub/1471/Issue1471Test.php | 22 + .../end-to-end/regression/GitHub/1472.phpt | 18 + .../regression/GitHub/1472/Issue1472Test.php | 31 + .../end-to-end/regression/GitHub/1570.phpt | 27 + .../regression/GitHub/1570/Issue1570Test.php | 18 + ...it-options-via-config-without-invoker.phpt | 33 + .../GitHub/2085-without-invoker.phpt | 34 + .../end-to-end/regression/GitHub/2085.phpt | 38 + .../regression/GitHub/2085/Issue2085Test.php | 20 + ...nfiguration_enforce_time_limit_options.xml | 2 + .../regression/GitHub/2137-filter.phpt | 28 + .../regression/GitHub/2137-no_filter.phpt | 30 + .../regression/GitHub/2137/Issue2137Test.php | 43 + .../end-to-end/regression/GitHub/2145.phpt | 27 + .../regression/GitHub/2145/Issue2145Test.php | 24 + .../end-to-end/regression/GitHub/2158.phpt | 19 + .../regression/GitHub/2158/Issue2158Test.php | 33 + .../regression/GitHub/2158/constant.inc | 5 + .../end-to-end/regression/GitHub/2366.phpt | 19 + .../regression/GitHub/2366/Issue2366Test.php | 41 + .../end-to-end/regression/GitHub/2380.phpt | 19 + .../regression/GitHub/2380/Issue2380Test.php | 29 + .../end-to-end/regression/GitHub/2382.phpt | 19 + .../regression/GitHub/2382/Issue2382Test.php | 30 + .../end-to-end/regression/GitHub/2435.phpt | 20 + .../regression/GitHub/2435/Issue2435Test.php | 16 + .../end-to-end/regression/GitHub/244.phpt | 32 + .../regression/GitHub/244/Issue244Test.php | 65 + .../regression/GitHub/2448-existing-test.phpt | 21 + .../GitHub/2448-not-existing-test.phpt | 13 + .../regression/GitHub/2448/Test.php | 16 + .../2724-diff-pid-from-master-process.phpt | 22 + ...SeparateClassRunMethodInNewProcessTest.php | 53 + .../2725-separate-class-before-after-pid.phpt | 18 + .../GitHub/2725/BeforeAfterClassPidTest.php | 50 + .../end-to-end/regression/GitHub/2731.phpt | 26 + .../regression/GitHub/2731/Issue2731Test.php | 19 + .../end-to-end/regression/GitHub/2811.phpt | 20 + .../regression/GitHub/2811/Issue2811Test.php | 18 + .../end-to-end/regression/GitHub/2830.phpt | 20 + .../regression/GitHub/2830/Issue2830Test.php | 27 + .../end-to-end/regression/GitHub/2972.phpt | 18 + .../GitHub/2972/issue-2972-test.phpt | 10 + .../2972/unconventiallyNamedIssue2972Test.php | 20 + .../regression/GitHub/3093/Issue3093Test.php | 30 + .../GitHub/3093/issue-3093-test.phpt | 19 + .../regression/GitHub/3107/Issue3107Test.php | 25 + .../GitHub/3107/issue-3107-test.phpt | 27 + .../regression/GitHub/3156/Issue3156Test.php | 41 + .../end-to-end/regression/GitHub/322.phpt | 27 + .../regression/GitHub/322/Issue322Test.php | 29 + .../regression/GitHub/322/phpunit322.xml | 11 + .../GitHub/3364/issue-3364-test.phpt | 58 + .../tests/Issue3364SetupBeforeClassTest.php | 30 + .../GitHub/3364/tests/Issue3364SetupTest.php | 30 + .../end-to-end/regression/GitHub/3379.phpt | 20 + .../regression/GitHub/3379/Issue3379Test.php | 28 + .../GitHub/3379/Issue3379TestListener.php | 26 + .../regression/GitHub/3379/phpunit.xml | 13 + .../GitHub/3380/issue-3380-test.phpt | 63 + .../GitHub/3396/issue-3396-test.phpt | 55 + .../end-to-end/regression/GitHub/433.phpt | 31 + .../regression/GitHub/433/Issue433Test.php | 31 + .../end-to-end/regression/GitHub/445.phpt | 32 + .../regression/GitHub/445/Issue445Test.php | 31 + .../end-to-end/regression/GitHub/498.phpt | 29 + .../regression/GitHub/498/Issue498Test.php | 53 + .../end-to-end/regression/GitHub/503.phpt | 35 + .../regression/GitHub/503/Issue503Test.php | 21 + .../end-to-end/regression/GitHub/581.phpt | 40 + .../regression/GitHub/581/Issue581Test.php | 21 + .../end-to-end/regression/GitHub/74.phpt | 28 + .../regression/GitHub/74/Issue74Test.php | 20 + .../regression/GitHub/74/NewException.php | 12 + .../end-to-end/regression/GitHub/765.phpt | 26 + .../regression/GitHub/765/Issue765Test.php | 32 + .../end-to-end/regression/GitHub/797.phpt | 22 + .../regression/GitHub/797/Issue797Test.php | 20 + .../regression/GitHub/797/bootstrap797.php | 13 + .../end-to-end/regression/GitHub/863.phpt | 24 + .../end-to-end/regression/GitHub/873.phpt | 21 + .../regression/GitHub/873/Issue873Test.php | 16 + .../end-to-end/regression/Trac/1021.phpt | 19 + .../regression/Trac/1021/Issue1021Test.php | 34 + .../tests/end-to-end/regression/Trac/523.phpt | 19 + .../regression/Trac/523/Issue523Test.php | 23 + .../tests/end-to-end/regression/Trac/578.phpt | 37 + .../regression/Trac/578/Issue578Test.php | 30 + .../tests/end-to-end/regression/Trac/684.phpt | 25 + .../regression/Trac/684/Issue684Test.php | 14 + .../tests/end-to-end/regression/Trac/783.phpt | 21 + .../regression/Trac/783/ChildSuite.php | 26 + .../regression/Trac/783/OneTest.php | 21 + .../regression/Trac/783/ParentSuite.php | 23 + .../regression/Trac/783/TwoTest.php | 21 + .../phpunit/tests/end-to-end/repeat.phpt | 20 + ...ated-with-does-not-perform-assertions.phpt | 24 + .../report-useless-tests-incomplete.phpt | 19 + .../report-useless-tests-isolation.phpt | 27 + .../end-to-end/report-useless-tests.phpt | 26 + .../end-to-end/separate-processes-test.phpt | 26 + .../end-to-end/stop-on-defect-via-cli.phpt | 25 + .../end-to-end/stop-on-defect-via-config.phpt | 25 + .../end-to-end/stop-on-error-via-cli.phpt | 27 + .../end-to-end/stop-on-error-via-config.phpt | 27 + .../stop-on-incomplete-via-cli.phpt | 20 + .../stop-on-incomplete-via-config.phpt | 20 + .../end-to-end/stop-on-warning-via-cli.phpt | 25 + .../stop-on-warning-via-config.phpt | 26 + .../end-to-end/teamcity-inner-exceptions.phpt | 39 + .../phpunit/tests/end-to-end/teamcity.phpt | 37 + ...mized-seed-with-dependency-resolution.phpt | 35 + ...randomized-with-dependency-resolution.phpt | 25 + ...r-reversed-with-dependency-resolution.phpt | 35 + ...eversed-without-dependency-resolution.phpt | 44 + .../end-to-end/test-suffix-multiple.phpt | 19 + .../tests/end-to-end/test-suffix-single.phpt | 19 + .../testdox-dataprovider-placeholder.phpt | 20 + .../end-to-end/testdox-exclude-group.phpt | 25 + .../tests/end-to-end/testdox-group.phpt | 25 + .../tests/end-to-end/testdox-html.phpt | 57 + .../tests/end-to-end/testdox-text.phpt | 25 + .../tests/end-to-end/testdox-verbose.phpt | 25 + .../phpunit/tests/end-to-end/testdox-xml.phpt | 64 + .../phpunit/tests/end-to-end/testdox.phpt | 22 + .../phpunit/tests/end-to-end/version.phpt | 13 + vendor/phpunit/phpunit/tests/fail/fail.phpt | 5 + .../tests/unit/Framework/AssertTest.php | 3368 +++++++++++ .../Framework/Constraint/ArrayHasKeyTest.php | 64 + .../Framework/Constraint/ArraySubsetTest.php | 86 + .../Framework/Constraint/AttributeTest.php | 80 + .../Framework/Constraint/CallbackTest.php | 65 + .../Constraint/ClassHasAttributeTest.php | 70 + .../ClassHasStaticAttributeTest.php | 66 + .../Constraint/ConstraintTestCase.php | 54 + .../unit/Framework/Constraint/CountTest.php | 155 + .../Constraint/DirectoryExistsTest.php | 66 + .../Constraint/ExceptionMessageRegExpTest.php | 53 + .../Constraint/ExceptionMessageTest.php | 47 + .../Framework/Constraint/FileExistsTest.php | 65 + .../Framework/Constraint/GreaterThanTest.php | 66 + .../unit/Framework/Constraint/IsEmptyTest.php | 77 + .../unit/Framework/Constraint/IsEqualTest.php | 321 ++ .../Framework/Constraint/IsIdenticalTest.php | 197 + .../Framework/Constraint/IsInstanceOfTest.php | 41 + .../unit/Framework/Constraint/IsJsonTest.php | 34 + .../unit/Framework/Constraint/IsNullTest.php | 66 + .../Framework/Constraint/IsReadableTest.php | 42 + .../unit/Framework/Constraint/IsTypeTest.php | 111 + .../Framework/Constraint/IsWritableTest.php | 42 + .../JsonMatchesErrorMessageProviderTest.php | 87 + .../Framework/Constraint/JsonMatchesTest.php | 94 + .../Framework/Constraint/LessThanTest.php | 66 + .../Framework/Constraint/LogicalAndTest.php | 237 + .../Framework/Constraint/LogicalOrTest.php | 232 + .../Framework/Constraint/LogicalXorTest.php | 44 + .../Constraint/ObjectHasAttributeTest.php | 66 + .../Constraint/RegularExpressionTest.php | 66 + .../Framework/Constraint/SameSizeTest.php | 62 + .../Constraint/StringContainsTest.php | 96 + .../Constraint/StringEndsWithTest.php | 103 + .../StringMatchesFormatDescriptionTest.php | 278 + .../Constraint/StringStartsWithTest.php | 110 + .../Constraint/TraversableContainsTest.php | 170 + .../tests/unit/Framework/ConstraintTest.php | 1492 +++++ .../unit/Framework/ExceptionWrapperTest.php | 55 + .../Builder/InvocationMockerTest.php | 89 + .../Framework/MockObject/GeneratorTest.php | 260 + .../Invocation/ObjectInvocationTest.php | 120 + .../Invocation/StaticInvocationTest.php | 114 + .../Matcher/ConsecutiveParametersTest.php | 86 + .../Framework/MockObject/MockBuilderTest.php | 129 + .../Framework/MockObject/MockMethodTest.php | 55 + .../Framework/MockObject/MockObjectTest.php | 1135 ++++ .../Framework/MockObject/ProxyObjectTest.php | 93 + .../tests/unit/Framework/TestCaseTest.php | 779 +++ .../tests/unit/Framework/TestFailureTest.php | 141 + .../unit/Framework/TestImplementorTest.php | 25 + .../tests/unit/Framework/TestListenerTest.php | 60 + .../tests/unit/Framework/TestResultTest.php | 90 + .../unit/Framework/TestSuiteIteratorTest.php | 216 + .../tests/unit/Framework/TestSuiteTest.php | 250 + .../Runner/Filter/NameFilterIteratorTest.php | 38 + .../tests/unit/Runner/PhptTestCaseTest.php | 349 ++ .../unit/Runner/ResultCacheExtensionTest.php | 139 + .../tests/unit/Runner/TestSuiteSorterTest.php | 608 ++ .../tests/unit/TextUI/TestRunnerTest.php | 49 + .../unit/Util/ConfigurationGeneratorTest.php | 51 + .../tests/unit/Util/ConfigurationTest.php | 614 ++ .../phpunit/tests/unit/Util/GetoptTest.php | 214 + .../tests/unit/Util/GlobalStateTest.php | 35 + .../phpunit/tests/unit/Util/JsonTest.php | 80 + .../unit/Util/NullTestResultCacheTest.php | 28 + .../unit/Util/PHP/AbstractPhpProcessTest.php | 119 + .../tests/unit/Util/RegularExpressionTest.php | 56 + .../Util/TestDox/CliTestDoxPrinterTest.php | 209 + .../unit/Util/TestDox/NamePrettifierTest.php | 172 + .../tests/unit/Util/TestResultCacheTest.php | 95 + .../phpunit/tests/unit/Util/TestTest.php | 1056 ++++ .../Util/XDebugFilterScriptGeneratorTest.php | 85 + .../phpunit/tests/unit/Util/XmlTest.php | 119 + .../wordpress-core-installer/.editorconfig | 24 + .../roots/wordpress-core-installer/LICENSE.md | 339 ++ .../wordpress-core-installer/composer.json | 54 + .../src/WordPressCoreInstaller.php | 112 + .../src/WordPressCorePlugin.php | 53 + .../code-unit-reverse-lookup/ChangeLog.md | 20 + .../code-unit-reverse-lookup/LICENSE | 33 + .../code-unit-reverse-lookup/README.md | 14 + .../code-unit-reverse-lookup/composer.json | 28 + .../code-unit-reverse-lookup/src/Wizard.php | 111 + vendor/sebastian/comparator/ChangeLog.md | 80 + vendor/sebastian/comparator/LICENSE | 33 + vendor/sebastian/comparator/README.md | 37 + vendor/sebastian/comparator/composer.json | 54 + .../comparator/src/ArrayComparator.php | 130 + .../sebastian/comparator/src/Comparator.php | 61 + .../comparator/src/ComparisonFailure.php | 128 + .../comparator/src/DOMNodeComparator.php | 86 + .../comparator/src/DateTimeComparator.php | 86 + .../comparator/src/DoubleComparator.php | 58 + .../comparator/src/ExceptionComparator.php | 52 + vendor/sebastian/comparator/src/Factory.php | 137 + .../comparator/src/MockObjectComparator.php | 47 + .../comparator/src/NumericComparator.php | 66 + .../comparator/src/ObjectComparator.php | 106 + .../comparator/src/ResourceComparator.php | 52 + .../comparator/src/ScalarComparator.php | 91 + .../src/SplObjectStorageComparator.php | 69 + .../comparator/src/TypeComparator.php | 59 + vendor/sebastian/diff/ChangeLog.md | 80 + vendor/sebastian/diff/LICENSE | 33 + vendor/sebastian/diff/README.md | 195 + vendor/sebastian/diff/composer.json | 39 + vendor/sebastian/diff/src/Chunk.php | 90 + vendor/sebastian/diff/src/Diff.php | 67 + vendor/sebastian/diff/src/Differ.php | 330 ++ .../src/Exception/ConfigurationException.php | 40 + .../diff/src/Exception/Exception.php | 15 + .../Exception/InvalidArgumentException.php | 15 + vendor/sebastian/diff/src/Line.php | 44 + .../LongestCommonSubsequenceCalculator.php | 24 + ...ientLongestCommonSubsequenceCalculator.php | 86 + .../src/Output/AbstractChunkOutputBuilder.php | 56 + .../diff/src/Output/DiffOnlyOutputBuilder.php | 68 + .../src/Output/DiffOutputBuilderInterface.php | 20 + .../Output/StrictUnifiedDiffOutputBuilder.php | 318 + .../src/Output/UnifiedDiffOutputBuilder.php | 264 + vendor/sebastian/diff/src/Parser.php | 106 + ...ientLongestCommonSubsequenceCalculator.php | 78 + vendor/sebastian/environment/ChangeLog.md | 132 + vendor/sebastian/environment/LICENSE | 33 + vendor/sebastian/environment/README.md | 17 + vendor/sebastian/environment/composer.json | 37 + vendor/sebastian/environment/src/Console.php | 164 + .../environment/src/OperatingSystem.php | 48 + vendor/sebastian/environment/src/Runtime.php | 265 + vendor/sebastian/exporter/ChangeLog.md | 47 + vendor/sebastian/exporter/LICENSE | 33 + vendor/sebastian/exporter/README.md | 169 + vendor/sebastian/exporter/composer.json | 53 + vendor/sebastian/exporter/src/Exporter.php | 380 ++ vendor/sebastian/global-state/.gitignore | 4 + vendor/sebastian/global-state/.php_cs | 79 + vendor/sebastian/global-state/.travis.yml | 26 + vendor/sebastian/global-state/LICENSE | 33 + vendor/sebastian/global-state/README.md | 16 + vendor/sebastian/global-state/build.xml | 22 + vendor/sebastian/global-state/composer.json | 40 + vendor/sebastian/global-state/phpunit.xml | 24 + .../sebastian/global-state/src/Blacklist.php | 123 + .../global-state/src/CodeExporter.php | 94 + .../sebastian/global-state/src/Restorer.php | 137 + .../sebastian/global-state/src/Snapshot.php | 368 ++ .../global-state/src/exceptions/Exception.php | 17 + .../src/exceptions/RuntimeException.php | 17 + .../global-state/tests/BlacklistTest.php | 120 + .../global-state/tests/CodeExporterTest.php | 38 + .../global-state/tests/RestorerTest.php | 105 + .../global-state/tests/SnapshotTest.php | 116 + .../tests/_fixture/BlacklistedChildClass.php | 17 + .../tests/_fixture/BlacklistedClass.php | 18 + .../tests/_fixture/BlacklistedImplementor.php | 18 + .../tests/_fixture/BlacklistedInterface.php | 17 + .../tests/_fixture/SnapshotClass.php | 37 + .../tests/_fixture/SnapshotDomDocument.php | 19 + .../tests/_fixture/SnapshotFunctions.php | 17 + .../tests/_fixture/SnapshotTrait.php | 17 + .../sebastian/object-enumerator/ChangeLog.md | 65 + vendor/sebastian/object-enumerator/LICENSE | 33 + vendor/sebastian/object-enumerator/README.md | 14 + .../sebastian/object-enumerator/composer.json | 35 + .../object-enumerator/src/Enumerator.php | 85 + .../object-enumerator/src/Exception.php | 15 + .../src/InvalidArgumentException.php | 15 + .../sebastian/object-reflector/ChangeLog.md | 32 + vendor/sebastian/object-reflector/LICENSE | 33 + vendor/sebastian/object-reflector/README.md | 14 + .../sebastian/object-reflector/composer.json | 33 + .../object-reflector/src/Exception.php | 17 + .../src/InvalidArgumentException.php | 17 + .../object-reflector/src/ObjectReflector.php | 51 + vendor/sebastian/recursion-context/LICENSE | 33 + vendor/sebastian/recursion-context/README.md | 14 + .../sebastian/recursion-context/composer.json | 36 + .../recursion-context/src/Context.php | 167 + .../recursion-context/src/Exception.php | 17 + .../src/InvalidArgumentException.php | 17 + .../resource-operations/ChangeLog.md | 38 + vendor/sebastian/resource-operations/LICENSE | 33 + .../sebastian/resource-operations/README.md | 14 + .../resource-operations/composer.json | 33 + .../src/ResourceOperations.php | 2232 ++++++++ vendor/sebastian/version/.gitattributes | 1 + vendor/sebastian/version/.gitignore | 1 + vendor/sebastian/version/.php_cs | 66 + vendor/sebastian/version/LICENSE | 33 + vendor/sebastian/version/README.md | 43 + vendor/sebastian/version/composer.json | 29 + vendor/sebastian/version/src/Version.php | 109 + vendor/theseer/tokenizer/CHANGELOG.md | 87 + vendor/theseer/tokenizer/LICENSE | 30 + vendor/theseer/tokenizer/README.md | 47 + vendor/theseer/tokenizer/composer.json | 27 + vendor/theseer/tokenizer/composer.lock | 22 + vendor/theseer/tokenizer/src/Exception.php | 5 + vendor/theseer/tokenizer/src/NamespaceUri.php | 25 + .../tokenizer/src/NamespaceUriException.php | 5 + vendor/theseer/tokenizer/src/Token.php | 35 + .../theseer/tokenizer/src/TokenCollection.php | 93 + .../src/TokenCollectionException.php | 5 + vendor/theseer/tokenizer/src/Tokenizer.php | 147 + .../theseer/tokenizer/src/XMLSerializer.php | 79 + vendor/webmozart/assert/CHANGELOG.md | 207 + vendor/webmozart/assert/LICENSE | 20 + vendor/webmozart/assert/README.md | 287 + vendor/webmozart/assert/composer.json | 43 + vendor/webmozart/assert/src/Assert.php | 2080 +++++++ .../assert/src/InvalidArgumentException.php | 16 + vendor/webmozart/assert/src/Mixin.php | 5089 +++++++++++++++++ vendor/wp-phpunit/wp-phpunit/README.md | 11 + vendor/wp-phpunit/wp-phpunit/__loaded.php | 8 + vendor/wp-phpunit/wp-phpunit/composer.json | 30 + .../WPHTTP-testcase-redirection-script.php | 139 + .../data/blocks/do-blocks-expected.html | 22 + .../data/blocks/do-blocks-original.html | 25 + .../core__4-invalid-starting-letter.html | 1 + .../core__4-invalid-starting-letter.json | 12 + ...ore__4-invalid-starting-letter.parsed.json | 11 + ..._4-invalid-starting-letter.serialized.html | 1 + ...ore__4-invalid-starting-letter.server.html | 1 + .../data/blocks/fixtures/core__archives.html | 1 + .../data/blocks/fixtures/core__archives.json | 13 + .../fixtures/core__archives.parsed.json | 12 + .../fixtures/core__archives.serialized.html | 1 + .../fixtures/core__archives.server.html | 1 + .../core__archives__showPostCounts.html | 1 + .../core__archives__showPostCounts.json | 13 + ...core__archives__showPostCounts.parsed.json | 12 + ...__archives__showPostCounts.serialized.html | 1 + ...core__archives__showPostCounts.server.html | 1 + .../data/blocks/fixtures/core__audio.html | 5 + .../data/blocks/fixtures/core__audio.json | 16 + .../blocks/fixtures/core__audio.parsed.json | 18 + .../fixtures/core__audio.serialized.html | 3 + .../blocks/fixtures/core__audio.server.html | 5 + .../data/blocks/fixtures/core__block.html | 1 + .../data/blocks/fixtures/core__block.json | 12 + .../blocks/fixtures/core__block.parsed.json | 18 + .../fixtures/core__block.serialized.html | 1 + .../blocks/fixtures/core__block.server.html | 1 + .../blocks/fixtures/core__button__center.html | 3 + .../blocks/fixtures/core__button__center.json | 14 + .../fixtures/core__button__center.parsed.json | 18 + .../core__button__center.serialized.html | 3 + .../fixtures/core__button__center.server.html | 3 + .../blocks/fixtures/core__categories.html | 1 + .../blocks/fixtures/core__categories.json | 14 + .../fixtures/core__categories.parsed.json | 20 + .../fixtures/core__categories.serialized.html | 1 + .../fixtures/core__categories.server.html | 1 + .../data/blocks/fixtures/core__code.html | 5 + .../data/blocks/fixtures/core__code.json | 12 + .../blocks/fixtures/core__code.parsed.json | 16 + .../fixtures/core__code.serialized.html | 5 + .../blocks/fixtures/core__code.server.html | 5 + .../data/blocks/fixtures/core__column.html | 10 + .../data/blocks/fixtures/core__column.json | 33 + .../blocks/fixtures/core__column.parsed.json | 31 + .../fixtures/core__column.serialized.html | 9 + .../blocks/fixtures/core__column.server.html | 10 + .../data/blocks/fixtures/core__columns.html | 24 + .../data/blocks/fixtures/core__columns.json | 75 + .../blocks/fixtures/core__columns.parsed.json | 91 + .../fixtures/core__columns.serialized.html | 21 + .../blocks/fixtures/core__columns.server.html | 24 + .../fixtures/core__columns__deprecated.html | 16 + .../fixtures/core__columns__deprecated.json | 85 + .../core__columns__deprecated.parsed.json | 75 + .../core__columns__deprecated.serialized.html | 23 + .../core__columns__deprecated.server.html | 16 + .../blocks/fixtures/core__cover-image.html | 5 + .../blocks/fixtures/core__cover-image.json | 16 + .../fixtures/core__cover-image.parsed.json | 23 + .../core__cover-image.serialized.html | 3 + .../fixtures/core__cover-image.server.html | 5 + .../data/blocks/fixtures/core__cover.html | 5 + .../data/blocks/fixtures/core__cover.json | 17 + .../blocks/fixtures/core__cover.parsed.json | 23 + .../fixtures/core__cover.serialized.html | 3 + .../blocks/fixtures/core__cover.server.html | 5 + .../fixtures/core__cover__video-overlay.html | 6 + .../fixtures/core__cover__video-overlay.json | 18 + .../core__cover__video-overlay.parsed.json | 25 + ...core__cover__video-overlay.serialized.html | 3 + .../core__cover__video-overlay.server.html | 6 + .../blocks/fixtures/core__cover__video.html | 6 + .../blocks/fixtures/core__cover__video.json | 17 + .../fixtures/core__cover__video.parsed.json | 24 + .../core__cover__video.serialized.html | 3 + .../fixtures/core__cover__video.server.html | 6 + .../data/blocks/fixtures/core__embed.html | 8 + .../data/blocks/fixtures/core__embed.json | 14 + .../blocks/fixtures/core__embed.parsed.json | 22 + .../fixtures/core__embed.serialized.html | 5 + .../blocks/fixtures/core__embed.server.html | 8 + .../fixtures/core__file__new-window.html | 3 + .../fixtures/core__file__new-window.json | 18 + .../core__file__new-window.parsed.json | 24 + .../core__file__new-window.serialized.html | 3 + .../core__file__new-window.server.html | 3 + .../core__file__no-download-button.html | 3 + .../core__file__no-download-button.json | 17 + ...core__file__no-download-button.parsed.json | 24 + ...__file__no-download-button.serialized.html | 3 + ...core__file__no-download-button.server.html | 3 + .../fixtures/core__file__no-text-link.html | 3 + .../fixtures/core__file__no-text-link.json | 16 + .../core__file__no-text-link.parsed.json | 24 + .../core__file__no-text-link.serialized.html | 3 + .../core__file__no-text-link.server.html | 3 + .../data/blocks/fixtures/core__freeform.html | 6 + .../data/blocks/fixtures/core__freeform.json | 12 + .../fixtures/core__freeform.parsed.json | 20 + .../fixtures/core__freeform.serialized.html | 4 + .../fixtures/core__freeform.server.html | 6 + .../fixtures/core__freeform__undelimited.html | 4 + .../fixtures/core__freeform__undelimited.json | 12 + .../core__freeform__undelimited.parsed.json | 11 + ...ore__freeform__undelimited.serialized.html | 4 + .../core__freeform__undelimited.server.html | 4 + .../data/blocks/fixtures/core__gallery.html | 14 + .../data/blocks/fixtures/core__gallery.json | 25 + .../blocks/fixtures/core__gallery.parsed.json | 20 + .../fixtures/core__gallery.serialized.html | 3 + .../blocks/fixtures/core__gallery.server.html | 14 + .../fixtures/core__gallery__columns.html | 14 + .../fixtures/core__gallery__columns.json | 26 + .../core__gallery__columns.parsed.json | 22 + .../core__gallery__columns.serialized.html | 3 + .../core__gallery__columns.server.html | 14 + .../blocks/fixtures/core__heading__h2-em.html | 3 + .../blocks/fixtures/core__heading__h2-em.json | 13 + .../fixtures/core__heading__h2-em.parsed.json | 20 + .../core__heading__h2-em.serialized.html | 3 + .../fixtures/core__heading__h2-em.server.html | 3 + .../blocks/fixtures/core__heading__h2.html | 3 + .../blocks/fixtures/core__heading__h2.json | 13 + .../fixtures/core__heading__h2.parsed.json | 20 + .../core__heading__h2.serialized.html | 3 + .../fixtures/core__heading__h2.server.html | 3 + .../data/blocks/fixtures/core__html.html | 4 + .../data/blocks/fixtures/core__html.json | 12 + .../blocks/fixtures/core__html.parsed.json | 20 + .../fixtures/core__html.serialized.html | 4 + .../blocks/fixtures/core__html.server.html | 4 + .../data/blocks/fixtures/core__image.html | 3 + .../data/blocks/fixtures/core__image.json | 15 + .../blocks/fixtures/core__image.parsed.json | 20 + .../fixtures/core__image.serialized.html | 3 + .../blocks/fixtures/core__image.server.html | 3 + .../core__image__attachment-link.html | 3 + .../core__image__attachment-link.json | 16 + .../core__image__attachment-link.parsed.json | 22 + ...re__image__attachment-link.serialized.html | 3 + .../core__image__attachment-link.server.html | 3 + .../fixtures/core__image__center-caption.html | 3 + .../fixtures/core__image__center-caption.json | 16 + .../core__image__center-caption.parsed.json | 22 + ...ore__image__center-caption.serialized.html | 3 + .../core__image__center-caption.server.html | 3 + .../fixtures/core__image__custom-link.html | 3 + .../fixtures/core__image__custom-link.json | 16 + .../core__image__custom-link.parsed.json | 22 + .../core__image__custom-link.serialized.html | 3 + .../core__image__custom-link.server.html | 3 + .../fixtures/core__image__media-link.html | 3 + .../fixtures/core__image__media-link.json | 16 + .../core__image__media-link.parsed.json | 22 + .../core__image__media-link.serialized.html | 3 + .../core__image__media-link.server.html | 3 + .../fixtures/core__invalid-Capitals.html | 1 + .../fixtures/core__invalid-Capitals.json | 12 + .../core__invalid-Capitals.parsed.json | 11 + .../core__invalid-Capitals.serialized.html | 1 + .../core__invalid-Capitals.server.html | 1 + .../fixtures/core__invalid-special.html | 1 + .../fixtures/core__invalid-special.json | 12 + .../core__invalid-special.parsed.json | 11 + .../core__invalid-special.serialized.html | 1 + .../core__invalid-special.server.html | 1 + .../fixtures/core__latest-comments.html | 1 + .../fixtures/core__latest-comments.json | 15 + .../core__latest-comments.parsed.json | 22 + .../core__latest-comments.serialized.html | 1 + .../core__latest-comments.server.html | 1 + .../blocks/fixtures/core__latest-posts.html | 1 + .../blocks/fixtures/core__latest-posts.json | 17 + .../fixtures/core__latest-posts.parsed.json | 21 + .../core__latest-posts.serialized.html | 1 + .../fixtures/core__latest-posts.server.html | 1 + .../core__latest-posts__displayPostDate.html | 1 + .../core__latest-posts__displayPostDate.json | 17 + ..._latest-posts__displayPostDate.parsed.json | 21 + ...est-posts__displayPostDate.serialized.html | 1 + ..._latest-posts__displayPostDate.server.html | 1 + .../data/blocks/fixtures/core__list__ul.html | 3 + .../data/blocks/fixtures/core__list__ul.json | 13 + .../fixtures/core__list__ul.parsed.json | 20 + .../fixtures/core__list__ul.serialized.html | 3 + .../fixtures/core__list__ul.server.html | 3 + .../blocks/fixtures/core__media-text.html | 12 + .../blocks/fixtures/core__media-text.json | 33 + .../fixtures/core__media-text.parsed.json | 38 + .../fixtures/core__media-text.serialized.html | 5 + .../fixtures/core__media-text.server.html | 12 + .../core__media-text__image-alt-no-align.html | 12 + .../core__media-text__image-alt-no-align.json | 33 + ...media-text__image-alt-no-align.parsed.json | 39 + ...a-text__image-alt-no-align.serialized.html | 5 + ...media-text__image-alt-no-align.server.html | 12 + ...ore__media-text__is-stacked-on-mobile.html | 12 + ...ore__media-text__is-stacked-on-mobile.json | 33 + ...dia-text__is-stacked-on-mobile.parsed.json | 39 + ...text__is-stacked-on-mobile.serialized.html | 5 + ...dia-text__is-stacked-on-mobile.server.html | 12 + ..._media-text__media-right-custom-width.html | 12 + ..._media-text__media-right-custom-width.json | 34 + ...text__media-right-custom-width.parsed.json | 42 + ...__media-right-custom-width.serialized.html | 5 + ...text__media-right-custom-width.server.html | 12 + .../fixtures/core__media-text__video.html | 12 + .../fixtures/core__media-text__video.json | 33 + .../core__media-text__video.parsed.json | 38 + .../core__media-text__video.serialized.html | 5 + .../core__media-text__video.server.html | 12 + .../data/blocks/fixtures/core__missing.html | 6 + .../data/blocks/fixtures/core__missing.json | 14 + .../blocks/fixtures/core__missing.parsed.json | 19 + .../fixtures/core__missing.serialized.html | 6 + .../blocks/fixtures/core__missing.server.html | 6 + .../data/blocks/fixtures/core__more.html | 3 + .../data/blocks/fixtures/core__more.json | 12 + .../blocks/fixtures/core__more.parsed.json | 16 + .../fixtures/core__more.serialized.html | 3 + .../blocks/fixtures/core__more.server.html | 3 + .../core__more__custom-text-teaser.html | 4 + .../core__more__custom-text-teaser.json | 13 + ...core__more__custom-text-teaser.parsed.json | 19 + ...__more__custom-text-teaser.serialized.html | 4 + ...core__more__custom-text-teaser.server.html | 4 + .../data/blocks/fixtures/core__nextpage.html | 3 + .../data/blocks/fixtures/core__nextpage.json | 10 + .../fixtures/core__nextpage.parsed.json | 16 + .../fixtures/core__nextpage.serialized.html | 3 + .../fixtures/core__nextpage.server.html | 3 + .../core__paragraph__align-right.html | 3 + .../core__paragraph__align-right.json | 14 + .../core__paragraph__align-right.parsed.json | 18 + ...re__paragraph__align-right.serialized.html | 3 + .../core__paragraph__align-right.server.html | 3 + .../fixtures/core__paragraph__deprecated.html | 3 + .../fixtures/core__paragraph__deprecated.json | 13 + .../core__paragraph__deprecated.parsed.json | 16 + ...ore__paragraph__deprecated.serialized.html | 3 + .../core__paragraph__deprecated.server.html | 3 + .../blocks/fixtures/core__preformatted.html | 3 + .../blocks/fixtures/core__preformatted.json | 12 + .../fixtures/core__preformatted.parsed.json | 16 + .../core__preformatted.serialized.html | 3 + .../fixtures/core__preformatted.server.html | 3 + .../data/blocks/fixtures/core__pullquote.html | 7 + .../data/blocks/fixtures/core__pullquote.json | 13 + .../fixtures/core__pullquote.parsed.json | 16 + .../fixtures/core__pullquote.serialized.html | 3 + .../fixtures/core__pullquote.server.html | 7 + .../core__pullquote__multi-paragraph.html | 9 + .../core__pullquote__multi-paragraph.json | 13 + ...re__pullquote__multi-paragraph.parsed.json | 16 + ...pullquote__multi-paragraph.serialized.html | 3 + ...re__pullquote__multi-paragraph.server.html | 9 + .../blocks/fixtures/core__quote__style-1.html | 3 + .../blocks/fixtures/core__quote__style-1.json | 13 + .../fixtures/core__quote__style-1.parsed.json | 16 + .../core__quote__style-1.serialized.html | 3 + .../fixtures/core__quote__style-1.server.html | 3 + .../blocks/fixtures/core__quote__style-2.html | 3 + .../blocks/fixtures/core__quote__style-2.json | 14 + .../fixtures/core__quote__style-2.parsed.json | 18 + .../core__quote__style-2.serialized.html | 3 + .../fixtures/core__quote__style-2.server.html | 3 + .../data/blocks/fixtures/core__separator.html | 3 + .../data/blocks/fixtures/core__separator.json | 10 + .../fixtures/core__separator.parsed.json | 16 + .../fixtures/core__separator.serialized.html | 3 + .../fixtures/core__separator.server.html | 3 + .../data/blocks/fixtures/core__shortcode.html | 3 + .../data/blocks/fixtures/core__shortcode.json | 12 + .../fixtures/core__shortcode.parsed.json | 16 + .../fixtures/core__shortcode.serialized.html | 3 + .../fixtures/core__shortcode.server.html | 2 + .../data/blocks/fixtures/core__spacer.html | 3 + .../data/blocks/fixtures/core__spacer.json | 12 + .../blocks/fixtures/core__spacer.parsed.json | 16 + .../fixtures/core__spacer.serialized.html | 3 + .../blocks/fixtures/core__spacer.server.html | 3 + .../data/blocks/fixtures/core__subhead.html | 3 + .../data/blocks/fixtures/core__subhead.json | 12 + .../blocks/fixtures/core__subhead.parsed.json | 16 + .../fixtures/core__subhead.serialized.html | 3 + .../blocks/fixtures/core__subhead.server.html | 3 + .../data/blocks/fixtures/core__table.html | 3 + .../data/blocks/fixtures/core__table.json | 145 + .../blocks/fixtures/core__table.parsed.json | 16 + .../fixtures/core__table.serialized.html | 3 + .../blocks/fixtures/core__table.server.html | 3 + .../blocks/fixtures/core__text-columns.html | 10 + .../blocks/fixtures/core__text-columns.json | 21 + .../fixtures/core__text-columns.parsed.json | 18 + .../core__text-columns.serialized.html | 3 + .../fixtures/core__text-columns.server.html | 10 + .../core__text__converts-to-paragraph.html | 3 + .../core__text__converts-to-paragraph.json | 13 + ...e__text__converts-to-paragraph.parsed.json | 16 + ...ext__converts-to-paragraph.serialized.html | 3 + ...e__text__converts-to-paragraph.server.html | 3 + .../data/blocks/fixtures/core__verse.html | 3 + .../data/blocks/fixtures/core__verse.json | 12 + .../blocks/fixtures/core__verse.parsed.json | 16 + .../fixtures/core__verse.serialized.html | 3 + .../blocks/fixtures/core__verse.server.html | 3 + .../data/blocks/fixtures/core__video.html | 3 + .../data/blocks/fixtures/core__video.json | 18 + .../blocks/fixtures/core__video.parsed.json | 16 + .../fixtures/core__video.serialized.html | 3 + .../blocks/fixtures/core__video.server.html | 3 + .../data/blocks/notice/block-rtl.css | 1 + .../data/blocks/notice/block.asset.php | 6 + .../wp-phpunit/data/blocks/notice/block.css | 1 + .../wp-phpunit/data/blocks/notice/block.js | 1 + .../wp-phpunit/data/blocks/notice/block.json | 62 + .../blocks/pattern-directory/browse-all.json | 53 + .../pattern-directory/browse-category-2.json | 36 + .../pattern-directory/browse-keyword-11.json | 53 + .../pattern-directory/search-button.json | 70 + .../data/export/crazy-cdata-escaped.xml | 46 + .../wp-phpunit/data/export/crazy-cdata.xml | 46 + .../data/export/invalid-version-tag.xml | 91 + .../wp-phpunit/data/export/malformed.xml | 91 + .../data/export/missing-version-tag.xml | 90 + .../wp-phpunit/data/export/slashes.xml | 77 + .../wp-phpunit/data/export/small-export.xml | 447 ++ .../test-serialized-postmeta-no-cdata.xml | 69 + .../test-serialized-postmeta-with-cdata.xml | 77 + .../data/export/test-utw-post-meta-import.xml | 69 + .../wp-phpunit/data/export/valid-wxr-1.0.xml | 282 + .../wp-phpunit/data/export/valid-wxr-1.1.xml | 112 + .../data/feed/wordpress-org-news.xml | 910 +++ .../wp-phpunit/data/formatting/big5.txt | 5 + .../wp-phpunit/data/formatting/entities.txt | 255 + .../file-header-cr-line-endings.php | 1 + .../file-header-php-open-tag-prefix.php | 1 + .../formatting/remove_accents.01.input.txt | 1 + .../wp-phpunit/data/formatting/sizzle.js | 1445 +++++ .../wp-phpunit/data/formatting/utf-8/README | 15 + .../data/formatting/utf-8/urlencode.py | 33 + .../data/formatting/utf-8/urlencoded.txt | 6 + .../data/formatting/utf-8/utf-8.txt | 6 + .../data/formatting/whole-posts.php | 1282 +++++ .../wp-phpunit/data/formatting/windows1252.py | 27 + .../wp-phpunit/data/formatting/xssAttacks.xml | 976 ++++ .../wp-phpunit/data/functions/dummy.txt | 1 + .../data/images/2004-07-22-DSC_0007.jpg | Bin 0 -> 87348 bytes .../data/images/2004-07-22-DSC_0008.jpg | Bin 0 -> 112149 bytes .../data/images/2007-06-17DSC_4173.JPG | Bin 0 -> 95186 bytes .../wp-phpunit/data/images/33772.jpg | Bin 0 -> 176615 bytes .../wp-phpunit/data/images/a2-small.jpg | Bin 0 -> 48641 bytes .../wp-phpunit/data/images/canola.jpg | Bin 0 -> 203156 bytes .../wp-phpunit/data/images/codeispoetry.png | Bin 0 -> 3107 bytes .../data/images/gradient-square.jpg | Bin 0 -> 1053 bytes .../data/images/one-blue-pixel-1-100x100.png | Bin 0 -> 320 bytes .../data/images/one-blue-pixel-100x100.png | Bin 0 -> 320 bytes .../data/images/sugarloaf-mountain.jpg | Bin 0 -> 46269 bytes .../data/images/test-image-1-100x100.jpg | Bin 0 -> 2028 bytes .../wp-phpunit/data/images/test-image-2.gif | Bin 0 -> 524 bytes .../wp-phpunit/data/images/test-image-3.jpg | Bin 0 -> 2028 bytes .../wp-phpunit/data/images/test-image-4.png | Bin 0 -> 1011 bytes .../data/images/test-image-cmyk.jpg | Bin 0 -> 11942 bytes .../data/images/test-image-grayscale.jpg | Bin 0 -> 10951 bytes .../data/images/test-image-iptc.jpg | Bin 0 -> 2152 bytes .../data/images/test-image-large.jpg | Bin 0 -> 29575 bytes .../data/images/test-image-lzw.tiff | Bin 0 -> 10404 bytes .../data/images/test-image-mime-jpg.png | Bin 0 -> 2028 bytes .../data/images/test-image-no-extension | Bin 0 -> 524 bytes .../data/images/test-image-upside-down.jpg | Bin 0 -> 140965 bytes .../data/images/test-image-zip.tiff | Bin 0 -> 1922 bytes .../wp-phpunit/data/images/test-image.bmp | Bin 0 -> 10054 bytes .../wp-phpunit/data/images/test-image.gif | Bin 0 -> 524 bytes .../wp-phpunit/data/images/test-image.ico | Bin 0 -> 7358 bytes .../wp-phpunit/data/images/test-image.jp2 | Bin 0 -> 705 bytes .../wp-phpunit/data/images/test-image.jpg | Bin 0 -> 2028 bytes .../wp-phpunit/data/images/test-image.pct | Bin 0 -> 12046 bytes .../wp-phpunit/data/images/test-image.png | Bin 0 -> 1011 bytes .../wp-phpunit/data/images/test-image.psd | Bin 0 -> 41154 bytes .../wp-phpunit/data/images/test-image.sgi | Bin 0 -> 4026 bytes .../wp-phpunit/data/images/test-image.tga | Bin 0 -> 1516 bytes .../wp-phpunit/data/images/test-image.tiff | Bin 0 -> 10404 bytes .../wp-phpunit/data/images/test-image.webp | Bin 0 -> 366 bytes .../wp-phpunit/data/images/transparent.png | Bin 0 -> 47037 bytes .../wp-phpunit/data/images/waffles.jpg | Bin 0 -> 68655 bytes .../wp-phpunit/data/images/webp-animated.webp | Bin 0 -> 508 bytes .../wp-phpunit/data/images/webp-lossless.webp | Bin 0 -> 584220 bytes .../wp-phpunit/data/images/webp-lossy.webp | Bin 0 -> 42798 bytes .../data/images/webp-transparent.webp | Bin 0 -> 58894 bytes .../data/images/wordpress-gsoc-flyer.pdf | Bin 0 -> 12895 bytes .../wp-phpunit/data/languages/admin-en_GB.mo | Bin 0 -> 1221 bytes .../wp-phpunit/data/languages/admin-en_GB.po | 35 + .../languages/admin-en_US-script-handle.json | 17 + .../wp-phpunit/data/languages/admin-es_ES.mo | Bin 0 -> 1303 bytes .../wp-phpunit/data/languages/admin-es_ES.po | 35 + .../data/languages/admin-network-en_GB.mo | Bin 0 -> 916 bytes .../data/languages/admin-network-en_GB.po | 34 + .../data/languages/admin-network-es_ES.mo | Bin 0 -> 1014 bytes .../data/languages/admin-network-es_ES.po | 33 + .../data/languages/continents-cities-es_ES.mo | Bin 0 -> 506 bytes .../data/languages/continents-cities-es_ES.po | 32 + .../wp-phpunit/data/languages/de_DE.mo | Bin 0 -> 863 bytes .../wp-phpunit/data/languages/de_DE.po | 59 + .../wp-phpunit/data/languages/en_GB.mo | Bin 0 -> 700 bytes .../wp-phpunit/data/languages/en_GB.po | 38 + ...n_US-813e104eb47e13dd4cc5af844c618754.json | 30 + .../wp-phpunit/data/languages/es_ES.mo | Bin 0 -> 1006 bytes .../wp-phpunit/data/languages/es_ES.po | 55 + .../wp-phpunit/data/languages/ja_JP.mo | Bin 0 -> 816 bytes .../wp-phpunit/data/languages/ja_JP.po | 69 + .../plugins/internationalized-plugin-de_DE.mo | Bin 0 -> 648 bytes .../plugins/internationalized-plugin-de_DE.po | 21 + ...n_US-2f86cb96a0233e7cb3b6f03ad573be0b.json | 17 + .../data/languages/plugins/notice-pl_PL.mo | Bin 0 -> 1181 bytes .../data/languages/plugins/notice-pl_PL.po | 55 + .../languages/themes/block-theme-pl_PL.mo | Bin 0 -> 807 bytes .../languages/themes/block-theme-pl_PL.po | 35 + .../themes/internationalized-theme-de_DE.mo | Bin 0 -> 646 bytes .../themes/internationalized-theme-de_DE.po | 21 + ...n_US-2f86cb96a0233e7cb3b6f03ad573be0b.json | 17 + .../wp-phpunit/data/plugins/hello.php | 14 + .../data/plugins/internationalized-plugin.php | 12 + .../wp-phpunit/data/pomo/bad_nplurals.mo | Bin 0 -> 525 bytes .../wp-phpunit/data/pomo/bad_nplurals.po | 18 + .../wp-phpunit/data/pomo/context.mo | Bin 0 -> 197 bytes .../wp-phpunit/data/pomo/de_DE-2.8.mo | Bin 0 -> 302972 bytes .../wp-phpunit/wp-phpunit/data/pomo/empty.po | 0 vendor/wp-phpunit/wp-phpunit/data/pomo/mo.pot | 25 + .../wp-phpunit/data/pomo/overload.mo | Bin 0 -> 367499 bytes .../wp-phpunit/wp-phpunit/data/pomo/plural.mo | Bin 0 -> 268 bytes .../wp-phpunit/wp-phpunit/data/pomo/simple.mo | Bin 0 -> 202 bytes .../wp-phpunit/wp-phpunit/data/pomo/simple.po | 54 + .../data/pomo/windows-line-endings.po | 7 + .../wp-phpunit/data/templates/template.html | 3 + .../data/theme-file-child/child-only.php | 1 + .../theme-file-child/parent-and-child.php | 1 + .../data/theme-file-child/style.css | 4 + .../theme-file-parent/parent-and-child.php | 1 + .../data/theme-file-parent/parent-only.php | 1 + .../data/theme-file-parent/style.css | 3 + .../themedir1/block-theme-child/page-home.php | 3 + .../themedir1/block-theme-child/style.css | 8 + .../block-theme-child/templates/page-1.html | 3 + .../themedir1/block-theme-child/theme.json | 51 + .../data/themedir1/block-theme/index.php | 4 + .../data/themedir1/block-theme/page-1.php | 3 + .../block-theme/parts/small-header.html | 3 + .../data/themedir1/block-theme/style.css | 7 + .../block-theme/templates/index.html | 3 + .../block-theme/templates/page-home.html | 3 + .../themedir1/block-theme/templates/page.html | 3 + .../data/themedir1/block-theme/theme.json | 71 + .../themedir1/block_theme-[0.4.0]/index.php | 4 + .../themedir1/block_theme-[0.4.0]/page-1.php | 3 + .../parts/large-header.html | 3 + .../themedir1/block_theme-[0.4.0]/style.css | 7 + .../templates/page-large-header.html | 9 + .../themedir1/block_theme-[0.4.0]/theme.json | 71 + .../data/themedir1/broken-theme/.nodelete | 0 .../data/themedir1/camelCase/index.php | 5 + .../data/themedir1/camelCase/style.css | 11 + .../themedir1/child-parent-itself/style.css | 4 + .../data/themedir1/default/comments.php | 4 + .../data/themedir1/default/footer.php | 1 + .../data/themedir1/default/functions.php | 18 + .../data/themedir1/default/header.php | 1 + .../data/themedir1/default/index.php | 5 + .../data/themedir1/default/sidebar.php | 1 + .../data/themedir1/default/style.css | 17 + .../data/themedir1/default/template-part.php | 3 + .../internationalized-theme/functions.php | 8 + .../internationalized-theme/index.php | 4 + .../internationalized-theme/style.css | 7 + .../themedir1/page-templates-child/style.css | 12 + .../template-sub-dir-post-types-child.php | 5 + .../template-top-level-post-types-child.php | 6 + .../38766/no-trailing-period-post-types.php | 5 + .../page-templates/38766/tilde-post-types.php | 7 + .../38766/trailing-comma-post-types.php | 5 + .../38766/trailing-period-post-types.php | 5 + .../trailing-period-whitespace-post-types.php | 5 + .../trailing-whitespace-period-post-types.php | 5 + .../data/themedir1/page-templates/index.php | 3 + .../data/themedir1/page-templates/style.css | 11 + .../subdir/template-sub-dir-post-types.php | 5 + .../subdir/template-sub-dir.php | 5 + .../page-templates/template-header.php | 1 + .../template-top-level-post-types.php | 5 + .../page-templates/template-top-level.php | 5 + .../data/themedir1/rest-api/style.css | 15 + .../data/themedir1/sandbox/functions.php | 7 + .../data/themedir1/sandbox/index.php | 7 + .../data/themedir1/sandbox/style.css | 11 + .../data/themedir1/stylesheetonly/style.css | 14 + .../subdir/block_theme-[1.0.0]/index.php | 4 + .../subdir/block_theme-[1.0.0]/style.css | 7 + .../subdir/block_theme-[1.0.0]/theme.json | 71 + .../subdir/theme with spaces/index.php | 1 + .../subdir/theme with spaces/style.css | 11 + .../themedir1/subdir/theme2/functions.php | 3 + .../data/themedir1/subdir/theme2/index.php | 3 + .../data/themedir1/subdir/theme2/style.css | 11 + .../data/themedir1/theme1-dupe/functions.php | 7 + .../data/themedir1/theme1-dupe/index.php | 7 + .../data/themedir1/theme1-dupe/style.css | 17 + .../data/themedir1/theme1/functions.php | 7 + .../data/themedir1/theme1/index.php | 7 + .../data/themedir1/theme1/style.css | 17 + .../wp-phpunit/data/uploads/dashicons.woff | Bin 0 -> 26124 bytes .../data/uploads/pages-to-word.docx | Bin 0 -> 8686 bytes .../wp-phpunit/data/uploads/small-audio.flac | Bin 0 -> 189102 bytes .../wp-phpunit/data/uploads/small-audio.mp3 | Bin 0 -> 45877 bytes .../wp-phpunit/data/uploads/small-video.mkv | Bin 0 -> 198332 bytes .../wp-phpunit/data/uploads/small-video.mov | Bin 0 -> 199067 bytes .../wp-phpunit/data/uploads/small-video.mp4 | Bin 0 -> 383631 bytes .../wp-phpunit/data/uploads/small-video.webm | Bin 0 -> 226548 bytes .../wp-phpunit/data/uploads/test.csv | 16 + .../wp-phpunit/data/uploads/test.dfxp | 164 + .../wp-phpunit/data/uploads/test.rtf | 8 + .../wp-phpunit/data/uploads/test.tsv | 12 + .../wp-phpunit/data/uploads/test.vtt | 160 + .../wp-phpunit/data/uploads/video-play.svg | 5 + .../data/widgets/custom-widget-classes.php | 12 + .../wp-phpunit/includes/abstract-testcase.php | 1385 +++++ .../wp-phpunit/includes/bootstrap.php | 391 ++ .../includes/class-basic-object.php | 42 + .../includes/class-basic-subclass.php | 17 + .../class-jsonserializable-object.php | 22 + .../includes/class-wp-fake-block-type.php | 27 + ...s-wp-rest-test-configurable-controller.php | 60 + .../class-wp-rest-test-search-handler.php | 91 + .../class-wp-sitemaps-empty-test-provider.php | 38 + .../class-wp-sitemaps-large-test-provider.php | 59 + .../class-wp-sitemaps-test-provider.php | 52 + .../includes/class-wp-test-stream.php | 289 + .../wp-phpunit/includes/exceptions.php | 34 + .../wp-phpunit/includes/factory.php | 14 + ...unittest-factory-callback-after-create.php | 29 + ...ass-wp-unittest-factory-for-attachment.php | 76 + .../class-wp-unittest-factory-for-blog.php | 91 + ...class-wp-unittest-factory-for-bookmark.php | 37 + .../class-wp-unittest-factory-for-comment.php | 74 + .../class-wp-unittest-factory-for-network.php | 44 + .../class-wp-unittest-factory-for-post.php | 60 + .../class-wp-unittest-factory-for-term.php | 108 + .../class-wp-unittest-factory-for-thing.php | 206 + .../class-wp-unittest-factory-for-user.php | 58 + .../factory/class-wp-unittest-factory.php | 95 + .../class-wp-unittest-generator-sequence.php | 45 + .../wp-phpunit/includes/functions.php | 351 ++ .../wp-phpunit/includes/install.php | 109 + .../wp-phpunit/includes/mock-fs.php | 244 + .../wp-phpunit/includes/mock-image-editor.php | 76 + .../wp-phpunit/includes/mock-invokable.php | 17 + .../wp-phpunit/includes/mock-mailer.php | 109 + .../wp-phpunit/includes/normalize-xml.xsl | 76 + .../wp-phpunit/includes/object-cache.php | 2187 +++++++ .../includes/phpunit-adapter-testcase.php | 19 + .../wp-phpunit/includes/phpunit6/compat.php | 42 + .../includes/plural-form-function.php | 20 + .../wp-phpunit/includes/spy-rest-server.php | 98 + .../wp-phpunit/includes/testcase-ajax.php | 273 + .../includes/testcase-canonical.php | 357 ++ .../wp-phpunit/includes/testcase-rest-api.php | 19 + .../includes/testcase-rest-controller.php | 59 + .../testcase-rest-post-type-controller.php | 317 + .../wp-phpunit/includes/testcase-xml.php | 92 + .../wp-phpunit/includes/testcase-xmlrpc.php | 38 + .../wp-phpunit/includes/testcase.php | 7 + .../wp-phpunit/wp-phpunit/includes/trac.php | 60 + .../wp-phpunit/wp-phpunit/includes/utils.php | 562 ++ .../wp-phpunit/includes/wp-profiler.php | 224 + .../wp-phpunit/wp-phpunit/wp-tests-config.php | 22 + vendor/yoast/phpunit-polyfills/CHANGELOG.md | 211 + vendor/yoast/phpunit-polyfills/LICENSE | 29 + vendor/yoast/phpunit-polyfills/README.md | 807 +++ vendor/yoast/phpunit-polyfills/composer.json | 104 + .../phpunitpolyfills-autoload.php | 520 ++ .../src/Exceptions/Error.php | 8 + .../InvalidComparisonMethodException.php | 23 + .../src/Exceptions/TypeError.php | 8 + .../src/Helpers/AssertAttributeHelper.php | 70 + .../src/Helpers/ResourceHelper.php | 142 + .../src/Polyfills/AssertClosedResource.php | 100 + .../Polyfills/AssertClosedResource_Empty.php | 35 + .../Polyfills/AssertEqualsSpecializations.php | 97 + .../AssertEqualsSpecializations_Empty.php | 8 + .../src/Polyfills/AssertFileDirectory.php | 262 + .../Polyfills/AssertFileDirectory_Empty.php | 8 + .../AssertFileEqualsSpecializations.php | 132 + .../AssertFileEqualsSpecializations_Empty.php | 8 + .../src/Polyfills/AssertIsType.php | 315 + .../src/Polyfills/AssertIsType_Empty.php | 8 + .../src/Polyfills/AssertNumericType.php | 49 + .../src/Polyfills/AssertNumericType_Empty.php | 8 + .../src/Polyfills/AssertObjectEquals.php | 234 + .../Polyfills/AssertObjectEquals_Empty.php | 8 + .../src/Polyfills/AssertObjectProperty.php | 154 + .../Polyfills/AssertObjectProperty_Empty.php | 10 + .../src/Polyfills/AssertStringContains.php | 104 + .../Polyfills/AssertStringContains_Empty.php | 8 + .../src/Polyfills/AssertionRenames.php | 165 + .../src/Polyfills/AssertionRenames_Empty.php | 8 + .../src/Polyfills/EqualToSpecializations.php | 54 + .../EqualToSpecializations_Empty.php | 8 + .../src/Polyfills/ExpectException.php | 126 + .../ExpectExceptionMessageMatches.php | 29 + .../ExpectExceptionMessageMatches_Empty.php | 8 + .../src/Polyfills/ExpectExceptionObject.php | 28 + .../Polyfills/ExpectExceptionObject_Empty.php | 8 + .../src/Polyfills/ExpectException_Empty.php | 8 + .../src/Polyfills/ExpectPHPException.php | 143 + .../Polyfills/ExpectPHPException_Empty.php | 8 + .../src/TestCases/TestCasePHPUnitGte8.php | 158 + .../src/TestCases/TestCasePHPUnitLte7.php | 172 + .../src/TestCases/XTestCase.php | 104 + ...tListenerDefaultImplementationPHPUnit6.php | 148 + ...stenerDefaultImplementationPHPUnitGte7.php | 148 + ...stenerDefaultImplementationPHPUnitLte5.php | 155 + .../TestListenerSnakeCaseMethods.php | 121 + 2501 files changed, 174857 insertions(+), 1503 deletions(-) create mode 100644 includes/Log.php rename includes/Rest/{Template.php => Importer.php} (77%) create mode 100644 src/admin/pages/submissions/test.ts create mode 100644 src/components/inline-edit.js create mode 100644 vendor/bin/phpunit create mode 100644 vendor/bin/phpunit.bat create mode 100644 vendor/doctrine/deprecations/LICENSE create mode 100644 vendor/doctrine/deprecations/README.md create mode 100644 vendor/doctrine/deprecations/composer.json create mode 100644 vendor/doctrine/deprecations/lib/Doctrine/Deprecations/Deprecation.php create mode 100644 vendor/doctrine/deprecations/lib/Doctrine/Deprecations/PHPUnit/VerifyDeprecations.php create mode 100644 vendor/doctrine/instantiator/.doctrine-project.json create mode 100644 vendor/doctrine/instantiator/CONTRIBUTING.md create mode 100644 vendor/doctrine/instantiator/LICENSE create mode 100644 vendor/doctrine/instantiator/README.md create mode 100644 vendor/doctrine/instantiator/composer.json create mode 100644 vendor/doctrine/instantiator/docs/en/index.rst create mode 100644 vendor/doctrine/instantiator/docs/en/sidebar.rst create mode 100644 vendor/doctrine/instantiator/psalm.xml create mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php create mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php create mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php create mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php create mode 100644 vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php create mode 100644 vendor/myclabs/deep-copy/LICENSE create mode 100644 vendor/myclabs/deep-copy/README.md create mode 100644 vendor/myclabs/deep-copy/composer.json create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Exception/PropertyException.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/ChainableFilter.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/KeepFilter.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/ReplaceFilter.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Matcher.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyMatcher.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/ArrayObjectFilter.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php create mode 100644 vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php create mode 100644 vendor/phar-io/manifest/.gitignore create mode 100644 vendor/phar-io/manifest/.php_cs create mode 100644 vendor/phar-io/manifest/.travis.yml create mode 100644 vendor/phar-io/manifest/LICENSE create mode 100644 vendor/phar-io/manifest/README.md create mode 100644 vendor/phar-io/manifest/build.xml create mode 100644 vendor/phar-io/manifest/composer.json create mode 100644 vendor/phar-io/manifest/composer.lock create mode 100644 vendor/phar-io/manifest/examples/example-01.php create mode 100644 vendor/phar-io/manifest/phive.xml create mode 100644 vendor/phar-io/manifest/phpunit.xml create mode 100644 vendor/phar-io/manifest/src/ManifestDocumentMapper.php create mode 100644 vendor/phar-io/manifest/src/ManifestLoader.php create mode 100644 vendor/phar-io/manifest/src/ManifestSerializer.php create mode 100644 vendor/phar-io/manifest/src/exceptions/Exception.php create mode 100644 vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php create mode 100644 vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php create mode 100644 vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php create mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php create mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php create mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestElementException.php create mode 100644 vendor/phar-io/manifest/src/exceptions/ManifestLoaderException.php create mode 100644 vendor/phar-io/manifest/src/values/Application.php create mode 100644 vendor/phar-io/manifest/src/values/ApplicationName.php create mode 100644 vendor/phar-io/manifest/src/values/Author.php create mode 100644 vendor/phar-io/manifest/src/values/AuthorCollection.php create mode 100644 vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php create mode 100644 vendor/phar-io/manifest/src/values/BundledComponent.php create mode 100644 vendor/phar-io/manifest/src/values/BundledComponentCollection.php create mode 100644 vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php create mode 100644 vendor/phar-io/manifest/src/values/CopyrightInformation.php create mode 100644 vendor/phar-io/manifest/src/values/Email.php create mode 100644 vendor/phar-io/manifest/src/values/Extension.php create mode 100644 vendor/phar-io/manifest/src/values/Library.php create mode 100644 vendor/phar-io/manifest/src/values/License.php create mode 100644 vendor/phar-io/manifest/src/values/Manifest.php create mode 100644 vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php create mode 100644 vendor/phar-io/manifest/src/values/PhpVersionRequirement.php create mode 100644 vendor/phar-io/manifest/src/values/Requirement.php create mode 100644 vendor/phar-io/manifest/src/values/RequirementCollection.php create mode 100644 vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php create mode 100644 vendor/phar-io/manifest/src/values/Type.php create mode 100644 vendor/phar-io/manifest/src/values/Url.php create mode 100644 vendor/phar-io/manifest/src/xml/AuthorElement.php create mode 100644 vendor/phar-io/manifest/src/xml/AuthorElementCollection.php create mode 100644 vendor/phar-io/manifest/src/xml/BundlesElement.php create mode 100644 vendor/phar-io/manifest/src/xml/ComponentElement.php create mode 100644 vendor/phar-io/manifest/src/xml/ComponentElementCollection.php create mode 100644 vendor/phar-io/manifest/src/xml/ContainsElement.php create mode 100644 vendor/phar-io/manifest/src/xml/CopyrightElement.php create mode 100644 vendor/phar-io/manifest/src/xml/ElementCollection.php create mode 100644 vendor/phar-io/manifest/src/xml/ExtElement.php create mode 100644 vendor/phar-io/manifest/src/xml/ExtElementCollection.php create mode 100644 vendor/phar-io/manifest/src/xml/ExtensionElement.php create mode 100644 vendor/phar-io/manifest/src/xml/LicenseElement.php create mode 100644 vendor/phar-io/manifest/src/xml/ManifestDocument.php create mode 100644 vendor/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php create mode 100644 vendor/phar-io/manifest/src/xml/ManifestElement.php create mode 100644 vendor/phar-io/manifest/src/xml/PhpElement.php create mode 100644 vendor/phar-io/manifest/src/xml/RequiresElement.php create mode 100644 vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php create mode 100644 vendor/phar-io/manifest/tests/ManifestLoaderTest.php create mode 100644 vendor/phar-io/manifest/tests/ManifestSerializerTest.php create mode 100644 vendor/phar-io/manifest/tests/_fixture/custom.xml create mode 100644 vendor/phar-io/manifest/tests/_fixture/extension-invalidcompatible.xml create mode 100644 vendor/phar-io/manifest/tests/_fixture/extension.xml create mode 100644 vendor/phar-io/manifest/tests/_fixture/invalidversion.xml create mode 100644 vendor/phar-io/manifest/tests/_fixture/invalidversionconstraint.xml create mode 100644 vendor/phar-io/manifest/tests/_fixture/library.xml create mode 100644 vendor/phar-io/manifest/tests/_fixture/manifest.xml create mode 100644 vendor/phar-io/manifest/tests/_fixture/phpunit-5.6.5.xml create mode 100644 vendor/phar-io/manifest/tests/_fixture/test.phar create mode 100644 vendor/phar-io/manifest/tests/exceptions/ManifestDocumentLoadingExceptionTest.php create mode 100644 vendor/phar-io/manifest/tests/values/ApplicationNameTest.php create mode 100644 vendor/phar-io/manifest/tests/values/ApplicationTest.php create mode 100644 vendor/phar-io/manifest/tests/values/AuthorCollectionTest.php create mode 100644 vendor/phar-io/manifest/tests/values/AuthorTest.php create mode 100644 vendor/phar-io/manifest/tests/values/BundledComponentCollectionTest.php create mode 100644 vendor/phar-io/manifest/tests/values/BundledComponentTest.php create mode 100644 vendor/phar-io/manifest/tests/values/CopyrightInformationTest.php create mode 100644 vendor/phar-io/manifest/tests/values/EmailTest.php create mode 100644 vendor/phar-io/manifest/tests/values/ExtensionTest.php create mode 100644 vendor/phar-io/manifest/tests/values/LibraryTest.php create mode 100644 vendor/phar-io/manifest/tests/values/LicenseTest.php create mode 100644 vendor/phar-io/manifest/tests/values/ManifestTest.php create mode 100644 vendor/phar-io/manifest/tests/values/PhpExtensionRequirementTest.php create mode 100644 vendor/phar-io/manifest/tests/values/PhpVersionRequirementTest.php create mode 100644 vendor/phar-io/manifest/tests/values/RequirementCollectionTest.php create mode 100644 vendor/phar-io/manifest/tests/values/UrlTest.php create mode 100644 vendor/phar-io/manifest/tests/xml/AuthorElementCollectionTest.php create mode 100644 vendor/phar-io/manifest/tests/xml/AuthorElementTest.php create mode 100644 vendor/phar-io/manifest/tests/xml/BundlesElementTest.php create mode 100644 vendor/phar-io/manifest/tests/xml/ComponentElementCollectionTest.php create mode 100644 vendor/phar-io/manifest/tests/xml/ComponentElementTest.php create mode 100644 vendor/phar-io/manifest/tests/xml/ContainsElementTest.php create mode 100644 vendor/phar-io/manifest/tests/xml/CopyrightElementTest.php create mode 100644 vendor/phar-io/manifest/tests/xml/ExtElementCollectionTest.php create mode 100644 vendor/phar-io/manifest/tests/xml/ExtElementTest.php create mode 100644 vendor/phar-io/manifest/tests/xml/ExtensionElementTest.php create mode 100644 vendor/phar-io/manifest/tests/xml/LicenseElementTest.php create mode 100644 vendor/phar-io/manifest/tests/xml/ManifestDocumentTest.php create mode 100644 vendor/phar-io/manifest/tests/xml/PhpElementTest.php create mode 100644 vendor/phar-io/manifest/tests/xml/RequiresElementTest.php create mode 100644 vendor/phar-io/version/.gitignore create mode 100644 vendor/phar-io/version/.php_cs create mode 100644 vendor/phar-io/version/.travis.yml create mode 100644 vendor/phar-io/version/CHANGELOG.md create mode 100644 vendor/phar-io/version/LICENSE create mode 100644 vendor/phar-io/version/README.md create mode 100644 vendor/phar-io/version/build.xml create mode 100644 vendor/phar-io/version/composer.json create mode 100644 vendor/phar-io/version/phive.xml create mode 100644 vendor/phar-io/version/phpunit.xml create mode 100644 vendor/phar-io/version/src/PreReleaseSuffix.php create mode 100644 vendor/phar-io/version/src/Version.php create mode 100644 vendor/phar-io/version/src/VersionConstraintParser.php create mode 100644 vendor/phar-io/version/src/VersionConstraintValue.php create mode 100644 vendor/phar-io/version/src/VersionNumber.php create mode 100644 vendor/phar-io/version/src/constraints/AbstractVersionConstraint.php create mode 100644 vendor/phar-io/version/src/constraints/AndVersionConstraintGroup.php create mode 100644 vendor/phar-io/version/src/constraints/AnyVersionConstraint.php create mode 100644 vendor/phar-io/version/src/constraints/ExactVersionConstraint.php create mode 100644 vendor/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php create mode 100644 vendor/phar-io/version/src/constraints/OrVersionConstraintGroup.php create mode 100644 vendor/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php create mode 100644 vendor/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php create mode 100644 vendor/phar-io/version/src/constraints/VersionConstraint.php create mode 100644 vendor/phar-io/version/src/exceptions/Exception.php create mode 100644 vendor/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php create mode 100644 vendor/phar-io/version/src/exceptions/InvalidVersionException.php create mode 100644 vendor/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php create mode 100644 vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php create mode 100644 vendor/phar-io/version/tests/Unit/AbstractVersionConstraintTest.php create mode 100644 vendor/phar-io/version/tests/Unit/AndVersionConstraintGroupTest.php create mode 100644 vendor/phar-io/version/tests/Unit/AnyVersionConstraintTest.php create mode 100644 vendor/phar-io/version/tests/Unit/ExactVersionConstraintTest.php create mode 100644 vendor/phar-io/version/tests/Unit/GreaterThanOrEqualToVersionConstraintTest.php create mode 100644 vendor/phar-io/version/tests/Unit/OrVersionConstraintGroupTest.php create mode 100644 vendor/phar-io/version/tests/Unit/PreReleaseSuffixTest.php create mode 100644 vendor/phar-io/version/tests/Unit/SpecificMajorAndMinorVersionConstraintTest.php create mode 100644 vendor/phar-io/version/tests/Unit/SpecificMajorVersionConstraintTest.php create mode 100644 vendor/phar-io/version/tests/Unit/VersionTest.php create mode 100644 vendor/phpdocumentor/reflection-common/.github/dependabot.yml create mode 100644 vendor/phpdocumentor/reflection-common/.github/workflows/push.yml create mode 100644 vendor/phpdocumentor/reflection-common/LICENSE create mode 100644 vendor/phpdocumentor/reflection-common/README.md create mode 100644 vendor/phpdocumentor/reflection-common/composer.json create mode 100644 vendor/phpdocumentor/reflection-common/src/Element.php create mode 100644 vendor/phpdocumentor/reflection-common/src/File.php create mode 100644 vendor/phpdocumentor/reflection-common/src/Fqsen.php create mode 100644 vendor/phpdocumentor/reflection-common/src/Location.php create mode 100644 vendor/phpdocumentor/reflection-common/src/Project.php create mode 100644 vendor/phpdocumentor/reflection-common/src/ProjectFactory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/LICENSE create mode 100644 vendor/phpdocumentor/reflection-docblock/README.md create mode 100644 vendor/phpdocumentor/reflection-docblock/composer.json create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/TagFactory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/AbstractPHPStanFactory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Factory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/MethodFactory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PHPStanFactory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/ParamFactory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PropertyFactory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PropertyReadFactory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PropertyWriteFactory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/ReturnFactory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/VarFactory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/AlignFormatter.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/InvalidTag.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/MethodParameter.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Url.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/TagWithType.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/Exception/PcreException.php create mode 100644 vendor/phpdocumentor/reflection-docblock/src/Utils.php create mode 100644 vendor/phpdocumentor/type-resolver/LICENSE create mode 100644 vendor/phpdocumentor/type-resolver/README.md create mode 100644 vendor/phpdocumentor/type-resolver/composer.json create mode 100644 vendor/phpdocumentor/type-resolver/src/FqsenResolver.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoType.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/ArrayShape.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/ArrayShapeItem.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/CallableString.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/ConstExpression.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/False_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/FloatValue.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/HtmlEscapedString.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/IntegerRange.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/IntegerValue.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/List_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/LiteralString.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/LowercaseString.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/NegativeInteger.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/NonEmptyList.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/NonEmptyLowercaseString.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/NonEmptyString.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/NumericString.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/Numeric_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/PositiveInteger.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/StringValue.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/TraitString.php create mode 100644 vendor/phpdocumentor/type-resolver/src/PseudoTypes/True_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Type.php create mode 100644 vendor/phpdocumentor/type-resolver/src/TypeResolver.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/AbstractList.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/AggregatedType.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/ArrayKey.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Array_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Boolean.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/CallableParameter.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Callable_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/ClassString.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Collection.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Compound.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Context.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Expression.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Float_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Integer.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/InterfaceString.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Intersection.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Never_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Null_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Nullable.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Object_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Parent_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Resource_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Scalar.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Self_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Static_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/String_.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/This.php create mode 100644 vendor/phpdocumentor/type-resolver/src/Types/Void_.php create mode 100644 vendor/phpspec/prophecy/CHANGES.md create mode 100644 vendor/phpspec/prophecy/LICENSE create mode 100644 vendor/phpspec/prophecy/README.md create mode 100644 vendor/phpspec/prophecy/composer.json create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/InArrayToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/NotInArrayToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Call/Call.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Comparator/FactoryProvider.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/KeywordPatch.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ThrowablePatch.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentTypeNode.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ClassNode.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ReturnTypeNode.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/TypeNodeAbstract.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Prophet.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php create mode 100644 vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php create mode 100644 vendor/phpstan/phpdoc-parser/LICENSE create mode 100644 vendor/phpstan/phpdoc-parser/README.md create mode 100644 vendor/phpstan/phpdoc-parser/composer.json create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/AbstractNodeVisitor.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Attribute.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprArrayItemNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprArrayNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprFalseNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprFloatNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprIntegerNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprNullNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprStringNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprTrueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstFetchNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/DoctrineConstExprStringNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/QuoteAwareConstExprStringNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Node.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/NodeAttributes.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/NodeTraverser.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/NodeVisitor.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/NodeVisitor/CloningVisitor.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/AssertTagMethodValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/AssertTagPropertyValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/AssertTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/DeprecatedTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineAnnotation.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArgument.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArray.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArrayItem.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ExtendsTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/GenericTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ImplementsTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/InvalidTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/MethodTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/MethodTagValueParameterNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/MixinTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamClosureThisTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamImmediatelyInvokedCallableTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamLaterInvokedCallableTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamOutTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocChildNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocTagNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocTextNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PropertyTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PureUnlessCallableIsImpureTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/RequireExtendsTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/RequireImplementsTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ReturnTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/SelfOutTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TemplateTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ThrowsTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypeAliasImportTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypeAliasTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypelessParamTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/UsesTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/VarTagValueNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayShapeItemNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayShapeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayShapeUnsealedTypeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayTypeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/CallableTypeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/CallableTypeParameterNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/ConditionalTypeForParameterNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/ConditionalTypeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/ConstTypeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/GenericTypeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/IdentifierTypeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/IntersectionTypeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/InvalidTypeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/NullableTypeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/ObjectShapeItemNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/ObjectShapeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/OffsetAccessTypeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/ThisTypeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/TypeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Ast/Type/UnionTypeNode.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Lexer/Lexer.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Parser/ConstExprParser.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Parser/ParserException.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Parser/StringUnescaper.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Parser/TokenIterator.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Printer/DiffElem.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Printer/Differ.php create mode 100644 vendor/phpstan/phpdoc-parser/src/Printer/Printer.php create mode 100644 vendor/phpunit/php-code-coverage/.gitattributes create mode 100644 vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md create mode 100644 vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md create mode 100644 vendor/phpunit/php-code-coverage/.github/stale.yml create mode 100644 vendor/phpunit/php-code-coverage/.gitignore create mode 100644 vendor/phpunit/php-code-coverage/.php_cs.dist create mode 100644 vendor/phpunit/php-code-coverage/.travis.yml create mode 100644 vendor/phpunit/php-code-coverage/ChangeLog-6.1.md create mode 100644 vendor/phpunit/php-code-coverage/LICENSE create mode 100644 vendor/phpunit/php-code-coverage/README.md create mode 100644 vendor/phpunit/php-code-coverage/build.xml create mode 100644 vendor/phpunit/php-code-coverage/composer.json create mode 100644 vendor/phpunit/php-code-coverage/phpunit.xml create mode 100644 vendor/phpunit/php-code-coverage/src/CodeCoverage.php create mode 100644 vendor/phpunit/php-code-coverage/src/Driver/Driver.php create mode 100644 vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php create mode 100644 vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php create mode 100644 vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php create mode 100644 vendor/phpunit/php-code-coverage/src/Exception/Exception.php create mode 100644 vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php create mode 100644 vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php create mode 100644 vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php create mode 100644 vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php create mode 100644 vendor/phpunit/php-code-coverage/src/Filter.php create mode 100644 vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php create mode 100644 vendor/phpunit/php-code-coverage/src/Node/Builder.php create mode 100644 vendor/phpunit/php-code-coverage/src/Node/Directory.php create mode 100644 vendor/phpunit/php-code-coverage/src/Node/File.php create mode 100644 vendor/phpunit/php-code-coverage/src/Node/Iterator.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Clover.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Crap4j.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/coverage_bar.html.dist create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/bootstrap.min.css create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/custom.css create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/octicons.css create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory.html.dist create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory_item.html.dist create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file.html.dist create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/icons/file-code.svg create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/icons/file-directory.svg create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/d3.min.js create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/file.js create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/jquery.min.js create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/nv.d3.min.js create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/popper.min.js create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/method_item.html.dist create mode 100644 vendor/phpunit/php-code-coverage/src/Report/PHP.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Text.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Coverage.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Directory.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Facade.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/File.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Method.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Node.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Project.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Report.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Source.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Tests.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Totals.php create mode 100644 vendor/phpunit/php-code-coverage/src/Report/Xml/Unit.php create mode 100644 vendor/phpunit/php-code-coverage/src/Util.php create mode 100644 vendor/phpunit/php-code-coverage/src/Version.php create mode 100644 vendor/phpunit/php-code-coverage/tests/TestCase.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount-clover.xml create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount-crap4j.xml create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount-text.txt create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccount.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/BankAccountTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageClassExtendedTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageClassTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionParenthesesTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionParenthesesWhitespaceTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageFunctionTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodOneLineAnnotationTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodParenthesesTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodParenthesesWhitespaceTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageMethodTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNoneTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNotPrivateTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNotProtectedTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNotPublicTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageNothingTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveragePrivateTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageProtectedTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveragePublicTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoverageTwoDefaultClassAnnotations.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveredClass.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/CoveredFunction.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Crash.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageClassExtendedTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageClassTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageCoversClassPublicTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageCoversClassTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageMethodTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotPrivateTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotProtectedTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageNotPublicTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveragePrivateTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoverageProtectedTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveragePublicTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NamespaceCoveredClass.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/NotExistingCoveredElementTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/BankAccount.php.html create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/dashboard.html create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/index.html create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/dashboard.html create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/index.html create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.html create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/dashboard.html create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/index.html create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/source_with_ignore.php.html create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/BankAccount.php.xml create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/index.xml create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.xml create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/source_with_ignore.php.xml create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-clover.xml create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-crap4j.xml create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-text.txt create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-clover.xml create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-crap4j.xml create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-text.txt create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_class_and_anonymous_function.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_ignore.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_namespace.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_with_oneline_annotations.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_without_ignore.php create mode 100644 vendor/phpunit/php-code-coverage/tests/_files/source_without_namespace.php create mode 100644 vendor/phpunit/php-code-coverage/tests/bootstrap.php create mode 100644 vendor/phpunit/php-code-coverage/tests/tests/BuilderTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/tests/CloverTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/tests/CodeCoverageTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/tests/Crap4jTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/tests/FilterTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/tests/HTMLTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/tests/TextTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/tests/UtilTest.php create mode 100644 vendor/phpunit/php-code-coverage/tests/tests/XmlTest.php create mode 100644 vendor/phpunit/php-file-iterator/ChangeLog.md create mode 100644 vendor/phpunit/php-file-iterator/LICENSE create mode 100644 vendor/phpunit/php-file-iterator/README.md create mode 100644 vendor/phpunit/php-file-iterator/composer.json create mode 100644 vendor/phpunit/php-file-iterator/src/Facade.php create mode 100644 vendor/phpunit/php-file-iterator/src/Factory.php create mode 100644 vendor/phpunit/php-file-iterator/src/Iterator.php create mode 100644 vendor/phpunit/php-text-template/.gitattributes create mode 100644 vendor/phpunit/php-text-template/.gitignore create mode 100644 vendor/phpunit/php-text-template/LICENSE create mode 100644 vendor/phpunit/php-text-template/README.md create mode 100644 vendor/phpunit/php-text-template/composer.json create mode 100644 vendor/phpunit/php-text-template/src/Template.php create mode 100644 vendor/phpunit/php-timer/ChangeLog.md create mode 100644 vendor/phpunit/php-timer/LICENSE create mode 100644 vendor/phpunit/php-timer/README.md create mode 100644 vendor/phpunit/php-timer/composer.json create mode 100644 vendor/phpunit/php-timer/src/Exception.php create mode 100644 vendor/phpunit/php-timer/src/RuntimeException.php create mode 100644 vendor/phpunit/php-timer/src/Timer.php create mode 100644 vendor/phpunit/php-token-stream/.gitattributes create mode 100644 vendor/phpunit/php-token-stream/.github/FUNDING.yml create mode 100644 vendor/phpunit/php-token-stream/.gitignore create mode 100644 vendor/phpunit/php-token-stream/.travis.yml create mode 100644 vendor/phpunit/php-token-stream/ChangeLog.md create mode 100644 vendor/phpunit/php-token-stream/LICENSE create mode 100644 vendor/phpunit/php-token-stream/README.md create mode 100644 vendor/phpunit/php-token-stream/build.xml create mode 100644 vendor/phpunit/php-token-stream/composer.json create mode 100644 vendor/phpunit/php-token-stream/phpunit.xml create mode 100644 vendor/phpunit/php-token-stream/src/Token.php create mode 100644 vendor/phpunit/php-token-stream/src/Token/Stream.php create mode 100644 vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php create mode 100644 vendor/phpunit/php-token-stream/src/Token/Util.php create mode 100644 vendor/phpunit/php-token-stream/tests/Token/ClassTest.php create mode 100644 vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php create mode 100644 vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php create mode 100644 vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php create mode 100644 vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php create mode 100644 vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classExtendsNamespacedClass.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classInNamespace.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classInScopedNamespace.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/classUsesNamespacedFunction.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_method_named_empty.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_method_that_declares_anonymous_class.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_method_that_declares_anonymous_class2.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/class_with_multiple_anonymous_classes_and_functions.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/closure.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/issue19.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/issue30.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/multipleNamespacesWithOneClassUsingBraces.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/multipleNamespacesWithOneClassUsingNonBraceSyntax.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/php-code-coverage-issue-424.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source2.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source3.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source4.php create mode 100644 vendor/phpunit/php-token-stream/tests/_fixture/source5.php create mode 100644 vendor/phpunit/php-token-stream/tests/bootstrap.php create mode 100644 vendor/phpunit/phpunit/.editorconfig create mode 100644 vendor/phpunit/phpunit/.gitattributes create mode 100644 vendor/phpunit/phpunit/.github/CODE_OF_CONDUCT.md create mode 100644 vendor/phpunit/phpunit/.github/CONTRIBUTING.md create mode 100644 vendor/phpunit/phpunit/.github/ISSUE_TEMPLATE.md create mode 100644 vendor/phpunit/phpunit/.github/workflows/ci.yml create mode 100644 vendor/phpunit/phpunit/.gitignore create mode 100644 vendor/phpunit/phpunit/.php_cs.dist create mode 100644 vendor/phpunit/phpunit/.travis.yml create mode 100644 vendor/phpunit/phpunit/ChangeLog-7.5.md create mode 100644 vendor/phpunit/phpunit/LICENSE create mode 100644 vendor/phpunit/phpunit/README.md create mode 100644 vendor/phpunit/phpunit/build.xml create mode 100644 vendor/phpunit/phpunit/composer.json create mode 100644 vendor/phpunit/phpunit/phive.xml create mode 100644 vendor/phpunit/phpunit/phpunit create mode 100644 vendor/phpunit/phpunit/phpunit.xml create mode 100644 vendor/phpunit/phpunit/phpunit.xsd create mode 100644 vendor/phpunit/phpunit/src/Exception.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Assert.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Assert/Functions.php create mode 100644 vendor/phpunit/phpunit/src/Framework/AssertionFailedError.php create mode 100644 vendor/phpunit/phpunit/src/Framework/CodeCoverageException.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Attribute.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Callback.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Composite.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Count.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/Exception.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/FileExists.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsAnything.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsFalse.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsFinite.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsJson.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsNan.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsNull.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsReadable.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsTrue.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsType.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/IsWritable.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LessThan.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/SameSize.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringContains.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php create mode 100644 vendor/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php create mode 100644 vendor/phpunit/phpunit/src/Framework/DataProviderTestSuite.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Deprecated.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Error.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Notice.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Error/Warning.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Exception.php create mode 100644 vendor/phpunit/phpunit/src/Framework/ExceptionWrapper.php create mode 100644 vendor/phpunit/phpunit/src/Framework/ExpectationFailedException.php create mode 100644 vendor/phpunit/phpunit/src/Framework/IncompleteTest.php create mode 100644 vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php create mode 100644 vendor/phpunit/phpunit/src/Framework/IncompleteTestError.php create mode 100644 vendor/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php create mode 100644 vendor/phpunit/phpunit/src/Framework/InvalidParameterGroupException.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Match.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Builder/NamespaceMatch.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/ForwardCompatibility/MockObject.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/deprecation.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_class.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_class_method.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_clone.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_method.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_method_void.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_static_method.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/proxied_method.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/proxied_method_void.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/trait_class.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/unmocked_clone.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/wsdl_class.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Generator/wsdl_method.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/Invocation.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/ObjectInvocation.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Invokable.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyInvokedCount.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyParameters.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/DeferredError.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/Invocation.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtIndex.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtMostCount.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedCount.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedRecorder.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/MethodName.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/Parameters.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/StatelessInvocation.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/MockMethod.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/MockObject.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/MatcherCollection.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php create mode 100644 vendor/phpunit/phpunit/src/Framework/MockObject/Verifiable.php create mode 100644 vendor/phpunit/phpunit/src/Framework/OutputError.php create mode 100644 vendor/phpunit/phpunit/src/Framework/RiskyTest.php create mode 100644 vendor/phpunit/phpunit/src/Framework/RiskyTestError.php create mode 100644 vendor/phpunit/phpunit/src/Framework/SelfDescribing.php create mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTest.php create mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTestCase.php create mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTestError.php create mode 100644 vendor/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php create mode 100644 vendor/phpunit/phpunit/src/Framework/SyntheticError.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Test.php create mode 100644 vendor/phpunit/phpunit/src/Framework/TestCase.php create mode 100644 vendor/phpunit/phpunit/src/Framework/TestFailure.php create mode 100644 vendor/phpunit/phpunit/src/Framework/TestListener.php create mode 100644 vendor/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php create mode 100644 vendor/phpunit/phpunit/src/Framework/TestResult.php create mode 100644 vendor/phpunit/phpunit/src/Framework/TestSuite.php create mode 100644 vendor/phpunit/phpunit/src/Framework/TestSuiteIterator.php create mode 100644 vendor/phpunit/phpunit/src/Framework/UnexpectedValueException.php create mode 100644 vendor/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php create mode 100644 vendor/phpunit/phpunit/src/Framework/Warning.php create mode 100644 vendor/phpunit/phpunit/src/Framework/WarningTestCase.php create mode 100644 vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Exception.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/Factory.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/Hook.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/TestHook.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php create mode 100644 vendor/phpunit/phpunit/src/Runner/PhptTestCase.php create mode 100644 vendor/phpunit/phpunit/src/Runner/ResultCacheExtension.php create mode 100644 vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php create mode 100644 vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php create mode 100644 vendor/phpunit/phpunit/src/Runner/TestSuiteSorter.php create mode 100644 vendor/phpunit/phpunit/src/Runner/Version.php create mode 100644 vendor/phpunit/phpunit/src/TextUI/Command.php create mode 100644 vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php create mode 100644 vendor/phpunit/phpunit/src/TextUI/TestRunner.php create mode 100644 vendor/phpunit/phpunit/src/Util/Blacklist.php create mode 100644 vendor/phpunit/phpunit/src/Util/Configuration.php create mode 100644 vendor/phpunit/phpunit/src/Util/ConfigurationGenerator.php create mode 100644 vendor/phpunit/phpunit/src/Util/ErrorHandler.php create mode 100644 vendor/phpunit/phpunit/src/Util/FileLoader.php create mode 100644 vendor/phpunit/phpunit/src/Util/Filesystem.php create mode 100644 vendor/phpunit/phpunit/src/Util/Filter.php create mode 100644 vendor/phpunit/phpunit/src/Util/Getopt.php create mode 100644 vendor/phpunit/phpunit/src/Util/GlobalState.php create mode 100644 vendor/phpunit/phpunit/src/Util/InvalidArgumentHelper.php create mode 100644 vendor/phpunit/phpunit/src/Util/Json.php create mode 100644 vendor/phpunit/phpunit/src/Util/Log/JUnit.php create mode 100644 vendor/phpunit/phpunit/src/Util/Log/TeamCity.php create mode 100644 vendor/phpunit/phpunit/src/Util/NullTestResultCache.php create mode 100644 vendor/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php create mode 100644 vendor/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php create mode 100644 vendor/phpunit/phpunit/src/Util/PHP/Template/PhptTestCase.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseClass.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist create mode 100644 vendor/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php create mode 100644 vendor/phpunit/phpunit/src/Util/Printer.php create mode 100644 vendor/phpunit/phpunit/src/Util/RegularExpression.php create mode 100644 vendor/phpunit/phpunit/src/Util/Test.php create mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php create mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php create mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php create mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php create mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/TestResult.php create mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php create mode 100644 vendor/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php create mode 100644 vendor/phpunit/phpunit/src/Util/TestResultCache.php create mode 100644 vendor/phpunit/phpunit/src/Util/TestResultCacheInterface.php create mode 100644 vendor/phpunit/phpunit/src/Util/TextTestListRenderer.php create mode 100644 vendor/phpunit/phpunit/src/Util/Type.php create mode 100644 vendor/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php create mode 100644 vendor/phpunit/phpunit/src/Util/Xml.php create mode 100644 vendor/phpunit/phpunit/src/Util/XmlTestListRenderer.php create mode 100644 vendor/phpunit/phpunit/tests/_files/3194.php create mode 100644 vendor/phpunit/phpunit/tests/_files/3530.wsdl create mode 100644 vendor/phpunit/phpunit/tests/_files/AbstractMockTestClass.php create mode 100644 vendor/phpunit/phpunit/tests/_files/AbstractTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/AbstractTrait.php create mode 100644 vendor/phpunit/phpunit/tests/_files/AnInterface.php create mode 100644 vendor/phpunit/phpunit/tests/_files/AnInterfaceWithReturnType.php create mode 100644 vendor/phpunit/phpunit/tests/_files/AnotherInterface.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ArrayAccessible.php create mode 100644 vendor/phpunit/phpunit/tests/_files/AssertionExample.php create mode 100644 vendor/phpunit/phpunit/tests/_files/AssertionExampleTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/Author.php create mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccount.php create mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccountTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccountTest.test.php create mode 100644 vendor/phpunit/phpunit/tests/_files/BankAccountTest2.php create mode 100644 vendor/phpunit/phpunit/tests/_files/Bar.php create mode 100644 vendor/phpunit/phpunit/tests/_files/BeforeAndAfterTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/BeforeClassAndAfterClassTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/BeforeClassWithOnlyDataProviderTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/Book.php create mode 100644 vendor/phpunit/phpunit/tests/_files/Calculator.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ChangeCurrentWorkingDirectoryTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ClassThatImplementsSerializable.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithAllPossibleReturnTypes.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithNonPublicAttributes.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithScalarTypeDeclarations.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithSelfTypeHint.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithStaticMethod.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithToString.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ClassWithVariadicArgumentMethod.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ClonedDependencyTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ConcreteTest.my.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ConcreteTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CountConstraint.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageClassExtendedTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageClassNothingTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageClassTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageClassWithoutAnnotationsTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageCoversOverridesCoversNothingTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageFunctionParenthesesTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageFunctionParenthesesWhitespaceTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageFunctionTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodNothingCoversMethod.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodNothingTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodOneLineAnnotationTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodParenthesesTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodParenthesesWhitespaceTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageMethodTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNamespacedFunctionTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNoneTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNotPrivateTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNotProtectedTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageNotPublicTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoveragePrivateTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageProtectedTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoveragePublicTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoverageTwoDefaultClassAnnotations.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoveredClass.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CoveredFunction.php create mode 100644 vendor/phpunit/phpunit/tests/_files/CustomPrinter.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderDebugTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderDependencyTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderFilterTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIncompleteTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2833/FirstTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2833/SecondTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2859/phpunit.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2859/tests/another/TestWithDataProviderTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2922/FirstTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderIssue2922/SecondTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderSkippedTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DataProviderTestDoxTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DataproviderExecutionOrderTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DataproviderExecutionOrderTest_result_cache.txt create mode 100644 vendor/phpunit/phpunit/tests/_files/DependencyFailureTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DependencySuccessTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DependencyTestSuite.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DoNoAssertionTestCase.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DoesNotPerformAssertionsButPerformingAssertionsTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DoubleTestCase.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DummyBarTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DummyException.php create mode 100644 vendor/phpunit/phpunit/tests/_files/DummyFooTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/EmptyTestCaseTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ExampleTrait.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInAssertPostConditionsTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInAssertPreConditionsTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInSetUpTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInTearDownAfterClassTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInTearDownTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionInTestDetectedInTeardown.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionNamespaceTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionStackTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ExceptionWithThrowable.php create mode 100644 vendor/phpunit/phpunit/tests/_files/Failure.php create mode 100644 vendor/phpunit/phpunit/tests/_files/FailureTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/FalsyConstraint.php create mode 100644 vendor/phpunit/phpunit/tests/_files/FatalTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/FinalClass.php create mode 100644 vendor/phpunit/phpunit/tests/_files/Foo.php create mode 100644 vendor/phpunit/phpunit/tests/_files/FunctionCallback.php create mode 100644 vendor/phpunit/phpunit/tests/_files/Go ogle-Sea.rch.wsdl create mode 100644 vendor/phpunit/phpunit/tests/_files/GoogleSearch.wsdl create mode 100644 vendor/phpunit/phpunit/tests/_files/IgnoreCodeCoverageClass.php create mode 100644 vendor/phpunit/phpunit/tests/_files/IgnoreCodeCoverageClassTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/IncompleteTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceA.php create mode 100644 vendor/phpunit/phpunit/tests/_files/Inheritance/InheritanceB.php create mode 100644 vendor/phpunit/phpunit/tests/_files/InheritedTestCase.php create mode 100644 vendor/phpunit/phpunit/tests/_files/IniTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/InterfaceWithSemiReservedMethodName.php create mode 100644 vendor/phpunit/phpunit/tests/_files/InterfaceWithStaticMethod.php create mode 100644 vendor/phpunit/phpunit/tests/_files/IsolationTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/JsonData/arrayObject.json create mode 100644 vendor/phpunit/phpunit/tests/_files/JsonData/simpleObject.json create mode 100644 vendor/phpunit/phpunit/tests/_files/MethodCallback.php create mode 100644 vendor/phpunit/phpunit/tests/_files/MethodCallbackByReference.php create mode 100644 vendor/phpunit/phpunit/tests/_files/MockRunner.php create mode 100644 vendor/phpunit/phpunit/tests/_files/MockTestInterface.php create mode 100644 vendor/phpunit/phpunit/tests/_files/Mockable.php create mode 100644 vendor/phpunit/phpunit/tests/_files/MultiDependencyTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/MultiDependencyTest_result_cache.txt create mode 100644 vendor/phpunit/phpunit/tests/_files/MultipleDataProviderTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/MyCommand.php create mode 100644 vendor/phpunit/phpunit/tests/_files/MyTestListener.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NamedConstraint.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageClassExtendedTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageClassTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageCoversClassPublicTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageCoversClassTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageMethodTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotPrivateTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotProtectedTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageNotPublicTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveragePrivateTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoverageProtectedTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveragePublicTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveredClass.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NamespaceCoveredFunction.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NoArgTestCaseTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NoTestCaseClass.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NoTestCases.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NonStatic.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NotExistingCoveredElementTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NotPublicTestCase.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NotSelfDescribingTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NotVoidTestCase.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NothingTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/NumericGroupAnnotationTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/OneTestCase.php create mode 100644 vendor/phpunit/phpunit/tests/_files/OutputTestCase.php create mode 100644 vendor/phpunit/phpunit/tests/_files/OverrideTestCase.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ParseTestMethodAnnotationsMock.php create mode 100644 vendor/phpunit/phpunit/tests/_files/PartialMockTestClass.php create mode 100644 vendor/phpunit/phpunit/tests/_files/RequirementsClassBeforeClassHookTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/RequirementsClassDocBlockTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/RequirementsTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/RouterTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/SampleArrayAccess.php create mode 100644 vendor/phpunit/phpunit/tests/_files/SampleClass.php create mode 100644 vendor/phpunit/phpunit/tests/_files/SeparateProcessesTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/Singleton.php create mode 100644 vendor/phpunit/phpunit/tests/_files/SingletonClass.php create mode 100644 vendor/phpunit/phpunit/tests/_files/SomeClass.php create mode 100644 vendor/phpunit/phpunit/tests/_files/StackTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/StaticMockTestClass.php create mode 100644 vendor/phpunit/phpunit/tests/_files/StatusTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/StopOnErrorTestSuite.php create mode 100644 vendor/phpunit/phpunit/tests/_files/StopOnWarningTestSuite.php create mode 100644 vendor/phpunit/phpunit/tests/_files/StopsOnWarningTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/StringableClass.php create mode 100644 vendor/phpunit/phpunit/tests/_files/Struct.php create mode 100644 vendor/phpunit/phpunit/tests/_files/Success.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TemplateMethodsTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestAutoreferenced.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestDoxGroupTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestGeneratorMaker.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestIncomplete.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestIterator.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestIterator2.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestIteratorAggregate.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestIteratorAggregate2.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestProxyFixture.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestRisky.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestSkipped.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestTestError.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestWarning.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestWithTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TestableCliTestDoxPrinter.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ThrowExceptionTestCase.php create mode 100644 vendor/phpunit/phpunit/tests/_files/ThrowNoExceptionTestCase.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TraitWithConstructor.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TraversableMockTestInterface.php create mode 100644 vendor/phpunit/phpunit/tests/_files/TruthyConstraint.php create mode 100644 vendor/phpunit/phpunit/tests/_files/VariousIterableDataProviderTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/WasRun.php create mode 100644 vendor/phpunit/phpunit/tests/_files/WrapperIteratorAggregate.php create mode 100644 vendor/phpunit/phpunit/tests/_files/bar.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.empty.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.false.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.invalid.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.colors.true.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.columns.default.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.custom-printer.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.defaulttestsuite.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.one-file-suite.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.suites.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_empty.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_execution_order_options.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_stop_on_defect.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_stop_on_error.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_stop_on_incomplete.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_stop_on_warning.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_whitelist.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/configuration_xinclude.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/expectedFileFormat.txt create mode 100644 vendor/phpunit/phpunit/tests/_files/foo.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/phpt-for-coverage.phpt create mode 100644 vendor/phpunit/phpunit/tests/_files/phpt-unsupported-section.phpt create mode 100644 vendor/phpunit/phpunit/tests/_files/phpt-xfail.phpt create mode 100644 vendor/phpunit/phpunit/tests/_files/phpunit-example-extension/phpunit.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/phpunit-example-extension/tests/OneTest.php create mode 100644 vendor/phpunit/phpunit/tests/_files/phpunit-example-extension/tools/phpunit.d/phpunit-example-extension-3.0.3.phar create mode 100644 vendor/phpunit/phpunit/tests/_files/structureAttributesAreSameButValuesAreNot.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/structureExpected.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/structureIgnoreTextNodes.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/structureIsSameButDataIsNot.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/structureWrongNumberOfAttributes.xml create mode 100644 vendor/phpunit/phpunit/tests/_files/structureWrongNumberOfNodes.xml create mode 100644 vendor/phpunit/phpunit/tests/bootstrap.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/_files/Extension.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/_files/HookTest.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/_files/NullPrinter.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/_files/expect_external.txt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/_files/hooks.xml create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/_files/phpt-env.expected.txt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/_files/phpt_external.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/abstract-test-class.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/assertion.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/cache-result.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/cli/columns-max.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/cli/columns.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/cli/generate-configuration.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/cli/test-file-not-found.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/code-coverage-ignore.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/code-coverage-phpt.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/colors-always.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/concrete-test-class.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/custom-printer-debug.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/custom-printer-verbose.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dataprovider-debug.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dataprovider-issue-2833.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dataprovider-issue-2859.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dataprovider-issue-2922.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dataprovider-log-xml-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dataprovider-log-xml.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dataprovider-testdox.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/debug.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/default-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/default.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/defaulttestsuite-using-testsuite.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/defaulttestsuite.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/defects-first-order-via-cli.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dependencies-clone.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dependencies-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dependencies.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dependencies2-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dependencies2.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dependencies3-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dependencies3.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/disable-code-coverage-ignore.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/dump-xdebug-filter.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/empty-testcase.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/exception-stack.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/exclude-group-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/exclude-group.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/execution-order-options-via-config.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/failure-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/failure-reverse-list.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/failure.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/fatal-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-class-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-class.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-classname-and-range-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-classname-and-range.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-number-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-number.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-only-range-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-only-range.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-only-regexp-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-only-regexp.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-only-string-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-only-string.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-range-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-range.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-regexp-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-regexp.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-string-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-dataprovider-by-string.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-method-case-insensitive.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-method-case-sensitive-no-result.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-method-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-method.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/filter-no-results.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/forward-compatibility.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/group-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/group.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/help.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/help2.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/hooks.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/ini-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/list-groups.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/list-suites.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/list-tests-dataprovider.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/list-tests-xml-dataprovider.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/log-junit-phpt.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/log-junit.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/log-teamcity-phpt.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/log-teamcity.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/232.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/3154_namespaced_constant_resolving.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/3530.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/3967.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/397.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/abstract_class.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class_call_parent_clone.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class_dont_call_parent_clone.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class_dont_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class_implementing_interface_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class_implementing_interface_dont_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class_nonexistent_method.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class_partial.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class_with_deprecated_method.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class_with_final_method.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class_with_method_named_method.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class_with_method_with_nullable_typehinted_variadic_arguments.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class_with_method_with_typehinted_variadic_arguments.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/class_with_method_with_variadic_arguments.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/constant_as_parameter_default_value.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/interface.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/invocation_object_clone_object.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/namespaced_class.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/namespaced_class_call_parent_clone.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/namespaced_class_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/namespaced_class_dont_call_parent_clone.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/namespaced_class_dont_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/namespaced_class_implementing_interface_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/namespaced_class_implementing_interface_dont_call_parent_constructor.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/namespaced_class_partial.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/namespaced_interface.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/nonexistent_class.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/nonexistent_class_with_namespace.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/nonexistent_class_with_namespace_starting_with_separator.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/nullable_types.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/proxy.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/return_type_declarations_closure.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/return_type_declarations_final.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/return_type_declarations_generator.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/return_type_declarations_nullable.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/return_type_declarations_object_method.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/return_type_declarations_parent.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/return_type_declarations_self.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/return_type_declarations_static_method.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/return_type_declarations_void.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/scalar_type_declarations.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/wsdl_class.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/wsdl_class_namespace.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/generator/wsdl_class_partial.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/call_original.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/call_original_with_argument.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/call_original_with_argument_variadic.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/call_original_with_return_type_void.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/clone_method_arguments.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/deprecated_with_description.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/deprecated_without_description.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/private_method.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/protected_method.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/return_by_reference.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/return_by_reference_with_return_type.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/return_type.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/return_type_parent.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/return_type_self.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/static_method.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/static_method_with_return_type.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_argument.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_argument_default.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_argument_default_constant.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_argument_default_null.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_argument_nullable.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_argument_reference.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_argument_typed_array.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_argument_typed_callable.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_argument_typed_class.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_argument_typed_scalar.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_argument_typed_self.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_argument_typed_unkown_class.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_argument_typed_variadic.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_argument_variadic.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mock-objects/mock-method/with_arguments.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/mycommand.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/options-after-arguments.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/order-by-default-invalid-via-cli.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/output-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/phar-extension-suppressed.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/phar-extension.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/phpt-args.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/phpt-env.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/phpt-external.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/phpt-parsing.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/phpt-stderr.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/phpt-stdin.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/phpt-xfail.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1149.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1149/Issue1149Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1216.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1216/Issue1216Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1216/bootstrap1216.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1216/phpunit1216.xml create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1265.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1265/Issue1265Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1265/phpunit1265.xml create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1330.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1330/Issue1330Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1330/phpunit1330.xml create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1335.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1335/Issue1335Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1335/bootstrap1335.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1337.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1337/Issue1337Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1348.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1348/Issue1348Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1351.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1351/ChildProcessClass1351.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1351/Issue1351Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1374.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1374/Issue1374Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1437.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1437/Issue1437Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1468.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1468/Issue1468Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1471.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1471/Issue1471Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1472.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1472/Issue1472Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1570.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/1570/Issue1570Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2085-enforce-time-limit-options-via-config-without-invoker.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2085-without-invoker.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2085.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2085/Issue2085Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2085/configuration_enforce_time_limit_options.xml create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2137-filter.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2137-no_filter.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2137/Issue2137Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2145.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2145/Issue2145Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2158.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2158/Issue2158Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2158/constant.inc create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2366.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2366/Issue2366Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2380.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2380/Issue2380Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2382.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2382/Issue2382Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2435.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2435/Issue2435Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/244.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/244/Issue244Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2448-existing-test.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2448-not-existing-test.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2448/Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2724-diff-pid-from-master-process.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2724/SeparateClassRunMethodInNewProcessTest.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2725-separate-class-before-after-pid.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2725/BeforeAfterClassPidTest.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2731.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2731/Issue2731Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2811.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2811/Issue2811Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2830.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2830/Issue2830Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2972.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2972/issue-2972-test.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/2972/unconventiallyNamedIssue2972Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/3093/Issue3093Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/3093/issue-3093-test.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/3107/Issue3107Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/3107/issue-3107-test.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/3156/Issue3156Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/322.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/322/Issue322Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/322/phpunit322.xml create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/3364/issue-3364-test.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/3364/tests/Issue3364SetupBeforeClassTest.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/3364/tests/Issue3364SetupTest.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/3379.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/3379/Issue3379Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/3379/Issue3379TestListener.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/3379/phpunit.xml create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/3380/issue-3380-test.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/3396/issue-3396-test.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/433.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/433/Issue433Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/445.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/445/Issue445Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/498.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/498/Issue498Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/503.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/503/Issue503Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/581.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/581/Issue581Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/74.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/74/Issue74Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/74/NewException.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/765.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/765/Issue765Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/797.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/797/Issue797Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/797/bootstrap797.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/863.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/873.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/GitHub/873/Issue873Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/Trac/1021.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/Trac/1021/Issue1021Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/Trac/523.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/Trac/523/Issue523Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/Trac/578.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/Trac/578/Issue578Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/Trac/684.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/Trac/684/Issue684Test.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/Trac/783.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/Trac/783/ChildSuite.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/Trac/783/OneTest.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/Trac/783/ParentSuite.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/regression/Trac/783/TwoTest.php create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/repeat.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/report-tests-performing-assertions-when-annotated-with-does-not-perform-assertions.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/report-useless-tests-incomplete.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/report-useless-tests-isolation.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/report-useless-tests.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/separate-processes-test.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/stop-on-defect-via-cli.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/stop-on-defect-via-config.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/stop-on-error-via-cli.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/stop-on-error-via-config.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/stop-on-incomplete-via-cli.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/stop-on-incomplete-via-config.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/stop-on-warning-via-cli.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/stop-on-warning-via-config.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/teamcity-inner-exceptions.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/teamcity.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/test-order-randomized-seed-with-dependency-resolution.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/test-order-randomized-with-dependency-resolution.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/test-order-reversed-with-dependency-resolution.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/test-order-reversed-without-dependency-resolution.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/test-suffix-multiple.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/test-suffix-single.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/testdox-dataprovider-placeholder.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/testdox-exclude-group.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/testdox-group.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/testdox-html.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/testdox-text.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/testdox-verbose.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/testdox-xml.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/testdox.phpt create mode 100644 vendor/phpunit/phpunit/tests/end-to-end/version.phpt create mode 100644 vendor/phpunit/phpunit/tests/fail/fail.phpt create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/AssertTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/ArrayHasKeyTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/ArraySubsetTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/AttributeTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/CallbackTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/ClassHasAttributeTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/ClassHasStaticAttributeTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/ConstraintTestCase.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/CountTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/DirectoryExistsTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/ExceptionMessageRegExpTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/ExceptionMessageTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/FileExistsTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/GreaterThanTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/IsEmptyTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/IsEqualTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/IsIdenticalTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/IsInstanceOfTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/IsJsonTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/IsNullTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/IsReadableTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/IsTypeTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/IsWritableTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/JsonMatchesErrorMessageProviderTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/JsonMatchesTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/LessThanTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/LogicalAndTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/LogicalOrTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/LogicalXorTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/ObjectHasAttributeTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/RegularExpressionTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/SameSizeTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/StringContainsTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/StringEndsWithTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/StringMatchesFormatDescriptionTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/StringStartsWithTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/Constraint/TraversableContainsTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/ConstraintTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/ExceptionWrapperTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/MockObject/Builder/InvocationMockerTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/MockObject/GeneratorTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/MockObject/Invocation/ObjectInvocationTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/MockObject/Invocation/StaticInvocationTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/MockObject/Matcher/ConsecutiveParametersTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/MockObject/MockBuilderTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/MockObject/MockMethodTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/MockObject/MockObjectTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/MockObject/ProxyObjectTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/TestCaseTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/TestFailureTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/TestImplementorTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/TestListenerTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/TestResultTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/TestSuiteIteratorTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Framework/TestSuiteTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Runner/Filter/NameFilterIteratorTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Runner/PhptTestCaseTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Runner/ResultCacheExtensionTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Runner/TestSuiteSorterTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/TextUI/TestRunnerTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Util/ConfigurationGeneratorTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Util/ConfigurationTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Util/GetoptTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Util/GlobalStateTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Util/JsonTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Util/NullTestResultCacheTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Util/PHP/AbstractPhpProcessTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Util/RegularExpressionTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Util/TestDox/CliTestDoxPrinterTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Util/TestDox/NamePrettifierTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Util/TestResultCacheTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Util/TestTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Util/XDebugFilterScriptGeneratorTest.php create mode 100644 vendor/phpunit/phpunit/tests/unit/Util/XmlTest.php create mode 100644 vendor/roots/wordpress-core-installer/.editorconfig create mode 100644 vendor/roots/wordpress-core-installer/LICENSE.md create mode 100644 vendor/roots/wordpress-core-installer/composer.json create mode 100644 vendor/roots/wordpress-core-installer/src/WordPressCoreInstaller.php create mode 100644 vendor/roots/wordpress-core-installer/src/WordPressCorePlugin.php create mode 100644 vendor/sebastian/code-unit-reverse-lookup/ChangeLog.md create mode 100644 vendor/sebastian/code-unit-reverse-lookup/LICENSE create mode 100644 vendor/sebastian/code-unit-reverse-lookup/README.md create mode 100644 vendor/sebastian/code-unit-reverse-lookup/composer.json create mode 100644 vendor/sebastian/code-unit-reverse-lookup/src/Wizard.php create mode 100644 vendor/sebastian/comparator/ChangeLog.md create mode 100644 vendor/sebastian/comparator/LICENSE create mode 100644 vendor/sebastian/comparator/README.md create mode 100644 vendor/sebastian/comparator/composer.json create mode 100644 vendor/sebastian/comparator/src/ArrayComparator.php create mode 100644 vendor/sebastian/comparator/src/Comparator.php create mode 100644 vendor/sebastian/comparator/src/ComparisonFailure.php create mode 100644 vendor/sebastian/comparator/src/DOMNodeComparator.php create mode 100644 vendor/sebastian/comparator/src/DateTimeComparator.php create mode 100644 vendor/sebastian/comparator/src/DoubleComparator.php create mode 100644 vendor/sebastian/comparator/src/ExceptionComparator.php create mode 100644 vendor/sebastian/comparator/src/Factory.php create mode 100644 vendor/sebastian/comparator/src/MockObjectComparator.php create mode 100644 vendor/sebastian/comparator/src/NumericComparator.php create mode 100644 vendor/sebastian/comparator/src/ObjectComparator.php create mode 100644 vendor/sebastian/comparator/src/ResourceComparator.php create mode 100644 vendor/sebastian/comparator/src/ScalarComparator.php create mode 100644 vendor/sebastian/comparator/src/SplObjectStorageComparator.php create mode 100644 vendor/sebastian/comparator/src/TypeComparator.php create mode 100644 vendor/sebastian/diff/ChangeLog.md create mode 100644 vendor/sebastian/diff/LICENSE create mode 100644 vendor/sebastian/diff/README.md create mode 100644 vendor/sebastian/diff/composer.json create mode 100644 vendor/sebastian/diff/src/Chunk.php create mode 100644 vendor/sebastian/diff/src/Diff.php create mode 100644 vendor/sebastian/diff/src/Differ.php create mode 100644 vendor/sebastian/diff/src/Exception/ConfigurationException.php create mode 100644 vendor/sebastian/diff/src/Exception/Exception.php create mode 100644 vendor/sebastian/diff/src/Exception/InvalidArgumentException.php create mode 100644 vendor/sebastian/diff/src/Line.php create mode 100644 vendor/sebastian/diff/src/LongestCommonSubsequenceCalculator.php create mode 100644 vendor/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php create mode 100644 vendor/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php create mode 100644 vendor/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php create mode 100644 vendor/sebastian/diff/src/Output/DiffOutputBuilderInterface.php create mode 100644 vendor/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php create mode 100644 vendor/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php create mode 100644 vendor/sebastian/diff/src/Parser.php create mode 100644 vendor/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php create mode 100644 vendor/sebastian/environment/ChangeLog.md create mode 100644 vendor/sebastian/environment/LICENSE create mode 100644 vendor/sebastian/environment/README.md create mode 100644 vendor/sebastian/environment/composer.json create mode 100644 vendor/sebastian/environment/src/Console.php create mode 100644 vendor/sebastian/environment/src/OperatingSystem.php create mode 100644 vendor/sebastian/environment/src/Runtime.php create mode 100644 vendor/sebastian/exporter/ChangeLog.md create mode 100644 vendor/sebastian/exporter/LICENSE create mode 100644 vendor/sebastian/exporter/README.md create mode 100644 vendor/sebastian/exporter/composer.json create mode 100644 vendor/sebastian/exporter/src/Exporter.php create mode 100644 vendor/sebastian/global-state/.gitignore create mode 100644 vendor/sebastian/global-state/.php_cs create mode 100644 vendor/sebastian/global-state/.travis.yml create mode 100644 vendor/sebastian/global-state/LICENSE create mode 100644 vendor/sebastian/global-state/README.md create mode 100644 vendor/sebastian/global-state/build.xml create mode 100644 vendor/sebastian/global-state/composer.json create mode 100644 vendor/sebastian/global-state/phpunit.xml create mode 100644 vendor/sebastian/global-state/src/Blacklist.php create mode 100644 vendor/sebastian/global-state/src/CodeExporter.php create mode 100644 vendor/sebastian/global-state/src/Restorer.php create mode 100644 vendor/sebastian/global-state/src/Snapshot.php create mode 100644 vendor/sebastian/global-state/src/exceptions/Exception.php create mode 100644 vendor/sebastian/global-state/src/exceptions/RuntimeException.php create mode 100644 vendor/sebastian/global-state/tests/BlacklistTest.php create mode 100644 vendor/sebastian/global-state/tests/CodeExporterTest.php create mode 100644 vendor/sebastian/global-state/tests/RestorerTest.php create mode 100644 vendor/sebastian/global-state/tests/SnapshotTest.php create mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedChildClass.php create mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedClass.php create mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedImplementor.php create mode 100644 vendor/sebastian/global-state/tests/_fixture/BlacklistedInterface.php create mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotClass.php create mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotDomDocument.php create mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotFunctions.php create mode 100644 vendor/sebastian/global-state/tests/_fixture/SnapshotTrait.php create mode 100644 vendor/sebastian/object-enumerator/ChangeLog.md create mode 100644 vendor/sebastian/object-enumerator/LICENSE create mode 100644 vendor/sebastian/object-enumerator/README.md create mode 100644 vendor/sebastian/object-enumerator/composer.json create mode 100644 vendor/sebastian/object-enumerator/src/Enumerator.php create mode 100644 vendor/sebastian/object-enumerator/src/Exception.php create mode 100644 vendor/sebastian/object-enumerator/src/InvalidArgumentException.php create mode 100644 vendor/sebastian/object-reflector/ChangeLog.md create mode 100644 vendor/sebastian/object-reflector/LICENSE create mode 100644 vendor/sebastian/object-reflector/README.md create mode 100644 vendor/sebastian/object-reflector/composer.json create mode 100644 vendor/sebastian/object-reflector/src/Exception.php create mode 100644 vendor/sebastian/object-reflector/src/InvalidArgumentException.php create mode 100644 vendor/sebastian/object-reflector/src/ObjectReflector.php create mode 100644 vendor/sebastian/recursion-context/LICENSE create mode 100644 vendor/sebastian/recursion-context/README.md create mode 100644 vendor/sebastian/recursion-context/composer.json create mode 100644 vendor/sebastian/recursion-context/src/Context.php create mode 100644 vendor/sebastian/recursion-context/src/Exception.php create mode 100644 vendor/sebastian/recursion-context/src/InvalidArgumentException.php create mode 100644 vendor/sebastian/resource-operations/ChangeLog.md create mode 100644 vendor/sebastian/resource-operations/LICENSE create mode 100644 vendor/sebastian/resource-operations/README.md create mode 100644 vendor/sebastian/resource-operations/composer.json create mode 100644 vendor/sebastian/resource-operations/src/ResourceOperations.php create mode 100644 vendor/sebastian/version/.gitattributes create mode 100644 vendor/sebastian/version/.gitignore create mode 100644 vendor/sebastian/version/.php_cs create mode 100644 vendor/sebastian/version/LICENSE create mode 100644 vendor/sebastian/version/README.md create mode 100644 vendor/sebastian/version/composer.json create mode 100644 vendor/sebastian/version/src/Version.php create mode 100644 vendor/theseer/tokenizer/CHANGELOG.md create mode 100644 vendor/theseer/tokenizer/LICENSE create mode 100644 vendor/theseer/tokenizer/README.md create mode 100644 vendor/theseer/tokenizer/composer.json create mode 100644 vendor/theseer/tokenizer/composer.lock create mode 100644 vendor/theseer/tokenizer/src/Exception.php create mode 100644 vendor/theseer/tokenizer/src/NamespaceUri.php create mode 100644 vendor/theseer/tokenizer/src/NamespaceUriException.php create mode 100644 vendor/theseer/tokenizer/src/Token.php create mode 100644 vendor/theseer/tokenizer/src/TokenCollection.php create mode 100644 vendor/theseer/tokenizer/src/TokenCollectionException.php create mode 100644 vendor/theseer/tokenizer/src/Tokenizer.php create mode 100644 vendor/theseer/tokenizer/src/XMLSerializer.php create mode 100644 vendor/webmozart/assert/CHANGELOG.md create mode 100644 vendor/webmozart/assert/LICENSE create mode 100644 vendor/webmozart/assert/README.md create mode 100644 vendor/webmozart/assert/composer.json create mode 100644 vendor/webmozart/assert/src/Assert.php create mode 100644 vendor/webmozart/assert/src/InvalidArgumentException.php create mode 100644 vendor/webmozart/assert/src/Mixin.php create mode 100644 vendor/wp-phpunit/wp-phpunit/README.md create mode 100644 vendor/wp-phpunit/wp-phpunit/__loaded.php create mode 100644 vendor/wp-phpunit/wp-phpunit/composer.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/WPHTTP-testcase-redirection-script.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/do-blocks-expected.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/do-blocks-original.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__4-invalid-starting-letter.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__4-invalid-starting-letter.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__4-invalid-starting-letter.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__4-invalid-starting-letter.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__4-invalid-starting-letter.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__archives.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__archives.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__archives.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__archives.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__archives.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__archives__showPostCounts.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__archives__showPostCounts.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__archives__showPostCounts.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__archives__showPostCounts.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__archives__showPostCounts.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__audio.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__audio.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__audio.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__audio.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__audio.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__block.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__block.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__block.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__block.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__block.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__button__center.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__button__center.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__button__center.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__button__center.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__button__center.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__categories.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__categories.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__categories.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__categories.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__categories.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__code.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__code.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__code.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__code.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__code.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__column.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__column.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__column.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__column.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__column.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__columns.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__columns.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__columns.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__columns.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__columns.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__columns__deprecated.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__columns__deprecated.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__columns__deprecated.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__columns__deprecated.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__columns__deprecated.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover-image.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover-image.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover-image.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover-image.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover-image.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover__video-overlay.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover__video-overlay.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover__video-overlay.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover__video-overlay.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover__video-overlay.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover__video.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover__video.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover__video.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover__video.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__cover__video.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__embed.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__embed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__embed.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__embed.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__embed.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__new-window.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__new-window.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__new-window.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__new-window.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__new-window.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__no-download-button.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__no-download-button.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__no-download-button.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__no-download-button.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__no-download-button.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__no-text-link.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__no-text-link.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__no-text-link.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__no-text-link.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__file__no-text-link.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__freeform.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__freeform.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__freeform.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__freeform.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__freeform.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__freeform__undelimited.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__freeform__undelimited.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__freeform__undelimited.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__freeform__undelimited.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__freeform__undelimited.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__gallery.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__gallery.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__gallery.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__gallery.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__gallery.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__gallery__columns.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__gallery__columns.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__gallery__columns.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__gallery__columns.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__gallery__columns.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__heading__h2-em.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__heading__h2-em.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__heading__h2-em.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__heading__h2-em.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__heading__h2-em.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__heading__h2.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__heading__h2.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__heading__h2.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__heading__h2.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__heading__h2.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__html.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__html.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__html.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__html.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__html.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__attachment-link.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__attachment-link.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__attachment-link.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__attachment-link.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__attachment-link.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__center-caption.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__center-caption.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__center-caption.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__center-caption.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__center-caption.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__custom-link.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__custom-link.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__custom-link.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__custom-link.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__custom-link.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__media-link.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__media-link.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__media-link.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__media-link.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__image__media-link.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__invalid-Capitals.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__invalid-Capitals.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__invalid-Capitals.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__invalid-Capitals.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__invalid-Capitals.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__invalid-special.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__invalid-special.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__invalid-special.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__invalid-special.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__invalid-special.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-comments.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-comments.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-comments.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-comments.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-comments.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-posts.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-posts.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-posts.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-posts.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-posts.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-posts__displayPostDate.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-posts__displayPostDate.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-posts__displayPostDate.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-posts__displayPostDate.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__latest-posts__displayPostDate.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__list__ul.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__list__ul.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__list__ul.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__list__ul.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__list__ul.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__image-alt-no-align.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__image-alt-no-align.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__image-alt-no-align.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__image-alt-no-align.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__image-alt-no-align.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__is-stacked-on-mobile.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__is-stacked-on-mobile.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__is-stacked-on-mobile.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__is-stacked-on-mobile.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__is-stacked-on-mobile.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__media-right-custom-width.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__media-right-custom-width.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__media-right-custom-width.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__media-right-custom-width.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__media-right-custom-width.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__video.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__video.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__video.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__video.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__media-text__video.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__missing.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__missing.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__missing.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__missing.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__missing.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__more.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__more.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__more.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__more.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__more.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__more__custom-text-teaser.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__more__custom-text-teaser.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__more__custom-text-teaser.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__more__custom-text-teaser.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__more__custom-text-teaser.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__nextpage.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__nextpage.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__nextpage.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__nextpage.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__nextpage.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__paragraph__align-right.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__paragraph__align-right.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__paragraph__align-right.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__paragraph__align-right.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__paragraph__align-right.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__paragraph__deprecated.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__paragraph__deprecated.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__paragraph__deprecated.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__paragraph__deprecated.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__paragraph__deprecated.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__preformatted.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__preformatted.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__preformatted.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__preformatted.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__preformatted.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__pullquote.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__pullquote.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__pullquote.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__pullquote.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__pullquote.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__pullquote__multi-paragraph.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__pullquote__multi-paragraph.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__pullquote__multi-paragraph.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__pullquote__multi-paragraph.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__pullquote__multi-paragraph.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__quote__style-1.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__quote__style-1.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__quote__style-1.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__quote__style-1.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__quote__style-1.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__quote__style-2.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__quote__style-2.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__quote__style-2.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__quote__style-2.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__quote__style-2.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__separator.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__separator.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__separator.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__separator.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__separator.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__shortcode.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__shortcode.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__shortcode.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__shortcode.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__shortcode.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__spacer.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__spacer.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__spacer.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__spacer.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__spacer.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__subhead.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__subhead.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__subhead.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__subhead.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__subhead.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__table.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__table.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__table.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__table.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__table.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__text-columns.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__text-columns.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__text-columns.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__text-columns.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__text-columns.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__text__converts-to-paragraph.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__text__converts-to-paragraph.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__text__converts-to-paragraph.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__text__converts-to-paragraph.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__text__converts-to-paragraph.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__verse.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__verse.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__verse.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__verse.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__verse.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__video.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__video.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__video.parsed.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__video.serialized.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/fixtures/core__video.server.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/notice/block-rtl.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/notice/block.asset.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/notice/block.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/notice/block.js create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/notice/block.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/pattern-directory/browse-all.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/pattern-directory/browse-category-2.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/pattern-directory/browse-keyword-11.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/blocks/pattern-directory/search-button.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/export/crazy-cdata-escaped.xml create mode 100644 vendor/wp-phpunit/wp-phpunit/data/export/crazy-cdata.xml create mode 100644 vendor/wp-phpunit/wp-phpunit/data/export/invalid-version-tag.xml create mode 100644 vendor/wp-phpunit/wp-phpunit/data/export/malformed.xml create mode 100644 vendor/wp-phpunit/wp-phpunit/data/export/missing-version-tag.xml create mode 100644 vendor/wp-phpunit/wp-phpunit/data/export/slashes.xml create mode 100644 vendor/wp-phpunit/wp-phpunit/data/export/small-export.xml create mode 100644 vendor/wp-phpunit/wp-phpunit/data/export/test-serialized-postmeta-no-cdata.xml create mode 100644 vendor/wp-phpunit/wp-phpunit/data/export/test-serialized-postmeta-with-cdata.xml create mode 100644 vendor/wp-phpunit/wp-phpunit/data/export/test-utw-post-meta-import.xml create mode 100644 vendor/wp-phpunit/wp-phpunit/data/export/valid-wxr-1.0.xml create mode 100644 vendor/wp-phpunit/wp-phpunit/data/export/valid-wxr-1.1.xml create mode 100644 vendor/wp-phpunit/wp-phpunit/data/feed/wordpress-org-news.xml create mode 100644 vendor/wp-phpunit/wp-phpunit/data/formatting/big5.txt create mode 100644 vendor/wp-phpunit/wp-phpunit/data/formatting/entities.txt create mode 100644 vendor/wp-phpunit/wp-phpunit/data/formatting/file-header-cr-line-endings.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/formatting/file-header-php-open-tag-prefix.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/formatting/remove_accents.01.input.txt create mode 100644 vendor/wp-phpunit/wp-phpunit/data/formatting/sizzle.js create mode 100644 vendor/wp-phpunit/wp-phpunit/data/formatting/utf-8/README create mode 100644 vendor/wp-phpunit/wp-phpunit/data/formatting/utf-8/urlencode.py create mode 100644 vendor/wp-phpunit/wp-phpunit/data/formatting/utf-8/urlencoded.txt create mode 100644 vendor/wp-phpunit/wp-phpunit/data/formatting/utf-8/utf-8.txt create mode 100644 vendor/wp-phpunit/wp-phpunit/data/formatting/whole-posts.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/formatting/windows1252.py create mode 100644 vendor/wp-phpunit/wp-phpunit/data/formatting/xssAttacks.xml create mode 100644 vendor/wp-phpunit/wp-phpunit/data/functions/dummy.txt create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/2004-07-22-DSC_0007.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/2004-07-22-DSC_0008.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/2007-06-17DSC_4173.JPG create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/33772.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/a2-small.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/canola.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/codeispoetry.png create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/gradient-square.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/one-blue-pixel-1-100x100.png create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/one-blue-pixel-100x100.png create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/sugarloaf-mountain.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image-1-100x100.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image-2.gif create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image-3.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image-4.png create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image-cmyk.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image-grayscale.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image-iptc.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image-large.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image-lzw.tiff create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image-mime-jpg.png create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image-no-extension create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image-upside-down.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image-zip.tiff create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image.bmp create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image.gif create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image.ico create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image.jp2 create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image.pct create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image.png create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image.psd create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image.sgi create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image.tga create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image.tiff create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/test-image.webp create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/transparent.png create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/waffles.jpg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/webp-animated.webp create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/webp-lossless.webp create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/webp-lossy.webp create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/webp-transparent.webp create mode 100644 vendor/wp-phpunit/wp-phpunit/data/images/wordpress-gsoc-flyer.pdf create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/admin-en_GB.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/admin-en_GB.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/admin-en_US-script-handle.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/admin-es_ES.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/admin-es_ES.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/admin-network-en_GB.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/admin-network-en_GB.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/admin-network-es_ES.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/admin-network-es_ES.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/continents-cities-es_ES.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/continents-cities-es_ES.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/de_DE.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/de_DE.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/en_GB.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/en_GB.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/en_US-813e104eb47e13dd4cc5af844c618754.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/es_ES.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/es_ES.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/ja_JP.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/ja_JP.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/plugins/internationalized-plugin-de_DE.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/plugins/internationalized-plugin-de_DE.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/plugins/internationalized-plugin-en_US-2f86cb96a0233e7cb3b6f03ad573be0b.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/plugins/notice-pl_PL.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/plugins/notice-pl_PL.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/themes/block-theme-pl_PL.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/themes/block-theme-pl_PL.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/themes/internationalized-theme-de_DE.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/themes/internationalized-theme-de_DE.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/languages/themes/internationalized-theme-en_US-2f86cb96a0233e7cb3b6f03ad573be0b.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/plugins/hello.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/plugins/internationalized-plugin.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/pomo/bad_nplurals.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/pomo/bad_nplurals.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/pomo/context.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/pomo/de_DE-2.8.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/pomo/empty.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/pomo/mo.pot create mode 100644 vendor/wp-phpunit/wp-phpunit/data/pomo/overload.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/pomo/plural.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/pomo/simple.mo create mode 100644 vendor/wp-phpunit/wp-phpunit/data/pomo/simple.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/pomo/windows-line-endings.po create mode 100644 vendor/wp-phpunit/wp-phpunit/data/templates/template.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/theme-file-child/child-only.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/theme-file-child/parent-and-child.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/theme-file-child/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/theme-file-parent/parent-and-child.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/theme-file-parent/parent-only.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/theme-file-parent/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block-theme-child/page-home.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block-theme-child/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block-theme-child/templates/page-1.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block-theme-child/theme.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block-theme/index.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block-theme/page-1.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block-theme/parts/small-header.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block-theme/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block-theme/templates/index.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block-theme/templates/page-home.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block-theme/templates/page.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block-theme/theme.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block_theme-[0.4.0]/index.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block_theme-[0.4.0]/page-1.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block_theme-[0.4.0]/parts/large-header.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block_theme-[0.4.0]/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block_theme-[0.4.0]/templates/page-large-header.html create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/block_theme-[0.4.0]/theme.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/broken-theme/.nodelete create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/camelCase/index.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/camelCase/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/child-parent-itself/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/default/comments.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/default/footer.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/default/functions.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/default/header.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/default/index.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/default/sidebar.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/default/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/default/template-part.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/internationalized-theme/functions.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/internationalized-theme/index.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/internationalized-theme/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates-child/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates-child/subdir/template-sub-dir-post-types-child.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates-child/template-top-level-post-types-child.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates/38766/no-trailing-period-post-types.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates/38766/tilde-post-types.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates/38766/trailing-comma-post-types.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates/38766/trailing-period-post-types.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates/38766/trailing-period-whitespace-post-types.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates/38766/trailing-whitespace-period-post-types.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates/index.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates/subdir/template-sub-dir-post-types.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates/subdir/template-sub-dir.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates/template-header.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates/template-top-level-post-types.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/page-templates/template-top-level.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/rest-api/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/sandbox/functions.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/sandbox/index.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/sandbox/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/stylesheetonly/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/subdir/block_theme-[1.0.0]/index.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/subdir/block_theme-[1.0.0]/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/subdir/block_theme-[1.0.0]/theme.json create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/subdir/theme with spaces/index.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/subdir/theme with spaces/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/subdir/theme2/functions.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/subdir/theme2/index.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/subdir/theme2/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/theme1-dupe/functions.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/theme1-dupe/index.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/theme1-dupe/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/theme1/functions.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/theme1/index.php create mode 100644 vendor/wp-phpunit/wp-phpunit/data/themedir1/theme1/style.css create mode 100644 vendor/wp-phpunit/wp-phpunit/data/uploads/dashicons.woff create mode 100644 vendor/wp-phpunit/wp-phpunit/data/uploads/pages-to-word.docx create mode 100644 vendor/wp-phpunit/wp-phpunit/data/uploads/small-audio.flac create mode 100644 vendor/wp-phpunit/wp-phpunit/data/uploads/small-audio.mp3 create mode 100644 vendor/wp-phpunit/wp-phpunit/data/uploads/small-video.mkv create mode 100644 vendor/wp-phpunit/wp-phpunit/data/uploads/small-video.mov create mode 100644 vendor/wp-phpunit/wp-phpunit/data/uploads/small-video.mp4 create mode 100644 vendor/wp-phpunit/wp-phpunit/data/uploads/small-video.webm create mode 100644 vendor/wp-phpunit/wp-phpunit/data/uploads/test.csv create mode 100644 vendor/wp-phpunit/wp-phpunit/data/uploads/test.dfxp create mode 100644 vendor/wp-phpunit/wp-phpunit/data/uploads/test.rtf create mode 100644 vendor/wp-phpunit/wp-phpunit/data/uploads/test.tsv create mode 100644 vendor/wp-phpunit/wp-phpunit/data/uploads/test.vtt create mode 100644 vendor/wp-phpunit/wp-phpunit/data/uploads/video-play.svg create mode 100644 vendor/wp-phpunit/wp-phpunit/data/widgets/custom-widget-classes.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/abstract-testcase.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/bootstrap.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/class-basic-object.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/class-basic-subclass.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/class-jsonserializable-object.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/class-wp-fake-block-type.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/class-wp-rest-test-configurable-controller.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/class-wp-rest-test-search-handler.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/class-wp-sitemaps-empty-test-provider.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/class-wp-sitemaps-large-test-provider.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/class-wp-sitemaps-test-provider.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/class-wp-test-stream.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/exceptions.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/factory.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/factory/class-wp-unittest-factory-callback-after-create.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/factory/class-wp-unittest-factory-for-attachment.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/factory/class-wp-unittest-factory-for-blog.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/factory/class-wp-unittest-factory-for-bookmark.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/factory/class-wp-unittest-factory-for-comment.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/factory/class-wp-unittest-factory-for-network.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/factory/class-wp-unittest-factory-for-post.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/factory/class-wp-unittest-factory-for-term.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/factory/class-wp-unittest-factory-for-thing.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/factory/class-wp-unittest-factory-for-user.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/factory/class-wp-unittest-factory.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/factory/class-wp-unittest-generator-sequence.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/functions.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/install.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/mock-fs.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/mock-image-editor.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/mock-invokable.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/mock-mailer.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/normalize-xml.xsl create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/object-cache.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/phpunit-adapter-testcase.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/phpunit6/compat.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/plural-form-function.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/spy-rest-server.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/testcase-ajax.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/testcase-canonical.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/testcase-rest-api.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/testcase-rest-controller.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/testcase-rest-post-type-controller.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/testcase-xml.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/testcase-xmlrpc.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/testcase.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/trac.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/utils.php create mode 100644 vendor/wp-phpunit/wp-phpunit/includes/wp-profiler.php create mode 100644 vendor/wp-phpunit/wp-phpunit/wp-tests-config.php create mode 100644 vendor/yoast/phpunit-polyfills/CHANGELOG.md create mode 100644 vendor/yoast/phpunit-polyfills/LICENSE create mode 100644 vendor/yoast/phpunit-polyfills/README.md create mode 100644 vendor/yoast/phpunit-polyfills/composer.json create mode 100644 vendor/yoast/phpunit-polyfills/phpunitpolyfills-autoload.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Exceptions/Error.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Exceptions/InvalidComparisonMethodException.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Exceptions/TypeError.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Helpers/AssertAttributeHelper.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Helpers/ResourceHelper.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertClosedResource.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertClosedResource_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertEqualsSpecializations.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertEqualsSpecializations_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertFileDirectory.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertFileDirectory_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertFileEqualsSpecializations.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertFileEqualsSpecializations_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertIsType.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertIsType_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertNumericType.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertNumericType_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertObjectEquals.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertObjectEquals_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertObjectProperty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertObjectProperty_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertStringContains.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertStringContains_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertionRenames.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/AssertionRenames_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/EqualToSpecializations.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/EqualToSpecializations_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/ExpectException.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/ExpectExceptionMessageMatches.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/ExpectExceptionMessageMatches_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/ExpectExceptionObject.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/ExpectExceptionObject_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/ExpectException_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/ExpectPHPException.php create mode 100644 vendor/yoast/phpunit-polyfills/src/Polyfills/ExpectPHPException_Empty.php create mode 100644 vendor/yoast/phpunit-polyfills/src/TestCases/TestCasePHPUnitGte8.php create mode 100644 vendor/yoast/phpunit-polyfills/src/TestCases/TestCasePHPUnitLte7.php create mode 100644 vendor/yoast/phpunit-polyfills/src/TestCases/XTestCase.php create mode 100644 vendor/yoast/phpunit-polyfills/src/TestListeners/TestListenerDefaultImplementationPHPUnit6.php create mode 100644 vendor/yoast/phpunit-polyfills/src/TestListeners/TestListenerDefaultImplementationPHPUnitGte7.php create mode 100644 vendor/yoast/phpunit-polyfills/src/TestListeners/TestListenerDefaultImplementationPHPUnitLte5.php create mode 100644 vendor/yoast/phpunit-polyfills/src/TestListeners/TestListenerSnakeCaseMethods.php diff --git a/build/admin.asset.php b/build/admin.asset.php index a009593c..9bc365c5 100644 --- a/build/admin.asset.php +++ b/build/admin.asset.php @@ -1 +1 @@ - array('react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-blob', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-notices', 'wp-primitives', 'wp-private-apis', 'wp-url', 'wp-warning'), 'version' => '773a1f735ff3d5b3f0f7'); + array('react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-blob', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-notices', 'wp-primitives', 'wp-private-apis', 'wp-url', 'wp-warning'), 'version' => 'f64536f07909fca7ac77'); diff --git a/build/admin.js b/build/admin.js index f5b5d1c2..f6a591ac 100644 --- a/build/admin.js +++ b/build/admin.js @@ -7994,14 +7994,14 @@ function FieldsData(props) { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("table", { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("tbody", { children: Object.keys(data).map((key, i) => { - const field = 'string' !== typeof data[key] ? JSON.stringify(data[key]) : data[key]; + const field = JSON.parse(JSON.stringify(data[key])); return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("tr", { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("th", { children: key.replaceAll('_', ' ').toUpperCase() }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("td", { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.RawHTML, { className: "display-linebreak", - children: 'null' === field ? '' : (0,_wordpress_html_entities__WEBPACK_IMPORTED_MODULE_3__.decodeEntities)(field) + children: Array.isArray(field) ? field.join(', ') : (0,_wordpress_html_entities__WEBPACK_IMPORTED_MODULE_3__.decodeEntities)(field) }) })] }, i); @@ -8065,7 +8065,8 @@ const Submission = () => { } = (0,_router__WEBPACK_IMPORTED_MODULE_9__.useLocation)(); const submission = (0,_wordpress_core_data__WEBPACK_IMPORTED_MODULE_0__.useEntityRecord)('formello/v1', 'submissions', params.submission_id || (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_4__.getQueryArg)(window.location.href, 'submission_id')); const { - saveEntityRecord + saveEntityRecord, + invalidateResolutionForStore } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_8__.useDispatch)(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_0__.store); (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useEffect)(() => { if (parseInt(submission.record?.details.is_new)) { @@ -8075,25 +8076,35 @@ const Submission = () => { is_new: false } }); + invalidateResolutionForStore(); } }, []); if ('ERROR' === submission.status) { - return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Notice, { - status: "warning", - isDismissible: false, - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("p", { - children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Submission Not Found.', 'formello') - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { - variant: "primary", - size: "small", - icon: 'arrow-left', - onClick: () => { - history.push({ - page: 'formello', - section: 'submissions' - }); - }, - children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Go back', 'formello') + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.Fragment, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_components_masthead_js__WEBPACK_IMPORTED_MODULE_7__["default"], { + title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(/* Translators: %d The submission id. */ + (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Submission %d', 'formello'), params.submission_id), + className: "full-width" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", { + className: "formello-content", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Notice, { + status: "warning", + isDismissible: false, + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("p", { + children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Submission Not Found.', 'formello') + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { + variant: "primary", + size: "small", + icon: 'arrow-left', + onClick: () => { + history.push({ + page: 'formello', + section: 'submissions' + }); + }, + children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Go back', 'formello') + })] + }) })] }); } @@ -8400,8 +8411,8 @@ const Forms = () => { render: ({ item }) => { - return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxs)("div", { - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Button, { + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Button, { variant: "link", onClick: e => { e.stopPropagation(); @@ -8412,10 +8423,7 @@ const Forms = () => { document.location.href = href; }, children: (0,_wordpress_html_entities__WEBPACK_IMPORTED_MODULE_3__.decodeEntities)(item.title?.rendered || item.slug) || (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('(no title)') - }), item.submissions_count.news > 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("span", { - className: "formello-badge", - children: item.submissions_count.news - })] + }) }); }, enableGlobalSearch: true, @@ -8434,7 +8442,7 @@ const Forms = () => { item }) => { return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", { - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Button, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Button, { variant: "link", onClick: e => { e.stopPropagation(); @@ -8444,7 +8452,10 @@ const Forms = () => { form_id: item.id }); }, - children: item.submissions_count.total + children: [item.submissions_count.total, item.submissions_count.news > 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("span", { + className: "formello-badge", + children: item.submissions_count.news + })] }) }); } @@ -8637,7 +8648,6 @@ const Submissions = () => { search: '', // All fields are visible by default, so it's // better to keep track of the hidden ones. - hiddenFields: ['id'], layout: defaultLayouts.table.layout }); const queryArgs = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useMemo)(() => { @@ -8669,9 +8679,6 @@ const Submissions = () => { totalPages } = (0,_wordpress_core_data__WEBPACK_IMPORTED_MODULE_7__.useEntityRecords)('formello/v1', 'submissions', queryArgs); const columns = (0,_wordpress_core_data__WEBPACK_IMPORTED_MODULE_7__.useEntityRecord)('formello/v1', 'columns', params.form_id); - const { - record: form - } = (0,_wordpress_core_data__WEBPACK_IMPORTED_MODULE_7__.useEntityRecord)('postType', 'formello_form', params.form_id); const getColumns = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useCallback)(() => { if (columns.hasResolved) { return columns.record.columns; @@ -8728,6 +8735,7 @@ const Submissions = () => { onClick: () => history.push({ page: 'formello', section: 'submission', + form_id: params.form_id, submission_id: item.id }) }), @@ -8754,9 +8762,8 @@ const Submissions = () => { children: formattedDate }); } - return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.__experimentalText, { - numberOfLines: 4, - truncate: true, + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.RawHTML, { + className: "field-content", children: (0,_wordpress_html_entities__WEBPACK_IMPORTED_MODULE_2__.decodeEntities)(item.fields[key]) }); }, @@ -8765,11 +8772,6 @@ const Submissions = () => { }); return _fields.concat(_columns); }, [history, getColumns]); - - /*const { data: shownData, paginationInfo } = useMemo( () => { - return filterSortAndPaginate( submissions, view, fields ); - }, [ view, submissions, fields ] );*/ - const { saveEntityRecord } = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_6__.useDispatch)(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_7__.store); @@ -8790,7 +8792,7 @@ const Submissions = () => { id: 'mark-as-starred', label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Toggle favorite'), isPrimary: false, - isBulk: true, + supportsBulk: true, isEligible: () => true, icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_12__["default"], callback: posts => { @@ -8806,7 +8808,7 @@ const Submissions = () => { id: 'mark-as-new', label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Toggle new'), isPrimary: false, - isBulk: true, + supportsBulk: true, icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_11__["default"], callback: posts => { const post = posts[0]; @@ -9120,28 +9122,25 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ }); /* 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_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 _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); -/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _components_export_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/export-forms */ "./src/admin/pages/tools/components/export-forms.js"); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__); - +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _components_export_forms__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../components/export-forms */ "./src/admin/pages/tools/components/export-forms.js"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__); const Exporter = () => { - return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Card, { - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.CardHeader, { - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("h2", { - children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Export Forms', 'formello') + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Card, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.CardHeader, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("h2", { + children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Export Forms', 'formello') }) - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.CardBody, { - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("p", { - children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)("When you click the download button below, Formello will create a JSON file for you to save to your computer. Once you've saved the downloaded file, you can use the Import tool to import the forms.", 'formello') - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_components_export_forms__WEBPACK_IMPORTED_MODULE_3__["default"], {})] + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.CardBody, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("p", { + children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("When you click the download button below, Formello will create a JSON file for you to save to your computer. Once you've saved the downloaded file, you can use the Import tool to import the forms.", 'formello') + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_components_export_forms__WEBPACK_IMPORTED_MODULE_2__["default"], {})] })] }); }; diff --git a/build/admin.js.map b/build/admin.js.map index 3b78566b..a9ee4386 100644 --- a/build/admin.js.map +++ b/build/admin.js.map @@ -1 +1 @@ -{"version":3,"file":"admin.js","mappings":"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AAwB,sDAAI;AAC5B;AACA,6BAA6B,sDAAI;AACjC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH,mDAAmD,uEAAM,GAAG,uEAAM;AAClE,sBAAsB,uDAAK,CAAC,uDAAS;AACrC,oDAAoD,sDAAI;AACxD;AACA,KAAK,gBAAgB,sDAAI;AACzB;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,iEAAe,oBAAoB,EAAC;AACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7DA;AACA;AACA;AACgG;AAC9C;AACyB;AAC7B;AACA;;AAE9C;AACA;AACA;AACoD;AACQ;AACZ;AACE;AAC3C;AACP,SAAS,2DAAO;AAChB;AACA;AACA,KAAK;AACL,GAAG;AACH;AACO;AACP,SAAS,2DAAO;AAChB;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,0BAA0B,2DAAO;AACjC;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,sBAAsB,sDAAI,CAAC,kEAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL,mCAAmC,mDAAE,mBAAmB,mDAAE;AAC1D,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sBAAsB,sDAAI,CAAC,yDAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mBAAmB,4DAAW;AAC9B,gCAAgC,2DAAO;AACvC;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,wBAAwB,sDAAI,CAAC,oEAAe;AAC5C;AACA;AACA;AACA,KAAK;AACL;AACA,sBAAsB,sDAAI;AAC1B;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA,6CAA6C,wDAAO;AACpD,EAAE,mDAAE,yFAAyF,wDAAO;AACpG,EAAE,mDAAE;AACJ,sBAAsB,uDAAK,CAAC,uEAAM;AAClC;AACA;AACA;AACA,4BAA4B,sDAAI;AAChC;AACA;AACA;AACA;AACA;AACA,KAAK,gBAAgB,sDAAI;AACzB;AACA;AACA,KAAK,gBAAgB,uDAAK,CAAC,uEAAM;AACjC;AACA;AACA;AACA;AACA,4BAA4B,sDAAI;AAChC;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,4CAA4C,sDAAI,CAAC,yDAAM;AAC9D,cAAc,wDAAU;AACxB;AACA;AACA;AACA,eAAe,mDAAE;AACjB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kDAAkD,4DAAQ;AAC1D,wBAAwB,0DAAM;AAC9B,sBAAsB,2DAAO;AAC7B,0BAA0B,2DAAO;AACjC;AACA;AACA,KAAK;AACL,GAAG;AACH,wBAAwB,2DAAO;AAC/B;AACA,GAAG;AACH,wBAAwB,2DAAO;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,sBAAsB,sDAAI;AAC1B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;AC3MA;AACA;AACA;AACmD;;AAEnD;AACA;AACA;;AAE+C;AAC/C,yBAAyB,iEAAa;AACtC;AACA,UAAU,oDAAY;AACtB,GAAG;AACH,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,6BAA6B;AAC7B,2BAA2B;AAC3B;AACA;AACA;AACA,CAAC;AACD,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;;;;;;;;;;;AC7BA;AACA;AACA;;AAEA;AACA;AACA;AACqF;AAChD;AACW;;AAEhD;AACA;AACA;AAC2C;AACK;AAChD;AACA;AACA,EAAE,EAAE,oDAAM,CAAC,8DAAqB;AACzB;AACP;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sBAAsB,sDAAI;AAC1B;AACA;AACA,0BAA0B,sDAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,SAAS;AACT,+BAA+B,sDAAI;AACnC;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,sBAAsB,sDAAI;AAC1B,0BAA0B,sDAAI,CAAC,yDAAM;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mDAAE;AAClB,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,iEAAe,8DAAU,WAAW,EAAC;AACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/EA;AACA;AACA;AACwB;AACxB;AACA;AACA;AACyJ;AAC3G;AACwB;AACxB;AAC9C;AACA;;AAEA;AACA;AACA;AAC2C;AACwG;AACnG;AACE;AAClD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,sDAAI;AAC3B;AACA,KAAK;AACL,wBAAwB,sDAAI;AAC5B;AACA,KAAK;AACL;AACA,iCAAiC,uDAAe;AAChD,WAAW,4EAAwB,CAAC,wDAAO;AAC3C,IAAI,mDAAE;AACN;AACA,iCAAiC,wDAAgB;AACjD,WAAW,4EAAwB,CAAC,wDAAO;AAC3C,IAAI,mDAAE;AACN;AACA,iCAAiC,uDAAe;AAChD,WAAW,4EAAwB,CAAC,wDAAO;AAC3C,IAAI,mDAAE;AACN;AACA,iCAAiC,2DAAmB;AACpD,WAAW,4EAAwB,CAAC,wDAAO;AAC3C,IAAI,mDAAE;AACN;AACA,iCAAiC,mDAAW;AAC5C,WAAW,4EAAwB,CAAC,wDAAO;AAC3C,IAAI,mDAAE;AACN;AACA,iCAAiC,uDAAe;AAChD,WAAW,4EAAwB,CAAC,wDAAO;AAC3C,IAAI,mDAAE;AACN;AACA,SAAS,wDAAO;AAChB,EAAE,mDAAE;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,iDAAS;AACpB,GAAG;AACH;AACA;AACA,oDAAoD,uDAAK,CAAC,uEAAM;AAChE;AACA;AACA;AACA,4BAA4B,sDAAI,CAAC,2DAAQ;AACzC;AACA;AACA,KAAK,gBAAgB,sDAAI,CAAC,gEAAa;AACvC,aAAa,mDAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACe;AACf;AACA;AACA;AACA,CAAC;AACD,oBAAoB,0DAAM;AAC1B;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,sBAAsB,sDAAI,CAAC,2DAAQ;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK,kBAAkB,uDAAK;AAC5B;AACA,8BAA8B,sDAAI,CAAC,0DAAO;AAC1C,cAAc,wDAAO;AACrB,QAAQ,mDAAE;AACV;AACA,+BAA+B,sDAAI;AACnC,qBAAqB,gDAAI;AACzB;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,iCAAiC,sDAAI;AACrC;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO,oCAAoC,sDAAI,CAAC,0DAAO;AACvD,0BAA0B,mDAAE,YAAY,mDAAE;AAC1C;AACA,+BAA+B,sDAAI;AACnC,qBAAqB,gDAAI;AACzB;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,WAAW;AACX,iCAAiC,sDAAI,CAAC,uDAAI;AAC1C,kBAAkB,wDAAU;AAC5B,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,0BAA0B,uDAAK,CAAC,uEAAM;AACtC;AACA;AACA,gCAAgC,sDAAI;AACpC;AACA,SAAS,gBAAgB,sDAAI,CAAC,sDAAY;AAC1C;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1NA;AACA;AACA;AACoF;AACL;AACrC;AACL;;AAErC;AACA;AACA;AAC6C;AAC8B;AAChC;AACS;AACJ;AAC8B;AAC9B;AACE;AAC3C;AACP,SAAS,2DAAO;AAChB;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,mDAAW,EAAE,uDAAe;AAC3E;AACA,kFAAkF,qDAAa;AAC/F;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,2CAA2C,+DAAW;AACtD;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAI,CAAC,8DAAqB;AAClD;AACA;AACA;AACA;AACA,4BAA4B,sDAAI,CAAC,yDAAM;AACvC;AACA;AACA,cAAc,wDAAM;AACpB,eAAe,mDAAE;AACjB;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,sBAAsB,uDAAK;AAC3B;AACA,4BAA4B,sDAAI,CAAC,yDAAM;AACvC;AACA;AACA,YAAY,wDAAM;AAClB,aAAa,mDAAE;AACf;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK,+DAA+D,sDAAI;AACxE;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,uBAAuB,0DAAM;AAC7B;AACA,iCAAiC,sDAAI,CAAC,mDAAS;AAC/C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAI,CAAC,uDAAa;AAC1C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,sCAAsC,sDAAI,CAAC,uDAAY;AACvD;AACA;AACA;AACA,GAAG;AACH,sBAAsB,sDAAI,CAAC,uEAAM;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,iEAAe,wDAAI,SAAS,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;AC3JA;AACA;AACA;AAC+C;AACV;;AAErC;AACA;AACA;AACgD;AACjC;AACf;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,sBAAsB,sDAAI,CAAC,yDAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,cAAc,mDAAE;AAChB,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AAC0C;AACC;;AAE3C;AACA;AACA;AACmD;AACL;AAC2B;AACD;AACvB;AACG;;AAEpD;AACA;AACA;AACgD;AACE;AAClD,gCAAgC,sDAAI,CAAC,sDAAG;AACxC;AACA;AACA,yBAAyB,sDAAI,CAAC,yDAAM;AACpC;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA,SAAS,qDAAa;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO,GAAG,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,iEAAa;AAC9B,oDAAoD,4DAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAI,CAAC,4DAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAO;AACzB,IAAI,mDAAE;AACN;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,yBAAyB,sDAAI,CAAC,4DAAS,cAAc;AACrD,0DAA0D,uDAAK,CAAC,4DAAS;AACzE,2BAA2B,sDAAI,CAAC,4DAAS;AACzC;AACA,6BAA6B,sDAAI;AACjC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP,8BAA8B,uDAAK;AACnC;AACA,4FAA4F,sDAAI,CAAC,uDAAI;AACrG;AACA,SAAS,mFAAmF,sDAAI,CAAC,uDAAI;AACrG,gBAAgB,wDAAK;AACrB,SAAS;AACT,OAAO,gBAAgB,sDAAI;AAC3B;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,wCAAwC,4DAAQ;AAChD,8BAA8B,oEAAgB;AAC9C;AACA;AACA,kBAAkB,2DAAO;AACzB;AACA;AACA,GAAG;AACH,sBAAsB,uDAAK,CAAC,4DAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,4BAA4B,uDAAK;AACjC;AACA,8BAA8B,sDAAI,CAAC,yDAAqB;AACxD,6BAA6B,sDAAI,CAAC,iEAAc;AAChD,oBAAoB,mDAAE;AACtB,SAAS;AACT,kBAAkB,mDAAE;AACpB,OAAO,gBAAgB,sDAAI,CAAC,qDAAgB;AAC5C;AACA,qBAAqB,mDAAE;AACvB;AACA,OAAO,gBAAgB,sDAAI;AAC3B;AACA,+BAA+B,sDAAI,CAAC,uDAAI;AACxC,gBAAgB,yDAAM;AACtB,SAAS;AACT,OAAO;AACP,KAAK,gBAAgB,uDAAK,CAAC,yDAAoB;AAC/C;AACA;AACA;AACA,4BAA4B,uDAAK,CAAC,yDAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uDAAK;AACvC;AACA,gGAAgG,sDAAI,CAAC,uDAAI;AACzG;AACA,aAAa,mFAAmF,sDAAI,CAAC,uDAAI;AACzG,oBAAoB,wDAAK;AACzB,aAAa;AACb,WAAW,gBAAgB,uDAAK;AAChC,oCAAoC,sDAAI,CAAC,8DAAyB;AAClE;AACA;AACA,aAAa,yCAAyC,sDAAI;AAC1D;AACA;AACA,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO,mCAAmC,sDAAI;AAC9C,kBAAkB,mDAAE;AACpB,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACe;AACf;AACA,sBAAsB,sDAAI;AAC1B;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACvOA;AACA;AACA;AACuE;AACvB;;AAEhD;AACA;AACA;AACoD;AACM;AACuC;AACrC;AACZ;AACE;AAClD;AACe;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,yBAAyB,0FAAiC,oBAAoB,oDAAY,EAAE,mDAAW;AACvG;AACA;AACA;AACA,sCAAsC,uDAAK,CAAC,uEAAM;AAClD;AACA;AACA;AACA,8CAA8C,sDAAI,CAAC,sEAAiB,IAAI,gBAAgB,sDAAI,CAAC,6DAAmB,IAAI;AACpH,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;;AAEA;AACA;AACA;AAC4H;AACvF;AACkB;AACP;AACF;;AAE9C;AACA;AACA;AAC2C;AACK;AACU;AACR;AAClD;AACA;AACA;AACA,EAAE,EAAE,oDAAM,CAAC,8DAAqB;AAChC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sBAAsB,sDAAI,CAAC,yDAAM;AACjC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sBAAsB,sDAAI;AAC1B;AACA;AACA,2BAA2B,sDAAI;AAC/B;AACA,KAAK;AACL,GAAG;AACH;AACO;AACP;AACA;AACA;AACA,CAAC;AACD;AACA,sBAAsB,sDAAI,CAAC,wDAAK;AAChC;AACA;AACA,wFAAwF;AACxF;AACA;AACA,wEAAwE,qBAAqB;AAC7F,2BAA2B,sDAAI;AAC/B;AACA;AACA,KAAK;AACL,GAAG;AACH;AACO;AACP;AACA;AACA;AACA;AACA,CAAC;AACD,wCAAwC,4DAAQ;AAChD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,sBAAsB,uDAAK,CAAC,uDAAS;AACrC,4BAA4B,sDAAI;AAChC;AACA,KAAK,+BAA+B,sDAAI;AACxC;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACO;AACP;AACA;AACA,CAAC;AACD,mBAAmB,4DAAW;AAC9B,sBAAsB,sDAAI;AAC1B;AACA;AACA,4BAA4B,sDAAI;AAChC;AACA;AACA;AACA,SAAS;AACT;AACA,0BAA0B,sDAAI;AAC9B;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACe;AACf;AACA;AACA;AACA,CAAC;AACD,mBAAmB,4DAAW;AAC9B;AACA;AACA;AACA,IAAI,EAAE,2DAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,sDAAI;AAC5B;AACA;AACA,KAAK;AACL;AACA,sBAAsB,uDAAK,CAAC,uEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,4BAA4B,sDAAI;AAChC;AACA;AACA;AACA,SAAS;AACT;AACA,0BAA0B,sDAAI;AAC9B;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,OAAO;AACP,KAAK,gBAAgB,sDAAI;AACzB;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD,sBAAsB,sDAAI;AAC1B,0BAA0B,sDAAI,CAAC,yDAAM;AACrC;AACA,YAAY,wDAAY;AACxB,aAAa,mDAAE;AACf;AACA;AACA;AACA,KAAK;AACL;AACA,2BAA2B,sDAAI;AAC/B;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;ACtMA;AACA;AACA;;AAEA;AACA;AACA;AACgD;;AAEhD;AACA;AACA;AACoD;AACG;AACP;AACjC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,wBAAwB,4DAAY;AACpC,sBAAsB,sDAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC5CA;AACA;AACA;AAC8F;AACd;AACvB;AACP;;AAElD;AACA;AACA;AACoD;AACJ;AACE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wDAAO;AAClD;AACA,MAAM,mDAAE;AACR;AACA,GAAG;AACH,0DAA0D,uDAAK,CAAC,uEAAM;AACtE;AACA;AACA;AACA;AACA,4BAA4B,sDAAI,CAAC,uEAAM;AACvC;AACA;AACA;AACA;AACA,gBAAgB,4EAAwB,CAAC,wDAAO;AAChD;AACA,MAAM,mDAAE;AACR,0BAA0B,sDAAI;AAC9B;AACA,SAAS;AACT,kCAAkC,sDAAI,CAAC,gEAAa;AACpD,wBAAwB,mDAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK,gBAAgB,uDAAK,CAAC,uEAAM;AACjC;AACA;AACA,8BAA8B,sDAAI,CAAC,yDAAM;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,mDAAE;AACjB,cAAc,sDAAK,KAAK,wDAAI,GAAG,wDAAQ;AACvC;AACA;AACA;AACA,OAAO,gBAAgB,sDAAI,CAAC,yDAAM;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,mDAAE;AACjB,cAAc,sDAAK,KAAK,wDAAQ,GAAG,wDAAI;AACvC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,iEAAe,wDAAI,qBAAqB,EAAC;AACzC;;;;;;;;;;;;;;;;;;;;;;;;;;ACrGA;AACA;AACA;AACqC;AACoC;AACnB;AACC;;AAEvD;AACA;AACA;AACoD;AACJ;AAChD,wBAAwB,wDAAI;AAC5B;AACA,CAAC;AACD;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,+CAA+C,qEAAiB;AAChE,EAAE,6DAAS;AACX;AACA;AACA,GAAG;AACH,0BAA0B,0DAAM;AAChC,kBAAkB,0DAAM;AACxB,EAAE,6DAAS;AACX;AACA;AACA,GAAG;AACH,EAAE,6DAAS;AACX;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH,+BAA+B,mDAAE;AACjC,sBAAsB,sDAAI,CAAC,gEAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD,iEAAe,eAAe,EAAC;AAC/B;;;;;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AAC8C;AACU;;AAExD;AACA;AACA;AACgD;AACjC;AACf;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,qBAAqB,wDAAO;AAC5B,cAAc,mDAAE,wBAAwB,mDAAE;AAC1C;AACA,KAAK;AACL,IAAI;AACJ,+BAA+B,mDAAE,wBAAwB,mDAAE;AAC3D;AACA,sBAAsB,sDAAI,CAAC,kEAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5CA;AACA;AACA;;AAEA;AACA;AACA;AAC+lB;AAC7iB;AACa;AACc;AACpC;AACU;;AAEnD;AACA;AACA;AACuG;AACc;AACjE;AACT;AAC6B;AACxB;AACU;AACR;AAClD;AACA;AACA,EAAE,EAAE,oDAAM,CAAC,8DAAqB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC;AACA;AACA;AACA;AACA,qBAAqB,4DAAY;AACjC,sBAAsB,sDAAI;AAC1B,0BAA0B,sDAAI,CAAC,yDAAM;AACrC;AACA;AACA,aAAa,mDAAE;AACf,KAAK;AACL;AACA,qBAAqB,4DAAY;AACjC;AACA;AACA;AACA,0BAA0B,sDAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,UAAU,KAAgC,GAAG,yDAAO,uBAAuB,CAAM;AACjF,SAAS;AACT,+BAA+B,sDAAI;AACnC;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,uBAAuB,2DAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,sBAAsB,sDAAI,CAAC,gEAAa;AACxC;AACA;AACA,WAAW,mDAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAI,CAAC,mFAAkB;AAC7C;AACA;AACA;AACA;AACA,WAAW,mDAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,MAAM,KAAgC,GAAG,yDAAO,wBAAwB,CAAM;AAC9E,KAAK;AACL,cAAc,0DAAkB;AAChC,0BAA0B,sDAAI,CAAC,6FAA4B;AAC3D;AACA,cAAc,iDAAS;AACvB,eAAe,kDAAU;AACzB,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,sBAAsB,sDAAI,CAAC,mFAAkB;AAC7C;AACA;AACA;AACA,WAAW,mDAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,0BAA0B,sDAAI,CAAC,yFAAwB;AACvD;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD,0BAA0B,sEAAkB;AAC5C,sBAAsB,sDAAI,CAAC,qEAAI;AAC/B,2BAA2B,uDAAK,CAAC,uEAAM;AACvC;AACA,kFAAkF,GAAG;AACrF,8BAA8B,sDAAI;AAClC;AACA,OAAO,gBAAgB,uDAAK,CAAC,uEAAM;AACnC;AACA;AACA;AACA,iCAAiC,oDAAY,8BAA8B,uDAAK,CAAC,uDAAS;AAC1F,kCAAkC,sDAAI,CAAC,yDAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,kBAAkB,yDAAS;AAC3B,mBAAmB,wDAAO;AAC1B,YAAY,mDAAE;AACd,WAAW,gBAAgB,sDAAI,CAAC,yDAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,kBAAkB,yDAAW;AAC7B,mBAAmB,wDAAO;AAC1B,YAAY,mDAAE;AACd,WAAW;AACX,SAAS,gBAAgB,sDAAI,CAAC,yDAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,wFAAwF,IAAI;AAC5F;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,4BAA4B,yDAAI,GAAG,yDAAM;AACzC,6BAA6B,wDAAO;AACpC,UAAU,mDAAE,sBAAsB,wDAAO;AACzC,UAAU,mDAAE;AACZ,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,0BAA0B,2DAAO,OAAO,sEAAkB;AAC1D,yBAAyB,2DAAO,OAAO,qEAAiB;AACxD,6BAA6B,2DAAO,OAAO,yEAAqB;AAChE;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,oDAAY;AAChC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,sBAAsB,uDAAK,CAAC,uEAAM;AAClC;AACA;AACA,uDAAuD,sDAAI,CAAC,0EAAS;AACrE;AACA;AACA,wDAAwD,sDAAI;AAC5D;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,0CAA0C,sDAAI,CAAC,uDAAS;AAC7D,6BAA6B,uDAAK,CAAC,uEAAM;AACzC;AACA,gCAAgC,sDAAI,CAAC,8DAAW;AAChD;AACA;AACA,WAAW;AACX,oBAAoB,mDAAE;AACtB,SAAS,gBAAgB,sDAAI,CAAC,0EAAS;AACvC;AACA;AACA,2DAA2D,sDAAI;AAC/D;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,sBAAsB,uDAAK,CAAC,qEAAI;AAChC;AACA;AACA;AACA,4BAA4B,uDAAK;AACjC;AACA,8BAA8B,sDAAI,CAAC,wEAAO;AAC1C;AACA;AACA;AACA,OAAO,+BAA+B,sDAAI,CAAC,qEAAI;AAC/C;AACA;AACA;AACA,OAAO;AACP,KAAK,gBAAgB,sDAAI,CAAC,qEAAI;AAC9B;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,oBAAoB,iEAAa;AACjC,sBAAsB,sDAAI,CAAC,2DAAQ;AACnC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,0BAA0B,sDAAI,CAAC,yDAAM;AACrC;AACA,cAAc,yDAAG;AACjB,eAAe,mDAAE;AACjB;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,sCAAsC,sDAAI,CAAC,uFAAsB;AACjE;AACA,6BAA6B,uDAAK,CAAC,uEAAM;AACzC;AACA;AACA,gCAAgC,uDAAK;AACrC,iBAAiB,mDAAE;AACnB,kCAAkC,uDAAK,CAAC,uEAAM;AAC9C;AACA;AACA,oCAAoC,sDAAI,qBAAqB,gBAAgB,sDAAI,yBAAyB;AAC1G,WAAW,iBAAiB,mDAAW,iBAAiB,sDAAI,CAAC,+EAAa;AAC1E;AACA;AACA,WAAW,gBAAgB,sDAAI,wBAAwB;AACvD,SAAS,gBAAgB,sDAAI;AAC7B,iBAAiB,mDAAE;AACnB,iCAAiC,sDAAI,iBAAiB;AACtD,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA,CAAC;AACD,sBAAsB,uDAAK,CAAC,uDAAS;AACrC,4BAA4B,sDAAI;AAChC;AACA,KAAK,gBAAgB,sDAAI;AACzB;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,4BAA4B,wDAAI;AAChC,iEAAe,mBAAmB,EAAC;AACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5cA;AACA;AACA;;AAEA;AACA;AACA;AACuE;AAChB;;AAEvD;AACA;AACA;AACoD;AACmD;AACrD;AACA;AACA;AACS;AACF;AACT;AACE;AAClD;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,8CAA8C,4DAAQ;AACtD,gCAAgC,4DAAQ;AACxC;AACA;AACA,0CAA0C,4DAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2DAAO,OAAO,kEAAe;AAC/C,qBAAqB,2DAAO;AAC5B;AACA,GAAG;AACH,kBAAkB,8DAAU;AAC5B,gDAAgD,4DAAQ;AACxD,sBAAsB,sDAAI,CAAC,0DAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,2BAA2B,uDAAK;AAChC;AACA,8BAA8B,uDAAK,CAAC,uEAAM;AAC1C;AACA;AACA;AACA;AACA,gCAAgC,uDAAK,CAAC,uEAAM;AAC5C;AACA;AACA;AACA,4CAA4C,sDAAI,CAAC,yDAAe;AAChE;AACA,WAAW,gBAAgB,sDAAI,CAAC,sEAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS,gBAAgB,uDAAK,CAAC,uEAAM;AACrC;AACA;AACA;AACA;AACA,WAAW;AACX,kCAAkC,sDAAI,CAAC,8DAAmB;AAC1D;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO,mCAAmC,sDAAI,CAAC,0DAAgB,IAAI,gBAAgB,sDAAI,CAAC,yDAAe,IAAI,gBAAgB,sDAAI,CAAC,yDAAe,IAAI;AACnJ,KAAK;AACL,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChHA;AACA;AACA;AACqC;AACiB;;AAEtD;AACA;AACA;;AAEA;AACO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACP;AACA;AACA,WAAW,mDAAE;AACb,GAAG;AACH;AACA;AACA,WAAW,mDAAE;AACb,GAAG;AACH;AACA;AACA,WAAW,mDAAE;AACb,GAAG;AACH;AACA;AACA,WAAW,mDAAE;AACb,GAAG;AACH;AACA;AACA,WAAW,mDAAE;AACb,GAAG;AACH;AACA;AACA,WAAW,mDAAE;AACb;AACA;AACO;AACA;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP,OAAO,mDAAE;AACT,QAAQ,mDAAE;AACV;AACO;AACP,OAAO,wDAAO;AACd,QAAQ,wDAAS;AACjB;;AAEA;AACO;AACA;AACA;AACP;;;;;;;;;;;;;;;;;;;;;AClEA;AACA;AACA;AACgF;AAC/B;;AAEjD;AACA;AACA;AACgD;AACE;AACnC;AACf;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH,0BAA0B,+DAAW;AACrC;AACA,GAAG;AACH,sBAAsB,uDAAK;AAC3B;AACA,oDAAoD,sDAAI,CAAC,8DAAW;AACpE;AACA;AACA,KAAK,uCAAuC,sDAAI,CAAC,iEAAc;AAC/D;AACA;AACA,KAAK,gBAAgB,sDAAI,CAAC,6DAAU;AACpC;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;AC1CA;AACA;AACA;;AAEA;AACA;AACA;;AAEkC;AACF;AACJ;AACE;AACJ;AAC1B;AACA,UAAU;AACV,SAAS;AACT,OAAO;AACP,QAAQ;AACR,MAAM;AACN;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACzCA;AACA;AACA;AACqF;AACpC;;AAEjD;AACA;AACA;AACgD;AACjC;AACf;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH,0BAA0B,+DAAW;AACrC;AACA,GAAG;AACH,sBAAsB,sDAAI,CAAC,8EAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACqD;AACJ;;AAEjD;AACA;AACA;AACgD;AACjC;AACf;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH,0BAA0B,+DAAW;AACrC;AACA,GAAG;AACH;AACA,wBAAwB,sDAAI,CAAC,+DAAY;AACzC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACsD;AACL;AACZ;;AAErC;AACA;AACA;AACgD;AACjC;AACf;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH,0BAA0B,+DAAW;AACrC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mDAAE;AACb;AACA,GAAG;AACH,sBAAsB,sDAAI,CAAC,gEAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;AClDA;AACA;AACA;AACoD;AACH;;AAEjD;AACA;AACA;AACgD;AACjC;AACf;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH,0BAA0B,+DAAW;AACrC;AACA,GAAG;AACH,sBAAsB,sDAAI,CAAC,8DAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACqD;AAChB;AACiB;AACE;AACR;AAChD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oEAAgB;AAClC,iBAAiB,oEAAgB;AACjC,mBAAmB,oEAAgB;AACnC,kBAAkB,oEAAgB;AAClC,mBAAmB,oEAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA,CAAC;AACD;AACA,EAAE,6DAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,gBAAgB,2DAAO;AACvB;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,sBAAsB,sDAAI,CAAC,+DAAY;AACvC;AACA;AACA;AACA,WAAW,mDAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AC1GA;AACA;AACA;AACwB;;AAExB;AACA;AACA;AAC4J;AACvH;;AAErC;AACA;AACA;AACkE;AACkB;AACA;AACpC;AACE;AACQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,wBAAwB,6FAAyB;AACjD;AACA;AACA,+DAA+D,sDAAI;AACnE;AACA,GAAG;AACH,mEAAmE,sDAAI;AACvE;AACA,GAAG;AACH,sBAAsB,uDAAK,CAAC,uEAAM;AAClC;AACA,eAAe,gDAAI;AACnB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,4BAA4B,sDAAI;AAChC;AACA;AACA,KAAK,gBAAgB,sDAAI,CAAC,gFAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,gBAAgB,uDAAK,CAAC,uEAAM;AACjC;AACA;AACA,8BAA8B,sDAAI,CAAC,uEAAM;AACzC;AACA;AACA,OAAO,gBAAgB,sDAAI,CAAC,0EAAW;AACvC;AACA;AACA;AACA,OAAO;AACP,KAAK,yCAAyC,sDAAI,CAAC,uEAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAI,CAAC,2DAAQ;AACzC;AACA,iCAAiC,sDAAI;AACrC;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK,2CAA2C,sDAAI,CAAC,uEAAM;AAC3D;AACA;AACA;AACA,4BAA4B,sDAAI,CAAC,uDAAI;AACrC,qBAAqB,gDAAI;AACzB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,iCAAiC,uDAAK,CAAC,uDAAS;AAChD,oCAAoC,sDAAI,CAAC,2DAAQ;AACjD;AACA;AACA,aAAa,gBAAgB,sDAAI,CAAC,2DAAQ;AAC1C;AACA;AACA;AACA,eAAe;AACf,qCAAqC,sDAAI;AACzC;AACA,eAAe;AACf,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,mCAAmC,QAAQ;AAC3C,IAAI;AACJ,sBAAsB,uDAAK,CAAC,uDAAS;AACrC,uCAAuC,sDAAI,CAAC,qEAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK,4BAA4B,sDAAI;AACrC,iBAAiB,gDAAI;AACrB;AACA;AACA,OAAO;AACP,6BAA6B,sDAAI;AACjC,2CAA2C,sDAAI,CAAC,0DAAO,IAAI,IAAI,mDAAE;AACjE,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9LA;AACA;AACA;AAC4C;AACqD;;AAEjG;AACA;AACA;AACgC;AACF;AACA;AACwC;AAC/D;AACP,QAAQ,oDAAY;AACpB,SAAS,mDAAE;AACX,aAAa,8CAAS;AACtB,QAAQ,wDAAU;AAClB,CAAC;AACD,QAAQ,mDAAW;AACnB,SAAS,mDAAE;AACX,aAAa,6CAAQ;AACrB,QAAQ,wDAAQ;AAChB,CAAC;AACD,QAAQ,mDAAW;AACnB,SAAS,mDAAE;AACX,aAAa,6CAAQ;AACrB,QAAQ,sDAAK,KAAK,wDAAoB,GAAG,wDAAiB;AAC1D,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAY;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAY;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACO;AACP;;AAEA;AACA,oBAAoB,mDAAW;AAC/B;AACA;AACA,oBAAoB,mDAAW;AAC/B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtFA;AACA;AACA;AACwB;;AAExB;AACA;AACA;AACgE;AACyH;AAClG;AAClD;AACW;AACF;;AAE9C;AACA;AACA;AAC2C;AACqD;AAChD;AACE;AAClD;AACA;AACA,EAAE,EAAE,oDAAM,CAAC,8DAAqB;AAChC;AACA,YAAY,SAAS;AACrB;AACA;AACA,YAAY,SAAS,kBAAkB,gBAAgB;AACvD;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mBAAmB,4DAAW;AAC9B,wCAAwC,4DAAQ;AAChD;AACA;AACA,uDAAuD,sDAAI;AAC3D;AACA,2BAA2B,sDAAI,CAAC,4DAAS;AACzC;AACA,2BAA2B,sDAAI,CAAC,yDAAM;AACtC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,4CAA4C,sDAAI,CAAC,2EAAW;AAC5D;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG,mCAAmC,sDAAI;AAC1C;AACA,2BAA2B,sDAAI,CAAC,4DAAS;AACzC;AACA,2BAA2B,sDAAI,CAAC,yDAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB,0DAAM;AACxB,qBAAqB,SAAS;AAC9B,2BAA2B,SAAS;AACpC,oCAAoC,4DAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,6DAAS;AACX;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA,IAAI,EAAE,2DAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,+DAA+D,sDAAI;AACnE;AACA,GAAG,iBAAiB,sDAAI;AACxB;AACA,GAAG;AACH,mEAAmE,sDAAI;AACvE;AACA,GAAG;AACH,sBAAsB,sDAAI,CAAC,4DAAS;AACpC;AACA,yBAAyB,sDAAI,SAAS;AACtC;AACA,eAAe,gDAAI;AACnB;AACA;AACA,KAAK;AACL;AACA;AACA,2BAA2B,uDAAK,CAAC,uEAAM;AACvC;AACA;AACA;AACA,8BAA8B,sDAAI;AAClC;AACA,+BAA+B,sDAAI,CAAC,4DAAS;AAC7C,+BAA+B,sDAAI,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAK,CAAC,uEAAM;AAC7C;AACA;AACA;AACA,oCAAoC,sDAAI;AACxC;AACA;AACA,aAAa,gBAAgB,uDAAK,CAAC,uEAAM;AACzC;AACA;AACA,sCAAsC,sDAAI;AAC1C;AACA;AACA;AACA,eAAe,gBAAgB,sDAAI;AACnC;AACA;AACA,kEAAkE,uDAAK;AACvE;AACA,0CAA0C,sDAAI,CAAC,iEAAc;AAC7D;AACA;AACA;AACA,mBAAmB,gBAAgB,sDAAI;AACvC;AACA,2CAA2C,sDAAI;AAC/C;AACA,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO,+CAA+C,uDAAK,CAAC,uEAAM;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,iDAAiD,sDAAI;AACrD;AACA;AACA;AACA,SAAS,gBAAgB,sDAAI;AAC7B;AACA,iCAAiC,sDAAI;AACrC,kCAAkC,sDAAI,CAAC,4DAAS;AAChD;AACA,mCAAmC,sDAAI,CAAC,yDAAM;AAC9C;AACA,sBAAsB,wDAAY;AAClC,uBAAuB,mDAAE;AACzB;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA,mCAAmC,sDAAI,CAAC,wFAAwB;AAChE;AACA;AACA,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,iBAAiB,iEAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+DAAW,YAAY,OAAO,GAAG,gBAAgB;AACzF,gCAAgC,+DAAW;AAC3C;AACA;AACA,GAAG;;AAEH;AACA,oDAAoD,4DAAQ;;AAE5D;AACA,EAAE,6DAAS;AACX;AACA;AACA;AACA,GAAG;AACH;AACA,kCAAkC,+DAAW;AAC7C;AACA,8BAA8B,+DAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,EAAE,6DAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,mCAAmC,+DAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wBAAwB,sDAAI;AAC5B,iBAAiB,gDAAI;AACrB;AACA;AACA,OAAO;AACP,yCAAyC,sDAAI;AAC7C,2CAA2C,sDAAI,CAAC,0DAAO,IAAI,IAAI,mDAAE;AACjE,OAAO;AACP,KAAK;AACL;AACA,sBAAsB,sDAAI,CAAC,4DAAS;AACpC;AACA,yBAAyB,sDAAI,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChVA;AACA;AACA;;AAEA;AACA;AACA;AACqC;AACoC;AACkB;AACvB;;AAEpE;AACA;AACA;AAC2C;AACK;AAC6B;AAC/B;AACE;AACE;AAClD;AACA;AACA,EAAE,EAAE,oDAAM,CAAC,8DAAqB;AAChC;AACA;AACA,CAAC;AACD,SAAS,wDAAQ,kEAAkE,uDAAK,CAAC,wDAAQ;AACjG,qCAAqC,sDAAI,6BAA6B;AACtE,GAAG;AACH;AACA,oBAAoB,8DAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,0BAA0B,0DAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yDAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,sBAAsB,sDAAI;AAC1B;AACA,0BAA0B,uDAAK,CAAC,yDAAM;AACtC;AACA;AACA;AACA;AACA,+DAA+D,sDAAI;AACnE;AACA,kBAAkB,kDAAU;AAC5B,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL,2BAA2B,uDAAK;AAChC,4CAA4C,sDAAI;AAChD,kBAAkB,0DAAkB;AACpC;AACA,2BAA2B,QAAQ,GAAG,UAAU;AAChD,8BAA8B,sDAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,mCAAmC,sDAAI;AACvC,wBAAwB,kDAAU;AAClC,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO,gCAAgC,sDAAI;AAC3C,+BAA+B,sDAAI;AACnC,+BAA+B,sDAAI,CAAC,uDAAI;AACxC,kBAAkB,wDAAM;AACxB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,WAAW;AACX,iCAAiC,sDAAI;AACrC,sBAAsB,mDAAE;AACxB,WAAW;AACX,SAAS;AACT,OAAO,gBAAgB,uDAAK;AAC5B,gCAAgC,sDAAI;AACpC,+BAA+B,sDAAI,CAAC,uDAAI;AACxC,kBAAkB,wDAAS;AAC3B,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,iCAAiC,sDAAI;AACrC,sBAAsB,mDAAE;AACxB,WAAW;AACX,SAAS,gBAAgB,sDAAI;AAC7B,+BAA+B,sDAAI,CAAC,uDAAI;AACxC,kBAAkB,yDAAU;AAC5B,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,iCAAiC,sDAAI;AACrC,sBAAsB,mDAAE;AACxB,WAAW;AACX,SAAS,sCAAsC,sDAAI;AACnD,+BAA+B,sDAAI,CAAC,uDAAI;AACxC,kBAAkB,yDAAM;AACxB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,iCAAiC,sDAAI;AACrC,sBAAsB,mDAAE;AACxB,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;AACA,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxLA;AACA;AACA;AACwB;;AAExB;AACA;AACA;AACqC;AAC2E;AACxC;;AAExE;AACA;AACA;AACoF;AAClB;AACrB;AACiG;AAC1F;AACN;AACE;AACE;AACQ;AAC1D;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,wBAAwB,sDAAI;AAC5B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB,sDAAI;AAC5B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,sBAAsB,sDAAI;AAC1B,eAAe,gDAAI;AACnB;AACA,KAAK;AACL,2BAA2B,sDAAI;AAC/B;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD,4DAA4D,sDAAI;AAChE;AACA;AACA,GAAG;AACH;AACA,wBAAwB,sDAAI,CAAC,uEAAM;AACnC;AACA;AACA,KAAK;AACL;AACA,sBAAsB,sDAAI,CAAC,uEAAM;AACjC;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,gCAAgC,6FAAyB;AACzD;AACA,oCAAoC,4DAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,0DAAM;AACjC,kBAAkB,0DAAkB;AACpC,sBAAsB,uDAAK;AAC3B,eAAe,gDAAI;AACnB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,8CAA8C,sDAAI;AAClD;AACA;AACA;AACA,OAAO;AACP,6BAA6B,sDAAI;AACjC;AACA,+BAA+B,sDAAI,CAAC,gFAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,0BAA0B,sDAAI;AAC9B;AACA;AACA;AACA;AACA,SAAS;AACT,+BAA+B,sDAAI;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sDAAI;AACR;AACA;AACA,6BAA6B,sDAAI,CAAC,0EAAW;AAC7C;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,yBAAyB,0DAAM;AAC/B,+BAA+B,0DAAM;AACrC,4DAA4D,4DAAQ;AACpE,yBAAyB,qGAAiC;AAC1D,EAAE,6DAAS;AACX;AACA;AACA;AACA;AACA,GAAG;AACH,wBAAwB,yDAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAkB;AACpC;AACA;AACA,sBAAsB,uDAAK,CAAC,uDAAS;AACrC,4BAA4B,uDAAK;AACjC;AACA;AACA;AACA,8BAA8B,sDAAI;AAClC,+BAA+B,uDAAK;AACpC;AACA,oDAAoD,sDAAI;AACxD;AACA;AACA;AACA,aAAa;AACb;AACA,mCAAmC,sDAAI,CAAC,qFAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,gCAAgC,sDAAI;AACpC;AACA;AACA;AACA;AACA,eAAe;AACf,yDAAyD,kDAAU;AACnE;AACA,qCAAqC,sDAAI,CAAC,4DAAgB;AAC1D;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,WAAW,qCAAqC,sDAAI;AACpD;AACA,mCAAmC,sDAAI;AACvC;AACA,wBAAwB,mDAAE;AAC1B,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO,gBAAgB,sDAAI;AAC3B,oEAAoE,sDAAI;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK,gBAAgB,sDAAI;AACzB,iBAAiB,gDAAI;AACrB;AACA;AACA,OAAO;AACP;AACA,yCAAyC,sDAAI;AAC7C,2CAA2C,sDAAI,CAAC,0DAAO,IAAI,IAAI,mDAAE;AACjE,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,iEAAe,SAAS,EAAC;AACzB;;;;;;;;;;;;;;;AC3TA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe;AACf;AACA;AACA;AACA,CAAC,EAAC;AACF;;;;;;;;;;;;;;;;;;ACvBA;AACA;AACA;;AAE+C;AACN;AACQ;;AAEjD;AACA;AACA,WAAW,WAAW;AACtB;AACA;AACA;AACe;AACf;AACA,WAAW,gDAAO;AAClB;AACA;AACA,WAAW,6CAAI;AACf;AACA;AACA,WAAW,iDAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;;;AC3CA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe;AACf;AACA;AACA;AACA,CAAC,EAAC;AACF;;;;;;;;;;;;;;;AC5BA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe;AACf;AACA;AACA;AACA,CAAC,EAAC;AACF;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AAC2F;AACpF;AACP;AACA;AACA,EAAE,EAAE,yGAAgD;AACpD;;;;;;;;;;;;;;;;;;;ACRA;AACA;AACA;AACmD;AACF;AACsB;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,gCAAgC,wDAAsB;AACtD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,iBAAiB,8DAAU;AAC3B;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,YAAY,0EAAoB;AAChC;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;AC7EA;AACA;AACA;AAC6G;AACtG;AACP;;AAEA;AACA;AACA,iBAAiB,uDAAe,EAAE,wDAAgB;AAClD;;AAEA;AACA,2CAA2C,qDAAa;;AAExD;AACA;AACA,yBAAyB,mDAAW,wBAAwB,uDAAe;AAC3E,8CAA8C,mDAAW,EAAE,uDAAe;AAC1E;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACtBA;AACA;AACA;AACkD;AACF;AAChD,+BAA+B,sDAAI,CAAC,sDAAG;AACvC;AACA;AACA,yBAAyB,sDAAI,CAAC,uDAAI;AAClC;AACA,GAAG;AACH,CAAC;AACD,iEAAe,SAAS,EAAC;AACzB;;;;;;;;;;;;;;;;;;;ACbA;AACA;AACA;AACkD;AACF;AAChD,+BAA+B,sDAAI,CAAC,sDAAG;AACvC;AACA;AACA,yBAAyB,sDAAI,CAAC,uDAAI;AAClC;AACA,GAAG;AACH,CAAC;AACD,iEAAe,SAAS,EAAC;AACzB;;;;;;;;;;;;;;;;;;;ACbA;AACA;AACA;AACkD;AACF;AAChD,gCAAgC,sDAAI,CAAC,sDAAG;AACxC;AACA;AACA,yBAAyB,sDAAI,CAAC,uDAAI;AAClC;AACA,GAAG;AA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MAAM,EAAE;AACT,CAAC,EACD;EACCR,KAAK,EAAE,IAAI;EACXpc,IAAI,EAAE,SAAS;EACfkI,IAAI,EAAE,SAAS;EACf0U,MAAM,EAAE,EAAE;EACV3Z,GAAG,EAAE,EAAE;EACPoN,MAAM,EAAE,MAAM;EACdwM,iBAAiB,EAAE,KAAK;EACxB3J,MAAM,EAAE,EAAE;EACV4J,OAAO,EAAE;AACV,CAAC,EACD;EACCV,KAAK,EAAE,KAAK;EACZpc,IAAI,EAAE,kBAAkB;EACxBkI,IAAI,EAAE,iBAAiB;EACvB6U,OAAO,EAAE;IACRhD,SAAS,EAAE,MAAM;IACjBiD,UAAU,EAAE,EAAE;IACdC,YAAY,EAAE,EAAE;IAChBC,YAAY,EAAE,EAAE;IAChBC,SAAS,EAAE,EAAE;IACbC,UAAU,EAAE;EACb;AACD,CAAC,EACD;EACChB,KAAK,EAAE,KAAK;EACZpc,IAAI,EAAE,OAAO;EACbkI,IAAI,EAAE;AACP,CAAC,EACD;EACCkU,KAAK,EAAE,KAAK;EACZpc,IAAI,EAAE,cAAc;EACpBkI,IAAI,EAAE;AACP,CAAC,CACD;;;;;;;;;;;;;;;;;;;;;ACvHyD;;AAE1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC,wBAAwB;;AAEzB,eAAe,KAAqC;AACpD;AACA,EAAE,EAAE,CAEH;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA,sUAAsU,CAAM;AAC5U;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,8EAAQ,GAAG;AAC1C;AACA,KAAK;AACL;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;;AAEA,oBAAoB,8EAAQ;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C;;;AAGA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;;;AAG3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA,sUAAsU,CAAM;AAC5U;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA,yDAAyD;AACzD;;AAEA;AACA;AACA,iDAAiD;;;AAGjD;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,8EAAQ,GAAG;AAC1C;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,8EAAQ;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,KAAqC,+IAA+I,CAAM;;AAE9L;AACA;AACA;AACA,2CAA2C;AAC3C;;;AAGA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,KAAqC,kJAAkJ,CAAM;;AAEjM;AACA;AACA;AACA,2CAA2C;;;AAG3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAQ;AACpC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,KAAqC,+GAA+G,gBAAgB,qDAAqD,CAAM;AACnO;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,8EAAQ;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,KAAqC,6IAA6I,CAAM;;AAE5L;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,KAAqC,gJAAgJ,CAAM;;AAE/L;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEuG;AACvG;;;;;;;;;;;;;AC5xBA;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB,qBAAqB;;;;;;;;;;;;ACherB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,IAAI,IAAqC;AACzC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mBAAO,CAAC,oBAAO;;AAErC;;AAEA;AACA;AACA;AACA,iGAAiG,eAAe;AAChH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA,KAAK,GAAG;;AAER,kDAAkD;AAClD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,KAAK;AACrD;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,kCAAkC;AAClC;AACA;;;AAGA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;;;AAGP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;AC9Oa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,wLAA8E;AAChF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;ACAA;AAGuB;AAMA;AAGA;AAKA;;AAEvB;AACA,mCAAmC;AACnC;AACA;AACA,IAAI,cAAc,uDAAS;AAC3B;AACA;AACA,gBAAgB,wDAAU;AAC1B;AACA,IAAI,kDAAI;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,qEAAuB;AACzB;AACA,iBAAiB,+DAAiB,CAAC,2DAAa,CAAC,4DAAc,GAAG,YAAY,OAAO;AACrF,oBAAoB,0DAAY;AAChC;AACA;AACA;AACA;AACA,uBAAuB,2DAAa,CAAC,4DAAc,GAAG;AACtD;AACA;AACA,mBAAmB,0DAAY;AAC/B,oBAAoB,0DAAY;AAChC,kBAAkB,0DAAY;AAC9B;AACA,GAAG;AACH,kBAAkB,yDAAW;AAC7B,SAAS,2DAAa,CAAC,4DAAc,CAAC,4DAAc,GAAG;AACvD;AACA;AACA;AACA;AACA,GAAG;AACH;;AAIE;;;;;;;;;;;;;;;;;;;;;AC/DF;AAGuB;;AAEvB;AACA;AACA,SAAS,mDAAS;AAClB;AACA;AACA,OAAO,mDAAS;AAChB;AACA;AACA;AACA,SAAS,mDAAS;AAClB;AACA;AACA,SAAS,mDAAS;AAClB;AACA;AACA,SAAS,mDAAS;AAClB;;AAQE;;;;;;;;;;;;;;;;;;AC7BF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,6DAA6D;AAC3I;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAME;;;;;;;;;;;;;;;;;;;ACrCF;AASuB;AAGA;AAIA;;AAEvB;AACA,yCAAyC;AACzC,gBAAgB,wDAAU;AAC1B;AACA,IAAI,kDAAI;AACR;AACA,EAAE,qEAAuB;AACzB;AACA,eAAe,0DAAY;AAC3B;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,oBAAoB,0DAAY;AAChC,uBAAuB,0DAAY;AACnC;AACA,qBAAqB,yDAAW;AAChC,EAAE,mDAAK;AACP;AACA,UAAU,kDAAI;AACd;AACA;AACA,KAAK;AACL;AACA,EAAE,mDAAK;AACP;AACA,UAAU,uDAAS;AACnB;AACA;AACA,KAAK;AACL;AACA,EAAE,mDAAK;AACP;AACA,UAAU,kDAAI;AACd;AACA,KAAK;AACL;AACA,SAAS,2DAAa,CAAC,4DAAc,GAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAIE;;;;;;;;;;;;;;;;;;;;AC5EF;AAOuB;AAIA;AAGA;AAIA;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yDAAW;AACpB;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,EAAE,qEAAuB;AACzB;AACA,gBAAgB,0DAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAY;AAC/B;AACA;AACA,uBAAuB,yDAAW;AAClC,MAAM,kDAAkD;AACxD;AACA;AACA,qBAAqB,yDAAW;AAChC;AACA;AACA;AACA;AACA;AACA,EAAE,mDAAK,mBAAmB,kDAAI;AAC9B,EAAE,mDAAK;AACP,WAAW,mDAAK;AAChB;AACA,KAAK;AACL,GAAG;AACH,EAAE,mDAAK;AACP,WAAW,mDAAK;AAChB;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,MAAM;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA,yBAAyB,4DAAc,CAAC,4DAAc,GAAG;AACzD;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2DAAa,CAAC,4DAAc,GAAG;AACxC;AACA,0BAA0B,mDAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAIE;;;;;;;;;;;;;;;;;;;ACrMF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOE;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BF;AAUuB;AAIA;;AAEvB;AACA;AACA;AACA,EAAE,uDAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qDAAO;AAC3B,eAAe,mDAAK;AACpB;AACA;AACA;AACA;AACA,eAAe,4DAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mDAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kDAAI;AAC9C,0CAA0C,kDAAI;AAC9C;AACA;AACA;AACA,SAAS,4DAAc;AACvB,sBAAsB,wDAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2DAAa,CAAC,4DAAc,GAAG,YAAY,kBAAkB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;AACA;AACA;AACA,MAAM,KAAqC,EAAE,EAAO;AACpD;AACA;AACA;AACA;AACA,cAAc,+DAA+D,EAAE,kBAAkB;AACjG,GAAG;AACH;AACA;AACA;AACA,aAAa,4DAAc;AAC3B;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,OAAO;AAC9B;;AAEA;;AAEA,+BAA+B,uBAAuB;AACtD,uBAAuB,OAAO;;AAE9B;;AAEA;AACA;AACA;AACA;;AAaE;;;;;;;;;;;;;;;;;;;;;ACxOF;AAGuB;AAIA;AAKA;AAGA;AAIA;;AAEvB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA,0BAA0B,2DAAa,CAAC,4DAAc,GAAG;AACzD;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE;AACnC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,qBAAqB,mEAAqB;AAC1C,mBAAmB,0DAAY;AAC/B;AACA;AACA;AACA;AACA,uBAAuB,2DAAa,CAAC,4DAAc,GAAG;AACtD;AACA,iBAAiB,0DAAY;AAC7B,yBAAyB,0DAAY;AACrC;AACA;AACA;AACA;AACA,WAAW,0DAAY;AACvB,iBAAiB,0DAAY;AAC7B;AACA;AACA;AACA;AACA,SAAS,0DAAY;AACrB,kBAAkB,0DAAY;AAC9B;AACA;AACA;AACA;AACA,eAAe,0DAAY;AAC3B,eAAe,0DAAY;AAC3B,gBAAgB,0DAAY;AAC5B,GAAG;AACH,oBAAoB,yDAAW;AAC/B,EAAE,mDAAK;AACP;AACA,UAAU,kDAAI;AACd;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,uDAAuD,4DAAc;AACrE;AACA;AACA,yBAAyB,0DAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2DAAa,CAAC,4DAAc,CAAC,4DAAc,GAAG;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,yCAAyC,0DAAY;AACrD,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,GAAG;AACH;;AAIE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjRF;AAGuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4DAAc,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAwBE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChKF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA,IAAI;AACJ,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqBE;;;;;;;;;;;;;;;;;AC9LF;AAGuB;;AAEvB;AACA,qCAAqC;AACrC,SAAS,mEAAqB;AAC9B;;AAIE;;;;;;;;;;;;;;;;;;;;;;ACZF;AAGiC;AACA;AACA;AAGA;AACA;AACA;AASA;AAIA;AAIA;AACA;AAKA;;AAEjC;AACA,oBAAoB,6DAAQ,MAAM,kEAAa;AAC/C,oCAAoC;AACpC;AACA;AACA,IAAI,cAAc,8DAAS;AAC3B;AACA;AACA,gBAAgB,+DAAU,cAAc,yDAAI;AAC5C,EAAE,4EAAuB;AACzB;AACA;AACA,mBAAmB,iEAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,oBAAoB,yEAAoB,CAAC,kEAAa,CAAC,mEAAc,GAAG;AACxE;AACA,yBAAyB,iEAAY;AACrC;AACA;AACA;AACA;AACA,iBAAiB,iEAAY;AAC7B;AACA;AACA;AACA;AACA,eAAe,iEAAY;AAC3B,eAAe,iEAAY;AAC3B,kBAAkB,iEAAY;AAC9B;AACA;AACA;AACA;AACA,GAAG;AACH,kBAAkB,uEAAkB,CAAC,kEAAa,CAAC,mEAAc,GAAG;AACpE,eAAe,iEAAY;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,iEAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kEAAa,CAAC,mEAAc,CAAC,mEAAc,GAAG;AACrE;AACA;AACA,wBAAwB,iEAAY;AACpC;AACA;AACA;AACA;AACA,sBAAsB,iEAAY;AAClC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,mBAAmB,gEAAW;AAC9B;AACA,IAAI,0DAAK;AACT;AACA,YAAY,yDAAI;AAChB;AACA,OAAO;AACP;AACA;AACA,EAAE,0DAAK;AACP;AACA,WAAW,0DAAK;AAChB,MAAM,yDAAI;AACV;AACA;AACA,OAAO;AACP,MAAM,yDAAI;AACV;AACA,OAAO;AACP;AACA,GAAG;AACH,EAAE,0DAAK;AACP;AACA,UAAU,yDAAI;AACd;AACA;AACA;AACA,KAAK;AACL;AACA,EAAE,0DAAK;AACP;AACA,UAAU,yDAAI;AACd;AACA;AACA;AACA,KAAK;AACL;AACA,EAAE,0DAAK;AACP;AACA,UAAU,yDAAI;AACd;AACA;AACA;AACA,KAAK;AACL;AACA,EAAE,0DAAK;AACP;AACA,UAAU,0DAAK;AACf;AACA,cAAc,sBAAsB;AACpC;AACA;AACA,KAAK;AACL;AACA,SAAS,kEAAa,CAAC,mEAAc,CAAC,mEAAc,CAAC,mEAAc,GAAG;AACtE;AACA;AACA;AACA;AACA,GAAG;AACH;AAGE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5KF;AAGiC;AAGA;AAIA;;AAEjC;AACA;AACA;AACA,4BAA4B,6DAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kEAAa,CAAC,mEAAc,GAAG,gBAAgB,eAAe;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kEAAa,CAAC,mEAAc,GAAG,gBAAgB,eAAe;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6DAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,6CAA6C,2BAA2B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AAeE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvIF;AAMiC;AAGA;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,8DAAS;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAO;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAgB;AACxC;AACA,MAAM,6DAAQ;AACd;AACA;AACA;AACA;AACA,qCAAqC,6BAA6B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,oBAAoB,qBAAqB;AACzC,2BAA2B,mEAAc,GAAG,qCAAqC;AACjF;AACA;AA0BE;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9OF;AAIuB;AAIA;AAGA;;AAEvB;AACsC;AACtC,8BAA8B,oDAAa;AAC3C;AACA;AACA,UAAU,gEAAkB;AAC5B,GAAG,gEAAsB,EAAE,kEAAwB;AACnD,GAAG,sEAA4B,EAAE,wEAA8B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAa;AAC5C;AACA;AACA,iCAAiC,oDAAa;;AAW5C;;;;;;;;;;;;;;;;;;;;;;;;;ACzCF;AAIuB;AAGA;;AAEvB;AACsC;AACtC,sBAAsB,oDAAa;AACnC,yBAAyB,oDAAa;AACtC;AACA;AACA,UAAU,gEAAkB;AAC5B,GAAG,kEAAwB;AAC3B,GAAG,wEAA8B;AACjC;AACA;AACA;AACA;AACA;AACA;;AAUE;;;;;;;;;;;;;;;;;;ACjCF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,6DAA6D;AAC3I;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAME;;;;;;;;;;;;;;;;;;;;;;;;ACrCF;;AAEA;AACmE;AACnE,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oEAAW;AACjB;AACA;AACA;AACA;AACA,IAAI;AACJ,sBAAsB,oEAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWE;;;;;;;;;;;;;;;;;;;;;;;;;AClFF;AAGuB;AAIA;AAKA;;AAEvB;AAC+B;AACS;AACxC;AACA,eAAe,6CAAgB,wBAAwB,2DAAa,CAAC,4DAAc,GAAG,YAAY,KAAK;AACvG;AACA;AACA;AACA;AACA,SAAS,uCAAU;AACnB;AACA;AACA,sBAAsB,sBAAsB,aAAa,uDAAS;AAClE,oBAAoB,0DAAY,YAAY,4DAAc;AAC1D;AACA,MAAM,iDAAoB;AAC1B,wBAAwB,2DAAa,CAAC,4DAAc,GAAG,mBAAmB,gBAAgB;AAC1F,cAAc,+CAAkB,SAAS,wDAAU;AACnD,IAAI;AACJ;AACA,IAAI;AACJ,8BAA8B,sDAAG,OAAO,4DAAc,GAAG;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gDAAmB;AACrC,wBAAwB,gDAAmB;AAC3C,4BAA4B,6CAAgB;AAC5C;AACA,mBAAmB,6CAAgB;AACnC;AACA;AACA;AACA;AACA;AACA,mBAAmB,6CAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,sDAAG,WAAW,2DAAa,CAAC,4DAAc,GAAG,YAAY,UAAU;AACjH,sBAAsB,sDAAG,mBAAmB,4DAAc,GAAG;AAC7D;AACA;AACA;AACA,2BAA2B,sDAAG,kBAAkB,2DAAa,CAAC,4DAAc,GAAG,YAAY;AAC3F,8CAA8C,sDAAG,WAAW,2DAAa,CAAC,4DAAc,GAAG,YAAY,UAAU;AACjH,sBAAsB,sDAAG,yBAAyB,4DAAc,GAAG;AACnE,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQE;;;;;;;;;;;;;;;;;;;;;;;;;AC9FF;AAIuB;AAGA;;AAEvB;AACsC;AACtC,UAAU,gEAAkB;AAC5B,GAAG,mEAAyB;AAC5B,GAAG,yEAA+B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oDAAa;AACxC;AACA;AACA,0BAA0B,oDAAa;AACvC;AACA;;AAUE;;;;;;;;;;;;;;;;;;;;ACnCF;AAGuB;AAGA;;AAEvB;AAC0D;AAC1D;AACA,SAAS,qEAAuB;AAChC;AACA,kCAAkC;AAClC,0BAA0B,sDAAQ,CAAC,gFAAsB;AACzD;AACA;;AAKE;;;;;;;;;;;;;;;;;;;;ACrBF;AAIuB;AAGA;;AAEvB;AACkE;AAClE;AACA,EAAE,6DAAe;AACjB,EAAE,2DAAa;AACf,EAAE,2DAAa;AACf,EAAE,2DAAa;AACf,gCAAgC,8BAA8B;AAC9D;AACA,sCAAsC;AACtC,0BAA0B,sDAAQ,CAAC,4FAA0B;AAC7D;AACA;;AAKE;;;;;;;;;;;;;;;;;;;;;;;;;AC1BF;AAIuB;AAGA;;AAEvB;AACsC;AACtC,UAAU,gEAAkB;AAC5B,GAAG,mEAAyB;AAC5B,GAAG,yEAA+B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oDAAa;AACxC,+BAA+B,oDAAa;;AAU1C;;;;;;;;;;;;;;;;;;;;;AC/BF;AAGuB;AAIA;AAGA;;AAEvB;AAC4D;AAC5D;AACA,EAAE,6DAAe;AACjB,EAAE,2DAAa;AACf,SAAS,iEAAmB;AAC5B;AACA,mCAAmC;AACnC,0BAA0B,sDAAQ,CAAC,mFAAuB;AAC1D;AACA;;AAKE;;;;;;;;;;;;;;;;;;;;;;AC3BF;AAIuB;AAGA;;AAEvB;AACA,UAAU,gEAAkB;AAC5B,GAAG,+DAAqB;AACxB,GAAG,qEAA2B;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAQE;;;;;;;;;;;;;;;;;;;;;;;;AC1BF;AAKuB;AAIA;;AAEvB;AACoE;AACK;AAC1C;AACiD;AAChF,MAAM,uBAAuB,EAAE,kEAA2B;AAC1D;AACA;AACA,8CAA8C,8DAAQ;AACtD,yBAAyB,8CAAiB;AAC1C;AACA;AACA,aAAa,oEAAS;AACtB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,wEAAc;AACvB;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAc;AAC9B;AACA,mBAAmB,wDAAU,GAAG,iBAAiB;AACjD,EAAE,iEAAmB;AACrB,WAAW,+DAAI;AACf,cAAc,qCAAqC;AACnD;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,EAAE,iEAAmB;AACrB;AACA;AACA,WAAW,gEAAK;AAChB;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,4BAA4B,2CAAc;AAC1C,EAAE,iEAAmB,OAAO,+DAAI;AAChC,oBAAoB,8CAAiB;AACrC;AACA;AACA;AACA,wBAAwB,0CAAa;AACrC,UAAU,2DAAa,CAAC,4DAAc,GAAG,YAAY,qBAAqB;AAC1E;AACA;AACA,sBAAsB,sDAAQ;AAC9B,qCAAqC,4DAAc,CAAC,4DAAc,GAAG;AACrE,GAAG;AACH;AACA;;AAME;;;;;;;;;;;;;;;;;;;;;;;;AClFF;AAGuB;AAGA;AAGA;AAIA;AAGA;AAIA;;AAEvB;AAC8D;AAC9D;AACA,EAAE,6DAAe;AACjB,EAAE,2DAAa;AACf,EAAE,2DAAa;AACf,EAAE,2DAAa;AACf,EAAE,2DAAa;AACf;AACA,IAAI,oEAAsB;AAC1B,MAAM,kEAAoB;AAC1B;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,oCAAoC;AACpC,cAAc,2DAAa;AAC3B,UAAU,2DAAa,CAAC,4DAAc,GAAG;AACzC;AACA,GAAG;AACH,0BAA0B,sDAAQ,CAAC,sFAAwB;AAC3D;AACA;;AAKE;;;;;;;;;;;;;;;;;;;;;ACnDF;AAGuB;;AAEvB;AACA,UAAU,gEAAkB;AAC5B;AACA;AACA;AACA;AACA;;AAQE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBF;AAGuB;AAIA;;AAEvB;AACoD;AACgB;AASrD;AACgB;AAC/B,aAAa,4DAAc,GAAG,EAAE,yLAAK;AACrC;AACA;AACA;AACA,0BAA0B,8DAAS,GAAG,kDAAe,GAAG,4CAAS;AACjE;AACA,yBAAyB,+CAAQ;AACjC;AACA;AACA;AACA,cAAc,6CAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6CAAM;AACpB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,4CAA4C,+CAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6CAAM;AACpB;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA,SAAS,kDAAW;AACpB;AACA;AACA,GAAG;AACH;AACA;AACA,4BAA4B,+CAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,SAAS,8CAAO;AAChB;AACA;AACA;AACA,QAAQ,oDAAM;AACd;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+CAAQ;AAC9B;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+CAAQ;AACpD,EAAE,gDAAS;AACX;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+CAAQ;AACxC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,oCAAoC,+CAAQ;AAC5C,EAAE,gDAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kCAAkC;AAClE;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,6CAAM;AACxB,EAAE,gDAAS;AACX;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,gDAAS;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kBAAkB,6CAAM;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS,iDAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kDAAW;AACjC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS,2DAAa,CAAC,4DAAc,GAAG,YAAY,aAAa;AACjE;AACA;AACA,sCAAsC,+CAAQ;AAC9C;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,kCAAkC,8CAAO;AACzC;AACA,KAAK,EAAE,2DAAa,CAAC,4DAAc,GAAG,aAAa,cAAc;AACjE,GAAG;AACH,mDAAmD,yBAAyB;AAC5E;AACA;AACA,EAAE,gDAAS;AACX,IAAI,kFAAsB;AAC1B,IAAI,kFAAsB;AAC1B,IAAI,kFAAsB;AAC1B,IAAI,kFAAsB;AAC1B,IAAI,kFAAsB;AAC1B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAoB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAuBE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtQF;AAOuB;AAIA;AAGA;AAKA;AAQA;AAKA;;AAEvB;AACyE;AACD;AAKpC;AACgC;AACf;AACY;AACzB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oEAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sDAAQ;AACjB;AACA;AACA;AACA;AACA,SAAS,wEAAY;AACrB;AACA;AACA;AACA,gCAAgC,4DAAc;AAC9C;AACA,wBAAwB,OAAO,kBAAkB,uDAAS;AAC1D;AACA;AACA;AACA;AACA,SAAS,6EAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,SAAS,kEAAoB;AAC7B,IAAI,yEAAc,CAAC,uEAAY,CAAC,8DAAgB;AAChD;AACA;AACA;AACA,oCAAoC,+CAAQ;AAC5C,mBAAmB,kDAAW;AAC9B;AACA,eAAe,4DAAc;AAC7B;AACA,EAAE,gDAAS;AACX;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C,GAAG;AACH;AACA;AACA,mBAAmB,wDAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,uDAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,oBAAoB,yEAA2B;AAC/C;AACA,IAAI,oEAAS;AACb;AACA,MAAM,KAAqC;AAC3C;AACA,gBAAgB,6CAAM;AACtB,+BAA+B,6CAAM;AACrC;AACA;AACA,+BAA+B,iEAAmB;AAClD;AACA;AACA,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA;AACA,cAAc,sBAAsB;AACpC,iCAAiC,4DAAc;AAC/C;AACA,MAAM,yEAAa;AACnB,KAAK;AACL,IAAI,iEAAmB;AACvB;AACA;AACA;AACA,cAAc,mCAAmC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAa,oBAAoB,4BAA4B;AACrE;AACA,WAAW,oEAAQ;AACnB;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI,iEAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4DAAc;AACjD,6CAA6C,yEAAgB;AAC7D;AACA,MAAM,yEAAa,oBAAoB,eAAe;AACtD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAQ;AACnC;AACA;AACA;AACA,cAAc,8BAA8B;AAC5C;AACA;AACA,gCAAgC,6DAAe;AAC/C,UAAU,wEAAY;AACtB;AACA;AACA;AACA,KAAK;AACL;AACA,oBAAoB,sDAAQ;AAC5B;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B,cAAc,8BAA8B;AAC5C;AACA,YAAY,wEAAY,YAAY,oDAAM;AAC1C;AACA;AACA,QAAQ,SAAS,wEAAY;AAC7B;AACA;AACA,KAAK;AACL;AACA,0BAA0B,sDAAQ;AAClC;AACA;AACA;AACA;AACA,cAAc,mDAAmD;AACjE;AACA,mCAAmC,4DAAc;AACjD;AACA,sCAAsC,oDAAM;AAC5C;AACA;AACA,UAAU,wEAAY;AACtB;AACA;AACA,YAAY,yEAAa;AACzB;AACA,UAAU;AACV,UAAU,yEAAa;AACvB,UAAU;AACV,UAAU,yEAAa;AACvB;AACA;AACA,QAAQ;AACR,6BAA6B,oDAAM;AACnC;AACA,UAAU,yEAAa;AACvB;AACA;AACA,KAAK;AACL;AACA,+BAA+B,6DAAe;AAC9C,sBAAsB,sDAAQ;AAC9B;AACA;AACA;AACA;AACA,WAAW,wEAAY;AACvB,cAAc,yDAAyD;AACvE,yBAAyB,4DAAc;AACvC;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,4DAAc;AAC1B;AACA,mCAAmC,sDAAG,CAAC,kEAAwB,IAAI,iCAAiC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAc;AAClC,KAAK;AACL,YAAY,2DAAa,CAAC,4DAAc;AACxC;AACA,KAAK;AACL,WAAW,0DAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY,2DAAY,CAAC,4DAAc,GAAG,WAAW;AACrD;AACA;AACA;AACA,gBAAgB,wDAAU;AAC1B;AACA,SAAS,2DAAa;AACtB,CAAC;;AAKC;;;;;;;;;;;;;;;;;;;;;ACpUF;AAGuB;;AAEvB;AACA,UAAU,gEAAkB;AAC5B;AACA;AACA;AACA;AACA;;AAQE;;;;;;;;;;;;;;;;;;;;;;;;;ACnBF;AAGuB;AAMA;AAMA;AAKA;;AAEvB;AACmD;AACkB;AAKnC;AACE;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iEAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAc;AACtB;AACA,IAAI;AACJ;AACA;AACA,wBAAwB,wDAAU;AAClC;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,uDAAS;AAC7B;AACA;AACA;AACA;AACA,oBAAoB,iEAAmB;AACvC;AACA,IAAI,mEAAS;AACb;AACA,MAAM,KAAqC;AAC3C;AACA,0BAA0B,8DAAgB;AAC1C;AACA,6BAA6B,6DAAe;AAC5C,wBAAwB,sDAAQ;AAChC;AACA;AACA;AACA;AACA,WAAW,yEAAc;AACzB;AACA,4BAA4B,mEAAQ;AACpC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,+BAA+B,6DAAe;AAC9C,yBAAyB,sDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB,kDAAW;AAC3B;AACA;AACA,KAAK;AACL,YAAY,2DAAa,CAAC,4DAAc,GAAG;AAC3C,WAAW,0DAAY;AACvB;AACA;AACA,KAAK;AACL,WAAW,+EAAqB;AAChC;AACA;AACA,qBAAqB,kDAAI;AACzB,EAAE,wDAAU;AACZ;AACA,WAAW,2DAAa;AACxB,GAAG;AACH;;AAKE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3HF;AAGuB;AAGA;AAMA;AAKA;AAMA;AAGA;AAOA;AAKA;;AAEvB;AAQiC;AACwC;AAIvC;AACsB;AACS;AACzB;AACxC;AACA;AACA,MAAM,kEAAS;AACf,yCAAyC,iEAAQ;AACjD;AACA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B,2BAA2B,4EAAmB;AAC9C;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B;AAC5C;AACA;AACA;AACA;AACA,8BAA8B,4DAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,wEAAY;AAClB,SAAS,oDAAM;AACf;AACA,uBAAuB,wDAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,uDAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iEAAmB;AACvC;AACA,eAAe,mDAAK;AACpB,gBAAgB,6CAAM;AACtB,gBAAgB,iDAAU,CAAC,6DAAmB;AAC9C,kBAAkB,2DAAa;AAC/B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,4EAAiB;AACtC;AACA,oBAAoB,kDAAW;AAC/B;AACA,yBAAyB,2DAAa,CAAC,4DAAc,GAAG;AACxD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,gCAAgC,6CAAM;AACtC,oBAAoB,sDAAQ;AAC5B;AACA;AACA,UAAU,yEAAa;AACvB;AACA;AACA;AACA,cAAc,0CAA0C;AACxD;AACA,UAAU,kEAAS;AACnB,QAAQ,6DAAe;AACvB;AACA;AACA,WAAW,wEAAY;AACvB;AACA;AACA,UAAU,uEAAQ;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oEAAoE,oDAAM;AAC1E;AACA,QAAQ,2DAAa;AACrB,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA,0BAA0B,sDAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,uCAAuC,6DAAe;AACtD,+BAA+B,6DAAe;AAC9C,sBAAsB,sDAAQ;AAC9B;AACA;AACA,WAAW,wEAAY;AACvB;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oEAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAS;AACrB,4BAA4B,4EAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB,EAAE,wEAAe;AAC3D;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,wBAAwB,2DAAa;AACrC;AACA;AACA;AACA,0BAA0B,8CAAO;AACjC,eAAe,iBAAiB;AAChC;AACA;AACA,YAAY,4DAAc;AAC1B;AACA,mCAAmC,sDAAG,CAAC,8DAAoB,aAAa,yCAAyC;AACjH;AACA;AACA,yBAAyB,2DAAa;AACtC;AACA;AACA;AACA,wBAAwB,2DAAa;AACrC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,yBAAyB,2DAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,uBAAuB,2DAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,2DAAa,CAAC,4DAAc;AACxC;AACA;AACA,KAAK;AACL,WAAW,0DAAY;AACvB;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,yDAAU;AACtB,YAAY,gEAAiB,CAAC,2DAAa,CAAC,4DAAc;AAC1D;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,WAAW,gFAAqB,CAAC,2DAAa,CAAC,4DAAc,GAAG;AAChE;AACA;AACA,KAA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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA,cAAc,4DAAc;AAC5B;AACA;AACA,OAAO;AACP;AACA,YAAY,4DAAc;AAC1B;AACA,mCAAmC,sDAAG,CAAC,uEAA6B,IAAI,wCAAwC,sDAAG,CAAC,iEAAuB,aAAa,gCAAgC,GAAG;AAC3L;AACA;AACA;AACA,YAAY,2DAAa,CAAC,4DAAc;AACxC;AACA;AACA,KAAK;AACL,WAAW,0DAAY;AACvB;AACA,KAAK;AACL,WAAW,+EAAqB;AAChC;AACA;AACA,mBAAmB,wDAAU;AAC7B;AACA,SAAS,2DAAa;AACtB,CAAC;;AAKC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxGF;AAGuB;AAKA;AAKA;AAKA;;AAEvB;AACmD;AAOf;AAMD;AAID;AACsB;AACiB;AACzE;AACA,sBAAsB,sEAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0BAA0B;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sDAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wDAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,uDAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,gBAAgB,6CAAM;AACtB,IAAI,gDAAS;AACb;AACA,MAAM,kFAAsB;AAC5B,MAAM,kFAAsB;AAC5B,KAAK;AACL;AACA,MAAM,gDAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,kCAAkC,2EAAiB;AACnD;AACA,4CAA4C,+CAAQ;AACpD,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sEAAW;AACxB;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAQ;AAChC;AACA;AACA;AACA;AACA;AACA,UAAU,yEAAa;AACvB,WAAW,iEAAQ;AACnB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,iCAAiC,8EAAmB;AACpD;AACA,MAAM,4EAAgB;AACtB;AACA;AACA;AACA,QAAQ,wEAAa;AACrB,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mEAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wEAAY;AACvB;AACA;AACA,MAAM,4EAAgB;AACtB,KAAK;AACL;AACA,2BAA2B,sDAAQ;AACnC;AACA;AACA;AACA,WAAW,wEAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4EAAgB;AACxB,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA,mBAAmB,sDAAQ;AAC3B;AACA;AACA,WAAW,+EAAmB;AAC9B;AACA,KAAK;AACL,4BAA4B,iDAAU,CAAC,0DAAgB;AACvD,yBAAyB,sDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAQ;AACpB,aAAa,sEAAW;AACxB;AACA,OAAO;AACP,KAAK;AACL,oBAAoB,wDAAU;AAC9B;AACA;AACA;AACA,kBAAkB,8CAAO;AACzB;AACA,eAAe,4DAAc,GAAG,uBAAuB;AACvD;AACA;AACA,KAAK;AACL,YAAY,2DAAa,CAAC,4DAAc;AACxC;AACA;AACA;AACA,KAAK;AACL,WAAW,0DAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,+EAAqB;AAChC;AACA;AACA,gBAAgB,wDAAU;AAC1B;AACA,SAAS,2DAAa;AACtB,CAAC;;AAMC;;;;;;;;;;;;;;;;;;;;;;;;;;AC1VF;AAGuB;AAKA;AAMA;AAKA;;AAEvB;AACgE;AAK5B;AACyB;AACJ;AACL;AACpD;AACA;AACA;AACA;AACA;AACA,WAAW,iEAAQ;AACnB;AACA;AACA,WAAW,iEAAQ;AACnB;AACA;AACA;AACA;AACA,iBAAiB,wDAAU;AAC3B;AACA,mBAAmB,2CAA2C,cAAc,uDAAS;AACrF,gBAAgB,6CAAM;AACtB,oBAAoB,wDAAU;AAC9B;AACA,gDAAgD,+CAAQ;AACxD,yBAAyB,iEAAQ,GAAG,eAAe;AACnD;AACA,IAAI,gDAAS;AACb;AACA,wBAAwB,iEAAQ;AAChC,KAAK;AACL,gCAAgC,+CAAQ;AACxC,sBAAsB,6CAAM;AAC5B,qBAAqB,2EAAiB;AACtC,yCAAyC,8DAAgB;AACzD;AACA,sBAAsB,sDAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA,WAAW,wEAAY;AACvB,UAAU,oEAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO,mBAAmB,uDAAS;AACpE,gCAAgC,0EAAc;AAC9C,gBAAgB,uEAAS;AACzB,cAAc,4EAAgB;AAC9B,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,oBAAoB,sDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO,mBAAmB,uDAAS;AAClE,+BAA+B,0EAAc;AAC7C;AACA;AACA,KAAK;AACL,YAAY,2DAAa,CAAC,4DAAc,CAAC,4DAAc;AACvD;AACA;AACA,KAAK;AACL,WAAW,0DAAY;AACvB;AACA;AACA,KAAK;AACL,YAAY,0DAAY;AACxB;AACA;AACA;AACA,cAAc,wDAAU;AACxB;AACA,SAAS,2DAAa;AACtB,CAAC;;AAKC;;;;;;;;;;;;;;;;;;;;;;;;;AC5IF;AAIiC;AACA;AACA;AACA;AACA;AACA;AAKA;AAGA;AACA;AACA;AAIA;;AAEjC;AACoD;AAIlB;AACU;AACJ;AACxC;AACA;AACA,SAAS,yEAAe;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kEAAO;AAC5B;AACA,gEAAgE,sDAAG;AACnE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2BAA2B,+DAAU;AACrC,iBAAiB,0BAA0B,cAAc,8DAAS;AAClE,kBAAkB,6EAAwB;AAC1C;AACA,sBAAsB,iDAAU,CAAC,yEAAwB;AACzD;AACA,qBAAqB,kEAAa;AAClC,mBAAmB,8CAAO;AAC1B;AACA;AACA;AACA,GAAG;AACH,UAAU,mEAAc;AACxB;AACA,GAAG;AACH,SAAS,+EAAqB;AAC9B,CAAC;AACD,wBAAwB,+DAAU;AAClC;AACA,SAAS,kEAAa;AACtB,CAAC;AAIC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/HF;AAGiC;AAMA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AAKA;AACA;AAKA;;AAEjC;AACsD;AACwB;AACzB;AACA;AACL;AACR;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+DAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,8DAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6EAAwB;AAC5C;AACA,IAAI,mEAAS;AACb;AACA,MAAM,KAAqC;AAC3C;AACA,oBAAoB,kDAAW;AAC/B;AACA,yBAAyB,kEAAa,CAAC,mEAAc,GAAG,WAAW,OAAO;AAC1E;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAe;AAC/C,mCAAmC,oEAAe;AAClD,mCAAmC,oEAAe;AAClD;AACA;AACA,4BAA4B,oEAAe;AAC3C,oBAAoB,6DAAQ;AAC5B;AACA;AACA,UAAU,yEAAa;AACvB,UAAU,6EAAiB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,sBAAsB,6DAAQ;AAC9B;AACA;AACA;AACA;AACA,UAAU,mEAAQ;AAClB;AACA;AACA;AACA,YAAY,oEAAW;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA,cAAc,mEAAc;AAC5B;AACA,OAAO;AACP;AACA,YAAY,mEAAc;AAC1B;AACA,mCAAmC,sDAAG,CAAC,yEAAwB,aAAa,iCAAiC,sDAAG,CAAC,2EAA0B,aAAa,+DAA+D,GAAG;AAC1N;AACA;AACA,sBAAsB,iDAAU,CAAC,wEAAuB;AACxD,YAAY,kEAAa,CAAC,mEAAc;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,+BAA+B,oEAAe;AAC9C,YAAY,sEAAgB,CAAC,kEAAa,CAAC,mEAAc;AACzD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,uEAAiB,CAAC,mEAAc,GAAG,qBAAqB;AACpE;AACA;AACA;AACA,mBAAmB,yDAAI;AACvB,EAAE,+DAAU;AACZ;AACA,WAAW,kEAAa;AACxB,GAAG;AACH;AAIE;;;;;;;;;;;;;;;;;;;;;ACpNF;AAGiC;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAIA;;AAEjC;AAC4E;AAC5E;AACA,uBAAuB,+DAAU;AACjC;AACA,mBAAmB,QAAQ,cAAc,8DAAS;AAClD,oBAAoB,+EAA0B;AAC9C;AACA,IAAI,mEAAS;AACb;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,mEAAc;AAC1B;AACA,KAAK;AACL,WAAW,+EAAqB;AAChC;AACA;AACA,oBAAoB,yDAAI;AACxB,EAAE,+DAAU;AACZ;AACA,WAAW,kEAAa;AACxB,GAAG;AACH;AAIE;;;;;;;;;;;;;;;;;;;ACrDF;AAGiC;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEjC;AACwC;AACxC,oCAAoC;AACpC,gBAAgB,qEAAgB;AAChC,yBAAyB,sDAAG,CAAC,wEAAuB,IAAI,wCAAwC;AAChG;AAGE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChCF;AAGiC;AAGA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AAUA;AACA;AAKA;;AAEjC;AAMiC;AAIG;AACiB;AAMnB;AACe;AACY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yEAAe;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,kBAAkB,+DAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,8DAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+EAA0B;AAC9C;AACA,IAAI,mEAAS;AACb;AACA,MAAM,KAAqC;AAC3C;AACA,gBAAgB,6CAAM;AACtB,6CAA6C,mEAAc;AAC3D,6BAA6B,6CAAM;AACnC,yBAAyB,6CAAM;AAC/B;AACA;AACA;AACA;AACA,sCAAsC,+CAAQ;AAC9C,IAAI,0EAAqB;AACzB;AACA;AACA,KAAK;AACL;AACA,iCAAiC,6CAAM;AACvC,IAAI,gDAAS;AACb,aAAa,+DAAI;AACjB;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,8CAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0DAAI;AACxB;AACA;AACA;AACA,gBAAgB,iCAAiC,EAAE,4EAAmB;AACtE;AACA;AACA,QAAQ,0EAAiB;AACzB;AACA,eAAe,mEAAQ;AACvB,kBAAkB,aAAa,EAAE,4EAAmB;AACpD;AACA;AACA,UAAU,0EAAiB;AAC3B;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6CAAM;AACtC,gCAAgC,6DAAQ;AACxC,4BAA4B,6CAAM;AAClC,IAAI,gDAAS;AACb;AACA;AACA,+BAA+B,4EAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,wEAAmB;AACvB;AACA;AACA;AACA,KAAK;AACL,IAAI,wEAAmB;AACvB;AACA;AACA,KAAK;AACL;AACA,IAAI,oEAAe;AACnB;AACA;AACA;AACA;AACA;AACA,cAAc,yDAAyD;AACvE,0BAA0B,mEAAQ;AAClC;AACA;AACA,4CAA4C,mCAAmC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,mCAAmC,qCAAqC;AACxE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+EAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAe;AAC5C,iCAAiC,oEAAe;AAChD;AACA;AACA;AACA;AACA,qBAAqB,6DAAQ;AAC7B;AACA;AACA;AACA;AACA,cAAc,8CAA8C;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0EAAiB;AAC3B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,6DAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,sCAAsC,oEAAe;AACrD;AACA;AACA,gCAAgC,oEAAe;AAC/C,4BAA4B,oEAAe;AAC3C,wBAAwB,6DAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4EAAgB;AACxB;AACA,KAAK;AACL;AACA,+BAA+B,oEAAe;AAC9C,sBAAsB,6DAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mBAAmB,6DAAQ;AAC3B;AACA;AACA;AACA,KAAK;AACL,eAAe,0DAAK;AACpB;AACA;AACA,YAAY,kEAAa,CAAC,mEAAc;AACxC;AACA;AACA;AACA,uBAAuB,qEAAY;AACnC;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,iEAAY;AACvB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,kEAAY,CAAC,kEAAa,CAAC,mEAAc;AACrD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY,gFAAsB;AAClC;AACA;AACA;AACA,KAAK;AACL,YAAY,sEAAgB,CAAC,mEAAc,GAAG,OAAO;AACrD,WAAW,mEAAc,GAAG,qBAAqB;AACjD;AACA;AACA,eAAe,+DAAU;AACzB;AACA,SAAS,kEAAa;AACtB,CAAC;AAIC;;;;;;;;;;;;;;;;ACpda;AACf;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACbA,cAAc,aAAa,+CAA+C,gDAAgD,eAAe,QAAQ,IAAI,0CAA0C,yCAAyC,SAAgB,gBAAgB,wCAAwC,IAAI,mDAAmD,SAAS,iEAAe,IAAI;;;;;;UCAnY;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC7BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,sDAAsD;WACtD,sCAAsC,iEAAiE;WACvG;WACA;WACA;WACA;WACA;WACA;;;;;WCzBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WClBA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEnDA;UACA;UACA;UACA;UACA","sources":["webpack://formello/./assets/addons/ sync ^\\.\\/.*\\.png$","webpack://formello/./assets/icons/logo.svg","webpack://formello/./assets/integrations/brevo.svg","webpack://formello/./assets/integrations/convertkit.svg","webpack://formello/./assets/integrations/email.svg","webpack://formello/./assets/integrations/getresponse.svg","webpack://formello/./assets/integrations/mailchimp.svg","webpack://formello/./assets/integrations/mailerlite.svg","webpack://formello/./assets/integrations/mailpoet.svg","webpack://formello/./assets/integrations/moosend.svg","webpack://formello/./assets/integrations/webhook.svg","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataform-combined-edit/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-bulk-actions/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-context/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-filters/add-filter.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-filters/filter-summary.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-filters/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-filters/reset-filters.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-filters/search-widget.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-footer/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-item-actions/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-layout/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-pagination/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-search/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-selection-checkbox/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-view-config/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/constants.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataform-controls/datetime.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataform-controls/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataform-controls/integer.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataform-controls/radio.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataform-controls/select.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataform-controls/text.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataviews-layouts/grid/density-picker.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataviews-layouts/grid/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataviews-layouts/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataviews-layouts/list/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataviews-layouts/table/column-header-menu.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataviews-layouts/table/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/field-types/datetime.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/field-types/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/field-types/integer.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/field-types/text.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/lock-unlock.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/normalize-fields.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/utils.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/arrow-down.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/arrow-left.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/arrow-right.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/arrow-up.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/backup.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/block-table.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/category.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/check.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/chevron-down.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/chevron-up.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/close-small.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/cog.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/comment-author-avatar.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/comment-content.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/edit.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/external.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/format-list-bullets-rtl.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/format-list-bullets.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/funnel.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/heading.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/login.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/more-vertical.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/next.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/pencil.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/post.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/previous.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/search.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/seen.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/star-filled.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/trash.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/unseen.js","webpack://formello/./src/admin/components/actions/index.js","webpack://formello/./src/admin/components/actions/submission.js","webpack://formello/./src/admin/components/help.js","webpack://formello/./src/admin/components/loading-spinner.js","webpack://formello/./src/admin/components/masthead.js","webpack://formello/./src/admin/components/update-settings.js","webpack://formello/./src/admin/context/settings-context.js","webpack://formello/./src/admin/index.js","webpack://formello/./src/admin/pages/addons/addon.js","webpack://formello/./src/admin/pages/addons/index.js","webpack://formello/./src/admin/pages/settings/components/captcha.js","webpack://formello/./src/admin/pages/settings/components/general.js","webpack://formello/./src/admin/pages/settings/components/integrations.js","webpack://formello/./src/admin/pages/settings/components/logging.js","webpack://formello/./src/admin/pages/settings/components/messages.js","webpack://formello/./src/admin/pages/settings/index.js","webpack://formello/./src/admin/pages/submission/fields-data.js","webpack://formello/./src/admin/pages/submission/index.js","webpack://formello/./src/admin/pages/submission/submission-data.js","webpack://formello/./src/admin/pages/submissions/forms.js","webpack://formello/./src/admin/pages/submissions/submissions.js","webpack://formello/./src/admin/pages/tools/components/export-forms.js","webpack://formello/./src/admin/pages/tools/components/import-forms.js","webpack://formello/./src/admin/pages/tools/components/reset-settings.js","webpack://formello/./src/admin/pages/tools/index.js","webpack://formello/./src/admin/pages/tools/tabs/exporter.js","webpack://formello/./src/admin/pages/tools/tabs/general.js","webpack://formello/./src/admin/pages/tools/tabs/importer.js","webpack://formello/./src/admin/router/history.js","webpack://formello/./src/admin/router/index.js","webpack://formello/./src/components/promo.js","webpack://formello/./src/form-settings/actions/constants.js","webpack://formello/./node_modules/history/index.js","webpack://formello/./src/admin/style.scss?f510","webpack://formello/./node_modules/remove-accents/index.js","webpack://formello/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js","webpack://formello/./node_modules/use-sync-external-store/shim/index.js","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactDOM\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"apiFetch\"]","webpack://formello/external window [\"wp\",\"blob\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"compose\"]","webpack://formello/external window [\"wp\",\"coreData\"]","webpack://formello/external window [\"wp\",\"data\"]","webpack://formello/external window [\"wp\",\"date\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"hooks\"]","webpack://formello/external window [\"wp\",\"htmlEntities\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/external window [\"wp\",\"notices\"]","webpack://formello/external window [\"wp\",\"primitives\"]","webpack://formello/external window [\"wp\",\"privateApis\"]","webpack://formello/external window [\"wp\",\"url\"]","webpack://formello/external window [\"wp\",\"warning\"]","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/3UYWTADI.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/3VBK76MS.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/3YLGPPWQ.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/6E4KKOSB.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/7DTP4AQO.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/7PRQYBBV.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/EQQLU3CG.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/IJ6VFLJG.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/PBFD2E7P.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/PQP5VPTV.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/YOHCVXJB.js","webpack://formello/./node_modules/@ariakit/core/esm/combobox/combobox-store.js","webpack://formello/./node_modules/@ariakit/core/esm/utils/events.js","webpack://formello/./node_modules/@ariakit/core/esm/utils/focus.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/3LH6HMTR.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/3TGOYUTQ.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/3YLGPPWQ.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/5VQZOHHZ.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/7FZLUSKW.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/APGXEJ2Q.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/B5WJDZ55.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/C76P7QQC.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/CMXOY7UW.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/CO7ZDQU2.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/COWZSPJ7.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/CTKPPFRS.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/E6AN77M4.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/G4PVPWEW.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/HNHAUIIY.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/IKLZZMLE.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/JDEWEW7S.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/L63MOBXC.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/NSB34BGG.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/NWYOIOBE.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/OIB4PV4M.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/QZUWIJQN.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/SK3NAZA3.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/SWN3JYXT.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/SZHY72KI.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/UYRBEP7M.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/XNK4OM26.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/Z4WWVOIF.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/ZHUQ44XA.js","webpack://formello/./node_modules/@ariakit/react-core/esm/combobox/combobox-item-value.js","webpack://formello/./node_modules/@ariakit/react-core/esm/combobox/combobox-item.js","webpack://formello/./node_modules/@ariakit/react-core/esm/combobox/combobox-label.js","webpack://formello/./node_modules/@ariakit/react-core/esm/combobox/combobox-provider.js","webpack://formello/./node_modules/@ariakit/react-core/esm/combobox/combobox.js","webpack://formello/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://formello/./node_modules/clsx/dist/clsx.mjs","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/chunk loaded","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/create fake namespace object","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/global","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/webpack/runtime/publicPath","webpack://formello/webpack/runtime/jsonp chunk loading","webpack://formello/webpack/before-startup","webpack://formello/webpack/startup","webpack://formello/webpack/after-startup"],"sourcesContent":["var map = {\n\t\"./autosuggest.png\": \"./assets/addons/autosuggest.png\",\n\t\"./brevo.png\": \"./assets/addons/brevo.png\",\n\t\"./calculator.png\": \"./assets/addons/calculator.png\",\n\t\"./conditional-fields.png\": \"./assets/addons/conditional-fields.png\",\n\t\"./convertkit.png\": \"./assets/addons/convertkit.png\",\n\t\"./exporter.png\": \"./assets/addons/exporter.png\",\n\t\"./file-upload.png\": \"./assets/addons/file-upload.png\",\n\t\"./frontend-posting.png\": \"./assets/addons/frontend-posting.png\",\n\t\"./getresponse.png\": \"./assets/addons/getresponse.png\",\n\t\"./inserter.png\": \"./assets/addons/inserter.png\",\n\t\"./login.png\": \"./assets/addons/login.png\",\n\t\"./mailchimp.png\": \"./assets/addons/mailchimp.png\",\n\t\"./mailerlite.png\": \"./assets/addons/mailerlite.png\",\n\t\"./mailpoet.png\": \"./assets/addons/mailpoet.png\",\n\t\"./moosend.png\": \"./assets/addons/moosend.png\",\n\t\"./popper.png\": \"./assets/addons/popper.png\",\n\t\"./templates.png\": \"./assets/addons/templates.png\",\n\t\"./web-hooks.png\": \"./assets/addons/web-hooks.png\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./assets/addons sync recursive ^\\\\.\\\\/.*\\\\.png$\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 341.333,\n height: 341.333,\n viewBox: \"0 0 256 256\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#9b51e0\",\n d: \"M0 128v128h256V0H0v128zm145.6-66.6c2.9.7 7.8 2.8 11.1 4.5 6.7 3.6 18.3 14.6 16.8 16-2.6 2.3-31.9 23.1-32.6 23.1-.5 0-.9-.5-.9-1 0-.6-1.1-2.2-2.5-3.5-3-3.1-8.3-3.3-11.6-.6-2.2 1.8-2.4 2.7-2.7 14l-.4 12.1H136v37h-13v34H82v-44.8c0-35.5.3-46.1 1.5-51.7 3.9-18.6 18.2-34.2 35.6-38.9 6.9-1.9 19.9-2 26.5-.2z\"\n })));\n};\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwoJdmVyc2lvbj0iMS4wIgoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJd2lkdGg9IjI1Ni4wMDAwMDBwdCIKCWhlaWdodD0iMjU2LjAwMDAwMHB0IgoJdmlld0JveD0iMCAwIDI1Ni4wMDAwMDAgMjU2LjAwMDAwMCIKCXByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiCj4KCTxnCgkJdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjU2LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKCQlmaWxsPSIjOWI1MWUwIgoJCXN0cm9rZT0ibm9uZSIKCT4KCQk8cGF0aAoJCQlkPSJNMCAxMjgwIGwwIC0xMjgwIDEyODAgMCAxMjgwIDAgMCAxMjgwIDAgMTI4MCAtMTI4MCAwIC0xMjgwIDAgMAoJCQktMTI4MHogbTE0NTYgNjY2IGMyOSAtNyA3OCAtMjggMTExIC00NSA2NyAtMzYgMTgzIC0xNDYgMTY4IC0xNjAgLTI2IC0yMwoJCQktMzE5IC0yMzEgLTMyNiAtMjMxIC01IDAgLTkgNSAtOSAxMCAwIDYgLTExIDIyIC0yNSAzNSAtMzAgMzEgLTgzIDMzIC0xMTYgNgoJCQktMjIgLTE4IC0yNCAtMjcgLTI3IC0xNDAgbC00IC0xMjEgNjYgMCA2NiAwIDAgLTE4NSAwIC0xODUgLTY1IDAgLTY1IDAgMAoJCQktMTcwIDAgLTE3MCAtMjA1IDAgLTIwNSAwIDAgNDQ4IGMwIDM1NSAzIDQ2MSAxNSA1MTcgMzkgMTg2IDE4MiAzNDIgMzU2IDM4OQoJCQk2OSAxOSAxOTkgMjAgMjY1IDJ6IgoJCS8+Cgk8L2c+Cjwvc3ZnPg==\";","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgBrevo = function SvgBrevo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 64 64\"\n }, props), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 32,\n cy: 32,\n r: 32,\n style: {\n fill: \"#0b996e\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.83 28.07c2.05-2.05 3.01-4.41 3.01-7.29 0-5.95-4.29-9.91-10.74-9.91H20.24v42.28h12.79c9.72 0 17.01-6.08 17.01-14.14 0-4.41-2.24-8.38-6.2-10.94ZM25.98 16.36h9.47c3.2 0 5.31 1.85 5.31 4.67 0 3.2-2.75 5.63-8.38 7.48-3.84 1.22-5.56 2.24-6.2 3.45h-.19V16.35Zm6.52 31.28h-6.52v-6.52c0-2.88 2.43-5.69 5.82-6.78 3.01-1.02 5.5-2.05 7.61-3.13 2.81 1.67 4.54 4.54 4.54 7.55 0 5.12-4.86 8.89-11.45 8.89Z\",\n style: {\n fill: \"#fff\"\n }\n }));\n};\nexport { SvgBrevo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48dGl0bGU+QnJldm8gaWNvbiAtIFVuY2FubnkgQXV0b21hdG9yPC90aXRsZT48Y2lyY2xlIGN4PSIzMiIgY3k9IjMyIiByPSIzMiIgc3R5bGU9ImZpbGw6IzBiOTk2ZTsiLz48cGF0aCBkPSJtNDMuODMsMjguMDdjMi4wNS0yLjA1LDMuMDEtNC40MSwzLjAxLTcuMjksMC01Ljk1LTQuMjktOS45MS0xMC43NC05LjkxaC0xNS44NnY0Mi4yOGgxMi43OWM5LjcyLDAsMTcuMDEtNi4wOCwxNy4wMS0xNC4xNCwwLTQuNDEtMi4yNC04LjM4LTYuMi0xMC45NGgwWm0tMTcuODUtMTEuNzFoOS40N2MzLjIsMCw1LjMxLDEuODUsNS4zMSw0LjY3LDAsMy4yLTIuNzUsNS42My04LjM4LDcuNDgtMy44NCwxLjIyLTUuNTYsMi4yNC02LjIsMy40NWgtLjE5di0xNS42MVptNi41MiwzMS4yOGgtNi41MnYtNi41MmMwLTIuODgsMi40My01LjY5LDUuODItNi43OCwzLjAxLTEuMDIsNS41LTIuMDUsNy42MS0zLjEzLDIuODEsMS42Nyw0LjU0LDQuNTQsNC41NCw3LjU1LDAsNS4xMi00Ljg2LDguODktMTEuNDUsOC44OWgwWiIgc3R5bGU9ImZpbGw6I2ZmZjsiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgConvertkit = function SvgConvertkit(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"-0.093 0 174.921 162\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fb6970\",\n d: \"M84.358 127.894c30.359 0 53.824-22.904 53.824-51.157 0-26.47-22.045-42.631-36.646-42.631-20.332 0-36.63 14.248-38.952 35.4-.43 3.917-3.538 7.202-7.482 7.174-6.556-.047-16.089-.103-22.123-.082-2.598.009-4.745-2.096-4.617-4.689.91-18.345 7.053-35.498 18.766-48.674C60.143 8.594 79.097 0 101.536 0c37.701 0 73.292 34.209 73.292 76.737 0 47.089-39.07 85.263-89.668 85.263-36.084 0-72.427-23.549-85.116-56.472a.707.707 0 0 1-.032-.382c.17-.974.505-1.864.835-2.74.48-1.274.95-2.52.882-3.955l-.22-4.586a5.588 5.588 0 0 1 3.243-5.329l1.834-.853a7.077 7.077 0 0 0 3.99-5.138c.615-3.363 3.571-5.808 7.022-5.808 5.39 0 10.076 3.579 11.836 8.667 8.473 24.49 21.943 42.49 54.924 42.49z\"\n })));\n};\nexport { SvgConvertkit as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9Ii0uMDkyNzY5MDggMCAxNzQuOTIwNzY5MDggMTYyIiB3aWR0aD0iMjRweCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtODQuMzU4IDEyNy44OTRjMzAuMzU5IDAgNTMuODI0LTIyLjkwNCA1My44MjQtNTEuMTU3IDAtMjYuNDctMjIuMDQ1LTQyLjYzMS0zNi42NDYtNDIuNjMxLTIwLjMzMiAwLTM2LjYzIDE0LjI0OC0zOC45NTIgMzUuNC0uNDMgMy45MTctMy41MzggNy4yMDItNy40ODIgNy4xNzQtNi41NTYtLjA0Ny0xNi4wODktLjEwMy0yMi4xMjMtLjA4Mi0yLjU5OC4wMDktNC43NDUtMi4wOTYtNC42MTctNC42ODkuOTEtMTguMzQ1IDcuMDUzLTM1LjQ5OCAxOC43NjYtNDguNjc0IDEzLjAxNS0xNC42NDEgMzEuOTY5LTIzLjIzNSA1NC40MDgtMjMuMjM1IDM3LjcwMSAwIDczLjI5MiAzNC4yMDkgNzMuMjkyIDc2LjczNyAwIDQ3LjA4OS0zOS4wNyA4NS4yNjMtODkuNjY4IDg1LjI2My0zNi4wODQgMC03Mi40MjctMjMuNTQ5LTg1LjExNi01Ni40NzJhLjcwNy43MDcgMCAwIDEgLS4wMzItLjM4MmMuMTctLjk3NC41MDUtMS44NjQuODM1LTIuNzQuNDgtMS4yNzQuOTUtMi41Mi44ODItMy45NTVsLS4yMi00LjU4NmE1LjU4OCA1LjU4OCAwIDAgMSAzLjI0My01LjMyOWwxLjgzNC0uODUzYTcuMDc3IDcuMDc3IDAgMCAwIDMuOTktNS4xMzhjLjYxNS0zLjM2MyAzLjU3MS01LjgwOCA3LjAyMi01LjgwOCA1LjM5IDAgMTAuMDc2IDMuNTc5IDExLjgzNiA4LjY2NyA4LjQ3MyAyNC40OSAyMS45NDMgNDIuNDkgNTQuOTI0IDQyLjQ5eiIgZmlsbD0iI2ZiNjk3MCIvPjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmail = function SvgEmail(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n viewBox: \"0 0 114 114\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 7,\n d: \"M7 20h98v72H7zl44 44q5 4 10 0l44-44M7 92l36-36m26 0 36 36\"\n })));\n};\nexport { SvgEmail as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMTQgMTE0IiB3aWR0aD0iMjQiPg0KPHBhdGggc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjciIGZpbGw9Im5vbmUiIGQ9Im03LDIwaDk4djcySDd6bDQ0LDQ0cTUsNCAxMCwwbDQ0LTQ0TTcsOTJsMzYtMzZtMjYsMCAzNiwzNiIvPg0KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGetresponse = function SvgGetresponse(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 0 90 59\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00baff\",\n d: \"M87.6 52c0 2.1-1.7 3.7-3.7 3.7H3.7C1.7 55.8 0 54.1 0 52V3.7C0 1.7 1.7 0 3.7 0h80.1c2.1 0 3.7 1.7 3.7 3.7V52z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M86.8 1.4C76.4 17.5 60.3 32.3 43.7 31.9c-6.1-.1-13.1-1.9-19-6.7C20.3 21.6 15.9 16 14.2 8h-1.8c-2.7 0-4.3 2.4-4 4.6.1.5.2 1.1.3 1.7 1.3 7.8 5.9 16.6 13.6 22.3 6 4.4 13.4 7.3 21.5 7.3 14.6 0 30.2-9.3 43.8-33.2v-7c0-.8-.3-1.7-.8-2.3z\"\n })));\n};\nexport { SvgGetresponse as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDkwIDU5IiB2aWV3Qm94PSIwIDAgOTAgNTkiIGhlaWdodD0iMjRweCI+CjxwYXRoIGQ9Im04Ny42IDUyYzAgMi4xLTEuNyAzLjctMy43IDMuN2gtODAuMmMtMiAuMS0zLjctMS42LTMuNy0zLjd2LTQ4LjNjMC0yIDEuNy0zLjcgMy43LTMuN2g4MC4xYzIuMSAwIDMuNyAxLjcgMy43IDMuN3Y0OC4zeiIgZmlsbD0iIzAwYmFmZiIvPjxwYXRoIGQ9Im04Ni44IDEuNGMtMTAuNCAxNi4xLTI2LjUgMzAuOS00My4xIDMwLjUtNi4xLS4xLTEzLjEtMS45LTE5LTYuNy00LjQtMy42LTguOC05LjItMTAuNS0xNy4yLS43IDAtMS4yIDAtMS44IDAtMi43IDAtNC4zIDIuNC00IDQuNi4xLjUuMiAxLjEuMyAxLjcgMS4zIDcuOCA1LjkgMTYuNiAxMy42IDIyLjMgNiA0LjQgMTMuNCA3LjMgMjEuNSA3LjMgMTQuNiAwIDMwLjItOS4zIDQzLjgtMzMuMnYtN2MwLS44LS4zLTEuNy0uOC0yLjN6IiBmaWxsPSIjZmZmIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailchimp = function SvgMailchimp(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 200 200\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.4 2.4c-8.9 2.9-16.5 7.2-26.2 14.9-23.1 18.3-43 45.8-47.7 65.9-1.7 7.1-1.7 7.7-.1 12.6 1.3 3.8 2.9 6.2 6.1 8.7l4.2 3.5-.5 8.8c-.4 7.4-.1 9.6 1.6 13.4 4.1 9.3 15 17.8 22.8 17.8 3 0 3.6.5 6.6 6.2 2 4 6.5 9.5 11.8 14.9 7.3 7.3 10 9.4 18 13.2 11.3 5.4 19.5 7.5 32.1 8.3 35.8 2.3 67-18.4 74.4-49.3 2.4-9.8 1.6-14.9-2.7-18.8-4.7-4.2-6-8.5-4.1-13.5 3.7-9.4-2.2-17.4-16.2-21.5l-4-1.2-.6-10.4c-.6-10.9-3.1-19-7-22.5-1.8-1.6-1.7-1.8 2.6-7.3 7-9 9.8-16 9.3-23.7-.5-7.3-2.6-10.4-9.3-13.5-7.6-3.5-23.2-2.1-35.8 3.3l-4.7 2.1-5.5-5.2C98 3.9 91.2 0 87.5.1c-1.1 0-5.2 1-9.1 2.3zm18.1 9.7c2.5 2.3 4.5 4.7 4.5 5.3-.1.6-4 3.6-8.8 6.6-25.5 16.1-42.4 34.4-53.3 58-2.2 4.7-4.3 9.1-4.7 9.8-.4.8-2.5 2-4.6 2.7-2.1.8-5.5 2.9-7.5 4.9l-3.6 3.5-3.2-2.5c-4.3-3.3-5.7-8.5-4.2-15.5C17.6 54.1 62.9 8.4 87.3 8.1c4.2-.1 5.2.4 9.2 4zm16 23.9c-1.8 1.9-1.7 2 .1 2 2.6 0 13.7 2.9 14.6 3.8.4.4-5.9.7-14 .7-13.5 0-15.4.2-22.8 2.8-4.5 1.5-10.7 4.3-13.8 6.2-3.1 1.8-5.6 3-5.6 2.5 0-1.9 20.8-18.9 23.3-19 .4 0 .3.9-.3 1.9-1.9 3.6-1 4.2 3.3 2 5.1-2.7 11.4-4.7 14.6-4.8 2.3-.1 2.4 0 .6 1.9zm30.2 25c2.9 2.7 4 6.9 4.7 18.4.4 5.5 1.2 10.6 1.8 11.3s3.2 1.9 5.8 2.7c6.5 1.9 12.6 5.2 13.4 7.1 2.3 6-2.9 12.8-13.8 17.9-10.9 5.2-19.9 7-35.3 6.8l-13.2-.1-2.6 3c-3.2 3.9-3.4 10.4-.4 14.3 3.8 4.8 9.4 6.9 19.6 7.4 15.4.7 31.1-4.1 40.2-12.3 5-4.6 4.7-5.5-.7-2.1-15.8 9.9-40.4 13.5-51.4 7.4-2.4-1.3-4.4-3.1-4.6-4.1-.3-1.4.2-1.6 3-.9 5.6 1.2 24.6.9 26-.5 1-1-.8-1.3-8.7-1.3-8.6 0-13.7-.7-19.2-2.5-.7-.2-1-1.1-.7-2 .5-1.2 2.9-1.5 13.9-1.5 18.8 0 31.1-2.9 42.8-10.1 2.6-1.6 4.9-2.9 5.2-2.9s1 2.1 1.6 4.6c.9 3.4 1.8 4.8 3.7 5.5 2.3.9 2.4 1.3 2 6.8-1.5 21.1-26.4 39.4-51.8 37.8-16.1-.9-27.3-7.5-33.2-19.4-3-6.1-3.3-7.6-3.3-15.3.1-9.1 2-15 7-21.6 1.4-1.8 2.5-3.9 2.5-4.6s-2-3.8-4.5-6.8c-9-10.9-9.6-22.7-1.6-31.3 4.9-5.4 7.5-6.1 20.7-5.8l12 .2 6-4c6.6-4.5 10-5.1 13.1-2.1zm-95.6 41.3c11.7 7.8 13.1 30.3 2.4 37.3-3.5 2.3-11.2 2.1-16.1-.4-7.9-4.1-12.4-11.1-12.4-19.6 0-6.6 1.2-10.1 4.8-14 5.6-5.9 15.2-7.5 21.3-3.3z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136 78c-1.1 2.1.1 9.5 1.9 11.3 1.7 1.7 4.2 1.7 4.8.1.9-2.3-.7-10.2-2.3-11.9-2-2-3.1-1.9-4.4.5zm-34.7 13.4c-3.3 2.8-2.7 4.1 1.1 2.6 3.6-1.3 9.9-1.3 13.1.2 3.7 1.7 4.4 0 1.2-2.8-3.9-3.4-11.5-3.4-15.4 0zm38.4 4.2c-1.2 1.2-.8 4.1.7 5.3 1.7 1.4 3.9-.9 3.4-3.6-.3-1.8-2.9-2.9-4.1-1.7zm-30.6 1.7c-3.4 1.7-4.2 4.2-1 3.1 1.3-.5 4.1-.9 6.2-.8 4.1 0 4.8-1 1.8-2.6-2.5-1.3-4-1.3-7 .3zm20.3 3.2c-.7 1.8 1.3 4.5 3.3 4.5 2.3 0 2.8-3.1.8-4.6-2.4-1.8-3.4-1.8-4.1.1zm-96.9 8.7c-3 2.7-4.7 7.9-3.3 9.9.5.8 1.1 1 1.4.4 2.2-5 3.2-6 6.1-6.3 4.5-.4 6.7 2.9 5.1 8-2 6.6 1.7 12.1 6.5 9.6 2-1 2.3-3 .5-2.7-3.5.4-4-.1-3.3-3.4.3-1.7.9-5.3 1.2-7.8.4-4.2.2-4.8-2.7-7.2-3.9-3.3-8-3.5-11.5-.5z\"\n })));\n};\nexport { SvgMailchimp as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2ZXJzaW9uPSIxIgogIHZpZXdCb3g9IjAgMCAyMDAgMjAwIgo+CiAgICA8cGF0aAogICAgICAgIGQ9Ik03ODQgMTk3NmMtODktMjktMTY1LTcyLTI2Mi0xNDktMjMxLTE4My00MzAtNDU4LTQ3Ny02NTktMTctNzEtMTctNzctMS0xMjYgMTMtMzggMjktNjIgNjEtODdsNDItMzUtNS04OGMtNC03NC0xLTk2IDE2LTEzNCA0MS05MyAxNTAtMTc4IDIyOC0xNzggMzAgMCAzNi01IDY2LTYyIDIwLTQwIDY1LTk1IDExOC0xNDkgNzMtNzMgMTAwLTk0IDE4MC0xMzIgMTEzLTU0IDE5NS03NSAzMjEtODMgMzU4LTIzIDY3MCAxODQgNzQ0IDQ5MyAyNCA5OCAxNiAxNDktMjcgMTg4LTQ3IDQyLTYwIDg1LTQxIDEzNSAzNyA5NC0yMiAxNzQtMTYyIDIxNWwtNDAgMTItNiAxMDRjLTYgMTA5LTMxIDE5MC03MCAyMjUtMTggMTYtMTcgMTggMjYgNzMgNzAgOTAgOTggMTYwIDkzIDIzNy01IDczLTI2IDEwNC05MyAxMzUtNzYgMzUtMjMyIDIxLTM1OC0zM2wtNDctMjEtNTUgNTJjLTU1IDUyLTEyMyA5MS0xNjAgOTAtMTEgMC01Mi0xMC05MS0yM3ptMTgxLTk3YzI1LTIzIDQ1LTQ3IDQ1LTUzLTEtNi00MC0zNi04OC02Ni0yNTUtMTYxLTQyNC0zNDQtNTMzLTU4MC0yMi00Ny00My05MS00Ny05OC00LTgtMjUtMjAtNDYtMjctMjEtOC01NS0yOS03NS00OWwtMzYtMzUtMzIgMjVjLTQzIDMzLTU3IDg1LTQyIDE1NSA2NSAzMDggNTE4IDc2NSA3NjIgNzY4IDQyIDEgNTItNCA5Mi00MHptMTYwLTIzOWMtMTgtMTktMTctMjAgMS0yMCAyNiAwIDEzNy0yOSAxNDYtMzggNC00LTU5LTctMTQwLTctMTM1IDAtMTU0LTItMjI4LTI4LTQ1LTE1LTEwNy00My0xMzgtNjItMzEtMTgtNTYtMzAtNTYtMjUgMCAxOSAyMDggMTg5IDIzMyAxOTAgNCAwIDMtOS0zLTE5LTE5LTM2LTEwLTQyIDMzLTIwIDUxIDI3IDExNCA0NyAxNDYgNDggMjMgMSAyNCAwIDYtMTl6bTMwMi0yNTBjMjktMjcgNDAtNjkgNDctMTg0IDQtNTUgMTItMTA2IDE4LTExM3MzMi0xOSA1OC0yN2M2NS0xOSAxMjYtNTIgMTM0LTcxIDIzLTYwLTI5LTEyOC0xMzgtMTc5LTEwOS01Mi0xOTktNzAtMzUzLTY4bC0xMzIgMS0yNi0zMGMtMzItMzktMzQtMTA0LTQtMTQzIDM4LTQ4IDk0LTY5IDE5Ni03NCAxNTQtNyAzMTEgNDEgNDAyIDEyMyA1MCA0NiA0NyA1NS03IDIxLTE1OC05OS00MDQtMTM1LTUxNC03NC0yNCAxMy00NCAzMS00NiA0MS0zIDE0IDIgMTYgMzAgOSA1Ni0xMiAyNDYtOSAyNjAgNSAxMCAxMC04IDEzLTg3IDEzLTg2IDAtMTM3IDctMTkyIDI1LTcgMi0xMCAxMS03IDIwIDUgMTIgMjkgMTUgMTM5IDE1IDE4OCAwIDMxMSAyOSA0MjggMTAxIDI2IDE2IDQ5IDI5IDUyIDI5czEwLTIxIDE2LTQ2YzktMzQgMTgtNDggMzctNTUgMjMtOSAyNC0xMyAyMC02OC0xNS0yMTEtMjY0LTM5NC01MTgtMzc4LTE2MSA5LTI3MyA3NS0zMzIgMTk0LTMwIDYxLTMzIDc2LTMzIDE1MyAxIDkxIDIwIDE1MCA3MCAyMTYgMTQgMTggMjUgMzkgMjUgNDZzLTIwIDM4LTQ1IDY4Yy05MCAxMDktOTYgMjI3LTE2IDMxMyA0OSA1NCA3NSA2MSAyMDcgNThsMTIwLTIgNjAgNDBjNjYgNDUgMTAwIDUxIDEzMSAyMXpNNDcxIDk3N2MxMTctNzggMTMxLTMwMyAyNC0zNzMtMzUtMjMtMTEyLTIxLTE2MSA0LTc5IDQxLTEyNCAxMTEtMTI0IDE5NiAwIDY2IDEyIDEwMSA0OCAxNDAgNTYgNTkgMTUyIDc1IDIxMyAzM3oiCiAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLjEgMCAwIC0uMSAwIDIwMCkiCiAgICA+PC9wYXRoPgogICAgPHBhdGgKICAgICAgICBkPSJNMTM2MCAxMjIwYy0xMS0yMSAxLTk1IDE5LTExMyAxNy0xNyA0Mi0xNyA0OC0xIDkgMjMtNyAxMDItMjMgMTE5LTIwIDIwLTMxIDE5LTQ0LTV6TTEwMTMgMTA4NmMtMzMtMjgtMjctNDEgMTEtMjYgMzYgMTMgOTkgMTMgMTMxLTIgMzctMTcgNDQgMCAxMiAyOC0zOSAzNC0xMTUgMzQtMTU0IDB6TTEzOTcgMTA0NGMtMTItMTItOC00MSA3LTUzIDE3LTE0IDM5IDkgMzQgMzYtMyAxOC0yOSAyOS00MSAxN3pNMTA5MSAxMDI3Yy0zNC0xNy00Mi00Mi0xMC0zMSAxMyA1IDQxIDkgNjIgOCA0MSAwIDQ4IDEwIDE4IDI2LTI1IDEzLTQwIDEzLTcwLTN6TTEyOTQgOTk1Yy03LTE4IDEzLTQ1IDMzLTQ1IDIzIDAgMjggMzEgOCA0Ni0yNCAxOC0zNCAxOC00MS0xek0zMjUgOTA4Yy0zMC0yNy00Ny03OS0zMy05OSA1LTggMTEtMTAgMTQtNCAyMiA1MCAzMiA2MCA2MSA2MyA0NSA0IDY3LTI5IDUxLTgwLTIwLTY2IDE3LTEyMSA2NS05NiAyMCAxMCAyMyAzMCA1IDI3LTM1LTQtNDAgMS0zMyAzNCAzIDE3IDkgNTMgMTIgNzggNCA0MiAyIDQ4LTI3IDcyLTM5IDMzLTgwIDM1LTExNSA1eiIKICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCguMSAwIDAgLS4xIDAgMjAwKSIKICAgID48L3BhdGg+Cjwvc3ZnPg==\";","var _rect, _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailerlite = function SvgMailerlite(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n fill: \"none\",\n viewBox: \"0 0 256 256\"\n }, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 253.538,\n height: 253.538,\n x: 1.231,\n y: 1.231,\n fill: \"#09C269\",\n stroke: \"#09C269\",\n strokeWidth: 2.462,\n rx: 4.923\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M178.619 73H77.286C69.38 73 63 79.669 63 87.93v94.852l19.714-20.403h96c7.905 0 14.286-6.669 14.286-14.93v-59.52C192.905 79.67 186.524 73 178.619 73Zm-85.238 66.885c0 2.189-1.714 3.981-3.81 3.981-2.095 0-3.81-1.792-3.81-3.981v-42.3c0-2.19 1.715-3.982 3.81-3.982 2.096 0 3.81 1.791 3.81 3.981v42.301Zm17.714 0c0 2.189-1.714 3.981-3.809 3.981-2.096 0-3.81-1.792-3.81-3.981v-27.969c0-2.189 1.714-3.981 3.81-3.981 2.095 0 3.809 1.792 3.809 3.981v27.969Zm.476-40.708c0 2.388-1.809 4.279-4.095 4.279h-.381c-2.285 0-4.095-1.891-4.095-4.28v-.298c0-2.389 1.81-4.28 4.095-4.28h.381c2.286 0 4.095 1.891 4.095 4.28v.299Zm26.858 43.694c-1.715.895-3.619 1.293-5.619 1.293-6.572 0-10.096-3.284-10.096-9.555V115.4h-3.428a2.077 2.077 0 0 1-2.096-2.09v-.1c0-.696.381-1.393.953-1.891l8.476-8.659a2.912 2.912 0 0 1 1.714-.896c1.143 0 2.191.996 2.191 2.19V108.234h6.095c1.905 0 3.429 1.592 3.429 3.583s-1.524 3.583-3.429 3.583h-6.095v18.712c0 2.687 1.333 2.886 3.143 2.886a7.79 7.79 0 0 0 2.19-.298c.476-.199 1.048-.199 1.524-.299 1.714 0 3.143 1.493 3.238 3.384-.19 1.294-1.048 2.588-2.19 3.086Zm23.333-6.171c2.762.099 5.524-.598 8-1.891.476-.299 1.048-.399 1.524-.399 1.904 0 3.428 1.493 3.428 3.484v.1c-.095 1.393-.857 2.687-2.095 3.284-2.667 1.593-5.524 2.986-11.429 2.986-10.666 0-17.142-6.868-17.142-18.314 0-13.436 8.571-18.313 15.809-18.313 10.857 0 15.81 9.057 15.81 17.418.095 2.09-1.524 3.881-3.524 3.981h-20.286c1.048 4.976 4.476 7.664 9.905 7.664Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M160.047 114.703c-4.19-.099-7.714 3.185-8.095 7.565h16.286c-.476-4.38-4-7.664-8.191-7.565Z\"\n })));\n};\nexport { SvgMailerlite as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjU2IDI1NiIgd2lkdGg9IjI0cHgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQo8cmVjdCB4PSIxLjIzMDc3IiB5PSIxLjIzMDc3IiB3aWR0aD0iMjUzLjUzOCIgaGVpZ2h0PSIyNTMuNTM4IiByeD0iNC45MjMwOCIgZmlsbD0iIzA5QzI2OSIgc3Ryb2tlPSIjMDlDMjY5IiBzdHJva2Utd2lkdGg9IjIuNDYxNTQiLz4NCjxwYXRoIGQ9Ik0xNzguNjE5IDczSDc3LjI4NTdDNjkuMzgxIDczIDYzIDc5LjY2ODYgNjMgODcuOTI5NlYxODIuNzgyTDgyLjcxNDMgMTYyLjM3OUgxNzguNzE0QzE4Ni42MTkgMTYyLjM3OSAxOTMgMTU1LjcxIDE5MyAxNDcuNDQ5Vjg3LjkyOTZDMTkyLjkwNSA3OS42Njg2IDE4Ni41MjQgNzMgMTc4LjYxOSA3M1pNOTMuMzgwOSAxMzkuODg1QzkzLjM4MDkgMTQyLjA3NCA5MS42NjY3IDE0My44NjYgODkuNTcxNCAxNDMuODY2Qzg3LjQ3NjIgMTQzLjg2NiA4NS43NjE5IDE0Mi4wNzQgODUuNzYxOSAxMzkuODg1Vjk3LjU4NDFDODUuNzYxOSA5NS4zOTQ0IDg3LjQ3NjIgOTMuNjAyOSA4OS41NzE0IDkzLjYwMjlDOTEuNjY2NyA5My42MDI5IDkzLjM4MDkgOTUuMzk0NCA5My4zODA5IDk3LjU4NDFWMTM5Ljg4NVpNMTExLjA5NSAxMzkuODg1QzExMS4wOTUgMTQyLjA3NCAxMDkuMzgxIDE0My44NjYgMTA3LjI4NiAxNDMuODY2QzEwNS4xOSAxNDMuODY2IDEwMy40NzYgMTQyLjA3NCAxMDMuNDc2IDEzOS44ODVWMTExLjkxNkMxMDMuNDc2IDEwOS43MjcgMTA1LjE5IDEwNy45MzUgMTA3LjI4NiAxMDcuOTM1QzEwOS4zODEgMTA3LjkzNSAxMTEuMDk1IDEwOS43MjcgMTExLjA5NSAxMTEuOTE2VjEzOS44ODVaTTExMS41NzEgOTkuMTc2NkMxMTEuNTcxIDEwMS41NjUgMTA5Ljc2MiAxMDMuNDU2IDEwNy40NzYgMTAzLjQ1NkgxMDcuMDk1QzEwNC44MSAxMDMuNDU2IDEwMyAxMDEuNTY1IDEwMyA5OS4xNzY2Vjk4Ljg3OEMxMDMgOTYuNDg5MiAxMDQuODEgOTQuNTk4MiAxMDcuMDk1IDk0LjU5ODJIMTA3LjQ3NkMxMDkuNzYyIDk0LjU5ODIgMTExLjU3MSA5Ni40ODkyIDExMS41NzEgOTguODc4Vjk5LjE3NjZaTTEzOC40MjkgMTQyLjg3MUMxMzYuNzE0IDE0My43NjYgMTM0LjgxIDE0NC4xNjQgMTMyLjgxIDE0NC4xNjRDMTI2LjIzOCAxNDQuMTY0IDEyMi43MTQgMTQwLjg4IDEyMi43MTQgMTM0LjYwOVYxMTUuNEgxMTkuMjg2QzExOC4xNDMgMTE1LjQgMTE3LjE5IDExNC41MDQgMTE3LjE5IDExMy4zMVYxMTMuMjFDMTE3LjE5IDExMi41MTQgMTE3LjU3MSAxMTEuODE3IDExOC4xNDMgMTExLjMxOUwxMjYuNjE5IDEwMi42NkMxMjcuMDk1IDEwMi4xNjIgMTI3LjY2NyAxMDEuODY0IDEyOC4zMzMgMTAxLjc2NEMxMjkuNDc2IDEwMS43NjQgMTMwLjUyNCAxMDIuNzYgMTMwLjUyNCAxMDMuOTU0QzEzMC41MjQgMTAzLjk1NCAxMzAuNTI0IDEwMy45NTQgMTMwLjUyNCAxMDQuMDU0VjEwOC4yMzRIMTM2LjYxOUMxMzguNTI0IDEwOC4yMzQgMTQwLjA0OCAxMDkuODI2IDE0MC4wNDggMTExLjgxN0MxNDAuMDQ4IDExMy44MDggMTM4LjUyNCAxMTUuNCAxMzYuNjE5IDExNS40SDEzMC41MjRWMTM0LjExMkMxMzAuNTI0IDEzNi43OTkgMTMxLjg1NyAxMzYuOTk4IDEzMy42NjcgMTM2Ljk5OEMxMzQuNDI5IDEzNi45OTggMTM1LjE5IDEzNi44OTkgMTM1Ljg1NyAxMzYuN0MxMzYuMzMzIDEzNi41MDEgMTM2LjkwNSAxMzYuNTAxIDEzNy4zODEgMTM2LjQwMUMxMzkuMDk1IDEzNi40MDEgMTQwLjUyNCAxMzcuODk0IDE0MC42MTkgMTM5Ljc4NUMxNDAuNDI5IDE0MS4wNzkgMTM5LjU3MSAxNDIuMzczIDEzOC40MjkgMTQyLjg3MVpNMTYxLjc2MiAxMzYuN0MxNjQuNTI0IDEzNi43OTkgMTY3LjI4NiAxMzYuMTAyIDE2OS43NjIgMTM0LjgwOUMxNzAuMjM4IDEzNC41MSAxNzAuODEgMTM0LjQxIDE3MS4yODYgMTM0LjQxQzE3My4xOSAxMzQuNDEgMTc0LjcxNCAxMzUuOTAzIDE3NC43MTQgMTM3Ljg5NEMxNzQuNzE0IDEzNy44OTQgMTc0LjcxNCAxMzcuODk0IDE3NC43MTQgMTM3Ljk5NEMxNzQuNjE5IDEzOS4zODcgMTczLjg1NyAxNDAuNjgxIDE3Mi42MTkgMTQxLjI3OEMxNjkuOTUyIDE0Mi44NzEgMTY3LjA5NSAxNDQuMjY0IDE2MS4xOSAxNDQuMjY0QzE1MC41MjQgMTQ0LjI2NCAxNDQuMDQ4IDEzNy4zOTYgMTQ0LjA0OCAxMjUuOTVDMTQ0LjA0OCAxMTIuNTE0IDE1Mi42MTkgMTA3LjYzNyAxNTkuODU3IDEwNy42MzdDMTcwLjcxNCAxMDcuNjM3IDE3NS42NjcgMTE2LjY5NCAxNzUuNjY3IDEyNS4wNTVDMTc1Ljc2MiAxMjcuMTQ1IDE3NC4xNDMgMTI4LjkzNiAxNzIuMTQzIDEyOS4wMzZDMTcyLjA0OCAxMjkuMDM2IDE3MS45NTIgMTI5LjAzNiAxNzEuODU3IDEyOS4wMzZIMTUxLjg1N0MxNTIuOTA1IDEzNC4wMTIgMTU2LjMzMyAxMzYuNyAxNjEuNzYyIDEzNi43WiIgZmlsbD0id2hpdGUiLz4NCjxwYXRoIGQ9Ik0xNjAuMDQ3IDExNC43MDNDMTU1Ljg1NyAxMTQuNjA0IDE1Mi4zMzMgMTE3Ljg4OCAxNTEuOTUyIDEyMi4yNjhIMTY4LjIzOEMxNjcuNzYyIDExNy44ODggMTY0LjIzOCAxMTQuNjA0IDE2MC4wNDcgMTE0LjcwM1oiIGZpbGw9IndoaXRlIi8+DQo8L3N2Zz4=\";","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailpoet = function SvgMailpoet(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n viewBox: \"0 0 152.02 156.4\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FF5301\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.71 89.1c3.5 0 5.9-.8 7.2-2.3a8 8 0 0 0 2-5.4V35.7l17 45.1a12.68 12.68 0 0 0 3.7 5.4c1.6 1.3 4 2 7.2 2a12.54 12.54 0 0 0 5.9-1.4 8.41 8.41 0 0 0 3.9-5l18.1-50V81a8.53 8.53 0 0 0 2.1 6.1c1.4 1.4 3.7 2.2 6.9 2.2 3.5 0 5.9-.8 7.2-2.3a8 8 0 0 0 2-5.4V8.7a7.48 7.48 0 0 0-3.3-6.6c-2.1-1.4-5-2.1-8.6-2.1a19.3 19.3 0 0 0-9.4 2 11.63 11.63 0 0 0-5.1 6.8l-19.6 58.3-20.5-58.7a12.4 12.4 0 0 0-4.5-6.2c-2.1-1.5-5-2.2-8.8-2.2a16.51 16.51 0 0 0-8.9 2.1c-2.3 1.5-3.5 3.9-3.5 7.2v71.5c0 2.8.7 4.8 2 6.2 1.5 1.4 3.7 2.1 7 2.1ZM149 116.6l-2.4-1.9a7.4 7.4 0 0 0-9.4.3 19.65 19.65 0 0 1-12.5 4.6h-21.4A37.08 37.08 0 0 0 77 130.5l-1.1 1.2-1.1-1.1a37.25 37.25 0 0 0-26.3-10.9H27a19.59 19.59 0 0 1-12.4-4.6 7.28 7.28 0 0 0-9.4-.3l-2.4 1.9a7.43 7.43 0 0 0-2.8 5.5 7.14 7.14 0 0 0 2.4 5.7 37.28 37.28 0 0 0 24.6 9.5h21.6a19.59 19.59 0 0 1 18.9 14.4v.2c.1.7 1.2 4.4 8.5 4.4s8.4-3.7 8.5-4.4v-.2a19.59 19.59 0 0 1 18.9-14.4H125a37.28 37.28 0 0 0 24.6-9.5 7.42 7.42 0 0 0 2.4-5.7 7.86 7.86 0 0 0-3-5.6Z\"\n })))));\n};\nexport { SvgMailpoet as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNTIuMDIgMTU2LjQiIHdpZHRoPSIyNHB4Ij48dGl0bGU+c3ltYm9sPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iTGF5ZXJfMS0yIiBkYXRhLW5hbWU9IkxheWVyIDEiPjxwYXRoIGZpbGw9IiNGRjUzMDEiIGQ9Ik0zNy43MSw4OS4xYzMuNSwwLDUuOS0uOCw3LjItMi4zYTgsOCwwLDAsMCwyLTUuNFYzNS43bDE3LDQ1LjFhMTIuNjgsMTIuNjgsMCwwLDAsMy43LDUuNGMxLjYsMS4zLDQsMiw3LjIsMmExMi41NCwxMi41NCwwLDAsMCw1LjktMS40LDguNDEsOC40MSwwLDAsMCwzLjktNWwxOC4xLTUwVjgxYTguNTMsOC41MywwLDAsMCwyLjEsNi4xYzEuNCwxLjQsMy43LDIuMiw2LjksMi4yLDMuNSwwLDUuOS0uOCw3LjItMi4zYTgsOCwwLDAsMCwyLTUuNFY4LjdhNy40OCw3LjQ4LDAsMCwwLTMuMy02LjZjLTIuMS0xLjQtNS0yLjEtOC42LTIuMWExOS4zLDE5LjMsMCwwLDAtOS40LDIsMTEuNjMsMTEuNjMsMCwwLDAtNS4xLDYuOEw3NC45MSw2Ny4xLDU0LjQxLDguNGExMi40LDEyLjQsMCwwLDAtNC41LTYuMmMtMi4xLTEuNS01LTIuMi04LjgtMi4yYTE2LjUxLDE2LjUxLDAsMCwwLTguOSwyLjFjLTIuMywxLjUtMy41LDMuOS0zLjUsNy4yVjgwLjhjMCwyLjguNyw0LjgsMiw2LjJDMzIuMjEsODguNCwzNC40MSw4OS4xLDM3LjcxLDg5LjFaIi8+PHBhdGggZmlsbD0iI0ZGNTMwMSIgZD0iTTE0OSwxMTYuNmwtMi40LTEuOWE3LjQsNy40LDAsMCwwLTkuNC4zLDE5LjY1LDE5LjY1LDAsMCwxLTEyLjUsNC42aC0yMS40QTM3LjA4LDM3LjA4LDAsMCwwLDc3LDEzMC41bC0xLjEsMS4yLTEuMS0xLjFhMzcuMjUsMzcuMjUsMCwwLDAtMjYuMy0xMC45SDI3YTE5LjU5LDE5LjU5LDAsMCwxLTEyLjQtNC42LDcuMjgsNy4yOCwwLDAsMC05LjQtLjNsLTIuNCwxLjlBNy40Myw3LjQzLDAsMCwwLDAsMTIyLjJhNy4xNCw3LjE0LDAsMCwwLDIuNCw1LjdBMzcuMjgsMzcuMjgsMCwwLDAsMjcsMTM3LjRoMjEuNmExOS41OSwxOS41OSwwLDAsMSwxOC45LDE0LjR2LjJjLjEuNywxLjIsNC40LDguNSw0LjRzOC40LTMuNyw4LjUtNC40di0uMmExOS41OSwxOS41OSwwLDAsMSwxOC45LTE0LjRIMTI1YTM3LjI4LDM3LjI4LDAsMCwwLDI0LjYtOS41LDcuNDIsNy40MiwwLDAsMCwyLjQtNS43QTcuODYsNy44NiwwLDAsMCwxNDksMTE2LjZaIi8+PC9nPjwvZz48L3N2Zz4=\";","var _style, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMoosend = function SvgMoosend(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n id: \"moosend_svg__Layer_1\",\n width: 24,\n x: 0,\n y: 0,\n style: {\n enableBackground: \"new 0 0 215.6 200\"\n },\n viewBox: \"0 0 215.6 200\"\n }, props), _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \".moosend_svg__st0{fill:#fff}.moosend_svg__st1{fill:#394257}\")), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M161.8 103.5c0 9.4-7.6 17-17 17H72.3c-9.4 0-17-7.6-17-17V32.8c0-9.4 7.6-17 17-17h72.5c9.4 0 17 7.6 17 17v70.7z\",\n className: \"moosend_svg__st0\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74 13.1s7.1-23.3 16 .3c-15.6-.3-16-.3-16-.3zM126.7 13.1s7.1-23.3 16 .3c-15.6-.3-16-.3-16-.3z\",\n className: \"moosend_svg__st1\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.8 141c.4 1.4-.3 3-1.8 3.4L89.8 160c-1.4.4-3-.3-3.4-1.8l-10.3-32.4c-.5-1.4.3-3 1.8-3.4l49.2-15.6c1.4-.5 3 .3 3.4 1.8l10.3 32.4z\",\n className: \"moosend_svg__st0\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.3 163.2c-2.3 0-4.2-1.4-4.9-3.6l-10.3-32.4c-.9-2.7.6-5.6 3.3-6.5l49.2-15.6c2.6-.8 5.6.7 6.5 3.3l10.3 32.4c.9 2.7-.6 5.6-3.3 6.5l-49.2 15.6c-.6.2-1.1.3-1.6.3zm38.9-53.5-49.3 15.7c-.1 0-.2.2-.2.4L89 158.1c.1.2.3.2.4.2l49.2-15.6c.1 0 .2-.2.2-.4l-10.3-32.4c-.1-.1-.2-.2-.3-.2z\",\n className: \"moosend_svg__st1\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.8 123.2c-1.2.6-1.8 2-1.4 3.3l10.3 32.4c.2.5.5 1 .9 1.3l13.4-26-23.2-11z\",\n className: \"moosend_svg__st0\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m89 162.5-3-.6c-.8-.6-1.3-1.5-1.7-2.4L74 127.1c-.8-2.4.4-5.1 2.7-6.2l1-.5 26.4 12.5L89 162.5zm-10.1-36.1 8.9 27.9 9.8-19.1-18.7-8.8z\",\n className: \"moosend_svg__st1\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141 143.3c.2-.6.3-1.2.1-1.8l-10.2-32.2c-.5-1.4-1.9-2-3.4-1.6l-.3.1-13 21.9 26.8 13.6z\",\n className: \"moosend_svg__st0\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m140.9 146-30.2-15.3 14.8-24.9 1.2-.4c2.8-.9 5.6.6 6.4 3.2l10.2 32.2c.3 1.1.3 2.3-.1 3.4l-2.3 1.8zm-23.3-17.2 20.1 10.2-9.1-28.6-11 18.4z\",\n className: \"moosend_svg__st1\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.3 107.5c-.6-.3-1.3-.3-1.9-.1L78.2 123c-.8.2-1.3.8-1.6 1.5l33.9 17.1 18.8-34.1z\",\n className: \"moosend_svg__st0\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M111.4 144.8 74.1 126l.2-2.5c.6-1.3 1.7-2.3 3.1-2.8l49.2-15.6c1.2-.4 2.5-.3 3.7.2l2.4 1.1-21.3 38.4zm-29.6-20.3 27.6 13.9 15.3-27.5-42.9 13.6z\",\n className: \"moosend_svg__st1\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.1 77.5c-24.8 0-46 6.5-56.6 16.6 0 13.1 10.4 27 23.5 27h66.2c13.1 0 23.3-14.1 23.3-27.3-10.6-10.1-31.6-16.3-56.4-16.3zM153.9 15.5l40.3 23.3s-18 14.4-32.3 4.1c-.8-.6.4-16.9-.3-17.6l-7.7-9.8zM61.7 15.5 21.4 38.8s18 14.4 32.3 4.1c.8-.6-.4-16.9.3-17.6l7.7-9.8z\",\n className: \"moosend_svg__st1\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.1 82.4c-24.8 0-45.3 6.8-55.9 16.2 0 12.3 9.7 22.5 22.8 22.5h66.2c13.1 0 22.9-9.8 23-22.1-10.7-9.4-31.3-16.6-56.1-16.6z\",\n style: {\n fill: \"#e16053\"\n }\n }), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.5 58.4c-.7 2.8-2.7 4.7-4.4 4.3-1.7-.4-2.6-3-1.9-5.8.7-2.8 2.7-4.7 4.4-4.3 1.8.4 2.6 3.1 1.9 5.8zM119.8 56.8c.8 2.8 0 5.4-1.7 5.9s-3.7-1.3-4.5-4.1c-.8-2.8 0-5.4 1.7-5.9 1.6-.5 3.7 1.3 4.5 4.1zM90.3 102.8c2.3 4 2.2 8.4-.3 9.8-2.5 1.5-6.4-.6-8.7-4.6-2.3-4-2.2-8.4.3-9.8 2.5-1.5 6.4.6 8.7 4.6zM128.6 103c-2.3 4-2.2 8.4.3 9.8 2.5 1.5 6.4-.6 8.7-4.6 2.3-4 2.2-8.4-.3-9.8-2.5-1.4-6.3.6-8.7 4.6z\",\n className: \"moosend_svg__st1\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.4 35.2c0-13.2-10.7-23.9-23.9-23.9H75c-13.2 0-23.9 10.5-23.9 23.7v66.2c0 13.2 10.7 24.3 23.9 24.3h66.2c13.2 0 23.9-10.9 23.9-24.1l-.7-66.2zm-4.1 67.5c0 9.8-8 17.8-17.8 17.8H73.8c-9.8 0-17.8-8-17.8-17.8V34.1c0-9.8 8-17.8 17.8-17.8h68.6c9.8 0 17.8 8 17.8 17.8v68.6z\",\n className: \"moosend_svg__st1\"\n })));\n};\nexport { SvgMoosend as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNS4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMTUuNiAyMDAiIHdpZHRoPSIyNHB4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyMTUuNiAyMDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiNGRkZGRkY7fQ0KCS5zdDF7ZmlsbDojMzk0MjU3O30NCgkuc3Qye2ZpbGw6I0UxNjA1Mzt9DQoJLnN0M3tmaWxsOiM5Njk2OTY7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNjEuOCwxMDMuNWMwLDkuNC03LjYsMTctMTcsMTdINzIuM2MtOS40LDAtMTctNy42LTE3LTE3VjMyLjhjMC05LjQsNy42LTE3LDE3LTE3aDcyLjVjOS40LDAsMTcsNy42LDE3LDE3DQoJCQkJTDE2MS44LDEwMy41TDE2MS44LDEwMy41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik03NCwxMy4xYzAsMCw3LjEtMjMuMywxNiwwLjNDNzQuNCwxMy4xLDc0LDEzLjEsNzQsMTMuMXoiLz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTI2LjcsMTMuMWMwLDAsNy4xLTIzLjMsMTYsMC4zQzEyNy4xLDEzLjEsMTI2LjcsMTMuMSwxMjYuNywxMy4xeiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNDAuOCwxNDFjMC40LDEuNC0wLjMsMy0xLjgsMy40bC00OS4yLDE1LjZjLTEuNCwwLjQtMy0wLjMtMy40LTEuOGwtMTAuMy0zMi40Yy0wLjUtMS40LDAuMy0zLDEuOC0zLjQNCgkJCQkJbDQ5LjItMTUuNmMxLjQtMC41LDMsMC4zLDMuNCwxLjhMMTQwLjgsMTQxeiIvPg0KCQkJPC9nPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTg5LjMsMTYzLjJjLTIuMywwLTQuMi0xLjQtNC45LTMuNmwtMTAuMy0zMi40Yy0wLjktMi43LDAuNi01LjYsMy4zLTYuNWw0OS4yLTE1LjYNCgkJCQkJYzIuNi0wLjgsNS42LDAuNyw2LjUsMy4zbDEwLjMsMzIuNGMwLjksMi43LTAuNiw1LjYtMy4zLDYuNWwtNDkuMiwxNS42QzkwLjMsMTYzLjEsODkuOCwxNjMuMiw4OS4zLDE2My4yeiBNMTI4LjIsMTA5LjcNCgkJCQkJbC00OS4zLDE1LjdjLTAuMSwwLTAuMiwwLjItMC4yLDAuNEw4OSwxNTguMWMwLjEsMC4yLDAuMywwLjIsMC40LDAuMmw0OS4yLTE1LjZjMC4xLDAsMC4yLTAuMiwwLjItMC40bC0xMC4zLTMyLjQNCgkJCQkJQzEyOC40LDEwOS44LDEyOC4zLDEwOS43LDEyOC4yLDEwOS43eiIvPg0KCQkJPC9nPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTc3LjgsMTIzLjJjLTEuMiwwLjYtMS44LDItMS40LDMuM2wxMC4zLDMyLjRjMC4yLDAuNSwwLjUsMSwwLjksMS4zbDEzLjQtMjZMNzcuOCwxMjMuMnoiLz4NCgkJCTwvZz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik04OSwxNjIuNWwtMy0wLjZjLTAuOC0wLjYtMS4zLTEuNS0xLjctMi40bC0xMC4zLTMyLjRjLTAuOC0yLjQsMC40LTUuMSwyLjctNi4ybDEtMC41bDI2LjQsMTIuNUw4OSwxNjIuNXoNCgkJCQkJIE03OC45LDEyNi40bDguOSwyNy45bDkuOC0xOS4xTDc4LjksMTI2LjR6Ii8+DQoJCQk8L2c+DQoJCTwvZz4NCgkJPGc+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTQxLDE0My4zYzAuMi0wLjYsMC4zLTEuMiwwLjEtMS44bC0xMC4yLTMyLjJjLTAuNS0xLjQtMS45LTItMy40LTEuNmwtMC4zLDAuMWwtMTMsMjEuOUwxNDEsMTQzLjN6Ii8+DQoJCQk8L2c+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTQwLjksMTQ2bC0zMC4yLTE1LjNsMTQuOC0yNC45bDEuMi0wLjRjMi44LTAuOSw1LjYsMC42LDYuNCwzLjJsMTAuMiwzMi4yYzAuMywxLjEsMC4zLDIuMy0wLjEsMy40DQoJCQkJCUwxNDAuOSwxNDZ6IE0xMTcuNiwxMjguOGwyMC4xLDEwLjJsLTkuMS0yOC42TDExNy42LDEyOC44eiIvPg0KCQkJPC9nPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyOS4zLDEwNy41Yy0wLjYtMC4zLTEuMy0wLjMtMS45LTAuMWwtNDkuMiwxNS42Yy0wLjgsMC4yLTEuMywwLjgtMS42LDEuNWwzMy45LDE3LjFMMTI5LjMsMTA3LjV6Ii8+DQoJCQk8L2c+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTExLjQsMTQ0LjhMNzQuMSwxMjZsMC4yLTIuNWMwLjYtMS4zLDEuNy0yLjMsMy4xLTIuOGw0OS4yLTE1LjZjMS4yLTAuNCwyLjUtMC4zLDMuNywwLjJsMi40LDEuMQ0KCQkJCQlMMTExLjQsMTQ0Ljh6IE04MS44LDEyNC41bDI3LjYsMTMuOWwxNS4zLTI3LjVMODEuOCwxMjQuNXoiLz4NCgkJCTwvZz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTA4LjEsNzcuNWMtMjQuOCwwLTQ2LDYuNS01Ni42LDE2LjZjMCwxMy4xLDEwLjQsMjcsMjMuNSwyN2g2Ni4yYzEzLjEsMCwyMy4zLTE0LjEsMjMuMy0yNy4zDQoJCQkJQzE1My45LDgzLjcsMTMyLjksNzcuNSwxMDguMSw3Ny41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNTMuOSwxNS41bDQwLjMsMjMuM2MwLDAtMTgsMTQuNC0zMi4zLDQuMWMtMC44LTAuNiwwLjQtMTYuOS0wLjMtMTcuNkwxNTMuOSwxNS41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MS43LDE1LjVMMjEuNCwzOC44YzAsMCwxOCwxNC40LDMyLjMsNC4xYzAuOC0wLjYtMC40LTE2LjksMC4zLTE3LjZMNjEuNywxNS41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMDguMSw4Mi40Yy0yNC44LDAtNDUuMyw2LjgtNTUuOSwxNi4yYzAsMTIuMyw5LjcsMjIuNSwyMi44LDIyLjVoNjYuMmMxMy4xLDAsMjIuOS05LjgsMjMtMjIuMQ0KCQkJCUMxNTMuNSw4OS42LDEzMi45LDgyLjQsMTA4LjEsODIuNHoiLz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTAzLjUsNTguNGMtMC43LDIuOC0yLjcsNC43LTQuNCw0LjNjLTEuNy0wLjQtMi42LTMtMS45LTUuOGMwLjctMi44LDIuNy00LjcsNC40LTQuMw0KCQkJCUMxMDMuNCw1MywxMDQuMiw1NS43LDEwMy41LDU4LjR6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTExOS44LDU2LjhjMC44LDIuOCwwLDUuNC0xLjcsNS45Yy0xLjcsMC41LTMuNy0xLjMtNC41LTQuMWMtMC44LTIuOCwwLTUuNCwxLjctNS45DQoJCQkJQzExNi45LDUyLjIsMTE5LDU0LDExOS44LDU2Ljh6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTkwLjMsMTAyLjhjMi4zLDQsMi4yLDguNC0wLjMsOS44Yy0yLjUsMS41LTYuNC0wLjYtOC43LTQuNmMtMi4zLTQtMi4yLTguNCwwLjMtOS44DQoJCQkJQzg0LjEsOTYuNyw4OCw5OC44LDkwLjMsMTAyLjh6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTEyOC42LDEwM2MtMi4zLDQtMi4yLDguNCwwLjMsOS44YzIuNSwxLjUsNi40LTAuNiw4LjctNC42YzIuMy00LDIuMi04LjQtMC4zLTkuOA0KCQkJCUMxMzQuOCw5NywxMzEsOTksMTI4LjYsMTAzeiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNjQuNCwzNS4yYzAtMTMuMi0xMC43LTIzLjktMjMuOS0yMy45SDc1Yy0xMy4yLDAtMjMuOSwxMC41LTIzLjksMjMuN3Y2Ni4yYzAsMTMuMiwxMC43LDI0LjMsMjMuOSwyNC4zDQoJCQkJCWg2Ni4yYzEzLjIsMCwyMy45LTEwLjksMjMuOS0yNC4xTDE2NC40LDM1LjJ6IE0xNjAuMywxMDIuN2MwLDkuOC04LDE3LjgtMTcuOCwxNy44SDczLjhjLTkuOCwwLTE3LjgtOC0xNy44LTE3LjhWMzQuMQ0KCQkJCQljMC05LjgsOC0xNy44LDE3LjgtMTcuOGg2OC42YzkuOCwwLDE3LjgsOCwxNy44LDE3LjhWMTAyLjd6Ii8+DQoJCQk8L2c+DQoJCTwvZz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgWebhook = function SvgWebhook(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.46 19C9 21.07 6.15 21.59 4.09 20.15c-2.05-1.44-2.53-4.31-1.09-6.4a4.585 4.585 0 0 1 3.58-1.98l.05 1.43c-.91.07-1.79.54-2.36 1.36-1 1.44-.69 3.38.68 4.35 1.38.96 3.31.59 4.31-.84.31-.45.49-.94.56-1.44v-1.01l5.58-.04.07-.11c.53-.92 1.68-1.24 2.58-.72a1.9 1.9 0 0 1 .68 2.6c-.53.91-1.69 1.23-2.59.71-.41-.23-.7-.6-.83-1.02l-4.07.02a4.96 4.96 0 0 1-.78 1.94m7.28-7.14c2.53.31 4.33 2.58 4.02 5.07-.31 2.5-2.61 4.27-5.14 3.96a4.629 4.629 0 0 1-3.43-2.21l1.24-.72a3.22 3.22 0 0 0 2.32 1.45c1.75.21 3.3-.98 3.51-2.65.21-1.67-1.03-3.2-2.76-3.41-.54-.06-1.06.01-1.53.18l-.85.44-2.58-4.77h-.22a1.906 1.906 0 0 1-1.85-1.95c.03-1.04.93-1.85 1.98-1.81 1.05.06 1.88.91 1.85 1.95-.02.44-.19.84-.46 1.15l1.9 3.51c.62-.2 1.3-.27 2-.19M8.25 9.14c-1-2.35.06-5.04 2.37-6.02 2.32-.98 5 .13 6 2.48.59 1.37.47 2.87-.2 4.07l-1.24-.72c.42-.81.49-1.8.09-2.73-.68-1.6-2.49-2.37-4.04-1.72-1.56.66-2.26 2.5-1.58 4.1.28.66.75 1.17 1.32 1.51l.39.21-3.07 4.99c.03.05.07.11.1.19.49.91.15 2.06-.77 2.55-.91.49-2.06.13-2.56-.81-.49-.93-.15-2.08.77-2.57.39-.21.82-.26 1.23-.17l2.31-3.77c-.47-.43-.87-.97-1.12-1.59Z\"\n })));\n};\nexport { SvgWebhook as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXdlYmhvb2siIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTAuNDYsMTlDOSwyMS4wNyA2LjE1LDIxLjU5IDQuMDksMjAuMTVDMi4wNCwxOC43MSAxLjU2LDE1Ljg0IDMsMTMuNzVDMy44NywxMi41IDUuMjEsMTEuODMgNi41OCwxMS43N0w2LjYzLDEzLjJDNS43MiwxMy4yNyA0Ljg0LDEzLjc0IDQuMjcsMTQuNTZDMy4yNywxNiAzLjU4LDE3Ljk0IDQuOTUsMTguOTFDNi4zMywxOS44NyA4LjI2LDE5LjUgOS4yNiwxOC4wN0M5LjU3LDE3LjYyIDkuNzUsMTcuMTMgOS44MiwxNi42M1YxNS42MkwxNS40LDE1LjU4TDE1LjQ3LDE1LjQ3QzE2LDE0LjU1IDE3LjE1LDE0LjIzIDE4LjA1LDE0Ljc1QzE4Ljk1LDE1LjI3IDE5LjI2LDE2LjQzIDE4LjczLDE3LjM1QzE4LjIsMTguMjYgMTcuMDQsMTguNTggMTYuMTQsMTguMDZDMTUuNzMsMTcuODMgMTUuNDQsMTcuNDYgMTUuMzEsMTcuMDRMMTEuMjQsMTcuMDZDMTEuMTMsMTcuNzMgMTAuODcsMTguMzggMTAuNDYsMTlNMTcuNzQsMTEuODZDMjAuMjcsMTIuMTcgMjIuMDcsMTQuNDQgMjEuNzYsMTYuOTNDMjEuNDUsMTkuNDMgMTkuMTUsMjEuMiAxNi42MiwyMC44OUMxNS4xMywyMC43MSAxMy45LDE5Ljg2IDEzLjE5LDE4LjY4TDE0LjQzLDE3Ljk2QzE0LjkyLDE4LjczIDE1Ljc1LDE5LjI4IDE2Ljc1LDE5LjQxQzE4LjUsMTkuNjIgMjAuMDUsMTguNDMgMjAuMjYsMTYuNzZDMjAuNDcsMTUuMDkgMTkuMjMsMTMuNTYgMTcuNSwxMy4zNUMxNi45NiwxMy4yOSAxNi40NCwxMy4zNiAxNS45NywxMy41M0wxNS4xMiwxMy45N0wxMi41NCw5LjJIMTIuMzJDMTEuMjYsOS4xNiAxMC40NCw4LjI5IDEwLjQ3LDcuMjVDMTAuNSw2LjIxIDExLjQsNS40IDEyLjQ1LDUuNDRDMTMuNSw1LjUgMTQuMzMsNi4zNSAxNC4zLDcuMzlDMTQuMjgsNy44MyAxNC4xMSw4LjIzIDEzLjg0LDguNTRMMTUuNzQsMTIuMDVDMTYuMzYsMTEuODUgMTcuMDQsMTEuNzggMTcuNzQsMTEuODZNOC4yNSw5LjE0QzcuMjUsNi43OSA4LjMxLDQuMSAxMC42MiwzLjEyQzEyLjk0LDIuMTQgMTUuNjIsMy4yNSAxNi42Miw1LjZDMTcuMjEsNi45NyAxNy4wOSw4LjQ3IDE2LjQyLDkuNjdMMTUuMTgsOC45NUMxNS42LDguMTQgMTUuNjcsNy4xNSAxNS4yNyw2LjIyQzE0LjU5LDQuNjIgMTIuNzgsMy44NSAxMS4yMyw0LjVDOS42Nyw1LjE2IDguOTcsNyA5LjY1LDguNkM5LjkzLDkuMjYgMTAuNCw5Ljc3IDEwLjk3LDEwLjExTDExLjM2LDEwLjMyTDguMjksMTUuMzFDOC4zMiwxNS4zNiA4LjM2LDE1LjQyIDguMzksMTUuNUM4Ljg4LDE2LjQxIDguNTQsMTcuNTYgNy42MiwxOC4wNUM2LjcxLDE4LjU0IDUuNTYsMTguMTggNS4wNiwxNy4yNEM0LjU3LDE2LjMxIDQuOTEsMTUuMTYgNS44MywxNC42N0M2LjIyLDE0LjQ2IDYuNjUsMTQuNDEgNy4wNiwxNC41TDkuMzcsMTAuNzNDOC45LDEwLjMgOC41LDkuNzYgOC4yNSw5LjE0WiIgLz48L3N2Zz4=\";","/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack, __experimentalVStack as VStack, __experimentalHeading as Heading, __experimentalSpacer as Spacer } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nfunction Header({\n title\n}) {\n return /*#__PURE__*/_jsx(VStack, {\n className: \"dataforms-layouts__dropdown-header\",\n spacing: 4,\n children: /*#__PURE__*/_jsxs(HStack, {\n alignment: \"center\",\n children: [/*#__PURE__*/_jsx(Heading, {\n level: 2,\n size: 13,\n children: title\n }), /*#__PURE__*/_jsx(Spacer, {})]\n })\n });\n}\nfunction DataFormCombinedEdit({\n field,\n data,\n onChange,\n hideLabelFromVision\n}) {\n var _field$children;\n const className = 'dataforms-combined-edit';\n const visibleChildren = ((_field$children = field.children) !== null && _field$children !== void 0 ? _field$children : []).map(fieldId => field.fields.find(({\n id\n }) => id === fieldId)).filter(childField => !!childField);\n const children = visibleChildren.map(child => {\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"dataforms-combined-edit__field\",\n children: /*#__PURE__*/_jsx(child.Edit, {\n data: data,\n field: child,\n onChange: onChange\n })\n }, child.id);\n });\n const Stack = field.direction === 'horizontal' ? HStack : VStack;\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [!hideLabelFromVision && /*#__PURE__*/_jsx(Header, {\n title: field.label\n }), /*#__PURE__*/_jsx(Stack, {\n spacing: 4,\n className: className,\n as: \"fieldset\",\n children: children\n })]\n });\n}\nexport default DataFormCombinedEdit;\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { Button, CheckboxControl, __experimentalHStack as HStack } from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useMemo, useState, useRef, useContext } from '@wordpress/element';\nimport { useRegistry } from '@wordpress/data';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { ActionWithModal } from '../dataviews-item-actions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function useHasAPossibleBulkAction(actions, item) {\n return useMemo(() => {\n return actions.some(action => {\n return action.supportsBulk && (!action.isEligible || action.isEligible(item));\n });\n }, [actions, item]);\n}\nexport function useSomeItemHasAPossibleBulkAction(actions, data) {\n return useMemo(() => {\n return data.some(item => {\n return actions.some(action => {\n return action.supportsBulk && (!action.isEligible || action.isEligible(item));\n });\n });\n }, [actions, data]);\n}\nexport function BulkSelectionCheckbox({\n selection,\n onChangeSelection,\n data,\n actions,\n getItemId\n}) {\n const selectableItems = useMemo(() => {\n return data.filter(item => {\n return actions.some(action => action.supportsBulk && (!action.isEligible || action.isEligible(item)));\n });\n }, [data, actions]);\n const selectedItems = data.filter(item => selection.includes(getItemId(item)) && selectableItems.includes(item));\n const areAllSelected = selectedItems.length === selectableItems.length;\n return /*#__PURE__*/_jsx(CheckboxControl, {\n className: \"dataviews-view-table-selection-checkbox\",\n __nextHasNoMarginBottom: true,\n checked: areAllSelected,\n indeterminate: !areAllSelected && !!selectedItems.length,\n onChange: () => {\n if (areAllSelected) {\n onChangeSelection([]);\n } else {\n onChangeSelection(selectableItems.map(item => getItemId(item)));\n }\n },\n \"aria-label\": areAllSelected ? __('Deselect all') : __('Select all')\n });\n}\nfunction ActionTrigger({\n action,\n onClick,\n isBusy,\n items\n}) {\n const label = typeof action.label === 'string' ? action.label : action.label(items);\n return /*#__PURE__*/_jsx(Button, {\n disabled: isBusy,\n accessibleWhenDisabled: true,\n label: label,\n icon: action.icon,\n isDestructive: action.isDestructive,\n size: \"compact\",\n onClick: onClick,\n isBusy: isBusy,\n tooltipPosition: \"top\"\n });\n}\nconst EMPTY_ARRAY = [];\nfunction ActionButton({\n action,\n selectedItems,\n actionInProgress,\n setActionInProgress\n}) {\n const registry = useRegistry();\n const selectedEligibleItems = useMemo(() => {\n return selectedItems.filter(item => {\n return !action.isEligible || action.isEligible(item);\n });\n }, [action, selectedItems]);\n if ('RenderModal' in action) {\n return /*#__PURE__*/_jsx(ActionWithModal, {\n action: action,\n items: selectedEligibleItems,\n ActionTrigger: ActionTrigger\n }, action.id);\n }\n return /*#__PURE__*/_jsx(ActionTrigger, {\n action: action,\n onClick: async () => {\n setActionInProgress(action.id);\n await action.callback(selectedItems, {\n registry\n });\n setActionInProgress(null);\n },\n items: selectedEligibleItems,\n isBusy: actionInProgress === action.id\n }, action.id);\n}\nfunction renderFooterContent(data, actions, getItemId, selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onChangeSelection) {\n const message = selectedItems.length > 0 ? sprintf( /* translators: %d: number of items. */\n _n('%d Item selected', '%d Items selected', selectedItems.length), selectedItems.length) : sprintf( /* translators: %d: number of items. */\n _n('%d Item', '%d Items', data.length), data.length);\n return /*#__PURE__*/_jsxs(HStack, {\n expanded: false,\n className: \"dataviews-bulk-actions-footer__container\",\n spacing: 3,\n children: [/*#__PURE__*/_jsx(BulkSelectionCheckbox, {\n selection: selection,\n onChangeSelection: onChangeSelection,\n data: data,\n actions: actions,\n getItemId: getItemId\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-bulk-actions-footer__item-count\",\n children: message\n }), /*#__PURE__*/_jsxs(HStack, {\n className: \"dataviews-bulk-actions-footer__action-buttons\",\n expanded: false,\n spacing: 1,\n children: [actionsToShow.map(action => {\n return /*#__PURE__*/_jsx(ActionButton, {\n action: action,\n selectedItems: selectedItems,\n actionInProgress: actionInProgress,\n setActionInProgress: setActionInProgress\n }, action.id);\n }), selectedItems.length > 0 && /*#__PURE__*/_jsx(Button, {\n icon: closeSmall,\n showTooltip: true,\n tooltipPosition: \"top\",\n size: \"compact\",\n label: __('Cancel'),\n disabled: !!actionInProgress,\n accessibleWhenDisabled: false,\n onClick: () => {\n onChangeSelection(EMPTY_ARRAY);\n }\n })]\n })]\n });\n}\nfunction FooterContent({\n selection,\n actions,\n onChangeSelection,\n data,\n getItemId\n}) {\n const [actionInProgress, setActionInProgress] = useState(null);\n const footerContent = useRef(null);\n const bulkActions = useMemo(() => actions.filter(action => action.supportsBulk), [actions]);\n const selectableItems = useMemo(() => {\n return data.filter(item => {\n return bulkActions.some(action => !action.isEligible || action.isEligible(item));\n });\n }, [data, bulkActions]);\n const selectedItems = useMemo(() => {\n return data.filter(item => selection.includes(getItemId(item)) && selectableItems.includes(item));\n }, [selection, data, getItemId, selectableItems]);\n const actionsToShow = useMemo(() => actions.filter(action => {\n return action.supportsBulk && action.icon && selectedItems.some(item => !action.isEligible || action.isEligible(item));\n }), [actions, selectedItems]);\n if (!actionInProgress) {\n if (footerContent.current) {\n footerContent.current = null;\n }\n return renderFooterContent(data, actions, getItemId, selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onChangeSelection);\n } else if (!footerContent.current) {\n footerContent.current = renderFooterContent(data, actions, getItemId, selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onChangeSelection);\n }\n return footerContent.current;\n}\nexport function BulkActionsFooter() {\n const {\n data,\n selection,\n actions = EMPTY_ARRAY,\n onChangeSelection,\n getItemId\n } = useContext(DataViewsContext);\n return /*#__PURE__*/_jsx(FooterContent, {\n selection: selection,\n onChangeSelection: onChangeSelection,\n data: data,\n actions: actions,\n getItemId: getItemId\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport { LAYOUT_TABLE } from '../../constants';\nconst DataViewsContext = createContext({\n view: {\n type: LAYOUT_TABLE\n },\n onChangeView: () => {},\n fields: [],\n data: [],\n paginationInfo: {\n totalItems: 0,\n totalPages: 0\n },\n selection: [],\n onChangeSelection: () => {},\n setOpenedFilter: () => {},\n openedFilter: null,\n getItemId: item => item.id,\n density: 0\n});\nexport default DataViewsContext;\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst {\n DropdownMenuV2\n} = unlock(componentsPrivateApis);\nexport function AddFilterDropdownMenu({\n filters,\n view,\n onChangeView,\n setOpenedFilter,\n trigger\n}) {\n const inactiveFilters = filters.filter(filter => !filter.isVisible);\n return /*#__PURE__*/_jsx(DropdownMenuV2, {\n trigger: trigger,\n children: inactiveFilters.map(filter => {\n return /*#__PURE__*/_jsx(DropdownMenuV2.Item, {\n onClick: () => {\n setOpenedFilter(filter.field);\n onChangeView({\n ...view,\n page: 1,\n filters: [...(view.filters || []), {\n field: filter.field,\n value: undefined,\n operator: filter.operators[0]\n }]\n });\n },\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: filter.name\n })\n }, filter.field);\n })\n });\n}\nfunction AddFilter({\n filters,\n view,\n onChangeView,\n setOpenedFilter\n}, ref) {\n if (!filters.length || filters.every(({\n isPrimary\n }) => isPrimary)) {\n return null;\n }\n const inactiveFilters = filters.filter(filter => !filter.isVisible);\n return /*#__PURE__*/_jsx(AddFilterDropdownMenu, {\n trigger: /*#__PURE__*/_jsx(Button, {\n accessibleWhenDisabled: true,\n size: \"compact\",\n className: \"dataviews-filters-button\",\n variant: \"tertiary\",\n disabled: !inactiveFilters.length,\n ref: ref,\n children: __('Add filter')\n }),\n filters,\n view,\n onChangeView,\n setOpenedFilter\n });\n}\nexport default forwardRef(AddFilter);\n//# sourceMappingURL=add-filter.js.map","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { Dropdown, __experimentalVStack as VStack, __experimentalHStack as HStack, FlexItem, SelectControl, Tooltip, Icon } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef, createInterpolateElement } from '@wordpress/element';\nimport { closeSmall } from '@wordpress/icons';\nconst ENTER = 'Enter';\nconst SPACE = ' ';\n\n/**\n * Internal dependencies\n */\nimport SearchWidget from './search-widget';\nimport { OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_ANY, OPERATOR_IS_NONE, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL } from '../../constants';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FilterText = ({\n activeElements,\n filterInView,\n filter\n}) => {\n if (activeElements === undefined || activeElements.length === 0) {\n return filter.name;\n }\n const filterTextWrappers = {\n Name: /*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-filters__summary-filter-text-name\"\n }),\n Value: /*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-filters__summary-filter-text-value\"\n })\n };\n if (filterInView?.operator === OPERATOR_IS_ANY) {\n return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is any: Admin, Editor\". */\n __('%1$s is any: %2$s'), filter.name, activeElements.map(element => element.label).join(', ')), filterTextWrappers);\n }\n if (filterInView?.operator === OPERATOR_IS_NONE) {\n return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is none: Admin, Editor\". */\n __('%1$s is none: %2$s'), filter.name, activeElements.map(element => element.label).join(', ')), filterTextWrappers);\n }\n if (filterInView?.operator === OPERATOR_IS_ALL) {\n return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is all: Admin, Editor\". */\n __('%1$s is all: %2$s'), filter.name, activeElements.map(element => element.label).join(', ')), filterTextWrappers);\n }\n if (filterInView?.operator === OPERATOR_IS_NOT_ALL) {\n return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is not all: Admin, Editor\". */\n __('%1$s is not all: %2$s'), filter.name, activeElements.map(element => element.label).join(', ')), filterTextWrappers);\n }\n if (filterInView?.operator === OPERATOR_IS) {\n return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is: Admin\". */\n __('%1$s is: %2$s'), filter.name, activeElements[0].label), filterTextWrappers);\n }\n if (filterInView?.operator === OPERATOR_IS_NOT) {\n return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is not: Admin\". */\n __('%1$s is not: %2$s'), filter.name, activeElements[0].label), filterTextWrappers);\n }\n return sprintf( /* translators: 1: Filter name e.g.: \"Unknown status for Author\". */\n __('Unknown status for %1$s'), filter.name);\n};\nfunction OperatorSelector({\n filter,\n view,\n onChangeView\n}) {\n const operatorOptions = filter.operators?.map(operator => ({\n value: operator,\n label: OPERATORS[operator]?.label\n }));\n const currentFilter = view.filters?.find(_filter => _filter.field === filter.field);\n const value = currentFilter?.operator || filter.operators[0];\n return operatorOptions.length > 1 && /*#__PURE__*/_jsxs(HStack, {\n spacing: 2,\n justify: \"flex-start\",\n className: \"dataviews-filters__summary-operators-container\",\n children: [/*#__PURE__*/_jsx(FlexItem, {\n className: \"dataviews-filters__summary-operators-filter-name\",\n children: filter.name\n }), /*#__PURE__*/_jsx(SelectControl, {\n label: __('Conditions'),\n value: value,\n options: operatorOptions,\n onChange: newValue => {\n var _view$filters, _view$filters2;\n const operator = newValue;\n const newFilters = currentFilter ? [...((_view$filters = view.filters) !== null && _view$filters !== void 0 ? _view$filters : []).map(_filter => {\n if (_filter.field === filter.field) {\n return {\n ..._filter,\n operator\n };\n }\n return _filter;\n })] : [...((_view$filters2 = view.filters) !== null && _view$filters2 !== void 0 ? _view$filters2 : []), {\n field: filter.field,\n operator,\n value: undefined\n }];\n onChangeView({\n ...view,\n page: 1,\n filters: newFilters\n });\n },\n size: \"small\",\n __nextHasNoMarginBottom: true,\n hideLabelFromVision: true\n })]\n });\n}\nexport default function FilterSummary({\n addFilterRef,\n openedFilter,\n ...commonProps\n}) {\n const toggleRef = useRef(null);\n const {\n filter,\n view,\n onChangeView\n } = commonProps;\n const filterInView = view.filters?.find(f => f.field === filter.field);\n const activeElements = filter.elements.filter(element => {\n if (filter.singleSelection) {\n return element.value === filterInView?.value;\n }\n return filterInView?.value?.includes(element.value);\n });\n const isPrimary = filter.isPrimary;\n const hasValues = filterInView?.value !== undefined;\n const canResetOrRemove = !isPrimary || hasValues;\n return /*#__PURE__*/_jsx(Dropdown, {\n defaultOpen: openedFilter === filter.field,\n contentClassName: \"dataviews-filters__summary-popover\",\n popoverProps: {\n placement: 'bottom-start',\n role: 'dialog'\n },\n onClose: () => {\n toggleRef.current?.focus();\n },\n renderToggle: ({\n isOpen,\n onToggle\n }) => /*#__PURE__*/_jsxs(\"div\", {\n className: \"dataviews-filters__summary-chip-container\",\n children: [/*#__PURE__*/_jsx(Tooltip, {\n text: sprintf( /* translators: 1: Filter name. */\n __('Filter by: %1$s'), filter.name.toLowerCase()),\n placement: \"top\",\n children: /*#__PURE__*/_jsx(\"div\", {\n className: clsx('dataviews-filters__summary-chip', {\n 'has-reset': canResetOrRemove,\n 'has-values': hasValues\n }),\n role: \"button\",\n tabIndex: 0,\n onClick: onToggle,\n onKeyDown: event => {\n if ([ENTER, SPACE].includes(event.key)) {\n onToggle();\n event.preventDefault();\n }\n },\n \"aria-pressed\": isOpen,\n \"aria-expanded\": isOpen,\n ref: toggleRef,\n children: /*#__PURE__*/_jsx(FilterText, {\n activeElements: activeElements,\n filterInView: filterInView,\n filter: filter\n })\n })\n }), canResetOrRemove && /*#__PURE__*/_jsx(Tooltip, {\n text: isPrimary ? __('Reset') : __('Remove'),\n placement: \"top\",\n children: /*#__PURE__*/_jsx(\"button\", {\n className: clsx('dataviews-filters__summary-chip-remove', {\n 'has-values': hasValues\n }),\n onClick: () => {\n onChangeView({\n ...view,\n page: 1,\n filters: view.filters?.filter(_filter => _filter.field !== filter.field)\n });\n // If the filter is not primary and can be removed, it will be added\n // back to the available filters from `Add filter` component.\n if (!isPrimary) {\n addFilterRef.current?.focus();\n } else {\n // If is primary, focus the toggle button.\n toggleRef.current?.focus();\n }\n },\n children: /*#__PURE__*/_jsx(Icon, {\n icon: closeSmall\n })\n })\n })]\n }),\n renderContent: () => {\n return /*#__PURE__*/_jsxs(VStack, {\n spacing: 0,\n justify: \"flex-start\",\n children: [/*#__PURE__*/_jsx(OperatorSelector, {\n ...commonProps\n }), /*#__PURE__*/_jsx(SearchWidget, {\n ...commonProps\n })]\n });\n }\n });\n}\n//# sourceMappingURL=filter-summary.js.map","/**\n * WordPress dependencies\n */\nimport { memo, useContext, useRef, useMemo, useCallback } from '@wordpress/element';\nimport { __experimentalHStack as HStack, Button } from '@wordpress/components';\nimport { funnel } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport FilterSummary from './filter-summary';\nimport { default as AddFilter, AddFilterDropdownMenu } from './add-filter';\nimport ResetFilters from './reset-filters';\nimport DataViewsContext from '../dataviews-context';\nimport { sanitizeOperators } from '../../utils';\nimport { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from '../../constants';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function useFilters(fields, view) {\n return useMemo(() => {\n const filters = [];\n fields.forEach(field => {\n if (!field.elements?.length) {\n return;\n }\n const operators = sanitizeOperators(field);\n if (operators.length === 0) {\n return;\n }\n const isPrimary = !!field.filterBy?.isPrimary;\n filters.push({\n field: field.id,\n name: field.label,\n elements: field.elements,\n singleSelection: operators.some(op => [OPERATOR_IS, OPERATOR_IS_NOT].includes(op)),\n operators,\n isVisible: isPrimary || !!view.filters?.some(f => f.field === field.id && ALL_OPERATORS.includes(f.operator)),\n isPrimary\n });\n });\n // Sort filters by primary property. We need the primary filters to be first.\n // Then we sort by name.\n filters.sort((a, b) => {\n if (a.isPrimary && !b.isPrimary) {\n return -1;\n }\n if (!a.isPrimary && b.isPrimary) {\n return 1;\n }\n return a.name.localeCompare(b.name);\n });\n return filters;\n }, [fields, view]);\n}\nexport function FilterVisibilityToggle({\n filters,\n view,\n onChangeView,\n setOpenedFilter,\n isShowingFilter,\n setIsShowingFilter\n}) {\n const onChangeViewWithFilterVisibility = useCallback(_view => {\n onChangeView(_view);\n setIsShowingFilter(true);\n }, [onChangeView, setIsShowingFilter]);\n const visibleFilters = filters.filter(filter => filter.isVisible);\n const hasVisibleFilters = !!visibleFilters.length;\n if (filters.length === 0) {\n return null;\n }\n if (!hasVisibleFilters) {\n return /*#__PURE__*/_jsx(AddFilterDropdownMenu, {\n filters: filters,\n view: view,\n onChangeView: onChangeViewWithFilterVisibility,\n setOpenedFilter: setOpenedFilter,\n trigger: /*#__PURE__*/_jsx(Button, {\n className: \"dataviews-filters__visibility-toggle\",\n size: \"compact\",\n icon: funnel,\n label: __('Add filter'),\n isPressed: false,\n \"aria-expanded\": false\n })\n });\n }\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"dataviews-filters__container-visibility-toggle\",\n children: [/*#__PURE__*/_jsx(Button, {\n className: \"dataviews-filters__visibility-toggle\",\n size: \"compact\",\n icon: funnel,\n label: __('Toggle filter display'),\n onClick: () => {\n if (!isShowingFilter) {\n setOpenedFilter(null);\n }\n setIsShowingFilter(!isShowingFilter);\n },\n isPressed: isShowingFilter,\n \"aria-expanded\": isShowingFilter\n }), hasVisibleFilters && !!view.filters?.length && /*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-filters-toggle__count\",\n children: view.filters?.length\n })]\n });\n}\nfunction Filters() {\n const {\n fields,\n view,\n onChangeView,\n openedFilter,\n setOpenedFilter\n } = useContext(DataViewsContext);\n const addFilterRef = useRef(null);\n const filters = useFilters(fields, view);\n const addFilter = /*#__PURE__*/_jsx(AddFilter, {\n filters: filters,\n view: view,\n onChangeView: onChangeView,\n ref: addFilterRef,\n setOpenedFilter: setOpenedFilter\n }, \"add-filter\");\n const visibleFilters = filters.filter(filter => filter.isVisible);\n if (visibleFilters.length === 0) {\n return null;\n }\n const filterComponents = [...visibleFilters.map(filter => {\n return /*#__PURE__*/_jsx(FilterSummary, {\n filter: filter,\n view: view,\n onChangeView: onChangeView,\n addFilterRef: addFilterRef,\n openedFilter: openedFilter\n }, filter.field);\n }), addFilter];\n filterComponents.push( /*#__PURE__*/_jsx(ResetFilters, {\n filters: filters,\n view: view,\n onChangeView: onChangeView\n }, \"reset-filters\"));\n return /*#__PURE__*/_jsx(HStack, {\n justify: \"flex-start\",\n style: {\n width: 'fit-content'\n },\n className: \"dataviews-filters__container\",\n wrap: true,\n children: filterComponents\n });\n}\nexport default memo(Filters);\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function ResetFilter({\n filters,\n view,\n onChangeView\n}) {\n const isPrimary = field => filters.some(_filter => _filter.field === field && _filter.isPrimary);\n const isDisabled = !view.search && !view.filters?.some(_filter => _filter.value !== undefined || !isPrimary(_filter.field));\n return /*#__PURE__*/_jsx(Button, {\n disabled: isDisabled,\n accessibleWhenDisabled: true,\n size: \"compact\",\n variant: \"tertiary\",\n className: \"dataviews-filters__reset-button\",\n onClick: () => {\n onChangeView({\n ...view,\n page: 1,\n search: '',\n filters: []\n });\n },\n children: __('Reset')\n });\n}\n//# sourceMappingURL=reset-filters.js.map","/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport * as Ariakit from '@ariakit/react';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState, useMemo, useDeferredValue } from '@wordpress/element';\nimport { VisuallyHidden, Icon, Composite } from '@wordpress/components';\nimport { search, check } from '@wordpress/icons';\nimport { SVG, Circle } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst radioCheck = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Circle, {\n cx: 12,\n cy: 12,\n r: 3\n })\n});\nfunction normalizeSearchInput(input = '') {\n return removeAccents(input.trim().toLowerCase());\n}\nconst EMPTY_ARRAY = [];\nconst getCurrentValue = (filterDefinition, currentFilter) => {\n if (filterDefinition.singleSelection) {\n return currentFilter?.value;\n }\n if (Array.isArray(currentFilter?.value)) {\n return currentFilter.value;\n }\n if (!Array.isArray(currentFilter?.value) && !!currentFilter?.value) {\n return [currentFilter.value];\n }\n return EMPTY_ARRAY;\n};\nconst getNewValue = (filterDefinition, currentFilter, value) => {\n if (filterDefinition.singleSelection) {\n return value;\n }\n if (Array.isArray(currentFilter?.value)) {\n return currentFilter.value.includes(value) ? currentFilter.value.filter(v => v !== value) : [...currentFilter.value, value];\n }\n return [value];\n};\nfunction generateFilterElementCompositeItemId(prefix, filterElementValue) {\n return `${prefix}-${filterElementValue}`;\n}\nfunction ListBox({\n view,\n filter,\n onChangeView\n}) {\n const baseId = useInstanceId(ListBox, 'dataviews-filter-list-box');\n const [activeCompositeId, setActiveCompositeId] = useState(\n // When there are one or less operators, the first item is set as active\n // (by setting the initial `activeId` to `undefined`).\n // With 2 or more operators, the focus is moved on the operators control\n // (by setting the initial `activeId` to `null`), meaning that there won't\n // be an active item initially. Focus is then managed via the\n // `onFocusVisible` callback.\n filter.operators?.length === 1 ? undefined : null);\n const currentFilter = view.filters?.find(f => f.field === filter.field);\n const currentValue = getCurrentValue(filter, currentFilter);\n return /*#__PURE__*/_jsx(Composite, {\n virtualFocus: true,\n focusLoop: true,\n activeId: activeCompositeId,\n setActiveId: setActiveCompositeId,\n role: \"listbox\",\n className: \"dataviews-filters__search-widget-listbox\",\n \"aria-label\": sprintf( /* translators: List of items for a filter. 1: Filter name. e.g.: \"List of: Author\". */\n __('List of: %1$s'), filter.name),\n onFocusVisible: () => {\n // `onFocusVisible` needs the `Composite` component to be focusable,\n // which is implicitly achieved via the `virtualFocus` prop.\n if (!activeCompositeId && filter.elements.length) {\n setActiveCompositeId(generateFilterElementCompositeItemId(baseId, filter.elements[0].value));\n }\n },\n render: /*#__PURE__*/_jsx(Composite.Typeahead, {}),\n children: filter.elements.map(element => /*#__PURE__*/_jsxs(Composite.Hover, {\n render: /*#__PURE__*/_jsx(Composite.Item, {\n id: generateFilterElementCompositeItemId(baseId, element.value),\n render: /*#__PURE__*/_jsx(\"div\", {\n \"aria-label\": element.label,\n role: \"option\",\n className: \"dataviews-filters__search-widget-listitem\"\n }),\n onClick: () => {\n var _view$filters, _view$filters2;\n const newFilters = currentFilter ? [...((_view$filters = view.filters) !== null && _view$filters !== void 0 ? _view$filters : []).map(_filter => {\n if (_filter.field === filter.field) {\n return {\n ..._filter,\n operator: currentFilter.operator || filter.operators[0],\n value: getNewValue(filter, currentFilter, element.value)\n };\n }\n return _filter;\n })] : [...((_view$filters2 = view.filters) !== null && _view$filters2 !== void 0 ? _view$filters2 : []), {\n field: filter.field,\n operator: filter.operators[0],\n value: getNewValue(filter, currentFilter, element.value)\n }];\n onChangeView({\n ...view,\n page: 1,\n filters: newFilters\n });\n }\n }),\n children: [/*#__PURE__*/_jsxs(\"span\", {\n className: \"dataviews-filters__search-widget-listitem-check\",\n children: [filter.singleSelection && currentValue === element.value && /*#__PURE__*/_jsx(Icon, {\n icon: radioCheck\n }), !filter.singleSelection && currentValue.includes(element.value) && /*#__PURE__*/_jsx(Icon, {\n icon: check\n })]\n }), /*#__PURE__*/_jsx(\"span\", {\n children: element.label\n })]\n }, element.value))\n });\n}\nfunction ComboboxList({\n view,\n filter,\n onChangeView\n}) {\n const [searchValue, setSearchValue] = useState('');\n const deferredSearchValue = useDeferredValue(searchValue);\n const currentFilter = view.filters?.find(_filter => _filter.field === filter.field);\n const currentValue = getCurrentValue(filter, currentFilter);\n const matches = useMemo(() => {\n const normalizedSearch = normalizeSearchInput(deferredSearchValue);\n return filter.elements.filter(item => normalizeSearchInput(item.label).includes(normalizedSearch));\n }, [filter.elements, deferredSearchValue]);\n return /*#__PURE__*/_jsxs(Ariakit.ComboboxProvider, {\n selectedValue: currentValue,\n setSelectedValue: value => {\n var _view$filters3, _view$filters4;\n const newFilters = currentFilter ? [...((_view$filters3 = view.filters) !== null && _view$filters3 !== void 0 ? _view$filters3 : []).map(_filter => {\n if (_filter.field === filter.field) {\n return {\n ..._filter,\n operator: currentFilter.operator || filter.operators[0],\n value\n };\n }\n return _filter;\n })] : [...((_view$filters4 = view.filters) !== null && _view$filters4 !== void 0 ? _view$filters4 : []), {\n field: filter.field,\n operator: filter.operators[0],\n value\n }];\n onChangeView({\n ...view,\n page: 1,\n filters: newFilters\n });\n },\n setValue: setSearchValue,\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: \"dataviews-filters__search-widget-filter-combobox__wrapper\",\n children: [/*#__PURE__*/_jsx(Ariakit.ComboboxLabel, {\n render: /*#__PURE__*/_jsx(VisuallyHidden, {\n children: __('Search items')\n }),\n children: __('Search items')\n }), /*#__PURE__*/_jsx(Ariakit.Combobox, {\n autoSelect: \"always\",\n placeholder: __('Search'),\n className: \"dataviews-filters__search-widget-filter-combobox__input\"\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"dataviews-filters__search-widget-filter-combobox__icon\",\n children: /*#__PURE__*/_jsx(Icon, {\n icon: search\n })\n })]\n }), /*#__PURE__*/_jsxs(Ariakit.ComboboxList, {\n className: \"dataviews-filters__search-widget-filter-combobox-list\",\n alwaysVisible: true,\n children: [matches.map(element => {\n return /*#__PURE__*/_jsxs(Ariakit.ComboboxItem, {\n resetValueOnSelect: false,\n value: element.value,\n className: \"dataviews-filters__search-widget-listitem\",\n hideOnClick: false,\n setValueOnClick: false,\n focusOnHover: true,\n children: [/*#__PURE__*/_jsxs(\"span\", {\n className: \"dataviews-filters__search-widget-listitem-check\",\n children: [filter.singleSelection && currentValue === element.value && /*#__PURE__*/_jsx(Icon, {\n icon: radioCheck\n }), !filter.singleSelection && currentValue.includes(element.value) && /*#__PURE__*/_jsx(Icon, {\n icon: check\n })]\n }), /*#__PURE__*/_jsxs(\"span\", {\n children: [/*#__PURE__*/_jsx(Ariakit.ComboboxItemValue, {\n className: \"dataviews-filters__search-widget-filter-combobox-item-value\",\n value: element.label\n }), !!element.description && /*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-filters__search-widget-listitem-description\",\n children: element.description\n })]\n })]\n }, element.value);\n }), !matches.length && /*#__PURE__*/_jsx(\"p\", {\n children: __('No results found')\n })]\n })]\n });\n}\nexport default function SearchWidget(props) {\n const Widget = props.filter.elements.length > 10 ? ComboboxList : ListBox;\n return /*#__PURE__*/_jsx(Widget, {\n ...props\n });\n}\n//# sourceMappingURL=search-widget.js.map","/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport DataViewsPagination from '../dataviews-pagination';\nimport { BulkActionsFooter, useSomeItemHasAPossibleBulkAction } from '../dataviews-bulk-actions';\nimport { LAYOUT_GRID, LAYOUT_TABLE } from '../../constants';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst EMPTY_ARRAY = [];\nexport default function DataViewsFooter() {\n const {\n view,\n paginationInfo: {\n totalItems = 0,\n totalPages\n },\n data,\n actions = EMPTY_ARRAY\n } = useContext(DataViewsContext);\n const hasBulkActions = useSomeItemHasAPossibleBulkAction(actions, data) && [LAYOUT_TABLE, LAYOUT_GRID].includes(view.type);\n if (!totalItems || !totalPages || totalPages <= 1 && !hasBulkActions) {\n return null;\n }\n return !!totalItems && /*#__PURE__*/_jsxs(HStack, {\n expanded: false,\n justify: \"end\",\n className: \"dataviews-footer\",\n children: [hasBulkActions && /*#__PURE__*/_jsx(BulkActionsFooter, {}), /*#__PURE__*/_jsx(DataViewsPagination, {})]\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { Button, Modal, __experimentalHStack as HStack, privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { moreVertical } from '@wordpress/icons';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst {\n DropdownMenuV2,\n kebabCase\n} = unlock(componentsPrivateApis);\nfunction ButtonTrigger({\n action,\n onClick,\n items\n}) {\n const label = typeof action.label === 'string' ? action.label : action.label(items);\n return /*#__PURE__*/_jsx(Button, {\n label: label,\n icon: action.icon,\n isDestructive: action.isDestructive,\n size: \"compact\",\n onClick: onClick\n });\n}\nfunction DropdownMenuItemTrigger({\n action,\n onClick,\n items\n}) {\n const label = typeof action.label === 'string' ? action.label : action.label(items);\n return /*#__PURE__*/_jsx(DropdownMenuV2.Item, {\n onClick: onClick,\n hideOnClick: !('RenderModal' in action),\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: label\n })\n });\n}\nexport function ActionModal({\n action,\n items,\n closeModal\n}) {\n const label = typeof action.label === 'string' ? action.label : action.label(items);\n return /*#__PURE__*/_jsx(Modal, {\n title: action.modalHeader || label,\n __experimentalHideHeader: !!action.hideModalHeader,\n onRequestClose: closeModal !== null && closeModal !== void 0 ? closeModal : () => {},\n focusOnMount: \"firstContentElement\",\n size: \"small\",\n overlayClassName: `dataviews-action-modal dataviews-action-modal__${kebabCase(action.id)}`,\n children: /*#__PURE__*/_jsx(action.RenderModal, {\n items: items,\n closeModal: closeModal\n })\n });\n}\nexport function ActionWithModal({\n action,\n items,\n ActionTrigger,\n isBusy\n}) {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const actionTriggerProps = {\n action,\n onClick: () => {\n setIsModalOpen(true);\n },\n items,\n isBusy\n };\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(ActionTrigger, {\n ...actionTriggerProps\n }), isModalOpen && /*#__PURE__*/_jsx(ActionModal, {\n action: action,\n items: items,\n closeModal: () => setIsModalOpen(false)\n })]\n });\n}\nexport function ActionsDropdownMenuGroup({\n actions,\n item\n}) {\n const registry = useRegistry();\n return /*#__PURE__*/_jsx(DropdownMenuV2.Group, {\n children: actions.map(action => {\n if ('RenderModal' in action) {\n return /*#__PURE__*/_jsx(ActionWithModal, {\n action: action,\n items: [item],\n ActionTrigger: DropdownMenuItemTrigger\n }, action.id);\n }\n return /*#__PURE__*/_jsx(DropdownMenuItemTrigger, {\n action: action,\n onClick: () => {\n action.callback([item], {\n registry\n });\n },\n items: [item]\n }, action.id);\n })\n });\n}\nexport default function ItemActions({\n item,\n actions,\n isCompact\n}) {\n const registry = useRegistry();\n const {\n primaryActions,\n eligibleActions\n } = useMemo(() => {\n // If an action is eligible for all items, doesn't need\n // to provide the `isEligible` function.\n const _eligibleActions = actions.filter(action => !action.isEligible || action.isEligible(item));\n const _primaryActions = _eligibleActions.filter(action => action.isPrimary && !!action.icon);\n return {\n primaryActions: _primaryActions,\n eligibleActions: _eligibleActions\n };\n }, [actions, item]);\n if (isCompact) {\n return /*#__PURE__*/_jsx(CompactItemActions, {\n item: item,\n actions: eligibleActions\n });\n }\n return /*#__PURE__*/_jsxs(HStack, {\n spacing: 1,\n justify: \"flex-end\",\n className: \"dataviews-item-actions\",\n style: {\n flexShrink: '0',\n width: 'auto'\n },\n children: [!!primaryActions.length && primaryActions.map(action => {\n if ('RenderModal' in action) {\n return /*#__PURE__*/_jsx(ActionWithModal, {\n action: action,\n items: [item],\n ActionTrigger: ButtonTrigger\n }, action.id);\n }\n return /*#__PURE__*/_jsx(ButtonTrigger, {\n action: action,\n onClick: () => {\n action.callback([item], {\n registry\n });\n },\n items: [item]\n }, action.id);\n }), /*#__PURE__*/_jsx(CompactItemActions, {\n item: item,\n actions: eligibleActions\n })]\n });\n}\nfunction CompactItemActions({\n item,\n actions\n}) {\n return /*#__PURE__*/_jsx(DropdownMenuV2, {\n trigger: /*#__PURE__*/_jsx(Button, {\n size: \"compact\",\n icon: moreVertical,\n label: __('Actions'),\n accessibleWhenDisabled: true,\n disabled: !actions.length,\n className: \"dataviews-all-actions-button\"\n }),\n placement: \"bottom-end\",\n children: /*#__PURE__*/_jsx(ActionsDropdownMenuGroup, {\n actions: actions,\n item: item\n })\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function DataViewsLayout() {\n const {\n actions = [],\n data,\n fields,\n getItemId,\n isLoading,\n view,\n onChangeView,\n selection,\n onChangeSelection,\n setOpenedFilter,\n density\n } = useContext(DataViewsContext);\n const ViewComponent = VIEW_LAYOUTS.find(v => v.type === view.type)?.component;\n return /*#__PURE__*/_jsx(ViewComponent, {\n actions: actions,\n data: data,\n fields: fields,\n getItemId: getItemId,\n isLoading: isLoading,\n onChangeView: onChangeView,\n onChangeSelection: onChangeSelection,\n selection: selection,\n setOpenedFilter: setOpenedFilter,\n view: view,\n density: density\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { Button, __experimentalHStack as HStack, SelectControl } from '@wordpress/components';\nimport { createInterpolateElement, memo, useContext } from '@wordpress/element';\nimport { sprintf, __, _x, isRTL } from '@wordpress/i18n';\nimport { next, previous } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction DataViewsPagination() {\n var _view$page;\n const {\n view,\n onChangeView,\n paginationInfo: {\n totalItems = 0,\n totalPages\n }\n } = useContext(DataViewsContext);\n if (!totalItems || !totalPages) {\n return null;\n }\n const currentPage = (_view$page = view.page) !== null && _view$page !== void 0 ? _view$page : 1;\n const pageSelectOptions = Array.from(Array(totalPages)).map((_, i) => {\n const page = i + 1;\n return {\n value: page.toString(),\n label: page.toString(),\n 'aria-label': currentPage === page ? sprintf(\n // translators: Current page number in total number of pages\n __('Page %1$s of %2$s'), currentPage, totalPages) : page.toString()\n };\n });\n return !!totalItems && totalPages !== 1 && /*#__PURE__*/_jsxs(HStack, {\n expanded: false,\n className: \"dataviews-pagination\",\n justify: \"end\",\n spacing: 6,\n children: [/*#__PURE__*/_jsx(HStack, {\n justify: \"flex-start\",\n expanded: false,\n spacing: 1,\n className: \"dataviews-pagination__page-select\",\n children: createInterpolateElement(sprintf(\n // translators: 1: Current page number, 2: Total number of pages.\n _x('
Page
%1$s
of %2$s
', 'paging'), '', totalPages), {\n div: /*#__PURE__*/_jsx(\"div\", {\n \"aria-hidden\": true\n }),\n CurrentPage: /*#__PURE__*/_jsx(SelectControl, {\n \"aria-label\": __('Current page'),\n value: currentPage.toString(),\n options: pageSelectOptions,\n onChange: newValue => {\n onChangeView({\n ...view,\n page: +newValue\n });\n },\n size: \"small\",\n __nextHasNoMarginBottom: true,\n variant: \"minimal\"\n })\n })\n }), /*#__PURE__*/_jsxs(HStack, {\n expanded: false,\n spacing: 1,\n children: [/*#__PURE__*/_jsx(Button, {\n onClick: () => onChangeView({\n ...view,\n page: currentPage - 1\n }),\n disabled: currentPage === 1,\n accessibleWhenDisabled: true,\n label: __('Previous page'),\n icon: isRTL() ? next : previous,\n showTooltip: true,\n size: \"compact\",\n tooltipPosition: \"top\"\n }), /*#__PURE__*/_jsx(Button, {\n onClick: () => onChangeView({\n ...view,\n page: currentPage + 1\n }),\n disabled: currentPage >= totalPages,\n accessibleWhenDisabled: true,\n label: __('Next page'),\n icon: isRTL() ? previous : next,\n showTooltip: true,\n size: \"compact\",\n tooltipPosition: \"top\"\n })]\n })]\n });\n}\nexport default memo(DataViewsPagination);\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef, memo, useContext } from '@wordpress/element';\nimport { SearchControl } from '@wordpress/components';\nimport { useDebouncedInput } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DataViewsSearch = memo(function Search({\n label\n}) {\n const {\n view,\n onChangeView\n } = useContext(DataViewsContext);\n const [search, setSearch, debouncedSearch] = useDebouncedInput(view.search);\n useEffect(() => {\n var _view$search;\n setSearch((_view$search = view.search) !== null && _view$search !== void 0 ? _view$search : '');\n }, [view.search, setSearch]);\n const onChangeViewRef = useRef(onChangeView);\n const viewRef = useRef(view);\n useEffect(() => {\n onChangeViewRef.current = onChangeView;\n viewRef.current = view;\n }, [onChangeView, view]);\n useEffect(() => {\n if (debouncedSearch !== viewRef.current?.search) {\n onChangeViewRef.current({\n ...viewRef.current,\n page: 1,\n search: debouncedSearch\n });\n }\n }, [debouncedSearch]);\n const searchLabel = label || __('Search');\n return /*#__PURE__*/_jsx(SearchControl, {\n className: \"dataviews-search\",\n __nextHasNoMarginBottom: true,\n onChange: setSearch,\n value: search,\n label: searchLabel,\n placeholder: searchLabel,\n size: \"compact\"\n });\n});\nexport default DataViewsSearch;\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function DataViewsSelectionCheckbox({\n selection,\n onChangeSelection,\n item,\n getItemId,\n primaryField,\n disabled\n}) {\n const id = getItemId(item);\n const checked = !disabled && selection.includes(id);\n let selectionLabel;\n if (primaryField?.getValue && item) {\n // eslint-disable-next-line @wordpress/valid-sprintf\n selectionLabel = sprintf( /* translators: %s: item title. */\n checked ? __('Deselect item: %s') : __('Select item: %s'), primaryField.getValue({\n item\n }));\n } else {\n selectionLabel = checked ? __('Select a new item') : __('Deselect item');\n }\n return /*#__PURE__*/_jsx(CheckboxControl, {\n className: \"dataviews-selection-checkbox\",\n __nextHasNoMarginBottom: true,\n \"aria-label\": selectionLabel,\n \"aria-disabled\": disabled,\n checked: checked,\n onChange: () => {\n if (disabled) {\n return;\n }\n onChangeSelection(selection.includes(id) ? selection.filter(itemId => id !== itemId) : [...selection, id]);\n }\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { Button, __experimentalDropdownContentWrapper as DropdownContentWrapper, Dropdown, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon, SelectControl, __experimentalItemGroup as ItemGroup, __experimentalItem as Item, __experimentalGrid as Grid, __experimentalVStack as VStack, __experimentalHStack as HStack, __experimentalHeading as Heading, __experimentalText as Text, privateApis as componentsPrivateApis, BaseControl } from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { memo, useContext, useMemo } from '@wordpress/element';\nimport { chevronDown, chevronUp, cog, seen, unseen } from '@wordpress/icons';\nimport warning from '@wordpress/warning';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { SORTING_DIRECTIONS, LAYOUT_GRID, LAYOUT_TABLE, sortIcons, sortLabels } from '../../constants';\nimport { VIEW_LAYOUTS, getNotHidableFieldIds, getVisibleFieldIds, getHiddenFieldIds } from '../../dataviews-layouts';\nimport DataViewsContext from '../dataviews-context';\nimport { unlock } from '../../lock-unlock';\nimport DensityPicker from '../../dataviews-layouts/grid/density-picker';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst {\n DropdownMenuV2\n} = unlock(componentsPrivateApis);\nconst DATAVIEWS_CONFIG_POPOVER_PROPS = {\n placement: 'bottom-end',\n offset: 9\n};\nfunction ViewTypeMenu({\n defaultLayouts = {\n list: {},\n grid: {},\n table: {}\n }\n}) {\n const {\n view,\n onChangeView\n } = useContext(DataViewsContext);\n const availableLayouts = Object.keys(defaultLayouts);\n if (availableLayouts.length <= 1) {\n return null;\n }\n const activeView = VIEW_LAYOUTS.find(v => view.type === v.type);\n return /*#__PURE__*/_jsx(DropdownMenuV2, {\n trigger: /*#__PURE__*/_jsx(Button, {\n size: \"compact\",\n icon: activeView?.icon,\n label: __('Layout')\n }),\n children: availableLayouts.map(layout => {\n const config = VIEW_LAYOUTS.find(v => v.type === layout);\n if (!config) {\n return null;\n }\n return /*#__PURE__*/_jsx(DropdownMenuV2.RadioItem, {\n value: layout,\n name: \"view-actions-available-view\",\n checked: layout === view.type,\n hideOnClick: true,\n onChange: e => {\n switch (e.target.value) {\n case 'list':\n case 'grid':\n case 'table':\n return onChangeView({\n ...view,\n type: e.target.value,\n ...defaultLayouts[e.target.value]\n });\n }\n globalThis.SCRIPT_DEBUG === true ? warning('Invalid dataview') : void 0;\n },\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: config.label\n })\n }, layout);\n })\n });\n}\nfunction SortFieldControl() {\n const {\n view,\n fields,\n onChangeView\n } = useContext(DataViewsContext);\n const orderOptions = useMemo(() => {\n const sortableFields = fields.filter(field => field.enableSorting !== false);\n return sortableFields.map(field => {\n return {\n label: field.label,\n value: field.id\n };\n });\n }, [fields]);\n return /*#__PURE__*/_jsx(SelectControl, {\n __nextHasNoMarginBottom: true,\n __next40pxDefaultSize: true,\n label: __('Sort by'),\n value: view.sort?.field,\n options: orderOptions,\n onChange: value => {\n onChangeView({\n ...view,\n sort: {\n direction: view?.sort?.direction || 'desc',\n field: value\n }\n });\n }\n });\n}\nfunction SortDirectionControl() {\n const {\n view,\n fields,\n onChangeView\n } = useContext(DataViewsContext);\n const sortableFields = fields.filter(field => field.enableSorting !== false);\n if (sortableFields.length === 0) {\n return null;\n }\n let value = view.sort?.direction;\n if (!value && view.sort?.field) {\n value = 'desc';\n }\n return /*#__PURE__*/_jsx(ToggleGroupControl, {\n className: \"dataviews-view-config__sort-direction\",\n __nextHasNoMarginBottom: true,\n __next40pxDefaultSize: true,\n isBlock: true,\n label: __('Order'),\n value: value,\n onChange: newDirection => {\n if (newDirection === 'asc' || newDirection === 'desc') {\n onChangeView({\n ...view,\n sort: {\n direction: newDirection,\n field: view.sort?.field ||\n // If there is no field assigned as the sorting field assign the first sortable field.\n fields.find(field => field.enableSorting !== false)?.id || ''\n }\n });\n return;\n }\n globalThis.SCRIPT_DEBUG === true ? warning('Invalid direction') : void 0;\n },\n children: SORTING_DIRECTIONS.map(direction => {\n return /*#__PURE__*/_jsx(ToggleGroupControlOptionIcon, {\n value: direction,\n icon: sortIcons[direction],\n label: sortLabels[direction]\n }, direction);\n })\n });\n}\nconst PAGE_SIZE_VALUES = [10, 20, 50, 100];\nfunction ItemsPerPageControl() {\n const {\n view,\n onChangeView\n } = useContext(DataViewsContext);\n return /*#__PURE__*/_jsx(ToggleGroupControl, {\n __nextHasNoMarginBottom: true,\n __next40pxDefaultSize: true,\n isBlock: true,\n label: __('Items per page'),\n value: view.perPage || 10,\n disabled: !view?.sort?.field,\n onChange: newItemsPerPage => {\n const newItemsPerPageNumber = typeof newItemsPerPage === 'number' || newItemsPerPage === undefined ? newItemsPerPage : parseInt(newItemsPerPage, 10);\n onChangeView({\n ...view,\n perPage: newItemsPerPageNumber,\n page: 1\n });\n },\n children: PAGE_SIZE_VALUES.map(value => {\n return /*#__PURE__*/_jsx(ToggleGroupControlOption, {\n value: value,\n label: value.toString()\n }, value);\n })\n });\n}\nfunction FieldItem({\n field: {\n id,\n label,\n index,\n isVisible,\n isHidable\n },\n fields,\n view,\n onChangeView\n}) {\n const visibleFieldIds = getVisibleFieldIds(view, fields);\n return /*#__PURE__*/_jsx(Item, {\n children: /*#__PURE__*/_jsxs(HStack, {\n expanded: true,\n className: `dataviews-field-control__field dataviews-field-control__field-${id}`,\n children: [/*#__PURE__*/_jsx(\"span\", {\n children: label\n }), /*#__PURE__*/_jsxs(HStack, {\n justify: \"flex-end\",\n expanded: false,\n className: \"dataviews-field-control__actions\",\n children: [view.type === LAYOUT_TABLE && isVisible && /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(Button, {\n disabled: index < 1,\n accessibleWhenDisabled: true,\n size: \"compact\",\n onClick: () => {\n var _visibleFieldIds$slic;\n onChangeView({\n ...view,\n fields: [...((_visibleFieldIds$slic = visibleFieldIds.slice(0, index - 1)) !== null && _visibleFieldIds$slic !== void 0 ? _visibleFieldIds$slic : []), id, visibleFieldIds[index - 1], ...visibleFieldIds.slice(index + 1)]\n });\n },\n icon: chevronUp,\n label: sprintf( /* translators: %s: field label */\n __('Move %s up'), label)\n }), /*#__PURE__*/_jsx(Button, {\n disabled: index >= visibleFieldIds.length - 1,\n accessibleWhenDisabled: true,\n size: \"compact\",\n onClick: () => {\n var _visibleFieldIds$slic2;\n onChangeView({\n ...view,\n fields: [...((_visibleFieldIds$slic2 = visibleFieldIds.slice(0, index)) !== null && _visibleFieldIds$slic2 !== void 0 ? _visibleFieldIds$slic2 : []), visibleFieldIds[index + 1], id, ...visibleFieldIds.slice(index + 2)]\n });\n },\n icon: chevronDown,\n label: sprintf( /* translators: %s: field label */\n __('Move %s down'), label)\n }), ' ']\n }), /*#__PURE__*/_jsx(Button, {\n className: \"dataviews-field-control__field-visibility-button\",\n disabled: !isHidable,\n accessibleWhenDisabled: true,\n size: \"compact\",\n onClick: () => {\n onChangeView({\n ...view,\n fields: isVisible ? visibleFieldIds.filter(fieldId => fieldId !== id) : [...visibleFieldIds, id]\n });\n // Focus the visibility button to avoid focus loss.\n // Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n // eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n setTimeout(() => {\n const element = document.querySelector(`.dataviews-field-control__field-${id} .dataviews-field-control__field-visibility-button`);\n if (element instanceof HTMLElement) {\n element.focus();\n }\n }, 50);\n },\n icon: isVisible ? seen : unseen,\n label: isVisible ? sprintf( /* translators: %s: field label */\n __('Hide %s'), label) : sprintf( /* translators: %s: field label */\n __('Show %s'), label)\n })]\n })]\n })\n }, id);\n}\nfunction FieldControl() {\n const {\n view,\n fields,\n onChangeView\n } = useContext(DataViewsContext);\n const visibleFieldIds = useMemo(() => getVisibleFieldIds(view, fields), [view, fields]);\n const hiddenFieldIds = useMemo(() => getHiddenFieldIds(view, fields), [view, fields]);\n const notHidableFieldIds = useMemo(() => getNotHidableFieldIds(view), [view]);\n const visibleFields = fields.filter(({\n id\n }) => visibleFieldIds.includes(id)).map(({\n id,\n label,\n enableHiding\n }) => {\n return {\n id,\n label,\n index: visibleFieldIds.indexOf(id),\n isVisible: true,\n isHidable: notHidableFieldIds.includes(id) ? false : enableHiding\n };\n });\n if (view.type === LAYOUT_TABLE && view.layout?.combinedFields) {\n view.layout.combinedFields.forEach(({\n id,\n label\n }) => {\n visibleFields.push({\n id,\n label,\n index: visibleFieldIds.indexOf(id),\n isVisible: true,\n isHidable: notHidableFieldIds.includes(id)\n });\n });\n }\n visibleFields.sort((a, b) => a.index - b.index);\n const hiddenFields = fields.filter(({\n id\n }) => hiddenFieldIds.includes(id)).map(({\n id,\n label,\n enableHiding\n }, index) => {\n return {\n id,\n label,\n index,\n isVisible: false,\n isHidable: enableHiding\n };\n });\n if (!visibleFields?.length && !hiddenFields?.length) {\n return null;\n }\n return /*#__PURE__*/_jsxs(VStack, {\n spacing: 6,\n className: \"dataviews-field-control\",\n children: [!!visibleFields?.length && /*#__PURE__*/_jsx(ItemGroup, {\n isBordered: true,\n isSeparated: true,\n children: visibleFields.map(field => /*#__PURE__*/_jsx(FieldItem, {\n field: field,\n fields: fields,\n view: view,\n onChangeView: onChangeView\n }, field.id))\n }), !!hiddenFields?.length && /*#__PURE__*/_jsx(_Fragment, {\n children: /*#__PURE__*/_jsxs(VStack, {\n spacing: 4,\n children: [/*#__PURE__*/_jsx(BaseControl.VisualLabel, {\n style: {\n margin: 0\n },\n children: __('Hidden')\n }), /*#__PURE__*/_jsx(ItemGroup, {\n isBordered: true,\n isSeparated: true,\n children: hiddenFields.map(field => /*#__PURE__*/_jsx(FieldItem, {\n field: field,\n fields: fields,\n view: view,\n onChangeView: onChangeView\n }, field.id))\n })]\n })\n })]\n });\n}\nfunction SettingsSection({\n title,\n description,\n children\n}) {\n return /*#__PURE__*/_jsxs(Grid, {\n columns: 12,\n className: \"dataviews-settings-section\",\n gap: 4,\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: \"dataviews-settings-section__sidebar\",\n children: [/*#__PURE__*/_jsx(Heading, {\n level: 2,\n className: \"dataviews-settings-section__title\",\n children: title\n }), description && /*#__PURE__*/_jsx(Text, {\n variant: \"muted\",\n className: \"dataviews-settings-section__description\",\n children: description\n })]\n }), /*#__PURE__*/_jsx(Grid, {\n columns: 8,\n gap: 4,\n className: \"dataviews-settings-section__content\",\n children: children\n })]\n });\n}\nfunction DataviewsViewConfigDropdown({\n density,\n setDensity\n}) {\n const {\n view\n } = useContext(DataViewsContext);\n const popoverId = useInstanceId(_DataViewsViewConfig, 'dataviews-view-config-dropdown');\n return /*#__PURE__*/_jsx(Dropdown, {\n popoverProps: {\n ...DATAVIEWS_CONFIG_POPOVER_PROPS,\n id: popoverId\n },\n renderToggle: ({\n onToggle,\n isOpen\n }) => {\n return /*#__PURE__*/_jsx(Button, {\n size: \"compact\",\n icon: cog,\n label: _x('View options', 'View is used as a noun'),\n onClick: onToggle,\n \"aria-expanded\": isOpen ? 'true' : 'false',\n \"aria-controls\": popoverId\n });\n },\n renderContent: () => /*#__PURE__*/_jsx(DropdownContentWrapper, {\n paddingSize: \"medium\",\n children: /*#__PURE__*/_jsxs(VStack, {\n className: \"dataviews-view-config\",\n spacing: 6,\n children: [/*#__PURE__*/_jsxs(SettingsSection, {\n title: __('Appearance'),\n children: [/*#__PURE__*/_jsxs(HStack, {\n expanded: true,\n className: \"is-divided-in-two\",\n children: [/*#__PURE__*/_jsx(SortFieldControl, {}), /*#__PURE__*/_jsx(SortDirectionControl, {})]\n }), view.type === LAYOUT_GRID && /*#__PURE__*/_jsx(DensityPicker, {\n density: density,\n setDensity: setDensity\n }), /*#__PURE__*/_jsx(ItemsPerPageControl, {})]\n }), /*#__PURE__*/_jsx(SettingsSection, {\n title: __('Properties'),\n children: /*#__PURE__*/_jsx(FieldControl, {})\n })]\n })\n })\n });\n}\nfunction _DataViewsViewConfig({\n density,\n setDensity,\n defaultLayouts = {\n list: {},\n grid: {},\n table: {}\n }\n}) {\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(ViewTypeMenu, {\n defaultLayouts: defaultLayouts\n }), /*#__PURE__*/_jsx(DataviewsViewConfigDropdown, {\n density: density,\n setDensity: setDensity\n })]\n });\n}\nconst DataViewsViewConfig = memo(_DataViewsViewConfig);\nexport default DataViewsViewConfig;\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { default as DataViewsFilters, useFilters, FilterVisibilityToggle } from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport DataViewsFooter from '../dataviews-footer';\nimport DataViewsSearch from '../dataviews-search';\nimport DataViewsViewConfig from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst defaultGetItemId = item => item.id;\nexport default function DataViews({\n view,\n onChangeView,\n fields,\n search = true,\n searchLabel = undefined,\n actions = [],\n data,\n getItemId = defaultGetItemId,\n isLoading = false,\n paginationInfo,\n defaultLayouts,\n selection: selectionProperty,\n onChangeSelection,\n header\n}) {\n const [selectionState, setSelectionState] = useState([]);\n const [density, setDensity] = useState(0);\n const isUncontrolled = selectionProperty === undefined || onChangeSelection === undefined;\n const selection = isUncontrolled ? selectionState : selectionProperty;\n const [openedFilter, setOpenedFilter] = useState(null);\n function setSelectionWithChange(value) {\n const newValue = typeof value === 'function' ? value(selection) : value;\n if (isUncontrolled) {\n setSelectionState(newValue);\n }\n if (onChangeSelection) {\n onChangeSelection(newValue);\n }\n }\n const _fields = useMemo(() => normalizeFields(fields), [fields]);\n const _selection = useMemo(() => {\n return selection.filter(id => data.some(item => getItemId(item) === id));\n }, [selection, data, getItemId]);\n const filters = useFilters(_fields, view);\n const [isShowingFilter, setIsShowingFilter] = useState(() => (filters || []).some(filter => filter.isPrimary));\n return /*#__PURE__*/_jsx(DataViewsContext.Provider, {\n value: {\n view,\n onChangeView,\n fields: _fields,\n actions,\n data,\n isLoading,\n paginationInfo,\n selection: _selection,\n onChangeSelection: setSelectionWithChange,\n openedFilter,\n setOpenedFilter,\n getItemId,\n density\n },\n children: /*#__PURE__*/_jsxs(\"div\", {\n className: \"dataviews-wrapper\",\n children: [/*#__PURE__*/_jsxs(HStack, {\n alignment: \"top\",\n justify: \"space-between\",\n className: \"dataviews__view-actions\",\n spacing: 1,\n children: [/*#__PURE__*/_jsxs(HStack, {\n justify: \"start\",\n expanded: false,\n className: \"dataviews__search\",\n children: [search && /*#__PURE__*/_jsx(DataViewsSearch, {\n label: searchLabel\n }), /*#__PURE__*/_jsx(FilterVisibilityToggle, {\n filters: filters,\n view: view,\n onChangeView: onChangeView,\n setOpenedFilter: setOpenedFilter,\n setIsShowingFilter: setIsShowingFilter,\n isShowingFilter: isShowingFilter\n })]\n }), /*#__PURE__*/_jsxs(HStack, {\n spacing: 1,\n expanded: false,\n style: {\n flexShrink: 0\n },\n children: [/*#__PURE__*/_jsx(DataViewsViewConfig, {\n defaultLayouts: defaultLayouts,\n density: density,\n setDensity: setDensity\n }), header]\n })]\n }), isShowingFilter && /*#__PURE__*/_jsx(DataViewsFilters, {}), /*#__PURE__*/_jsx(DataViewsLayout, {}), /*#__PURE__*/_jsx(DataViewsFooter, {})]\n })\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { arrowDown, arrowUp } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\n\n// Filter operators.\nexport const OPERATOR_IS = 'is';\nexport const OPERATOR_IS_NOT = 'isNot';\nexport const OPERATOR_IS_ANY = 'isAny';\nexport const OPERATOR_IS_NONE = 'isNone';\nexport const OPERATOR_IS_ALL = 'isAll';\nexport const OPERATOR_IS_NOT_ALL = 'isNotAll';\nexport const ALL_OPERATORS = [OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_ANY, OPERATOR_IS_NONE, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL];\nexport const OPERATORS = {\n [OPERATOR_IS]: {\n key: 'is-filter',\n label: __('Is')\n },\n [OPERATOR_IS_NOT]: {\n key: 'is-not-filter',\n label: __('Is not')\n },\n [OPERATOR_IS_ANY]: {\n key: 'is-any-filter',\n label: __('Is any')\n },\n [OPERATOR_IS_NONE]: {\n key: 'is-none-filter',\n label: __('Is none')\n },\n [OPERATOR_IS_ALL]: {\n key: 'is-all-filter',\n label: __('Is all')\n },\n [OPERATOR_IS_NOT_ALL]: {\n key: 'is-not-all-filter',\n label: __('Is not all')\n }\n};\nexport const SORTING_DIRECTIONS = ['asc', 'desc'];\nexport const sortArrows = {\n asc: '↑',\n desc: '↓'\n};\nexport const sortValues = {\n asc: 'ascending',\n desc: 'descending'\n};\nexport const sortLabels = {\n asc: __('Sort ascending'),\n desc: __('Sort descending')\n};\nexport const sortIcons = {\n asc: arrowUp,\n desc: arrowDown\n};\n\n// View layouts.\nexport const LAYOUT_TABLE = 'table';\nexport const LAYOUT_GRID = 'grid';\nexport const LAYOUT_LIST = 'list';\n//# sourceMappingURL=constants.js.map","/**\n * WordPress dependencies\n */\nimport { BaseControl, TimePicker, VisuallyHidden } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport default function DateTime({\n data,\n field,\n onChange,\n hideLabelFromVision\n}) {\n const {\n id,\n label\n } = field;\n const value = field.getValue({\n item: data\n });\n const onChangeControl = useCallback(newValue => onChange({\n [id]: newValue\n }), [id, onChange]);\n return /*#__PURE__*/_jsxs(\"fieldset\", {\n className: \"dataviews-controls__datetime\",\n children: [!hideLabelFromVision && /*#__PURE__*/_jsx(BaseControl.VisualLabel, {\n as: \"legend\",\n children: label\n }), hideLabelFromVision && /*#__PURE__*/_jsx(VisuallyHidden, {\n as: \"legend\",\n children: label\n }), /*#__PURE__*/_jsx(TimePicker, {\n currentTime: value,\n onChange: onChangeControl,\n hideLabelFromVision: true\n })]\n });\n}\n//# sourceMappingURL=datetime.js.map","/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\nimport datetime from './datetime';\nimport integer from './integer';\nimport radio from './radio';\nimport select from './select';\nimport text from './text';\nconst FORM_CONTROLS = {\n datetime,\n integer,\n radio,\n select,\n text\n};\nexport function getControl(field, fieldTypeDefinition) {\n if (typeof field.Edit === 'function') {\n return field.Edit;\n }\n if (typeof field.Edit === 'string') {\n return getControlByType(field.Edit);\n }\n if (field.elements) {\n return getControlByType('select');\n }\n if (typeof fieldTypeDefinition.Edit === 'string') {\n return getControlByType(fieldTypeDefinition.Edit);\n }\n return fieldTypeDefinition.Edit;\n}\nexport function getControlByType(type) {\n if (Object.keys(FORM_CONTROLS).includes(type)) {\n return FORM_CONTROLS[type];\n }\n throw 'Control ' + type + ' not found';\n}\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { __experimentalNumberControl as NumberControl } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function Integer({\n data,\n field,\n onChange,\n hideLabelFromVision\n}) {\n var _field$getValue;\n const {\n id,\n label,\n description\n } = field;\n const value = (_field$getValue = field.getValue({\n item: data\n })) !== null && _field$getValue !== void 0 ? _field$getValue : '';\n const onChangeControl = useCallback(newValue => onChange({\n [id]: Number(newValue)\n }), [id, onChange]);\n return /*#__PURE__*/_jsx(NumberControl, {\n label: label,\n help: description,\n value: value,\n onChange: onChangeControl,\n __next40pxDefaultSize: true,\n hideLabelFromVision: hideLabelFromVision\n });\n}\n//# sourceMappingURL=integer.js.map","/**\n * WordPress dependencies\n */\nimport { RadioControl } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function Radio({\n data,\n field,\n onChange,\n hideLabelFromVision\n}) {\n const {\n id,\n label\n } = field;\n const value = field.getValue({\n item: data\n });\n const onChangeControl = useCallback(newValue => onChange({\n [id]: newValue\n }), [id, onChange]);\n if (field.elements) {\n return /*#__PURE__*/_jsx(RadioControl, {\n label: label,\n onChange: onChangeControl,\n options: field.elements,\n selected: value,\n hideLabelFromVision: hideLabelFromVision\n });\n }\n return null;\n}\n//# sourceMappingURL=radio.js.map","/**\n * WordPress dependencies\n */\nimport { SelectControl } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function Select({\n data,\n field,\n onChange,\n hideLabelFromVision\n}) {\n var _field$getValue, _field$elements;\n const {\n id,\n label\n } = field;\n const value = (_field$getValue = field.getValue({\n item: data\n })) !== null && _field$getValue !== void 0 ? _field$getValue : '';\n const onChangeControl = useCallback(newValue => onChange({\n [id]: newValue\n }), [id, onChange]);\n const elements = [\n /*\n * Value can be undefined when:\n *\n * - the field is not required\n * - in bulk editing\n *\n */\n {\n label: __('Select item'),\n value: ''\n }, ...((_field$elements = field?.elements) !== null && _field$elements !== void 0 ? _field$elements : [])];\n return /*#__PURE__*/_jsx(SelectControl, {\n label: label,\n value: value,\n options: elements,\n onChange: onChangeControl,\n __next40pxDefaultSize: true,\n __nextHasNoMarginBottom: true,\n hideLabelFromVision: hideLabelFromVision\n });\n}\n//# sourceMappingURL=select.js.map","/**\n * WordPress dependencies\n */\nimport { TextControl } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function Text({\n data,\n field,\n onChange,\n hideLabelFromVision\n}) {\n const {\n id,\n label,\n placeholder\n } = field;\n const value = field.getValue({\n item: data\n });\n const onChangeControl = useCallback(newValue => onChange({\n [id]: newValue\n }), [id, onChange]);\n return /*#__PURE__*/_jsx(TextControl, {\n label: label,\n placeholder: placeholder,\n value: value !== null && value !== void 0 ? value : '',\n onChange: onChangeControl,\n __next40pxDefaultSize: true,\n __nextHasNoMarginBottom: true,\n hideLabelFromVision: hideLabelFromVision\n });\n}\n//# sourceMappingURL=text.js.map","/**\n * WordPress dependencies\n */\nimport { RangeControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst viewportBreaks = {\n xhuge: {\n min: 3,\n max: 6,\n default: 5\n },\n huge: {\n min: 2,\n max: 4,\n default: 4\n },\n xlarge: {\n min: 2,\n max: 3,\n default: 3\n },\n large: {\n min: 1,\n max: 2,\n default: 2\n },\n mobile: {\n min: 1,\n max: 2,\n default: 2\n }\n};\nfunction useViewPortBreakpoint() {\n const isXHuge = useViewportMatch('xhuge', '>=');\n const isHuge = useViewportMatch('huge', '>=');\n const isXlarge = useViewportMatch('xlarge', '>=');\n const isLarge = useViewportMatch('large', '>=');\n const isMobile = useViewportMatch('mobile', '>=');\n if (isXHuge) {\n return 'xhuge';\n }\n if (isHuge) {\n return 'huge';\n }\n if (isXlarge) {\n return 'xlarge';\n }\n if (isLarge) {\n return 'large';\n }\n if (isMobile) {\n return 'mobile';\n }\n return null;\n}\nexport default function DensityPicker({\n density,\n setDensity\n}) {\n const viewport = useViewPortBreakpoint();\n useEffect(() => {\n setDensity(_density => {\n if (!viewport || !_density) {\n return 0;\n }\n const breakValues = viewportBreaks[viewport];\n if (_density < breakValues.min) {\n return breakValues.min;\n }\n if (_density > breakValues.max) {\n return breakValues.max;\n }\n return _density;\n });\n }, [setDensity, viewport]);\n const breakValues = viewportBreaks[viewport || 'mobile'];\n const densityToUse = density || breakValues.default;\n const marks = useMemo(() => Array.from({\n length: breakValues.max - breakValues.min + 1\n }, (_, i) => {\n return {\n value: breakValues.min + i\n };\n }), [breakValues]);\n if (!viewport) {\n return null;\n }\n return /*#__PURE__*/_jsx(RangeControl, {\n __nextHasNoMarginBottom: true,\n __next40pxDefaultSize: true,\n showTooltip: false,\n label: __('Preview size'),\n value: breakValues.max + breakValues.min - densityToUse,\n marks: marks,\n min: breakValues.min,\n max: breakValues.max,\n withInputField: false,\n onChange: (value = 0) => {\n setDensity(breakValues.max + breakValues.min - value);\n },\n step: 1\n });\n}\n//# sourceMappingURL=density-picker.js.map","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalGrid as Grid, __experimentalHStack as HStack, __experimentalVStack as VStack, Spinner, Flex, FlexItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ItemActions from '../../components/dataviews-item-actions';\nimport SingleSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport { useHasAPossibleBulkAction } from '../../components/dataviews-bulk-actions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nfunction GridItem({\n selection,\n onChangeSelection,\n getItemId,\n item,\n actions,\n mediaField,\n primaryField,\n visibleFields,\n badgeFields,\n columnFields\n}) {\n const hasBulkAction = useHasAPossibleBulkAction(actions, item);\n const id = getItemId(item);\n const isSelected = selection.includes(id);\n const renderedMediaField = mediaField?.render ? /*#__PURE__*/_jsx(mediaField.render, {\n item: item\n }) : null;\n const renderedPrimaryField = primaryField?.render ? /*#__PURE__*/_jsx(primaryField.render, {\n item: item\n }) : null;\n return /*#__PURE__*/_jsxs(VStack, {\n spacing: 0,\n className: clsx('dataviews-view-grid__card', {\n 'is-selected': hasBulkAction && isSelected\n }),\n onClickCapture: event => {\n if (event.ctrlKey || event.metaKey) {\n event.stopPropagation();\n event.preventDefault();\n if (!hasBulkAction) {\n return;\n }\n onChangeSelection(selection.includes(id) ? selection.filter(itemId => id !== itemId) : [...selection, id]);\n }\n },\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"dataviews-view-grid__media\",\n children: renderedMediaField\n }), /*#__PURE__*/_jsx(SingleSelectionCheckbox, {\n item: item,\n selection: selection,\n onChangeSelection: onChangeSelection,\n getItemId: getItemId,\n primaryField: primaryField,\n disabled: !hasBulkAction\n }), /*#__PURE__*/_jsxs(HStack, {\n justify: \"space-between\",\n className: \"dataviews-view-grid__title-actions\",\n children: [/*#__PURE__*/_jsx(HStack, {\n className: \"dataviews-view-grid__primary-field\",\n children: renderedPrimaryField\n }), /*#__PURE__*/_jsx(ItemActions, {\n item: item,\n actions: actions,\n isCompact: true\n })]\n }), !!badgeFields?.length && /*#__PURE__*/_jsx(HStack, {\n className: \"dataviews-view-grid__badge-fields\",\n spacing: 2,\n wrap: true,\n alignment: \"top\",\n justify: \"flex-start\",\n children: badgeFields.map(field => {\n return /*#__PURE__*/_jsx(FlexItem, {\n className: \"dataviews-view-grid__field-value\",\n children: /*#__PURE__*/_jsx(field.render, {\n item: item\n })\n }, field.id);\n })\n }), !!visibleFields?.length && /*#__PURE__*/_jsx(VStack, {\n className: \"dataviews-view-grid__fields\",\n spacing: 1,\n children: visibleFields.map(field => {\n return /*#__PURE__*/_jsx(Flex, {\n className: clsx('dataviews-view-grid__field', columnFields?.includes(field.id) ? 'is-column' : 'is-row'),\n gap: 1,\n justify: \"flex-start\",\n expanded: true,\n style: {\n height: 'auto'\n },\n direction: columnFields?.includes(field.id) ? 'column' : 'row',\n children: /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(FlexItem, {\n className: \"dataviews-view-grid__field-name\",\n children: field.header\n }), /*#__PURE__*/_jsx(FlexItem, {\n className: \"dataviews-view-grid__field-value\",\n style: {\n maxHeight: 'none'\n },\n children: /*#__PURE__*/_jsx(field.render, {\n item: item\n })\n })]\n })\n }, field.id);\n })\n })]\n }, id);\n}\nexport default function ViewGrid({\n actions,\n data,\n fields,\n getItemId,\n isLoading,\n onChangeSelection,\n selection,\n view,\n density\n}) {\n const mediaField = fields.find(field => field.id === view.layout?.mediaField);\n const primaryField = fields.find(field => field.id === view.layout?.primaryField);\n const viewFields = view.fields || fields.map(field => field.id);\n const {\n visibleFields,\n badgeFields\n } = fields.reduce((accumulator, field) => {\n if (!viewFields.includes(field.id) || [view.layout?.mediaField, view?.layout?.primaryField].includes(field.id)) {\n return accumulator;\n }\n // If the field is a badge field, add it to the badgeFields array\n // otherwise add it to the rest visibleFields array.\n const key = view.layout?.badgeFields?.includes(field.id) ? 'badgeFields' : 'visibleFields';\n accumulator[key].push(field);\n return accumulator;\n }, {\n visibleFields: [],\n badgeFields: []\n });\n const hasData = !!data?.length;\n const gridStyle = density ? {\n gridTemplateColumns: `repeat(${density}, minmax(0, 1fr))`\n } : {};\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [hasData && /*#__PURE__*/_jsx(Grid, {\n gap: 8,\n columns: 2,\n alignment: \"top\",\n className: \"dataviews-view-grid\",\n style: gridStyle,\n \"aria-busy\": isLoading,\n children: data.map(item => {\n return /*#__PURE__*/_jsx(GridItem, {\n selection: selection,\n onChangeSelection: onChangeSelection,\n getItemId: getItemId,\n item: item,\n actions: actions,\n mediaField: mediaField,\n primaryField: primaryField,\n visibleFields: visibleFields,\n badgeFields: badgeFields,\n columnFields: view.layout?.columnFields\n }, getItemId(item));\n })\n }), !hasData && /*#__PURE__*/_jsx(\"div\", {\n className: clsx({\n 'dataviews-loading': isLoading,\n 'dataviews-no-results': !isLoading\n }),\n children: /*#__PURE__*/_jsx(\"p\", {\n children: isLoading ? /*#__PURE__*/_jsx(Spinner, {}) : __('No results')\n })\n })]\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { blockTable, category, formatListBullets, formatListBulletsRTL } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ViewTable from './table';\nimport ViewGrid from './grid';\nimport ViewList from './list';\nimport { LAYOUT_GRID, LAYOUT_LIST, LAYOUT_TABLE } from '../constants';\nexport const VIEW_LAYOUTS = [{\n type: LAYOUT_TABLE,\n label: __('Table'),\n component: ViewTable,\n icon: blockTable\n}, {\n type: LAYOUT_GRID,\n label: __('Grid'),\n component: ViewGrid,\n icon: category\n}, {\n type: LAYOUT_LIST,\n label: __('List'),\n component: ViewList,\n icon: isRTL() ? formatListBulletsRTL : formatListBullets\n}];\nexport function getNotHidableFieldIds(view) {\n if (view.type === 'table') {\n var _view$layout$combined;\n return [view.layout?.primaryField].concat((_view$layout$combined = view.layout?.combinedFields?.flatMap(field => field.children)) !== null && _view$layout$combined !== void 0 ? _view$layout$combined : []).filter(item => !!item);\n }\n if (view.type === 'grid') {\n return [view.layout?.primaryField, view.layout?.mediaField].filter(item => !!item);\n }\n if (view.type === 'list') {\n return [view.layout?.primaryField, view.layout?.mediaField].filter(item => !!item);\n }\n return [];\n}\nfunction getCombinedFieldIds(view) {\n const combinedFields = [];\n if (view.type === LAYOUT_TABLE && view.layout?.combinedFields) {\n view.layout.combinedFields.forEach(combination => {\n combinedFields.push(...combination.children);\n });\n }\n return combinedFields;\n}\nexport function getVisibleFieldIds(view, fields) {\n const fieldsToExclude = getCombinedFieldIds(view);\n if (view.fields) {\n return view.fields.filter(id => !fieldsToExclude.includes(id));\n }\n const visibleFields = [];\n if (view.type === LAYOUT_TABLE && view.layout?.combinedFields) {\n visibleFields.push(...view.layout.combinedFields.map(({\n id\n }) => id));\n }\n visibleFields.push(...fields.filter(({\n id\n }) => !fieldsToExclude.includes(id)).map(({\n id\n }) => id));\n return visibleFields;\n}\nexport function getHiddenFieldIds(view, fields) {\n const fieldsToExclude = [...getCombinedFieldIds(view), ...getVisibleFieldIds(view, fields)];\n\n // The media field does not need to be in the view.fields to be displayed.\n if (view.type === LAYOUT_GRID && view.layout?.mediaField) {\n fieldsToExclude.push(view.layout?.mediaField);\n }\n if (view.type === LAYOUT_LIST && view.layout?.mediaField) {\n fieldsToExclude.push(view.layout?.mediaField);\n }\n return fields.filter(({\n id,\n enableHiding\n }) => !fieldsToExclude.includes(id) && enableHiding).map(({\n id\n }) => id);\n}\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId, usePrevious } from '@wordpress/compose';\nimport { __experimentalHStack as HStack, __experimentalVStack as VStack, Button, privateApis as componentsPrivateApis, Spinner, VisuallyHidden, Composite } from '@wordpress/components';\nimport { useCallback, useEffect, useMemo, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { ActionsDropdownMenuGroup, ActionModal } from '../../components/dataviews-item-actions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst {\n DropdownMenuV2: DropdownMenu\n} = unlock(componentsPrivateApis);\nfunction generateItemWrapperCompositeId(idPrefix) {\n return `${idPrefix}-item-wrapper`;\n}\nfunction generatePrimaryActionCompositeId(idPrefix, primaryActionId) {\n return `${idPrefix}-primary-action-${primaryActionId}`;\n}\nfunction generateDropdownTriggerCompositeId(idPrefix) {\n return `${idPrefix}-dropdown`;\n}\nfunction PrimaryActionGridCell({\n idPrefix,\n primaryAction,\n item\n}) {\n const registry = useRegistry();\n const [isModalOpen, setIsModalOpen] = useState(false);\n const compositeItemId = generatePrimaryActionCompositeId(idPrefix, primaryAction.id);\n const label = typeof primaryAction.label === 'string' ? primaryAction.label : primaryAction.label([item]);\n return 'RenderModal' in primaryAction ? /*#__PURE__*/_jsx(\"div\", {\n role: \"gridcell\",\n children: /*#__PURE__*/_jsx(Composite.Item, {\n id: compositeItemId,\n render: /*#__PURE__*/_jsx(Button, {\n label: label,\n icon: primaryAction.icon,\n isDestructive: primaryAction.isDestructive,\n size: \"small\",\n onClick: () => setIsModalOpen(true)\n }),\n children: isModalOpen && /*#__PURE__*/_jsx(ActionModal, {\n action: primaryAction,\n items: [item],\n closeModal: () => setIsModalOpen(false)\n })\n })\n }, primaryAction.id) : /*#__PURE__*/_jsx(\"div\", {\n role: \"gridcell\",\n children: /*#__PURE__*/_jsx(Composite.Item, {\n id: compositeItemId,\n render: /*#__PURE__*/_jsx(Button, {\n label: label,\n icon: primaryAction.icon,\n isDestructive: primaryAction.isDestructive,\n size: \"small\",\n onClick: () => {\n primaryAction.callback([item], {\n registry\n });\n }\n })\n })\n }, primaryAction.id);\n}\nfunction ListItem({\n actions,\n idPrefix,\n isSelected,\n item,\n mediaField,\n onSelect,\n primaryField,\n visibleFields,\n onDropdownTriggerKeyDown\n}) {\n const itemRef = useRef(null);\n const labelId = `${idPrefix}-label`;\n const descriptionId = `${idPrefix}-description`;\n const [isHovered, setIsHovered] = useState(false);\n const handleMouseEnter = () => {\n setIsHovered(true);\n };\n const handleMouseLeave = () => {\n setIsHovered(false);\n };\n useEffect(() => {\n if (isSelected) {\n itemRef.current?.scrollIntoView({\n behavior: 'auto',\n block: 'nearest',\n inline: 'nearest'\n });\n }\n }, [isSelected]);\n const {\n primaryAction,\n eligibleActions\n } = useMemo(() => {\n // If an action is eligible for all items, doesn't need\n // to provide the `isEligible` function.\n const _eligibleActions = actions.filter(action => !action.isEligible || action.isEligible(item));\n const _primaryActions = _eligibleActions.filter(action => action.isPrimary && !!action.icon);\n return {\n primaryAction: _primaryActions?.[0],\n eligibleActions: _eligibleActions\n };\n }, [actions, item]);\n const renderedMediaField = mediaField?.render ? /*#__PURE__*/_jsx(mediaField.render, {\n item: item\n }) : /*#__PURE__*/_jsx(\"div\", {\n className: \"dataviews-view-list__media-placeholder\"\n });\n const renderedPrimaryField = primaryField?.render ? /*#__PURE__*/_jsx(primaryField.render, {\n item: item\n }) : null;\n return /*#__PURE__*/_jsx(Composite.Row, {\n ref: itemRef,\n render: /*#__PURE__*/_jsx(\"li\", {}),\n role: \"row\",\n className: clsx({\n 'is-selected': isSelected,\n 'is-hovered': isHovered\n }),\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n children: /*#__PURE__*/_jsxs(HStack, {\n className: \"dataviews-view-list__item-wrapper\",\n alignment: \"center\",\n spacing: 0,\n children: [/*#__PURE__*/_jsx(\"div\", {\n role: \"gridcell\",\n children: /*#__PURE__*/_jsx(Composite.Item, {\n render: /*#__PURE__*/_jsx(\"div\", {}),\n role: \"button\",\n id: generateItemWrapperCompositeId(idPrefix),\n \"aria-pressed\": isSelected,\n \"aria-labelledby\": labelId,\n \"aria-describedby\": descriptionId,\n className: \"dataviews-view-list__item\",\n onClick: () => onSelect(item),\n children: /*#__PURE__*/_jsxs(HStack, {\n spacing: 3,\n justify: \"start\",\n alignment: \"flex-start\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"dataviews-view-list__media-wrapper\",\n children: renderedMediaField\n }), /*#__PURE__*/_jsxs(VStack, {\n spacing: 1,\n className: \"dataviews-view-list__field-wrapper\",\n children: [/*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-view-list__primary-field\",\n id: labelId,\n children: renderedPrimaryField\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"dataviews-view-list__fields\",\n id: descriptionId,\n children: visibleFields.map(field => /*#__PURE__*/_jsxs(\"div\", {\n className: \"dataviews-view-list__field\",\n children: [/*#__PURE__*/_jsx(VisuallyHidden, {\n as: \"span\",\n className: \"dataviews-view-list__field-label\",\n children: field.label\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-view-list__field-value\",\n children: /*#__PURE__*/_jsx(field.render, {\n item: item\n })\n })]\n }, field.id))\n })]\n })]\n })\n })\n }), eligibleActions?.length > 0 && /*#__PURE__*/_jsxs(HStack, {\n spacing: 3,\n justify: \"flex-end\",\n className: \"dataviews-view-list__item-actions\",\n style: {\n flexShrink: '0',\n width: 'auto'\n },\n children: [primaryAction && /*#__PURE__*/_jsx(PrimaryActionGridCell, {\n idPrefix: idPrefix,\n primaryAction: primaryAction,\n item: item\n }), /*#__PURE__*/_jsx(\"div\", {\n role: \"gridcell\",\n children: /*#__PURE__*/_jsx(DropdownMenu, {\n trigger: /*#__PURE__*/_jsx(Composite.Item, {\n id: generateDropdownTriggerCompositeId(idPrefix),\n render: /*#__PURE__*/_jsx(Button, {\n size: \"small\",\n icon: moreVertical,\n label: __('Actions'),\n accessibleWhenDisabled: true,\n disabled: !actions.length,\n onKeyDown: onDropdownTriggerKeyDown\n })\n }),\n placement: \"bottom-end\",\n children: /*#__PURE__*/_jsx(ActionsDropdownMenuGroup, {\n actions: eligibleActions,\n item: item\n })\n })\n })]\n })]\n })\n });\n}\nexport default function ViewList(props) {\n const {\n actions,\n data,\n fields,\n getItemId,\n isLoading,\n onChangeSelection,\n selection,\n view\n } = props;\n const baseId = useInstanceId(ViewList, 'view-list');\n const selectedItem = data?.findLast(item => selection.includes(getItemId(item)));\n const mediaField = fields.find(field => field.id === view.layout?.mediaField);\n const primaryField = fields.find(field => field.id === view.layout?.primaryField);\n const viewFields = view.fields || fields.map(field => field.id);\n const visibleFields = fields.filter(field => viewFields.includes(field.id) && ![view.layout?.primaryField, view.layout?.mediaField].includes(field.id));\n const onSelect = item => onChangeSelection([getItemId(item)]);\n const generateCompositeItemIdPrefix = useCallback(item => `${baseId}-${getItemId(item)}`, [baseId, getItemId]);\n const isActiveCompositeItem = useCallback((item, idToCheck) => {\n // All composite items use the same prefix in their IDs.\n return idToCheck.startsWith(generateCompositeItemIdPrefix(item));\n }, [generateCompositeItemIdPrefix]);\n\n // Controlled state for the active composite item.\n const [activeCompositeId, setActiveCompositeId] = useState(undefined);\n\n // Update the active composite item when the selected item changes.\n useEffect(() => {\n if (selectedItem) {\n setActiveCompositeId(generateItemWrapperCompositeId(generateCompositeItemIdPrefix(selectedItem)));\n }\n }, [selectedItem, generateCompositeItemIdPrefix]);\n const activeItemIndex = data.findIndex(item => isActiveCompositeItem(item, activeCompositeId !== null && activeCompositeId !== void 0 ? activeCompositeId : ''));\n const previousActiveItemIndex = usePrevious(activeItemIndex);\n const isActiveIdInList = activeItemIndex !== -1;\n const selectCompositeItem = useCallback((targetIndex, generateCompositeId) => {\n // Clamping between 0 and data.length - 1 to avoid out of bounds.\n const clampedIndex = Math.min(data.length - 1, Math.max(0, targetIndex));\n if (!data[clampedIndex]) {\n return;\n }\n const itemIdPrefix = generateCompositeItemIdPrefix(data[clampedIndex]);\n const targetCompositeItemId = generateCompositeId(itemIdPrefix);\n setActiveCompositeId(targetCompositeItemId);\n document.getElementById(targetCompositeItemId)?.focus();\n }, [data, generateCompositeItemIdPrefix]);\n\n // Select a new active composite item when the current active item\n // is removed from the list.\n useEffect(() => {\n const wasActiveIdInList = previousActiveItemIndex !== undefined && previousActiveItemIndex !== -1;\n if (!isActiveIdInList && wasActiveIdInList) {\n // By picking `previousActiveItemIndex` as the next item index, we are\n // basically picking the item that would have been after the deleted one.\n // If the previously active (and removed) item was the last of the list,\n // we will select the item before it — which is the new last item.\n selectCompositeItem(previousActiveItemIndex, generateItemWrapperCompositeId);\n }\n }, [isActiveIdInList, selectCompositeItem, previousActiveItemIndex]);\n\n // Prevent the default behavior (open dropdown menu) and instead select the\n // dropdown menu trigger on the previous/next row.\n // https://github.com/ariakit/ariakit/issues/3768\n const onDropdownTriggerKeyDown = useCallback(event => {\n if (event.key === 'ArrowDown') {\n // Select the dropdown menu trigger item in the next row.\n event.preventDefault();\n selectCompositeItem(activeItemIndex + 1, generateDropdownTriggerCompositeId);\n }\n if (event.key === 'ArrowUp') {\n // Select the dropdown menu trigger item in the previous row.\n event.preventDefault();\n selectCompositeItem(activeItemIndex - 1, generateDropdownTriggerCompositeId);\n }\n }, [selectCompositeItem, activeItemIndex]);\n const hasData = data?.length;\n if (!hasData) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: clsx({\n 'dataviews-loading': isLoading,\n 'dataviews-no-results': !hasData && !isLoading\n }),\n children: !hasData && /*#__PURE__*/_jsx(\"p\", {\n children: isLoading ? /*#__PURE__*/_jsx(Spinner, {}) : __('No results')\n })\n });\n }\n return /*#__PURE__*/_jsx(Composite, {\n id: baseId,\n render: /*#__PURE__*/_jsx(\"ul\", {}),\n className: \"dataviews-view-list\",\n role: \"grid\",\n activeId: activeCompositeId,\n setActiveId: setActiveCompositeId,\n children: data.map(item => {\n const id = generateCompositeItemIdPrefix(item);\n return /*#__PURE__*/_jsx(ListItem, {\n idPrefix: id,\n actions: actions,\n item: item,\n isSelected: item === selectedItem,\n onSelect: onSelect,\n mediaField: mediaField,\n primaryField: primaryField,\n visibleFields: visibleFields,\n onDropdownTriggerKeyDown: onDropdownTriggerKeyDown\n }, id);\n })\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { arrowLeft, arrowRight, unseen, funnel } from '@wordpress/icons';\nimport { Button, Icon, privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { forwardRef, Children, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { sanitizeOperators } from '../../utils';\nimport { SORTING_DIRECTIONS, sortArrows, sortLabels } from '../../constants';\nimport { getVisibleFieldIds } from '../index';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst {\n DropdownMenuV2\n} = unlock(componentsPrivateApis);\nfunction WithDropDownMenuSeparators({\n children\n}) {\n return Children.toArray(children).filter(Boolean).map((child, i) => /*#__PURE__*/_jsxs(Fragment, {\n children: [i > 0 && /*#__PURE__*/_jsx(DropdownMenuV2.Separator, {}), child]\n }, i));\n}\nconst _HeaderMenu = forwardRef(function HeaderMenu({\n fieldId,\n view,\n fields,\n onChangeView,\n onHide,\n setOpenedFilter\n}, ref) {\n const visibleFieldIds = getVisibleFieldIds(view, fields);\n const index = visibleFieldIds?.indexOf(fieldId);\n const isSorted = view.sort?.field === fieldId;\n let isHidable = false;\n let isSortable = false;\n let canAddFilter = false;\n let header;\n let operators = [];\n const combinedField = view.layout?.combinedFields?.find(f => f.id === fieldId);\n const field = fields.find(f => f.id === fieldId);\n if (!combinedField) {\n if (!field) {\n // No combined or regular field found.\n return null;\n }\n isHidable = field.enableHiding !== false;\n isSortable = field.enableSorting !== false;\n header = field.header;\n operators = sanitizeOperators(field);\n // Filter can be added:\n // 1. If the field is not already part of a view's filters.\n // 2. If the field meets the type and operator requirements.\n // 3. If it's not primary. If it is, it should be already visible.\n canAddFilter = !view.filters?.some(_filter => fieldId === _filter.field) && !!field.elements?.length && !!operators.length && !field.filterBy?.isPrimary;\n } else {\n header = combinedField.header || combinedField.label;\n }\n return /*#__PURE__*/_jsx(DropdownMenuV2, {\n align: \"start\",\n trigger: /*#__PURE__*/_jsxs(Button, {\n size: \"compact\",\n className: \"dataviews-view-table-header-button\",\n ref: ref,\n variant: \"tertiary\",\n children: [header, view.sort && isSorted && /*#__PURE__*/_jsx(\"span\", {\n \"aria-hidden\": \"true\",\n children: sortArrows[view.sort.direction]\n })]\n }),\n style: {\n minWidth: '240px'\n },\n children: /*#__PURE__*/_jsxs(WithDropDownMenuSeparators, {\n children: [isSortable && /*#__PURE__*/_jsx(DropdownMenuV2.Group, {\n children: SORTING_DIRECTIONS.map(direction => {\n const isChecked = view.sort && isSorted && view.sort.direction === direction;\n const value = `${fieldId}-${direction}`;\n return /*#__PURE__*/_jsx(DropdownMenuV2.RadioItem, {\n // All sorting radio items share the same name, so that\n // selecting a sorting option automatically deselects the\n // previously selected one, even if it is displayed in\n // another submenu. The field and direction are passed via\n // the `value` prop.\n name: \"view-table-sorting\",\n value: value,\n checked: isChecked,\n onChange: () => {\n onChangeView({\n ...view,\n sort: {\n field: fieldId,\n direction\n }\n });\n },\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: sortLabels[direction]\n })\n }, value);\n })\n }), canAddFilter && /*#__PURE__*/_jsx(DropdownMenuV2.Group, {\n children: /*#__PURE__*/_jsx(DropdownMenuV2.Item, {\n prefix: /*#__PURE__*/_jsx(Icon, {\n icon: funnel\n }),\n onClick: () => {\n setOpenedFilter(fieldId);\n onChangeView({\n ...view,\n page: 1,\n filters: [...(view.filters || []), {\n field: fieldId,\n value: undefined,\n operator: operators[0]\n }]\n });\n },\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: __('Add filter')\n })\n })\n }), /*#__PURE__*/_jsxs(DropdownMenuV2.Group, {\n children: [/*#__PURE__*/_jsx(DropdownMenuV2.Item, {\n prefix: /*#__PURE__*/_jsx(Icon, {\n icon: arrowLeft\n }),\n disabled: index < 1,\n onClick: () => {\n var _visibleFieldIds$slic;\n onChangeView({\n ...view,\n fields: [...((_visibleFieldIds$slic = visibleFieldIds.slice(0, index - 1)) !== null && _visibleFieldIds$slic !== void 0 ? _visibleFieldIds$slic : []), fieldId, visibleFieldIds[index - 1], ...visibleFieldIds.slice(index + 1)]\n });\n },\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: __('Move left')\n })\n }), /*#__PURE__*/_jsx(DropdownMenuV2.Item, {\n prefix: /*#__PURE__*/_jsx(Icon, {\n icon: arrowRight\n }),\n disabled: index >= visibleFieldIds.length - 1,\n onClick: () => {\n var _visibleFieldIds$slic2;\n onChangeView({\n ...view,\n fields: [...((_visibleFieldIds$slic2 = visibleFieldIds.slice(0, index)) !== null && _visibleFieldIds$slic2 !== void 0 ? _visibleFieldIds$slic2 : []), visibleFieldIds[index + 1], fieldId, ...visibleFieldIds.slice(index + 2)]\n });\n },\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: __('Move right')\n })\n }), isHidable && field && /*#__PURE__*/_jsx(DropdownMenuV2.Item, {\n prefix: /*#__PURE__*/_jsx(Icon, {\n icon: unseen\n }),\n onClick: () => {\n onHide(field);\n onChangeView({\n ...view,\n fields: visibleFieldIds.filter(id => id !== fieldId)\n });\n },\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: __('Hide column')\n })\n })]\n })]\n })\n });\n});\n\n// @ts-expect-error Lift the `Item` type argument through the forwardRef.\nconst ColumnHeaderMenu = _HeaderMenu;\nexport default ColumnHeaderMenu;\n//# sourceMappingURL=column-header-menu.js.map","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Spinner, __experimentalHStack as HStack, __experimentalVStack as VStack } from '@wordpress/components';\nimport { useEffect, useId, useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SingleSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport ItemActions from '../../components/dataviews-item-actions';\nimport { sortValues } from '../../constants';\nimport { useSomeItemHasAPossibleBulkAction, useHasAPossibleBulkAction, BulkSelectionCheckbox } from '../../components/dataviews-bulk-actions';\nimport ColumnHeaderMenu from './column-header-menu';\nimport { getVisibleFieldIds } from '../index';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nfunction TableColumn({\n column,\n fields,\n view,\n ...props\n}) {\n const field = fields.find(f => f.id === column);\n if (!!field) {\n return /*#__PURE__*/_jsx(TableColumnField, {\n ...props,\n field: field\n });\n }\n const combinedField = view.layout?.combinedFields?.find(f => f.id === column);\n if (!!combinedField) {\n return /*#__PURE__*/_jsx(TableColumnCombined, {\n ...props,\n fields: fields,\n view: view,\n field: combinedField\n });\n }\n return null;\n}\nfunction TableColumnField({\n primaryField,\n item,\n field\n}) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: clsx('dataviews-view-table__cell-content-wrapper', {\n 'dataviews-view-table__primary-field': primaryField?.id === field.id\n }),\n children: /*#__PURE__*/_jsx(field.render, {\n item\n })\n });\n}\nfunction TableColumnCombined({\n field,\n ...props\n}) {\n const children = field.children.map(child => /*#__PURE__*/_jsx(TableColumn, {\n ...props,\n column: child\n }, child));\n if (field.direction === 'horizontal') {\n return /*#__PURE__*/_jsx(HStack, {\n spacing: 3,\n children: children\n });\n }\n return /*#__PURE__*/_jsx(VStack, {\n spacing: 0,\n children: children\n });\n}\nfunction TableRow({\n hasBulkActions,\n item,\n actions,\n fields,\n id,\n view,\n primaryField,\n selection,\n getItemId,\n onChangeSelection\n}) {\n const hasPossibleBulkAction = useHasAPossibleBulkAction(actions, item);\n const isSelected = hasPossibleBulkAction && selection.includes(id);\n const [isHovered, setIsHovered] = useState(false);\n const handleMouseEnter = () => {\n setIsHovered(true);\n };\n const handleMouseLeave = () => {\n setIsHovered(false);\n };\n\n // Will be set to true if `onTouchStart` fires. This happens before\n // `onClick` and can be used to exclude touchscreen devices from certain\n // behaviours.\n const isTouchDeviceRef = useRef(false);\n const columns = getVisibleFieldIds(view, fields);\n return /*#__PURE__*/_jsxs(\"tr\", {\n className: clsx('dataviews-view-table__row', {\n 'is-selected': hasPossibleBulkAction && isSelected,\n 'is-hovered': isHovered,\n 'has-bulk-actions': hasPossibleBulkAction\n }),\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onTouchStart: () => {\n isTouchDeviceRef.current = true;\n },\n onClick: () => {\n if (!hasPossibleBulkAction) {\n return;\n }\n if (!isTouchDeviceRef.current && document.getSelection()?.type !== 'Range') {\n onChangeSelection(selection.includes(id) ? selection.filter(itemId => id !== itemId) : [id]);\n }\n },\n children: [hasBulkActions && /*#__PURE__*/_jsx(\"td\", {\n className: \"dataviews-view-table__checkbox-column\",\n style: {\n width: '1%'\n },\n children: /*#__PURE__*/_jsx(\"div\", {\n className: \"dataviews-view-table__cell-content-wrapper\",\n children: /*#__PURE__*/_jsx(SingleSelectionCheckbox, {\n item: item,\n selection: selection,\n onChangeSelection: onChangeSelection,\n getItemId: getItemId,\n primaryField: primaryField,\n disabled: !hasPossibleBulkAction\n })\n })\n }), columns.map(column => {\n var _view$layout$styles$c;\n // Explicits picks the supported styles.\n const {\n width,\n maxWidth,\n minWidth\n } = (_view$layout$styles$c = view.layout?.styles?.[column]) !== null && _view$layout$styles$c !== void 0 ? _view$layout$styles$c : {};\n return /*#__PURE__*/_jsx(\"td\", {\n style: {\n width,\n maxWidth,\n minWidth\n },\n children: /*#__PURE__*/_jsx(TableColumn, {\n primaryField: primaryField,\n fields: fields,\n item: item,\n column: column,\n view: view\n })\n }, column);\n }), !!actions?.length &&\n /*#__PURE__*/\n // Disable reason: we are not making the element interactive,\n // but preventing any click events from bubbling up to the\n // table row. This allows us to add a click handler to the row\n // itself (to toggle row selection) without erroneously\n // intercepting click events from ItemActions.\n /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n _jsx(\"td\", {\n className: \"dataviews-view-table__actions-column\",\n onClick: e => e.stopPropagation(),\n children: /*#__PURE__*/_jsx(ItemActions, {\n item: item,\n actions: actions\n })\n })\n /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */]\n });\n}\nfunction ViewTable({\n actions,\n data,\n fields,\n getItemId,\n isLoading = false,\n onChangeView,\n onChangeSelection,\n selection,\n setOpenedFilter,\n view\n}) {\n const headerMenuRefs = useRef(new Map());\n const headerMenuToFocusRef = useRef();\n const [nextHeaderMenuToFocus, setNextHeaderMenuToFocus] = useState();\n const hasBulkActions = useSomeItemHasAPossibleBulkAction(actions, data);\n useEffect(() => {\n if (headerMenuToFocusRef.current) {\n headerMenuToFocusRef.current.focus();\n headerMenuToFocusRef.current = undefined;\n }\n });\n const tableNoticeId = useId();\n if (nextHeaderMenuToFocus) {\n // If we need to force focus, we short-circuit rendering here\n // to prevent any additional work while we handle that.\n // Clearing out the focus directive is necessary to make sure\n // future renders don't cause unexpected focus jumps.\n headerMenuToFocusRef.current = nextHeaderMenuToFocus;\n setNextHeaderMenuToFocus(undefined);\n return;\n }\n const onHide = field => {\n const hidden = headerMenuRefs.current.get(field.id);\n const fallback = hidden ? headerMenuRefs.current.get(hidden.fallback) : undefined;\n setNextHeaderMenuToFocus(fallback?.node);\n };\n const columns = getVisibleFieldIds(view, fields);\n const hasData = !!data?.length;\n const primaryField = fields.find(field => field.id === view.layout?.primaryField);\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsxs(\"table\", {\n className: \"dataviews-view-table\",\n \"aria-busy\": isLoading,\n \"aria-describedby\": tableNoticeId,\n children: [/*#__PURE__*/_jsx(\"thead\", {\n children: /*#__PURE__*/_jsxs(\"tr\", {\n className: \"dataviews-view-table__row\",\n children: [hasBulkActions && /*#__PURE__*/_jsx(\"th\", {\n className: \"dataviews-view-table__checkbox-column\",\n style: {\n width: '1%'\n },\n scope: \"col\",\n children: /*#__PURE__*/_jsx(BulkSelectionCheckbox, {\n selection: selection,\n onChangeSelection: onChangeSelection,\n data: data,\n actions: actions,\n getItemId: getItemId\n })\n }), columns.map((column, index) => {\n var _view$layout$styles$c2;\n // Explicits picks the supported styles.\n const {\n width,\n maxWidth,\n minWidth\n } = (_view$layout$styles$c2 = view.layout?.styles?.[column]) !== null && _view$layout$styles$c2 !== void 0 ? _view$layout$styles$c2 : {};\n return /*#__PURE__*/_jsx(\"th\", {\n style: {\n width,\n maxWidth,\n minWidth\n },\n \"aria-sort\": view.sort?.field === column ? sortValues[view.sort.direction] : undefined,\n scope: \"col\",\n children: /*#__PURE__*/_jsx(ColumnHeaderMenu, {\n ref: node => {\n if (node) {\n headerMenuRefs.current.set(column, {\n node,\n fallback: columns[index > 0 ? index - 1 : 1]\n });\n } else {\n headerMenuRefs.current.delete(column);\n }\n },\n fieldId: column,\n view: view,\n fields: fields,\n onChangeView: onChangeView,\n onHide: onHide,\n setOpenedFilter: setOpenedFilter\n })\n }, column);\n }), !!actions?.length && /*#__PURE__*/_jsx(\"th\", {\n className: \"dataviews-view-table__actions-column\",\n children: /*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-view-table-header\",\n children: __('Actions')\n })\n })]\n })\n }), /*#__PURE__*/_jsx(\"tbody\", {\n children: hasData && data.map((item, index) => /*#__PURE__*/_jsx(TableRow, {\n item: item,\n hasBulkActions: hasBulkActions,\n actions: actions,\n fields: fields,\n id: getItemId(item) || index.toString(),\n view: view,\n primaryField: primaryField,\n selection: selection,\n getItemId: getItemId,\n onChangeSelection: onChangeSelection\n }, getItemId(item)))\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: clsx({\n 'dataviews-loading': isLoading,\n 'dataviews-no-results': !hasData && !isLoading\n }),\n id: tableNoticeId,\n children: !hasData && /*#__PURE__*/_jsx(\"p\", {\n children: isLoading ? /*#__PURE__*/_jsx(Spinner, {}) : __('No results')\n })\n })]\n });\n}\nexport default ViewTable;\n//# sourceMappingURL=index.js.map","/**\n * Internal dependencies\n */\n\nfunction sort(a, b, direction) {\n const timeA = new Date(a).getTime();\n const timeB = new Date(b).getTime();\n return direction === 'asc' ? timeA - timeB : timeB - timeA;\n}\nfunction isValid(value, context) {\n if (context?.elements) {\n const validValues = context?.elements.map(f => f.value);\n if (!validValues.includes(value)) {\n return false;\n }\n }\n return true;\n}\nexport default {\n sort,\n isValid,\n Edit: 'datetime'\n};\n//# sourceMappingURL=datetime.js.map","/**\n * Internal dependencies\n */\n\nimport { default as integer } from './integer';\nimport { default as text } from './text';\nimport { default as datetime } from './datetime';\n\n/**\n *\n * @param {FieldType} type The field type definition to get.\n *\n * @return A field type definition.\n */\nexport default function getFieldTypeDefinition(type) {\n if ('integer' === type) {\n return integer;\n }\n if ('text' === type) {\n return text;\n }\n if ('datetime' === type) {\n return datetime;\n }\n return {\n sort: (a, b, direction) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return direction === 'asc' ? a - b : b - a;\n }\n return direction === 'asc' ? a.localeCompare(b) : b.localeCompare(a);\n },\n isValid: (value, context) => {\n if (context?.elements) {\n const validValues = context?.elements?.map(f => f.value);\n if (!validValues.includes(value)) {\n return false;\n }\n }\n return true;\n },\n Edit: () => null\n };\n}\n//# sourceMappingURL=index.js.map","/**\n * Internal dependencies\n */\n\nfunction sort(a, b, direction) {\n return direction === 'asc' ? a - b : b - a;\n}\nfunction isValid(value, context) {\n // TODO: this implicitely means the value is required.\n if (value === '') {\n return false;\n }\n if (!Number.isInteger(Number(value))) {\n return false;\n }\n if (context?.elements) {\n const validValues = context?.elements.map(f => f.value);\n if (!validValues.includes(Number(value))) {\n return false;\n }\n }\n return true;\n}\nexport default {\n sort,\n isValid,\n Edit: 'integer'\n};\n//# sourceMappingURL=integer.js.map","/**\n * Internal dependencies\n */\n\nfunction sort(valueA, valueB, direction) {\n return direction === 'asc' ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA);\n}\nfunction isValid(value, context) {\n if (context?.elements) {\n const validValues = context?.elements?.map(f => f.value);\n if (!validValues.includes(value)) {\n return false;\n }\n }\n return true;\n}\nexport default {\n sort,\n isValid,\n Edit: 'text'\n};\n//# sourceMappingURL=text.js.map","/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\nexport const {\n lock,\n unlock\n} = __dangerousOptInToUnstableAPIsOnlyForCoreModules('I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.', '@wordpress/dataviews');\n//# sourceMappingURL=lock-unlock.js.map","/**\n * Internal dependencies\n */\nimport getFieldTypeDefinition from './field-types';\nimport { getControl } from './dataform-controls';\nimport DataFormCombinedEdit from './components/dataform-combined-edit';\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport function normalizeFields(fields) {\n return fields.map(field => {\n var _field$sort, _field$isValid, _field$enableHiding, _field$enableSorting;\n const fieldTypeDefinition = getFieldTypeDefinition(field.type);\n const getValue = field.getValue || (({\n item\n }) => item[field.id]);\n const sort = (_field$sort = field.sort) !== null && _field$sort !== void 0 ? _field$sort : function sort(a, b, direction) {\n return fieldTypeDefinition.sort(getValue({\n item: a\n }), getValue({\n item: b\n }), direction);\n };\n const isValid = (_field$isValid = field.isValid) !== null && _field$isValid !== void 0 ? _field$isValid : function isValid(item, context) {\n return fieldTypeDefinition.isValid(getValue({\n item\n }), context);\n };\n const Edit = getControl(field, fieldTypeDefinition);\n const renderFromElements = ({\n item\n }) => {\n const value = getValue({\n item\n });\n return field?.elements?.find(element => element.value === value)?.label || getValue({\n item\n });\n };\n const render = field.render || (field.elements ? renderFromElements : getValue);\n return {\n ...field,\n label: field.label || field.id,\n header: field.header || field.label || field.id,\n getValue,\n render,\n sort,\n isValid,\n Edit,\n enableHiding: (_field$enableHiding = field.enableHiding) !== null && _field$enableHiding !== void 0 ? _field$enableHiding : true,\n enableSorting: (_field$enableSorting = field.enableSorting) !== null && _field$enableSorting !== void 0 ? _field$enableSorting : true\n };\n });\n}\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param combinedFields combined field list.\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport function normalizeCombinedFields(combinedFields, fields) {\n return combinedFields.map(combinedField => {\n return {\n ...combinedField,\n Edit: DataFormCombinedEdit,\n fields: normalizeFields(combinedField.children.map(fieldId => fields.find(({\n id\n }) => id === fieldId)).filter(field => !!field))\n };\n });\n}\n//# sourceMappingURL=normalize-fields.js.map","/**\n * Internal dependencies\n */\nimport { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_ANY, OPERATOR_IS_NONE } from './constants';\nexport function sanitizeOperators(field) {\n let operators = field.filterBy?.operators;\n\n // Assign default values.\n if (!operators || !Array.isArray(operators)) {\n operators = [OPERATOR_IS_ANY, OPERATOR_IS_NONE];\n }\n\n // Make sure only valid operators are used.\n operators = operators.filter(operator => ALL_OPERATORS.includes(operator));\n\n // Do not allow mixing single & multiselection operators.\n // Remove multiselection operators if any of the single selection ones is present.\n if (operators.includes(OPERATOR_IS) || operators.includes(OPERATOR_IS_NOT)) {\n operators = operators.filter(operator => [OPERATOR_IS, OPERATOR_IS_NOT].includes(operator));\n }\n return operators;\n}\n//# sourceMappingURL=utils.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst arrowDown = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"m16.5 13.5-3.7 3.7V4h-1.5v13.2l-3.8-3.7-1 1 5.5 5.6 5.5-5.6z\"\n })\n});\nexport default arrowDown;\n//# sourceMappingURL=arrow-down.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst arrowLeft = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M20 11.2H6.8l3.7-3.7-1-1L3.9 12l5.6 5.5 1-1-3.7-3.7H20z\"\n })\n});\nexport default arrowLeft;\n//# sourceMappingURL=arrow-left.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst arrowRight = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"m14.5 6.5-1 1 3.7 3.7H4v1.6h13.2l-3.7 3.7 1 1 5.6-5.5z\"\n })\n});\nexport default arrowRight;\n//# sourceMappingURL=arrow-right.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst arrowUp = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M12 3.9 6.5 9.5l1 1 3.8-3.7V20h1.5V6.8l3.7 3.7 1-1z\"\n })\n});\nexport default arrowUp;\n//# sourceMappingURL=arrow-up.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst backup = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M5.5 12h1.75l-2.5 3-2.5-3H4a8 8 0 113.134 6.35l.907-1.194A6.5 6.5 0 105.5 12zm9.53 1.97l-2.28-2.28V8.5a.75.75 0 00-1.5 0V12a.747.747 0 00.218.529l1.282-.84-1.28.842 2.5 2.5a.75.75 0 101.06-1.061z\"\n })\n});\nexport default backup;\n//# sourceMappingURL=backup.js.map","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst blockTable = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v3.5h-15V5c0-.3.2-.5.5-.5zm8 5.5h6.5v3.5H13V10zm-1.5 3.5h-7V10h7v3.5zm-7 5.5v-4h7v4.5H5c-.3 0-.5-.2-.5-.5zm14.5.5h-6V15h6.5v4c0 .3-.2.5-.5.5z\"\n })\n});\nexport default blockTable;\n//# sourceMappingURL=block-table.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst category = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M6 5.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM4 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2V6zm11-.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM13 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2h-3a2 2 0 01-2-2V6zm5 8.5h-3a.5.5 0 00-.5.5v3a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-3a.5.5 0 00-.5-.5zM15 13a2 2 0 00-2 2v3a2 2 0 002 2h3a2 2 0 002-2v-3a2 2 0 00-2-2h-3zm-9 1.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5v-3a.5.5 0 01.5-.5zM4 15a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2v-3z\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })\n});\nexport default category;\n//# sourceMappingURL=category.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst check = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z\"\n })\n});\nexport default check;\n//# sourceMappingURL=check.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst chevronDown = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z\"\n })\n});\nexport default chevronDown;\n//# sourceMappingURL=chevron-down.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst chevronUp = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z\"\n })\n});\nexport default chevronUp;\n//# sourceMappingURL=chevron-up.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst closeSmall = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z\"\n })\n});\nexport default closeSmall;\n//# sourceMappingURL=close-small.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst cog = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n d: \"M10.289 4.836A1 1 0 0111.275 4h1.306a1 1 0 01.987.836l.244 1.466c.787.26 1.503.679 2.108 1.218l1.393-.522a1 1 0 011.216.437l.653 1.13a1 1 0 01-.23 1.273l-1.148.944a6.025 6.025 0 010 2.435l1.149.946a1 1 0 01.23 1.272l-.653 1.13a1 1 0 01-1.216.437l-1.394-.522c-.605.54-1.32.958-2.108 1.218l-.244 1.466a1 1 0 01-.987.836h-1.306a1 1 0 01-.986-.836l-.244-1.466a5.995 5.995 0 01-2.108-1.218l-1.394.522a1 1 0 01-1.217-.436l-.653-1.131a1 1 0 01.23-1.272l1.149-.946a6.026 6.026 0 010-2.435l-1.148-.944a1 1 0 01-.23-1.272l.653-1.131a1 1 0 011.217-.437l1.393.522a5.994 5.994 0 012.108-1.218l.244-1.466zM14.929 12a3 3 0 11-6 0 3 3 0 016 0z\",\n clipRule: \"evenodd\"\n })\n});\nexport default cog;\n//# sourceMappingURL=cog.js.map","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst commentAuthorAvatar = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n d: \"M7.25 16.437a6.5 6.5 0 1 1 9.5 0V16A2.75 2.75 0 0 0 14 13.25h-4A2.75 2.75 0 0 0 7.25 16v.437Zm1.5 1.193a6.47 6.47 0 0 0 3.25.87 6.47 6.47 0 0 0 3.25-.87V16c0-.69-.56-1.25-1.25-1.25h-4c-.69 0-1.25.56-1.25 1.25v1.63ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm10-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z\",\n clipRule: \"evenodd\"\n })\n});\nexport default commentAuthorAvatar;\n//# sourceMappingURL=comment-author-avatar.js.map","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst commentContent = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.68822 16.625L5.5 17.8145L5.5 5.5L18.5 5.5L18.5 16.625L6.68822 16.625ZM7.31 18.125L19 18.125C19.5523 18.125 20 17.6773 20 17.125L20 5C20 4.44772 19.5523 4 19 4H5C4.44772 4 4 4.44772 4 5V19.5247C4 19.8173 4.16123 20.086 4.41935 20.2237C4.72711 20.3878 5.10601 20.3313 5.35252 20.0845L7.31 18.125ZM16 9.99997H8V8.49997H16V9.99997ZM8 14H13V12.5H8V14Z\"\n })\n});\nexport default commentContent;\n//# sourceMappingURL=comment-content.js.map","/**\n * Internal dependencies\n */\n\nimport { default as pencil } from './pencil';\nexport default pencil;\n//# sourceMappingURL=edit.js.map","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst external = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z\"\n })\n});\nexport default external;\n//# sourceMappingURL=external.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst formatListBulletsRTL = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M4 8.8h8.9V7.2H4v1.6zm0 7h8.9v-1.5H4v1.5zM18 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"\n })\n});\nexport default formatListBulletsRTL;\n//# sourceMappingURL=format-list-bullets-rtl.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst formatListBullets = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M11.1 15.8H20v-1.5h-8.9v1.5zm0-8.6v1.5H20V7.2h-8.9zM6 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n })\n});\nexport default formatListBullets;\n//# sourceMappingURL=format-list-bullets.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst funnel = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M10 17.5H14V16H10V17.5ZM6 6V7.5H18V6H6ZM8 12.5H16V11H8V12.5Z\"\n })\n});\nexport default funnel;\n//# sourceMappingURL=funnel.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst heading = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M6 5V18.5911L12 13.8473L18 18.5911V5H6Z\"\n })\n});\nexport default heading;\n//# sourceMappingURL=heading.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst login = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M11 14.5l1.1 1.1 3-3 .5-.5-.6-.6-3-3-1 1 1.7 1.7H5v1.5h7.7L11 14.5zM16.8 5h-7c-1.1 0-2 .9-2 2v1.5h1.5V7c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v10c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5v-1.5H7.8V17c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2z\"\n })\n});\nexport default login;\n//# sourceMappingURL=login.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst moreVertical = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\"\n })\n});\nexport default moreVertical;\n//# sourceMappingURL=more-vertical.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst next = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M6.6 6L5.4 7l4.5 5-4.5 5 1.1 1 5.5-6-5.4-6zm6 0l-1.1 1 4.5 5-4.5 5 1.1 1 5.5-6-5.5-6z\"\n })\n});\nexport default next;\n//# sourceMappingURL=next.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst pencil = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z\"\n })\n});\nexport default pencil;\n//# sourceMappingURL=pencil.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst post = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"m7.3 9.7 1.4 1.4c.2-.2.3-.3.4-.5 0 0 0-.1.1-.1.3-.5.4-1.1.3-1.6L12 7 9 4 7.2 6.5c-.6-.1-1.1 0-1.6.3 0 0-.1 0-.1.1-.3.1-.4.2-.6.4l1.4 1.4L4 11v1h1l2.3-2.3zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z\"\n })\n});\nexport default post;\n//# sourceMappingURL=post.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst previous = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M11.6 7l-1.1-1L5 12l5.5 6 1.1-1L7 12l4.6-5zm6 0l-1.1-1-5.5 6 5.5 6 1.1-1-4.6-5 4.6-5z\"\n })\n});\nexport default previous;\n//# sourceMappingURL=previous.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst search = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z\"\n })\n});\nexport default search;\n//# sourceMappingURL=search.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst seen = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M3.99961 13C4.67043 13.3354 4.6703 13.3357 4.67017 13.3359L4.67298 13.3305C4.67621 13.3242 4.68184 13.3135 4.68988 13.2985C4.70595 13.2686 4.7316 13.2218 4.76695 13.1608C4.8377 13.0385 4.94692 12.8592 5.09541 12.6419C5.39312 12.2062 5.84436 11.624 6.45435 11.0431C7.67308 9.88241 9.49719 8.75 11.9996 8.75C14.502 8.75 16.3261 9.88241 17.5449 11.0431C18.1549 11.624 18.6061 12.2062 18.9038 12.6419C19.0523 12.8592 19.1615 13.0385 19.2323 13.1608C19.2676 13.2218 19.2933 13.2686 19.3093 13.2985C19.3174 13.3135 19.323 13.3242 19.3262 13.3305L19.3291 13.3359C19.3289 13.3357 19.3288 13.3354 19.9996 13C20.6704 12.6646 20.6703 12.6643 20.6701 12.664L20.6697 12.6632L20.6688 12.6614L20.6662 12.6563L20.6583 12.6408C20.6517 12.6282 20.6427 12.6108 20.631 12.5892C20.6078 12.5459 20.5744 12.4852 20.5306 12.4096C20.4432 12.2584 20.3141 12.0471 20.1423 11.7956C19.7994 11.2938 19.2819 10.626 18.5794 9.9569C17.1731 8.61759 14.9972 7.25 11.9996 7.25C9.00203 7.25 6.82614 8.61759 5.41987 9.9569C4.71736 10.626 4.19984 11.2938 3.85694 11.7956C3.68511 12.0471 3.55605 12.2584 3.4686 12.4096C3.42484 12.4852 3.39142 12.5459 3.36818 12.5892C3.35656 12.6108 3.34748 12.6282 3.34092 12.6408L3.33297 12.6563L3.33041 12.6614L3.32948 12.6632L3.32911 12.664C3.32894 12.6643 3.32879 12.6646 3.99961 13ZM11.9996 16C13.9326 16 15.4996 14.433 15.4996 12.5C15.4996 10.567 13.9326 9 11.9996 9C10.0666 9 8.49961 10.567 8.49961 12.5C8.49961 14.433 10.0666 16 11.9996 16Z\"\n })\n});\nexport default seen;\n//# sourceMappingURL=seen.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst starFilled = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z\"\n })\n});\nexport default starFilled;\n//# sourceMappingURL=star-filled.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst trash = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 5.5A2.25 2.25 0 0 0 9.878 7h4.244A2.251 2.251 0 0 0 12 5.5ZM12 4a3.751 3.751 0 0 0-3.675 3H5v1.5h1.27l.818 8.997a2.75 2.75 0 0 0 2.739 2.501h4.347a2.75 2.75 0 0 0 2.738-2.5L17.73 8.5H19V7h-3.325A3.751 3.751 0 0 0 12 4Zm4.224 4.5H7.776l.806 8.861a1.25 1.25 0 0 0 1.245 1.137h4.347a1.25 1.25 0 0 0 1.245-1.137l.805-8.861Z\"\n })\n});\nexport default trash;\n//# sourceMappingURL=trash.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst unseen = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M4.67 10.664s-2.09 1.11-2.917 1.582l.494.87 1.608-.914.002.002c.343.502.86 1.17 1.563 1.84.348.33.742.663 1.185.976L5.57 16.744l.858.515 1.02-1.701a9.1 9.1 0 0 0 4.051 1.18V19h1v-2.263a9.1 9.1 0 0 0 4.05-1.18l1.021 1.7.858-.514-1.034-1.723c.442-.313.837-.646 1.184-.977.703-.669 1.22-1.337 1.563-1.839l.002-.003 1.61.914.493-.87c-1.75-.994-2.918-1.58-2.918-1.58l-.003.005a8.29 8.29 0 0 1-.422.689 10.097 10.097 0 0 1-1.36 1.598c-1.218 1.16-3.042 2.293-5.544 2.293-2.503 0-4.327-1.132-5.546-2.293a10.099 10.099 0 0 1-1.359-1.599 8.267 8.267 0 0 1-.422-.689l-.003-.005Z\"\n })\n});\nexport default unseen;\n//# sourceMappingURL=unseen.js.map","/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tstore as coreStore,\n\tgetLastEntityDeleteError,\n} from '@wordpress/core-data';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\tButton,\n} from '@wordpress/components';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { external, trash, backup, edit } from '@wordpress/icons';\nimport { addQueryArgs } from '@wordpress/url';\n\nfunction getItemTitle( item ) {\n\tif ( typeof item.title === 'string' ) {\n\t\treturn decodeEntities( item.title );\n\t}\n\treturn decodeEntities( item.title?.rendered || '' );\n}\n\nexport const trashPostAction = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Move to Trash' ),\n\tsupportsBulk: true,\n\ticon: trash,\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\thideModalHeader: true,\n\tRenderModal: ( { items: posts, closeModal } ) => {\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{ posts.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The number of posts (always plural).\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to delete %s posts?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tdecodeEntities( posts.length )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The page's title.\n\t\t\t\t\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\tposts && posts[ 0 ]?.title?.rendered\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ) }\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\t\t\t\tposts.map( async ( post ) => {\n\t\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t\tposts.length > 1\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t'The selected posts were moved to the trash.'\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: The page's title. */\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'\"%s\" moved to the Trash.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\t\t\t\t\tposts[ 0 ].title.rendered\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\t\tid: 'edit-site-page-trashed',\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} catch ( error ) {\n\t\t\t\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\t\t\t\terror.message &&\n\t\t\t\t\t\t\t\t\terror.code !== 'unknown_error'\n\t\t\t\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t\t\t\t: _n(\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the page to the trash.',\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the pages to the trash.',\n\t\t\t\t\t\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t\t\t\t\t );\n\n\t\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t},\n};\n\nexport function usePermanentlyDeletePostAction() {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'permanently-delete',\n\t\t\tlabel: __( 'Permanently delete' ),\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn deleteEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ force: true },\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\t// If all the promises were fulfilled with success.\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The posts's title. */\n\t\t\t\t\t\t\t__( '\"%s\" permanently deleted.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = __(\n\t\t\t\t\t\t\t'The posts were permanently deleted.'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'edit-site-post-permanently-deleted',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to permanently delete a single post.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to permanently delete multiple posts\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[ createSuccessNotice, createErrorNotice, deleteEntityRecord ]\n\t);\n}\n\nexport const viewPostAction = {\n\tid: 'view-post',\n\tlabel: __( 'View' ),\n\tisPrimary: true,\n\ticon: external,\n\tisEligible( post ) {\n\t\treturn post.status !== 'trash';\n\t},\n\tcallback( post ) {\n\t\tdocument.location.href = post.link;\n\t},\n};\n\nexport const editPostAction = {\n\tid: 'edit-post',\n\tlabel: __( 'Edit' ),\n\tisPrimary: true,\n\ticon: edit,\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\tconst href = addQueryArgs( 'post.php', {\n\t\t\tpost: post.id,\n\t\t\taction: 'edit',\n\t\t} );\n\t\tdocument.location.href = href;\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nexport const postRevisionsAction = {\n\tid: 'view-post-revisions',\n\tlabel: __( 'View revisions' ),\n\tisPrimary: false,\n\tisEligible: ( post ) => {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst lastRevisionId =\n\t\t\tpost?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ?? null;\n\t\tconst revisionsCount =\n\t\t\tpost?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn lastRevisionId && revisionsCount > 1;\n\t},\n\tcallback( post ) {\n\t\tconst href = addQueryArgs( 'revision.php', {\n\t\t\trevision: post?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id,\n\t\t} );\n\t\tdocument.location.href = href;\n\t},\n};\n\nexport const deleteItem = {\n\tid: 'delete-item',\n\tlabel: __( 'Delete form', 'tropical-juice' ),\n\tisPrimary: false,\n\tisDestructive: true,\n\ticon: trash,\n\thideModalHeader: true,\n\tRenderModal: ( { item: form, closeModal } ) => {\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tconst handleDelete = async () => {\n\t\t\tconst success = await deleteEntityRecord(\n\t\t\t\t'tropical-juice/v1',\n\t\t\t\t'forms',\n\t\t\t\tform.id\n\t\t\t);\n\t\t\tif ( success ) {\n\t\t\t\t// Tell the user the operation succeeded:\n\t\t\t\tcreateSuccessNotice( 'The form was deleted!', {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tconst lastError = getLastEntityDeleteError(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'page',\n\t\t\t\t\tform.id\n\t\t\t\t);\n\t\t\t\tconst message =\n\t\t\t\t\t( lastError?.message || 'There was an error.' ) +\n\t\t\t\t\t' Please refresh the page and try again.';\n\t\t\t\t// Tell the user how exactly the operation have failed:\n\t\t\t\tcreateErrorNotice( message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\n\t\tconst { isDeleting } = useSelect(\n\t\t\t( select ) => ( {\n\t\t\t\tisDeleting: select( coreStore ).isDeletingEntityRecord(\n\t\t\t\t\t'tropical-juice/v1',\n\t\t\t\t\t'forms',\n\t\t\t\t\tform.id\n\t\t\t\t),\n\t\t\t} ),\n\t\t\t[ form.id ]\n\t\t);\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: %s: The form to removee.\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Are you sure you want to delete form url: \"%s\"?',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tdecodeEntities( form.attributes.url )\n\t\t\t\t\t) }\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t handleDelete( form ) }\n\t\t\t\t\t\tisBusy={ isDeleting }\n\t\t\t\t\t\tdisabled={ isDeleting }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t},\n};\n\nexport function useRestorePostAction() {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'restore',\n\t\t\tlabel: __( 'Restore' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\ttry {\n\t\t\t\t\tfor ( const post of posts ) {\n\t\t\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\tposts.length > 1\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t\t\t__( '%d posts have been restored.' ),\n\t\t\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t\t\t__( '\"%s\" has been restored.' ),\n\t\t\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'edit-site-post-restored',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} catch ( error ) {\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\tif (\n\t\t\t\t\t\terror.message &&\n\t\t\t\t\t\terror.code !== 'unknown_error' &&\n\t\t\t\t\t\terror.message\n\t\t\t\t\t) {\n\t\t\t\t\t\terrorMessage = error.message;\n\t\t\t\t\t} else if ( posts.length > 1 ) {\n\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t'An error occurred while restoring the posts.'\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t'An error occurred while restoring the post.'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\teditEntityRecord,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tstore as coreStore,\n\tgetLastEntityDeleteError,\n} from '@wordpress/core-data';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\tButton,\n} from '@wordpress/components';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { trash } from '@wordpress/icons';\n\nexport const trashSubmissionAction = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Move to Trash' ),\n\tisPrimary: true,\n\tisBulk: true,\n\ticon: trash,\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\thideModalHeader: true,\n\tRenderModal: ( { items: submissions, closeModal } ) => {\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{ submissions.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The number of submissions (always plural).\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to delete %s submissions?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tdecodeEntities( submissions.length )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The page's title.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to delete submission N° %s?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\tsubmissions && submissions[ 0 ]?.id\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ) }\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\t\t\t\tsubmissions.map( async ( post ) => {\n\t\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t\t'formello/v1',\n\t\t\t\t\t\t\t\t\t\t\t'submissions',\n\t\t\t\t\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t\tsubmissions.length > 1\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t'The selected submissions were moved to the trash.'\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: The page's title. */\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Submission \"%s\" moved to the Trash.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\t\t\t\t\tsubmissions[ 0 ].id\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\t\tid: 'edit-site-page-trashed',\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} catch ( error ) {\n\t\t\t\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\t\t\t\terror.message &&\n\t\t\t\t\t\t\t\t\terror.code !== 'unknown_error'\n\t\t\t\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t\t\t\t: _n(\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the page to the trash.',\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the pages to the trash.',\n\t\t\t\t\t\t\t\t\t\t\t\tsubmissions.length\n\t\t\t\t\t\t\t\t\t\t );\n\n\t\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t},\n};\n","import {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tExternalLink,\n} from '@wordpress/components';\n\nimport { __ } from '@wordpress/i18n';\nimport { PromoSettings } from '../../components/promo';\n\nexport default function Help() {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Need help?', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t

\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Detailed documentation is available on the plugin website.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t

\n\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Documentation', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t\t

\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'We would love to help you out if you need any help.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t

\n\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Ask a question', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Do you like the plugin?', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t

\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'If you like Formello plugin you can share a review to help us and spread some love!',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Rate 5 stars!', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n","import { Spinner } from '@wordpress/components';\n\nexport default function LoadingSpinner( { text } ) {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t{ text }\n\t\t
\n\t);\n}\n","import { ReactComponent as Logo } from '../../../assets/icons/logo.svg';\nimport { __experimentalHStack as HStack } from '@wordpress/components';\n\nexport default function Header( { title, className, children } ) {\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t

{ title }

\n\t\t\t\t\t{ children }\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\t// eslint-disable-next-line @wordpress/no-unsafe-wp-apis\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { useState, Fragment } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Renders the update settings buttons and animation\n *\n * @since 2.1.0\n * @param {Object} props All the props passed to this function\n * @return {string}\t\t Return the rendered JSX\n */\nexport default function UpdateSettings( props ) {\n\tconst {\n\t\treq,\n\t\ttext,\n\t\tdisabled,\n\t\tvariant,\n\t\tisDestructive = false,\n\t\twithConfirm = false,\n\t\tconfirmMessage = __( 'Are you sure?', 'formello' ),\n\t} = props;\n\n\tconst [ showConfirmDialog, setShowConfirmDialog ] = useState( false );\n\tconst [ loading, setLoading ] = useState( false );\n\tconst { createNotice } = useDispatch( noticesStore );\n\n\tconst action = () => {\n\t\tif ( withConfirm ) {\n\t\t\tsetShowConfirmDialog( true );\n\t\t} else {\n\t\t\trunAction();\n\t\t}\n\t};\n\n\tconst runAction = () => {\n\t\tsetLoading( true );\n\t\tsetShowConfirmDialog( false );\n\t\treq()\n\t\t\t.then( ( data ) => {\n\t\t\t\tif ( data?.success ) {\n\t\t\t\t\tcreateNotice( 'info', '🎯 ' + data.response, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tcreateNotice(\n\t\t\t\t\t\t'info',\n\t\t\t\t\t\t'🎯 ' + __( 'Settings saved.', 'formello' ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateNotice( 'error', 'âš ï¸ ' + error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\texplicitDismiss: true,\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.finally( () => setLoading( false ) );\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{ text }\n\t\t\t\t\n\t\t\t\t setShowConfirmDialog( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ confirmMessage }\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n","import { createContext } from '@wordpress/element';\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\nexport const SettingsContext = createContext();\n\nfunction SettingsContextProvider( props ) {\n\tconst [ settings ] = useEntityProp( 'root', 'site', 'formello' );\n\n\tconst { saveEditedEntityRecord, editEntityRecord } =\n\t\tuseDispatch( coreStore );\n\n\tconst { isSaving, hasEdits } = useSelect(\n\t\t( select ) => ( {\n\t\t\tisSaving: select( coreStore ).isSavingEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'site'\n\t\t\t),\n\t\t\thasEdits: select( coreStore ).hasEditsForEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'site',\n\t\t\t\tundefined,\n\t\t\t\t'formello'\n\t\t\t),\n\t\t} ),\n\t\t[]\n\t);\n\n\tconst saveSettings = () => {\n\t\treturn saveEditedEntityRecord( 'root', 'site' );\n\t};\n\n\tconst updateSetting = ( key, val ) => {\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tformello: {\n\t\t\t\t...settings,\n\t\t\t\t[ key ]: val,\n\t\t\t},\n\t\t} );\n\t};\n\n\treturn (\n\t\t\n\t\t\t{ props.children }\n\t\t\n\t);\n}\n\nexport default SettingsContextProvider;\n","/* eslint-disable @wordpress/no-unsafe-wp-apis */\nimport { createRoot, useEffect } from '@wordpress/element';\nimport { dispatch, useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { SnackbarList } from '@wordpress/components';\nimport './style.scss';\nimport { Forms } from './pages/submissions/forms';\nimport { Submissions } from './pages/submissions/submissions';\nimport { Submission } from './pages/submission';\nimport Settings from './pages/settings';\nimport Tools from './pages/tools';\nimport Addons from './pages/addons';\nimport { getQueryArg } from '@wordpress/url';\nimport SettingsContextProvider from './context/settings-context';\nimport { RouterProvider, useLocation, useHistory } from './router';\n\n/**\n * Add our custom entities for retrieving external setting and variable data.\n *\n * @since 2.5.0\n */\ndispatch( 'core' ).addEntities( [\n\t{\n\t\tlabel: __( 'Formello submissions', 'formello' ),\n\t\tkind: 'formello/v1',\n\t\tname: 'submissions',\n\t\tbaseURL: '/formello/v1/submissions',\n\t\tsupportsPagination: true,\n\t},\n\t{\n\t\tlabel: __( 'Formello addons', 'formello' ),\n\t\tkind: 'formello/v1',\n\t\tname: 'addons',\n\t\tbaseURL: '/formello/v1/addons',\n\t},\n\t{\n\t\tlabel: __( 'Formello columns', 'formello' ),\n\t\tkind: 'formello/v1',\n\t\tname: 'columns',\n\t\tbaseURL: '/formello/v1/columns',\n\t},\n] );\n\nconst Router = () => {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\n\tconst menuRoot = document.querySelector( '#toplevel_page_formello' );\n\tconst reset = () => {\n\t\tconst page = getQueryArg( window.location.href, 'page' );\n\t\tif ( ! page ) {\n\t\t\treturn;\n\t\t}\n\t\tfor ( const child of menuRoot.querySelectorAll( 'a' ) ) {\n\t\t\tconst target = getQueryArg( child.href, 'page' );\n\t\t\tif ( page === target ) {\n\t\t\t\tchild.classList.add( 'current' );\n\t\t\t\tchild.parentElement.classList.add( 'current' );\n\t\t\t} else {\n\t\t\t\tchild.classList.remove( 'current' );\n\t\t\t\tchild.parentElement.classList.remove( 'current' );\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleChange = ( e ) => {\n\t\te.preventDefault();\n\n\t\thistory.push( {\n\t\t\tpage: getQueryArg( e.target.href, 'page' ),\n\t\t} );\n\t\treset();\n\t};\n\n\tuseEffect( () => {\n\t\treset();\n\t\tmenuRoot.addEventListener( 'click', handleChange, false );\n\n\t\treturn () => {\n\t\t\tdocument\n\t\t\t\t.querySelector( '#toplevel_page_formello' )\n\t\t\t\t.removeEventListener( 'click', handleChange );\n\t\t};\n\t}, [] );\n\n\tif ( 'formello-settings' === params.page ) {\n\t\treturn ;\n\t}\n\tif ( 'formello-tools' === params.page ) {\n\t\treturn ;\n\t}\n\tif ( 'formello-addons' === params.page ) {\n\t\treturn ;\n\t}\n\tif (\n\t\t'formello' === params.page &&\n\t\t'submission' === params.section &&\n\t\tparams.submission_id\n\t) {\n\t\treturn ;\n\t}\n\tif (\n\t\t'formello' === params.page &&\n\t\t'submissions' === params.section &&\n\t\tparams.form_id\n\t) {\n\t\treturn ;\n\t}\n\treturn ;\n};\n\nconst App = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nfunction Notifications() {\n\tconst notices = useSelect(\n\t\t( select ) => select( noticesStore ).getNotices(),\n\t\t[]\n\t);\n\tconst { removeNotice } = useDispatch( noticesStore );\n\tconst snackbarNotices = notices.filter(\n\t\t( { type } ) => type === 'snackbar'\n\t);\n\n\treturn (\n\t\t\n\t);\n}\n\nwindow.addEventListener( 'DOMContentLoaded', () => {\n\tconst domNode = document.getElementById( 'formello-admin' );\n\tconst root = createRoot( domNode );\n\n\troot.render( );\n} );\n","import { __, sprintf } from '@wordpress/i18n';\nimport {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tCardMedia,\n\tCardFooter,\n\tButton,\n\tToggleControl,\n\tModal,\n} from '@wordpress/components';\nimport { useState, Fragment, useContext } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { SettingsContext } from '../../context/settings-context';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\n\nexport default function Addon( props ) {\n\tconst { settings, updateSetting } = useContext( SettingsContext );\n\tconst { addon } = props;\n\n\tconst [ isOpen, setOpen ] = useState( false );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst popper = useEntityRecord( 'root', 'plugin', 'popper/popper' );\n\tconst formelloPro = useEntityRecord(\n\t\t'root',\n\t\t'plugin',\n\t\t'formello-pro/formello-pro'\n\t);\n\n\tconst installPopper = () => {\n\t\tif ( popper.record ) {\n\t\t\tpopper.edit( { status: 'active' } );\n\t\t\tpopper.save();\n\t\t} else {\n\t\t\tsaveEntityRecord( 'root', 'plugin', {\n\t\t\t\tslug: 'popper',\n\t\t\t\tstatus: 'active',\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst { isInstalling } = useSelect(\n\t\t( select ) => ( {\n\t\t\tisInstalling: select( coreStore ).isSavingEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'plugin',\n\t\t\t\t'popper/popper'\n\t\t\t),\n\t\t} ),\n\t\t[]\n\t);\n\n\tconst toggleAddon = ( val, slug ) => {\n\t\tif ( ! formelloPro.record || 'active' !== formelloPro.record.status ) {\n\t\t\treturn setOpen( true );\n\t\t}\n\t\tif ( val ) {\n\t\t\tupdateSetting( 'enabled_addons', [\n\t\t\t\t...settings.enabled_addons,\n\t\t\t\tslug,\n\t\t\t] );\n\t\t} else {\n\t\t\tconst enabledAddons = settings.enabled_addons.filter( ( item ) => {\n\t\t\t\treturn item !== slug;\n\t\t\t} );\n\t\t\tupdateSetting( 'enabled_addons', enabledAddons );\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ addon.title }

\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t

{ addon.excerpt }

\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{ 'popper' === addon.slug ? (\n\t\t\t\t\t\t installPopper() }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tisBusy={ popper.isResolving || isInstalling }\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\tpopper.isResolving ||\n\t\t\t\t\t\t\t\t'active' === popper.editedRecord.status ||\n\t\t\t\t\t\t\t\tisInstalling\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taria-disabled={ popper.isResolving }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ 'active' === popper.editedRecord.status\n\t\t\t\t\t\t\t\t? __( 'Is Active' )\n\t\t\t\t\t\t\t\t: __( 'Activate' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\ttoggleAddon( checked, addon.slug )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\tformelloPro.isResolving ||\n\t\t\t\t\t\t\t\t'active' === formelloPro.record?.status\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\n\t\t\t
\n\t\t\t{ isOpen && (\n\t\t\t\t setOpen( false ) }\n\t\t\t\t\t__experimentalHideHeader\n\t\t\t\t>\n\t\t\t\t\t

\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Addon name */\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'To enable %s addon you need a Formello Pro license.',\n\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\taddon.title\n\t\t\t\t\t\t) }\n\t\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Download', 'formello-pro' ) }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t) }\n\t\t
\n\t);\n}\n","import Header from '../../components/masthead.js';\nimport { __ } from '@wordpress/i18n';\nimport { useState, Fragment, useContext } from '@wordpress/element';\nimport {\n\tTabPanel,\n\t// eslint-disable-next-line @wordpress/no-unsafe-wp-apis\n\t__experimentalUseNavigator as useNavigator,\n\t// eslint-disable-next-line @wordpress/no-unsafe-wp-apis\n\t__experimentalGrid as Grid,\n\tNotice,\n} from '@wordpress/components';\nimport LoadingSpinner from '../../components/loading-spinner.js';\nimport Addon from './addon.js';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { SettingsContext } from '../../context/settings-context';\n\nexport default function Addons() {\n\tconst { hasUpdates, saveSettings } = useContext( SettingsContext );\n\n\tconst addonsTabs = [\n\t\t{\n\t\t\tname: 'general',\n\t\t\ttitle: __( 'All', 'formello' ),\n\t\t},\n\t\t{\n\t\t\tname: 'integrations',\n\t\t\ttitle: __( 'Integrations', 'formello' ),\n\t\t},\n\t\t{\n\t\t\tname: 'utility',\n\t\t\ttitle: __( 'Utility', 'formello' ),\n\t\t},\n\t\t{\n\t\t\tname: 'free',\n\t\t\ttitle: __( 'Free', 'formello' ),\n\t\t},\n\t];\n\n\tconst [ filter, setFilter ] = useState( 'general' );\n\n\tconst { params } = useNavigator();\n\tconst initialTab = params.tab || 'general';\n\n\tconst { records: addons, hasResolved } = useEntityRecords(\n\t\t'formello/v1',\n\t\t'addons',\n\t\t{ per_page: 100 }\n\t);\n\n\tconst filterAddon = ( element ) => {\n\t\tif ( 'general' === filter ) {\n\t\t\treturn addons;\n\t\t}\n\t\treturn element.category === filter;\n\t};\n\n\tif ( ! hasResolved ) {\n\t\treturn ;\n\t}\n\n\treturn (\n\t\t\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t{ hasUpdates && (\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tsaveSettings().then( () =>\n\t\t\t\t\t\t\t\t\t\twindow.location.reload()\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'To make effective your choice, you must save it.',\n\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t) }\n\n\t\t\t\t setFilter( tabName ) }\n\t\t\t\t\tinitialTabName={ initialTab }\n\t\t\t\t>\n\t\t\t\t\t{ () => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{ addons\n\t\t\t\t\t\t\t\t\t\t.filter( ( element ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn filterAddon( element );\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t.map( ( addon ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n}\n","import {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tTextControl,\n\tRadioControl,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useContext, Fragment } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\nimport { SettingsContext } from '../../../context/settings-context';\n\nexport default function Captcha() {\n\tconst { settings, updateSetting } = useContext( SettingsContext );\n\tconst reCaptcha = settings.reCaptcha;\n\tconst hCaptcha = settings.hCaptcha;\n\n\tfunction setCaptcha( key, value, type ) {\n\t\tconst newSettings = Object.assign( {}, settings[ type ] );\n\t\tnewSettings[ key ] = value;\n\t\tupdateSetting( type, newSettings );\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Google reCaptcha', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCaptcha( 'version', val, 'reCaptcha' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCaptcha( 'site_key', val, 'reCaptcha' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCaptcha( 'secret_key', val, 'reCaptcha' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ 3 === Number( reCaptcha.version ) && (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetCaptcha( 'threshold', val, 'reCaptcha' );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tstep={ '0.1' }\n\t\t\t\t\t\t\t\tmin={ '0' }\n\t\t\t\t\t\t\t\tmax={ '1' }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'hCaptcha', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCaptcha( 'version', val, 'hCaptcha' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCaptcha( 'site_key', val, 'hCaptcha' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCaptcha( 'secret_key', val, 'hCaptcha' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCaptcha( 'threshold', val, 'hCaptcha' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tstep={ '0.1' }\n\t\t\t\t\t\t\tmin={ '0' }\n\t\t\t\t\t\t\tmax={ '1' }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n","import {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tExternalLink,\n\tButton,\n\t__experimentalInputControl as InputControl,\n\tNotice,\n} from '@wordpress/components';\n\nimport {\n\tRawHTML,\n\tuseContext,\n\tFragment,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\n\nimport { __, sprintf } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport { dateI18n } from '@wordpress/date';\nimport { SettingsContext } from '../../../context/settings-context';\n\nexport default function General() {\n\tconst { settings, updateSetting } = useContext( SettingsContext );\n\n\tconst licenseKey = useRef( settings.license?.license_key?.key ?? '' );\n\n\tconst [ loading, setLoading ] = useState( false );\n\tconst [ message, setMessage ] = useState( false );\n\n\tconst updateLicense = ( endpoint = 'activate' ) => {\n\t\tsetLoading( true );\n\t\tapiFetch( {\n\t\t\tpath: '/formello/v1/license/' + endpoint,\n\t\t\tmethod: 'POST',\n\t\t\tdata: {\n\t\t\t\tlicense: licenseKey.current,\n\t\t\t},\n\t\t} )\n\t\t\t.then( ( result ) => {\n\t\t\t\tif ( result.response?.success ) {\n\t\t\t\t\tupdateSetting( 'license', result.response.license );\n\t\t\t\t}\n\n\t\t\t\tif ( ! result.success ) {\n\t\t\t\t\tsetMessage( result.response );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.finally( () => setLoading( false ) );\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'License', 'formello' ) }

\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{ __( 'Get a PRO License', 'formello' ) }\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'

Your pro license key provides access to addons. You can still using Formello without a license key.

',\n\t\t\t\t\t\t'formello'\n\t\t\t\t\t) }\n\t\t\t\t
\n\t\t\t\t ( licenseKey.current = val ) }\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t updateLicense( 'validate' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t updateLicense() }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ message && (\n\t\t\t\t\t\n\t\t\t\t\t\t{ message }\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\t{ settings?.license?.license_key?.status && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: License status. */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'

License status: %1$s. Expires: %2$s

',\n\t\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tsettings.license.license_key.status,\n\t\t\t\t\t\t\t\t__( 'Never', 'tropical-juice' ) !==\n\t\t\t\t\t\t\t\t\tsettings.license.license_key.expires_at\n\t\t\t\t\t\t\t\t\t? dateI18n(\n\t\t\t\t\t\t\t\t\t\t\t'd M, Y',\n\t\t\t\t\t\t\t\t\t\t\tsettings.license.license_key\n\t\t\t\t\t\t\t\t\t\t\t\t.expires_at\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __( 'Never', 'tropical-juice' )\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t
\n\t\t
\n\t);\n}\n","import {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\twithFilters,\n\tButton,\n} from '@wordpress/components';\nimport { Fragment, createInterpolateElement } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n/**\n * Internal dependencies\n */\nimport { useHistory } from '../../../router';\nimport {\n\tintegrations,\n\ticons,\n} from '../../../../form-settings/actions/constants';\n\nconst Integrations = withFilters( 'formello.settings.integrations' )( () => {\n\tconst history = useHistory();\n\tconst noticeString = ( text ) =>\n\t\tcreateInterpolateElement( text, {\n\t\t\ta: (\n\t\t\t\t {\n\t\t\t\t\t\thistory.push( { page: 'formello-addons' } );\n\t\t\t\t\t} }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t/>\n\t\t\t),\n\t\t} );\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'Integrations', 'formello' ) }

\n\t\t\t
\n\n\t\t\t\n\t\t\t\t

\n\t\t\t\t\t{ noticeString(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Go to to enable your preferred integrations.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t

\n\t\t\t
\n\t\t
\n\t);\n} );\n\nconst IntegrationsTab = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default IntegrationsTab;\n","import {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tExternalLink,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useContext } from '@wordpress/element';\nimport { SettingsContext } from '../../../context/settings-context';\n\nconst LoggingTab = () => {\n\tconst { settings, updateSetting } = useContext( SettingsContext );\n\tconst log = settings.log;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'Logging', 'formello' ) }

\n\t\t\t
\n\n\t\t\t\n\t\t\t\t

\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Enable logging can hurt site performance. Please activate logging only for debug purpose.',\n\t\t\t\t\t\t'formello'\n\t\t\t\t\t) }\n\t\t\t\t

\n\n\t\t\t\t updateSetting( 'log', val ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t\t{ log && (\n\t\t\t\t\t

\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ __( 'View log', 'formello' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t

\n\t\t\t\t) }\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default LoggingTab;\n","import { Card, CardHeader, CardBody, TextControl } from '@wordpress/components';\nimport { Fragment, useContext } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\n\nimport { SettingsContext } from '../../../context/settings-context';\n\nexport default function Messages() {\n\tconst { settings } = useContext( SettingsContext );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst setMessage = ( group, field, value ) => {\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tformello: {\n\t\t\t\t...settings,\n\t\t\t\tmessages: {\n\t\t\t\t\t...settings.messages,\n\t\t\t\t\t[ group ]: {\n\t\t\t\t\t\t...settings.messages[ group ],\n\t\t\t\t\t\t[ field ]: value,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\t};\n\n\tconst formMessages = Object.keys( settings.messages.form );\n\tconst missingValue = Object.keys( settings.messages.missingValue );\n\tconst patternMismatch = Object.keys( settings.messages.patternMismatch );\n\tconst outOfRange = Object.keys( settings.messages.outOfRange );\n\tconst wrongLength = Object.keys( settings.messages.wrongLength );\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Form messages', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t

\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Default messages displayed after form submission. This setting can be overriden on form block panel.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t

\n\t\t\t\t\t{ formMessages.map( ( key, i ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetMessage( 'form', key, val );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Missing value', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t{ missingValue.map( ( key, i ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetMessage( 'missingValue', key, val );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Pattern mismatch', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t{ patternMismatch.map( ( key, i ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetMessage( 'patternMismatch', key, val );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Out of range', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t{ outOfRange.map( ( key, i ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetMessage( 'outOfRange', key, val );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Wrong length', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t{ wrongLength.map( ( key, i ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetMessage( 'wrongLength', key, val );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalGrid as Grid,\n\tTabPanel,\n\t// eslint-disable-next-line @wordpress/no-unsafe-wp-apis\n\t__experimentalUseNavigator as useNavigator,\n} from '@wordpress/components';\nimport { Fragment, useContext } from '@wordpress/element';\nimport { applyFilters } from '@wordpress/hooks';\nimport Help from '../../components/help.js';\nimport General from './components/general.js';\nimport Captcha from './components/captcha.js';\nimport Messages from './components/messages.js';\nimport Integrations from './components/integrations.js';\nimport Logging from './components/logging.js';\n//import Licenses from '../components/settings/licenses.js';\nimport UpdateSettings from '../../components/update-settings';\nimport LoadingSpinner from '../../components/loading-spinner';\nimport Header from '../../components/masthead.js';\nimport { SettingsContext } from '../../context/settings-context';\nimport { useHistory, useLocation } from '../../router';\n\nexport default function Settings() {\n\tconst { settings, hasUpdates, saveSettings } =\n\t\tuseContext( SettingsContext );\n\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst changeTab = ( tabName ) => {\n\t\thistory.push( { page: 'formello-settings', tab: tabName } );\n\t};\n\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'general',\n\t\t\ttitle: __( 'General', 'formello' ),\n\t\t\tcomponent: General,\n\t\t},\n\t\t{\n\t\t\tname: 'captcha',\n\t\t\ttitle: 'Captcha',\n\t\t\tcomponent: Captcha,\n\t\t},\n\t\t{\n\t\t\tname: 'messages',\n\t\t\ttitle: __( 'Messages', 'formello' ),\n\t\t\tcomponent: Messages,\n\t\t},\n\t\t{\n\t\t\tname: 'integrations',\n\t\t\ttitle: __( 'Integrations', 'formello' ),\n\t\t\tcomponent: Integrations,\n\t\t},\n\t\t{\n\t\t\tname: 'logging',\n\t\t\ttitle: 'Logging',\n\t\t\tcomponent: Logging,\n\t\t},\n\t];\n\n\tif ( ! settings ) {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t{ applyFilters(\n\t\t\t\t\t'formello.dashboard.beforeSettings',\n\t\t\t\t\t'',\n\t\t\t\t\tthis\n\t\t\t\t) }\n\n\t\t\t\t changeTab( tabName ) }\n\t\t\t\t>\n\t\t\t\t\t{ ( tab ) => {\n\t\t\t\t\t\tconst SettingsTab = tab.component;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{ ( 'general' === tab.name ||\n\t\t\t\t\t\t\t\t\t\t'captcha' === tab.name ||\n\t\t\t\t\t\t\t\t\t\t'messages' === tab.name ||\n\t\t\t\t\t\t\t\t\t\t'logging' === tab.name ) && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\n\n\t\t\t\t{ applyFilters( 'formello.dashboard.settings', '', this ) }\n\n\t\t\t\t{ applyFilters( 'formello.dashboard.afterSettings', '', this ) }\n\t\t\t
\n\t\t\n\t);\n}\n","import { Card, CardHeader, CardBody } from '@wordpress/components';\nimport { RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nexport function FieldsData( props ) {\n\tconst { data } = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'Fields', 'formello' ) }

\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{ Object.keys( data ).map( ( key, i ) => {\n\t\t\t\t\t\t\tconst field =\n\t\t\t\t\t\t\t\t'string' !== typeof data[ key ]\n\t\t\t\t\t\t\t\t\t? JSON.stringify( data[ key ] )\n\t\t\t\t\t\t\t\t\t: data[ key ];\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{ key\n\t\t\t\t\t\t\t\t\t\t\t.replaceAll( '_', ' ' )\n\t\t\t\t\t\t\t\t\t\t\t.toUpperCase() }\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{ 'null' === field\n\t\t\t\t\t\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t\t\t\t\t\t: decodeEntities( field ) }\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n","/* eslint-disable @wordpress/no-unsafe-wp-apis */\n/**\n * WordPress dependencies\n */\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\t__experimentalGrid as Grid,\n\tSpinner,\n\tButton,\n\tNotice,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Fragment, useEffect } from '@wordpress/element';\nimport { getQueryArg } from '@wordpress/url';\nimport { SubmissionData } from './submission-data';\nimport { FieldsData } from './fields-data';\nimport Header from '../../components/masthead.js';\nimport { useDispatch } from '@wordpress/data';\nimport { useHistory, useLocation } from '../../router';\n\nexport const Submission = () => {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\n\tconst submission = useEntityRecord(\n\t\t'formello/v1',\n\t\t'submissions',\n\t\tparams.submission_id ||\n\t\t\tgetQueryArg( window.location.href, 'submission_id' )\n\t);\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tuseEffect( () => {\n\t\tif ( parseInt( submission.record?.details.is_new ) ) {\n\t\t\tsaveEntityRecord( 'formello/v1', 'submissions', {\n\t\t\t\tid: submission.record.id,\n\t\t\t\tdetails: { is_new: false },\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\tif ( 'ERROR' === submission.status ) {\n\t\treturn (\n\t\t\t\n\t\t\t\t

{ __( 'Submission Not Found.', 'formello' ) }

\n\t\t\t\t {\n\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\tpage: 'formello',\n\t\t\t\t\t\t\tsection: 'submissions',\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Go back', 'formello' ) }\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\tpage: 'formello',\n\t\t\t\t\t\t\tsection: submission.record?.details.form_id\n\t\t\t\t\t\t\t\t? 'submissions'\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\tform_id: submission.record?.details.form_id,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Go back', 'formello' ) }\n\t\t\t\t\n\t\t\t
\n\t\t\t{ submission.isResolving && }\n\t\t\t{ submission.hasResolved && submission.record && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t) }\n\t\t
\n\t);\n};\n","import {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tExternalLink,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\nimport { dateI18n, getSettings } from '@wordpress/date';\nimport { useEntityRecord } from '@wordpress/core-data';\n\nexport function SubmissionData( props ) {\n\tconst { data } = props;\n\tconst { formats } = getSettings();\n\n\tconst formUrl = addQueryArgs( 'post.php', {\n\t\tpost: data.form_id,\n\t\taction: 'edit',\n\t} );\n\n\tconst { record: form } = useEntityRecord(\n\t\t'postType',\n\t\t'formello_form',\n\t\tdata.form_id\n\t);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'Submission data', 'formello' ) }

\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
{ __( 'Submission ID', 'formello' ) }{ data.id }
{ __( 'Form ID', 'formello' ) }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{ form?.title.raw || __( '(No title)', 'formello' ) }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
{ 'Timestamp' }\n\t\t\t\t\t\t\t\t{ dateI18n(\n\t\t\t\t\t\t\t\t\tformats.datetime,\n\t\t\t\t\t\t\t\t\tdata.submitted_at\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t
{ 'Referrer URL' }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{ data.referer_url }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
{ 'IP' }{ data.ip_address }
{ 'User Agent' }{ data.user_agent }
\n\t\t\t
\n\t\t
\n\t);\n}\n","/* eslint-disable @wordpress/no-unsafe-wp-apis */\n/**\n * WordPress dependencies\n */\nimport { Button, Card } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, useMemo, Fragment } from '@wordpress/element';\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\nimport { addQueryArgs } from '@wordpress/url';\nimport {\n\ttrashPostAction,\n\tusePermanentlyDeletePostAction,\n\tuseRestorePostAction,\n\teditPostAction,\n} from '../../components/actions';\nimport { commentContent } from '@wordpress/icons';\nimport { useHistory } from '../../router';\n\n/**\n * Internal dependencies\n */\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport Header from '../../components/masthead.js';\n\n// See https://github.com/WordPress/gutenberg/issues/55886\n// We do not support custom statutes at the moment.\nconst STATUSES = [\n\t{ value: 'draft', label: __( 'Draft' ) },\n\t{ value: 'future', label: __( 'Scheduled' ) },\n\t{ value: 'pending', label: __( 'Pending Review' ) },\n\t{ value: 'private', label: __( 'Private' ) },\n\t{ value: 'publish', label: __( 'Published' ) },\n\t{ value: 'trash', label: __( 'Trash' ) },\n];\nconst DEFAULT_STATUSES = 'draft, future, pending, private, publish'; // All but 'trash'.\nconst defaultLayouts = {\n\ttable: {\n\t\tlayout: {\n\t\t\tprimaryField: 'id',\n\t\t\tcombinedFields: [\n\t\t\t\t{\n\t\t\t\t\tid: 'form',\n\t\t\t\t\tlabel: 'Form',\n\t\t\t\t\tchildren: [ 'title', 'excerpt' ],\n\t\t\t\t\tdirection: 'vertical',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n};\n\nexport const Forms = () => {\n\tconst history = useHistory();\n\tconst [ view, setView ] = useState( {\n\t\ttype: 'table',\n\t\tfilters: [],\n\t\tfields: [\n\t\t\t'form',\n\t\t\t'title',\n\t\t\t'excerpt',\n\t\t\t'entries',\n\t\t\t'author',\n\t\t\t'status',\n\t\t\t'date',\n\t\t],\n\t\tpage: 1,\n\t\tperPage: 10,\n\t\tsort: {\n\t\t\tfield: 'date',\n\t\t\tdirection: 'desc',\n\t\t},\n\t\tsearch: '',\n\t\t// All fields are visible by default, so it's\n\t\t// better to keep track of the hidden ones.\n\t\tlayout: defaultLayouts.table.layout,\n\t} );\n\n\tconst queryArgs = useMemo( () => {\n\t\tconst filters = {};\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tif ( filter.field === 'status' && filter.operator === 'isAny' ) {\n\t\t\t\tfilters.status = filter.value;\n\t\t\t}\n\t\t\tif ( filter.field === 'author' && filter.operator === 'isAny' ) {\n\t\t\t\tfilters.author = filter.value;\n\t\t\t} else if (\n\t\t\t\tfilter.field === 'author' &&\n\t\t\t\tfilter.operator === 'isNone'\n\t\t\t) {\n\t\t\t\tfilters.author_exclude = filter.value;\n\t\t\t}\n\t\t} );\n\t\t// We want to provide a different default item for the status filter\n\t\t// than the REST API provides.\n\t\tif ( ! filters.status || filters.status === '' ) {\n\t\t\tfilters.status = DEFAULT_STATUSES;\n\t\t}\n\t\treturn {\n\t\t\tper_page: view.perPage,\n\t\t\tpage: view.page,\n\t\t\t_embed: 'author',\n\t\t\torder: view.sort?.direction,\n\t\t\torderby: view.sort?.field,\n\t\t\tsearch: view.search,\n\t\t\t...filters,\n\t\t};\n\t}, [ view ] );\n\tconst { records: forms, isResolving: isLoadingForms, totalItems, totalPages } = useEntityRecords(\n\t\t'postType',\n\t\t'formello_form',\n\t\tqueryArgs\n\t);\n\n\tconst paginationInfo = useMemo( () => {\n\t\treturn {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t};\n\t}, [ totalItems, totalPages ] );\n\n\tconst { records: authors, isResolving: isLoadingAuthors } =\n\t\tuseEntityRecords( 'root', 'user', { per_page: -1 } );\n\n\tconst fields = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\theader: __( 'Title' ),\n\t\t\t\tid: 'title',\n\t\t\t\tlabel: __( 'Title' ),\n\t\t\t\tgetValue: ( { item } ) => item.title?.rendered,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\tconst href = addQueryArgs( 'post.php', {\n\t\t\t\t\t\t\t\t\t\tpost: item.id,\n\t\t\t\t\t\t\t\t\t\taction: 'edit',\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tdocument.location.href = href;\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\titem.title?.rendered || item.slug\n\t\t\t\t\t\t\t\t) || __( '(no title)' ) }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ item.submissions_count.news > 0 && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{ item.submissions_count.news }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t
\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tenableGlobalSearch: true,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Excerpt' ),\n\t\t\t\tlabel: __( 'Excerpt' ),\n\t\t\t\tid: 'excerpt',\n\t\t\t\tgetValue: ( { item } ) => item.excerpt.raw,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Entries' ),\n\t\t\t\tid: 'entries',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\t\t\tpage: 'formello',\n\t\t\t\t\t\t\t\t\t\tsection: 'submissions',\n\t\t\t\t\t\t\t\t\t\tform_id: item.id,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ item.submissions_count.total }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Author' ),\n\t\t\t\tid: 'author',\n\t\t\t\tgetValue: ( { item } ) => item._embedded?.author[ 0 ]?.name,\n\t\t\t\telements:\n\t\t\t\t\tauthors?.map( ( { id, name } ) => ( {\n\t\t\t\t\t\tvalue: id,\n\t\t\t\t\t\tlabel: name,\n\t\t\t\t\t} ) ) || [],\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Status' ),\n\t\t\t\tid: 'status',\n\t\t\t\t/*getValue: ( { item } ) =>\n\t\t\t\t\tSTATUSES.find( ( { value } ) => value === item.status )\n\t\t\t\t\t\t?.label ?? item.status,*/\n\t\t\t\telements: STATUSES,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [ 'isAny', 'isNone', 'isAll', 'isNotAll' ],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Date' ),\n\t\t\t\tid: 'date',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\tconst formattedDate = dateI18n(\n\t\t\t\t\t\tgetSettings().formats.datetimeAbbreviated,\n\t\t\t\t\t\tgetDate( item.date )\n\t\t\t\t\t);\n\t\t\t\t\treturn ;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: 'Shortcode',\n\t\t\t\tid: 'shortcode',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn { `[formello ref=${ item.id }]` };\n\t\t\t\t},\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t],\n\t\t[ authors, history ]\n\t);\n\n\t/*const { data: shownData, paginationInfo } = useMemo( () => {\n\t\treturn filterSortAndPaginate( forms, view, fields );\n\t}, [ view, forms, fields ] );*/\n\n\tconst permanentlyDeletePostAction = usePermanentlyDeletePostAction();\n\tconst restorePostAction = useRestorePostAction();\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tid: 'view-submissions',\n\t\t\t\tlabel: __( 'View Submissions', 'formello' ),\n\t\t\t\tisPrimary: true,\n\t\t\t\ticon: commentContent,\n\t\t\t\tcallback( posts ) {\n\t\t\t\t\tconst post = posts[ 0 ];\n\t\t\t\t\thistory.push( {\n\t\t\t\t\t\tpage: 'formello',\n\t\t\t\t\t\tsection: 'submissions',\n\t\t\t\t\t\tform_id: post.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\ttrashPostAction,\n\t\t\trestorePostAction,\n\t\t\tpermanentlyDeletePostAction,\n\t\t\teditPostAction,\n\t\t],\n\t\t[ permanentlyDeletePostAction, restorePostAction, history ]\n\t);\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{ __( 'Add new' ) }\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n","/* eslint-disable @wordpress/no-unsafe-wp-apis */\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalText as Text,\n\tButton,\n\tCard,\n\tIcon,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, useMemo, useCallback, Fragment } from '@wordpress/element';\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\nimport { heading, seen, starFilled } from '@wordpress/icons';\nimport { trashSubmissionAction } from '../../components/actions/submission.js';\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tstore as coreStore,\n\tuseEntityRecord,\n\tuseEntityRecords,\n} from '@wordpress/core-data';\n/**\n * Internal dependencies\n */\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport Header from '../../components/masthead.js';\nimport { useHistory, useLocation } from '../../router';\n\nconst EMPTY_ARRAY = [];\n\nconst STATUSES = [\n\t{ value: 'starred', label: __( 'Favorites' ) },\n\t{ value: 'is_new', label: __( 'Unread' ) },\n];\n\nconst defaultLayouts = {\n\ttable: {\n\t\tlayout: {\n\t\t\tprimaryField: 'id',\n\t\t\tstyles: {\n\t\t\t\tstatus: {\n\t\t\t\t\tmaxWidth: '40px',\n\t\t\t\t\twidth: '40px',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n};\n\nexport const Submissions = () => {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst [ view, setView ] = useState( {\n\t\ttype: 'table',\n\t\tfilters: [],\n\t\tpage: 1,\n\t\tperPage: 10,\n\t\tsort: {\n\t\t\tfield: 'submitted_at',\n\t\t\tdirection: 'desc',\n\t\t},\n\t\tsearch: '',\n\t\t// All fields are visible by default, so it's\n\t\t// better to keep track of the hidden ones.\n\t\thiddenFields: [ 'id' ],\n\t\tlayout: defaultLayouts.table.layout,\n\t} );\n\n\tconst queryArgs = useMemo( () => {\n\t\tconst filters = {};\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tif ( filter.field === 'status' && filter.operator === 'isAny' ) {\n\t\t\t\tfilters.status = filter.value;\n\t\t\t}\n\t\t} );\n\t\t// We want to provide a different default item for the status filter\n\t\t// than the REST API provides.\n\t\tif ( ! filters.status || filters.status === 'all' ) {\n\t\t\tfilters.status = '';\n\t\t}\n\n\t\treturn {\n\t\t\tid: params.form_id,\n\t\t\tper_page: view.perPage,\n\t\t\tpage: view.page,\n\t\t\torder: view.sort?.direction,\n\t\t\torderby: view.sort?.field,\n\t\t\tsearch: view.search || undefined,\n\t\t\t...filters,\n\t\t};\n\t}, [ view, params ] );\n\n\tconst {\n\t\trecords: submissions,\n\t\tisResolving: isLoadingSubmissions,\n\t\ttotalItems,\n\t\ttotalPages,\n\t} = useEntityRecords( 'formello/v1', 'submissions', queryArgs );\n\n\tconst columns = useEntityRecord( 'formello/v1', 'columns', params.form_id );\n\n\tconst { record: form } = useEntityRecord(\n\t\t'postType',\n\t\t'formello_form',\n\t\tparams.form_id\n\t);\n\n\tconst getColumns = useCallback( () => {\n\t\tif ( columns.hasResolved ) {\n\t\t\treturn columns.record.columns;\n\t\t}\n\t\treturn [];\n\t}, [ columns ] );\n\n\tconst paginationInfo = useMemo( () => {\n\t\treturn {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t};\n\t}, [ totalItems, totalPages ] );\n\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Status' ),\n\t\t\t\tid: 'status',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ parseInt( item.details.is_new ) && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ parseInt( item.details.starred ) && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t
\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tfilters: [ 'isAny' ],\n\t\t\t\telements: STATUSES,\n\t\t\t\tenableHiding: false,\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: '#',\n\t\t\t\tid: 'id',\n\t\t\t\tgetValue: ( { item } ) => item.id,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t\n\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\tpage: 'formello',\n\t\t\t\t\t\t\t\tsection: 'submission',\n\t\t\t\t\t\t\t\tsubmission_id: item.id,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tenableHiding: false,\n\t\t\t\tenableSorting: true,\n\t\t\t},\n\t\t];\n\t\tconst cols = getColumns();\n\t\tconst _columns = cols?.map( ( key ) => {\n\t\t\treturn {\n\t\t\t\taccessor: key,\n\t\t\t\tid: key,\n\t\t\t\theader: key.replaceAll( '_', ' ' ).toUpperCase(),\n\t\t\t\tgetValue: ( item ) => item[ key ],\n\t\t\t\tfilters: [ { id: 'search', type: 'search' } ],\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\tif ( 'submitted_at' === key ) {\n\t\t\t\t\t\tconst formattedDate = dateI18n(\n\t\t\t\t\t\t\tgetSettings().formats.datetimeAbbreviated,\n\t\t\t\t\t\t\tgetDate( item.details.submitted_at )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ decodeEntities( item.fields[ key ] ) }\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tenableSorting: true,\n\t\t\t};\n\t\t} );\n\t\treturn _fields.concat( _columns );\n\t}, [ history, getColumns ] );\n\n\t/*const { data: shownData, paginationInfo } = useMemo( () => {\n\t\treturn filterSortAndPaginate( submissions, view, fields );\n\t}, [ view, submissions, fields ] );*/\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tid: 'view-submission',\n\t\t\t\tlabel: __( 'View Submission', 'formello' ),\n\t\t\t\tisPrimary: true,\n\t\t\t\ticon: seen,\n\t\t\t\tcallback( posts ) {\n\t\t\t\t\tconst post = posts[ 0 ];\n\t\t\t\t\thistory.push( {\n\t\t\t\t\t\tpage: 'formello',\n\t\t\t\t\t\tsection: 'submission',\n\t\t\t\t\t\tsubmission_id: post.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\ttrashSubmissionAction,\n\t\t\t{\n\t\t\t\tid: 'mark-as-starred',\n\t\t\t\tlabel: __( 'Toggle favorite' ),\n\t\t\t\tisPrimary: false,\n\t\t\t\tisBulk: true,\n\t\t\t\tisEligible: () => true,\n\t\t\t\ticon: starFilled,\n\t\t\t\tcallback: ( posts ) => {\n\t\t\t\t\tconst post = posts[ 0 ];\n\t\t\t\t\tsaveEntityRecord( 'formello/v1', 'submissions', {\n\t\t\t\t\t\tid: post.id,\n\t\t\t\t\t\tdetails: {\n\t\t\t\t\t\t\tstarred: ! parseInt( post.details.starred ),\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'mark-as-new',\n\t\t\t\tlabel: __( 'Toggle new' ),\n\t\t\t\tisPrimary: false,\n\t\t\t\tisBulk: true,\n\t\t\t\ticon: heading,\n\t\t\t\tcallback: ( posts ) => {\n\t\t\t\t\tconst post = posts[ 0 ];\n\t\t\t\t\tsaveEntityRecord( 'formello/v1', 'submissions', {\n\t\t\t\t\t\tid: post.id,\n\t\t\t\t\t\tdetails: { is_new: ! parseInt( post.details.is_new ) },\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\t[ history, saveEntityRecord ]\n\t);\n\n\t// TODO: we need to handle properly `data={ data || EMPTY_ARRAY }` for when `isLoading`.\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\tpage: 'formello',\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Go back', 'formello' ) }\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { dateI18n } from '@wordpress/date';\nimport { downloadBlob } from '@wordpress/blob';\n\nexport default function ExportForms() {\n\tconst { records: forms, isResolving } = useEntityRecords(\n\t\t'postType',\n\t\t'formello_form',\n\t\t{\n\t\t\t_embed: 'wp:term',\n\t\t}\n\t);\n\n\tconst currentDate = dateI18n( '', new Date() );\n\n\tconst exportForms = () => {\n\t\tconst fileContent = JSON.stringify( forms, null, 2 );\n\t\tconst filename = `formello-forms-export-${ currentDate }.json`;\n\n\t\tdownloadBlob( filename, fileContent, 'application/json' );\n\t};\n\n\treturn (\n\t\t\n\t);\n}\n","import { FormFileUpload } from '@wordpress/components';\nimport { useState, Fragment } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport UpdateSettings from '../../../components/update-settings';\n\nexport default function ImportForms() {\n\tconst [ files, setFiles ] = useState( false );\n\n\tconst req = () => {\n\t\tconst data = new FormData();\n\t\tdata.append( 'file', files[ 0 ] );\n\n\t\treturn apiFetch( {\n\t\t\tpath: '/formello/v1/forms/import',\n\t\t\tmethod: 'POST',\n\t\t\tbody: data,\n\t\t} ).finally( () => setFiles( false ) );\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t setFiles( event.target.files ) }\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Choose file', 'formello' ) }\n\t\t\t\t\n\t\t\t\t{ files && files[ 0 ]?.name }\n\t\t\t
\n\n\t\t\t\n\t\t
\n\t);\n}\n","import { Fragment } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport UpdateSettings from '../../../components/update-settings';\n\nexport default function ResetSettings() {\n\tconst resetSettings = () => {\n\t\treturn apiFetch( {\n\t\t\tpath: '/formello/v1/settings/reset',\n\t\t\tmethod: 'POST',\n\t\t} );\n\t};\n\n\treturn (\n\t\t\n\t\t\t

{ __( 'If you need to reset settings.', 'formello' ) }

\n\t\t\t\n\t\t
\n\t);\n}\n","import {\n\t// eslint-disable-next-line @wordpress/no-unsafe-wp-apis\n\t__experimentalUseNavigator as useNavigator,\n\t// eslint-disable-next-line @wordpress/no-unsafe-wp-apis\n\t__experimentalGrid as Grid,\n\tTabPanel,\n} from '@wordpress/components';\n\nimport { Fragment } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\nimport General from './tabs/general.js';\nimport Exporter from './tabs/exporter.js';\nimport { Importer } from './tabs/importer.js';\nimport Header from '../../components/masthead.js';\nimport Help from '../../components/help.js';\nimport { useHistory, useLocation } from '../../router';\n\nexport default function Tools() {\n\tconst toolsTabs = [\n\t\t{\n\t\t\tname: 'general',\n\t\t\ttitle: __( 'General', 'formello' ),\n\t\t\tcomponent: General,\n\t\t},\n\t\t{\n\t\t\tname: 'exporters',\n\t\t\ttitle: __( 'Exporters', 'formello' ),\n\t\t\tcomponent: Exporter,\n\t\t},\n\t\t{\n\t\t\tname: 'importers',\n\t\t\ttitle: __( 'Importers', 'formello' ),\n\t\t\tcomponent: Importer,\n\t\t},\n\t];\n\n\t// Filter to add a tab\n\tapplyFilters( 'formello.ToolsTabs', '', toolsTabs );\n\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst changeTab = ( tabName ) => {\n\t\thistory.push( { page: 'formello-tools', tab: tabName } );\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t{ applyFilters(\n\t\t\t\t\t'formello.dashboard.beforeSettings',\n\t\t\t\t\t'',\n\t\t\t\t\tthis\n\t\t\t\t) }\n\t\t\t\t changeTab( tabName ) }\n\t\t\t\t>\n\t\t\t\t\t{ ( tab ) => {\n\t\t\t\t\t\tconst Tab = tab.component;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\n\n\t\t\t\t{ applyFilters( 'formello.dashboard.settings', '', this ) }\n\n\t\t\t\t{ applyFilters( 'formello.dashboard.afterSettings', '', this ) }\n\t\t\t
\n\t\t\n\t);\n}\n","import { Card, CardHeader, CardBody, withFilters } from '@wordpress/components';\n\nimport { applyFilters } from '@wordpress/hooks';\n\nimport { __ } from '@wordpress/i18n';\nimport ExportForms from '../components/export-forms';\n\nconst Exporter = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'Export Forms', 'formello' ) }

\n\t\t\t
\n\n\t\t\t\n\t\t\t\t

\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t\"When you click the download button below, Formello will create a JSON file for you to save to your computer. Once you've saved the downloaded file, you can use the Import tool to import the forms.\",\n\t\t\t\t\t\t'formello'\n\t\t\t\t\t) }\n\t\t\t\t

\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n\nexport default withFilters( 'formello.settings.exporter' )(\n\tExporter\n);\n","import {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tButton,\n\tCardDivider,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport ResetSettings from '../components/reset-settings';\n\nconst DefaultCPTView = () => {\n\tconst defaultUrl = addQueryArgs( 'edit.php', {\n\t\tpost_type: 'formello',\n\t} );\n\n\treturn (\n\t\t\n\t\t\t

\n\t\t\t\t{ __(\n\t\t\t\t\t'If for some reason you need to manage the popups with default custom post type table, please click on the link below.',\n\t\t\t\t\t'formello'\n\t\t\t\t) }\n\t\t\t

\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default function General() {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'General', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n","import { Card, CardHeader, CardBody, withFilters } from '@wordpress/components';\n\nimport { __ } from '@wordpress/i18n';\nimport ImportForms from '../components/import-forms';\n\nexport const Importer = withFilters( 'formello.settings.importer' )( () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'Import Forms', 'formello' ) }

\n\t\t\t
\n\n\t\t\t\n\t\t\t\t

\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Select the Formello export file(.json) you would like to import. When you click the import button below, Formello will import the forms.',\n\t\t\t\t\t\t'formello'\n\t\t\t\t\t) }\n\t\t\t\t

\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n} );\n","/**\n * External dependencies\n */\nimport { createBrowserHistory } from 'history';\n\n/**\n * WordPress dependencies\n */\nimport { addQueryArgs, getQueryArgs, removeQueryArgs } from '@wordpress/url';\n\nconst history = createBrowserHistory();\n\nconst originalHistoryPush = history.push;\nconst originalHistoryReplace = history.replace;\n\nfunction push( params, state ) {\n\tconst currentArgs = getQueryArgs( window.location.href );\n\tconst currentUrlWithoutArgs = removeQueryArgs(\n\t\twindow.location.href,\n\t\t...Object.keys( currentArgs )\n\t);\n\tconst newUrl = addQueryArgs( currentUrlWithoutArgs, params );\n\treturn originalHistoryPush.call( history, newUrl, state );\n}\n\nfunction replace( params, state ) {\n\tconst currentArgs = getQueryArgs( window.location.href );\n\tconst currentUrlWithoutArgs = removeQueryArgs(\n\t\twindow.location.href,\n\t\t...Object.keys( currentArgs )\n\t);\n\tconst newUrl = addQueryArgs( currentUrlWithoutArgs, params );\n\treturn originalHistoryReplace.call( history, newUrl, state );\n}\n\nhistory.push = push;\nhistory.replace = replace;\n\nexport default history;\n","/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseState,\n\tuseEffect,\n\tuseContext,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport history from './history';\n\nconst RoutesContext = createContext();\nconst HistoryContext = createContext();\n\nexport function useLocation() {\n\treturn useContext( RoutesContext );\n}\n\nexport function useHistory() {\n\treturn useContext( HistoryContext );\n}\n\nfunction getLocationWithParams( location ) {\n\tconst searchParams = new URLSearchParams( location.search );\n\treturn {\n\t\t...location,\n\t\tparams: Object.fromEntries( searchParams.entries() ),\n\t};\n}\n\nexport function RouterProvider( { children } ) {\n\tconst [ location, setLocation ] = useState( () =>\n\t\tgetLocationWithParams( history.location )\n\t);\n\n\tuseEffect( () => {\n\t\treturn history.listen( ( { location: updatedLocation } ) => {\n\t\t\tsetLocation( getLocationWithParams( updatedLocation ) );\n\t\t} );\n\t}, [] );\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ children }\n\t\t\t\n\t\t\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tButton,\n\twithFilters,\n} from '@wordpress/components';\n\nexport const Promo = withFilters( 'formello.modal.promo' )( () => {\n\treturn (\n\t\t
\n\t\t\t

\n\t\t\t\t{ __(\n\t\t\t\t\t'This action is available only for pro users. You can try one month free.',\n\t\t\t\t\t'formello'\n\t\t\t\t) }\n\t\t\t

\n\t\t\t\n\t\t\t\t{ __( 'Try it now free!', 'formello' ) }\n\t\t\t\n\t\t
\n\t);\n} );\n\nexport const PromoSettings = withFilters( 'formello.settings.promo' )( () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'Go Pro', 'formello' ) }

\n\t\t\t
\n\t\t\t\n\t\t\t\t

{ __( 'Empower your forms with our PRO extensions.' ) }

\n\t\t\t\t
    \n\t\t\t\t\t
  • { __( 'Conditional fields', 'formello' ) }
  • \n\t\t\t\t\t
  • { __( 'File upload', 'formello' ) }
  • \n\t\t\t\t\t
  • { __( 'Frontend posting', 'formello' ) }
  • \n\t\t\t\t\t
  • { __( 'Login form', 'formello' ) }
  • \n\t\t\t\t\t
  • { __( 'Search autosuggest', 'formello' ) }
  • \n\t\t\t\t\t
  • { __( 'Calculator formula', 'formello' ) }
  • \n\t\t\t\t\t
  • { __( 'Web Hooks', 'formello' ) }
  • \n\t\t\t\t\t
  • { __( 'Mail marketing integration', 'formello' ) }
  • \n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n} );\n","import { ReactComponent as MailPoet } from '../../../assets/integrations/mailpoet.svg';\nimport { ReactComponent as Mailchimp } from '../../../assets/integrations/mailchimp.svg';\nimport { ReactComponent as Moosend } from '../../../assets/integrations/moosend.svg';\nimport { ReactComponent as ConvertKit } from '../../../assets/integrations/convertkit.svg';\nimport { ReactComponent as GetResponse } from '../../../assets/integrations/getresponse.svg';\nimport { ReactComponent as Brevo } from '../../../assets/integrations/brevo.svg';\nimport { ReactComponent as MailerLite } from '../../../assets/integrations/mailerlite.svg';\nimport { ReactComponent as Email } from '../../../assets/integrations/email.svg';\nimport { ReactComponent as WebHook } from '../../../assets/integrations/webhook.svg';\nimport {\n\tpost as FrontendPosting,\n\tlogin as Login,\n\tcommentAuthorAvatar as Registration,\n} from '@wordpress/icons';\n\nexport const icons = {\n\tConvertKit,\n\tMailchimp,\n\tMailPoet,\n\tMoosend,\n\tMailerLite,\n\tGetResponse,\n\tBrevo,\n\tEmail,\n\tWebHook,\n\tFrontendPosting,\n\tLogin,\n\tRegistration,\n};\n\nexport const integrations = [\n\t{\n\t\tasync: true,\n\t\ttype: 'email',\n\t\tname: 'Email',\n\t\tto: '',\n\t\tfrom: '',\n\t\tcc: '',\n\t\tbcc: '',\n\t\treplyTo: '',\n\t\tsubject: '',\n\t\tmessage: '',\n\t\tadvanced: false,\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'ConvertKit',\n\t\tname: 'ConvertKit',\n\t\tapiUrl: 'https://www.convertkit.com/help/where-to-find-the-convertkit-api-key-groupid-and-documentation',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'GetResponse',\n\t\tname: 'GetResponse',\n\t\tapiUrl: 'https://www.getresponse.com/help/where-do-i-find-the-api-key.html',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Mailchimp',\n\t\tname: 'Mailchimp',\n\t\tapiUrl: 'https://mailchimp.com/help/about-api-keys/',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'MailerLite',\n\t\tname: 'MailerLite',\n\t\tapiUrl: 'https://www.mailerlite.com/help/where-to-find-the-mailerlite-api-key-groupid-and-documentation',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'MailPoet',\n\t\tname: 'MailPoet',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Moosend',\n\t\tname: 'Moosend',\n\t\tapiUrl: 'https://help.moosend.com/hc/en-us/articles/4403735862674-Find-the-API-key-of-your-account',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Brevo',\n\t\tname: 'Brevo',\n\t\tapiUrl: 'https://developers.brevo.com/docs/getting-started',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'WebHook',\n\t\tname: 'WebHook',\n\t\tapiUrl: '',\n\t\turl: '',\n\t\tmethod: 'POST',\n\t\tadditionalHeaders: false,\n\t\tfields: [],\n\t\theaders: [],\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'frontend-posting',\n\t\tname: 'FrontendPosting',\n\t\tpostarr: {\n\t\t\tpost_type: 'post',\n\t\t\tpost_title: '',\n\t\t\tpost_content: '',\n\t\t\tpost_excerpt: '',\n\t\t\ttax_input: [],\n\t\t\tmeta_input: [],\n\t\t},\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'login',\n\t\tname: 'Login',\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'registration',\n\t\tname: 'Registration',\n\t},\n];\n","import _extends from '@babel/runtime/helpers/esm/extends';\n\n/**\r\n * Actions represent the type of change to a location value.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#action\r\n */\nvar Action;\n\n(function (Action) {\n /**\r\n * A POP indicates a change to an arbitrary index in the history stack, such\r\n * as a back or forward navigation. It does not describe the direction of the\r\n * navigation, only that the current index changed.\r\n *\r\n * Note: This is the default action for newly created history objects.\r\n */\n Action[\"Pop\"] = \"POP\";\n /**\r\n * A PUSH indicates a new entry being added to the history stack, such as when\r\n * a link is clicked and a new page loads. When this happens, all subsequent\r\n * entries in the stack are lost.\r\n */\n\n Action[\"Push\"] = \"PUSH\";\n /**\r\n * A REPLACE indicates the entry at the current index in the history stack\r\n * being replaced by a new one.\r\n */\n\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\n\nvar readOnly = process.env.NODE_ENV !== \"production\" ? function (obj) {\n return Object.freeze(obj);\n} : function (obj) {\n return obj;\n};\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== 'undefined') console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nvar BeforeUnloadEventType = 'beforeunload';\nvar HashChangeEventType = 'hashchange';\nvar PopStateEventType = 'popstate';\n/**\r\n * Browser history stores the location in regular URLs. This is the standard for\r\n * most web apps, but it requires some configuration on the server to ensure you\r\n * serve the same app at multiple URLs.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\r\n */\n\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$window = _options.window,\n window = _options$window === void 0 ? document.defaultView : _options$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation[0],\n nextLocation = _getIndexAndLocation[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better what\n // is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop);\n var action = Action.Pop;\n\n var _getIndexAndLocation2 = getIndexAndLocation(),\n index = _getIndexAndLocation2[0],\n location = _getIndexAndLocation2[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n } // state defaults to `null` because `window.history.state` does\n\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation3 = getIndexAndLocation();\n\n index = _getIndexAndLocation3[0];\n location = _getIndexAndLocation3[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr[0],\n url = _getHistoryStateAndUr[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr2 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr2[0],\n url = _getHistoryStateAndUr2[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Hash history stores the location in window.location.hash. This makes it ideal\r\n * for situations where you don't want to send the location to the server for\r\n * some reason, either because you do cannot configure it or the URL space is\r\n * reserved for something else.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\r\n */\n\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options2 = options,\n _options2$window = _options2.window,\n window = _options2$window === void 0 ? document.defaultView : _options2$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _parsePath = parsePath(window.location.hash.substr(1)),\n _parsePath$pathname = _parsePath.pathname,\n pathname = _parsePath$pathname === void 0 ? '/' : _parsePath$pathname,\n _parsePath$search = _parsePath.search,\n search = _parsePath$search === void 0 ? '' : _parsePath$search,\n _parsePath$hash = _parsePath.hash,\n hash = _parsePath$hash === void 0 ? '' : _parsePath$hash;\n\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation4 = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation4[0],\n nextLocation = _getIndexAndLocation4[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better\n // what is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop); // popstate does not fire on hashchange in IE 11 and old (trident) Edge\n // https://developer.mozilla.org/de/docs/Web/API/Window/popstate_event\n\n window.addEventListener(HashChangeEventType, function () {\n var _getIndexAndLocation5 = getIndexAndLocation(),\n nextLocation = _getIndexAndLocation5[1]; // Ignore extraneous hashchange events.\n\n\n if (createPath(nextLocation) !== createPath(location)) {\n handlePop();\n }\n });\n var action = Action.Pop;\n\n var _getIndexAndLocation6 = getIndexAndLocation(),\n index = _getIndexAndLocation6[0],\n location = _getIndexAndLocation6[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function getBaseHref() {\n var base = document.querySelector('base');\n var href = '';\n\n if (base && base.getAttribute('href')) {\n var url = window.location.href;\n var hashIndex = url.indexOf('#');\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href;\n }\n\n function createHref(to) {\n return getBaseHref() + '#' + (typeof to === 'string' ? to : createPath(to));\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation7 = getIndexAndLocation();\n\n index = _getIndexAndLocation7[0];\n location = _getIndexAndLocation7[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr3 = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr3[0],\n url = _getHistoryStateAndUr3[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr4 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr4[0],\n url = _getHistoryStateAndUr4[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Memory history stores the current location in memory. It is designed for use\r\n * in stateful non-browser environments like tests and React Native.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#creatememoryhistory\r\n */\n\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options3 = options,\n _options3$initialEntr = _options3.initialEntries,\n initialEntries = _options3$initialEntr === void 0 ? ['/'] : _options3$initialEntr,\n initialIndex = _options3.initialIndex;\n var entries = initialEntries.map(function (entry) {\n var location = readOnly(_extends({\n pathname: '/',\n search: '',\n hash: '',\n state: null,\n key: createKey()\n }, typeof entry === 'string' ? parsePath(entry) : entry));\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: \" + JSON.stringify(entry) + \")\") : void 0;\n return location;\n });\n var index = clamp(initialIndex == null ? entries.length - 1 : initialIndex, 0, entries.length - 1);\n var action = Action.Pop;\n var location = entries[index];\n var listeners = createEvents();\n var blockers = createEvents();\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n search: '',\n hash: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction, nextLocation) {\n action = nextAction;\n location = nextLocation;\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n applyTx(nextAction, nextLocation);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n entries[index] = nextLocation;\n applyTx(nextAction, nextLocation);\n }\n }\n\n function go(delta) {\n var nextIndex = clamp(index + delta, 0, entries.length - 1);\n var nextAction = Action.Pop;\n var nextLocation = entries[nextIndex];\n\n function retry() {\n go(delta);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index = nextIndex;\n applyTx(nextAction, nextLocation);\n }\n }\n\n var history = {\n get index() {\n return index;\n },\n\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n return blockers.push(blocker);\n }\n };\n return history;\n} ////////////////////////////////////////////////////////////////////////////////\n// UTILS\n////////////////////////////////////////////////////////////////////////////////\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n\nfunction promptBeforeUnload(event) {\n // Cancel the event.\n event.preventDefault(); // Chrome (and legacy IE) requires returnValue to be set.\n\n event.returnValue = '';\n}\n\nfunction createEvents() {\n var handlers = [];\n return {\n get length() {\n return handlers.length;\n },\n\n push: function push(fn) {\n handlers.push(fn);\n return function () {\n handlers = handlers.filter(function (handler) {\n return handler !== fn;\n });\n };\n },\n call: function call(arg) {\n handlers.forEach(function (fn) {\n return fn && fn(arg);\n });\n }\n };\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\r\n * Creates a string URL path from the given pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createpath\r\n */\n\n\nfunction createPath(_ref) {\n var _ref$pathname = _ref.pathname,\n pathname = _ref$pathname === void 0 ? '/' : _ref$pathname,\n _ref$search = _ref.search,\n search = _ref$search === void 0 ? '' : _ref$search,\n _ref$hash = _ref.hash,\n hash = _ref$hash === void 0 ? '' : _ref$hash;\n if (search && search !== '?') pathname += search.charAt(0) === '?' ? search : '?' + search;\n if (hash && hash !== '#') pathname += hash.charAt(0) === '#' ? hash : '#' + hash;\n return pathname;\n}\n/**\r\n * Parses a string URL path into its separate pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#parsepath\r\n */\n\nfunction parsePath(path) {\n var parsedPath = {};\n\n if (path) {\n var hashIndex = path.indexOf('#');\n\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n var searchIndex = path.indexOf('?');\n\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport { Action, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, parsePath };\n//# sourceMappingURL=index.js.map\n","// extracted by mini-css-extract-plugin\nexport {};","var characterMap = {\n\t\"À\": \"A\",\n\t\"Ã\": \"A\",\n\t\"Â\": \"A\",\n\t\"Ã\": \"A\",\n\t\"Ä\": \"A\",\n\t\"Ã…\": \"A\",\n\t\"Ấ\": \"A\",\n\t\"Ắ\": \"A\",\n\t\"Ẳ\": \"A\",\n\t\"Ẵ\": \"A\",\n\t\"Ặ\": \"A\",\n\t\"Æ\": \"AE\",\n\t\"Ầ\": \"A\",\n\t\"Ằ\": \"A\",\n\t\"È‚\": \"A\",\n\t\"Ả\": \"A\",\n\t\"Ạ\": \"A\",\n\t\"Ẩ\": \"A\",\n\t\"Ẫ\": \"A\",\n\t\"Ậ\": \"A\",\n\t\"Ç\": \"C\",\n\t\"Ḉ\": \"C\",\n\t\"È\": \"E\",\n\t\"É\": \"E\",\n\t\"Ê\": \"E\",\n\t\"Ë\": \"E\",\n\t\"Ế\": \"E\",\n\t\"Ḗ\": \"E\",\n\t\"Ề\": \"E\",\n\t\"Ḕ\": \"E\",\n\t\"Ḝ\": \"E\",\n\t\"Ȇ\": \"E\",\n\t\"Ẻ\": \"E\",\n\t\"Ẽ\": \"E\",\n\t\"Ẹ\": \"E\",\n\t\"Ể\": \"E\",\n\t\"Ễ\": \"E\",\n\t\"Ệ\": \"E\",\n\t\"ÃŒ\": \"I\",\n\t\"Ã\": \"I\",\n\t\"ÃŽ\": \"I\",\n\t\"Ã\": \"I\",\n\t\"Ḯ\": \"I\",\n\t\"ÈŠ\": \"I\",\n\t\"Ỉ\": \"I\",\n\t\"Ị\": \"I\",\n\t\"Ã\": \"D\",\n\t\"Ñ\": \"N\",\n\t\"Ã’\": \"O\",\n\t\"Ó\": \"O\",\n\t\"Ô\": \"O\",\n\t\"Õ\": \"O\",\n\t\"Ö\": \"O\",\n\t\"Ø\": \"O\",\n\t\"á»\": \"O\",\n\t\"Ṍ\": \"O\",\n\t\"á¹’\": \"O\",\n\t\"ÈŽ\": \"O\",\n\t\"Ỏ\": \"O\",\n\t\"Ọ\": \"O\",\n\t\"á»”\": \"O\",\n\t\"á»–\": \"O\",\n\t\"Ộ\": \"O\",\n\t\"Ờ\": \"O\",\n\t\"Ở\": \"O\",\n\t\"á» \": \"O\",\n\t\"Ớ\": \"O\",\n\t\"Ợ\": \"O\",\n\t\"Ù\": \"U\",\n\t\"Ú\": \"U\",\n\t\"Û\": \"U\",\n\t\"Ãœ\": \"U\",\n\t\"Ủ\": \"U\",\n\t\"Ụ\": \"U\",\n\t\"Ử\": \"U\",\n\t\"á»®\": \"U\",\n\t\"á»°\": \"U\",\n\t\"Ã\": \"Y\",\n\t\"à\": \"a\",\n\t\"á\": \"a\",\n\t\"â\": \"a\",\n\t\"ã\": \"a\",\n\t\"ä\": \"a\",\n\t\"Ã¥\": \"a\",\n\t\"ấ\": \"a\",\n\t\"ắ\": \"a\",\n\t\"ẳ\": \"a\",\n\t\"ẵ\": \"a\",\n\t\"ặ\": \"a\",\n\t\"æ\": \"ae\",\n\t\"ầ\": \"a\",\n\t\"ằ\": \"a\",\n\t\"ȃ\": \"a\",\n\t\"ả\": \"a\",\n\t\"ạ\": \"a\",\n\t\"ẩ\": \"a\",\n\t\"ẫ\": \"a\",\n\t\"ậ\": \"a\",\n\t\"ç\": \"c\",\n\t\"ḉ\": \"c\",\n\t\"è\": \"e\",\n\t\"é\": \"e\",\n\t\"ê\": \"e\",\n\t\"ë\": \"e\",\n\t\"ế\": \"e\",\n\t\"ḗ\": \"e\",\n\t\"á»\": \"e\",\n\t\"ḕ\": \"e\",\n\t\"á¸\": \"e\",\n\t\"ȇ\": \"e\",\n\t\"ẻ\": \"e\",\n\t\"ẽ\": \"e\",\n\t\"ẹ\": \"e\",\n\t\"ể\": \"e\",\n\t\"á»…\": \"e\",\n\t\"ệ\": \"e\",\n\t\"ì\": \"i\",\n\t\"í\": \"i\",\n\t\"î\": \"i\",\n\t\"ï\": \"i\",\n\t\"ḯ\": \"i\",\n\t\"È‹\": \"i\",\n\t\"ỉ\": \"i\",\n\t\"ị\": \"i\",\n\t\"ð\": \"d\",\n\t\"ñ\": \"n\",\n\t\"ò\": \"o\",\n\t\"ó\": \"o\",\n\t\"ô\": \"o\",\n\t\"õ\": \"o\",\n\t\"ö\": \"o\",\n\t\"ø\": \"o\",\n\t\"ố\": \"o\",\n\t\"á¹\": \"o\",\n\t\"ṓ\": \"o\",\n\t\"È\": \"o\",\n\t\"á»\": \"o\",\n\t\"á»\": \"o\",\n\t\"ổ\": \"o\",\n\t\"á»—\": \"o\",\n\t\"á»™\": \"o\",\n\t\"á»\": \"o\",\n\t\"ở\": \"o\",\n\t\"ỡ\": \"o\",\n\t\"á»›\": \"o\",\n\t\"ợ\": \"o\",\n\t\"ù\": \"u\",\n\t\"ú\": \"u\",\n\t\"û\": \"u\",\n\t\"ü\": \"u\",\n\t\"ủ\": \"u\",\n\t\"ụ\": \"u\",\n\t\"á»­\": \"u\",\n\t\"ữ\": \"u\",\n\t\"á»±\": \"u\",\n\t\"ý\": \"y\",\n\t\"ÿ\": \"y\",\n\t\"Ä€\": \"A\",\n\t\"Ä\": \"a\",\n\t\"Ä‚\": \"A\",\n\t\"ă\": \"a\",\n\t\"Ä„\": \"A\",\n\t\"Ä…\": \"a\",\n\t\"Ć\": \"C\",\n\t\"ć\": \"c\",\n\t\"Ĉ\": \"C\",\n\t\"ĉ\": \"c\",\n\t\"ÄŠ\": \"C\",\n\t\"Ä‹\": \"c\",\n\t\"ÄŒ\": \"C\",\n\t\"Ä\": \"c\",\n\t\"C̆\": \"C\",\n\t\"c̆\": \"c\",\n\t\"ÄŽ\": \"D\",\n\t\"Ä\": \"d\",\n\t\"Ä\": \"D\",\n\t\"Ä‘\": \"d\",\n\t\"Ä’\": \"E\",\n\t\"Ä“\": \"e\",\n\t\"Ä”\": \"E\",\n\t\"Ä•\": \"e\",\n\t\"Ä–\": \"E\",\n\t\"Ä—\": \"e\",\n\t\"Ę\": \"E\",\n\t\"Ä™\": \"e\",\n\t\"Äš\": \"E\",\n\t\"Ä›\": \"e\",\n\t\"Äœ\": \"G\",\n\t\"Ç´\": \"G\",\n\t\"Ä\": \"g\",\n\t\"ǵ\": \"g\",\n\t\"Äž\": \"G\",\n\t\"ÄŸ\": \"g\",\n\t\"Ä \": \"G\",\n\t\"Ä¡\": \"g\",\n\t\"Ä¢\": \"G\",\n\t\"Ä£\": \"g\",\n\t\"Ĥ\": \"H\",\n\t\"Ä¥\": \"h\",\n\t\"Ħ\": \"H\",\n\t\"ħ\": \"h\",\n\t\"Ḫ\": \"H\",\n\t\"ḫ\": \"h\",\n\t\"Ĩ\": \"I\",\n\t\"Ä©\": \"i\",\n\t\"Ī\": \"I\",\n\t\"Ä«\": \"i\",\n\t\"Ĭ\": \"I\",\n\t\"Ä­\": \"i\",\n\t\"Ä®\": \"I\",\n\t\"į\": \"i\",\n\t\"Ä°\": \"I\",\n\t\"ı\": \"i\",\n\t\"IJ\": \"IJ\",\n\t\"ij\": \"ij\",\n\t\"Ä´\": \"J\",\n\t\"ĵ\": \"j\",\n\t\"Ķ\": \"K\",\n\t\"Ä·\": \"k\",\n\t\"Ḱ\": \"K\",\n\t\"ḱ\": \"k\",\n\t\"K̆\": \"K\",\n\t\"k̆\": \"k\",\n\t\"Ĺ\": \"L\",\n\t\"ĺ\": \"l\",\n\t\"Ä»\": \"L\",\n\t\"ļ\": \"l\",\n\t\"Ľ\": \"L\",\n\t\"ľ\": \"l\",\n\t\"Ä¿\": \"L\",\n\t\"Å€\": \"l\",\n\t\"Å\": \"l\",\n\t\"Å‚\": \"l\",\n\t\"Ḿ\": \"M\",\n\t\"ḿ\": \"m\",\n\t\"M̆\": \"M\",\n\t\"m̆\": \"m\",\n\t\"Ń\": \"N\",\n\t\"Å„\": \"n\",\n\t\"Å…\": \"N\",\n\t\"ņ\": \"n\",\n\t\"Ň\": \"N\",\n\t\"ň\": \"n\",\n\t\"ʼn\": \"n\",\n\t\"N̆\": \"N\",\n\t\"n̆\": \"n\",\n\t\"ÅŒ\": \"O\",\n\t\"Å\": \"o\",\n\t\"ÅŽ\": \"O\",\n\t\"Å\": \"o\",\n\t\"Å\": \"O\",\n\t\"Å‘\": \"o\",\n\t\"Å’\": \"OE\",\n\t\"Å“\": \"oe\",\n\t\"P̆\": \"P\",\n\t\"p̆\": \"p\",\n\t\"Å”\": \"R\",\n\t\"Å•\": \"r\",\n\t\"Å–\": \"R\",\n\t\"Å—\": \"r\",\n\t\"Ř\": \"R\",\n\t\"Å™\": \"r\",\n\t\"R̆\": \"R\",\n\t\"r̆\": \"r\",\n\t\"È’\": \"R\",\n\t\"È“\": \"r\",\n\t\"Åš\": \"S\",\n\t\"Å›\": \"s\",\n\t\"Åœ\": \"S\",\n\t\"Å\": \"s\",\n\t\"Åž\": \"S\",\n\t\"Ș\": \"S\",\n\t\"È™\": \"s\",\n\t\"ÅŸ\": \"s\",\n\t\"Å \": \"S\",\n\t\"Å¡\": \"s\",\n\t\"Å¢\": \"T\",\n\t\"Å£\": \"t\",\n\t\"È›\": \"t\",\n\t\"Èš\": \"T\",\n\t\"Ť\": \"T\",\n\t\"Å¥\": \"t\",\n\t\"Ŧ\": \"T\",\n\t\"ŧ\": \"t\",\n\t\"T̆\": \"T\",\n\t\"t̆\": \"t\",\n\t\"Ũ\": \"U\",\n\t\"Å©\": \"u\",\n\t\"Ū\": \"U\",\n\t\"Å«\": \"u\",\n\t\"Ŭ\": \"U\",\n\t\"Å­\": \"u\",\n\t\"Å®\": \"U\",\n\t\"ů\": \"u\",\n\t\"Å°\": \"U\",\n\t\"ű\": \"u\",\n\t\"Ų\": \"U\",\n\t\"ų\": \"u\",\n\t\"È–\": \"U\",\n\t\"È—\": \"u\",\n\t\"V̆\": \"V\",\n\t\"v̆\": \"v\",\n\t\"Å´\": \"W\",\n\t\"ŵ\": \"w\",\n\t\"Ẃ\": \"W\",\n\t\"ẃ\": \"w\",\n\t\"X̆\": \"X\",\n\t\"x̆\": \"x\",\n\t\"Ŷ\": \"Y\",\n\t\"Å·\": \"y\",\n\t\"Ÿ\": \"Y\",\n\t\"Y̆\": \"Y\",\n\t\"y̆\": \"y\",\n\t\"Ź\": \"Z\",\n\t\"ź\": \"z\",\n\t\"Å»\": \"Z\",\n\t\"ż\": \"z\",\n\t\"Ž\": \"Z\",\n\t\"ž\": \"z\",\n\t\"Å¿\": \"s\",\n\t\"Æ’\": \"f\",\n\t\"Æ \": \"O\",\n\t\"Æ¡\": \"o\",\n\t\"Ư\": \"U\",\n\t\"Æ°\": \"u\",\n\t\"Ç\": \"A\",\n\t\"ÇŽ\": \"a\",\n\t\"Ç\": \"I\",\n\t\"Ç\": \"i\",\n\t\"Ç‘\": \"O\",\n\t\"Ç’\": \"o\",\n\t\"Ç“\": \"U\",\n\t\"Ç”\": \"u\",\n\t\"Ç•\": \"U\",\n\t\"Ç–\": \"u\",\n\t\"Ç—\": \"U\",\n\t\"ǘ\": \"u\",\n\t\"Ç™\": \"U\",\n\t\"Çš\": \"u\",\n\t\"Ç›\": \"U\",\n\t\"Çœ\": \"u\",\n\t\"Ứ\": \"U\",\n\t\"ứ\": \"u\",\n\t\"Ṹ\": \"U\",\n\t\"á¹¹\": \"u\",\n\t\"Ǻ\": \"A\",\n\t\"Ç»\": \"a\",\n\t\"Ǽ\": \"AE\",\n\t\"ǽ\": \"ae\",\n\t\"Ǿ\": \"O\",\n\t\"Ç¿\": \"o\",\n\t\"Þ\": \"TH\",\n\t\"þ\": \"th\",\n\t\"á¹”\": \"P\",\n\t\"ṕ\": \"p\",\n\t\"Ṥ\": \"S\",\n\t\"á¹¥\": \"s\",\n\t\"XÌ\": \"X\",\n\t\"xÌ\": \"x\",\n\t\"Ѓ\": \"Г\",\n\t\"Ñ“\": \"г\",\n\t\"ÐŒ\": \"К\",\n\t\"Ñœ\": \"к\",\n\t\"AÌ‹\": \"A\",\n\t\"aÌ‹\": \"a\",\n\t\"EÌ‹\": \"E\",\n\t\"eÌ‹\": \"e\",\n\t\"IÌ‹\": \"I\",\n\t\"iÌ‹\": \"i\",\n\t\"Ǹ\": \"N\",\n\t\"ǹ\": \"n\",\n\t\"á»’\": \"O\",\n\t\"ồ\": \"o\",\n\t\"á¹\": \"O\",\n\t\"ṑ\": \"o\",\n\t\"Ừ\": \"U\",\n\t\"ừ\": \"u\",\n\t\"Ẁ\": \"W\",\n\t\"áº\": \"w\",\n\t\"Ỳ\": \"Y\",\n\t\"ỳ\": \"y\",\n\t\"È€\": \"A\",\n\t\"È\": \"a\",\n\t\"È„\": \"E\",\n\t\"È…\": \"e\",\n\t\"Ȉ\": \"I\",\n\t\"ȉ\": \"i\",\n\t\"ÈŒ\": \"O\",\n\t\"È\": \"o\",\n\t\"È\": \"R\",\n\t\"È‘\": \"r\",\n\t\"È”\": \"U\",\n\t\"È•\": \"u\",\n\t\"BÌŒ\": \"B\",\n\t\"bÌŒ\": \"b\",\n\t\"Č̣\": \"C\",\n\t\"ÄÌ£\": \"c\",\n\t\"Ê̌\": \"E\",\n\t\"ê̌\": \"e\",\n\t\"FÌŒ\": \"F\",\n\t\"fÌŒ\": \"f\",\n\t\"Ǧ\": \"G\",\n\t\"ǧ\": \"g\",\n\t\"Èž\": \"H\",\n\t\"ÈŸ\": \"h\",\n\t\"JÌŒ\": \"J\",\n\t\"Ç°\": \"j\",\n\t\"Ǩ\": \"K\",\n\t\"Ç©\": \"k\",\n\t\"MÌŒ\": \"M\",\n\t\"mÌŒ\": \"m\",\n\t\"PÌŒ\": \"P\",\n\t\"pÌŒ\": \"p\",\n\t\"QÌŒ\": \"Q\",\n\t\"qÌŒ\": \"q\",\n\t\"Ř̩\": \"R\",\n\t\"ř̩\": \"r\",\n\t\"Ṧ\": \"S\",\n\t\"ṧ\": \"s\",\n\t\"VÌŒ\": \"V\",\n\t\"vÌŒ\": \"v\",\n\t\"WÌŒ\": \"W\",\n\t\"wÌŒ\": \"w\",\n\t\"XÌŒ\": \"X\",\n\t\"xÌŒ\": \"x\",\n\t\"YÌŒ\": \"Y\",\n\t\"yÌŒ\": \"y\",\n\t\"A̧\": \"A\",\n\t\"a̧\": \"a\",\n\t\"B̧\": \"B\",\n\t\"b̧\": \"b\",\n\t\"á¸\": \"D\",\n\t\"ḑ\": \"d\",\n\t\"Ȩ\": \"E\",\n\t\"È©\": \"e\",\n\t\"Æ̧\": \"E\",\n\t\"ɛ̧\": \"e\",\n\t\"Ḩ\": \"H\",\n\t\"ḩ\": \"h\",\n\t\"I̧\": \"I\",\n\t\"i̧\": \"i\",\n\t\"Ɨ̧\": \"I\",\n\t\"ɨ̧\": \"i\",\n\t\"M̧\": \"M\",\n\t\"m̧\": \"m\",\n\t\"O̧\": \"O\",\n\t\"o̧\": \"o\",\n\t\"Q̧\": \"Q\",\n\t\"q̧\": \"q\",\n\t\"U̧\": \"U\",\n\t\"u̧\": \"u\",\n\t\"X̧\": \"X\",\n\t\"x̧\": \"x\",\n\t\"Z̧\": \"Z\",\n\t\"z̧\": \"z\",\n\t\"й\":\"и\",\n\t\"Й\":\"И\",\n\t\"Ñ‘\":\"е\",\n\t\"Ð\":\"Е\",\n};\n\nvar chars = Object.keys(characterMap).join('|');\nvar allAccents = new RegExp(chars, 'g');\nvar firstAccent = new RegExp(chars, '');\n\nfunction matcher(match) {\n\treturn characterMap[match];\n}\n\nvar removeAccents = function(string) {\n\treturn string.replace(allAccents, matcher);\n};\n\nvar hasAccents = function(string) {\n\treturn !!string.match(firstAccent);\n};\n\nmodule.exports = removeAccents;\nmodule.exports.has = hasAccents;\nmodule.exports.remove = removeAccents;\n","/**\n * @license React\n * use-sync-external-store-shim.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n\n 'use strict';\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n var React = require('react');\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n\nvar objectIs = typeof Object.is === 'function' ? Object.is : is;\n\n// dispatch for CommonJS interop named imports.\n\nvar useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nvar didWarnOld18Alpha = false;\nvar didWarnUncachedGetSnapshot = false; // Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\n\nfunction useSyncExternalStore(subscribe, getSnapshot, // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n// React do not expose a way to check if we're hydrating. So users of the shim\n// will need to track that themselves and return the correct value\n// from `getSnapshot`.\ngetServerSnapshot) {\n {\n if (!didWarnOld18Alpha) {\n if (React.startTransition !== undefined) {\n didWarnOld18Alpha = true;\n\n error('You are using an outdated, pre-release alpha of React 18 that ' + 'does not support useSyncExternalStore. The ' + 'use-sync-external-store shim will not work correctly. Upgrade ' + 'to a newer pre-release.');\n }\n }\n } // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n\n\n var value = getSnapshot();\n\n {\n if (!didWarnUncachedGetSnapshot) {\n var cachedValue = getSnapshot();\n\n if (!objectIs(value, cachedValue)) {\n error('The result of getSnapshot should be cached to avoid an infinite loop');\n\n didWarnUncachedGetSnapshot = true;\n }\n }\n } // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n\n\n var _useState = useState({\n inst: {\n value: value,\n getSnapshot: getSnapshot\n }\n }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1]; // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n\n\n useLayoutEffect(function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot; // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst: inst\n });\n }\n }, [subscribe, value, getSnapshot]);\n useEffect(function () {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst: inst\n });\n }\n\n var handleStoreChange = function () {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst: inst\n });\n }\n }; // Subscribe to the store and return a clean-up function.\n\n\n return subscribe(handleStoreChange);\n }, [subscribe]);\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n var prevValue = inst.value;\n\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n\nfunction useSyncExternalStore$1(subscribe, getSnapshot, getServerSnapshot) {\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n return getSnapshot();\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n\nvar isServerEnvironment = !canUseDOM;\n\nvar shim = isServerEnvironment ? useSyncExternalStore$1 : useSyncExternalStore;\nvar useSyncExternalStore$2 = React.useSyncExternalStore !== undefined ? React.useSyncExternalStore : shim;\n\nexports.useSyncExternalStore = useSyncExternalStore$2;\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n \n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","module.exports = window[\"React\"];","module.exports = window[\"ReactDOM\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"apiFetch\"];","module.exports = window[\"wp\"][\"blob\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"compose\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"date\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"hooks\"];","module.exports = window[\"wp\"][\"htmlEntities\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"notices\"];","module.exports = window[\"wp\"][\"primitives\"];","module.exports = window[\"wp\"][\"privateApis\"];","module.exports = window[\"wp\"][\"url\"];","module.exports = window[\"wp\"][\"warning\"];","\"use client\";\nimport {\n createDialogStore\n} from \"./YOHCVXJB.js\";\nimport {\n createStore,\n mergeStore,\n omit,\n throwOnConflictingProps\n} from \"./EQQLU3CG.js\";\nimport {\n defaultValue\n} from \"./PBFD2E7P.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/popover/popover-store.ts\nfunction createPopoverStore(_a = {}) {\n var _b = _a, {\n popover: otherPopover\n } = _b, props = __objRest(_b, [\n \"popover\"\n ]);\n const store = mergeStore(\n props.store,\n omit(otherPopover, [\n \"arrowElement\",\n \"anchorElement\",\n \"contentElement\",\n \"popoverElement\",\n \"disclosureElement\"\n ])\n );\n throwOnConflictingProps(props, store);\n const syncState = store == null ? void 0 : store.getState();\n const dialog = createDialogStore(__spreadProps(__spreadValues({}, props), { store }));\n const placement = defaultValue(\n props.placement,\n syncState == null ? void 0 : syncState.placement,\n \"bottom\"\n );\n const initialState = __spreadProps(__spreadValues({}, dialog.getState()), {\n placement,\n currentPlacement: placement,\n anchorElement: defaultValue(syncState == null ? void 0 : syncState.anchorElement, null),\n popoverElement: defaultValue(syncState == null ? void 0 : syncState.popoverElement, null),\n arrowElement: defaultValue(syncState == null ? void 0 : syncState.arrowElement, null),\n rendered: Symbol(\"rendered\")\n });\n const popover = createStore(initialState, dialog, store);\n return __spreadProps(__spreadValues(__spreadValues({}, dialog), popover), {\n setAnchorElement: (element) => popover.setState(\"anchorElement\", element),\n setPopoverElement: (element) => popover.setState(\"popoverElement\", element),\n setArrowElement: (element) => popover.setState(\"arrowElement\", element),\n render: () => popover.setState(\"rendered\", Symbol(\"rendered\"))\n });\n}\n\nexport {\n createPopoverStore\n};\n","\"use client\";\nimport {\n canUseDOM\n} from \"./PQP5VPTV.js\";\n\n// src/utils/platform.ts\nfunction isTouchDevice() {\n return canUseDOM && !!navigator.maxTouchPoints;\n}\nfunction isApple() {\n if (!canUseDOM) return false;\n return /mac|iphone|ipad|ipod/i.test(navigator.platform);\n}\nfunction isSafari() {\n return canUseDOM && isApple() && /apple/i.test(navigator.vendor);\n}\nfunction isFirefox() {\n return canUseDOM && /firefox\\//i.test(navigator.userAgent);\n}\nfunction isMac() {\n return canUseDOM && navigator.platform.startsWith(\"Mac\") && !isTouchDevice();\n}\n\nexport {\n isTouchDevice,\n isApple,\n isSafari,\n isFirefox,\n isMac\n};\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\n\nexport {\n __spreadValues,\n __spreadProps,\n __objRest\n};\n","\"use client\";\nimport {\n createStore,\n mergeStore,\n omit,\n setup,\n subscribe,\n sync,\n throwOnConflictingProps\n} from \"./EQQLU3CG.js\";\nimport {\n defaultValue\n} from \"./PBFD2E7P.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/disclosure/disclosure-store.ts\nfunction createDisclosureStore(props = {}) {\n const store = mergeStore(\n props.store,\n omit(props.disclosure, [\"contentElement\", \"disclosureElement\"])\n );\n throwOnConflictingProps(props, store);\n const syncState = store == null ? void 0 : store.getState();\n const open = defaultValue(\n props.open,\n syncState == null ? void 0 : syncState.open,\n props.defaultOpen,\n false\n );\n const animated = defaultValue(props.animated, syncState == null ? void 0 : syncState.animated, false);\n const initialState = {\n open,\n animated,\n animating: !!animated && open,\n mounted: open,\n contentElement: defaultValue(syncState == null ? void 0 : syncState.contentElement, null),\n disclosureElement: defaultValue(syncState == null ? void 0 : syncState.disclosureElement, null)\n };\n const disclosure = createStore(initialState, store);\n setup(\n disclosure,\n () => sync(disclosure, [\"animated\", \"animating\"], (state) => {\n if (state.animated) return;\n disclosure.setState(\"animating\", false);\n })\n );\n setup(\n disclosure,\n () => subscribe(disclosure, [\"open\"], () => {\n if (!disclosure.getState().animated) return;\n disclosure.setState(\"animating\", true);\n })\n );\n setup(\n disclosure,\n () => sync(disclosure, [\"open\", \"animating\"], (state) => {\n disclosure.setState(\"mounted\", state.open || state.animating);\n })\n );\n return __spreadProps(__spreadValues({}, disclosure), {\n disclosure: props.disclosure,\n setOpen: (value) => disclosure.setState(\"open\", value),\n show: () => disclosure.setState(\"open\", true),\n hide: () => disclosure.setState(\"open\", false),\n toggle: () => disclosure.setState(\"open\", (open2) => !open2),\n stopAnimation: () => disclosure.setState(\"animating\", false),\n setContentElement: (value) => disclosure.setState(\"contentElement\", value),\n setDisclosureElement: (value) => disclosure.setState(\"disclosureElement\", value)\n });\n}\n\nexport {\n createDisclosureStore\n};\n","\"use client\";\nimport {\n batch,\n createStore,\n init,\n setup,\n throwOnConflictingProps\n} from \"./EQQLU3CG.js\";\nimport {\n chain,\n defaultValue\n} from \"./PBFD2E7P.js\";\nimport {\n getDocument\n} from \"./PQP5VPTV.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/collection/collection-store.ts\nfunction isElementPreceding(a, b) {\n return Boolean(\n b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING\n );\n}\nfunction sortBasedOnDOMPosition(items) {\n const pairs = items.map((item, index) => [index, item]);\n let isOrderDifferent = false;\n pairs.sort(([indexA, a], [indexB, b]) => {\n const elementA = a.element;\n const elementB = b.element;\n if (elementA === elementB) return 0;\n if (!elementA || !elementB) return 0;\n if (isElementPreceding(elementA, elementB)) {\n if (indexA > indexB) {\n isOrderDifferent = true;\n }\n return -1;\n }\n if (indexA < indexB) {\n isOrderDifferent = true;\n }\n return 1;\n });\n if (isOrderDifferent) {\n return pairs.map(([_, item]) => item);\n }\n return items;\n}\nfunction getCommonParent(items) {\n var _a;\n const firstItem = items.find((item) => !!item.element);\n const lastItem = [...items].reverse().find((item) => !!item.element);\n let parentElement = (_a = firstItem == null ? void 0 : firstItem.element) == null ? void 0 : _a.parentElement;\n while (parentElement && (lastItem == null ? void 0 : lastItem.element)) {\n const parent = parentElement;\n if (lastItem && parent.contains(lastItem.element)) {\n return parentElement;\n }\n parentElement = parentElement.parentElement;\n }\n return getDocument(parentElement).body;\n}\nfunction getPrivateStore(store) {\n return store == null ? void 0 : store.__unstablePrivateStore;\n}\nfunction createCollectionStore(props = {}) {\n var _a;\n throwOnConflictingProps(props, props.store);\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const items = defaultValue(\n props.items,\n syncState == null ? void 0 : syncState.items,\n props.defaultItems,\n []\n );\n const itemsMap = new Map(items.map((item) => [item.id, item]));\n const initialState = {\n items,\n renderedItems: defaultValue(syncState == null ? void 0 : syncState.renderedItems, [])\n };\n const syncPrivateStore = getPrivateStore(props.store);\n const privateStore = createStore(\n { items, renderedItems: initialState.renderedItems },\n syncPrivateStore\n );\n const collection = createStore(initialState, props.store);\n const sortItems = (renderedItems) => {\n const sortedItems = sortBasedOnDOMPosition(renderedItems);\n privateStore.setState(\"renderedItems\", sortedItems);\n collection.setState(\"renderedItems\", sortedItems);\n };\n setup(collection, () => init(privateStore));\n setup(privateStore, () => {\n return batch(privateStore, [\"items\"], (state) => {\n collection.setState(\"items\", state.items);\n });\n });\n setup(privateStore, () => {\n return batch(privateStore, [\"renderedItems\"], (state) => {\n let firstRun = true;\n let raf = requestAnimationFrame(() => {\n const { renderedItems } = collection.getState();\n if (state.renderedItems === renderedItems) return;\n sortItems(state.renderedItems);\n });\n if (typeof IntersectionObserver !== \"function\") {\n return () => cancelAnimationFrame(raf);\n }\n const ioCallback = () => {\n if (firstRun) {\n firstRun = false;\n return;\n }\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => sortItems(state.renderedItems));\n };\n const root = getCommonParent(state.renderedItems);\n const observer = new IntersectionObserver(ioCallback, { root });\n for (const item of state.renderedItems) {\n if (!item.element) continue;\n observer.observe(item.element);\n }\n return () => {\n cancelAnimationFrame(raf);\n observer.disconnect();\n };\n });\n });\n const mergeItem = (item, setItems, canDeleteFromMap = false) => {\n let prevItem;\n setItems((items2) => {\n const index = items2.findIndex(({ id }) => id === item.id);\n const nextItems = items2.slice();\n if (index !== -1) {\n prevItem = items2[index];\n const nextItem = __spreadValues(__spreadValues({}, prevItem), item);\n nextItems[index] = nextItem;\n itemsMap.set(item.id, nextItem);\n } else {\n nextItems.push(item);\n itemsMap.set(item.id, item);\n }\n return nextItems;\n });\n const unmergeItem = () => {\n setItems((items2) => {\n if (!prevItem) {\n if (canDeleteFromMap) {\n itemsMap.delete(item.id);\n }\n return items2.filter(({ id }) => id !== item.id);\n }\n const index = items2.findIndex(({ id }) => id === item.id);\n if (index === -1) return items2;\n const nextItems = items2.slice();\n nextItems[index] = prevItem;\n itemsMap.set(item.id, prevItem);\n return nextItems;\n });\n };\n return unmergeItem;\n };\n const registerItem = (item) => mergeItem(\n item,\n (getItems) => privateStore.setState(\"items\", getItems),\n true\n );\n return __spreadProps(__spreadValues({}, collection), {\n registerItem,\n renderItem: (item) => chain(\n registerItem(item),\n mergeItem(\n item,\n (getItems) => privateStore.setState(\"renderedItems\", getItems)\n )\n ),\n item: (id) => {\n if (!id) return null;\n let item = itemsMap.get(id);\n if (!item) {\n const { items: items2 } = collection.getState();\n item = items2.find((item2) => item2.id === id);\n if (item) {\n itemsMap.set(id, item);\n }\n }\n return item || null;\n },\n // @ts-expect-error Internal\n __unstablePrivateStore: privateStore\n });\n}\n\nexport {\n createCollectionStore\n};\n","\"use client\";\n\n// src/utils/array.ts\nfunction toArray(arg) {\n if (Array.isArray(arg)) {\n return arg;\n }\n return typeof arg !== \"undefined\" ? [arg] : [];\n}\nfunction addItemToArray(array, item, index = -1) {\n if (!(index in array)) {\n return [...array, item];\n }\n return [...array.slice(0, index), item, ...array.slice(index)];\n}\nfunction flatten2DArray(array) {\n const flattened = [];\n for (const row of array) {\n flattened.push(...row);\n }\n return flattened;\n}\nfunction reverseArray(array) {\n return array.slice().reverse();\n}\n\nexport {\n toArray,\n addItemToArray,\n flatten2DArray,\n reverseArray\n};\n","\"use client\";\nimport {\n applyState,\n chain,\n getKeys,\n hasOwnProperty,\n invariant,\n noop,\n omit,\n pick\n} from \"./PBFD2E7P.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/store.ts\nfunction getInternal(store, key) {\n const internals = store.__unstableInternals;\n invariant(internals, \"Invalid store\");\n return internals[key];\n}\nfunction createStore(initialState, ...stores) {\n let state = initialState;\n let prevStateBatch = state;\n let lastUpdate = Symbol();\n let destroy = noop;\n const instances = /* @__PURE__ */ new Set();\n const updatedKeys = /* @__PURE__ */ new Set();\n const setups = /* @__PURE__ */ new Set();\n const listeners = /* @__PURE__ */ new Set();\n const batchListeners = /* @__PURE__ */ new Set();\n const disposables = /* @__PURE__ */ new WeakMap();\n const listenerKeys = /* @__PURE__ */ new WeakMap();\n const storeSetup = (callback) => {\n setups.add(callback);\n return () => setups.delete(callback);\n };\n const storeInit = () => {\n const initialized = instances.size;\n const instance = Symbol();\n instances.add(instance);\n const maybeDestroy = () => {\n instances.delete(instance);\n if (instances.size) return;\n destroy();\n };\n if (initialized) return maybeDestroy;\n const desyncs = getKeys(state).map(\n (key) => chain(\n ...stores.map((store) => {\n var _a;\n const storeState = (_a = store == null ? void 0 : store.getState) == null ? void 0 : _a.call(store);\n if (!storeState) return;\n if (!hasOwnProperty(storeState, key)) return;\n return sync(store, [key], (state2) => {\n setState(\n key,\n state2[key],\n // @ts-expect-error - Not public API. This is just to prevent\n // infinite loops.\n true\n );\n });\n })\n )\n );\n const teardowns = [];\n for (const setup2 of setups) {\n teardowns.push(setup2());\n }\n const cleanups = stores.map(init);\n destroy = chain(...desyncs, ...teardowns, ...cleanups);\n return maybeDestroy;\n };\n const sub = (keys, listener, set = listeners) => {\n set.add(listener);\n listenerKeys.set(listener, keys);\n return () => {\n var _a;\n (_a = disposables.get(listener)) == null ? void 0 : _a();\n disposables.delete(listener);\n listenerKeys.delete(listener);\n set.delete(listener);\n };\n };\n const storeSubscribe = (keys, listener) => sub(keys, listener);\n const storeSync = (keys, listener) => {\n disposables.set(listener, listener(state, state));\n return sub(keys, listener);\n };\n const storeBatch = (keys, listener) => {\n disposables.set(listener, listener(state, prevStateBatch));\n return sub(keys, listener, batchListeners);\n };\n const storePick = (keys) => createStore(pick(state, keys), finalStore);\n const storeOmit = (keys) => createStore(omit(state, keys), finalStore);\n const getState = () => state;\n const setState = (key, value, fromStores = false) => {\n var _a;\n if (!hasOwnProperty(state, key)) return;\n const nextValue = applyState(value, state[key]);\n if (nextValue === state[key]) return;\n if (!fromStores) {\n for (const store of stores) {\n (_a = store == null ? void 0 : store.setState) == null ? void 0 : _a.call(store, key, nextValue);\n }\n }\n const prevState = state;\n state = __spreadProps(__spreadValues({}, state), { [key]: nextValue });\n const thisUpdate = Symbol();\n lastUpdate = thisUpdate;\n updatedKeys.add(key);\n const run = (listener, prev, uKeys) => {\n var _a2;\n const keys = listenerKeys.get(listener);\n const updated = (k) => uKeys ? uKeys.has(k) : k === key;\n if (!keys || keys.some(updated)) {\n (_a2 = disposables.get(listener)) == null ? void 0 : _a2();\n disposables.set(listener, listener(state, prev));\n }\n };\n for (const listener of listeners) {\n run(listener, prevState);\n }\n queueMicrotask(() => {\n if (lastUpdate !== thisUpdate) return;\n const snapshot = state;\n for (const listener of batchListeners) {\n run(listener, prevStateBatch, updatedKeys);\n }\n prevStateBatch = snapshot;\n updatedKeys.clear();\n });\n };\n const finalStore = {\n getState,\n setState,\n __unstableInternals: {\n setup: storeSetup,\n init: storeInit,\n subscribe: storeSubscribe,\n sync: storeSync,\n batch: storeBatch,\n pick: storePick,\n omit: storeOmit\n }\n };\n return finalStore;\n}\nfunction setup(store, ...args) {\n if (!store) return;\n return getInternal(store, \"setup\")(...args);\n}\nfunction init(store, ...args) {\n if (!store) return;\n return getInternal(store, \"init\")(...args);\n}\nfunction subscribe(store, ...args) {\n if (!store) return;\n return getInternal(store, \"subscribe\")(...args);\n}\nfunction sync(store, ...args) {\n if (!store) return;\n return getInternal(store, \"sync\")(...args);\n}\nfunction batch(store, ...args) {\n if (!store) return;\n return getInternal(store, \"batch\")(...args);\n}\nfunction omit2(store, ...args) {\n if (!store) return;\n return getInternal(store, \"omit\")(...args);\n}\nfunction pick2(store, ...args) {\n if (!store) return;\n return getInternal(store, \"pick\")(...args);\n}\nfunction mergeStore(...stores) {\n const initialState = stores.reduce((state, store2) => {\n var _a;\n const nextState = (_a = store2 == null ? void 0 : store2.getState) == null ? void 0 : _a.call(store2);\n if (!nextState) return state;\n return Object.assign(state, nextState);\n }, {});\n const store = createStore(initialState, ...stores);\n return store;\n}\nfunction throwOnConflictingProps(props, store) {\n if (process.env.NODE_ENV === \"production\") return;\n if (!store) return;\n const defaultKeys = Object.entries(props).filter(([key, value]) => key.startsWith(\"default\") && value !== void 0).map(([key]) => {\n var _a;\n const stateKey = key.replace(\"default\", \"\");\n return `${((_a = stateKey[0]) == null ? void 0 : _a.toLowerCase()) || \"\"}${stateKey.slice(1)}`;\n });\n if (!defaultKeys.length) return;\n const storeState = store.getState();\n const conflictingProps = defaultKeys.filter(\n (key) => hasOwnProperty(storeState, key)\n );\n if (!conflictingProps.length) return;\n throw new Error(\n `Passing a store prop in conjunction with a default state is not supported.\n\nconst store = useSelectStore();\n\n ^ ^\n\nInstead, pass the default state to the topmost store:\n\nconst store = useSelectStore({ defaultValue: \"Apple\" });\n\n\nSee https://github.com/ariakit/ariakit/pull/2745 for more details.\n\nIf there's a particular need for this, please submit a feature request at https://github.com/ariakit/ariakit\n`\n );\n}\n\nexport {\n createStore,\n setup,\n init,\n subscribe,\n sync,\n batch,\n omit2 as omit,\n pick2 as pick,\n mergeStore,\n throwOnConflictingProps\n};\n","\"use client\";\nimport {\n createCollectionStore\n} from \"./7DTP4AQO.js\";\nimport {\n flatten2DArray,\n reverseArray\n} from \"./7PRQYBBV.js\";\nimport {\n createStore,\n setup,\n sync\n} from \"./EQQLU3CG.js\";\nimport {\n defaultValue\n} from \"./PBFD2E7P.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite-store.ts\nvar NULL_ITEM = { id: null };\nfunction findFirstEnabledItem(items, excludeId) {\n return items.find((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getEnabledItems(items, excludeId) {\n return items.filter((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getItemsInRow(items, rowId) {\n return items.filter((item) => item.rowId === rowId);\n}\nfunction flipItems(items, activeId, shouldInsertNullItem = false) {\n const index = items.findIndex((item) => item.id === activeId);\n return [\n ...items.slice(index + 1),\n ...shouldInsertNullItem ? [NULL_ITEM] : [],\n ...items.slice(0, index)\n ];\n}\nfunction groupItemsByRows(items) {\n const rows = [];\n for (const item of items) {\n const row = rows.find((currentRow) => {\n var _a;\n return ((_a = currentRow[0]) == null ? void 0 : _a.rowId) === item.rowId;\n });\n if (row) {\n row.push(item);\n } else {\n rows.push([item]);\n }\n }\n return rows;\n}\nfunction getMaxRowLength(array) {\n let maxLength = 0;\n for (const { length } of array) {\n if (length > maxLength) {\n maxLength = length;\n }\n }\n return maxLength;\n}\nfunction createEmptyItem(rowId) {\n return {\n id: \"__EMPTY_ITEM__\",\n disabled: true,\n rowId\n };\n}\nfunction normalizeRows(rows, activeId, focusShift) {\n const maxLength = getMaxRowLength(rows);\n for (const row of rows) {\n for (let i = 0; i < maxLength; i += 1) {\n const item = row[i];\n if (!item || focusShift && item.disabled) {\n const isFirst = i === 0;\n const previousItem = isFirst && focusShift ? findFirstEnabledItem(row) : row[i - 1];\n row[i] = previousItem && activeId !== previousItem.id && focusShift ? previousItem : createEmptyItem(previousItem == null ? void 0 : previousItem.rowId);\n }\n }\n }\n return rows;\n}\nfunction verticalizeItems(items) {\n const rows = groupItemsByRows(items);\n const maxLength = getMaxRowLength(rows);\n const verticalized = [];\n for (let i = 0; i < maxLength; i += 1) {\n for (const row of rows) {\n const item = row[i];\n if (item) {\n verticalized.push(__spreadProps(__spreadValues({}, item), {\n // If there's no rowId, it means that it's not a grid composite, but\n // a single row instead. So, instead of verticalizing it, that is,\n // assigning a different rowId based on the column index, we keep it\n // undefined so they will be part of the same row. This is useful\n // when using up/down on one-dimensional composites.\n rowId: item.rowId ? `${i}` : void 0\n }));\n }\n }\n }\n return verticalized;\n}\nfunction createCompositeStore(props = {}) {\n var _a;\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const collection = createCollectionStore(props);\n const activeId = defaultValue(\n props.activeId,\n syncState == null ? void 0 : syncState.activeId,\n props.defaultActiveId\n );\n const initialState = __spreadProps(__spreadValues({}, collection.getState()), {\n activeId,\n baseElement: defaultValue(syncState == null ? void 0 : syncState.baseElement, null),\n includesBaseElement: defaultValue(\n props.includesBaseElement,\n syncState == null ? void 0 : syncState.includesBaseElement,\n activeId === null\n ),\n moves: defaultValue(syncState == null ? void 0 : syncState.moves, 0),\n orientation: defaultValue(\n props.orientation,\n syncState == null ? void 0 : syncState.orientation,\n \"both\"\n ),\n rtl: defaultValue(props.rtl, syncState == null ? void 0 : syncState.rtl, false),\n virtualFocus: defaultValue(\n props.virtualFocus,\n syncState == null ? void 0 : syncState.virtualFocus,\n false\n ),\n focusLoop: defaultValue(props.focusLoop, syncState == null ? void 0 : syncState.focusLoop, false),\n focusWrap: defaultValue(props.focusWrap, syncState == null ? void 0 : syncState.focusWrap, false),\n focusShift: defaultValue(props.focusShift, syncState == null ? void 0 : syncState.focusShift, false)\n });\n const composite = createStore(initialState, collection, props.store);\n setup(\n composite,\n () => sync(composite, [\"renderedItems\", \"activeId\"], (state) => {\n composite.setState(\"activeId\", (activeId2) => {\n var _a2;\n if (activeId2 !== void 0) return activeId2;\n return (_a2 = findFirstEnabledItem(state.renderedItems)) == null ? void 0 : _a2.id;\n });\n })\n );\n const getNextId = (direction = \"next\", options = {}) => {\n var _a2, _b;\n const defaultState = composite.getState();\n const {\n skip = 0,\n activeId: activeId2 = defaultState.activeId,\n focusShift = defaultState.focusShift,\n focusLoop = defaultState.focusLoop,\n focusWrap = defaultState.focusWrap,\n includesBaseElement = defaultState.includesBaseElement,\n renderedItems = defaultState.renderedItems,\n rtl = defaultState.rtl\n } = options;\n const isVerticalDirection = direction === \"up\" || direction === \"down\";\n const isNextDirection = direction === \"next\" || direction === \"down\";\n const canReverse = isNextDirection ? rtl && !isVerticalDirection : !rtl || isVerticalDirection;\n const canShift = focusShift && !skip;\n let items = !isVerticalDirection ? renderedItems : flatten2DArray(\n normalizeRows(groupItemsByRows(renderedItems), activeId2, canShift)\n );\n items = canReverse ? reverseArray(items) : items;\n items = isVerticalDirection ? verticalizeItems(items) : items;\n if (activeId2 == null) {\n return (_a2 = findFirstEnabledItem(items)) == null ? void 0 : _a2.id;\n }\n const activeItem = items.find((item) => item.id === activeId2);\n if (!activeItem) {\n return (_b = findFirstEnabledItem(items)) == null ? void 0 : _b.id;\n }\n const isGrid = items.some((item) => item.rowId);\n const activeIndex = items.indexOf(activeItem);\n const nextItems = items.slice(activeIndex + 1);\n const nextItemsInRow = getItemsInRow(nextItems, activeItem.rowId);\n if (skip) {\n const nextEnabledItemsInRow = getEnabledItems(nextItemsInRow, activeId2);\n const nextItem2 = nextEnabledItemsInRow.slice(skip)[0] || // If we can't find an item, just return the last one.\n nextEnabledItemsInRow[nextEnabledItemsInRow.length - 1];\n return nextItem2 == null ? void 0 : nextItem2.id;\n }\n const canLoop = focusLoop && (isVerticalDirection ? focusLoop !== \"horizontal\" : focusLoop !== \"vertical\");\n const canWrap = isGrid && focusWrap && (isVerticalDirection ? focusWrap !== \"horizontal\" : focusWrap !== \"vertical\");\n const hasNullItem = isNextDirection ? (!isGrid || isVerticalDirection) && canLoop && includesBaseElement : isVerticalDirection ? includesBaseElement : false;\n if (canLoop) {\n const loopItems = canWrap && !hasNullItem ? items : getItemsInRow(items, activeItem.rowId);\n const sortedItems = flipItems(loopItems, activeId2, hasNullItem);\n const nextItem2 = findFirstEnabledItem(sortedItems, activeId2);\n return nextItem2 == null ? void 0 : nextItem2.id;\n }\n if (canWrap) {\n const nextItem2 = findFirstEnabledItem(\n // We can use nextItems, which contains all the next items, including\n // items from other rows, to wrap between rows. However, if there is a\n // null item (the composite container), we'll only use the next items in\n // the row. So moving next from the last item will focus on the\n // composite container. On grid composites, horizontal navigation never\n // focuses on the composite container, only vertical.\n hasNullItem ? nextItemsInRow : nextItems,\n activeId2\n );\n const nextId = hasNullItem ? (nextItem2 == null ? void 0 : nextItem2.id) || null : nextItem2 == null ? void 0 : nextItem2.id;\n return nextId;\n }\n const nextItem = findFirstEnabledItem(nextItemsInRow, activeId2);\n if (!nextItem && hasNullItem) {\n return null;\n }\n return nextItem == null ? void 0 : nextItem.id;\n };\n return __spreadProps(__spreadValues(__spreadValues({}, collection), composite), {\n setBaseElement: (element) => composite.setState(\"baseElement\", element),\n setActiveId: (id) => composite.setState(\"activeId\", id),\n move: (id) => {\n if (id === void 0) return;\n composite.setState(\"activeId\", id);\n composite.setState(\"moves\", (moves) => moves + 1);\n },\n first: () => {\n var _a2;\n return (_a2 = findFirstEnabledItem(composite.getState().renderedItems)) == null ? void 0 : _a2.id;\n },\n last: () => {\n var _a2;\n return (_a2 = findFirstEnabledItem(reverseArray(composite.getState().renderedItems))) == null ? void 0 : _a2.id;\n },\n next: (options) => {\n if (options !== void 0 && typeof options === \"number\") {\n options = { skip: options };\n }\n return getNextId(\"next\", options);\n },\n previous: (options) => {\n if (options !== void 0 && typeof options === \"number\") {\n options = { skip: options };\n }\n return getNextId(\"previous\", options);\n },\n down: (options) => {\n if (options !== void 0 && typeof options === \"number\") {\n options = { skip: options };\n }\n return getNextId(\"down\", options);\n },\n up: (options) => {\n if (options !== void 0 && typeof options === \"number\") {\n options = { skip: options };\n }\n return getNextId(\"up\", options);\n }\n });\n}\n\nexport {\n createCompositeStore\n};\n","\"use client\";\nimport {\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/misc.ts\nfunction noop(..._) {\n}\nfunction shallowEqual(a, b) {\n if (a === b) return true;\n if (!a) return false;\n if (!b) return false;\n if (typeof a !== \"object\") return false;\n if (typeof b !== \"object\") return false;\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n const { length } = aKeys;\n if (bKeys.length !== length) return false;\n for (const key of aKeys) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction applyState(argument, currentValue) {\n if (isUpdater(argument)) {\n const value = isLazyValue(currentValue) ? currentValue() : currentValue;\n return argument(value);\n }\n return argument;\n}\nfunction isUpdater(argument) {\n return typeof argument === \"function\";\n}\nfunction isLazyValue(value) {\n return typeof value === \"function\";\n}\nfunction isObject(arg) {\n return typeof arg === \"object\" && arg != null;\n}\nfunction isEmpty(arg) {\n if (Array.isArray(arg)) return !arg.length;\n if (isObject(arg)) return !Object.keys(arg).length;\n if (arg == null) return true;\n if (arg === \"\") return true;\n return false;\n}\nfunction isInteger(arg) {\n if (typeof arg === \"number\") {\n return Math.floor(arg) === arg;\n }\n return String(Math.floor(Number(arg))) === arg;\n}\nfunction hasOwnProperty(object, prop) {\n if (typeof Object.hasOwn === \"function\") {\n return Object.hasOwn(object, prop);\n }\n return Object.prototype.hasOwnProperty.call(object, prop);\n}\nfunction chain(...fns) {\n return (...args) => {\n for (const fn of fns) {\n if (typeof fn === \"function\") {\n fn(...args);\n }\n }\n };\n}\nfunction cx(...args) {\n return args.filter(Boolean).join(\" \") || void 0;\n}\nfunction normalizeString(str) {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\nfunction omit(object, keys) {\n const result = __spreadValues({}, object);\n for (const key of keys) {\n if (hasOwnProperty(result, key)) {\n delete result[key];\n }\n }\n return result;\n}\nfunction pick(object, paths) {\n const result = {};\n for (const key of paths) {\n if (hasOwnProperty(object, key)) {\n result[key] = object[key];\n }\n }\n return result;\n}\nfunction identity(value) {\n return value;\n}\nfunction beforePaint(cb = noop) {\n const raf = requestAnimationFrame(cb);\n return () => cancelAnimationFrame(raf);\n}\nfunction afterPaint(cb = noop) {\n let raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(cb);\n });\n return () => cancelAnimationFrame(raf);\n}\nfunction invariant(condition, message) {\n if (condition) return;\n if (typeof message !== \"string\") throw new Error(\"Invariant failed\");\n throw new Error(message);\n}\nfunction getKeys(obj) {\n return Object.keys(obj);\n}\nfunction isFalsyBooleanCallback(booleanOrCallback, ...args) {\n const result = typeof booleanOrCallback === \"function\" ? booleanOrCallback(...args) : booleanOrCallback;\n if (result == null) return false;\n return !result;\n}\nfunction disabledFromProps(props) {\n return props.disabled || props[\"aria-disabled\"] === true || props[\"aria-disabled\"] === \"true\";\n}\nfunction removeUndefinedValues(obj) {\n const result = {};\n for (const key in obj) {\n if (obj[key] !== void 0) {\n result[key] = obj[key];\n }\n }\n return result;\n}\nfunction defaultValue(...values) {\n for (const value of values) {\n if (value !== void 0) return value;\n }\n return void 0;\n}\n\nexport {\n noop,\n shallowEqual,\n applyState,\n isObject,\n isEmpty,\n isInteger,\n hasOwnProperty,\n chain,\n cx,\n normalizeString,\n omit,\n pick,\n identity,\n beforePaint,\n afterPaint,\n invariant,\n getKeys,\n isFalsyBooleanCallback,\n disabledFromProps,\n removeUndefinedValues,\n defaultValue\n};\n","\"use client\";\n\n// src/utils/dom.ts\nvar canUseDOM = checkIsBrowser();\nfunction checkIsBrowser() {\n var _a;\n return typeof window !== \"undefined\" && !!((_a = window.document) == null ? void 0 : _a.createElement);\n}\nfunction getDocument(node) {\n return node ? node.ownerDocument || node : document;\n}\nfunction getWindow(node) {\n return getDocument(node).defaultView || window;\n}\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getDocument(node);\n if (!(activeElement == null ? void 0 : activeElement.nodeName)) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(\n activeElement.contentDocument.body,\n activeDescendant\n );\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\nfunction contains(parent, child) {\n return parent === child || parent.contains(child);\n}\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\nfunction isButton(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName === \"button\") return true;\n if (tagName === \"input\" && element.type) {\n return buttonInputTypes.indexOf(element.type) !== -1;\n }\n return false;\n}\nvar buttonInputTypes = [\n \"button\",\n \"color\",\n \"file\",\n \"image\",\n \"reset\",\n \"submit\"\n];\nfunction isVisible(element) {\n if (typeof element.checkVisibility === \"function\") {\n return element.checkVisibility();\n }\n const htmlElement = element;\n return htmlElement.offsetWidth > 0 || htmlElement.offsetHeight > 0 || element.getClientRects().length > 0;\n}\nfunction isTextField(element) {\n try {\n const isTextInput = element instanceof HTMLInputElement && element.selectionStart !== null;\n const isTextArea = element.tagName === \"TEXTAREA\";\n return isTextInput || isTextArea || false;\n } catch (error) {\n return false;\n }\n}\nfunction isTextbox(element) {\n return element.isContentEditable || isTextField(element);\n}\nfunction getTextboxValue(element) {\n if (isTextField(element)) {\n return element.value;\n }\n if (element.isContentEditable) {\n const range = getDocument(element).createRange();\n range.selectNodeContents(element);\n return range.toString();\n }\n return \"\";\n}\nfunction getTextboxSelection(element) {\n let start = 0;\n let end = 0;\n if (isTextField(element)) {\n start = element.selectionStart || 0;\n end = element.selectionEnd || 0;\n } else if (element.isContentEditable) {\n const selection = getDocument(element).getSelection();\n if ((selection == null ? void 0 : selection.rangeCount) && selection.anchorNode && contains(element, selection.anchorNode) && selection.focusNode && contains(element, selection.focusNode)) {\n const range = selection.getRangeAt(0);\n const nextRange = range.cloneRange();\n nextRange.selectNodeContents(element);\n nextRange.setEnd(range.startContainer, range.startOffset);\n start = nextRange.toString().length;\n nextRange.setEnd(range.endContainer, range.endOffset);\n end = nextRange.toString().length;\n }\n }\n return { start, end };\n}\nfunction getPopupRole(element, fallback) {\n const allowedPopupRoles = [\"dialog\", \"menu\", \"listbox\", \"tree\", \"grid\"];\n const role = element == null ? void 0 : element.getAttribute(\"role\");\n if (role && allowedPopupRoles.indexOf(role) !== -1) {\n return role;\n }\n return fallback;\n}\nfunction getPopupItemRole(element, fallback) {\n var _a;\n const itemRoleByPopupRole = {\n menu: \"menuitem\",\n listbox: \"option\",\n tree: \"treeitem\"\n };\n const popupRole = getPopupRole(element);\n if (!popupRole) return fallback;\n const key = popupRole;\n return (_a = itemRoleByPopupRole[key]) != null ? _a : fallback;\n}\nfunction scrollIntoViewIfNeeded(element, arg) {\n if (isPartiallyHidden(element) && \"scrollIntoView\" in element) {\n element.scrollIntoView(arg);\n }\n}\nfunction getScrollingElement(element) {\n if (!element) return null;\n const isScrollableOverflow = (overflow) => {\n if (overflow === \"auto\") return true;\n if (overflow === \"scroll\") return true;\n return false;\n };\n if (element.clientHeight && element.scrollHeight > element.clientHeight) {\n const { overflowY } = getComputedStyle(element);\n if (isScrollableOverflow(overflowY)) return element;\n } else if (element.clientWidth && element.scrollWidth > element.clientWidth) {\n const { overflowX } = getComputedStyle(element);\n if (isScrollableOverflow(overflowX)) return element;\n }\n return getScrollingElement(element.parentElement) || document.scrollingElement || document.body;\n}\nfunction isPartiallyHidden(element) {\n const elementRect = element.getBoundingClientRect();\n const scroller = getScrollingElement(element);\n if (!scroller) return false;\n const scrollerRect = scroller.getBoundingClientRect();\n const isHTML = scroller.tagName === \"HTML\";\n const scrollerTop = isHTML ? scrollerRect.top + scroller.scrollTop : scrollerRect.top;\n const scrollerBottom = isHTML ? scroller.clientHeight : scrollerRect.bottom;\n const scrollerLeft = isHTML ? scrollerRect.left + scroller.scrollLeft : scrollerRect.left;\n const scrollerRight = isHTML ? scroller.clientWidth : scrollerRect.right;\n const top = elementRect.top < scrollerTop;\n const left = elementRect.left < scrollerLeft;\n const bottom = elementRect.bottom > scrollerBottom;\n const right = elementRect.right > scrollerRight;\n return top || left || bottom || right;\n}\nfunction setSelectionRange(element, ...args) {\n if (/text|search|password|tel|url/i.test(element.type)) {\n element.setSelectionRange(...args);\n }\n}\n\nexport {\n canUseDOM,\n getDocument,\n getWindow,\n getActiveElement,\n contains,\n isFrame,\n isButton,\n isVisible,\n isTextField,\n isTextbox,\n getTextboxValue,\n getTextboxSelection,\n getPopupRole,\n getPopupItemRole,\n scrollIntoViewIfNeeded,\n getScrollingElement,\n isPartiallyHidden,\n setSelectionRange\n};\n","\"use client\";\nimport {\n createDisclosureStore\n} from \"./6E4KKOSB.js\";\n\n// src/dialog/dialog-store.ts\nfunction createDialogStore(props = {}) {\n return createDisclosureStore(props);\n}\n\nexport {\n createDialogStore\n};\n","\"use client\";\nimport {\n createCompositeStore\n} from \"../__chunks/IJ6VFLJG.js\";\nimport \"../__chunks/7DTP4AQO.js\";\nimport \"../__chunks/7PRQYBBV.js\";\nimport {\n createPopoverStore\n} from \"../__chunks/3UYWTADI.js\";\nimport \"../__chunks/YOHCVXJB.js\";\nimport \"../__chunks/6E4KKOSB.js\";\nimport {\n batch,\n createStore,\n mergeStore,\n pick,\n setup,\n sync,\n throwOnConflictingProps\n} from \"../__chunks/EQQLU3CG.js\";\nimport {\n chain,\n defaultValue\n} from \"../__chunks/PBFD2E7P.js\";\nimport {\n isSafari,\n isTouchDevice\n} from \"../__chunks/3VBK76MS.js\";\nimport \"../__chunks/PQP5VPTV.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox-store.ts\nvar isTouchSafari = isSafari() && isTouchDevice();\nfunction createComboboxStore(_a = {}) {\n var _b = _a, {\n tag\n } = _b, props = __objRest(_b, [\n \"tag\"\n ]);\n const store = mergeStore(props.store, pick(tag, [\"value\", \"rtl\"]));\n throwOnConflictingProps(props, store);\n const tagState = tag == null ? void 0 : tag.getState();\n const syncState = store == null ? void 0 : store.getState();\n const activeId = defaultValue(\n props.activeId,\n syncState == null ? void 0 : syncState.activeId,\n props.defaultActiveId,\n null\n );\n const composite = createCompositeStore(__spreadProps(__spreadValues({}, props), {\n activeId,\n includesBaseElement: defaultValue(\n props.includesBaseElement,\n syncState == null ? void 0 : syncState.includesBaseElement,\n true\n ),\n orientation: defaultValue(\n props.orientation,\n syncState == null ? void 0 : syncState.orientation,\n \"vertical\"\n ),\n focusLoop: defaultValue(props.focusLoop, syncState == null ? void 0 : syncState.focusLoop, true),\n focusWrap: defaultValue(props.focusWrap, syncState == null ? void 0 : syncState.focusWrap, true),\n virtualFocus: defaultValue(\n props.virtualFocus,\n syncState == null ? void 0 : syncState.virtualFocus,\n true\n )\n }));\n const popover = createPopoverStore(__spreadProps(__spreadValues({}, props), {\n placement: defaultValue(\n props.placement,\n syncState == null ? void 0 : syncState.placement,\n \"bottom-start\"\n )\n }));\n const value = defaultValue(\n props.value,\n syncState == null ? void 0 : syncState.value,\n props.defaultValue,\n \"\"\n );\n const selectedValue = defaultValue(\n props.selectedValue,\n syncState == null ? void 0 : syncState.selectedValue,\n tagState == null ? void 0 : tagState.values,\n props.defaultSelectedValue,\n \"\"\n );\n const multiSelectable = Array.isArray(selectedValue);\n const initialState = __spreadProps(__spreadValues(__spreadValues({}, composite.getState()), popover.getState()), {\n value,\n selectedValue,\n resetValueOnSelect: defaultValue(\n props.resetValueOnSelect,\n syncState == null ? void 0 : syncState.resetValueOnSelect,\n multiSelectable\n ),\n resetValueOnHide: defaultValue(\n props.resetValueOnHide,\n syncState == null ? void 0 : syncState.resetValueOnHide,\n multiSelectable && !tag\n ),\n activeValue: syncState == null ? void 0 : syncState.activeValue\n });\n const combobox = createStore(initialState, composite, popover, store);\n if (isTouchSafari) {\n setup(\n combobox,\n () => sync(combobox, [\"virtualFocus\"], () => {\n combobox.setState(\"virtualFocus\", false);\n })\n );\n }\n setup(combobox, () => {\n if (!tag) return;\n return chain(\n sync(combobox, [\"selectedValue\"], (state) => {\n if (!Array.isArray(state.selectedValue)) return;\n tag.setValues(state.selectedValue);\n }),\n sync(tag, [\"values\"], (state) => {\n combobox.setState(\"selectedValue\", state.values);\n })\n );\n });\n setup(\n combobox,\n () => sync(combobox, [\"resetValueOnHide\", \"mounted\"], (state) => {\n if (!state.resetValueOnHide) return;\n if (state.mounted) return;\n combobox.setState(\"value\", value);\n })\n );\n setup(\n combobox,\n () => sync(combobox, [\"open\"], (state) => {\n if (state.open) return;\n combobox.setState(\"activeId\", activeId);\n combobox.setState(\"moves\", 0);\n })\n );\n setup(\n combobox,\n () => sync(combobox, [\"moves\", \"activeId\"], (state, prevState) => {\n if (state.moves === prevState.moves) {\n combobox.setState(\"activeValue\", void 0);\n }\n })\n );\n setup(\n combobox,\n () => batch(combobox, [\"moves\", \"renderedItems\"], (state, prev) => {\n if (state.moves === prev.moves) return;\n const { activeId: activeId2 } = combobox.getState();\n const activeItem = composite.item(activeId2);\n combobox.setState(\"activeValue\", activeItem == null ? void 0 : activeItem.value);\n })\n );\n return __spreadProps(__spreadValues(__spreadValues(__spreadValues({}, popover), composite), combobox), {\n tag,\n setValue: (value2) => combobox.setState(\"value\", value2),\n resetValue: () => combobox.setState(\"value\", initialState.value),\n setSelectedValue: (selectedValue2) => combobox.setState(\"selectedValue\", selectedValue2)\n });\n}\nexport {\n createComboboxStore\n};\n","\"use client\";\nimport {\n isApple\n} from \"../__chunks/3VBK76MS.js\";\nimport {\n contains\n} from \"../__chunks/PQP5VPTV.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/utils/events.ts\nfunction isPortalEvent(event) {\n return Boolean(\n event.currentTarget && !contains(event.currentTarget, event.target)\n );\n}\nfunction isSelfTarget(event) {\n return event.target === event.currentTarget;\n}\nfunction isOpeningInNewTab(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const isAppleDevice = isApple();\n if (isAppleDevice && !event.metaKey) return false;\n if (!isAppleDevice && !event.ctrlKey) return false;\n const tagName = element.tagName.toLowerCase();\n if (tagName === \"a\") return true;\n if (tagName === \"button\" && element.type === \"submit\") return true;\n if (tagName === \"input\" && element.type === \"submit\") return true;\n return false;\n}\nfunction isDownloading(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const tagName = element.tagName.toLowerCase();\n if (!event.altKey) return false;\n if (tagName === \"a\") return true;\n if (tagName === \"button\" && element.type === \"submit\") return true;\n if (tagName === \"input\" && element.type === \"submit\") return true;\n return false;\n}\nfunction fireEvent(element, type, eventInit) {\n const event = new Event(type, eventInit);\n return element.dispatchEvent(event);\n}\nfunction fireBlurEvent(element, eventInit) {\n const event = new FocusEvent(\"blur\", eventInit);\n const defaultAllowed = element.dispatchEvent(event);\n const bubbleInit = __spreadProps(__spreadValues({}, eventInit), { bubbles: true });\n element.dispatchEvent(new FocusEvent(\"focusout\", bubbleInit));\n return defaultAllowed;\n}\nfunction fireFocusEvent(element, eventInit) {\n const event = new FocusEvent(\"focus\", eventInit);\n const defaultAllowed = element.dispatchEvent(event);\n const bubbleInit = __spreadProps(__spreadValues({}, eventInit), { bubbles: true });\n element.dispatchEvent(new FocusEvent(\"focusin\", bubbleInit));\n return defaultAllowed;\n}\nfunction fireKeyboardEvent(element, type, eventInit) {\n const event = new KeyboardEvent(type, eventInit);\n return element.dispatchEvent(event);\n}\nfunction fireClickEvent(element, eventInit) {\n const event = new MouseEvent(\"click\", eventInit);\n return element.dispatchEvent(event);\n}\nfunction isFocusEventOutside(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction getInputType(event) {\n const nativeEvent = \"nativeEvent\" in event ? event.nativeEvent : event;\n if (!nativeEvent) return;\n if (!(\"inputType\" in nativeEvent)) return;\n if (typeof nativeEvent.inputType !== \"string\") return;\n return nativeEvent.inputType;\n}\nfunction queueBeforeEvent(element, type, callback, timeout) {\n const createTimer = (callback2) => {\n if (timeout) {\n const timerId2 = setTimeout(callback2, timeout);\n return () => clearTimeout(timerId2);\n }\n const timerId = requestAnimationFrame(callback2);\n return () => cancelAnimationFrame(timerId);\n };\n const cancelTimer = createTimer(() => {\n element.removeEventListener(type, callSync, true);\n callback();\n });\n const callSync = () => {\n cancelTimer();\n callback();\n };\n element.addEventListener(type, callSync, { once: true, capture: true });\n return cancelTimer;\n}\nfunction addGlobalEventListener(type, listener, options, scope = window) {\n const children = [];\n try {\n scope.document.addEventListener(type, listener, options);\n for (const frame of Array.from(scope.frames)) {\n children.push(addGlobalEventListener(type, listener, options, frame));\n }\n } catch (e) {\n }\n const removeEventListener = () => {\n try {\n scope.document.removeEventListener(type, listener, options);\n } catch (e) {\n }\n for (const remove of children) {\n remove();\n }\n };\n return removeEventListener;\n}\nexport {\n addGlobalEventListener,\n fireBlurEvent,\n fireClickEvent,\n fireEvent,\n fireFocusEvent,\n fireKeyboardEvent,\n getInputType,\n isDownloading,\n isFocusEventOutside,\n isOpeningInNewTab,\n isPortalEvent,\n isSelfTarget,\n queueBeforeEvent\n};\n","\"use client\";\nimport {\n contains,\n getActiveElement,\n isFrame,\n isVisible\n} from \"../__chunks/PQP5VPTV.js\";\nimport {\n __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/utils/focus.ts\nvar selector = \"input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], summary, iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false'])\";\nfunction hasNegativeTabIndex(element) {\n const tabIndex = Number.parseInt(element.getAttribute(\"tabindex\") || \"0\", 10);\n return tabIndex < 0;\n}\nfunction isFocusable(element) {\n if (!element.matches(selector)) return false;\n if (!isVisible(element)) return false;\n if (element.closest(\"[inert]\")) return false;\n return true;\n}\nfunction isTabbable(element) {\n if (!isFocusable(element)) return false;\n if (hasNegativeTabIndex(element)) return false;\n if (!(\"form\" in element)) return true;\n if (!element.form) return true;\n if (element.checked) return true;\n if (element.type !== \"radio\") return true;\n const radioGroup = element.form.elements.namedItem(element.name);\n if (!radioGroup) return true;\n if (!(\"length\" in radioGroup)) return true;\n const activeElement = getActiveElement(element);\n if (!activeElement) return true;\n if (activeElement === element) return true;\n if (!(\"form\" in activeElement)) return true;\n if (activeElement.form !== element.form) return true;\n if (activeElement.name !== element.name) return true;\n return false;\n}\nfunction getAllFocusableIn(container, includeContainer) {\n const elements = Array.from(\n container.querySelectorAll(selector)\n );\n if (includeContainer) {\n elements.unshift(container);\n }\n const focusableElements = elements.filter(isFocusable);\n focusableElements.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n focusableElements.splice(i, 1, ...getAllFocusableIn(frameBody));\n }\n });\n return focusableElements;\n}\nfunction getAllFocusable(includeBody) {\n return getAllFocusableIn(document.body, includeBody);\n}\nfunction getFirstFocusableIn(container, includeContainer) {\n const [first] = getAllFocusableIn(container, includeContainer);\n return first || null;\n}\nfunction getFirstFocusable(includeBody) {\n return getFirstFocusableIn(document.body, includeBody);\n}\nfunction getAllTabbableIn(container, includeContainer, fallbackToFocusable) {\n const elements = Array.from(\n container.querySelectorAll(selector)\n );\n const tabbableElements = elements.filter(isTabbable);\n if (includeContainer && isTabbable(container)) {\n tabbableElements.unshift(container);\n }\n tabbableElements.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n const allFrameTabbable = getAllTabbableIn(\n frameBody,\n false,\n fallbackToFocusable\n );\n tabbableElements.splice(i, 1, ...allFrameTabbable);\n }\n });\n if (!tabbableElements.length && fallbackToFocusable) {\n return elements;\n }\n return tabbableElements;\n}\nfunction getAllTabbable(fallbackToFocusable) {\n return getAllTabbableIn(document.body, false, fallbackToFocusable);\n}\nfunction getFirstTabbableIn(container, includeContainer, fallbackToFocusable) {\n const [first] = getAllTabbableIn(\n container,\n includeContainer,\n fallbackToFocusable\n );\n return first || null;\n}\nfunction getFirstTabbable(fallbackToFocusable) {\n return getFirstTabbableIn(document.body, false, fallbackToFocusable);\n}\nfunction getLastTabbableIn(container, includeContainer, fallbackToFocusable) {\n const allTabbable = getAllTabbableIn(\n container,\n includeContainer,\n fallbackToFocusable\n );\n return allTabbable[allTabbable.length - 1] || null;\n}\nfunction getLastTabbable(fallbackToFocusable) {\n return getLastTabbableIn(document.body, false, fallbackToFocusable);\n}\nfunction getNextTabbableIn(container, includeContainer, fallbackToFirst, fallbackToFocusable) {\n const activeElement = getActiveElement(container);\n const allFocusable = getAllFocusableIn(container, includeContainer);\n const activeIndex = allFocusable.indexOf(activeElement);\n const nextFocusableElements = allFocusable.slice(activeIndex + 1);\n return nextFocusableElements.find(isTabbable) || (fallbackToFirst ? allFocusable.find(isTabbable) : null) || (fallbackToFocusable ? nextFocusableElements[0] : null) || null;\n}\nfunction getNextTabbable(fallbackToFirst, fallbackToFocusable) {\n return getNextTabbableIn(\n document.body,\n false,\n fallbackToFirst,\n fallbackToFocusable\n );\n}\nfunction getPreviousTabbableIn(container, includeContainer, fallbackToLast, fallbackToFocusable) {\n const activeElement = getActiveElement(container);\n const allFocusable = getAllFocusableIn(container, includeContainer).reverse();\n const activeIndex = allFocusable.indexOf(activeElement);\n const previousFocusableElements = allFocusable.slice(activeIndex + 1);\n return previousFocusableElements.find(isTabbable) || (fallbackToLast ? allFocusable.find(isTabbable) : null) || (fallbackToFocusable ? previousFocusableElements[0] : null) || null;\n}\nfunction getPreviousTabbable(fallbackToFirst, fallbackToFocusable) {\n return getPreviousTabbableIn(\n document.body,\n false,\n fallbackToFirst,\n fallbackToFocusable\n );\n}\nfunction getClosestFocusable(element) {\n while (element && !isFocusable(element)) {\n element = element.closest(selector);\n }\n return element || null;\n}\nfunction hasFocus(element) {\n const activeElement = getActiveElement(element);\n if (!activeElement) return false;\n if (activeElement === element) return true;\n const activeDescendant = activeElement.getAttribute(\"aria-activedescendant\");\n if (!activeDescendant) return false;\n return activeDescendant === element.id;\n}\nfunction hasFocusWithin(element) {\n const activeElement = getActiveElement(element);\n if (!activeElement) return false;\n if (contains(element, activeElement)) return true;\n const activeDescendant = activeElement.getAttribute(\"aria-activedescendant\");\n if (!activeDescendant) return false;\n if (!(\"id\" in element)) return false;\n if (activeDescendant === element.id) return true;\n return !!element.querySelector(`#${CSS.escape(activeDescendant)}`);\n}\nfunction focusIfNeeded(element) {\n if (!hasFocusWithin(element) && isFocusable(element)) {\n element.focus();\n }\n}\nfunction disableFocus(element) {\n var _a;\n const currentTabindex = (_a = element.getAttribute(\"tabindex\")) != null ? _a : \"\";\n element.setAttribute(\"data-tabindex\", currentTabindex);\n element.setAttribute(\"tabindex\", \"-1\");\n}\nfunction disableFocusIn(container, includeContainer) {\n const tabbableElements = getAllTabbableIn(container, includeContainer);\n for (const element of tabbableElements) {\n disableFocus(element);\n }\n}\nfunction restoreFocusIn(container) {\n const elements = container.querySelectorAll(\"[data-tabindex]\");\n const restoreTabIndex = (element) => {\n const tabindex = element.getAttribute(\"data-tabindex\");\n element.removeAttribute(\"data-tabindex\");\n if (tabindex) {\n element.setAttribute(\"tabindex\", tabindex);\n } else {\n element.removeAttribute(\"tabindex\");\n }\n };\n if (container.hasAttribute(\"data-tabindex\")) {\n restoreTabIndex(container);\n }\n for (const element of elements) {\n restoreTabIndex(element);\n }\n}\nfunction focusIntoView(element, options) {\n if (!(\"scrollIntoView\" in element)) {\n element.focus();\n } else {\n element.focus({ preventScroll: true });\n element.scrollIntoView(__spreadValues({ block: \"nearest\", inline: \"nearest\" }, options));\n }\n}\nexport {\n disableFocus,\n disableFocusIn,\n focusIfNeeded,\n focusIntoView,\n getAllFocusable,\n getAllFocusableIn,\n getAllTabbable,\n getAllTabbableIn,\n getClosestFocusable,\n getFirstFocusable,\n getFirstFocusableIn,\n getFirstTabbable,\n getFirstTabbableIn,\n getLastTabbable,\n getLastTabbableIn,\n getNextTabbable,\n getNextTabbableIn,\n getPreviousTabbable,\n getPreviousTabbableIn,\n hasFocus,\n hasFocusWithin,\n isFocusable,\n isTabbable,\n restoreFocusIn\n};\n","\"use client\";\nimport {\n CompositeContextProvider,\n CompositeScopedContextProvider\n} from \"./APGXEJ2Q.js\";\nimport {\n PopoverContextProvider,\n PopoverScopedContextProvider\n} from \"./COWZSPJ7.js\";\nimport {\n createStoreContext\n} from \"./7FZLUSKW.js\";\n\n// src/combobox/combobox-context.tsx\nimport { createContext } from \"react\";\nvar ComboboxListRoleContext = createContext(\n void 0\n);\nvar ctx = createStoreContext(\n [PopoverContextProvider, CompositeContextProvider],\n [PopoverScopedContextProvider, CompositeScopedContextProvider]\n);\nvar useComboboxContext = ctx.useContext;\nvar useComboboxScopedContext = ctx.useScopedContext;\nvar useComboboxProviderContext = ctx.useProviderContext;\nvar ComboboxContextProvider = ctx.ContextProvider;\nvar ComboboxScopedContextProvider = ctx.ScopedContextProvider;\nvar ComboboxItemValueContext = createContext(\n void 0\n);\nvar ComboboxItemCheckedContext = createContext(false);\n\nexport {\n ComboboxListRoleContext,\n useComboboxContext,\n useComboboxScopedContext,\n useComboboxProviderContext,\n ComboboxContextProvider,\n ComboboxScopedContextProvider,\n ComboboxItemValueContext,\n ComboboxItemCheckedContext\n};\n","\"use client\";\nimport {\n CompositeContextProvider,\n CompositeScopedContextProvider\n} from \"./APGXEJ2Q.js\";\nimport {\n createStoreContext\n} from \"./7FZLUSKW.js\";\n\n// src/tag/tag-context.tsx\nimport { createContext } from \"react\";\nvar TagValueContext = createContext(null);\nvar TagRemoveIdContext = createContext(\n null\n);\nvar ctx = createStoreContext(\n [CompositeContextProvider],\n [CompositeScopedContextProvider]\n);\nvar useTagContext = ctx.useContext;\nvar useTagScopedContext = ctx.useScopedContext;\nvar useTagProviderContext = ctx.useProviderContext;\nvar TagContextProvider = ctx.ContextProvider;\nvar TagScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n TagValueContext,\n TagRemoveIdContext,\n useTagContext,\n useTagScopedContext,\n useTagProviderContext,\n TagContextProvider,\n TagScopedContextProvider\n};\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\n\nexport {\n __spreadValues,\n __spreadProps,\n __objRest\n};\n","\"use client\";\n\n// src/composite/utils.ts\nimport { getDocument, isTextField } from \"@ariakit/core/utils/dom\";\nvar NULL_ITEM = { id: null };\nfunction flipItems(items, activeId, shouldInsertNullItem = false) {\n const index = items.findIndex((item) => item.id === activeId);\n return [\n ...items.slice(index + 1),\n ...shouldInsertNullItem ? [NULL_ITEM] : [],\n ...items.slice(0, index)\n ];\n}\nfunction findFirstEnabledItem(items, excludeId) {\n return items.find((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getEnabledItem(store, id) {\n if (!id) return null;\n return store.item(id) || null;\n}\nfunction groupItemsByRows(items) {\n const rows = [];\n for (const item of items) {\n const row = rows.find((currentRow) => {\n var _a;\n return ((_a = currentRow[0]) == null ? void 0 : _a.rowId) === item.rowId;\n });\n if (row) {\n row.push(item);\n } else {\n rows.push([item]);\n }\n }\n return rows;\n}\nfunction selectTextField(element, collapseToEnd = false) {\n if (isTextField(element)) {\n element.setSelectionRange(\n collapseToEnd ? element.value.length : 0,\n element.value.length\n );\n } else if (element.isContentEditable) {\n const selection = getDocument(element).getSelection();\n selection == null ? void 0 : selection.selectAllChildren(element);\n if (collapseToEnd) {\n selection == null ? void 0 : selection.collapseToEnd();\n }\n }\n}\nvar FOCUS_SILENTLY = Symbol(\"FOCUS_SILENTLY\");\nfunction focusSilently(element) {\n element[FOCUS_SILENTLY] = true;\n element.focus({ preventScroll: true });\n}\nfunction silentlyFocused(element) {\n const isSilentlyFocused = element[FOCUS_SILENTLY];\n delete element[FOCUS_SILENTLY];\n return isSilentlyFocused;\n}\nfunction isItem(store, element, exclude) {\n if (!element) return false;\n if (element === exclude) return false;\n const item = store.item(element.id);\n if (!item) return false;\n if (exclude && item.element === exclude) return false;\n return true;\n}\n\nexport {\n flipItems,\n findFirstEnabledItem,\n getEnabledItem,\n groupItemsByRows,\n selectTextField,\n focusSilently,\n silentlyFocused,\n isItem\n};\n","\"use client\";\nimport {\n useMergeRefs\n} from \"./HNHAUIIY.js\";\nimport {\n getRefProperty,\n mergeProps\n} from \"./SK3NAZA3.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/system.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction forwardRef2(render) {\n const Role = React.forwardRef((props, ref) => render(__spreadProps(__spreadValues({}, props), { ref })));\n Role.displayName = render.displayName || render.name;\n return Role;\n}\nfunction memo2(Component, propsAreEqual) {\n return React.memo(Component, propsAreEqual);\n}\nfunction createElement(Type, props) {\n const _a = props, { wrapElement, render } = _a, rest = __objRest(_a, [\"wrapElement\", \"render\"]);\n const mergedRef = useMergeRefs(props.ref, getRefProperty(render));\n let element;\n if (React.isValidElement(render)) {\n const renderProps = __spreadProps(__spreadValues({}, render.props), { ref: mergedRef });\n element = React.cloneElement(render, mergeProps(rest, renderProps));\n } else if (render) {\n element = render(rest);\n } else {\n element = /* @__PURE__ */ jsx(Type, __spreadValues({}, rest));\n }\n if (wrapElement) {\n return wrapElement(element);\n }\n return element;\n}\nfunction createHook(useProps) {\n const useRole = (props = {}) => {\n return useProps(props);\n };\n useRole.displayName = useProps.name;\n return useRole;\n}\nfunction createStoreContext(providers = [], scopedProviders = []) {\n const context = React.createContext(void 0);\n const scopedContext = React.createContext(void 0);\n const useContext2 = () => React.useContext(context);\n const useScopedContext = (onlyScoped = false) => {\n const scoped = React.useContext(scopedContext);\n const store = useContext2();\n if (onlyScoped) return scoped;\n return scoped || store;\n };\n const useProviderContext = () => {\n const scoped = React.useContext(scopedContext);\n const store = useContext2();\n if (scoped && scoped === store) return;\n return store;\n };\n const ContextProvider = (props) => {\n return providers.reduceRight(\n (children, Provider) => /* @__PURE__ */ jsx(Provider, __spreadProps(__spreadValues({}, props), { children })),\n /* @__PURE__ */ jsx(context.Provider, __spreadValues({}, props))\n );\n };\n const ScopedContextProvider = (props) => {\n return /* @__PURE__ */ jsx(ContextProvider, __spreadProps(__spreadValues({}, props), { children: scopedProviders.reduceRight(\n (children, Provider) => /* @__PURE__ */ jsx(Provider, __spreadProps(__spreadValues({}, props), { children })),\n /* @__PURE__ */ jsx(scopedContext.Provider, __spreadValues({}, props))\n ) }));\n };\n return {\n context,\n scopedContext,\n useContext: useContext2,\n useScopedContext,\n useProviderContext,\n ContextProvider,\n ScopedContextProvider\n };\n}\n\nexport {\n forwardRef2 as forwardRef,\n memo2 as memo,\n createElement,\n createHook,\n createStoreContext\n};\n","\"use client\";\nimport {\n CollectionContextProvider,\n CollectionScopedContextProvider\n} from \"./G4PVPWEW.js\";\nimport {\n createStoreContext\n} from \"./7FZLUSKW.js\";\n\n// src/composite/composite-context.tsx\nimport { createContext } from \"react\";\nvar ctx = createStoreContext(\n [CollectionContextProvider],\n [CollectionScopedContextProvider]\n);\nvar useCompositeContext = ctx.useContext;\nvar useCompositeScopedContext = ctx.useScopedContext;\nvar useCompositeProviderContext = ctx.useProviderContext;\nvar CompositeContextProvider = ctx.ContextProvider;\nvar CompositeScopedContextProvider = ctx.ScopedContextProvider;\nvar CompositeItemContext = createContext(\n void 0\n);\nvar CompositeRowContext = createContext(\n void 0\n);\n\nexport {\n useCompositeContext,\n useCompositeScopedContext,\n useCompositeProviderContext,\n CompositeContextProvider,\n CompositeScopedContextProvider,\n CompositeItemContext,\n CompositeRowContext\n};\n","\"use client\";\nimport {\n useDisclosureStoreProps\n} from \"./C76P7QQC.js\";\nimport {\n useStore\n} from \"./CTKPPFRS.js\";\n\n// src/dialog/dialog-store.ts\nimport * as Core from \"@ariakit/core/dialog/dialog-store\";\nfunction useDialogStoreProps(store, update, props) {\n return useDisclosureStoreProps(store, update, props);\n}\nfunction useDialogStore(props = {}) {\n const [store, update] = useStore(Core.createDialogStore, props);\n return useDialogStoreProps(store, update, props);\n}\n\nexport {\n useDialogStoreProps,\n useDialogStore\n};\n","\"use client\";\nimport {\n useStore,\n useStoreProps\n} from \"./CTKPPFRS.js\";\nimport {\n useUpdateEffect\n} from \"./HNHAUIIY.js\";\n\n// src/disclosure/disclosure-store.ts\nimport * as Core from \"@ariakit/core/disclosure/disclosure-store\";\nfunction useDisclosureStoreProps(store, update, props) {\n useUpdateEffect(update, [props.store, props.disclosure]);\n useStoreProps(store, props, \"open\", \"setOpen\");\n useStoreProps(store, props, \"mounted\", \"setMounted\");\n useStoreProps(store, props, \"animated\");\n return Object.assign(store, { disclosure: props.disclosure });\n}\nfunction useDisclosureStore(props = {}) {\n const [store, update] = useStore(Core.createDisclosureStore, props);\n return useDisclosureStoreProps(store, update, props);\n}\n\nexport {\n useDisclosureStoreProps,\n useDisclosureStore\n};\n","\"use client\";\nimport {\n DisclosureContextProvider,\n DisclosureScopedContextProvider\n} from \"./JDEWEW7S.js\";\nimport {\n createStoreContext\n} from \"./7FZLUSKW.js\";\n\n// src/dialog/dialog-context.tsx\nimport { createContext } from \"react\";\nvar ctx = createStoreContext(\n [DisclosureContextProvider],\n [DisclosureScopedContextProvider]\n);\nvar useDialogContext = ctx.useContext;\nvar useDialogScopedContext = ctx.useScopedContext;\nvar useDialogProviderContext = ctx.useProviderContext;\nvar DialogContextProvider = ctx.ContextProvider;\nvar DialogScopedContextProvider = ctx.ScopedContextProvider;\nvar DialogHeadingContext = createContext(void 0);\nvar DialogDescriptionContext = createContext(void 0);\n\nexport {\n useDialogContext,\n useDialogScopedContext,\n useDialogProviderContext,\n DialogContextProvider,\n DialogScopedContextProvider,\n DialogHeadingContext,\n DialogDescriptionContext\n};\n","\"use client\";\nimport {\n useDialogStoreProps\n} from \"./B5WJDZ55.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./CTKPPFRS.js\";\nimport {\n useUpdateEffect\n} from \"./HNHAUIIY.js\";\n\n// src/popover/popover-store.ts\nimport * as Core from \"@ariakit/core/popover/popover-store\";\nfunction usePopoverStoreProps(store, update, props) {\n useUpdateEffect(update, [props.popover]);\n useStoreProps(store, props, \"placement\");\n return useDialogStoreProps(store, update, props);\n}\nfunction usePopoverStore(props = {}) {\n const [store, update] = useStore(Core.createPopoverStore, props);\n return usePopoverStoreProps(store, update, props);\n}\n\nexport {\n usePopoverStoreProps,\n usePopoverStore\n};\n","\"use client\";\nimport {\n DialogContextProvider,\n DialogScopedContextProvider\n} from \"./CMXOY7UW.js\";\nimport {\n createStoreContext\n} from \"./7FZLUSKW.js\";\n\n// src/popover/popover-context.tsx\nvar ctx = createStoreContext(\n [DialogContextProvider],\n [DialogScopedContextProvider]\n);\nvar usePopoverContext = ctx.useContext;\nvar usePopoverScopedContext = ctx.useScopedContext;\nvar usePopoverProviderContext = ctx.useProviderContext;\nvar PopoverContextProvider = ctx.ContextProvider;\nvar PopoverScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n usePopoverContext,\n usePopoverScopedContext,\n usePopoverProviderContext,\n PopoverContextProvider,\n PopoverScopedContextProvider\n};\n","\"use client\";\nimport {\n useEvent,\n useLiveRef,\n useSafeLayoutEffect\n} from \"./HNHAUIIY.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/store.tsx\nimport { hasOwnProperty, identity } from \"@ariakit/core/utils/misc\";\nimport { batch, init, subscribe, sync } from \"@ariakit/core/utils/store\";\nimport * as React from \"react\";\nimport useSyncExternalStoreExports from \"use-sync-external-store/shim/index.js\";\nvar { useSyncExternalStore } = useSyncExternalStoreExports;\nvar noopSubscribe = () => () => {\n};\nfunction useStoreState(store, keyOrSelector = identity) {\n const storeSubscribe = React.useCallback(\n (callback) => {\n if (!store) return noopSubscribe();\n return subscribe(store, null, callback);\n },\n [store]\n );\n const getSnapshot = () => {\n const key = typeof keyOrSelector === \"string\" ? keyOrSelector : null;\n const selector = typeof keyOrSelector === \"function\" ? keyOrSelector : null;\n const state = store == null ? void 0 : store.getState();\n if (selector) return selector(state);\n if (!state) return;\n if (!key) return;\n if (!hasOwnProperty(state, key)) return;\n return state[key];\n };\n return useSyncExternalStore(storeSubscribe, getSnapshot, getSnapshot);\n}\nfunction useStoreProps(store, props, key, setKey) {\n const value = hasOwnProperty(props, key) ? props[key] : void 0;\n const setValue = setKey ? props[setKey] : void 0;\n const propsRef = useLiveRef({ value, setValue });\n useSafeLayoutEffect(() => {\n return sync(store, [key], (state, prev) => {\n const { value: value2, setValue: setValue2 } = propsRef.current;\n if (!setValue2) return;\n if (state[key] === prev[key]) return;\n if (state[key] === value2) return;\n setValue2(state[key]);\n });\n }, [store, key]);\n useSafeLayoutEffect(() => {\n if (value === void 0) return;\n store.setState(key, value);\n return batch(store, [key], () => {\n if (value === void 0) return;\n store.setState(key, value);\n });\n });\n}\nfunction useStore(createStore, props) {\n const [store, setStore] = React.useState(() => createStore(props));\n useSafeLayoutEffect(() => init(store), [store]);\n const useState2 = React.useCallback(\n (keyOrSelector) => useStoreState(store, keyOrSelector),\n [store]\n );\n const memoizedStore = React.useMemo(\n () => __spreadProps(__spreadValues({}, store), { useState: useState2 }),\n [store, useState2]\n );\n const updateStore = useEvent(() => {\n setStore((store2) => createStore(__spreadValues(__spreadValues({}, props), store2.getState())));\n });\n return [memoizedStore, updateStore];\n}\n\nexport {\n useStoreState,\n useStoreProps,\n useStore\n};\n","\"use client\";\nimport {\n useTagContext\n} from \"./3TGOYUTQ.js\";\nimport {\n useCompositeStoreProps\n} from \"./OIB4PV4M.js\";\nimport {\n usePopoverStoreProps\n} from \"./CO7ZDQU2.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./CTKPPFRS.js\";\nimport {\n useUpdateEffect\n} from \"./HNHAUIIY.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/combobox/combobox-store.ts\nimport * as Core from \"@ariakit/core/combobox/combobox-store\";\nfunction useComboboxStoreProps(store, update, props) {\n useUpdateEffect(update, [props.tag]);\n useStoreProps(store, props, \"value\", \"setValue\");\n useStoreProps(store, props, \"selectedValue\", \"setSelectedValue\");\n useStoreProps(store, props, \"resetValueOnHide\");\n useStoreProps(store, props, \"resetValueOnSelect\");\n return Object.assign(\n useCompositeStoreProps(\n usePopoverStoreProps(store, update, props),\n update,\n props\n ),\n { tag: props.tag }\n );\n}\nfunction useComboboxStore(props = {}) {\n const tag = useTagContext();\n props = __spreadProps(__spreadValues({}, props), {\n tag: props.tag !== void 0 ? props.tag : tag\n });\n const [store, update] = useStore(Core.createComboboxStore, props);\n return useComboboxStoreProps(store, update, props);\n}\n\nexport {\n useComboboxStoreProps,\n useComboboxStore\n};\n","\"use client\";\nimport {\n createStoreContext\n} from \"./7FZLUSKW.js\";\n\n// src/collection/collection-context.tsx\nvar ctx = createStoreContext();\nvar useCollectionContext = ctx.useContext;\nvar useCollectionScopedContext = ctx.useScopedContext;\nvar useCollectionProviderContext = ctx.useProviderContext;\nvar CollectionContextProvider = ctx.ContextProvider;\nvar CollectionScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n useCollectionContext,\n useCollectionScopedContext,\n useCollectionProviderContext,\n CollectionContextProvider,\n CollectionScopedContextProvider\n};\n","\"use client\";\nimport {\n setRef\n} from \"./SK3NAZA3.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/hooks.ts\nimport { canUseDOM } from \"@ariakit/core/utils/dom\";\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n useState\n} from \"react\";\nimport * as React from \"react\";\nvar _React = __spreadValues({}, React);\nvar useReactId = _React.useId;\nvar useReactDeferredValue = _React.useDeferredValue;\nvar useReactInsertionEffect = _React.useInsertionEffect;\nvar useSafeLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\nfunction useInitialValue(value) {\n const [initialValue] = useState(value);\n return initialValue;\n}\nfunction useLazyValue(init) {\n const ref = useRef();\n if (ref.current === void 0) {\n ref.current = init();\n }\n return ref.current;\n}\nfunction useLiveRef(value) {\n const ref = useRef(value);\n useSafeLayoutEffect(() => {\n ref.current = value;\n });\n return ref;\n}\nfunction usePreviousValue(value) {\n const [previousValue, setPreviousValue] = useState(value);\n if (value !== previousValue) {\n setPreviousValue(value);\n }\n return previousValue;\n}\nfunction useEvent(callback) {\n const ref = useRef(() => {\n throw new Error(\"Cannot call an event handler while rendering.\");\n });\n if (useReactInsertionEffect) {\n useReactInsertionEffect(() => {\n ref.current = callback;\n });\n } else {\n ref.current = callback;\n }\n return useCallback((...args) => {\n var _a;\n return (_a = ref.current) == null ? void 0 : _a.call(ref, ...args);\n }, []);\n}\nfunction useTransactionState(callback) {\n const [state, setState] = useState(null);\n useSafeLayoutEffect(() => {\n if (state == null) return;\n if (!callback) return;\n let prevState = null;\n callback((prev) => {\n prevState = prev;\n return state;\n });\n return () => {\n callback(prevState);\n };\n }, [state, callback]);\n return [state, setState];\n}\nfunction useMergeRefs(...refs) {\n return useMemo(() => {\n if (!refs.some(Boolean)) return;\n return (value) => {\n for (const ref of refs) {\n setRef(ref, value);\n }\n };\n }, refs);\n}\nfunction useId(defaultId) {\n if (useReactId) {\n const reactId = useReactId();\n if (defaultId) return defaultId;\n return reactId;\n }\n const [id, setId] = useState(defaultId);\n useSafeLayoutEffect(() => {\n if (defaultId || id) return;\n const random = Math.random().toString(36).substr(2, 6);\n setId(`id-${random}`);\n }, [defaultId, id]);\n return defaultId || id;\n}\nfunction useDeferredValue(value) {\n if (useReactDeferredValue) {\n return useReactDeferredValue(value);\n }\n const [deferredValue, setDeferredValue] = useState(value);\n useEffect(() => {\n const raf = requestAnimationFrame(() => setDeferredValue(value));\n return () => cancelAnimationFrame(raf);\n }, [value]);\n return deferredValue;\n}\nfunction useTagName(refOrElement, type) {\n const stringOrUndefined = (type2) => {\n if (typeof type2 !== \"string\") return;\n return type2;\n };\n const [tagName, setTagName] = useState(() => stringOrUndefined(type));\n useSafeLayoutEffect(() => {\n const element = refOrElement && \"current\" in refOrElement ? refOrElement.current : refOrElement;\n setTagName((element == null ? void 0 : element.tagName.toLowerCase()) || stringOrUndefined(type));\n }, [refOrElement, type]);\n return tagName;\n}\nfunction useAttribute(refOrElement, attributeName, defaultValue) {\n const initialValue = useInitialValue(defaultValue);\n const [attribute, setAttribute] = useState(initialValue);\n useEffect(() => {\n const element = refOrElement && \"current\" in refOrElement ? refOrElement.current : refOrElement;\n if (!element) return;\n const callback = () => {\n const value = element.getAttribute(attributeName);\n setAttribute(value == null ? initialValue : value);\n };\n const observer = new MutationObserver(callback);\n observer.observe(element, { attributeFilter: [attributeName] });\n callback();\n return () => observer.disconnect();\n }, [refOrElement, attributeName, initialValue]);\n return attribute;\n}\nfunction useUpdateEffect(effect, deps) {\n const mounted = useRef(false);\n useEffect(() => {\n if (mounted.current) {\n return effect();\n }\n mounted.current = true;\n }, deps);\n useEffect(\n () => () => {\n mounted.current = false;\n },\n []\n );\n}\nfunction useUpdateLayoutEffect(effect, deps) {\n const mounted = useRef(false);\n useSafeLayoutEffect(() => {\n if (mounted.current) {\n return effect();\n }\n mounted.current = true;\n }, deps);\n useSafeLayoutEffect(\n () => () => {\n mounted.current = false;\n },\n []\n );\n}\nfunction useForceUpdate() {\n return useReducer(() => [], []);\n}\nfunction useBooleanEvent(booleanOrCallback) {\n return useEvent(\n typeof booleanOrCallback === \"function\" ? booleanOrCallback : () => booleanOrCallback\n );\n}\nfunction useWrapElement(props, callback, deps = []) {\n const wrapElement = useCallback(\n (element) => {\n if (props.wrapElement) {\n element = props.wrapElement(element);\n }\n return callback(element);\n },\n [...deps, props.wrapElement]\n );\n return __spreadProps(__spreadValues({}, props), { wrapElement });\n}\nfunction usePortalRef(portalProp = false, portalRefProp) {\n const [portalNode, setPortalNode] = useState(null);\n const portalRef = useMergeRefs(setPortalNode, portalRefProp);\n const domReady = !portalProp || portalNode;\n return { portalRef, portalNode, domReady };\n}\nfunction useMetadataProps(props, key, value) {\n const parent = props.onLoadedMetadataCapture;\n const onLoadedMetadataCapture = useMemo(() => {\n return Object.assign(() => {\n }, __spreadProps(__spreadValues({}, parent), { [key]: value }));\n }, [parent, key, value]);\n return [parent == null ? void 0 : parent[key], { onLoadedMetadataCapture }];\n}\nfunction useIsMouseMoving() {\n useEffect(() => {\n addGlobalEventListener(\"mousemove\", setMouseMoving, true);\n addGlobalEventListener(\"mousedown\", resetMouseMoving, true);\n addGlobalEventListener(\"mouseup\", resetMouseMoving, true);\n addGlobalEventListener(\"keydown\", resetMouseMoving, true);\n addGlobalEventListener(\"scroll\", resetMouseMoving, true);\n }, []);\n const isMouseMoving = useEvent(() => mouseMoving);\n return isMouseMoving;\n}\nvar mouseMoving = false;\nvar previousScreenX = 0;\nvar previousScreenY = 0;\nfunction hasMouseMovement(event) {\n const movementX = event.movementX || event.screenX - previousScreenX;\n const movementY = event.movementY || event.screenY - previousScreenY;\n previousScreenX = event.screenX;\n previousScreenY = event.screenY;\n return movementX || movementY || process.env.NODE_ENV === \"test\";\n}\nfunction setMouseMoving(event) {\n if (!hasMouseMovement(event)) return;\n mouseMoving = true;\n}\nfunction resetMouseMoving() {\n mouseMoving = false;\n}\n\nexport {\n useSafeLayoutEffect,\n useInitialValue,\n useLazyValue,\n useLiveRef,\n usePreviousValue,\n useEvent,\n useTransactionState,\n useMergeRefs,\n useId,\n useDeferredValue,\n useTagName,\n useAttribute,\n useUpdateEffect,\n useUpdateLayoutEffect,\n useForceUpdate,\n useBooleanEvent,\n useWrapElement,\n usePortalRef,\n useMetadataProps,\n useIsMouseMoving\n};\n","\"use client\";\nimport {\n findFirstEnabledItem,\n getEnabledItem,\n groupItemsByRows,\n isItem,\n silentlyFocused\n} from \"./5VQZOHHZ.js\";\nimport {\n CompositeContextProvider,\n useCompositeProviderContext\n} from \"./APGXEJ2Q.js\";\nimport {\n useFocusable\n} from \"./Z4WWVOIF.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./7FZLUSKW.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useMergeRefs,\n useSafeLayoutEffect,\n useTransactionState,\n useWrapElement\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite.tsx\nimport { flatten2DArray, reverseArray } from \"@ariakit/core/utils/array\";\nimport { getActiveElement, isTextField } from \"@ariakit/core/utils/dom\";\nimport {\n fireBlurEvent,\n fireKeyboardEvent,\n isSelfTarget\n} from \"@ariakit/core/utils/events\";\nimport { focusIntoView, hasFocus } from \"@ariakit/core/utils/focus\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction isGrid(items) {\n return items.some((item) => !!item.rowId);\n}\nfunction isPrintableKey(event) {\n const target = event.target;\n if (target && !isTextField(target)) return false;\n return event.key.length === 1 && !event.ctrlKey && !event.metaKey;\n}\nfunction isModifierKey(event) {\n return event.key === \"Shift\" || event.key === \"Control\" || event.key === \"Alt\" || event.key === \"Meta\";\n}\nfunction useKeyboardEventProxy(store, onKeyboardEvent, previousElementRef) {\n return useEvent((event) => {\n var _a;\n onKeyboardEvent == null ? void 0 : onKeyboardEvent(event);\n if (event.defaultPrevented) return;\n if (event.isPropagationStopped()) return;\n if (!isSelfTarget(event)) return;\n if (isModifierKey(event)) return;\n if (isPrintableKey(event)) return;\n const state = store.getState();\n const activeElement = (_a = getEnabledItem(store, state.activeId)) == null ? void 0 : _a.element;\n if (!activeElement) return;\n const _b = event, { view } = _b, eventInit = __objRest(_b, [\"view\"]);\n const previousElement = previousElementRef == null ? void 0 : previousElementRef.current;\n if (activeElement !== previousElement) {\n activeElement.focus();\n }\n if (!fireKeyboardEvent(activeElement, event.type, eventInit)) {\n event.preventDefault();\n }\n if (event.currentTarget.contains(activeElement)) {\n event.stopPropagation();\n }\n });\n}\nfunction findFirstEnabledItemInTheLastRow(items) {\n return findFirstEnabledItem(\n flatten2DArray(reverseArray(groupItemsByRows(items)))\n );\n}\nfunction useScheduleFocus(store) {\n const [scheduled, setScheduled] = useState(false);\n const schedule = useCallback(() => setScheduled(true), []);\n const activeItem = store.useState(\n (state) => getEnabledItem(store, state.activeId)\n );\n useEffect(() => {\n const activeElement = activeItem == null ? void 0 : activeItem.element;\n if (!scheduled) return;\n if (!activeElement) return;\n setScheduled(false);\n activeElement.focus({ preventScroll: true });\n }, [activeItem, scheduled]);\n return schedule;\n}\nvar useComposite = createHook(\n function useComposite2(_a) {\n var _b = _a, {\n store,\n composite = true,\n focusOnMove = composite,\n moveOnKeyPress = true\n } = _b, props = __objRest(_b, [\n \"store\",\n \"composite\",\n \"focusOnMove\",\n \"moveOnKeyPress\"\n ]);\n const context = useCompositeProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Composite must receive a `store` prop or be wrapped in a CompositeProvider component.\"\n );\n const ref = useRef(null);\n const previousElementRef = useRef(null);\n const scheduleFocus = useScheduleFocus(store);\n const moves = store.useState(\"moves\");\n const [, setBaseElement] = useTransactionState(\n composite ? store.setBaseElement : null\n );\n useEffect(() => {\n var _a2;\n if (!store) return;\n if (!moves) return;\n if (!composite) return;\n if (!focusOnMove) return;\n const { activeId: activeId2 } = store.getState();\n const itemElement = (_a2 = getEnabledItem(store, activeId2)) == null ? void 0 : _a2.element;\n if (!itemElement) return;\n focusIntoView(itemElement);\n }, [store, moves, composite, focusOnMove]);\n useSafeLayoutEffect(() => {\n if (!store) return;\n if (!moves) return;\n if (!composite) return;\n const { baseElement, activeId: activeId2 } = store.getState();\n const isSelfAcive = activeId2 === null;\n if (!isSelfAcive) return;\n if (!baseElement) return;\n const previousElement = previousElementRef.current;\n previousElementRef.current = null;\n if (previousElement) {\n fireBlurEvent(previousElement, { relatedTarget: baseElement });\n }\n if (!hasFocus(baseElement)) {\n baseElement.focus();\n }\n }, [store, moves, composite]);\n const activeId = store.useState(\"activeId\");\n const virtualFocus = store.useState(\"virtualFocus\");\n useSafeLayoutEffect(() => {\n var _a2;\n if (!store) return;\n if (!composite) return;\n if (!virtualFocus) return;\n const previousElement = previousElementRef.current;\n previousElementRef.current = null;\n if (!previousElement) return;\n const activeElement = (_a2 = getEnabledItem(store, activeId)) == null ? void 0 : _a2.element;\n const relatedTarget = activeElement || getActiveElement(previousElement);\n if (relatedTarget === previousElement) return;\n fireBlurEvent(previousElement, { relatedTarget });\n }, [store, activeId, virtualFocus, composite]);\n const onKeyDownCapture = useKeyboardEventProxy(\n store,\n props.onKeyDownCapture,\n previousElementRef\n );\n const onKeyUpCapture = useKeyboardEventProxy(\n store,\n props.onKeyUpCapture,\n previousElementRef\n );\n const onFocusCaptureProp = props.onFocusCapture;\n const onFocusCapture = useEvent((event) => {\n onFocusCaptureProp == null ? void 0 : onFocusCaptureProp(event);\n if (event.defaultPrevented) return;\n if (!store) return;\n const { virtualFocus: virtualFocus2 } = store.getState();\n if (!virtualFocus2) return;\n const previousActiveElement = event.relatedTarget;\n const isSilentlyFocused = silentlyFocused(event.currentTarget);\n if (isSelfTarget(event) && isSilentlyFocused) {\n event.stopPropagation();\n previousElementRef.current = previousActiveElement;\n }\n });\n const onFocusProp = props.onFocus;\n const onFocus = useEvent((event) => {\n onFocusProp == null ? void 0 : onFocusProp(event);\n if (event.defaultPrevented) return;\n if (!composite) return;\n if (!store) return;\n const { relatedTarget } = event;\n const { virtualFocus: virtualFocus2 } = store.getState();\n if (virtualFocus2) {\n if (isSelfTarget(event) && !isItem(store, relatedTarget)) {\n queueMicrotask(scheduleFocus);\n }\n } else if (isSelfTarget(event)) {\n store.setActiveId(null);\n }\n });\n const onBlurCaptureProp = props.onBlurCapture;\n const onBlurCapture = useEvent((event) => {\n var _a2;\n onBlurCaptureProp == null ? void 0 : onBlurCaptureProp(event);\n if (event.defaultPrevented) return;\n if (!store) return;\n const { virtualFocus: virtualFocus2, activeId: activeId2 } = store.getState();\n if (!virtualFocus2) return;\n const activeElement = (_a2 = getEnabledItem(store, activeId2)) == null ? void 0 : _a2.element;\n const nextActiveElement = event.relatedTarget;\n const nextActiveElementIsItem = isItem(store, nextActiveElement);\n const previousElement = previousElementRef.current;\n previousElementRef.current = null;\n if (isSelfTarget(event) && nextActiveElementIsItem) {\n if (nextActiveElement === activeElement) {\n if (previousElement && previousElement !== nextActiveElement) {\n fireBlurEvent(previousElement, event);\n }\n } else if (activeElement) {\n fireBlurEvent(activeElement, event);\n } else if (previousElement) {\n fireBlurEvent(previousElement, event);\n }\n event.stopPropagation();\n } else {\n const targetIsItem = isItem(store, event.target);\n if (!targetIsItem && activeElement) {\n fireBlurEvent(activeElement, event);\n }\n }\n });\n const onKeyDownProp = props.onKeyDown;\n const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);\n const onKeyDown = useEvent((event) => {\n var _a2;\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (event.defaultPrevented) return;\n if (!store) return;\n if (!isSelfTarget(event)) return;\n const { orientation, items, renderedItems, activeId: activeId2 } = store.getState();\n const activeItem = getEnabledItem(store, activeId2);\n if ((_a2 = activeItem == null ? void 0 : activeItem.element) == null ? void 0 : _a2.isConnected) return;\n const isVertical = orientation !== \"horizontal\";\n const isHorizontal = orientation !== \"vertical\";\n const grid = isGrid(renderedItems);\n const isHorizontalKey = event.key === \"ArrowLeft\" || event.key === \"ArrowRight\" || event.key === \"Home\" || event.key === \"End\";\n if (isHorizontalKey && isTextField(event.currentTarget)) return;\n const up = () => {\n if (grid) {\n const item = items && findFirstEnabledItemInTheLastRow(items);\n return item == null ? void 0 : item.id;\n }\n return store == null ? void 0 : store.last();\n };\n const keyMap = {\n ArrowUp: (grid || isVertical) && up,\n ArrowRight: (grid || isHorizontal) && store.first,\n ArrowDown: (grid || isVertical) && store.first,\n ArrowLeft: (grid || isHorizontal) && store.last,\n Home: store.first,\n End: store.last,\n PageUp: store.first,\n PageDown: store.last\n };\n const action = keyMap[event.key];\n if (action) {\n const id = action();\n if (id !== void 0) {\n if (!moveOnKeyPressProp(event)) return;\n event.preventDefault();\n store.move(id);\n }\n }\n });\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(CompositeContextProvider, { value: store, children: element }),\n [store]\n );\n const activeDescendant = store.useState((state) => {\n var _a2;\n if (!store) return;\n if (!composite) return;\n if (!state.virtualFocus) return;\n return (_a2 = getEnabledItem(store, state.activeId)) == null ? void 0 : _a2.id;\n });\n props = __spreadProps(__spreadValues({\n \"aria-activedescendant\": activeDescendant\n }, props), {\n ref: useMergeRefs(ref, setBaseElement, props.ref),\n onKeyDownCapture,\n onKeyUpCapture,\n onFocusCapture,\n onFocus,\n onBlurCapture,\n onKeyDown\n });\n const focusable = store.useState(\n (state) => composite && (state.virtualFocus || state.activeId === null)\n );\n props = useFocusable(__spreadValues({ focusable }, props));\n return props;\n }\n);\nvar Composite = forwardRef(function Composite2(props) {\n const htmlProps = useComposite(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useComposite,\n Composite\n};\n","\"use client\";\nimport {\n createStoreContext\n} from \"./7FZLUSKW.js\";\n\n// src/disclosure/disclosure-context.tsx\nvar ctx = createStoreContext();\nvar useDisclosureContext = ctx.useContext;\nvar useDisclosureScopedContext = ctx.useScopedContext;\nvar useDisclosureProviderContext = ctx.useProviderContext;\nvar DisclosureContextProvider = ctx.ContextProvider;\nvar DisclosureScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n useDisclosureContext,\n useDisclosureScopedContext,\n useDisclosureProviderContext,\n DisclosureContextProvider,\n DisclosureScopedContextProvider\n};\n","\"use client\";\nimport {\n useCompositeContext\n} from \"./APGXEJ2Q.js\";\nimport {\n createElement,\n createHook,\n forwardRef,\n memo\n} from \"./7FZLUSKW.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useIsMouseMoving,\n useMergeRefs\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite-hover.tsx\nimport { contains } from \"@ariakit/core/utils/dom\";\nimport { hasFocus, hasFocusWithin } from \"@ariakit/core/utils/focus\";\nimport {\n hasOwnProperty,\n invariant,\n removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nimport { useCallback } from \"react\";\nvar TagName = \"div\";\nfunction getMouseDestination(event) {\n const relatedTarget = event.relatedTarget;\n if ((relatedTarget == null ? void 0 : relatedTarget.nodeType) === Node.ELEMENT_NODE) {\n return relatedTarget;\n }\n return null;\n}\nfunction hoveringInside(event) {\n const nextElement = getMouseDestination(event);\n if (!nextElement) return false;\n return contains(event.currentTarget, nextElement);\n}\nvar symbol = Symbol(\"composite-hover\");\nfunction movingToAnotherItem(event) {\n let dest = getMouseDestination(event);\n if (!dest) return false;\n do {\n if (hasOwnProperty(dest, symbol) && dest[symbol]) return true;\n dest = dest.parentElement;\n } while (dest);\n return false;\n}\nvar useCompositeHover = createHook(\n function useCompositeHover2(_a) {\n var _b = _a, {\n store,\n focusOnHover = true,\n blurOnHoverEnd = !!focusOnHover\n } = _b, props = __objRest(_b, [\n \"store\",\n \"focusOnHover\",\n \"blurOnHoverEnd\"\n ]);\n const context = useCompositeContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"CompositeHover must be wrapped in a Composite component.\"\n );\n const isMouseMoving = useIsMouseMoving();\n const onMouseMoveProp = props.onMouseMove;\n const focusOnHoverProp = useBooleanEvent(focusOnHover);\n const onMouseMove = useEvent((event) => {\n onMouseMoveProp == null ? void 0 : onMouseMoveProp(event);\n if (event.defaultPrevented) return;\n if (!isMouseMoving()) return;\n if (!focusOnHoverProp(event)) return;\n if (!hasFocusWithin(event.currentTarget)) {\n const baseElement = store == null ? void 0 : store.getState().baseElement;\n if (baseElement && !hasFocus(baseElement)) {\n baseElement.focus();\n }\n }\n store == null ? void 0 : store.setActiveId(event.currentTarget.id);\n });\n const onMouseLeaveProp = props.onMouseLeave;\n const blurOnHoverEndProp = useBooleanEvent(blurOnHoverEnd);\n const onMouseLeave = useEvent((event) => {\n var _a2;\n onMouseLeaveProp == null ? void 0 : onMouseLeaveProp(event);\n if (event.defaultPrevented) return;\n if (!isMouseMoving()) return;\n if (hoveringInside(event)) return;\n if (movingToAnotherItem(event)) return;\n if (!focusOnHoverProp(event)) return;\n if (!blurOnHoverEndProp(event)) return;\n store == null ? void 0 : store.setActiveId(null);\n (_a2 = store == null ? void 0 : store.getState().baseElement) == null ? void 0 : _a2.focus();\n });\n const ref = useCallback((element) => {\n if (!element) return;\n element[symbol] = true;\n }, []);\n props = __spreadProps(__spreadValues({}, props), {\n ref: useMergeRefs(ref, props.ref),\n onMouseMove,\n onMouseLeave\n });\n return removeUndefinedValues(props);\n }\n);\nvar CompositeHover = memo(\n forwardRef(function CompositeHover2(props) {\n const htmlProps = useCompositeHover(props);\n return createElement(TagName, htmlProps);\n })\n);\n\nexport {\n useCompositeHover,\n CompositeHover\n};\n","\"use client\";\nimport {\n useCollectionItem\n} from \"./SZHY72KI.js\";\nimport {\n useCommand\n} from \"./ZHUQ44XA.js\";\nimport {\n focusSilently,\n getEnabledItem,\n isItem,\n selectTextField\n} from \"./5VQZOHHZ.js\";\nimport {\n CompositeItemContext,\n CompositeRowContext,\n useCompositeContext\n} from \"./APGXEJ2Q.js\";\nimport {\n createElement,\n createHook,\n forwardRef,\n memo\n} from \"./7FZLUSKW.js\";\nimport {\n useStoreState\n} from \"./CTKPPFRS.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useId,\n useMergeRefs,\n useWrapElement\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite-item.tsx\nimport {\n getScrollingElement,\n getTextboxSelection,\n getTextboxValue,\n isButton,\n isTextField,\n isTextbox\n} from \"@ariakit/core/utils/dom\";\nimport { isPortalEvent, isSelfTarget } from \"@ariakit/core/utils/events\";\nimport {\n disabledFromProps,\n removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nimport { isSafari } from \"@ariakit/core/utils/platform\";\nimport { useCallback, useContext, useMemo, useRef } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"button\";\nfunction isEditableElement(element) {\n if (isTextbox(element)) return true;\n return element.tagName === \"INPUT\" && !isButton(element);\n}\nfunction getNextPageOffset(scrollingElement, pageUp = false) {\n const height = scrollingElement.clientHeight;\n const { top } = scrollingElement.getBoundingClientRect();\n const pageSize = Math.max(height * 0.875, height - 40) * 1.5;\n const pageOffset = pageUp ? height - pageSize + top : pageSize + top;\n if (scrollingElement.tagName === \"HTML\") {\n return pageOffset + scrollingElement.scrollTop;\n }\n return pageOffset;\n}\nfunction getItemOffset(itemElement, pageUp = false) {\n const { top } = itemElement.getBoundingClientRect();\n if (pageUp) {\n return top + itemElement.clientHeight;\n }\n return top;\n}\nfunction findNextPageItemId(element, store, next, pageUp = false) {\n var _a;\n if (!store) return;\n if (!next) return;\n const { renderedItems } = store.getState();\n const scrollingElement = getScrollingElement(element);\n if (!scrollingElement) return;\n const nextPageOffset = getNextPageOffset(scrollingElement, pageUp);\n let id;\n let prevDifference;\n for (let i = 0; i < renderedItems.length; i += 1) {\n const previousId = id;\n id = next(i);\n if (!id) break;\n if (id === previousId) continue;\n const itemElement = (_a = getEnabledItem(store, id)) == null ? void 0 : _a.element;\n if (!itemElement) continue;\n const itemOffset = getItemOffset(itemElement, pageUp);\n const difference = itemOffset - nextPageOffset;\n const absDifference = Math.abs(difference);\n if (pageUp && difference <= 0 || !pageUp && difference >= 0) {\n if (prevDifference !== void 0 && prevDifference < absDifference) {\n id = previousId;\n }\n break;\n }\n prevDifference = absDifference;\n }\n return id;\n}\nfunction targetIsAnotherItem(event, store) {\n if (isSelfTarget(event)) return false;\n return isItem(store, event.target);\n}\nvar useCompositeItem = createHook(\n function useCompositeItem2(_a) {\n var _b = _a, {\n store,\n rowId: rowIdProp,\n preventScrollOnKeyDown = false,\n moveOnKeyPress = true,\n tabbable = false,\n getItem: getItemProp,\n \"aria-setsize\": ariaSetSizeProp,\n \"aria-posinset\": ariaPosInSetProp\n } = _b, props = __objRest(_b, [\n \"store\",\n \"rowId\",\n \"preventScrollOnKeyDown\",\n \"moveOnKeyPress\",\n \"tabbable\",\n \"getItem\",\n \"aria-setsize\",\n \"aria-posinset\"\n ]);\n const context = useCompositeContext();\n store = store || context;\n const id = useId(props.id);\n const ref = useRef(null);\n const row = useContext(CompositeRowContext);\n const rowId = useStoreState(store, (state) => {\n if (rowIdProp) return rowIdProp;\n if (!state) return;\n if (!(row == null ? void 0 : row.baseElement)) return;\n if (row.baseElement !== state.baseElement) return;\n return row.id;\n });\n const disabled = disabledFromProps(props);\n const trulyDisabled = disabled && !props.accessibleWhenDisabled;\n const getItem = useCallback(\n (item) => {\n const nextItem = __spreadProps(__spreadValues({}, item), {\n id: id || item.id,\n rowId,\n disabled: !!trulyDisabled\n });\n if (getItemProp) {\n return getItemProp(nextItem);\n }\n return nextItem;\n },\n [id, rowId, trulyDisabled, getItemProp]\n );\n const onFocusProp = props.onFocus;\n const hasFocusedComposite = useRef(false);\n const onFocus = useEvent((event) => {\n onFocusProp == null ? void 0 : onFocusProp(event);\n if (event.defaultPrevented) return;\n if (isPortalEvent(event)) return;\n if (!id) return;\n if (!store) return;\n if (targetIsAnotherItem(event, store)) return;\n const { virtualFocus, baseElement: baseElement2 } = store.getState();\n store.setActiveId(id);\n if (isTextbox(event.currentTarget)) {\n selectTextField(event.currentTarget);\n }\n if (!virtualFocus) return;\n if (!isSelfTarget(event)) return;\n if (isEditableElement(event.currentTarget)) return;\n if (!(baseElement2 == null ? void 0 : baseElement2.isConnected)) return;\n if (isSafari() && event.currentTarget.hasAttribute(\"data-autofocus\")) {\n event.currentTarget.scrollIntoView({\n block: \"nearest\",\n inline: \"nearest\"\n });\n }\n hasFocusedComposite.current = true;\n const fromComposite = event.relatedTarget === baseElement2 || isItem(store, event.relatedTarget);\n if (fromComposite) {\n focusSilently(baseElement2);\n } else {\n baseElement2.focus();\n }\n });\n const onBlurCaptureProp = props.onBlurCapture;\n const onBlurCapture = useEvent((event) => {\n onBlurCaptureProp == null ? void 0 : onBlurCaptureProp(event);\n if (event.defaultPrevented) return;\n const state = store == null ? void 0 : store.getState();\n if ((state == null ? void 0 : state.virtualFocus) && hasFocusedComposite.current) {\n hasFocusedComposite.current = false;\n event.preventDefault();\n event.stopPropagation();\n }\n });\n const onKeyDownProp = props.onKeyDown;\n const preventScrollOnKeyDownProp = useBooleanEvent(preventScrollOnKeyDown);\n const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);\n const onKeyDown = useEvent((event) => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n if (!store) return;\n const { currentTarget } = event;\n const state = store.getState();\n const item = store.item(id);\n const isGrid = !!(item == null ? void 0 : item.rowId);\n const isVertical = state.orientation !== \"horizontal\";\n const isHorizontal = state.orientation !== \"vertical\";\n const canHomeEnd = () => {\n if (isGrid) return true;\n if (isHorizontal) return true;\n if (!state.baseElement) return true;\n if (!isTextField(state.baseElement)) return true;\n return false;\n };\n const keyMap = {\n ArrowUp: (isGrid || isVertical) && store.up,\n ArrowRight: (isGrid || isHorizontal) && store.next,\n ArrowDown: (isGrid || isVertical) && store.down,\n ArrowLeft: (isGrid || isHorizontal) && store.previous,\n Home: () => {\n if (!canHomeEnd()) return;\n if (!isGrid || event.ctrlKey) {\n return store == null ? void 0 : store.first();\n }\n return store == null ? void 0 : store.previous(-1);\n },\n End: () => {\n if (!canHomeEnd()) return;\n if (!isGrid || event.ctrlKey) {\n return store == null ? void 0 : store.last();\n }\n return store == null ? void 0 : store.next(-1);\n },\n PageUp: () => {\n return findNextPageItemId(currentTarget, store, store == null ? void 0 : store.up, true);\n },\n PageDown: () => {\n return findNextPageItemId(currentTarget, store, store == null ? void 0 : store.down);\n }\n };\n const action = keyMap[event.key];\n if (action) {\n if (isTextbox(currentTarget)) {\n const selection = getTextboxSelection(currentTarget);\n const isLeft = isHorizontal && event.key === \"ArrowLeft\";\n const isRight = isHorizontal && event.key === \"ArrowRight\";\n const isUp = isVertical && event.key === \"ArrowUp\";\n const isDown = isVertical && event.key === \"ArrowDown\";\n if (isRight || isDown) {\n const { length: valueLength } = getTextboxValue(currentTarget);\n if (selection.end !== valueLength) return;\n } else if ((isLeft || isUp) && selection.start !== 0) return;\n }\n const nextId = action();\n if (preventScrollOnKeyDownProp(event) || nextId !== void 0) {\n if (!moveOnKeyPressProp(event)) return;\n event.preventDefault();\n store.move(nextId);\n }\n }\n });\n const baseElement = useStoreState(\n store,\n (state) => (state == null ? void 0 : state.baseElement) || void 0\n );\n const providerValue = useMemo(\n () => ({ id, baseElement }),\n [id, baseElement]\n );\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(CompositeItemContext.Provider, { value: providerValue, children: element }),\n [providerValue]\n );\n const isActiveItem = useStoreState(\n store,\n (state) => !!state && state.activeId === id\n );\n const ariaSetSize = useStoreState(store, (state) => {\n if (ariaSetSizeProp != null) return ariaSetSizeProp;\n if (!state) return;\n if (!(row == null ? void 0 : row.ariaSetSize)) return;\n if (row.baseElement !== state.baseElement) return;\n return row.ariaSetSize;\n });\n const ariaPosInSet = useStoreState(store, (state) => {\n if (ariaPosInSetProp != null) return ariaPosInSetProp;\n if (!state) return;\n if (!(row == null ? void 0 : row.ariaPosInSet)) return;\n if (row.baseElement !== state.baseElement) return;\n const itemsInRow = state.renderedItems.filter(\n (item) => item.rowId === rowId\n );\n return row.ariaPosInSet + itemsInRow.findIndex((item) => item.id === id);\n });\n const isTabbable = useStoreState(store, (state) => {\n var _a2;\n if (!(state == null ? void 0 : state.renderedItems.length)) return true;\n if (state.virtualFocus) return false;\n if (tabbable) return true;\n if (state.activeId === null) return false;\n const item = store == null ? void 0 : store.item(state.activeId);\n if (item == null ? void 0 : item.disabled) return true;\n if (!((_a2 = item == null ? void 0 : item.element) == null ? void 0 : _a2.isConnected)) return true;\n return state.activeId === id;\n });\n props = __spreadProps(__spreadValues({\n id,\n \"data-active-item\": isActiveItem || void 0\n }, props), {\n ref: useMergeRefs(ref, props.ref),\n tabIndex: isTabbable ? props.tabIndex : -1,\n onFocus,\n onBlurCapture,\n onKeyDown\n });\n props = useCommand(props);\n props = useCollectionItem(__spreadProps(__spreadValues({\n store\n }, props), {\n getItem,\n shouldRegisterItem: id ? props.shouldRegisterItem : false\n }));\n return removeUndefinedValues(__spreadProps(__spreadValues({}, props), {\n \"aria-setsize\": ariaSetSize,\n \"aria-posinset\": ariaPosInSet\n }));\n }\n);\nvar CompositeItem = memo(\n forwardRef(function CompositeItem2(props) {\n const htmlProps = useCompositeItem(props);\n return createElement(TagName, htmlProps);\n })\n);\n\nexport {\n useCompositeItem,\n CompositeItem\n};\n","\"use client\";\nimport {\n usePopoverProviderContext\n} from \"./COWZSPJ7.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./7FZLUSKW.js\";\nimport {\n useMergeRefs\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/popover/popover-anchor.tsx\nvar TagName = \"div\";\nvar usePopoverAnchor = createHook(\n function usePopoverAnchor2(_a) {\n var _b = _a, { store } = _b, props = __objRest(_b, [\"store\"]);\n const context = usePopoverProviderContext();\n store = store || context;\n props = __spreadProps(__spreadValues({}, props), {\n ref: useMergeRefs(store == null ? void 0 : store.setAnchorElement, props.ref)\n });\n return props;\n }\n);\nvar PopoverAnchor = forwardRef(function PopoverAnchor2(props) {\n const htmlProps = usePopoverAnchor(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n usePopoverAnchor,\n PopoverAnchor\n};\n","\"use client\";\nimport {\n useCollectionStoreProps\n} from \"./QZUWIJQN.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./CTKPPFRS.js\";\n\n// src/composite/composite-store.ts\nimport * as Core from \"@ariakit/core/composite/composite-store\";\nfunction useCompositeStoreProps(store, update, props) {\n store = useCollectionStoreProps(store, update, props);\n useStoreProps(store, props, \"activeId\", \"setActiveId\");\n useStoreProps(store, props, \"includesBaseElement\");\n useStoreProps(store, props, \"virtualFocus\");\n useStoreProps(store, props, \"orientation\");\n useStoreProps(store, props, \"rtl\");\n useStoreProps(store, props, \"focusLoop\");\n useStoreProps(store, props, \"focusWrap\");\n useStoreProps(store, props, \"focusShift\");\n return store;\n}\nfunction useCompositeStore(props = {}) {\n const [store, update] = useStore(Core.createCompositeStore, props);\n return useCompositeStoreProps(store, update, props);\n}\n\nexport {\n useCompositeStoreProps,\n useCompositeStore\n};\n","\"use client\";\nimport {\n useStore,\n useStoreProps\n} from \"./CTKPPFRS.js\";\nimport {\n useUpdateEffect\n} from \"./HNHAUIIY.js\";\n\n// src/collection/collection-store.ts\nimport * as Core from \"@ariakit/core/collection/collection-store\";\nfunction useCollectionStoreProps(store, update, props) {\n useUpdateEffect(update, [props.store]);\n useStoreProps(store, props, \"items\", \"setItems\");\n return store;\n}\nfunction useCollectionStore(props = {}) {\n const [store, update] = useStore(Core.createCollectionStore, props);\n return useCollectionStoreProps(store, update, props);\n}\n\nexport {\n useCollectionStoreProps,\n useCollectionStore\n};\n","\"use client\";\nimport {\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/misc.ts\nimport { hasOwnProperty } from \"@ariakit/core/utils/misc\";\nimport { isValidElement } from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\nfunction isValidElementWithRef(element) {\n if (!element) return false;\n if (!isValidElement(element)) return false;\n if (\"ref\" in element.props) return true;\n if (\"ref\" in element) return true;\n return false;\n}\nfunction getRefProperty(element) {\n if (!isValidElementWithRef(element)) return null;\n const props = __spreadValues({}, element.props);\n return props.ref || element.ref;\n}\nfunction mergeProps(base, overrides) {\n const props = __spreadValues({}, base);\n for (const key in overrides) {\n if (!hasOwnProperty(overrides, key)) continue;\n if (key === \"className\") {\n const prop = \"className\";\n props[prop] = base[prop] ? `${base[prop]} ${overrides[prop]}` : overrides[prop];\n continue;\n }\n if (key === \"style\") {\n const prop = \"style\";\n props[prop] = base[prop] ? __spreadValues(__spreadValues({}, base[prop]), overrides[prop]) : overrides[prop];\n continue;\n }\n const overrideValue = overrides[key];\n if (typeof overrideValue === \"function\" && key.startsWith(\"on\")) {\n const baseValue = base[key];\n if (typeof baseValue === \"function\") {\n props[key] = (...args) => {\n overrideValue(...args);\n baseValue(...args);\n };\n continue;\n }\n }\n props[key] = overrideValue;\n }\n return props;\n}\n\nexport {\n setRef,\n isValidElementWithRef,\n getRefProperty,\n mergeProps\n};\n","\"use client\";\n\n// src/focusable/focusable-context.tsx\nimport { createContext } from \"react\";\nvar FocusableContext = createContext(true);\n\nexport {\n FocusableContext\n};\n","\"use client\";\nimport {\n useCollectionContext\n} from \"./G4PVPWEW.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./7FZLUSKW.js\";\nimport {\n useId,\n useMergeRefs\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/collection/collection-item.tsx\nimport { identity, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nimport { useEffect, useRef } from \"react\";\nvar TagName = \"div\";\nvar useCollectionItem = createHook(\n function useCollectionItem2(_a) {\n var _b = _a, {\n store,\n shouldRegisterItem = true,\n getItem = identity,\n element: element\n } = _b, props = __objRest(_b, [\n \"store\",\n \"shouldRegisterItem\",\n \"getItem\",\n // @ts-expect-error This prop may come from a collection renderer.\n \"element\"\n ]);\n const context = useCollectionContext();\n store = store || context;\n const id = useId(props.id);\n const ref = useRef(element);\n useEffect(() => {\n const element2 = ref.current;\n if (!id) return;\n if (!element2) return;\n if (!shouldRegisterItem) return;\n const item = getItem({ id, element: element2 });\n return store == null ? void 0 : store.renderItem(item);\n }, [id, shouldRegisterItem, getItem, store]);\n props = __spreadProps(__spreadValues({}, props), {\n ref: useMergeRefs(ref, props.ref)\n });\n return removeUndefinedValues(props);\n }\n);\nvar CollectionItem = forwardRef(function CollectionItem2(props) {\n const htmlProps = useCollectionItem(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useCollectionItem,\n CollectionItem\n};\n","\"use client\";\nimport {\n DialogScopedContextProvider\n} from \"./CMXOY7UW.js\";\nimport {\n useDisclosureProviderContext\n} from \"./JDEWEW7S.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./7FZLUSKW.js\";\nimport {\n useStoreState\n} from \"./CTKPPFRS.js\";\nimport {\n useId,\n useMergeRefs,\n useSafeLayoutEffect,\n useWrapElement\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/disclosure/disclosure-content.tsx\nimport { invariant, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nimport { useMemo, useRef, useState } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction afterTimeout(timeoutMs, cb) {\n const timeoutId = setTimeout(cb, timeoutMs);\n return () => clearTimeout(timeoutId);\n}\nfunction afterPaint(cb) {\n let raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(cb);\n });\n return () => cancelAnimationFrame(raf);\n}\nfunction parseCSSTime(...times) {\n return times.join(\", \").split(\", \").reduce((longestTime, currentTimeString) => {\n const multiplier = currentTimeString.endsWith(\"ms\") ? 1 : 1e3;\n const currentTime = Number.parseFloat(currentTimeString || \"0s\") * multiplier;\n if (currentTime > longestTime) return currentTime;\n return longestTime;\n }, 0);\n}\nfunction isHidden(mounted, hidden, alwaysVisible) {\n return !alwaysVisible && hidden !== false && (!mounted || !!hidden);\n}\nvar useDisclosureContent = createHook(function useDisclosureContent2(_a) {\n var _b = _a, { store, alwaysVisible } = _b, props = __objRest(_b, [\"store\", \"alwaysVisible\"]);\n const context = useDisclosureProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"DisclosureContent must receive a `store` prop or be wrapped in a DisclosureProvider component.\"\n );\n const ref = useRef(null);\n const id = useId(props.id);\n const [transition, setTransition] = useState(null);\n const open = store.useState(\"open\");\n const mounted = store.useState(\"mounted\");\n const animated = store.useState(\"animated\");\n const contentElement = store.useState(\"contentElement\");\n const otherElement = useStoreState(store.disclosure, \"contentElement\");\n useSafeLayoutEffect(() => {\n if (!ref.current) return;\n store == null ? void 0 : store.setContentElement(ref.current);\n }, [store]);\n useSafeLayoutEffect(() => {\n let previousAnimated;\n store == null ? void 0 : store.setState(\"animated\", (animated2) => {\n previousAnimated = animated2;\n return true;\n });\n return () => {\n if (previousAnimated === void 0) return;\n store == null ? void 0 : store.setState(\"animated\", previousAnimated);\n };\n }, [store]);\n useSafeLayoutEffect(() => {\n if (!animated) return;\n if (!(contentElement == null ? void 0 : contentElement.isConnected)) {\n setTransition(null);\n return;\n }\n return afterPaint(() => {\n setTransition(open ? \"enter\" : mounted ? \"leave\" : null);\n });\n }, [animated, contentElement, open, mounted]);\n useSafeLayoutEffect(() => {\n if (!store) return;\n if (!animated) return;\n if (!transition) return;\n if (!contentElement) return;\n const stopAnimation = () => store == null ? void 0 : store.setState(\"animating\", false);\n const stopAnimationSync = () => flushSync(stopAnimation);\n if (transition === \"leave\" && open) return;\n if (transition === \"enter\" && !open) return;\n if (typeof animated === \"number\") {\n const timeout2 = animated;\n return afterTimeout(timeout2, stopAnimationSync);\n }\n const {\n transitionDuration,\n animationDuration,\n transitionDelay,\n animationDelay\n } = getComputedStyle(contentElement);\n const {\n transitionDuration: transitionDuration2 = \"0\",\n animationDuration: animationDuration2 = \"0\",\n transitionDelay: transitionDelay2 = \"0\",\n animationDelay: animationDelay2 = \"0\"\n } = otherElement ? getComputedStyle(otherElement) : {};\n const delay = parseCSSTime(\n transitionDelay,\n animationDelay,\n transitionDelay2,\n animationDelay2\n );\n const duration = parseCSSTime(\n transitionDuration,\n animationDuration,\n transitionDuration2,\n animationDuration2\n );\n const timeout = delay + duration;\n if (!timeout) {\n if (transition === \"enter\") {\n store.setState(\"animated\", false);\n }\n stopAnimation();\n return;\n }\n const frameRate = 1e3 / 60;\n const maxTimeout = Math.max(timeout - frameRate, 0);\n return afterTimeout(maxTimeout, stopAnimationSync);\n }, [store, animated, contentElement, otherElement, open, transition]);\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(DialogScopedContextProvider, { value: store, children: element }),\n [store]\n );\n const hidden = isHidden(mounted, props.hidden, alwaysVisible);\n const styleProp = props.style;\n const style = useMemo(() => {\n if (hidden) {\n return __spreadProps(__spreadValues({}, styleProp), { display: \"none\" });\n }\n return styleProp;\n }, [hidden, styleProp]);\n props = __spreadProps(__spreadValues({\n id,\n \"data-open\": open || void 0,\n \"data-enter\": transition === \"enter\" || void 0,\n \"data-leave\": transition === \"leave\" || void 0,\n hidden\n }, props), {\n ref: useMergeRefs(id ? store.setContentElement : null, ref, props.ref),\n style\n });\n return removeUndefinedValues(props);\n});\nvar DisclosureContentImpl = forwardRef(function DisclosureContentImpl2(props) {\n const htmlProps = useDisclosureContent(props);\n return createElement(TagName, htmlProps);\n});\nvar DisclosureContent = forwardRef(function DisclosureContent2(_a) {\n var _b = _a, {\n unmountOnHide\n } = _b, props = __objRest(_b, [\n \"unmountOnHide\"\n ]);\n const context = useDisclosureProviderContext();\n const store = props.store || context;\n const mounted = useStoreState(\n store,\n (state) => !unmountOnHide || (state == null ? void 0 : state.mounted)\n );\n if (mounted === false) return null;\n return /* @__PURE__ */ jsx(DisclosureContentImpl, __spreadValues({}, props));\n});\n\nexport {\n isHidden,\n useDisclosureContent,\n DisclosureContent\n};\n","\"use client\";\nimport {\n ComboboxListRoleContext,\n ComboboxScopedContextProvider,\n useComboboxContext,\n useComboboxScopedContext\n} from \"./3LH6HMTR.js\";\nimport {\n isHidden\n} from \"./UYRBEP7M.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./7FZLUSKW.js\";\nimport {\n useAttribute,\n useId,\n useMergeRefs,\n useSafeLayoutEffect,\n useWrapElement\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/combobox/combobox-list.tsx\nimport { invariant, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nimport { useRef, useState } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nvar useComboboxList = createHook(\n function useComboboxList2(_a) {\n var _b = _a, { store, alwaysVisible } = _b, props = __objRest(_b, [\"store\", \"alwaysVisible\"]);\n const scopedContext = useComboboxScopedContext(true);\n const context = useComboboxContext();\n store = store || context;\n const scopedContextSameStore = !!store && store === scopedContext;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"ComboboxList must receive a `store` prop or be wrapped in a ComboboxProvider component.\"\n );\n const ref = useRef(null);\n const id = useId(props.id);\n const mounted = store.useState(\"mounted\");\n const hidden = isHidden(mounted, props.hidden, alwaysVisible);\n const style = hidden ? __spreadProps(__spreadValues({}, props.style), { display: \"none\" }) : props.style;\n const multiSelectable = store.useState(\n (state) => Array.isArray(state.selectedValue)\n );\n const role = useAttribute(ref, \"role\", props.role);\n const isCompositeRole = role === \"listbox\" || role === \"tree\" || role === \"grid\";\n const ariaMultiSelectable = isCompositeRole ? multiSelectable || void 0 : void 0;\n const [hasListboxInside, setHasListboxInside] = useState(false);\n const contentElement = store.useState(\"contentElement\");\n useSafeLayoutEffect(() => {\n if (!mounted) return;\n const element = ref.current;\n if (!element) return;\n if (contentElement !== element) return;\n const callback = () => {\n setHasListboxInside(!!element.querySelector(\"[role='listbox']\"));\n };\n const observer = new MutationObserver(callback);\n observer.observe(element, {\n subtree: true,\n childList: true,\n attributeFilter: [\"role\"]\n });\n callback();\n return () => observer.disconnect();\n }, [mounted, contentElement]);\n if (!hasListboxInside) {\n props = __spreadValues({\n role: \"listbox\",\n \"aria-multiselectable\": ariaMultiSelectable\n }, props);\n }\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(ComboboxScopedContextProvider, { value: store, children: /* @__PURE__ */ jsx(ComboboxListRoleContext.Provider, { value: role, children: element }) }),\n [store, role]\n );\n const setContentElement = id && (!scopedContext || !scopedContextSameStore) ? store.setContentElement : null;\n props = __spreadProps(__spreadValues({\n id,\n hidden\n }, props), {\n ref: useMergeRefs(setContentElement, ref, props.ref),\n style\n });\n return removeUndefinedValues(props);\n }\n);\nvar ComboboxList = forwardRef(function ComboboxList2(props) {\n const htmlProps = useComboboxList(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useComboboxList,\n ComboboxList\n};\n","\"use client\";\nimport {\n FocusableContext\n} from \"./SWN3JYXT.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./7FZLUSKW.js\";\nimport {\n useEvent,\n useMergeRefs,\n useTagName\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/focusable/focusable.tsx\nimport { isButton } from \"@ariakit/core/utils/dom\";\nimport {\n addGlobalEventListener,\n isFocusEventOutside,\n isPortalEvent,\n isSelfTarget,\n queueBeforeEvent\n} from \"@ariakit/core/utils/events\";\nimport {\n focusIfNeeded,\n getClosestFocusable,\n hasFocus,\n isFocusable\n} from \"@ariakit/core/utils/focus\";\nimport {\n disabledFromProps,\n removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nimport { isSafari } from \"@ariakit/core/utils/platform\";\nimport { useContext, useEffect, useMemo, useRef, useState } from \"react\";\nvar TagName = \"div\";\nvar isSafariBrowser = isSafari();\nvar alwaysFocusVisibleInputTypes = [\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n \"number\",\n \"date\",\n \"month\",\n \"week\",\n \"time\",\n \"datetime\",\n \"datetime-local\"\n];\nvar safariFocusAncestorSymbol = Symbol(\"safariFocusAncestor\");\nfunction isSafariFocusAncestor(element) {\n if (!element) return false;\n return !!element[safariFocusAncestorSymbol];\n}\nfunction markSafariFocusAncestor(element, value) {\n if (!element) return;\n element[safariFocusAncestorSymbol] = value;\n}\nfunction isAlwaysFocusVisible(element) {\n const { tagName, readOnly, type } = element;\n if (tagName === \"TEXTAREA\" && !readOnly) return true;\n if (tagName === \"SELECT\" && !readOnly) return true;\n if (tagName === \"INPUT\" && !readOnly) {\n return alwaysFocusVisibleInputTypes.includes(type);\n }\n if (element.isContentEditable) return true;\n const role = element.getAttribute(\"role\");\n if (role === \"combobox\" && element.dataset.name) {\n return true;\n }\n return false;\n}\nfunction getLabels(element) {\n if (\"labels\" in element) {\n return element.labels;\n }\n return null;\n}\nfunction isNativeCheckboxOrRadio(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName === \"input\" && element.type) {\n return element.type === \"radio\" || element.type === \"checkbox\";\n }\n return false;\n}\nfunction isNativeTabbable(tagName) {\n if (!tagName) return true;\n return tagName === \"button\" || tagName === \"summary\" || tagName === \"input\" || tagName === \"select\" || tagName === \"textarea\" || tagName === \"a\";\n}\nfunction supportsDisabledAttribute(tagName) {\n if (!tagName) return true;\n return tagName === \"button\" || tagName === \"input\" || tagName === \"select\" || tagName === \"textarea\";\n}\nfunction getTabIndex(focusable, trulyDisabled, nativeTabbable, supportsDisabled, tabIndexProp) {\n if (!focusable) {\n return tabIndexProp;\n }\n if (trulyDisabled) {\n if (nativeTabbable && !supportsDisabled) {\n return -1;\n }\n return;\n }\n if (nativeTabbable) {\n return tabIndexProp;\n }\n return tabIndexProp || 0;\n}\nfunction useDisableEvent(onEvent, disabled) {\n return useEvent((event) => {\n onEvent == null ? void 0 : onEvent(event);\n if (event.defaultPrevented) return;\n if (disabled) {\n event.stopPropagation();\n event.preventDefault();\n }\n });\n}\nvar isKeyboardModality = true;\nfunction onGlobalMouseDown(event) {\n const target = event.target;\n if (target && \"hasAttribute\" in target) {\n if (!target.hasAttribute(\"data-focus-visible\")) {\n isKeyboardModality = false;\n }\n }\n}\nfunction onGlobalKeyDown(event) {\n if (event.metaKey) return;\n if (event.ctrlKey) return;\n if (event.altKey) return;\n isKeyboardModality = true;\n}\nvar useFocusable = createHook(\n function useFocusable2(_a) {\n var _b = _a, {\n focusable = true,\n accessibleWhenDisabled,\n autoFocus,\n onFocusVisible\n } = _b, props = __objRest(_b, [\n \"focusable\",\n \"accessibleWhenDisabled\",\n \"autoFocus\",\n \"onFocusVisible\"\n ]);\n const ref = useRef(null);\n useEffect(() => {\n if (!focusable) return;\n addGlobalEventListener(\"mousedown\", onGlobalMouseDown, true);\n addGlobalEventListener(\"keydown\", onGlobalKeyDown, true);\n }, [focusable]);\n if (isSafariBrowser) {\n useEffect(() => {\n if (!focusable) return;\n const element = ref.current;\n if (!element) return;\n if (!isNativeCheckboxOrRadio(element)) return;\n const labels = getLabels(element);\n if (!labels) return;\n const onMouseUp = () => queueMicrotask(() => element.focus());\n for (const label of labels) {\n label.addEventListener(\"mouseup\", onMouseUp);\n }\n return () => {\n for (const label of labels) {\n label.removeEventListener(\"mouseup\", onMouseUp);\n }\n };\n }, [focusable]);\n }\n const disabled = focusable && disabledFromProps(props);\n const trulyDisabled = !!disabled && !accessibleWhenDisabled;\n const [focusVisible, setFocusVisible] = useState(false);\n useEffect(() => {\n if (!focusable) return;\n if (trulyDisabled && focusVisible) {\n setFocusVisible(false);\n }\n }, [focusable, trulyDisabled, focusVisible]);\n useEffect(() => {\n if (!focusable) return;\n if (!focusVisible) return;\n const element = ref.current;\n if (!element) return;\n if (typeof IntersectionObserver === \"undefined\") return;\n const observer = new IntersectionObserver(() => {\n if (!isFocusable(element)) {\n setFocusVisible(false);\n }\n });\n observer.observe(element);\n return () => observer.disconnect();\n }, [focusable, focusVisible]);\n const onKeyPressCapture = useDisableEvent(\n props.onKeyPressCapture,\n disabled\n );\n const onMouseDownCapture = useDisableEvent(\n props.onMouseDownCapture,\n disabled\n );\n const onClickCapture = useDisableEvent(props.onClickCapture, disabled);\n const onMouseDownProp = props.onMouseDown;\n const onMouseDown = useEvent((event) => {\n onMouseDownProp == null ? void 0 : onMouseDownProp(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n const element = event.currentTarget;\n if (!isSafariBrowser) return;\n if (isPortalEvent(event)) return;\n if (!isButton(element) && !isNativeCheckboxOrRadio(element)) return;\n let receivedFocus = false;\n const onFocus = () => {\n receivedFocus = true;\n };\n const options = { capture: true, once: true };\n element.addEventListener(\"focusin\", onFocus, options);\n const focusableContainer = getClosestFocusable(element.parentElement);\n markSafariFocusAncestor(focusableContainer, true);\n queueBeforeEvent(element, \"mouseup\", () => {\n element.removeEventListener(\"focusin\", onFocus, true);\n markSafariFocusAncestor(focusableContainer, false);\n if (receivedFocus) return;\n focusIfNeeded(element);\n });\n });\n const handleFocusVisible = (event, currentTarget) => {\n if (currentTarget) {\n event.currentTarget = currentTarget;\n }\n if (!focusable) return;\n const element = event.currentTarget;\n if (!element) return;\n if (!hasFocus(element)) return;\n onFocusVisible == null ? void 0 : onFocusVisible(event);\n if (event.defaultPrevented) return;\n element.dataset.focusVisible = \"true\";\n setFocusVisible(true);\n };\n const onKeyDownCaptureProp = props.onKeyDownCapture;\n const onKeyDownCapture = useEvent((event) => {\n onKeyDownCaptureProp == null ? void 0 : onKeyDownCaptureProp(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n if (focusVisible) return;\n if (event.metaKey) return;\n if (event.altKey) return;\n if (event.ctrlKey) return;\n if (!isSelfTarget(event)) return;\n const element = event.currentTarget;\n const applyFocusVisible = () => handleFocusVisible(event, element);\n queueBeforeEvent(element, \"focusout\", applyFocusVisible);\n });\n const onFocusCaptureProp = props.onFocusCapture;\n const onFocusCapture = useEvent((event) => {\n onFocusCaptureProp == null ? void 0 : onFocusCaptureProp(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n if (!isSelfTarget(event)) {\n setFocusVisible(false);\n return;\n }\n const element = event.currentTarget;\n const applyFocusVisible = () => handleFocusVisible(event, element);\n if (isKeyboardModality || isAlwaysFocusVisible(event.target)) {\n queueBeforeEvent(event.target, \"focusout\", applyFocusVisible);\n } else {\n setFocusVisible(false);\n }\n });\n const onBlurProp = props.onBlur;\n const onBlur = useEvent((event) => {\n onBlurProp == null ? void 0 : onBlurProp(event);\n if (!focusable) return;\n if (!isFocusEventOutside(event)) return;\n setFocusVisible(false);\n });\n const autoFocusOnShow = useContext(FocusableContext);\n const autoFocusRef = useEvent((element) => {\n if (!focusable) return;\n if (!autoFocus) return;\n if (!element) return;\n if (!autoFocusOnShow) return;\n queueMicrotask(() => {\n if (hasFocus(element)) return;\n if (!isFocusable(element)) return;\n element.focus();\n });\n });\n const tagName = useTagName(ref);\n const nativeTabbable = focusable && isNativeTabbable(tagName);\n const supportsDisabled = focusable && supportsDisabledAttribute(tagName);\n const styleProp = props.style;\n const style = useMemo(() => {\n if (trulyDisabled) {\n return __spreadValues({ pointerEvents: \"none\" }, styleProp);\n }\n return styleProp;\n }, [trulyDisabled, styleProp]);\n props = __spreadProps(__spreadValues({\n \"data-focus-visible\": focusable && focusVisible || void 0,\n \"data-autofocus\": autoFocus || void 0,\n \"aria-disabled\": disabled || void 0\n }, props), {\n ref: useMergeRefs(ref, autoFocusRef, props.ref),\n style,\n tabIndex: getTabIndex(\n focusable,\n trulyDisabled,\n nativeTabbable,\n supportsDisabled,\n props.tabIndex\n ),\n disabled: supportsDisabled && trulyDisabled ? true : void 0,\n // TODO: Test Focusable contentEditable.\n contentEditable: disabled ? void 0 : props.contentEditable,\n onKeyPressCapture,\n onClickCapture,\n onMouseDownCapture,\n onMouseDown,\n onKeyDownCapture,\n onFocusCapture,\n onBlur\n });\n return removeUndefinedValues(props);\n }\n);\nvar Focusable = forwardRef(function Focusable2(props) {\n const htmlProps = useFocusable(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n isSafariFocusAncestor,\n useFocusable,\n Focusable\n};\n","\"use client\";\nimport {\n useFocusable\n} from \"./Z4WWVOIF.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./7FZLUSKW.js\";\nimport {\n useEvent,\n useMergeRefs,\n useMetadataProps,\n useTagName\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/command/command.tsx\nimport { isButton, isTextField } from \"@ariakit/core/utils/dom\";\nimport {\n fireClickEvent,\n isSelfTarget,\n queueBeforeEvent\n} from \"@ariakit/core/utils/events\";\nimport { disabledFromProps } from \"@ariakit/core/utils/misc\";\nimport { isFirefox } from \"@ariakit/core/utils/platform\";\nimport { useEffect, useRef, useState } from \"react\";\nvar TagName = \"button\";\nfunction isNativeClick(event) {\n if (!event.isTrusted) return false;\n const element = event.currentTarget;\n if (event.key === \"Enter\") {\n return isButton(element) || element.tagName === \"SUMMARY\" || element.tagName === \"A\";\n }\n if (event.key === \" \") {\n return isButton(element) || element.tagName === \"SUMMARY\" || element.tagName === \"INPUT\" || element.tagName === \"SELECT\";\n }\n return false;\n}\nvar symbol = Symbol(\"command\");\nvar useCommand = createHook(\n function useCommand2(_a) {\n var _b = _a, { clickOnEnter = true, clickOnSpace = true } = _b, props = __objRest(_b, [\"clickOnEnter\", \"clickOnSpace\"]);\n const ref = useRef(null);\n const tagName = useTagName(ref);\n const type = props.type;\n const [isNativeButton, setIsNativeButton] = useState(\n () => !!tagName && isButton({ tagName, type })\n );\n useEffect(() => {\n if (!ref.current) return;\n setIsNativeButton(isButton(ref.current));\n }, []);\n const [active, setActive] = useState(false);\n const activeRef = useRef(false);\n const disabled = disabledFromProps(props);\n const [isDuplicate, metadataProps] = useMetadataProps(props, symbol, true);\n const onKeyDownProp = props.onKeyDown;\n const onKeyDown = useEvent((event) => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n const element = event.currentTarget;\n if (event.defaultPrevented) return;\n if (isDuplicate) return;\n if (disabled) return;\n if (!isSelfTarget(event)) return;\n if (isTextField(element)) return;\n if (element.isContentEditable) return;\n const isEnter = clickOnEnter && event.key === \"Enter\";\n const isSpace = clickOnSpace && event.key === \" \";\n const shouldPreventEnter = event.key === \"Enter\" && !clickOnEnter;\n const shouldPreventSpace = event.key === \" \" && !clickOnSpace;\n if (shouldPreventEnter || shouldPreventSpace) {\n event.preventDefault();\n return;\n }\n if (isEnter || isSpace) {\n const nativeClick = isNativeClick(event);\n if (isEnter) {\n if (!nativeClick) {\n event.preventDefault();\n const _a2 = event, { view } = _a2, eventInit = __objRest(_a2, [\"view\"]);\n const click = () => fireClickEvent(element, eventInit);\n if (isFirefox()) {\n queueBeforeEvent(element, \"keyup\", click);\n } else {\n queueMicrotask(click);\n }\n }\n } else if (isSpace) {\n activeRef.current = true;\n if (!nativeClick) {\n event.preventDefault();\n setActive(true);\n }\n }\n }\n });\n const onKeyUpProp = props.onKeyUp;\n const onKeyUp = useEvent((event) => {\n onKeyUpProp == null ? void 0 : onKeyUpProp(event);\n if (event.defaultPrevented) return;\n if (isDuplicate) return;\n if (disabled) return;\n if (event.metaKey) return;\n const isSpace = clickOnSpace && event.key === \" \";\n if (activeRef.current && isSpace) {\n activeRef.current = false;\n if (!isNativeClick(event)) {\n event.preventDefault();\n setActive(false);\n const element = event.currentTarget;\n const _a2 = event, { view } = _a2, eventInit = __objRest(_a2, [\"view\"]);\n queueMicrotask(() => fireClickEvent(element, eventInit));\n }\n }\n });\n props = __spreadProps(__spreadValues(__spreadValues({\n \"data-active\": active || void 0,\n type: isNativeButton ? \"button\" : void 0\n }, metadataProps), props), {\n ref: useMergeRefs(ref, props.ref),\n onKeyDown,\n onKeyUp\n });\n props = useFocusable(props);\n return props;\n }\n);\nvar Command = forwardRef(function Command2(props) {\n const htmlProps = useCommand(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useCommand,\n Command\n};\n","\"use client\";\nimport {\n ComboboxItemValueContext,\n useComboboxScopedContext\n} from \"../__chunks/3LH6HMTR.js\";\nimport \"../__chunks/APGXEJ2Q.js\";\nimport \"../__chunks/G4PVPWEW.js\";\nimport \"../__chunks/COWZSPJ7.js\";\nimport \"../__chunks/CMXOY7UW.js\";\nimport \"../__chunks/JDEWEW7S.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/7FZLUSKW.js\";\nimport {\n useStoreState\n} from \"../__chunks/CTKPPFRS.js\";\nimport \"../__chunks/HNHAUIIY.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport {\n __objRest,\n __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox-item-value.tsx\nimport { toArray } from \"@ariakit/core/utils/array\";\nimport {\n normalizeString,\n removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nimport { useContext, useMemo } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"span\";\nfunction normalizeValue(value) {\n return normalizeString(value).toLowerCase();\n}\nfunction getOffsets(string, values) {\n const offsets = [];\n for (const value of values) {\n let pos = 0;\n const length = value.length;\n while (string.indexOf(value, pos) !== -1) {\n const index = string.indexOf(value, pos);\n if (index !== -1) {\n offsets.push([index, length]);\n }\n pos = index + 1;\n }\n }\n return offsets;\n}\nfunction filterOverlappingOffsets(offsets) {\n return offsets.filter(([offset, length], i, arr) => {\n return !arr.some(\n ([o, l], j) => j !== i && o <= offset && o + l >= offset + length\n );\n });\n}\nfunction sortOffsets(offsets) {\n return offsets.sort(([a], [b]) => a - b);\n}\nfunction splitValue(itemValue, userValue) {\n if (!itemValue) return itemValue;\n if (!userValue) return itemValue;\n const userValues = toArray(userValue).filter(Boolean).map(normalizeValue);\n const parts = [];\n const span = (value, autocomplete = false) => /* @__PURE__ */ jsx(\n \"span\",\n {\n \"data-autocomplete-value\": autocomplete ? \"\" : void 0,\n \"data-user-value\": autocomplete ? void 0 : \"\",\n children: value\n },\n parts.length\n );\n const offsets = sortOffsets(\n filterOverlappingOffsets(\n // Convert userValues into a set to avoid duplicates\n getOffsets(normalizeValue(itemValue), new Set(userValues))\n )\n );\n if (!offsets.length) {\n parts.push(span(itemValue, true));\n return parts;\n }\n const [firstOffset] = offsets[0];\n const values = [\n itemValue.slice(0, firstOffset),\n ...offsets.flatMap(([offset, length], i) => {\n var _a;\n const value = itemValue.slice(offset, offset + length);\n const nextOffset = (_a = offsets[i + 1]) == null ? void 0 : _a[0];\n const nextValue = itemValue.slice(offset + length, nextOffset);\n return [value, nextValue];\n })\n ];\n values.forEach((value, i) => {\n if (!value) return;\n parts.push(span(value, i % 2 === 0));\n });\n return parts;\n}\nvar useComboboxItemValue = createHook(function useComboboxItemValue2(_a) {\n var _b = _a, { store, value, userValue } = _b, props = __objRest(_b, [\"store\", \"value\", \"userValue\"]);\n const context = useComboboxScopedContext();\n store = store || context;\n const itemContext = useContext(ComboboxItemValueContext);\n const itemValue = value != null ? value : itemContext;\n const inputValue = useStoreState(store, (state) => userValue != null ? userValue : state == null ? void 0 : state.value);\n const children = useMemo(() => {\n if (!itemValue) return;\n if (!inputValue) return itemValue;\n return splitValue(itemValue, inputValue);\n }, [itemValue, inputValue]);\n props = __spreadValues({\n children\n }, props);\n return removeUndefinedValues(props);\n});\nvar ComboboxItemValue = forwardRef(function ComboboxItemValue2(props) {\n const htmlProps = useComboboxItemValue(props);\n return createElement(TagName, htmlProps);\n});\nexport {\n ComboboxItemValue,\n useComboboxItemValue\n};\n","\"use client\";\nimport {\n useCompositeHover\n} from \"../__chunks/L63MOBXC.js\";\nimport {\n ComboboxItemCheckedContext,\n ComboboxItemValueContext,\n ComboboxListRoleContext,\n useComboboxScopedContext\n} from \"../__chunks/3LH6HMTR.js\";\nimport {\n useCompositeItem\n} from \"../__chunks/NSB34BGG.js\";\nimport \"../__chunks/SZHY72KI.js\";\nimport \"../__chunks/ZHUQ44XA.js\";\nimport \"../__chunks/5VQZOHHZ.js\";\nimport \"../__chunks/APGXEJ2Q.js\";\nimport \"../__chunks/G4PVPWEW.js\";\nimport \"../__chunks/COWZSPJ7.js\";\nimport \"../__chunks/CMXOY7UW.js\";\nimport \"../__chunks/JDEWEW7S.js\";\nimport \"../__chunks/Z4WWVOIF.js\";\nimport \"../__chunks/SWN3JYXT.js\";\nimport {\n createElement,\n createHook,\n forwardRef,\n memo\n} from \"../__chunks/7FZLUSKW.js\";\nimport \"../__chunks/CTKPPFRS.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useWrapElement\n} from \"../__chunks/HNHAUIIY.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox-item.tsx\nimport { isTextField } from \"@ariakit/core/utils/dom\";\nimport { isDownloading, isOpeningInNewTab } from \"@ariakit/core/utils/events\";\nimport { hasFocus } from \"@ariakit/core/utils/focus\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport { useCallback, useContext } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction isSelected(storeValue, itemValue) {\n if (itemValue == null) return;\n if (storeValue == null) return false;\n if (Array.isArray(storeValue)) {\n return storeValue.includes(itemValue);\n }\n return storeValue === itemValue;\n}\nfunction getItemRole(popupRole) {\n var _a;\n const itemRoleByPopupRole = {\n menu: \"menuitem\",\n listbox: \"option\",\n tree: \"treeitem\"\n };\n const key = popupRole;\n return (_a = itemRoleByPopupRole[key]) != null ? _a : \"option\";\n}\nvar useComboboxItem = createHook(\n function useComboboxItem2(_a) {\n var _b = _a, {\n store,\n value,\n hideOnClick,\n setValueOnClick,\n selectValueOnClick = true,\n resetValueOnSelect,\n focusOnHover = false,\n moveOnKeyPress = true,\n getItem: getItemProp\n } = _b, props = __objRest(_b, [\n \"store\",\n \"value\",\n \"hideOnClick\",\n \"setValueOnClick\",\n \"selectValueOnClick\",\n \"resetValueOnSelect\",\n \"focusOnHover\",\n \"moveOnKeyPress\",\n \"getItem\"\n ]);\n var _a2;\n const context = useComboboxScopedContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"ComboboxItem must be wrapped in a ComboboxList or ComboboxPopover component.\"\n );\n const getItem = useCallback(\n (item) => {\n const nextItem = __spreadProps(__spreadValues({}, item), { value });\n if (getItemProp) {\n return getItemProp(nextItem);\n }\n return nextItem;\n },\n [value, getItemProp]\n );\n const multiSelectable = store.useState(\n (state) => Array.isArray(state.selectedValue)\n );\n const selected = store.useState(\n (state) => isSelected(state.selectedValue, value)\n );\n const resetValueOnSelectState = store.useState(\"resetValueOnSelect\");\n setValueOnClick = setValueOnClick != null ? setValueOnClick : !multiSelectable;\n hideOnClick = hideOnClick != null ? hideOnClick : value != null && !multiSelectable;\n const onClickProp = props.onClick;\n const setValueOnClickProp = useBooleanEvent(setValueOnClick);\n const selectValueOnClickProp = useBooleanEvent(selectValueOnClick);\n const resetValueOnSelectProp = useBooleanEvent(\n (_a2 = resetValueOnSelect != null ? resetValueOnSelect : resetValueOnSelectState) != null ? _a2 : multiSelectable\n );\n const hideOnClickProp = useBooleanEvent(hideOnClick);\n const onClick = useEvent((event) => {\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented) return;\n if (isDownloading(event)) return;\n if (isOpeningInNewTab(event)) return;\n if (value != null) {\n if (selectValueOnClickProp(event)) {\n if (resetValueOnSelectProp(event)) {\n store == null ? void 0 : store.resetValue();\n }\n store == null ? void 0 : store.setSelectedValue((prevValue) => {\n if (!Array.isArray(prevValue)) return value;\n if (prevValue.includes(value)) {\n return prevValue.filter((v) => v !== value);\n }\n return [...prevValue, value];\n });\n }\n if (setValueOnClickProp(event)) {\n store == null ? void 0 : store.setValue(value);\n }\n }\n if (hideOnClickProp(event)) {\n store == null ? void 0 : store.hide();\n }\n });\n const onKeyDownProp = props.onKeyDown;\n const onKeyDown = useEvent((event) => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (event.defaultPrevented) return;\n const baseElement = store == null ? void 0 : store.getState().baseElement;\n if (!baseElement) return;\n if (hasFocus(baseElement)) return;\n const printable = event.key.length === 1;\n if (printable || event.key === \"Backspace\" || event.key === \"Delete\") {\n queueMicrotask(() => baseElement.focus());\n if (isTextField(baseElement)) {\n store == null ? void 0 : store.setValue(baseElement.value);\n }\n }\n });\n if (multiSelectable && selected != null) {\n props = __spreadValues({\n \"aria-selected\": selected\n }, props);\n }\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(ComboboxItemValueContext.Provider, { value, children: /* @__PURE__ */ jsx(ComboboxItemCheckedContext.Provider, { value: selected != null ? selected : false, children: element }) }),\n [value, selected]\n );\n const popupRole = useContext(ComboboxListRoleContext);\n props = __spreadProps(__spreadValues({\n role: getItemRole(popupRole),\n children: value\n }, props), {\n onClick,\n onKeyDown\n });\n const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);\n props = useCompositeItem(__spreadProps(__spreadValues({\n store\n }, props), {\n getItem,\n // Dispatch a custom event on the combobox input when moving to an item\n // with the keyboard so the Combobox component can enable inline\n // autocompletion.\n moveOnKeyPress: (event) => {\n if (!moveOnKeyPressProp(event)) return false;\n const moveEvent = new Event(\"combobox-item-move\");\n const baseElement = store == null ? void 0 : store.getState().baseElement;\n baseElement == null ? void 0 : baseElement.dispatchEvent(moveEvent);\n return true;\n }\n }));\n props = useCompositeHover(__spreadValues({ store, focusOnHover }, props));\n return props;\n }\n);\nvar ComboboxItem = memo(\n forwardRef(function ComboboxItem2(props) {\n const htmlProps = useComboboxItem(props);\n return createElement(TagName, htmlProps);\n })\n);\nexport {\n ComboboxItem,\n useComboboxItem\n};\n","\"use client\";\nimport {\n useComboboxProviderContext\n} from \"../__chunks/3LH6HMTR.js\";\nimport \"../__chunks/APGXEJ2Q.js\";\nimport \"../__chunks/G4PVPWEW.js\";\nimport \"../__chunks/COWZSPJ7.js\";\nimport \"../__chunks/CMXOY7UW.js\";\nimport \"../__chunks/JDEWEW7S.js\";\nimport {\n createElement,\n createHook,\n forwardRef,\n memo\n} from \"../__chunks/7FZLUSKW.js\";\nimport \"../__chunks/HNHAUIIY.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport {\n __objRest,\n __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox-label.tsx\nimport { invariant, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nvar TagName = \"label\";\nvar useComboboxLabel = createHook(\n function useComboboxLabel2(_a) {\n var _b = _a, { store } = _b, props = __objRest(_b, [\"store\"]);\n const context = useComboboxProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"ComboboxLabel must receive a `store` prop or be wrapped in a ComboboxProvider component.\"\n );\n const comboboxId = store.useState((state) => {\n var _a2;\n return (_a2 = state.baseElement) == null ? void 0 : _a2.id;\n });\n props = __spreadValues({\n htmlFor: comboboxId\n }, props);\n return removeUndefinedValues(props);\n }\n);\nvar ComboboxLabel = memo(\n forwardRef(function ComboboxLabel2(props) {\n const htmlProps = useComboboxLabel(props);\n return createElement(TagName, htmlProps);\n })\n);\nexport {\n ComboboxLabel,\n useComboboxLabel\n};\n","\"use client\";\nimport {\n useComboboxStore\n} from \"../__chunks/E6AN77M4.js\";\nimport {\n ComboboxContextProvider\n} from \"../__chunks/3LH6HMTR.js\";\nimport \"../__chunks/3TGOYUTQ.js\";\nimport \"../__chunks/OIB4PV4M.js\";\nimport \"../__chunks/QZUWIJQN.js\";\nimport \"../__chunks/APGXEJ2Q.js\";\nimport \"../__chunks/G4PVPWEW.js\";\nimport \"../__chunks/COWZSPJ7.js\";\nimport \"../__chunks/CMXOY7UW.js\";\nimport \"../__chunks/JDEWEW7S.js\";\nimport \"../__chunks/7FZLUSKW.js\";\nimport \"../__chunks/CO7ZDQU2.js\";\nimport \"../__chunks/B5WJDZ55.js\";\nimport \"../__chunks/C76P7QQC.js\";\nimport \"../__chunks/CTKPPFRS.js\";\nimport \"../__chunks/HNHAUIIY.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox-provider.tsx\nimport { jsx } from \"react/jsx-runtime\";\nfunction ComboboxProvider(props = {}) {\n const store = useComboboxStore(props);\n return /* @__PURE__ */ jsx(ComboboxContextProvider, { value: store, children: props.children });\n}\nexport {\n ComboboxProvider\n};\n","\"use client\";\nimport {\n useComboboxProviderContext\n} from \"../__chunks/3LH6HMTR.js\";\nimport {\n usePopoverAnchor\n} from \"../__chunks/NWYOIOBE.js\";\nimport {\n useComposite\n} from \"../__chunks/IKLZZMLE.js\";\nimport \"../__chunks/5VQZOHHZ.js\";\nimport \"../__chunks/APGXEJ2Q.js\";\nimport \"../__chunks/G4PVPWEW.js\";\nimport \"../__chunks/COWZSPJ7.js\";\nimport \"../__chunks/CMXOY7UW.js\";\nimport \"../__chunks/JDEWEW7S.js\";\nimport \"../__chunks/Z4WWVOIF.js\";\nimport \"../__chunks/SWN3JYXT.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/7FZLUSKW.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useForceUpdate,\n useId,\n useMergeRefs,\n useSafeLayoutEffect,\n useUpdateEffect,\n useUpdateLayoutEffect\n} from \"../__chunks/HNHAUIIY.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox.tsx\nimport {\n getPopupRole,\n getScrollingElement,\n getTextboxSelection,\n setSelectionRange\n} from \"@ariakit/core/utils/dom\";\nimport {\n isFocusEventOutside,\n queueBeforeEvent\n} from \"@ariakit/core/utils/events\";\nimport { hasFocus } from \"@ariakit/core/utils/focus\";\nimport {\n invariant,\n isFalsyBooleanCallback,\n noop,\n normalizeString\n} from \"@ariakit/core/utils/misc\";\nimport { sync } from \"@ariakit/core/utils/store\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nvar TagName = \"input\";\nfunction isFirstItemAutoSelected(items, activeValue, autoSelect) {\n if (!autoSelect) return false;\n const firstItem = items.find((item) => !item.disabled && item.value);\n return (firstItem == null ? void 0 : firstItem.value) === activeValue;\n}\nfunction hasCompletionString(value, activeValue) {\n if (!activeValue) return false;\n if (value == null) return false;\n value = normalizeString(value);\n return activeValue.length > value.length && activeValue.toLowerCase().indexOf(value.toLowerCase()) === 0;\n}\nfunction isInputEvent(event) {\n return event.type === \"input\";\n}\nfunction isAriaAutoCompleteValue(value) {\n return value === \"inline\" || value === \"list\" || value === \"both\" || value === \"none\";\n}\nfunction getDefaultAutoSelectId(items) {\n const item = items.find((item2) => {\n var _a;\n if (item2.disabled) return false;\n return ((_a = item2.element) == null ? void 0 : _a.getAttribute(\"role\")) !== \"tab\";\n });\n return item == null ? void 0 : item.id;\n}\nvar useCombobox = createHook(\n function useCombobox2(_a) {\n var _b = _a, {\n store,\n focusable = true,\n autoSelect: autoSelectProp = false,\n getAutoSelectId,\n setValueOnChange,\n showMinLength = 0,\n showOnChange,\n showOnMouseDown,\n showOnClick = showOnMouseDown,\n showOnKeyDown,\n showOnKeyPress = showOnKeyDown,\n blurActiveItemOnClick,\n setValueOnClick = true,\n moveOnKeyPress = true,\n autoComplete = \"list\"\n } = _b, props = __objRest(_b, [\n \"store\",\n \"focusable\",\n \"autoSelect\",\n \"getAutoSelectId\",\n \"setValueOnChange\",\n \"showMinLength\",\n \"showOnChange\",\n \"showOnMouseDown\",\n \"showOnClick\",\n \"showOnKeyDown\",\n \"showOnKeyPress\",\n \"blurActiveItemOnClick\",\n \"setValueOnClick\",\n \"moveOnKeyPress\",\n \"autoComplete\"\n ]);\n const context = useComboboxProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Combobox must receive a `store` prop or be wrapped in a ComboboxProvider component.\"\n );\n const ref = useRef(null);\n const [valueUpdated, forceValueUpdate] = useForceUpdate();\n const canAutoSelectRef = useRef(false);\n const composingRef = useRef(false);\n const autoSelect = store.useState(\n (state) => state.virtualFocus && autoSelectProp\n );\n const inline = autoComplete === \"inline\" || autoComplete === \"both\";\n const [canInline, setCanInline] = useState(inline);\n useUpdateLayoutEffect(() => {\n if (!inline) return;\n setCanInline(true);\n }, [inline]);\n const storeValue = store.useState(\"value\");\n const prevSelectedValueRef = useRef();\n useEffect(() => {\n return sync(store, [\"selectedValue\", \"activeId\"], (_, prev) => {\n prevSelectedValueRef.current = prev.selectedValue;\n });\n }, []);\n const inlineActiveValue = store.useState((state) => {\n var _a2;\n if (!inline) return;\n if (!canInline) return;\n if (state.activeValue && Array.isArray(state.selectedValue)) {\n if (state.selectedValue.includes(state.activeValue)) return;\n if ((_a2 = prevSelectedValueRef.current) == null ? void 0 : _a2.includes(state.activeValue)) return;\n }\n return state.activeValue;\n });\n const items = store.useState(\"renderedItems\");\n const open = store.useState(\"open\");\n const contentElement = store.useState(\"contentElement\");\n const value = useMemo(() => {\n if (!inline) return storeValue;\n if (!canInline) return storeValue;\n const firstItemAutoSelected = isFirstItemAutoSelected(\n items,\n inlineActiveValue,\n autoSelect\n );\n if (firstItemAutoSelected) {\n if (hasCompletionString(storeValue, inlineActiveValue)) {\n const slice = (inlineActiveValue == null ? void 0 : inlineActiveValue.slice(storeValue.length)) || \"\";\n return storeValue + slice;\n }\n return storeValue;\n }\n return inlineActiveValue || storeValue;\n }, [inline, canInline, items, inlineActiveValue, autoSelect, storeValue]);\n useEffect(() => {\n const element = ref.current;\n if (!element) return;\n const onCompositeItemMove = () => setCanInline(true);\n element.addEventListener(\"combobox-item-move\", onCompositeItemMove);\n return () => {\n element.removeEventListener(\"combobox-item-move\", onCompositeItemMove);\n };\n }, []);\n useEffect(() => {\n if (!inline) return;\n if (!canInline) return;\n if (!inlineActiveValue) return;\n const firstItemAutoSelected = isFirstItemAutoSelected(\n items,\n inlineActiveValue,\n autoSelect\n );\n if (!firstItemAutoSelected) return;\n if (!hasCompletionString(storeValue, inlineActiveValue)) return;\n let cleanup = noop;\n queueMicrotask(() => {\n const element = ref.current;\n if (!element) return;\n const { start: prevStart, end: prevEnd } = getTextboxSelection(element);\n const nextStart = storeValue.length;\n const nextEnd = inlineActiveValue.length;\n setSelectionRange(element, nextStart, nextEnd);\n cleanup = () => {\n if (!hasFocus(element)) return;\n const { start, end } = getTextboxSelection(element);\n if (start !== nextStart) return;\n if (end !== nextEnd) return;\n setSelectionRange(element, prevStart, prevEnd);\n };\n });\n return () => cleanup();\n }, [\n valueUpdated,\n inline,\n canInline,\n inlineActiveValue,\n items,\n autoSelect,\n storeValue\n ]);\n const scrollingElementRef = useRef(null);\n const getAutoSelectIdProp = useEvent(getAutoSelectId);\n const autoSelectIdRef = useRef(null);\n useEffect(() => {\n if (!open) return;\n if (!contentElement) return;\n const scrollingElement = getScrollingElement(contentElement);\n if (!scrollingElement) return;\n scrollingElementRef.current = scrollingElement;\n const onUserScroll = () => {\n canAutoSelectRef.current = false;\n };\n const onScroll = () => {\n if (!store) return;\n if (!canAutoSelectRef.current) return;\n const { activeId } = store.getState();\n if (activeId === null) return;\n if (activeId === autoSelectIdRef.current) return;\n canAutoSelectRef.current = false;\n };\n const options = { passive: true, capture: true };\n scrollingElement.addEventListener(\"wheel\", onUserScroll, options);\n scrollingElement.addEventListener(\"touchmove\", onUserScroll, options);\n scrollingElement.addEventListener(\"scroll\", onScroll, options);\n return () => {\n scrollingElement.removeEventListener(\"wheel\", onUserScroll, true);\n scrollingElement.removeEventListener(\"touchmove\", onUserScroll, true);\n scrollingElement.removeEventListener(\"scroll\", onScroll, true);\n };\n }, [open, contentElement, store]);\n useSafeLayoutEffect(() => {\n if (!storeValue) return;\n if (composingRef.current) return;\n canAutoSelectRef.current = true;\n }, [storeValue]);\n useSafeLayoutEffect(() => {\n if (autoSelect !== \"always\" && open) return;\n canAutoSelectRef.current = open;\n }, [autoSelect, open]);\n const resetValueOnSelect = store.useState(\"resetValueOnSelect\");\n useUpdateEffect(() => {\n var _a2, _b2;\n const canAutoSelect = canAutoSelectRef.current;\n if (!store) return;\n if (!open) return;\n if ((!autoSelect || !canAutoSelect) && !resetValueOnSelect) return;\n const { baseElement, contentElement: contentElement2, activeId } = store.getState();\n if (baseElement && !hasFocus(baseElement)) return;\n if (contentElement2 == null ? void 0 : contentElement2.hasAttribute(\"data-placing\")) {\n const observer = new MutationObserver(forceValueUpdate);\n observer.observe(contentElement2, { attributeFilter: [\"data-placing\"] });\n return () => observer.disconnect();\n }\n if (autoSelect && canAutoSelect) {\n const userAutoSelectId = getAutoSelectIdProp(items);\n const autoSelectId = userAutoSelectId !== void 0 ? userAutoSelectId : (_a2 = getDefaultAutoSelectId(items)) != null ? _a2 : store.first();\n autoSelectIdRef.current = autoSelectId;\n store.move(autoSelectId != null ? autoSelectId : null);\n } else {\n const element = (_b2 = store.item(activeId)) == null ? void 0 : _b2.element;\n if (element && \"scrollIntoView\" in element) {\n element.scrollIntoView({ block: \"nearest\", inline: \"nearest\" });\n }\n }\n return;\n }, [\n store,\n open,\n valueUpdated,\n storeValue,\n autoSelect,\n resetValueOnSelect,\n getAutoSelectIdProp,\n items\n ]);\n useEffect(() => {\n if (!inline) return;\n const combobox = ref.current;\n if (!combobox) return;\n const elements = [combobox, contentElement].filter(\n (value2) => !!value2\n );\n const onBlur2 = (event) => {\n if (elements.every((el) => isFocusEventOutside(event, el))) {\n store == null ? void 0 : store.setValue(value);\n }\n };\n for (const element of elements) {\n element.addEventListener(\"focusout\", onBlur2);\n }\n return () => {\n for (const element of elements) {\n element.removeEventListener(\"focusout\", onBlur2);\n }\n };\n }, [inline, contentElement, store, value]);\n const canShow = (event) => {\n const currentTarget = event.currentTarget;\n return currentTarget.value.length >= showMinLength;\n };\n const onChangeProp = props.onChange;\n const showOnChangeProp = useBooleanEvent(showOnChange != null ? showOnChange : canShow);\n const setValueOnChangeProp = useBooleanEvent(\n // If the combobox is combined with tags, the value will be set by the tag\n // input component.\n setValueOnChange != null ? setValueOnChange : !store.tag\n );\n const onChange = useEvent((event) => {\n onChangeProp == null ? void 0 : onChangeProp(event);\n if (event.defaultPrevented) return;\n if (!store) return;\n const currentTarget = event.currentTarget;\n const { value: value2, selectionStart, selectionEnd } = currentTarget;\n const nativeEvent = event.nativeEvent;\n canAutoSelectRef.current = true;\n if (isInputEvent(nativeEvent)) {\n if (nativeEvent.isComposing) {\n canAutoSelectRef.current = false;\n composingRef.current = true;\n }\n if (inline) {\n const textInserted = nativeEvent.inputType === \"insertText\" || nativeEvent.inputType === \"insertCompositionText\";\n const caretAtEnd = selectionStart === value2.length;\n setCanInline(textInserted && caretAtEnd);\n }\n }\n if (setValueOnChangeProp(event)) {\n const isSameValue = value2 === store.getState().value;\n store.setValue(value2);\n queueMicrotask(() => {\n setSelectionRange(currentTarget, selectionStart, selectionEnd);\n });\n if (inline && autoSelect && isSameValue) {\n forceValueUpdate();\n }\n }\n if (showOnChangeProp(event)) {\n store.show();\n }\n if (!autoSelect || !canAutoSelectRef.current) {\n store.setActiveId(null);\n }\n });\n const onCompositionEndProp = props.onCompositionEnd;\n const onCompositionEnd = useEvent((event) => {\n canAutoSelectRef.current = true;\n composingRef.current = false;\n onCompositionEndProp == null ? void 0 : onCompositionEndProp(event);\n if (event.defaultPrevented) return;\n if (!autoSelect) return;\n forceValueUpdate();\n });\n const onMouseDownProp = props.onMouseDown;\n const blurActiveItemOnClickProp = useBooleanEvent(\n blurActiveItemOnClick != null ? blurActiveItemOnClick : () => !!(store == null ? void 0 : store.getState().includesBaseElement)\n );\n const setValueOnClickProp = useBooleanEvent(setValueOnClick);\n const showOnClickProp = useBooleanEvent(showOnClick != null ? showOnClick : canShow);\n const onMouseDown = useEvent((event) => {\n onMouseDownProp == null ? void 0 : onMouseDownProp(event);\n if (event.defaultPrevented) return;\n if (event.button) return;\n if (event.ctrlKey) return;\n if (!store) return;\n if (blurActiveItemOnClickProp(event)) {\n store.setActiveId(null);\n }\n if (setValueOnClickProp(event)) {\n store.setValue(value);\n }\n if (showOnClickProp(event)) {\n queueBeforeEvent(event.currentTarget, \"mouseup\", store.show);\n }\n });\n const onKeyDownProp = props.onKeyDown;\n const showOnKeyPressProp = useBooleanEvent(showOnKeyPress != null ? showOnKeyPress : canShow);\n const onKeyDown = useEvent((event) => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (!event.repeat) {\n canAutoSelectRef.current = false;\n }\n if (event.defaultPrevented) return;\n if (event.ctrlKey) return;\n if (event.altKey) return;\n if (event.shiftKey) return;\n if (event.metaKey) return;\n if (!store) return;\n const { open: open2 } = store.getState();\n if (open2) return;\n if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n if (showOnKeyPressProp(event)) {\n event.preventDefault();\n store.show();\n }\n }\n });\n const onBlurProp = props.onBlur;\n const onBlur = useEvent((event) => {\n canAutoSelectRef.current = false;\n onBlurProp == null ? void 0 : onBlurProp(event);\n if (event.defaultPrevented) return;\n });\n const id = useId(props.id);\n const ariaAutoComplete = isAriaAutoCompleteValue(autoComplete) ? autoComplete : void 0;\n const isActiveItem = store.useState((state) => state.activeId === null);\n props = __spreadProps(__spreadValues({\n id,\n role: \"combobox\",\n \"aria-autocomplete\": ariaAutoComplete,\n \"aria-haspopup\": getPopupRole(contentElement, \"listbox\"),\n \"aria-expanded\": open,\n \"aria-controls\": contentElement == null ? void 0 : contentElement.id,\n \"data-active-item\": isActiveItem || void 0,\n value\n }, props), {\n ref: useMergeRefs(ref, props.ref),\n onChange,\n onCompositionEnd,\n onMouseDown,\n onKeyDown,\n onBlur\n });\n props = useComposite(__spreadProps(__spreadValues({\n store,\n focusable\n }, props), {\n // Enable inline autocomplete when the user moves from the combobox input\n // to an item.\n moveOnKeyPress: (event) => {\n if (isFalsyBooleanCallback(moveOnKeyPress, event)) return false;\n if (inline) setCanInline(true);\n return true;\n }\n }));\n props = usePopoverAnchor(__spreadValues({ store }, props));\n return __spreadValues({ autoComplete: \"off\" }, props);\n }\n);\nvar Combobox = forwardRef(function Combobox2(props) {\n const htmlProps = useCombobox(props);\n return createElement(TagName, htmlProps);\n});\nexport {\n Combobox,\n useCombobox\n};\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"admin\": 0,\n\t\"./style-admin\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkformello\"] = self[\"webpackChunkformello\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"./style-admin\"], () => (__webpack_require__(\"./src/admin/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["useMemo","useDispatch","useSelect","decodeEntities","store","coreStore","getLastEntityDeleteError","__","sprintf","_n","__experimentalVStack","VStack","__experimentalHStack","HStack","__experimentalText","Text","Button","noticesStore","external","trash","backup","edit","addQueryArgs","jsx","_jsx","jsxs","_jsxs","getItemTitle","item","title","rendered","trashPostAction","id","label","supportsBulk","icon","isEligible","status","hideModalHeader","RenderModal","items","posts","closeModal","createSuccessNotice","createErrorNotice","deleteEntityRecord","spacing","children","length","justify","variant","onClick","Promise","all","map","post","type","throwOnError","error","errorMessage","message","code","usePermanentlyDeletePostAction","callback","onActionPerformed","promiseResult","allSettled","force","every","successMessage","reason","errorMessages","Set","failedPromises","filter","failedPromise","add","size","join","viewPostAction","isPrimary","document","location","href","link","editPostAction","action","postRevisionsAction","_post$_links$predeces","_post$_links$version","lastRevisionId","_links","revisionsCount","count","revision","deleteItem","isDestructive","form","handleDelete","success","lastError","isDeleting","select","isDeletingEntityRecord","attributes","url","isBusy","disabled","useRestorePostAction","editEntityRecord","saveEditedEntityRecord","trashSubmissionAction","isBulk","submissions","Card","CardHeader","CardBody","ExternalLink","PromoSettings","Help","className","Spinner","LoadingSpinner","text","ReactComponent","Logo","Header","expanded","__experimentalConfirmDialog","ConfirmDialog","useState","Fragment","UpdateSettings","props","req","withConfirm","confirmMessage","showConfirmDialog","setShowConfirmDialog","loading","setLoading","createNotice","runAction","then","data","response","catch","explicitDismiss","finally","isOpen","onConfirm","onCancel","createContext","useEntityProp","SettingsContext","SettingsContextProvider","settings","isSaving","hasEdits","isSavingEntityRecord","hasEditsForEntityRecord","undefined","saveSettings","updateSetting","key","val","formello","Provider","value","hasUpdates","createRoot","useEffect","dispatch","SnackbarList","Forms","Submissions","Submission","Settings","Tools","Addons","getQueryArg","RouterProvider","useLocation","useHistory","addEntities","kind","name","baseURL","supportsPagination","Router","history","params","menuRoot","querySelector","reset","page","window","child","querySelectorAll","target","classList","parentElement","remove","handleChange","e","preventDefault","push","addEventListener","removeEventListener","createElement","section","submission_id","form_id","App","Notifications","notices","getNotices","removeNotice","snackbarNotices","onRemove","domNode","getElementById","root","render","CardMedia","CardFooter","ToggleControl","Modal","useContext","useEntityRecord","Addon","addon","setOpen","saveEntityRecord","popper","formelloPro","installPopper","record","save","slug","isInstalling","toggleAddon","enabled_addons","enabledAddons","as","src","require","alt","excerpt","isResolving","editedRecord","checked","onChange","__nextHasNoMarginBottom","onRequestClose","__experimentalHideHeader","iconPosition","TabPanel","__experimentalUseNavigator","useNavigator","__experimentalGrid","Grid","Notice","useEntityRecords","addonsTabs","setFilter","initialTab","tab","records","addons","hasResolved","per_page","filterAddon","element","category","isDismissible","actions","reload","tabs","onSelect","tabName","initialTabName","columns","TextControl","RadioControl","Captcha","reCaptcha","hCaptcha","setCaptcha","newSettings","Object","assign","selected","version","options","site_key","secret_key","Number","threshold","step","min","max","__experimentalInputControl","InputControl","RawHTML","useRef","apiFetch","dateI18n","General","_settings$license$lic","licenseKey","license","license_key","setMessage","updateLicense","endpoint","path","method","current","result","autoComplete","suffix","expires_at","withFilters","createInterpolateElement","integrations","icons","Integrations","noticeString","a","IntegrationsTab","LoggingTab","log","log_file","Messages","group","field","messages","formMessages","keys","missingValue","patternMismatch","outOfRange","wrongLength","i","applyFilters","Logging","changeTab","component","SettingsTab","templateColumns","gap","FieldsData","JSON","stringify","replaceAll","toUpperCase","SubmissionData","submission","parseInt","details","is_new","fields","getSettings","formats","formUrl","raw","datetime","submitted_at","referer_url","ip_address","user_agent","getDate","commentContent","DataViews","filterSortAndPaginate","STATUSES","DEFAULT_STATUSES","defaultLayouts","table","layout","primaryField","combinedFields","direction","view","setView","filters","perPage","sort","search","queryArgs","forEach","operator","author","author_exclude","_embed","order","orderby","forms","isLoadingForms","totalItems","totalPages","paginationInfo","authors","isLoadingAuthors","header","getValue","stopPropagation","submissions_count","news","enableGlobalSearch","enableHiding","total","_embedded","elements","filterBy","operators","formattedDate","datetimeAbbreviated","date","enableSorting","permanentlyDeletePostAction","restorePostAction","isLoading","onChangeView","Icon","useCallback","heading","seen","starFilled","EMPTY_ARRAY","styles","maxWidth","width","hiddenFields","isLoadingSubmissions","getColumns","_fields","fill","starred","cols","_columns","accessor","numberOfLines","truncate","concat","downloadBlob","ExportForms","currentDate","Date","exportForms","fileContent","filename","FormFileUpload","ImportForms","files","setFiles","FormData","append","body","accept","event","ResetSettings","resetSettings","Exporter","Importer","toolsTabs","Tab","CardDivider","DefaultCPTView","defaultUrl","post_type","createBrowserHistory","getQueryArgs","removeQueryArgs","originalHistoryPush","originalHistoryReplace","replace","state","currentArgs","currentUrlWithoutArgs","newUrl","call","RoutesContext","HistoryContext","getLocationWithParams","searchParams","URLSearchParams","fromEntries","entries","setLocation","listen","updatedLocation","Promo","MailPoet","Mailchimp","Moosend","ConvertKit","GetResponse","Brevo","MailerLite","Email","WebHook","FrontendPosting","login","Login","commentAuthorAvatar","Registration","async","to","from","cc","bcc","replyTo","subject","advanced","apiUrl","additionalHeaders","headers","postarr","post_title","post_content","post_excerpt","tax_input","meta_input"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"admin.js","mappings":"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AAwB,sDAAI;AAC5B;AACA,6BAA6B,sDAAI;AACjC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH,mDAAmD,uEAAM,GAAG,uEAAM;AAClE,sBAAsB,uDAAK,CAAC,uDAAS;AACrC,oDAAoD,sDAAI;AACxD;AACA,KAAK,gBAAgB,sDAAI;AACzB;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,iEAAe,oBAAoB,EAAC;AACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7DA;AACA;AACA;AACgG;AAC9C;AACyB;AAC7B;AACA;;AAE9C;AACA;AACA;AACoD;AACQ;AACZ;AACE;AAC3C;AACP,SAAS,2DAAO;AAChB;AACA;AACA,KAAK;AACL,GAAG;AACH;AACO;AACP,SAAS,2DAAO;AAChB;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,0BAA0B,2DAAO;AACjC;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,sBAAsB,sDAAI,CAAC,kEAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL,mCAAmC,mDAAE,mBAAmB,mDAAE;AAC1D,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sBAAsB,sDAAI,CAAC,yDAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mBAAmB,4DAAW;AAC9B,gCAAgC,2DAAO;AACvC;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,wBAAwB,sDAAI,CAAC,oEAAe;AAC5C;AACA;AACA;AACA,KAAK;AACL;AACA,sBAAsB,sDAAI;AAC1B;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA,6CAA6C,wDAAO;AACpD,EAAE,mDAAE,yFAAyF,wDAAO;AACpG,EAAE,mDAAE;AACJ,sBAAsB,uDAAK,CAAC,uEAAM;AAClC;AACA;AACA;AACA,4BAA4B,sDAAI;AAChC;AACA;AACA;AACA;AACA;AACA,KAAK,gBAAgB,sDAAI;AACzB;AACA;AACA,KAAK,gBAAgB,uDAAK,CAAC,uEAAM;AACjC;AACA;AACA;AACA;AACA,4BAA4B,sDAAI;AAChC;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,4CAA4C,sDAAI,CAAC,yDAAM;AAC9D,cAAc,wDAAU;AACxB;AACA;AACA;AACA,eAAe,mDAAE;AACjB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kDAAkD,4DAAQ;AAC1D,wBAAwB,0DAAM;AAC9B,sBAAsB,2DAAO;AAC7B,0BAA0B,2DAAO;AACjC;AACA;AACA,KAAK;AACL,GAAG;AACH,wBAAwB,2DAAO;AAC/B;AACA,GAAG;AACH,wBAAwB,2DAAO;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,sBAAsB,sDAAI;AAC1B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;AC3MA;AACA;AACA;AACmD;;AAEnD;AACA;AACA;;AAE+C;AAC/C,yBAAyB,iEAAa;AACtC;AACA,UAAU,oDAAY;AACtB,GAAG;AACH,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,6BAA6B;AAC7B,2BAA2B;AAC3B;AACA;AACA;AACA,CAAC;AACD,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;;;;;;;;;;;AC7BA;AACA;AACA;;AAEA;AACA;AACA;AACqF;AAChD;AACW;;AAEhD;AACA;AACA;AAC2C;AACK;AAChD;AACA;AACA,EAAE,EAAE,oDAAM,CAAC,8DAAqB;AACzB;AACP;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sBAAsB,sDAAI;AAC1B;AACA;AACA,0BAA0B,sDAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,SAAS;AACT,+BAA+B,sDAAI;AACnC;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,sBAAsB,sDAAI;AAC1B,0BAA0B,sDAAI,CAAC,yDAAM;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mDAAE;AAClB,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,iEAAe,8DAAU,WAAW,EAAC;AACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/EA;AACA;AACA;AACwB;AACxB;AACA;AACA;AACyJ;AAC3G;AACwB;AACxB;AAC9C;AACA;;AAEA;AACA;AACA;AAC2C;AACwG;AACnG;AACE;AAClD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,sDAAI;AAC3B;AACA,KAAK;AACL,wBAAwB,sDAAI;AAC5B;AACA,KAAK;AACL;AACA,iCAAiC,uDAAe;AAChD,WAAW,4EAAwB,CAAC,wDAAO;AAC3C,IAAI,mDAAE;AACN;AACA,iCAAiC,wDAAgB;AACjD,WAAW,4EAAwB,CAAC,wDAAO;AAC3C,IAAI,mDAAE;AACN;AACA,iCAAiC,uDAAe;AAChD,WAAW,4EAAwB,CAAC,wDAAO;AAC3C,IAAI,mDAAE;AACN;AACA,iCAAiC,2DAAmB;AACpD,WAAW,4EAAwB,CAAC,wDAAO;AAC3C,IAAI,mDAAE;AACN;AACA,iCAAiC,mDAAW;AAC5C,WAAW,4EAAwB,CAAC,wDAAO;AAC3C,IAAI,mDAAE;AACN;AACA,iCAAiC,uDAAe;AAChD,WAAW,4EAAwB,CAAC,wDAAO;AAC3C,IAAI,mDAAE;AACN;AACA,SAAS,wDAAO;AAChB,EAAE,mDAAE;AACJ;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,iDAAS;AACpB,GAAG;AACH;AACA;AACA,oDAAoD,uDAAK,CAAC,uEAAM;AAChE;AACA;AACA;AACA,4BAA4B,sDAAI,CAAC,2DAAQ;AACzC;AACA;AACA,KAAK,gBAAgB,sDAAI,CAAC,gEAAa;AACvC,aAAa,mDAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACe;AACf;AACA;AACA;AACA,CAAC;AACD,oBAAoB,0DAAM;AAC1B;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,sBAAsB,sDAAI,CAAC,2DAAQ;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK,kBAAkB,uDAAK;AAC5B;AACA,8BAA8B,sDAAI,CAAC,0DAAO;AAC1C,cAAc,wDAAO;AACrB,QAAQ,mDAAE;AACV;AACA,+BAA+B,sDAAI;AACnC,qBAAqB,gDAAI;AACzB;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,iCAAiC,sDAAI;AACrC;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO,oCAAoC,sDAAI,CAAC,0DAAO;AACvD,0BAA0B,mDAAE,YAAY,mDAAE;AAC1C;AACA,+BAA+B,sDAAI;AACnC,qBAAqB,gDAAI;AACzB;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,WAAW;AACX,iCAAiC,sDAAI,CAAC,uDAAI;AAC1C,kBAAkB,wDAAU;AAC5B,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,0BAA0B,uDAAK,CAAC,uEAAM;AACtC;AACA;AACA,gCAAgC,sDAAI;AACpC;AACA,SAAS,gBAAgB,sDAAI,CAAC,sDAAY;AAC1C;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1NA;AACA;AACA;AACoF;AACL;AACrC;AACL;;AAErC;AACA;AACA;AAC6C;AAC8B;AAChC;AACS;AACJ;AAC8B;AAC9B;AACE;AAC3C;AACP,SAAS,2DAAO;AAChB;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,mDAAW,EAAE,uDAAe;AAC3E;AACA,kFAAkF,qDAAa;AAC/F;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,2CAA2C,+DAAW;AACtD;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAI,CAAC,8DAAqB;AAClD;AACA;AACA;AACA;AACA,4BAA4B,sDAAI,CAAC,yDAAM;AACvC;AACA;AACA,cAAc,wDAAM;AACpB,eAAe,mDAAE;AACjB;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,sBAAsB,uDAAK;AAC3B;AACA,4BAA4B,sDAAI,CAAC,yDAAM;AACvC;AACA;AACA,YAAY,wDAAM;AAClB,aAAa,mDAAE;AACf;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK,+DAA+D,sDAAI;AACxE;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,uBAAuB,0DAAM;AAC7B;AACA,iCAAiC,sDAAI,CAAC,mDAAS;AAC/C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAI,CAAC,uDAAa;AAC1C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,sCAAsC,sDAAI,CAAC,uDAAY;AACvD;AACA;AACA;AACA,GAAG;AACH,sBAAsB,sDAAI,CAAC,uEAAM;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,iEAAe,wDAAI,SAAS,EAAC;AAC7B;;;;;;;;;;;;;;;;;;;;;AC3JA;AACA;AACA;AAC+C;AACV;;AAErC;AACA;AACA;AACgD;AACjC;AACf;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,sBAAsB,sDAAI,CAAC,yDAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,cAAc,mDAAE;AAChB,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AAC0C;AACC;;AAE3C;AACA;AACA;AACmD;AACL;AAC2B;AACD;AACvB;AACG;;AAEpD;AACA;AACA;AACgD;AACE;AAClD,gCAAgC,sDAAI,CAAC,sDAAG;AACxC;AACA;AACA,yBAAyB,sDAAI,CAAC,yDAAM;AACpC;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA,SAAS,qDAAa;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO,GAAG,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,iEAAa;AAC9B,oDAAoD,4DAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAI,CAAC,4DAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAO;AACzB,IAAI,mDAAE;AACN;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,yBAAyB,sDAAI,CAAC,4DAAS,cAAc;AACrD,0DAA0D,uDAAK,CAAC,4DAAS;AACzE,2BAA2B,sDAAI,CAAC,4DAAS;AACzC;AACA,6BAA6B,sDAAI;AACjC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP,8BAA8B,uDAAK;AACnC;AACA,4FAA4F,sDAAI,CAAC,uDAAI;AACrG;AACA,SAAS,mFAAmF,sDAAI,CAAC,uDAAI;AACrG,gBAAgB,wDAAK;AACrB,SAAS;AACT,OAAO,gBAAgB,sDAAI;AAC3B;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,wCAAwC,4DAAQ;AAChD,8BAA8B,oEAAgB;AAC9C;AACA;AACA,kBAAkB,2DAAO;AACzB;AACA;AACA,GAAG;AACH,sBAAsB,uDAAK,CAAC,4DAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,4BAA4B,uDAAK;AACjC;AACA,8BAA8B,sDAAI,CAAC,yDAAqB;AACxD,6BAA6B,sDAAI,CAAC,iEAAc;AAChD,oBAAoB,mDAAE;AACtB,SAAS;AACT,kBAAkB,mDAAE;AACpB,OAAO,gBAAgB,sDAAI,CAAC,qDAAgB;AAC5C;AACA,qBAAqB,mDAAE;AACvB;AACA,OAAO,gBAAgB,sDAAI;AAC3B;AACA,+BAA+B,sDAAI,CAAC,uDAAI;AACxC,gBAAgB,yDAAM;AACtB,SAAS;AACT,OAAO;AACP,KAAK,gBAAgB,uDAAK,CAAC,yDAAoB;AAC/C;AACA;AACA;AACA,4BAA4B,uDAAK,CAAC,yDAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uDAAK;AACvC;AACA,gGAAgG,sDAAI,CAAC,uDAAI;AACzG;AACA,aAAa,mFAAmF,sDAAI,CAAC,uDAAI;AACzG,oBAAoB,wDAAK;AACzB,aAAa;AACb,WAAW,gBAAgB,uDAAK;AAChC,oCAAoC,sDAAI,CAAC,8DAAyB;AAClE;AACA;AACA,aAAa,yCAAyC,sDAAI;AAC1D;AACA;AACA,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO,mCAAmC,sDAAI;AAC9C,kBAAkB,mDAAE;AACpB,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACe;AACf;AACA,sBAAsB,sDAAI;AAC1B;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACvOA;AACA;AACA;AACuE;AACvB;;AAEhD;AACA;AACA;AACoD;AACM;AACuC;AACrC;AACZ;AACE;AAClD;AACe;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,yBAAyB,0FAAiC,oBAAoB,oDAAY,EAAE,mDAAW;AACvG;AACA;AACA;AACA,sCAAsC,uDAAK,CAAC,uEAAM;AAClD;AACA;AACA;AACA,8CAA8C,sDAAI,CAAC,sEAAiB,IAAI,gBAAgB,sDAAI,CAAC,6DAAmB,IAAI;AACpH,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;;AAEA;AACA;AACA;AAC4H;AACvF;AACkB;AACP;AACF;;AAE9C;AACA;AACA;AAC2C;AACK;AACU;AACR;AAClD;AACA;AACA;AACA,EAAE,EAAE,oDAAM,CAAC,8DAAqB;AAChC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sBAAsB,sDAAI,CAAC,yDAAM;AACjC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sBAAsB,sDAAI;AAC1B;AACA;AACA,2BAA2B,sDAAI;AAC/B;AACA,KAAK;AACL,GAAG;AACH;AACO;AACP;AACA;AACA;AACA,CAAC;AACD;AACA,sBAAsB,sDAAI,CAAC,wDAAK;AAChC;AACA;AACA,wFAAwF;AACxF;AACA;AACA,wEAAwE,qBAAqB;AAC7F,2BAA2B,sDAAI;AAC/B;AACA;AACA,KAAK;AACL,GAAG;AACH;AACO;AACP;AACA;AACA;AACA;AACA,CAAC;AACD,wCAAwC,4DAAQ;AAChD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,sBAAsB,uDAAK,CAAC,uDAAS;AACrC,4BAA4B,sDAAI;AAChC;AACA,KAAK,+BAA+B,sDAAI;AACxC;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACO;AACP;AACA;AACA,CAAC;AACD,mBAAmB,4DAAW;AAC9B,sBAAsB,sDAAI;AAC1B;AACA;AACA,4BAA4B,sDAAI;AAChC;AACA;AACA;AACA,SAAS;AACT;AACA,0BAA0B,sDAAI;AAC9B;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACe;AACf;AACA;AACA;AACA,CAAC;AACD,mBAAmB,4DAAW;AAC9B;AACA;AACA;AACA,IAAI,EAAE,2DAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,sDAAI;AAC5B;AACA;AACA,KAAK;AACL;AACA,sBAAsB,uDAAK,CAAC,uEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,4BAA4B,sDAAI;AAChC;AACA;AACA;AACA,SAAS;AACT;AACA,0BAA0B,sDAAI;AAC9B;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,OAAO;AACP,KAAK,gBAAgB,sDAAI;AACzB;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD,sBAAsB,sDAAI;AAC1B,0BAA0B,sDAAI,CAAC,yDAAM;AACrC;AACA,YAAY,wDAAY;AACxB,aAAa,mDAAE;AACf;AACA;AACA;AACA,KAAK;AACL;AACA,2BAA2B,sDAAI;AAC/B;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;ACtMA;AACA;AACA;;AAEA;AACA;AACA;AACgD;;AAEhD;AACA;AACA;AACoD;AACG;AACP;AACjC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,wBAAwB,4DAAY;AACpC,sBAAsB,sDAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC5CA;AACA;AACA;AAC8F;AACd;AACvB;AACP;;AAElD;AACA;AACA;AACoD;AACJ;AACE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wDAAO;AAClD;AACA,MAAM,mDAAE;AACR;AACA,GAAG;AACH,0DAA0D,uDAAK,CAAC,uEAAM;AACtE;AACA;AACA;AACA;AACA,4BAA4B,sDAAI,CAAC,uEAAM;AACvC;AACA;AACA;AACA;AACA,gBAAgB,4EAAwB,CAAC,wDAAO;AAChD;AACA,MAAM,mDAAE;AACR,0BAA0B,sDAAI;AAC9B;AACA,SAAS;AACT,kCAAkC,sDAAI,CAAC,gEAAa;AACpD,wBAAwB,mDAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK,gBAAgB,uDAAK,CAAC,uEAAM;AACjC;AACA;AACA,8BAA8B,sDAAI,CAAC,yDAAM;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,mDAAE;AACjB,cAAc,sDAAK,KAAK,wDAAI,GAAG,wDAAQ;AACvC;AACA;AACA;AACA,OAAO,gBAAgB,sDAAI,CAAC,yDAAM;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,mDAAE;AACjB,cAAc,sDAAK,KAAK,wDAAQ,GAAG,wDAAI;AACvC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,iEAAe,wDAAI,qBAAqB,EAAC;AACzC;;;;;;;;;;;;;;;;;;;;;;;;;;ACrGA;AACA;AACA;AACqC;AACoC;AACnB;AACC;;AAEvD;AACA;AACA;AACoD;AACJ;AAChD,wBAAwB,wDAAI;AAC5B;AACA,CAAC;AACD;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,+CAA+C,qEAAiB;AAChE,EAAE,6DAAS;AACX;AACA;AACA,GAAG;AACH,0BAA0B,0DAAM;AAChC,kBAAkB,0DAAM;AACxB,EAAE,6DAAS;AACX;AACA;AACA,GAAG;AACH,EAAE,6DAAS;AACX;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH,+BAA+B,mDAAE;AACjC,sBAAsB,sDAAI,CAAC,gEAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD,iEAAe,eAAe,EAAC;AAC/B;;;;;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AAC8C;AACU;;AAExD;AACA;AACA;AACgD;AACjC;AACf;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,qBAAqB,wDAAO;AAC5B,cAAc,mDAAE,wBAAwB,mDAAE;AAC1C;AACA,KAAK;AACL,IAAI;AACJ,+BAA+B,mDAAE,wBAAwB,mDAAE;AAC3D;AACA,sBAAsB,sDAAI,CAAC,kEAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5CA;AACA;AACA;;AAEA;AACA;AACA;AAC+lB;AAC7iB;AACa;AACc;AACpC;AACU;;AAEnD;AACA;AACA;AACuG;AACc;AACjE;AACT;AAC6B;AACxB;AACU;AACR;AAClD;AACA;AACA,EAAE,EAAE,oDAAM,CAAC,8DAAqB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC;AACA;AACA;AACA;AACA,qBAAqB,4DAAY;AACjC,sBAAsB,sDAAI;AAC1B,0BAA0B,sDAAI,CAAC,yDAAM;AACrC;AACA;AACA,aAAa,mDAAE;AACf,KAAK;AACL;AACA,qBAAqB,4DAAY;AACjC;AACA;AACA;AACA,0BAA0B,sDAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,UAAU,KAAgC,GAAG,yDAAO,uBAAuB,CAAM;AACjF,SAAS;AACT,+BAA+B,sDAAI;AACnC;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,uBAAuB,2DAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,sBAAsB,sDAAI,CAAC,gEAAa;AACxC;AACA;AACA,WAAW,mDAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAI,CAAC,mFAAkB;AAC7C;AACA;AACA;AACA;AACA,WAAW,mDAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,MAAM,KAAgC,GAAG,yDAAO,wBAAwB,CAAM;AAC9E,KAAK;AACL,cAAc,0DAAkB;AAChC,0BAA0B,sDAAI,CAAC,6FAA4B;AAC3D;AACA,cAAc,iDAAS;AACvB,eAAe,kDAAU;AACzB,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,sBAAsB,sDAAI,CAAC,mFAAkB;AAC7C;AACA;AACA;AACA,WAAW,mDAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,0BAA0B,sDAAI,CAAC,yFAAwB;AACvD;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD,0BAA0B,sEAAkB;AAC5C,sBAAsB,sDAAI,CAAC,qEAAI;AAC/B,2BAA2B,uDAAK,CAAC,uEAAM;AACvC;AACA,kFAAkF,GAAG;AACrF,8BAA8B,sDAAI;AAClC;AACA,OAAO,gBAAgB,uDAAK,CAAC,uEAAM;AACnC;AACA;AACA;AACA,iCAAiC,oDAAY,8BAA8B,uDAAK,CAAC,uDAAS;AAC1F,kCAAkC,sDAAI,CAAC,yDAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,kBAAkB,yDAAS;AAC3B,mBAAmB,wDAAO;AAC1B,YAAY,mDAAE;AACd,WAAW,gBAAgB,sDAAI,CAAC,yDAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,kBAAkB,yDAAW;AAC7B,mBAAmB,wDAAO;AAC1B,YAAY,mDAAE;AACd,WAAW;AACX,SAAS,gBAAgB,sDAAI,CAAC,yDAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,wFAAwF,IAAI;AAC5F;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,4BAA4B,yDAAI,GAAG,yDAAM;AACzC,6BAA6B,wDAAO;AACpC,UAAU,mDAAE,sBAAsB,wDAAO;AACzC,UAAU,mDAAE;AACZ,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,0BAA0B,2DAAO,OAAO,sEAAkB;AAC1D,yBAAyB,2DAAO,OAAO,qEAAiB;AACxD,6BAA6B,2DAAO,OAAO,yEAAqB;AAChE;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,oDAAY;AAChC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,sBAAsB,uDAAK,CAAC,uEAAM;AAClC;AACA;AACA,uDAAuD,sDAAI,CAAC,0EAAS;AACrE;AACA;AACA,wDAAwD,sDAAI;AAC5D;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,0CAA0C,sDAAI,CAAC,uDAAS;AAC7D,6BAA6B,uDAAK,CAAC,uEAAM;AACzC;AACA,gCAAgC,sDAAI,CAAC,8DAAW;AAChD;AACA;AACA,WAAW;AACX,oBAAoB,mDAAE;AACtB,SAAS,gBAAgB,sDAAI,CAAC,0EAAS;AACvC;AACA;AACA,2DAA2D,sDAAI;AAC/D;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,sBAAsB,uDAAK,CAAC,qEAAI;AAChC;AACA;AACA;AACA,4BAA4B,uDAAK;AACjC;AACA,8BAA8B,sDAAI,CAAC,wEAAO;AAC1C;AACA;AACA;AACA,OAAO,+BAA+B,sDAAI,CAAC,qEAAI;AAC/C;AACA;AACA;AACA,OAAO;AACP,KAAK,gBAAgB,sDAAI,CAAC,qEAAI;AAC9B;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,IAAI,EAAE,8DAAU,CAAC,0DAAgB;AACjC,oBAAoB,iEAAa;AACjC,sBAAsB,sDAAI,CAAC,2DAAQ;AACnC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,0BAA0B,sDAAI,CAAC,yDAAM;AACrC;AACA,cAAc,yDAAG;AACjB,eAAe,mDAAE;AACjB;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,sCAAsC,sDAAI,CAAC,uFAAsB;AACjE;AACA,6BAA6B,uDAAK,CAAC,uEAAM;AACzC;AACA;AACA,gCAAgC,uDAAK;AACrC,iBAAiB,mDAAE;AACnB,kCAAkC,uDAAK,CAAC,uEAAM;AAC9C;AACA;AACA,oCAAoC,sDAAI,qBAAqB,gBAAgB,sDAAI,yBAAyB;AAC1G,WAAW,iBAAiB,mDAAW,iBAAiB,sDAAI,CAAC,+EAAa;AAC1E;AACA;AACA,WAAW,gBAAgB,sDAAI,wBAAwB;AACvD,SAAS,gBAAgB,sDAAI;AAC7B,iBAAiB,mDAAE;AACnB,iCAAiC,sDAAI,iBAAiB;AACtD,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA,CAAC;AACD,sBAAsB,uDAAK,CAAC,uDAAS;AACrC,4BAA4B,sDAAI;AAChC;AACA,KAAK,gBAAgB,sDAAI;AACzB;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,4BAA4B,wDAAI;AAChC,iEAAe,mBAAmB,EAAC;AACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5cA;AACA;AACA;;AAEA;AACA;AACA;AACuE;AAChB;;AAEvD;AACA;AACA;AACoD;AACmD;AACrD;AACA;AACA;AACS;AACF;AACT;AACE;AAClD;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,8CAA8C,4DAAQ;AACtD,gCAAgC,4DAAQ;AACxC;AACA;AACA,0CAA0C,4DAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2DAAO,OAAO,kEAAe;AAC/C,qBAAqB,2DAAO;AAC5B;AACA,GAAG;AACH,kBAAkB,8DAAU;AAC5B,gDAAgD,4DAAQ;AACxD,sBAAsB,sDAAI,CAAC,0DAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,2BAA2B,uDAAK;AAChC;AACA,8BAA8B,uDAAK,CAAC,uEAAM;AAC1C;AACA;AACA;AACA;AACA,gCAAgC,uDAAK,CAAC,uEAAM;AAC5C;AACA;AACA;AACA,4CAA4C,sDAAI,CAAC,yDAAe;AAChE;AACA,WAAW,gBAAgB,sDAAI,CAAC,sEAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS,gBAAgB,uDAAK,CAAC,uEAAM;AACrC;AACA;AACA;AACA;AACA,WAAW;AACX,kCAAkC,sDAAI,CAAC,8DAAmB;AAC1D;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO,mCAAmC,sDAAI,CAAC,0DAAgB,IAAI,gBAAgB,sDAAI,CAAC,yDAAe,IAAI,gBAAgB,sDAAI,CAAC,yDAAe,IAAI;AACnJ,KAAK;AACL,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChHA;AACA;AACA;AACqC;AACiB;;AAEtD;AACA;AACA;;AAEA;AACO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACP;AACA;AACA,WAAW,mDAAE;AACb,GAAG;AACH;AACA;AACA,WAAW,mDAAE;AACb,GAAG;AACH;AACA;AACA,WAAW,mDAAE;AACb,GAAG;AACH;AACA;AACA,WAAW,mDAAE;AACb,GAAG;AACH;AACA;AACA,WAAW,mDAAE;AACb,GAAG;AACH;AACA;AACA,WAAW,mDAAE;AACb;AACA;AACO;AACA;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP,OAAO,mDAAE;AACT,QAAQ,mDAAE;AACV;AACO;AACP,OAAO,wDAAO;AACd,QAAQ,wDAAS;AACjB;;AAEA;AACO;AACA;AACA;AACP;;;;;;;;;;;;;;;;;;;;;AClEA;AACA;AACA;AACgF;AAC/B;;AAEjD;AACA;AACA;AACgD;AACE;AACnC;AACf;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH,0BAA0B,+DAAW;AACrC;AACA,GAAG;AACH,sBAAsB,uDAAK;AAC3B;AACA,oDAAoD,sDAAI,CAAC,8DAAW;AACpE;AACA;AACA,KAAK,uCAAuC,sDAAI,CAAC,iEAAc;AAC/D;AACA;AACA,KAAK,gBAAgB,sDAAI,CAAC,6DAAU;AACpC;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;AC1CA;AACA;AACA;;AAEA;AACA;AACA;;AAEkC;AACF;AACJ;AACE;AACJ;AAC1B;AACA,UAAU;AACV,SAAS;AACT,OAAO;AACP,QAAQ;AACR,MAAM;AACN;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACzCA;AACA;AACA;AACqF;AACpC;;AAEjD;AACA;AACA;AACgD;AACjC;AACf;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH,0BAA0B,+DAAW;AACrC;AACA,GAAG;AACH,sBAAsB,sDAAI,CAAC,8EAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACqD;AACJ;;AAEjD;AACA;AACA;AACgD;AACjC;AACf;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH,0BAA0B,+DAAW;AACrC;AACA,GAAG;AACH;AACA,wBAAwB,sDAAI,CAAC,+DAAY;AACzC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACsD;AACL;AACZ;;AAErC;AACA;AACA;AACgD;AACjC;AACf;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH,0BAA0B,+DAAW;AACrC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mDAAE;AACb;AACA,GAAG;AACH,sBAAsB,sDAAI,CAAC,gEAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;AClDA;AACA;AACA;AACoD;AACH;;AAEjD;AACA;AACA;AACgD;AACjC;AACf;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH,0BAA0B,+DAAW;AACrC;AACA,GAAG;AACH,sBAAsB,sDAAI,CAAC,8DAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACqD;AAChB;AACiB;AACE;AACR;AAChD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oEAAgB;AAClC,iBAAiB,oEAAgB;AACjC,mBAAmB,oEAAgB;AACnC,kBAAkB,oEAAgB;AAClC,mBAAmB,oEAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA,CAAC;AACD;AACA,EAAE,6DAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,gBAAgB,2DAAO;AACvB;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,sBAAsB,sDAAI,CAAC,+DAAY;AACvC;AACA;AACA;AACA,WAAW,mDAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AC1GA;AACA;AACA;AACwB;;AAExB;AACA;AACA;AAC4J;AACvH;;AAErC;AACA;AACA;AACkE;AACkB;AACA;AACpC;AACE;AACQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,wBAAwB,6FAAyB;AACjD;AACA;AACA,+DAA+D,sDAAI;AACnE;AACA,GAAG;AACH,mEAAmE,sDAAI;AACvE;AACA,GAAG;AACH,sBAAsB,uDAAK,CAAC,uEAAM;AAClC;AACA,eAAe,gDAAI;AACnB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,4BAA4B,sDAAI;AAChC;AACA;AACA,KAAK,gBAAgB,sDAAI,CAAC,gFAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,gBAAgB,uDAAK,CAAC,uEAAM;AACjC;AACA;AACA,8BAA8B,sDAAI,CAAC,uEAAM;AACzC;AACA;AACA,OAAO,gBAAgB,sDAAI,CAAC,0EAAW;AACvC;AACA;AACA;AACA,OAAO;AACP,KAAK,yCAAyC,sDAAI,CAAC,uEAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAI,CAAC,2DAAQ;AACzC;AACA,iCAAiC,sDAAI;AACrC;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK,2CAA2C,sDAAI,CAAC,uEAAM;AAC3D;AACA;AACA;AACA,4BAA4B,sDAAI,CAAC,uDAAI;AACrC,qBAAqB,gDAAI;AACzB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,iCAAiC,uDAAK,CAAC,uDAAS;AAChD,oCAAoC,sDAAI,CAAC,2DAAQ;AACjD;AACA;AACA,aAAa,gBAAgB,sDAAI,CAAC,2DAAQ;AAC1C;AACA;AACA;AACA,eAAe;AACf,qCAAqC,sDAAI;AACzC;AACA,eAAe;AACf,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,mCAAmC,QAAQ;AAC3C,IAAI;AACJ,sBAAsB,uDAAK,CAAC,uDAAS;AACrC,uCAAuC,sDAAI,CAAC,qEAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK,4BAA4B,sDAAI;AACrC,iBAAiB,gDAAI;AACrB;AACA;AACA,OAAO;AACP,6BAA6B,sDAAI;AACjC,2CAA2C,sDAAI,CAAC,0DAAO,IAAI,IAAI,mDAAE;AACjE,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9LA;AACA;AACA;AAC4C;AACqD;;AAEjG;AACA;AACA;AACgC;AACF;AACA;AACwC;AAC/D;AACP,QAAQ,oDAAY;AACpB,SAAS,mDAAE;AACX,aAAa,8CAAS;AACtB,QAAQ,wDAAU;AAClB,CAAC;AACD,QAAQ,mDAAW;AACnB,SAAS,mDAAE;AACX,aAAa,6CAAQ;AACrB,QAAQ,wDAAQ;AAChB,CAAC;AACD,QAAQ,mDAAW;AACnB,SAAS,mDAAE;AACX,aAAa,6CAAQ;AACrB,QAAQ,sDAAK,KAAK,wDAAoB,GAAG,wDAAiB;AAC1D,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAY;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAY;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACO;AACP;;AAEA;AACA,oBAAoB,mDAAW;AAC/B;AACA;AACA,oBAAoB,mDAAW;AAC/B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtFA;AACA;AACA;AACwB;;AAExB;AACA;AACA;AACgE;AACyH;AAClG;AAClD;AACW;AACF;;AAE9C;AACA;AACA;AAC2C;AACqD;AAChD;AACE;AAClD;AACA;AACA,EAAE,EAAE,oDAAM,CAAC,8DAAqB;AAChC;AACA,YAAY,SAAS;AACrB;AACA;AACA,YAAY,SAAS,kBAAkB,gBAAgB;AACvD;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mBAAmB,4DAAW;AAC9B,wCAAwC,4DAAQ;AAChD;AACA;AACA,uDAAuD,sDAAI;AAC3D;AACA,2BAA2B,sDAAI,CAAC,4DAAS;AACzC;AACA,2BAA2B,sDAAI,CAAC,yDAAM;AACtC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,4CAA4C,sDAAI,CAAC,2EAAW;AAC5D;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG,mCAAmC,sDAAI;AAC1C;AACA,2BAA2B,sDAAI,CAAC,4DAAS;AACzC;AACA,2BAA2B,sDAAI,CAAC,yDAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB,0DAAM;AACxB,qBAAqB,SAAS;AAC9B,2BAA2B,SAAS;AACpC,oCAAoC,4DAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,6DAAS;AACX;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA,IAAI,EAAE,2DAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,+DAA+D,sDAAI;AACnE;AACA,GAAG,iBAAiB,sDAAI;AACxB;AACA,GAAG;AACH,mEAAmE,sDAAI;AACvE;AACA,GAAG;AACH,sBAAsB,sDAAI,CAAC,4DAAS;AACpC;AACA,yBAAyB,sDAAI,SAAS;AACtC;AACA,eAAe,gDAAI;AACnB;AACA;AACA,KAAK;AACL;AACA;AACA,2BAA2B,uDAAK,CAAC,uEAAM;AACvC;AACA;AACA;AACA,8BAA8B,sDAAI;AAClC;AACA,+BAA+B,sDAAI,CAAC,4DAAS;AAC7C,+BAA+B,sDAAI,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAK,CAAC,uEAAM;AAC7C;AACA;AACA;AACA,oCAAoC,sDAAI;AACxC;AACA;AACA,aAAa,gBAAgB,uDAAK,CAAC,uEAAM;AACzC;AACA;AACA,sCAAsC,sDAAI;AAC1C;AACA;AACA;AACA,eAAe,gBAAgB,sDAAI;AACnC;AACA;AACA,kEAAkE,uDAAK;AACvE;AACA,0CAA0C,sDAAI,CAAC,iEAAc;AAC7D;AACA;AACA;AACA,mBAAmB,gBAAgB,sDAAI;AACvC;AACA,2CAA2C,sDAAI;AAC/C;AACA,qBAAqB;AACrB,mBAAmB;AACnB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO,+CAA+C,uDAAK,CAAC,uEAAM;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,iDAAiD,sDAAI;AACrD;AACA;AACA;AACA,SAAS,gBAAgB,sDAAI;AAC7B;AACA,iCAAiC,sDAAI;AACrC,kCAAkC,sDAAI,CAAC,4DAAS;AAChD;AACA,mCAAmC,sDAAI,CAAC,yDAAM;AAC9C;AACA,sBAAsB,wDAAY;AAClC,uBAAuB,mDAAE;AACzB;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA,mCAAmC,sDAAI,CAAC,wFAAwB;AAChE;AACA;AACA,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,iBAAiB,iEAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+DAAW,YAAY,OAAO,GAAG,gBAAgB;AACzF,gCAAgC,+DAAW;AAC3C;AACA;AACA,GAAG;;AAEH;AACA,oDAAoD,4DAAQ;;AAE5D;AACA,EAAE,6DAAS;AACX;AACA;AACA;AACA,GAAG;AACH;AACA,kCAAkC,+DAAW;AAC7C;AACA,8BAA8B,+DAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,EAAE,6DAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,mCAAmC,+DAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wBAAwB,sDAAI;AAC5B,iBAAiB,gDAAI;AACrB;AACA;AACA,OAAO;AACP,yCAAyC,sDAAI;AAC7C,2CAA2C,sDAAI,CAAC,0DAAO,IAAI,IAAI,mDAAE;AACjE,OAAO;AACP,KAAK;AACL;AACA,sBAAsB,sDAAI,CAAC,4DAAS;AACpC;AACA,yBAAyB,sDAAI,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChVA;AACA;AACA;;AAEA;AACA;AACA;AACqC;AACoC;AACkB;AACvB;;AAEpE;AACA;AACA;AAC2C;AACK;AAC6B;AAC/B;AACE;AACE;AAClD;AACA;AACA,EAAE,EAAE,oDAAM,CAAC,8DAAqB;AAChC;AACA;AACA,CAAC;AACD,SAAS,wDAAQ,kEAAkE,uDAAK,CAAC,wDAAQ;AACjG,qCAAqC,sDAAI,6BAA6B;AACtE,GAAG;AACH;AACA,oBAAoB,8DAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,0BAA0B,0DAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yDAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,sBAAsB,sDAAI;AAC1B;AACA,0BAA0B,uDAAK,CAAC,yDAAM;AACtC;AACA;AACA;AACA;AACA,+DAA+D,sDAAI;AACnE;AACA,kBAAkB,kDAAU;AAC5B,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL,2BAA2B,uDAAK;AAChC,4CAA4C,sDAAI;AAChD,kBAAkB,0DAAkB;AACpC;AACA,2BAA2B,QAAQ,GAAG,UAAU;AAChD,8BAA8B,sDAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,mCAAmC,sDAAI;AACvC,wBAAwB,kDAAU;AAClC,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO,gCAAgC,sDAAI;AAC3C,+BAA+B,sDAAI;AACnC,+BAA+B,sDAAI,CAAC,uDAAI;AACxC,kBAAkB,wDAAM;AACxB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,WAAW;AACX,iCAAiC,sDAAI;AACrC,sBAAsB,mDAAE;AACxB,WAAW;AACX,SAAS;AACT,OAAO,gBAAgB,uDAAK;AAC5B,gCAAgC,sDAAI;AACpC,+BAA+B,sDAAI,CAAC,uDAAI;AACxC,kBAAkB,wDAAS;AAC3B,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,iCAAiC,sDAAI;AACrC,sBAAsB,mDAAE;AACxB,WAAW;AACX,SAAS,gBAAgB,sDAAI;AAC7B,+BAA+B,sDAAI,CAAC,uDAAI;AACxC,kBAAkB,yDAAU;AAC5B,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,iCAAiC,sDAAI;AACrC,sBAAsB,mDAAE;AACxB,WAAW;AACX,SAAS,sCAAsC,sDAAI;AACnD,+BAA+B,sDAAI,CAAC,uDAAI;AACxC,kBAAkB,yDAAM;AACxB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,iCAAiC,sDAAI;AACrC,sBAAsB,mDAAE;AACxB,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,CAAC;;AAED;AACA;AACA,iEAAe,gBAAgB,EAAC;AAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxLA;AACA;AACA;AACwB;;AAExB;AACA;AACA;AACqC;AAC2E;AACxC;;AAExE;AACA;AACA;AACoF;AAClB;AACrB;AACiG;AAC1F;AACN;AACE;AACE;AACQ;AAC1D;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,wBAAwB,sDAAI;AAC5B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB,sDAAI;AAC5B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,sBAAsB,sDAAI;AAC1B,eAAe,gDAAI;AACnB;AACA,KAAK;AACL,2BAA2B,sDAAI;AAC/B;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD,4DAA4D,sDAAI;AAChE;AACA;AACA,GAAG;AACH;AACA,wBAAwB,sDAAI,CAAC,uEAAM;AACnC;AACA;AACA,KAAK;AACL;AACA,sBAAsB,sDAAI,CAAC,uEAAM;AACjC;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,gCAAgC,6FAAyB;AACzD;AACA,oCAAoC,4DAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,0DAAM;AACjC,kBAAkB,0DAAkB;AACpC,sBAAsB,uDAAK;AAC3B,eAAe,gDAAI;AACnB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,8CAA8C,sDAAI;AAClD;AACA;AACA;AACA,OAAO;AACP,6BAA6B,sDAAI;AACjC;AACA,+BAA+B,sDAAI,CAAC,gFAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,0BAA0B,sDAAI;AAC9B;AACA;AACA;AACA;AACA,SAAS;AACT,+BAA+B,sDAAI;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sDAAI;AACR;AACA;AACA,6BAA6B,sDAAI,CAAC,0EAAW;AAC7C;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,yBAAyB,0DAAM;AAC/B,+BAA+B,0DAAM;AACrC,4DAA4D,4DAAQ;AACpE,yBAAyB,qGAAiC;AAC1D,EAAE,6DAAS;AACX;AACA;AACA;AACA;AACA,GAAG;AACH,wBAAwB,yDAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAkB;AACpC;AACA;AACA,sBAAsB,uDAAK,CAAC,uDAAS;AACrC,4BAA4B,uDAAK;AACjC;AACA;AACA;AACA,8BAA8B,sDAAI;AAClC,+BAA+B,uDAAK;AACpC;AACA,oDAAoD,sDAAI;AACxD;AACA;AACA;AACA,aAAa;AACb;AACA,mCAAmC,sDAAI,CAAC,qFAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,gCAAgC,sDAAI;AACpC;AACA;AACA;AACA;AACA,eAAe;AACf,yDAAyD,kDAAU;AACnE;AACA,qCAAqC,sDAAI,CAAC,4DAAgB;AAC1D;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,WAAW,qCAAqC,sDAAI;AACpD;AACA,mCAAmC,sDAAI;AACvC;AACA,wBAAwB,mDAAE;AAC1B,aAAa;AACb,WAAW;AACX,SAAS;AACT,OAAO,gBAAgB,sDAAI;AAC3B,oEAAoE,sDAAI;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK,gBAAgB,sDAAI;AACzB,iBAAiB,gDAAI;AACrB;AACA;AACA,OAAO;AACP;AACA,yCAAyC,sDAAI;AAC7C,2CAA2C,sDAAI,CAAC,0DAAO,IAAI,IAAI,mDAAE;AACjE,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,iEAAe,SAAS,EAAC;AACzB;;;;;;;;;;;;;;;AC3TA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe;AACf;AACA;AACA;AACA,CAAC,EAAC;AACF;;;;;;;;;;;;;;;;;;ACvBA;AACA;AACA;;AAE+C;AACN;AACQ;;AAEjD;AACA;AACA,WAAW,WAAW;AACtB;AACA;AACA;AACe;AACf;AACA,WAAW,gDAAO;AAClB;AACA;AACA,WAAW,6CAAI;AACf;AACA;AACA,WAAW,iDAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;;;AC3CA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe;AACf;AACA;AACA;AACA,CAAC,EAAC;AACF;;;;;;;;;;;;;;;AC5BA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAe;AACf;AACA;AACA;AACA,CAAC,EAAC;AACF;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AAC2F;AACpF;AACP;AACA;AACA,EAAE,EAAE,yGAAgD;AACpD;;;;;;;;;;;;;;;;;;;ACRA;AACA;AACA;AACmD;AACF;AACsB;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,gCAAgC,wDAAsB;AACtD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,iBAAiB,8DAAU;AAC3B;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,YAAY,0EAAoB;AAChC;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;AC7EA;AACA;AACA;AAC6G;AACtG;AACP;;AAEA;AACA;AACA,iBAAiB,uDAAe,EAAE,wDAAgB;AAClD;;AAEA;AACA,2CAA2C,qDAAa;;AAExD;AACA;AACA,yBAAyB,mDAAW,wBAAwB,uDAAe;AAC3E,8CAA8C,mDAAW,EAAE,uDAAe;AAC1E;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACtBA;AACA;AACA;AACkD;AACF;AAChD,+BAA+B,sDAAI,CAAC,sDAAG;AACvC;AACA;AACA,yBAAyB,sDAAI,CAAC,uDAAI;AAClC;AACA,GAAG;AACH,CAAC;AACD,iEAAe,SAAS,EAAC;AACzB;;;;;;;;;;;;;;;;;;;ACbA;AACA;AACA;AACkD;AACF;AAChD,+BAA+B,sDAAI,CAAC,sDAAG;AACvC;AACA;AACA,yBAAyB,sDAAI,CAAC,uDAAI;AAClC;AACA,GAAG;AACH,CAAC;AACD,iEAAe,SAAS,EAAC;AACzB;;;;;;;;;;;;;;;;;;;ACbA;AACA;AACA;AACkD;AACF;AAChD,gCAAgC,sDAAI,CAAC,sDAAG;AACxC;AACA;AACA,yBAAyB,sDAAI,CAAC,uDAAI;AAClC;AACA,GAAG;AA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A;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA,sUAAsU,CAAM;AAC5U;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,8EAAQ,GAAG;AAC1C;AACA,KAAK;AACL;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;;AAEA,oBAAoB,8EAAQ;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C;;;AAGA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;;;AAG3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA,sUAAsU,CAAM;AAC5U;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA,yDAAyD;AACzD;;AAEA;AACA;AACA,iDAAiD;;;AAGjD;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,8EAAQ,GAAG;AAC1C;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,8EAAQ;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,KAAqC,+IAA+I,CAAM;;AAE9L;AACA;AACA;AACA,2CAA2C;AAC3C;;;AAGA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,KAAqC,kJAAkJ,CAAM;;AAEjM;AACA;AACA;AACA,2CAA2C;;;AAG3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAQ;AACpC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,KAAqC,+GAA+G,gBAAgB,qDAAqD,CAAM;AACnO;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,oBAAoB,8EAAQ;AAC5B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,KAAqC,6IAA6I,CAAM;;AAE5L;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,KAAqC,gJAAgJ,CAAM;;AAE/L;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEuG;AACvG;;;;;;;;;;;;;AC5xBA;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB,qBAAqB;;;;;;;;;;;;ACherB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,IAAI,IAAqC;AACzC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mBAAO,CAAC,oBAAO;;AAErC;;AAEA;AACA;AACA;AACA,iGAAiG,eAAe;AAChH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA,KAAK,GAAG;;AAER,kDAAkD;AAClD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,KAAK;AACrD;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,kCAAkC;AAClC;AACA;;;AAGA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;;;AAGP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;AC9Oa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,wLAA8E;AAChF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;ACAA;AAGuB;AAMA;AAGA;AAKA;;AAEvB;AACA,mCAAmC;AACnC;AACA;AACA,IAAI,cAAc,uDAAS;AAC3B;AACA;AACA,gBAAgB,wDAAU;AAC1B;AACA,IAAI,kDAAI;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,qEAAuB;AACzB;AACA,iBAAiB,+DAAiB,CAAC,2DAAa,CAAC,4DAAc,GAAG,YAAY,OAAO;AACrF,oBAAoB,0DAAY;AAChC;AACA;AACA;AACA;AACA,uBAAuB,2DAAa,CAAC,4DAAc,GAAG;AACtD;AACA;AACA,mBAAmB,0DAAY;AAC/B,oBAAoB,0DAAY;AAChC,kBAAkB,0DAAY;AAC9B;AACA,GAAG;AACH,kBAAkB,yDAAW;AAC7B,SAAS,2DAAa,CAAC,4DAAc,CAAC,4DAAc,GAAG;AACvD;AACA;AACA;AACA;AACA,GAAG;AACH;;AAIE;;;;;;;;;;;;;;;;;;;;;AC/DF;AAGuB;;AAEvB;AACA;AACA,SAAS,mDAAS;AAClB;AACA;AACA,OAAO,mDAAS;AAChB;AACA;AACA;AACA,SAAS,mDAAS;AAClB;AACA;AACA,SAAS,mDAAS;AAClB;AACA;AACA,SAAS,mDAAS;AAClB;;AAQE;;;;;;;;;;;;;;;;;;AC7BF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,6DAA6D;AAC3I;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAME;;;;;;;;;;;;;;;;;;;ACrCF;AASuB;AAGA;AAIA;;AAEvB;AACA,yCAAyC;AACzC,gBAAgB,wDAAU;AAC1B;AACA,IAAI,kDAAI;AACR;AACA,EAAE,qEAAuB;AACzB;AACA,eAAe,0DAAY;AAC3B;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,oBAAoB,0DAAY;AAChC,uBAAuB,0DAAY;AACnC;AACA,qBAAqB,yDAAW;AAChC,EAAE,mDAAK;AACP;AACA,UAAU,kDAAI;AACd;AACA;AACA,KAAK;AACL;AACA,EAAE,mDAAK;AACP;AACA,UAAU,uDAAS;AACnB;AACA;AACA,KAAK;AACL;AACA,EAAE,mDAAK;AACP;AACA,UAAU,kDAAI;AACd;AACA,KAAK;AACL;AACA,SAAS,2DAAa,CAAC,4DAAc,GAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAIE;;;;;;;;;;;;;;;;;;;;AC5EF;AAOuB;AAIA;AAGA;AAIA;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yDAAW;AACpB;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,EAAE,qEAAuB;AACzB;AACA,gBAAgB,0DAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAY;AAC/B;AACA;AACA,uBAAuB,yDAAW;AAClC,MAAM,kDAAkD;AACxD;AACA;AACA,qBAAqB,yDAAW;AAChC;AACA;AACA;AACA;AACA;AACA,EAAE,mDAAK,mBAAmB,kDAAI;AAC9B,EAAE,mDAAK;AACP,WAAW,mDAAK;AAChB;AACA,KAAK;AACL,GAAG;AACH,EAAE,mDAAK;AACP,WAAW,mDAAK;AAChB;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,MAAM;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA,yBAAyB,4DAAc,CAAC,4DAAc,GAAG;AACzD;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2DAAa,CAAC,4DAAc,GAAG;AACxC;AACA,0BAA0B,mDAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAIE;;;;;;;;;;;;;;;;;;;ACrMF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOE;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BF;AAUuB;AAIA;;AAEvB;AACA;AACA;AACA,EAAE,uDAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qDAAO;AAC3B,eAAe,mDAAK;AACpB;AACA;AACA;AACA;AACA,eAAe,4DAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mDAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kDAAI;AAC9C,0CAA0C,kDAAI;AAC9C;AACA;AACA;AACA,SAAS,4DAAc;AACvB,sBAAsB,wDAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2DAAa,CAAC,4DAAc,GAAG,YAAY,kBAAkB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;AACA;AACA;AACA,MAAM,KAAqC,EAAE,EAAO;AACpD;AACA;AACA;AACA;AACA,cAAc,+DAA+D,EAAE,kBAAkB;AACjG,GAAG;AACH;AACA;AACA;AACA,aAAa,4DAAc;AAC3B;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,OAAO;AAC9B;;AAEA;;AAEA,+BAA+B,uBAAuB;AACtD,uBAAuB,OAAO;;AAE9B;;AAEA;AACA;AACA;AACA;;AAaE;;;;;;;;;;;;;;;;;;;;;ACxOF;AAGuB;AAIA;AAKA;AAGA;AAIA;;AAEvB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA,0BAA0B,2DAAa,CAAC,4DAAc,GAAG;AACzD;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE;AACnC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,qBAAqB,mEAAqB;AAC1C,mBAAmB,0DAAY;AAC/B;AACA;AACA;AACA;AACA,uBAAuB,2DAAa,CAAC,4DAAc,GAAG;AACtD;AACA,iBAAiB,0DAAY;AAC7B,yBAAyB,0DAAY;AACrC;AACA;AACA;AACA;AACA,WAAW,0DAAY;AACvB,iBAAiB,0DAAY;AAC7B;AACA;AACA;AACA;AACA,SAAS,0DAAY;AACrB,kBAAkB,0DAAY;AAC9B;AACA;AACA;AACA;AACA,eAAe,0DAAY;AAC3B,eAAe,0DAAY;AAC3B,gBAAgB,0DAAY;AAC5B,GAAG;AACH,oBAAoB,yDAAW;AAC/B,EAAE,mDAAK;AACP;AACA,UAAU,kDAAI;AACd;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,uDAAuD,4DAAc;AACrE;AACA;AACA,yBAAyB,0DAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2DAAa,CAAC,4DAAc,CAAC,4DAAc,GAAG;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,yCAAyC,0DAAY;AACrD,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,GAAG;AACH;;AAIE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjRF;AAGuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4DAAc,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAwBE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChKF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA,IAAI;AACJ,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqBE;;;;;;;;;;;;;;;;;AC9LF;AAGuB;;AAEvB;AACA,qCAAqC;AACrC,SAAS,mEAAqB;AAC9B;;AAIE;;;;;;;;;;;;;;;;;;;;;;ACZF;AAGiC;AACA;AACA;AAGA;AACA;AACA;AASA;AAIA;AAIA;AACA;AAKA;;AAEjC;AACA,oBAAoB,6DAAQ,MAAM,kEAAa;AAC/C,oCAAoC;AACpC;AACA;AACA,IAAI,cAAc,8DAAS;AAC3B;AACA;AACA,gBAAgB,+DAAU,cAAc,yDAAI;AAC5C,EAAE,4EAAuB;AACzB;AACA;AACA,mBAAmB,iEAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,oBAAoB,yEAAoB,CAAC,kEAAa,CAAC,mEAAc,GAAG;AACxE;AACA,yBAAyB,iEAAY;AACrC;AACA;AACA;AACA;AACA,iBAAiB,iEAAY;AAC7B;AACA;AACA;AACA;AACA,eAAe,iEAAY;AAC3B,eAAe,iEAAY;AAC3B,kBAAkB,iEAAY;AAC9B;AACA;AACA;AACA;AACA,GAAG;AACH,kBAAkB,uEAAkB,CAAC,kEAAa,CAAC,mEAAc,GAAG;AACpE,eAAe,iEAAY;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,iEAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kEAAa,CAAC,mEAAc,CAAC,mEAAc,GAAG;AACrE;AACA;AACA,wBAAwB,iEAAY;AACpC;AACA;AACA;AACA;AACA,sBAAsB,iEAAY;AAClC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,mBAAmB,gEAAW;AAC9B;AACA,IAAI,0DAAK;AACT;AACA,YAAY,yDAAI;AAChB;AACA,OAAO;AACP;AACA;AACA,EAAE,0DAAK;AACP;AACA,WAAW,0DAAK;AAChB,MAAM,yDAAI;AACV;AACA;AACA,OAAO;AACP,MAAM,yDAAI;AACV;AACA,OAAO;AACP;AACA,GAAG;AACH,EAAE,0DAAK;AACP;AACA,UAAU,yDAAI;AACd;AACA;AACA;AACA,KAAK;AACL;AACA,EAAE,0DAAK;AACP;AACA,UAAU,yDAAI;AACd;AACA;AACA;AACA,KAAK;AACL;AACA,EAAE,0DAAK;AACP;AACA,UAAU,yDAAI;AACd;AACA;AACA;AACA,KAAK;AACL;AACA,EAAE,0DAAK;AACP;AACA,UAAU,0DAAK;AACf;AACA,cAAc,sBAAsB;AACpC;AACA;AACA,KAAK;AACL;AACA,SAAS,kEAAa,CAAC,mEAAc,CAAC,mEAAc,CAAC,mEAAc,GAAG;AACtE;AACA;AACA;AACA;AACA,GAAG;AACH;AAGE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5KF;AAGiC;AAGA;AAIA;;AAEjC;AACA;AACA;AACA,4BAA4B,6DAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kEAAa,CAAC,mEAAc,GAAG,gBAAgB,eAAe;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kEAAa,CAAC,mEAAc,GAAG,gBAAgB,eAAe;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6DAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,6CAA6C,2BAA2B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AAeE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvIF;AAMiC;AAGA;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,8DAAS;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAO;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAgB;AACxC;AACA,MAAM,6DAAQ;AACd;AACA;AACA;AACA;AACA,qCAAqC,6BAA6B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,oBAAoB,qBAAqB;AACzC,2BAA2B,mEAAc,GAAG,qCAAqC;AACjF;AACA;AA0BE;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9OF;AAIuB;AAIA;AAGA;;AAEvB;AACsC;AACtC,8BAA8B,oDAAa;AAC3C;AACA;AACA,UAAU,gEAAkB;AAC5B,GAAG,gEAAsB,EAAE,kEAAwB;AACnD,GAAG,sEAA4B,EAAE,wEAA8B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAa;AAC5C;AACA;AACA,iCAAiC,oDAAa;;AAW5C;;;;;;;;;;;;;;;;;;;;;;;;;ACzCF;AAIuB;AAGA;;AAEvB;AACsC;AACtC,sBAAsB,oDAAa;AACnC,yBAAyB,oDAAa;AACtC;AACA;AACA,UAAU,gEAAkB;AAC5B,GAAG,kEAAwB;AAC3B,GAAG,wEAA8B;AACjC;AACA;AACA;AACA;AACA;AACA;;AAUE;;;;;;;;;;;;;;;;;;ACjCF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,6DAA6D;AAC3I;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAME;;;;;;;;;;;;;;;;;;;;;;;;ACrCF;;AAEA;AACmE;AACnE,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oEAAW;AACjB;AACA;AACA;AACA;AACA,IAAI;AACJ,sBAAsB,oEAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWE;;;;;;;;;;;;;;;;;;;;;;;;;AClFF;AAGuB;AAIA;AAKA;;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AW;AACpB;AACA;AACA,GAAG;AACH;AACA;AACA,4BAA4B,+CAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,SAAS,8CAAO;AAChB;AACA;AACA;AACA,QAAQ,oDAAM;AACd;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+CAAQ;AAC9B;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+CAAQ;AACpD,EAAE,gDAAS;AACX;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+CAAQ;AACxC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,oCAAoC,+CAAQ;AAC5C,EAAE,gDAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kCAAkC;AAClE;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,6CAAM;AACxB,EAAE,gDAAS;AACX;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,gDAAS;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kBAAkB,6CAAM;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS,iDAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kDAAW;AACjC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS,2DAAa,CAAC,4DAAc,GAAG,YAAY,aAAa;AACjE;AACA;AACA,sCAAsC,+CAAQ;AAC9C;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,kCAAkC,8CAAO;AACzC;AACA,KAAK,EAAE,2DAAa,CAAC,4DAAc,GAAG,aAAa,cAAc;AACjE,GAAG;AACH,mDAAmD,yBAAyB;AAC5E;AACA;AACA,EAAE,gDAAS;AACX,IAAI,kFAAsB;AAC1B,IAAI,kFAAsB;AAC1B,IAAI,kFAAsB;AAC1B,IAAI,kFAAsB;AAC1B,IAAI,kFAAsB;AAC1B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAoB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAuBE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtQF;AAOuB;AAIA;AAGA;AAKA;AAQA;AAKA;;AAEvB;AACyE;AACD;AAKpC;AACgC;AACf;AACY;AACzB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oEAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sDAAQ;AACjB;AACA;AACA;AACA;AACA,SAAS,wEAAY;AACrB;AACA;AACA;AACA,gCAAgC,4DAAc;AAC9C;AACA,wBAAwB,OAAO,kBAAkB,uDAAS;AAC1D;AACA;AACA;AACA;AACA,SAAS,6EAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,SAAS,kEAAoB;AAC7B,IAAI,yEAAc,CAAC,uEAAY,CAAC,8DAAgB;AAChD;AACA;AACA;AACA,oCAAoC,+CAAQ;AAC5C,mBAAmB,kDAAW;AAC9B;AACA,eAAe,4DAAc;AAC7B;AACA,EAAE,gDAAS;AACX;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C,GAAG;AACH;AACA;AACA,mBAAmB,wDAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,uDAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,oBAAoB,yEAA2B;AAC/C;AACA,IAAI,oEAAS;AACb;AACA,MAAM,KAAqC;AAC3C;AACA,gBAAgB,6CAAM;AACtB,+BAA+B,6CAAM;AACrC;AACA;AACA,+BAA+B,iEAAmB;AAClD;AACA;AACA,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA;AACA,cAAc,sBAAsB;AACpC,iCAAiC,4DAAc;AAC/C;AACA,MAAM,yEAAa;AACnB,KAAK;AACL,IAAI,iEAAmB;AACvB;AACA;AACA;AACA,cAAc,mCAAmC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAa,oBAAoB,4BAA4B;AACrE;AACA,WAAW,oEAAQ;AACnB;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI,iEAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4DAAc;AACjD,6CAA6C,yEAAgB;AAC7D;AACA,MAAM,yEAAa,oBAAoB,eAAe;AACtD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAQ;AACnC;AACA;AACA;AACA,cAAc,8BAA8B;AAC5C;AACA;AACA,gCAAgC,6DAAe;AAC/C,UAAU,wEAAY;AACtB;AACA;AACA;AACA,KAAK;AACL;AACA,oBAAoB,sDAAQ;AAC5B;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B,cAAc,8BAA8B;AAC5C;AACA,YAAY,wEAAY,YAAY,oDAAM;AAC1C;AACA;AACA,QAAQ,SAAS,wEAAY;AAC7B;AACA;AACA,KAAK;AACL;AACA,0BAA0B,sDAAQ;AAClC;AACA;AACA;AACA;AACA,cAAc,mDAAmD;AACjE;AACA,mCAAmC,4DAAc;AACjD;AACA,sCAAsC,oDAAM;AAC5C;AACA;AACA,UAAU,wEAAY;AACtB;AACA;AACA,YAAY,yEAAa;AACzB;AACA,UAAU;AACV,UAAU,yEAAa;AACvB,UAAU;AACV,UAAU,yEAAa;AACvB;AACA;AACA,QAAQ;AACR,6BAA6B,oDAAM;AACnC;AACA,UAAU,yEAAa;AACvB;AACA;AACA,KAAK;AACL;AACA,+BAA+B,6DAAe;AAC9C,sBAAsB,sDAAQ;AAC9B;AACA;AACA;AACA;AACA,WAAW,wEAAY;AACvB,cAAc,yDAAyD;AACvE,yBAAyB,4DAAc;AACvC;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,4DAAc;AAC1B;AACA,mCAAmC,sDAAG,CAAC,kEAAwB,IAAI,iCAAiC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAc;AAClC,KAAK;AACL,YAAY,2DAAa,CAAC,4DAAc;AACxC;AACA,KAAK;AACL,WAAW,0DAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY,2DAAY,CAAC,4DAAc,GAAG,WAAW;AACrD;AACA;AACA;AACA,gBAAgB,wDAAU;AAC1B;AACA,SAAS,2DAAa;AACtB,CAAC;;AAKC;;;;;;;;;;;;;;;;;;;;;ACpUF;AAGuB;;AAEvB;AACA,UAAU,gEAAkB;AAC5B;AACA;AACA;AACA;AACA;;AAQE;;;;;;;;;;;;;;;;;;;;;;;;;ACnBF;AAGuB;AAMA;AAMA;AAKA;;AAEvB;AACmD;AACkB;AAKnC;AACE;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iEAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAc;AACtB;AACA,IAAI;AACJ;AACA;AACA,wBAAwB,wDAAU;AAClC;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,uDAAS;AAC7B;AACA;AACA;AACA;AACA,oBAAoB,iEAAmB;AACvC;AACA,IAAI,mEAAS;AACb;AACA,MAAM,KAAqC;AAC3C;AACA,0BAA0B,8DAAgB;AAC1C;AACA,6BAA6B,6DAAe;AAC5C,wBAAwB,sDAAQ;AAChC;AACA;AACA;AACA;AACA,WAAW,yEAAc;AACzB;AACA,4BAA4B,mEAAQ;AACpC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,+BAA+B,6DAAe;AAC9C,yBAAyB,sDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB,kDAAW;AAC3B;AACA;AACA,KAAK;AACL,YAAY,2DAAa,CAAC,4DAAc,GAAG;AAC3C,WAAW,0DAAY;AACvB;AACA;AACA,KAAK;AACL,WAAW,+EAAqB;AAChC;AACA;AACA,qBAAqB,kDAAI;AACzB,EAAE,wDAAU;AACZ;AACA,WAAW,2DAAa;AACxB,GAAG;AACH;;AAKE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3HF;AAGuB;AAGA;AAMA;AAKA;AAMA;AAGA;AAOA;AAKA;;AAEvB;AAQiC;AACwC;AAIvC;AACsB;AACS;AACzB;AACxC;AACA;AACA,MAAM,kEAAS;AACf,yCAAyC,iEAAQ;AACjD;AACA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B,2BAA2B,4EAAmB;AAC9C;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B;AAC5C;AACA;AACA;AACA;AACA,8BAA8B,4DAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,wEAAY;AAClB,SAAS,oDAAM;AACf;AACA,uBAAuB,wDAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,uDAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iEAAmB;AACvC;AACA,eAAe,mDAAK;AACpB,gBAAgB,6CAAM;AACtB,gBAAgB,iDAAU,CAAC,6DAAmB;AAC9C,kBAAkB,2DAAa;AAC/B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,4EAAiB;AACtC;AACA,oBAAoB,kDAAW;AAC/B;AACA,yBAAyB,2DAAa,CAAC,4DAAc,GAAG;AACxD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,gCAAgC,6CAAM;AACtC,oBAAoB,sDAAQ;AAC5B;AACA;AACA,UAAU,yEAAa;AACvB;AACA;AACA;AACA,cAAc,0CAA0C;AACxD;AACA,UAAU,kEAAS;AACnB,QAAQ,6DAAe;AACvB;AACA;AACA,WAAW,wEAAY;AACvB;AACA;AACA,UAAU,uEAAQ;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oEAAoE,oDAAM;AAC1E;AACA,QAAQ,2DAAa;AACrB,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA,0BAA0B,sDAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,uCAAuC,6DAAe;AACtD,+BAA+B,6DAAe;AAC9C,sBAAsB,sDAAQ;AAC9B;AACA;AACA,WAAW,wEAAY;AACvB;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oEAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAS;AACrB,4BAA4B,4EAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB,EAAE,wEAAe;AAC3D;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,wBAAwB,2DAAa;AACrC;AACA;AACA;AACA,0BAA0B,8CAAO;AACjC,eAAe,iBAAiB;AAChC;AACA;AACA,YAAY,4DAAc;AAC1B;AACA,mCAAmC,sDAAG,CAAC,8DAAoB,aAAa,yCAAyC;AACjH;AACA;AACA,yBAAyB,2DAAa;AACtC;AACA;AACA;AACA,wBAAwB,2DAAa;AACrC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,yBAAyB,2DAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,uBAAuB,2DAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,2DAAa,CAAC,4DAAc;AACxC;AACA;AACA,KAAK;AACL,WAAW,0DAAY;AACvB;A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CA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,iEAAmB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,EAAE,iEAAmB;AACrB;AACA;AACA;AACA;AACA;AACA,oCAAoC,oDAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,UAAU,4DAAc;AACxB;AACA,iCAAiC,sDAAG,CAAC,qEAA2B,IAAI,iCAAiC;AACrG;AACA;AACA;AACA;AACA,gBAAgB,8CAAO;AACvB;AACA,aAAa,2DAAa,CAAC,4DAAc,GAAG,gBAAgB,iBAAiB;AAC7E;AACA;AACA,GAAG;AACH,UAAU,2DAAa,CAAC,4DAAc;AACtC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,SAAS,0DAAY;AACrB;AACA,GAAG;AACH,SAAS,+EAAqB;AAC9B,CAAC;AACD,4BAA4B,wDAAU;AACtC;AACA,SAAS,2DAAa;AACtB,CAAC;AACD,wBAAwB,wDAAU;AAClC;AACA;AACA,IAAI,cAAc,uDAAS;AAC3B;AACA;AACA,kBAAkB,0EAA4B;AAC9C;AACA,kBAAkB,2DAAa;AAC/B;AACA;AACA;AACA;AACA,yBAAyB,sDAAG,wBAAwB,4DAAc,GAAG;AACrE,CAAC;;AAMC;;;;;;;;;;;;;;;;;;;;;;;;;ACjMF;AAMuB;AAGA;AAKA;AAOA;AAKA;;AAEvB;AAC4E;AACnC;AACD;AACxC;AACA,sBAAsB,wDAAU;AAChC;AACA,mBAAmB,uBAAuB,cAAc,uDAAS;AACjE,0BAA0B,sEAAwB;AAClD,oBAAoB,gEAAkB;AACtC;AACA;AACA,IAAI,mEAAS;AACb;AACA,MAAM,KAAqC;AAC3C;AACA,gBAAgB,6CAAM;AACtB,eAAe,mDAAK;AACpB;AACA,mBAAmB,sDAAQ;AAC3B,2BAA2B,2DAAa,CAAC,4DAAc,GAAG,kBAAkB,iBAAiB;AAC7F;AACA;AACA;AACA,iBAAiB,0DAAY;AAC7B;AACA;AACA,oDAAoD,+CAAQ;AAC5D;AACA,IAAI,iEAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA,cAAc,4DAAc;AAC5B;AACA;AACA,OAAO;AACP;AACA,YAAY,4DAAc;AAC1B;AACA,mCAAmC,sDAAG,CAAC,uEAA6B,IAAI,wCAAwC,sDAAG,CAAC,iEAAuB,aAAa,gCAAgC,GAAG;AAC3L;AACA;AACA;AACA,YAAY,2DAAa,CAAC,4DAAc;AACxC;AACA;AACA,KAAK;AACL,WAAW,0DAAY;AACvB;AACA,KAAK;AACL,WAAW,+EAAqB;AAChC;AACA;AACA,mBAAmB,wDAAU;AAC7B;AACA,SAAS,2DAAa;AACtB,CAAC;;AAKC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxGF;AAGuB;AAKA;AAKA;AAKA;;AAEvB;AACmD;AAOf;AAMD;AAID;AACsB;AACiB;AACzE;AACA,sBAAsB,sEAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0BAA0B;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sDAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wDAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,uDAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,gBAAgB,6CAAM;AACtB,IAAI,gDAAS;AACb;AACA,MAAM,kFAAsB;AAC5B,MAAM,kFAAsB;AAC5B,KAAK;AACL;AACA,MAAM,gDAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,kCAAkC,2EAAiB;AACnD;AACA,4CAA4C,+CAAQ;AACpD,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sEAAW;AACxB;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAQ;AAChC;AACA;AACA;AACA;AACA;AACA,UAAU,yEAAa;AACvB,WAAW,iEAAQ;AACnB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,iCAAiC,8EAAmB;AACpD;AACA,MAAM,4EAAgB;AACtB;AACA;AACA;AACA,QAAQ,wEAAa;AACrB,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mEAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wEAAY;AACvB;AACA;AACA,MAAM,4EAAgB;AACtB,KAAK;AACL;AACA,2BAA2B,sDAAQ;AACnC;AACA;AACA;AACA,WAAW,wEAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4EAAgB;AACxB,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA,mBAAmB,sDAAQ;AAC3B;AACA;AACA,WAAW,+EAAmB;AAC9B;AACA,KAAK;AACL,4BAA4B,iDAAU,CAAC,0DAAgB;AACvD,yBAAyB,sDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAQ;AACpB,aAAa,sEAAW;AACxB;AACA,OAAO;AACP,KAAK;AACL,oBAAoB,wDAAU;AAC9B;AACA;AACA;AACA,kBAAkB,8CAAO;AACzB;AACA,eAAe,4DAAc,GAAG,uBAAuB;AACvD;AACA;AACA,KAAK;AACL,YAAY,2DAAa,CAAC,4DAAc;AACxC;AACA;AACA;AACA,KAAK;AACL,WAAW,0DAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,+EAAqB;AAChC;AACA;AACA,gBAAgB,wDAAU;AAC1B;AACA,SAAS,2DAAa;AACtB,CAAC;;AAMC;;;;;;;;;;;;;;;;;;;;;;;;;;AC1VF;AAGuB;AAKA;AAMA;AAKA;;AAEvB;AACgE;AAK5B;AACyB;AACJ;AACL;AACpD;AACA;AACA;AACA;AACA;AACA,WAAW,iEAAQ;AACnB;AACA;AACA,WAAW,iEAAQ;AACnB;AACA;AACA;AACA;AACA,iBAAiB,wDAAU;AAC3B;AACA,mBAAmB,2CAA2C,cAAc,uDAAS;AACrF,gBAAgB,6CAAM;AACtB,oBAAoB,wDAAU;AAC9B;AACA,gDAAgD,+CAAQ;AACxD,yBAAyB,iEAAQ,GAAG,eAAe;AACnD;AACA,IAAI,gDAAS;AACb;AACA,wBAAwB,iEAAQ;AAChC,KAAK;AACL,gCAAgC,+CAAQ;AACxC,sBAAsB,6CAAM;AAC5B,qBAAqB,2EAAiB;AACtC,yCAAyC,8DAAgB;AACzD;AACA,sBAAsB,sDAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA,WAAW,wEAAY;AACvB,UAAU,oEAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO,mBAAmB,uDAAS;AACpE,gCAAgC,0EAAc;AAC9C,gBAAgB,uEAAS;AACzB,cAAc,4EAAgB;AAC9B,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,oBAAoB,sDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO,mBAAmB,uDAAS;AAClE,+BAA+B,0EAAc;AAC7C;AACA;AACA,KAAK;AACL,YAAY,2DAAa,CAAC,4DAAc,CAAC,4DAAc;AACvD;AACA;AACA,KAAK;AACL,WAAW,0DAAY;AACvB;AACA;AACA,KAAK;AACL,YAAY,0DAAY;AACxB;AACA;AACA;AACA,cAAc,wDAAU;AACxB;AACA,SAAS,2DAAa;AACtB,CAAC;;AAKC;;;;;;;;;;;;;;;;;;;;;;;;;AC5IF;AAIiC;AACA;AACA;AACA;AACA;AACA;AAKA;AAGA;AACA;AACA;AAIA;;AAEjC;AACoD;AAIlB;AACU;AACJ;AACxC;AACA;AACA,SAAS,yEAAe;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kEAAO;AAC5B;AACA,gEAAgE,sDAAG;AACnE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2BAA2B,+DAAU;AACrC,iBAAiB,0BAA0B,cAAc,8DAAS;AAClE,kBAAkB,6EAAwB;AAC1C;AACA,sBAAsB,iDAAU,CAAC,yEAAwB;AACzD;AACA,qBAAqB,kEAAa;AAClC,mBAAmB,8CAAO;AAC1B;AACA;AACA;AACA,GAAG;AACH,UAAU,mEAAc;AACxB;AACA,GAAG;AACH,SAAS,+EAAqB;AAC9B,CAAC;AACD,wBAAwB,+DAAU;AAClC;AACA,SAAS,kEAAa;AACtB,CAAC;AAIC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/HF;AAGiC;AAMA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AAKA;AACA;AAKA;;AAEjC;AACsD;AACwB;AACzB;AACA;AACL;AACR;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+DAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,8DAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6EAAwB;AAC5C;AACA,IAAI,mEAAS;AACb;AACA,MAAM,KAAqC;AAC3C;AACA,oBAAoB,kDAAW;AAC/B;AACA,yBAAyB,kEAAa,CAAC,mEAAc,GAAG,WAAW,OAAO;AAC1E;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAe;AAC/C,mCAAmC,oEAAe;AAClD,mCAAmC,oEAAe;AAClD;AACA;AACA,4BAA4B,oEAAe;AAC3C,oBAAoB,6DAAQ;AAC5B;AACA;AACA,UAAU,yEAAa;AACvB,UAAU,6EAAiB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,sBAAsB,6DAAQ;AAC9B;AACA;AACA;AACA;AACA,UAAU,mEAAQ;AAClB;AACA;AACA;AACA,YAAY,oEAAW;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA,cAAc,mEAAc;AAC5B;AACA,OAAO;AACP;AACA,YAAY,mEAAc;AAC1B;AACA,mCAAmC,sDAAG,CAAC,yEAAwB,aAAa,iCAAiC,sDAAG,CAAC,2EAA0B,aAAa,+DAA+D,GAAG;AAC1N;AACA;AACA,sBAAsB,iDAAU,CAAC,wEAAuB;AACxD,YAAY,kEAAa,CAAC,mEAAc;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,+BAA+B,oEAAe;AAC9C,YAAY,sEAAgB,CAAC,kEAAa,CAAC,mEAAc;AACzD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,uEAAiB,CAAC,mEAAc,GAAG,qBAAqB;AACpE;AACA;AACA;AACA,mBAAmB,yDAAI;AACvB,EAAE,+DAAU;AACZ;AACA,WAAW,kEAAa;AACxB,GAAG;AACH;AAIE;;;;;;;;;;;;;;;;;;;;;ACpNF;AAGiC;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;AACA;AAIA;;AAEjC;AAC4E;AAC5E;AACA,uBAAuB,+DAAU;AACjC;AACA,mBAAmB,QAAQ,cAAc,8DAAS;AAClD,oBAAoB,+EAA0B;AAC9C;AACA,IAAI,mEAAS;AACb;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,mEAAc;AAC1B;AACA,KAAK;AACL,WAAW,+EAAqB;AAChC;AACA;AACA,oBAAoB,yDAAI;AACxB,EAAE,+DAAU;AACZ;AACA,WAAW,kEAAa;AACxB,GAAG;AACH;AAIE;;;;;;;;;;;;;;;;;;;ACrDF;AAGiC;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEjC;AACwC;AACxC,oCAAoC;AACpC,gBAAgB,qEAAgB;AAChC,yBAAyB,sDAAG,CAAC,wEAAuB,IAAI,wCAAwC;AAChG;AAGE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChCF;AAGiC;AAGA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AAUA;AACA;AAKA;;AAEjC;AAMiC;AAIG;AACiB;AAMnB;AACe;AACY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yEAAe;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,kBAAkB,+DAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,8DAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+EAA0B;AAC9C;AACA,IAAI,mEAAS;AACb;AACA,MAAM,KAAqC;AAC3C;AACA,gBAAgB,6CAAM;AACtB,6CAA6C,mEAAc;AAC3D,6BAA6B,6CAAM;AACnC,yBAAyB,6CAAM;AAC/B;AACA;AACA;AACA;AACA,sCAAsC,+CAAQ;AAC9C,IAAI,0EAAqB;AACzB;AACA;AACA,KAAK;AACL;AACA,iCAAiC,6CAAM;AACvC,IAAI,gDAAS;AACb,aAAa,+DAAI;AACjB;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,8CAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0DAAI;AACxB;AACA;AACA;AACA,gBAAgB,iCAAiC,EAAE,4EAAmB;AACtE;AACA;AACA,QAAQ,0EAAiB;AACzB;AACA,eAAe,mEAAQ;AACvB,kBAAkB,aAAa,EAAE,4EAAmB;AACpD;AACA;AACA,UAAU,0EAAiB;AAC3B;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6CAAM;AACtC,gCAAgC,6DAAQ;AACxC,4BAA4B,6CAAM;AAClC,IAAI,gDAAS;AACb;AACA;AACA,+BAA+B,4EAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,wEAAmB;AACvB;AACA;AACA;AACA,KAAK;AACL,IAAI,wEAAmB;AACvB;AACA;AACA,KAAK;AACL;AACA,IAAI,oEAAe;AACnB;AACA;AACA;AACA;AACA;AACA,cAAc,yDAAyD;AACvE,0BAA0B,mEAAQ;AAClC;AACA;AACA,4CAA4C,mCAAmC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,mCAAmC,qCAAqC;AACxE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+EAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAe;AAC5C,iCAAiC,oEAAe;AAChD;AACA;AACA;AACA;AACA,qBAAqB,6DAAQ;AAC7B;AACA;AACA;AACA;AACA,cAAc,8CAA8C;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0EAAiB;AAC3B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,6DAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,sCAAsC,oEAAe;AACrD;AACA;AACA,gCAAgC,oEAAe;AAC/C,4BAA4B,oEAAe;AAC3C,wBAAwB,6DAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4EAAgB;AACxB;AACA,KAAK;AACL;AACA,+BAA+B,oEAAe;AAC9C,sBAAsB,6DAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mBAAmB,6DAAQ;AAC3B;AACA;AACA;AACA,KAAK;AACL,eAAe,0DAAK;AACpB;AACA;AACA,YAAY,kEAAa,CAAC,mEAAc;AACxC;AACA;AACA;AACA,uBAAuB,qEAAY;AACnC;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,iEAAY;AACvB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,kEAAY,CAAC,kEAAa,CAAC,mEAAc;AACrD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY,gFAAsB;AAClC;AACA;AACA;AACA,KAAK;AACL,YAAY,sEAAgB,CAAC,mEAAc,GAAG,OAAO;AACrD,WAAW,mEAAc,GAAG,qBAAqB;AACjD;AACA;AACA,eAAe,+DAAU;AACzB;AACA,SAAS,kEAAa;AACtB,CAAC;AAIC;;;;;;;;;;;;;;;;ACpda;AACf;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACbA,cAAc,aAAa,+CAA+C,gDAAgD,eAAe,QAAQ,IAAI,0CAA0C,yCAAyC,SAAgB,gBAAgB,wCAAwC,IAAI,mDAAmD,SAAS,iEAAe,IAAI;;;;;;UCAnY;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC7BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,sDAAsD;WACtD,sCAAsC,iEAAiE;WACvG;WACA;WACA;WACA;WACA;WACA;;;;;WCzBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WClBA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEnDA;UACA;UACA;UACA;UACA","sources":["webpack://formello/./assets/addons/ sync ^\\.\\/.*\\.png$","webpack://formello/./assets/icons/logo.svg","webpack://formello/./assets/integrations/brevo.svg","webpack://formello/./assets/integrations/convertkit.svg","webpack://formello/./assets/integrations/email.svg","webpack://formello/./assets/integrations/getresponse.svg","webpack://formello/./assets/integrations/mailchimp.svg","webpack://formello/./assets/integrations/mailerlite.svg","webpack://formello/./assets/integrations/mailpoet.svg","webpack://formello/./assets/integrations/moosend.svg","webpack://formello/./assets/integrations/webhook.svg","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataform-combined-edit/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-bulk-actions/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-context/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-filters/add-filter.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-filters/filter-summary.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-filters/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-filters/reset-filters.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-filters/search-widget.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-footer/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-item-actions/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-layout/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-pagination/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-search/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-selection-checkbox/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews-view-config/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/components/dataviews/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/constants.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataform-controls/datetime.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataform-controls/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataform-controls/integer.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataform-controls/radio.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataform-controls/select.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataform-controls/text.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataviews-layouts/grid/density-picker.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataviews-layouts/grid/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataviews-layouts/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataviews-layouts/list/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataviews-layouts/table/column-header-menu.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/dataviews-layouts/table/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/field-types/datetime.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/field-types/index.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/field-types/integer.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/field-types/text.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/lock-unlock.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/normalize-fields.js","webpack://formello/./node_modules/@wordpress/dataviews/build-module/utils.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/arrow-down.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/arrow-left.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/arrow-right.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/arrow-up.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/backup.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/block-table.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/category.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/check.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/chevron-down.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/chevron-up.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/close-small.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/cog.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/comment-author-avatar.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/comment-content.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/edit.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/external.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/format-list-bullets-rtl.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/format-list-bullets.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/funnel.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/heading.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/login.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/more-vertical.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/next.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/pencil.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/post.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/previous.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/search.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/seen.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/star-filled.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/trash.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/unseen.js","webpack://formello/./src/admin/components/actions/index.js","webpack://formello/./src/admin/components/actions/submission.js","webpack://formello/./src/admin/components/help.js","webpack://formello/./src/admin/components/loading-spinner.js","webpack://formello/./src/admin/components/masthead.js","webpack://formello/./src/admin/components/update-settings.js","webpack://formello/./src/admin/context/settings-context.js","webpack://formello/./src/admin/index.js","webpack://formello/./src/admin/pages/addons/addon.js","webpack://formello/./src/admin/pages/addons/index.js","webpack://formello/./src/admin/pages/settings/components/captcha.js","webpack://formello/./src/admin/pages/settings/components/general.js","webpack://formello/./src/admin/pages/settings/components/integrations.js","webpack://formello/./src/admin/pages/settings/components/logging.js","webpack://formello/./src/admin/pages/settings/components/messages.js","webpack://formello/./src/admin/pages/settings/index.js","webpack://formello/./src/admin/pages/submission/fields-data.js","webpack://formello/./src/admin/pages/submission/index.js","webpack://formello/./src/admin/pages/submission/submission-data.js","webpack://formello/./src/admin/pages/submissions/forms.js","webpack://formello/./src/admin/pages/submissions/submissions.js","webpack://formello/./src/admin/pages/tools/components/export-forms.js","webpack://formello/./src/admin/pages/tools/components/import-forms.js","webpack://formello/./src/admin/pages/tools/components/reset-settings.js","webpack://formello/./src/admin/pages/tools/index.js","webpack://formello/./src/admin/pages/tools/tabs/exporter.js","webpack://formello/./src/admin/pages/tools/tabs/general.js","webpack://formello/./src/admin/pages/tools/tabs/importer.js","webpack://formello/./src/admin/router/history.js","webpack://formello/./src/admin/router/index.js","webpack://formello/./src/components/promo.js","webpack://formello/./src/form-settings/actions/constants.js","webpack://formello/./node_modules/history/index.js","webpack://formello/./src/admin/style.scss?f510","webpack://formello/./node_modules/remove-accents/index.js","webpack://formello/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js","webpack://formello/./node_modules/use-sync-external-store/shim/index.js","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactDOM\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"apiFetch\"]","webpack://formello/external window [\"wp\",\"blob\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"compose\"]","webpack://formello/external window [\"wp\",\"coreData\"]","webpack://formello/external window [\"wp\",\"data\"]","webpack://formello/external window [\"wp\",\"date\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"hooks\"]","webpack://formello/external window [\"wp\",\"htmlEntities\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/external window [\"wp\",\"notices\"]","webpack://formello/external window [\"wp\",\"primitives\"]","webpack://formello/external window [\"wp\",\"privateApis\"]","webpack://formello/external window [\"wp\",\"url\"]","webpack://formello/external window [\"wp\",\"warning\"]","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/3UYWTADI.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/3VBK76MS.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/3YLGPPWQ.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/6E4KKOSB.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/7DTP4AQO.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/7PRQYBBV.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/EQQLU3CG.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/IJ6VFLJG.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/PBFD2E7P.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/PQP5VPTV.js","webpack://formello/./node_modules/@ariakit/core/esm/__chunks/YOHCVXJB.js","webpack://formello/./node_modules/@ariakit/core/esm/combobox/combobox-store.js","webpack://formello/./node_modules/@ariakit/core/esm/utils/events.js","webpack://formello/./node_modules/@ariakit/core/esm/utils/focus.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/3LH6HMTR.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/3TGOYUTQ.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/3YLGPPWQ.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/5VQZOHHZ.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/7FZLUSKW.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/APGXEJ2Q.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/B5WJDZ55.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/C76P7QQC.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/CMXOY7UW.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/CO7ZDQU2.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/COWZSPJ7.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/CTKPPFRS.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/E6AN77M4.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/G4PVPWEW.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/HNHAUIIY.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/IKLZZMLE.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/JDEWEW7S.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/L63MOBXC.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/NSB34BGG.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/NWYOIOBE.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/OIB4PV4M.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/QZUWIJQN.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/SK3NAZA3.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/SWN3JYXT.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/SZHY72KI.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/UYRBEP7M.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/XNK4OM26.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/Z4WWVOIF.js","webpack://formello/./node_modules/@ariakit/react-core/esm/__chunks/ZHUQ44XA.js","webpack://formello/./node_modules/@ariakit/react-core/esm/combobox/combobox-item-value.js","webpack://formello/./node_modules/@ariakit/react-core/esm/combobox/combobox-item.js","webpack://formello/./node_modules/@ariakit/react-core/esm/combobox/combobox-label.js","webpack://formello/./node_modules/@ariakit/react-core/esm/combobox/combobox-provider.js","webpack://formello/./node_modules/@ariakit/react-core/esm/combobox/combobox.js","webpack://formello/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://formello/./node_modules/clsx/dist/clsx.mjs","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/chunk loaded","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/create fake namespace object","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/global","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/webpack/runtime/publicPath","webpack://formello/webpack/runtime/jsonp chunk loading","webpack://formello/webpack/before-startup","webpack://formello/webpack/startup","webpack://formello/webpack/after-startup"],"sourcesContent":["var map = {\n\t\"./autosuggest.png\": \"./assets/addons/autosuggest.png\",\n\t\"./brevo.png\": \"./assets/addons/brevo.png\",\n\t\"./calculator.png\": \"./assets/addons/calculator.png\",\n\t\"./conditional-fields.png\": \"./assets/addons/conditional-fields.png\",\n\t\"./convertkit.png\": \"./assets/addons/convertkit.png\",\n\t\"./exporter.png\": \"./assets/addons/exporter.png\",\n\t\"./file-upload.png\": \"./assets/addons/file-upload.png\",\n\t\"./frontend-posting.png\": \"./assets/addons/frontend-posting.png\",\n\t\"./getresponse.png\": \"./assets/addons/getresponse.png\",\n\t\"./inserter.png\": \"./assets/addons/inserter.png\",\n\t\"./login.png\": \"./assets/addons/login.png\",\n\t\"./mailchimp.png\": \"./assets/addons/mailchimp.png\",\n\t\"./mailerlite.png\": \"./assets/addons/mailerlite.png\",\n\t\"./mailpoet.png\": \"./assets/addons/mailpoet.png\",\n\t\"./moosend.png\": \"./assets/addons/moosend.png\",\n\t\"./popper.png\": \"./assets/addons/popper.png\",\n\t\"./templates.png\": \"./assets/addons/templates.png\",\n\t\"./web-hooks.png\": \"./assets/addons/web-hooks.png\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./assets/addons sync recursive ^\\\\.\\\\/.*\\\\.png$\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 341.333,\n height: 341.333,\n viewBox: \"0 0 256 256\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#9b51e0\",\n d: \"M0 128v128h256V0H0v128zm145.6-66.6c2.9.7 7.8 2.8 11.1 4.5 6.7 3.6 18.3 14.6 16.8 16-2.6 2.3-31.9 23.1-32.6 23.1-.5 0-.9-.5-.9-1 0-.6-1.1-2.2-2.5-3.5-3-3.1-8.3-3.3-11.6-.6-2.2 1.8-2.4 2.7-2.7 14l-.4 12.1H136v37h-13v34H82v-44.8c0-35.5.3-46.1 1.5-51.7 3.9-18.6 18.2-34.2 35.6-38.9 6.9-1.9 19.9-2 26.5-.2z\"\n })));\n};\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwoJdmVyc2lvbj0iMS4wIgoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJd2lkdGg9IjI1Ni4wMDAwMDBwdCIKCWhlaWdodD0iMjU2LjAwMDAwMHB0IgoJdmlld0JveD0iMCAwIDI1Ni4wMDAwMDAgMjU2LjAwMDAwMCIKCXByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiCj4KCTxnCgkJdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjU2LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKCQlmaWxsPSIjOWI1MWUwIgoJCXN0cm9rZT0ibm9uZSIKCT4KCQk8cGF0aAoJCQlkPSJNMCAxMjgwIGwwIC0xMjgwIDEyODAgMCAxMjgwIDAgMCAxMjgwIDAgMTI4MCAtMTI4MCAwIC0xMjgwIDAgMAoJCQktMTI4MHogbTE0NTYgNjY2IGMyOSAtNyA3OCAtMjggMTExIC00NSA2NyAtMzYgMTgzIC0xNDYgMTY4IC0xNjAgLTI2IC0yMwoJCQktMzE5IC0yMzEgLTMyNiAtMjMxIC01IDAgLTkgNSAtOSAxMCAwIDYgLTExIDIyIC0yNSAzNSAtMzAgMzEgLTgzIDMzIC0xMTYgNgoJCQktMjIgLTE4IC0yNCAtMjcgLTI3IC0xNDAgbC00IC0xMjEgNjYgMCA2NiAwIDAgLTE4NSAwIC0xODUgLTY1IDAgLTY1IDAgMAoJCQktMTcwIDAgLTE3MCAtMjA1IDAgLTIwNSAwIDAgNDQ4IGMwIDM1NSAzIDQ2MSAxNSA1MTcgMzkgMTg2IDE4MiAzNDIgMzU2IDM4OQoJCQk2OSAxOSAxOTkgMjAgMjY1IDJ6IgoJCS8+Cgk8L2c+Cjwvc3ZnPg==\";","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgBrevo = function SvgBrevo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 64 64\"\n }, props), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 32,\n cy: 32,\n r: 32,\n style: {\n fill: \"#0b996e\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.83 28.07c2.05-2.05 3.01-4.41 3.01-7.29 0-5.95-4.29-9.91-10.74-9.91H20.24v42.28h12.79c9.72 0 17.01-6.08 17.01-14.14 0-4.41-2.24-8.38-6.2-10.94ZM25.98 16.36h9.47c3.2 0 5.31 1.85 5.31 4.67 0 3.2-2.75 5.63-8.38 7.48-3.84 1.22-5.56 2.24-6.2 3.45h-.19V16.35Zm6.52 31.28h-6.52v-6.52c0-2.88 2.43-5.69 5.82-6.78 3.01-1.02 5.5-2.05 7.61-3.13 2.81 1.67 4.54 4.54 4.54 7.55 0 5.12-4.86 8.89-11.45 8.89Z\",\n style: {\n fill: \"#fff\"\n }\n }));\n};\nexport { SvgBrevo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48dGl0bGU+QnJldm8gaWNvbiAtIFVuY2FubnkgQXV0b21hdG9yPC90aXRsZT48Y2lyY2xlIGN4PSIzMiIgY3k9IjMyIiByPSIzMiIgc3R5bGU9ImZpbGw6IzBiOTk2ZTsiLz48cGF0aCBkPSJtNDMuODMsMjguMDdjMi4wNS0yLjA1LDMuMDEtNC40MSwzLjAxLTcuMjksMC01Ljk1LTQuMjktOS45MS0xMC43NC05LjkxaC0xNS44NnY0Mi4yOGgxMi43OWM5LjcyLDAsMTcuMDEtNi4wOCwxNy4wMS0xNC4xNCwwLTQuNDEtMi4yNC04LjM4LTYuMi0xMC45NGgwWm0tMTcuODUtMTEuNzFoOS40N2MzLjIsMCw1LjMxLDEuODUsNS4zMSw0LjY3LDAsMy4yLTIuNzUsNS42My04LjM4LDcuNDgtMy44NCwxLjIyLTUuNTYsMi4yNC02LjIsMy40NWgtLjE5di0xNS42MVptNi41MiwzMS4yOGgtNi41MnYtNi41MmMwLTIuODgsMi40My01LjY5LDUuODItNi43OCwzLjAxLTEuMDIsNS41LTIuMDUsNy42MS0zLjEzLDIuODEsMS42Nyw0LjU0LDQuNTQsNC41NCw3LjU1LDAsNS4xMi00Ljg2LDguODktMTEuNDUsOC44OWgwWiIgc3R5bGU9ImZpbGw6I2ZmZjsiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgConvertkit = function SvgConvertkit(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"-0.093 0 174.921 162\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fb6970\",\n d: \"M84.358 127.894c30.359 0 53.824-22.904 53.824-51.157 0-26.47-22.045-42.631-36.646-42.631-20.332 0-36.63 14.248-38.952 35.4-.43 3.917-3.538 7.202-7.482 7.174-6.556-.047-16.089-.103-22.123-.082-2.598.009-4.745-2.096-4.617-4.689.91-18.345 7.053-35.498 18.766-48.674C60.143 8.594 79.097 0 101.536 0c37.701 0 73.292 34.209 73.292 76.737 0 47.089-39.07 85.263-89.668 85.263-36.084 0-72.427-23.549-85.116-56.472a.707.707 0 0 1-.032-.382c.17-.974.505-1.864.835-2.74.48-1.274.95-2.52.882-3.955l-.22-4.586a5.588 5.588 0 0 1 3.243-5.329l1.834-.853a7.077 7.077 0 0 0 3.99-5.138c.615-3.363 3.571-5.808 7.022-5.808 5.39 0 10.076 3.579 11.836 8.667 8.473 24.49 21.943 42.49 54.924 42.49z\"\n })));\n};\nexport { SvgConvertkit as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9Ii0uMDkyNzY5MDggMCAxNzQuOTIwNzY5MDggMTYyIiB3aWR0aD0iMjRweCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtODQuMzU4IDEyNy44OTRjMzAuMzU5IDAgNTMuODI0LTIyLjkwNCA1My44MjQtNTEuMTU3IDAtMjYuNDctMjIuMDQ1LTQyLjYzMS0zNi42NDYtNDIuNjMxLTIwLjMzMiAwLTM2LjYzIDE0LjI0OC0zOC45NTIgMzUuNC0uNDMgMy45MTctMy41MzggNy4yMDItNy40ODIgNy4xNzQtNi41NTYtLjA0Ny0xNi4wODktLjEwMy0yMi4xMjMtLjA4Mi0yLjU5OC4wMDktNC43NDUtMi4wOTYtNC42MTctNC42ODkuOTEtMTguMzQ1IDcuMDUzLTM1LjQ5OCAxOC43NjYtNDguNjc0IDEzLjAxNS0xNC42NDEgMzEuOTY5LTIzLjIzNSA1NC40MDgtMjMuMjM1IDM3LjcwMSAwIDczLjI5MiAzNC4yMDkgNzMuMjkyIDc2LjczNyAwIDQ3LjA4OS0zOS4wNyA4NS4yNjMtODkuNjY4IDg1LjI2My0zNi4wODQgMC03Mi40MjctMjMuNTQ5LTg1LjExNi01Ni40NzJhLjcwNy43MDcgMCAwIDEgLS4wMzItLjM4MmMuMTctLjk3NC41MDUtMS44NjQuODM1LTIuNzQuNDgtMS4yNzQuOTUtMi41Mi44ODItMy45NTVsLS4yMi00LjU4NmE1LjU4OCA1LjU4OCAwIDAgMSAzLjI0My01LjMyOWwxLjgzNC0uODUzYTcuMDc3IDcuMDc3IDAgMCAwIDMuOTktNS4xMzhjLjYxNS0zLjM2MyAzLjU3MS01LjgwOCA3LjAyMi01LjgwOCA1LjM5IDAgMTAuMDc2IDMuNTc5IDExLjgzNiA4LjY2NyA4LjQ3MyAyNC40OSAyMS45NDMgNDIuNDkgNTQuOTI0IDQyLjQ5eiIgZmlsbD0iI2ZiNjk3MCIvPjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmail = function SvgEmail(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n viewBox: \"0 0 114 114\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 7,\n d: \"M7 20h98v72H7zl44 44q5 4 10 0l44-44M7 92l36-36m26 0 36 36\"\n })));\n};\nexport { SvgEmail as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMTQgMTE0IiB3aWR0aD0iMjQiPg0KPHBhdGggc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjciIGZpbGw9Im5vbmUiIGQ9Im03LDIwaDk4djcySDd6bDQ0LDQ0cTUsNCAxMCwwbDQ0LTQ0TTcsOTJsMzYtMzZtMjYsMCAzNiwzNiIvPg0KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGetresponse = function SvgGetresponse(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 0 90 59\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00baff\",\n d: \"M87.6 52c0 2.1-1.7 3.7-3.7 3.7H3.7C1.7 55.8 0 54.1 0 52V3.7C0 1.7 1.7 0 3.7 0h80.1c2.1 0 3.7 1.7 3.7 3.7V52z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M86.8 1.4C76.4 17.5 60.3 32.3 43.7 31.9c-6.1-.1-13.1-1.9-19-6.7C20.3 21.6 15.9 16 14.2 8h-1.8c-2.7 0-4.3 2.4-4 4.6.1.5.2 1.1.3 1.7 1.3 7.8 5.9 16.6 13.6 22.3 6 4.4 13.4 7.3 21.5 7.3 14.6 0 30.2-9.3 43.8-33.2v-7c0-.8-.3-1.7-.8-2.3z\"\n })));\n};\nexport { SvgGetresponse as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDkwIDU5IiB2aWV3Qm94PSIwIDAgOTAgNTkiIGhlaWdodD0iMjRweCI+CjxwYXRoIGQ9Im04Ny42IDUyYzAgMi4xLTEuNyAzLjctMy43IDMuN2gtODAuMmMtMiAuMS0zLjctMS42LTMuNy0zLjd2LTQ4LjNjMC0yIDEuNy0zLjcgMy43LTMuN2g4MC4xYzIuMSAwIDMuNyAxLjcgMy43IDMuN3Y0OC4zeiIgZmlsbD0iIzAwYmFmZiIvPjxwYXRoIGQ9Im04Ni44IDEuNGMtMTAuNCAxNi4xLTI2LjUgMzAuOS00My4xIDMwLjUtNi4xLS4xLTEzLjEtMS45LTE5LTYuNy00LjQtMy42LTguOC05LjItMTAuNS0xNy4yLS43IDAtMS4yIDAtMS44IDAtMi43IDAtNC4zIDIuNC00IDQuNi4xLjUuMiAxLjEuMyAxLjcgMS4zIDcuOCA1LjkgMTYuNiAxMy42IDIyLjMgNiA0LjQgMTMuNCA3LjMgMjEuNSA3LjMgMTQuNiAwIDMwLjItOS4zIDQzLjgtMzMuMnYtN2MwLS44LS4zLTEuNy0uOC0yLjN6IiBmaWxsPSIjZmZmIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailchimp = function SvgMailchimp(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 200 200\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.4 2.4c-8.9 2.9-16.5 7.2-26.2 14.9-23.1 18.3-43 45.8-47.7 65.9-1.7 7.1-1.7 7.7-.1 12.6 1.3 3.8 2.9 6.2 6.1 8.7l4.2 3.5-.5 8.8c-.4 7.4-.1 9.6 1.6 13.4 4.1 9.3 15 17.8 22.8 17.8 3 0 3.6.5 6.6 6.2 2 4 6.5 9.5 11.8 14.9 7.3 7.3 10 9.4 18 13.2 11.3 5.4 19.5 7.5 32.1 8.3 35.8 2.3 67-18.4 74.4-49.3 2.4-9.8 1.6-14.9-2.7-18.8-4.7-4.2-6-8.5-4.1-13.5 3.7-9.4-2.2-17.4-16.2-21.5l-4-1.2-.6-10.4c-.6-10.9-3.1-19-7-22.5-1.8-1.6-1.7-1.8 2.6-7.3 7-9 9.8-16 9.3-23.7-.5-7.3-2.6-10.4-9.3-13.5-7.6-3.5-23.2-2.1-35.8 3.3l-4.7 2.1-5.5-5.2C98 3.9 91.2 0 87.5.1c-1.1 0-5.2 1-9.1 2.3zm18.1 9.7c2.5 2.3 4.5 4.7 4.5 5.3-.1.6-4 3.6-8.8 6.6-25.5 16.1-42.4 34.4-53.3 58-2.2 4.7-4.3 9.1-4.7 9.8-.4.8-2.5 2-4.6 2.7-2.1.8-5.5 2.9-7.5 4.9l-3.6 3.5-3.2-2.5c-4.3-3.3-5.7-8.5-4.2-15.5C17.6 54.1 62.9 8.4 87.3 8.1c4.2-.1 5.2.4 9.2 4zm16 23.9c-1.8 1.9-1.7 2 .1 2 2.6 0 13.7 2.9 14.6 3.8.4.4-5.9.7-14 .7-13.5 0-15.4.2-22.8 2.8-4.5 1.5-10.7 4.3-13.8 6.2-3.1 1.8-5.6 3-5.6 2.5 0-1.9 20.8-18.9 23.3-19 .4 0 .3.9-.3 1.9-1.9 3.6-1 4.2 3.3 2 5.1-2.7 11.4-4.7 14.6-4.8 2.3-.1 2.4 0 .6 1.9zm30.2 25c2.9 2.7 4 6.9 4.7 18.4.4 5.5 1.2 10.6 1.8 11.3s3.2 1.9 5.8 2.7c6.5 1.9 12.6 5.2 13.4 7.1 2.3 6-2.9 12.8-13.8 17.9-10.9 5.2-19.9 7-35.3 6.8l-13.2-.1-2.6 3c-3.2 3.9-3.4 10.4-.4 14.3 3.8 4.8 9.4 6.9 19.6 7.4 15.4.7 31.1-4.1 40.2-12.3 5-4.6 4.7-5.5-.7-2.1-15.8 9.9-40.4 13.5-51.4 7.4-2.4-1.3-4.4-3.1-4.6-4.1-.3-1.4.2-1.6 3-.9 5.6 1.2 24.6.9 26-.5 1-1-.8-1.3-8.7-1.3-8.6 0-13.7-.7-19.2-2.5-.7-.2-1-1.1-.7-2 .5-1.2 2.9-1.5 13.9-1.5 18.8 0 31.1-2.9 42.8-10.1 2.6-1.6 4.9-2.9 5.2-2.9s1 2.1 1.6 4.6c.9 3.4 1.8 4.8 3.7 5.5 2.3.9 2.4 1.3 2 6.8-1.5 21.1-26.4 39.4-51.8 37.8-16.1-.9-27.3-7.5-33.2-19.4-3-6.1-3.3-7.6-3.3-15.3.1-9.1 2-15 7-21.6 1.4-1.8 2.5-3.9 2.5-4.6s-2-3.8-4.5-6.8c-9-10.9-9.6-22.7-1.6-31.3 4.9-5.4 7.5-6.1 20.7-5.8l12 .2 6-4c6.6-4.5 10-5.1 13.1-2.1zm-95.6 41.3c11.7 7.8 13.1 30.3 2.4 37.3-3.5 2.3-11.2 2.1-16.1-.4-7.9-4.1-12.4-11.1-12.4-19.6 0-6.6 1.2-10.1 4.8-14 5.6-5.9 15.2-7.5 21.3-3.3z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136 78c-1.1 2.1.1 9.5 1.9 11.3 1.7 1.7 4.2 1.7 4.8.1.9-2.3-.7-10.2-2.3-11.9-2-2-3.1-1.9-4.4.5zm-34.7 13.4c-3.3 2.8-2.7 4.1 1.1 2.6 3.6-1.3 9.9-1.3 13.1.2 3.7 1.7 4.4 0 1.2-2.8-3.9-3.4-11.5-3.4-15.4 0zm38.4 4.2c-1.2 1.2-.8 4.1.7 5.3 1.7 1.4 3.9-.9 3.4-3.6-.3-1.8-2.9-2.9-4.1-1.7zm-30.6 1.7c-3.4 1.7-4.2 4.2-1 3.1 1.3-.5 4.1-.9 6.2-.8 4.1 0 4.8-1 1.8-2.6-2.5-1.3-4-1.3-7 .3zm20.3 3.2c-.7 1.8 1.3 4.5 3.3 4.5 2.3 0 2.8-3.1.8-4.6-2.4-1.8-3.4-1.8-4.1.1zm-96.9 8.7c-3 2.7-4.7 7.9-3.3 9.9.5.8 1.1 1 1.4.4 2.2-5 3.2-6 6.1-6.3 4.5-.4 6.7 2.9 5.1 8-2 6.6 1.7 12.1 6.5 9.6 2-1 2.3-3 .5-2.7-3.5.4-4-.1-3.3-3.4.3-1.7.9-5.3 1.2-7.8.4-4.2.2-4.8-2.7-7.2-3.9-3.3-8-3.5-11.5-.5z\"\n })));\n};\nexport { SvgMailchimp as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2ZXJzaW9uPSIxIgogIHZpZXdCb3g9IjAgMCAyMDAgMjAwIgo+CiAgICA8cGF0aAogICAgICAgIGQ9Ik03ODQgMTk3NmMtODktMjktMTY1LTcyLTI2Mi0xNDktMjMxLTE4My00MzAtNDU4LTQ3Ny02NTktMTctNzEtMTctNzctMS0xMjYgMTMtMzggMjktNjIgNjEtODdsNDItMzUtNS04OGMtNC03NC0xLTk2IDE2LTEzNCA0MS05MyAxNTAtMTc4IDIyOC0xNzggMzAgMCAzNi01IDY2LTYyIDIwLTQwIDY1LTk1IDExOC0xNDkgNzMtNzMgMTAwLTk0IDE4MC0xMzIgMTEzLTU0IDE5NS03NSAzMjEtODMgMzU4LTIzIDY3MCAxODQgNzQ0IDQ5MyAyNCA5OCAxNiAxNDktMjcgMTg4LTQ3IDQyLTYwIDg1LTQxIDEzNSAzNyA5NC0yMiAxNzQtMTYyIDIxNWwtNDAgMTItNiAxMDRjLTYgMTA5LTMxIDE5MC03MCAyMjUtMTggMTYtMTcgMTggMjYgNzMgNzAgOTAgOTggMTYwIDkzIDIzNy01IDczLTI2IDEwNC05MyAxMzUtNzYgMzUtMjMyIDIxLTM1OC0zM2wtNDctMjEtNTUgNTJjLTU1IDUyLTEyMyA5MS0xNjAgOTAtMTEgMC01Mi0xMC05MS0yM3ptMTgxLTk3YzI1LTIzIDQ1LTQ3IDQ1LTUzLTEtNi00MC0zNi04OC02Ni0yNTUtMTYxLTQyNC0zNDQtNTMzLTU4MC0yMi00Ny00My05MS00Ny05OC00LTgtMjUtMjAtNDYtMjctMjEtOC01NS0yOS03NS00OWwtMzYtMzUtMzIgMjVjLTQzIDMzLTU3IDg1LTQyIDE1NSA2NSAzMDggNTE4IDc2NSA3NjIgNzY4IDQyIDEgNTItNCA5Mi00MHptMTYwLTIzOWMtMTgtMTktMTctMjAgMS0yMCAyNiAwIDEzNy0yOSAxNDYtMzggNC00LTU5LTctMTQwLTctMTM1IDAtMTU0LTItMjI4LTI4LTQ1LTE1LTEwNy00My0xMzgtNjItMzEtMTgtNTYtMzAtNTYtMjUgMCAxOSAyMDggMTg5IDIzMyAxOTAgNCAwIDMtOS0zLTE5LTE5LTM2LTEwLTQyIDMzLTIwIDUxIDI3IDExNCA0NyAxNDYgNDggMjMgMSAyNCAwIDYtMTl6bTMwMi0yNTBjMjktMjcgNDAtNjkgNDctMTg0IDQtNTUgMTItMTA2IDE4LTExM3MzMi0xOSA1OC0yN2M2NS0xOSAxMjYtNTIgMTM0LTcxIDIzLTYwLTI5LTEyOC0xMzgtMTc5LTEwOS01Mi0xOTktNzAtMzUzLTY4bC0xMzIgMS0yNi0zMGMtMzItMzktMzQtMTA0LTQtMTQzIDM4LTQ4IDk0LTY5IDE5Ni03NCAxNTQtNyAzMTEgNDEgNDAyIDEyMyA1MCA0NiA0NyA1NS03IDIxLTE1OC05OS00MDQtMTM1LTUxNC03NC0yNCAxMy00NCAzMS00NiA0MS0zIDE0IDIgMTYgMzAgOSA1Ni0xMiAyNDYtOSAyNjAgNSAxMCAxMC04IDEzLTg3IDEzLTg2IDAtMTM3IDctMTkyIDI1LTcgMi0xMCAxMS03IDIwIDUgMTIgMjkgMTUgMTM5IDE1IDE4OCAwIDMxMSAyOSA0MjggMTAxIDI2IDE2IDQ5IDI5IDUyIDI5czEwLTIxIDE2LTQ2YzktMzQgMTgtNDggMzctNTUgMjMtOSAyNC0xMyAyMC02OC0xNS0yMTEtMjY0LTM5NC01MTgtMzc4LTE2MSA5LTI3MyA3NS0zMzIgMTk0LTMwIDYxLTMzIDc2LTMzIDE1MyAxIDkxIDIwIDE1MCA3MCAyMTYgMTQgMTggMjUgMzkgMjUgNDZzLTIwIDM4LTQ1IDY4Yy05MCAxMDktOTYgMjI3LTE2IDMxMyA0OSA1NCA3NSA2MSAyMDcgNThsMTIwLTIgNjAgNDBjNjYgNDUgMTAwIDUxIDEzMSAyMXpNNDcxIDk3N2MxMTctNzggMTMxLTMwMyAyNC0zNzMtMzUtMjMtMTEyLTIxLTE2MSA0LTc5IDQxLTEyNCAxMTEtMTI0IDE5NiAwIDY2IDEyIDEwMSA0OCAxNDAgNTYgNTkgMTUyIDc1IDIxMyAzM3oiCiAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLjEgMCAwIC0uMSAwIDIwMCkiCiAgICA+PC9wYXRoPgogICAgPHBhdGgKICAgICAgICBkPSJNMTM2MCAxMjIwYy0xMS0yMSAxLTk1IDE5LTExMyAxNy0xNyA0Mi0xNyA0OC0xIDkgMjMtNyAxMDItMjMgMTE5LTIwIDIwLTMxIDE5LTQ0LTV6TTEwMTMgMTA4NmMtMzMtMjgtMjctNDEgMTEtMjYgMzYgMTMgOTkgMTMgMTMxLTIgMzctMTcgNDQgMCAxMiAyOC0zOSAzNC0xMTUgMzQtMTU0IDB6TTEzOTcgMTA0NGMtMTItMTItOC00MSA3LTUzIDE3LTE0IDM5IDkgMzQgMzYtMyAxOC0yOSAyOS00MSAxN3pNMTA5MSAxMDI3Yy0zNC0xNy00Mi00Mi0xMC0zMSAxMyA1IDQxIDkgNjIgOCA0MSAwIDQ4IDEwIDE4IDI2LTI1IDEzLTQwIDEzLTcwLTN6TTEyOTQgOTk1Yy03LTE4IDEzLTQ1IDMzLTQ1IDIzIDAgMjggMzEgOCA0Ni0yNCAxOC0zNCAxOC00MS0xek0zMjUgOTA4Yy0zMC0yNy00Ny03OS0zMy05OSA1LTggMTEtMTAgMTQtNCAyMiA1MCAzMiA2MCA2MSA2MyA0NSA0IDY3LTI5IDUxLTgwLTIwLTY2IDE3LTEyMSA2NS05NiAyMCAxMCAyMyAzMCA1IDI3LTM1LTQtNDAgMS0zMyAzNCAzIDE3IDkgNTMgMTIgNzggNCA0MiAyIDQ4LTI3IDcyLTM5IDMzLTgwIDM1LTExNSA1eiIKICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCguMSAwIDAgLS4xIDAgMjAwKSIKICAgID48L3BhdGg+Cjwvc3ZnPg==\";","var _rect, _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailerlite = function SvgMailerlite(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n fill: \"none\",\n viewBox: \"0 0 256 256\"\n }, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 253.538,\n height: 253.538,\n x: 1.231,\n y: 1.231,\n fill: \"#09C269\",\n stroke: \"#09C269\",\n strokeWidth: 2.462,\n rx: 4.923\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M178.619 73H77.286C69.38 73 63 79.669 63 87.93v94.852l19.714-20.403h96c7.905 0 14.286-6.669 14.286-14.93v-59.52C192.905 79.67 186.524 73 178.619 73Zm-85.238 66.885c0 2.189-1.714 3.981-3.81 3.981-2.095 0-3.81-1.792-3.81-3.981v-42.3c0-2.19 1.715-3.982 3.81-3.982 2.096 0 3.81 1.791 3.81 3.981v42.301Zm17.714 0c0 2.189-1.714 3.981-3.809 3.981-2.096 0-3.81-1.792-3.81-3.981v-27.969c0-2.189 1.714-3.981 3.81-3.981 2.095 0 3.809 1.792 3.809 3.981v27.969Zm.476-40.708c0 2.388-1.809 4.279-4.095 4.279h-.381c-2.285 0-4.095-1.891-4.095-4.28v-.298c0-2.389 1.81-4.28 4.095-4.28h.381c2.286 0 4.095 1.891 4.095 4.28v.299Zm26.858 43.694c-1.715.895-3.619 1.293-5.619 1.293-6.572 0-10.096-3.284-10.096-9.555V115.4h-3.428a2.077 2.077 0 0 1-2.096-2.09v-.1c0-.696.381-1.393.953-1.891l8.476-8.659a2.912 2.912 0 0 1 1.714-.896c1.143 0 2.191.996 2.191 2.19V108.234h6.095c1.905 0 3.429 1.592 3.429 3.583s-1.524 3.583-3.429 3.583h-6.095v18.712c0 2.687 1.333 2.886 3.143 2.886a7.79 7.79 0 0 0 2.19-.298c.476-.199 1.048-.199 1.524-.299 1.714 0 3.143 1.493 3.238 3.384-.19 1.294-1.048 2.588-2.19 3.086Zm23.333-6.171c2.762.099 5.524-.598 8-1.891.476-.299 1.048-.399 1.524-.399 1.904 0 3.428 1.493 3.428 3.484v.1c-.095 1.393-.857 2.687-2.095 3.284-2.667 1.593-5.524 2.986-11.429 2.986-10.666 0-17.142-6.868-17.142-18.314 0-13.436 8.571-18.313 15.809-18.313 10.857 0 15.81 9.057 15.81 17.418.095 2.09-1.524 3.881-3.524 3.981h-20.286c1.048 4.976 4.476 7.664 9.905 7.664Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M160.047 114.703c-4.19-.099-7.714 3.185-8.095 7.565h16.286c-.476-4.38-4-7.664-8.191-7.565Z\"\n })));\n};\nexport { SvgMailerlite as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjU2IDI1NiIgd2lkdGg9IjI0cHgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQo8cmVjdCB4PSIxLjIzMDc3IiB5PSIxLjIzMDc3IiB3aWR0aD0iMjUzLjUzOCIgaGVpZ2h0PSIyNTMuNTM4IiByeD0iNC45MjMwOCIgZmlsbD0iIzA5QzI2OSIgc3Ryb2tlPSIjMDlDMjY5IiBzdHJva2Utd2lkdGg9IjIuNDYxNTQiLz4NCjxwYXRoIGQ9Ik0xNzguNjE5IDczSDc3LjI4NTdDNjkuMzgxIDczIDYzIDc5LjY2ODYgNjMgODcuOTI5NlYxODIuNzgyTDgyLjcxNDMgMTYyLjM3OUgxNzguNzE0QzE4Ni42MTkgMTYyLjM3OSAxOTMgMTU1LjcxIDE5MyAxNDcuNDQ5Vjg3LjkyOTZDMTkyLjkwNSA3OS42Njg2IDE4Ni41MjQgNzMgMTc4LjYxOSA3M1pNOTMuMzgwOSAxMzkuODg1QzkzLjM4MDkgMTQyLjA3NCA5MS42NjY3IDE0My44NjYgODkuNTcxNCAxNDMuODY2Qzg3LjQ3NjIgMTQzLjg2NiA4NS43NjE5IDE0Mi4wNzQgODUuNzYxOSAxMzkuODg1Vjk3LjU4NDFDODUuNzYxOSA5NS4zOTQ0IDg3LjQ3NjIgOTMuNjAyOSA4OS41NzE0IDkzLjYwMjlDOTEuNjY2NyA5My42MDI5IDkzLjM4MDkgOTUuMzk0NCA5My4zODA5IDk3LjU4NDFWMTM5Ljg4NVpNMTExLjA5NSAxMzkuODg1QzExMS4wOTUgMTQyLjA3NCAxMDkuMzgxIDE0My44NjYgMTA3LjI4NiAxNDMuODY2QzEwNS4xOSAxNDMuODY2IDEwMy40NzYgMTQyLjA3NCAxMDMuNDc2IDEzOS44ODVWMTExLjkxNkMxMDMuNDc2IDEwOS43MjcgMTA1LjE5IDEwNy45MzUgMTA3LjI4NiAxMDcuOTM1QzEwOS4zODEgMTA3LjkzNSAxMTEuMDk1IDEwOS43MjcgMTExLjA5NSAxMTEuOTE2VjEzOS44ODVaTTExMS41NzEgOTkuMTc2NkMxMTEuNTcxIDEwMS41NjUgMTA5Ljc2MiAxMDMuNDU2IDEwNy40NzYgMTAzLjQ1NkgxMDcuMDk1QzEwNC44MSAxMDMuNDU2IDEwMyAxMDEuNTY1IDEwMyA5OS4xNzY2Vjk4Ljg3OEMxMDMgOTYuNDg5MiAxMDQuODEgOTQuNTk4MiAxMDcuMDk1IDk0LjU5ODJIMTA3LjQ3NkMxMDkuNzYyIDk0LjU5ODIgMTExLjU3MSA5Ni40ODkyIDExMS41NzEgOTguODc4Vjk5LjE3NjZaTTEzOC40MjkgMTQyLjg3MUMxMzYuNzE0IDE0My43NjYgMTM0LjgxIDE0NC4xNjQgMTMyLjgxIDE0NC4xNjRDMTI2LjIzOCAxNDQuMTY0IDEyMi43MTQgMTQwLjg4IDEyMi43MTQgMTM0LjYwOVYxMTUuNEgxMTkuMjg2QzExOC4xNDMgMTE1LjQgMTE3LjE5IDExNC41MDQgMTE3LjE5IDExMy4zMVYxMTMuMjFDMTE3LjE5IDExMi41MTQgMTE3LjU3MSAxMTEuODE3IDExOC4xNDMgMTExLjMxOUwxMjYuNjE5IDEwMi42NkMxMjcuMDk1IDEwMi4xNjIgMTI3LjY2NyAxMDEuODY0IDEyOC4zMzMgMTAxLjc2NEMxMjkuNDc2IDEwMS43NjQgMTMwLjUyNCAxMDIuNzYgMTMwLjUyNCAxMDMuOTU0QzEzMC41MjQgMTAzLjk1NCAxMzAuNTI0IDEwMy45NTQgMTMwLjUyNCAxMDQuMDU0VjEwOC4yMzRIMTM2LjYxOUMxMzguNTI0IDEwOC4yMzQgMTQwLjA0OCAxMDkuODI2IDE0MC4wNDggMTExLjgxN0MxNDAuMDQ4IDExMy44MDggMTM4LjUyNCAxMTUuNCAxMzYuNjE5IDExNS40SDEzMC41MjRWMTM0LjExMkMxMzAuNTI0IDEzNi43OTkgMTMxLjg1NyAxMzYuOTk4IDEzMy42NjcgMTM2Ljk5OEMxMzQuNDI5IDEzNi45OTggMTM1LjE5IDEzNi44OTkgMTM1Ljg1NyAxMzYuN0MxMzYuMzMzIDEzNi41MDEgMTM2LjkwNSAxMzYuNTAxIDEzNy4zODEgMTM2LjQwMUMxMzkuMDk1IDEzNi40MDEgMTQwLjUyNCAxMzcuODk0IDE0MC42MTkgMTM5Ljc4NUMxNDAuNDI5IDE0MS4wNzkgMTM5LjU3MSAxNDIuMzczIDEzOC40MjkgMTQyLjg3MVpNMTYxLjc2MiAxMzYuN0MxNjQuNTI0IDEzNi43OTkgMTY3LjI4NiAxMzYuMTAyIDE2OS43NjIgMTM0LjgwOUMxNzAuMjM4IDEzNC41MSAxNzAuODEgMTM0LjQxIDE3MS4yODYgMTM0LjQxQzE3My4xOSAxMzQuNDEgMTc0LjcxNCAxMzUuOTAzIDE3NC43MTQgMTM3Ljg5NEMxNzQuNzE0IDEzNy44OTQgMTc0LjcxNCAxMzcuODk0IDE3NC43MTQgMTM3Ljk5NEMxNzQuNjE5IDEzOS4zODcgMTczLjg1NyAxNDAuNjgxIDE3Mi42MTkgMTQxLjI3OEMxNjkuOTUyIDE0Mi44NzEgMTY3LjA5NSAxNDQuMjY0IDE2MS4xOSAxNDQuMjY0QzE1MC41MjQgMTQ0LjI2NCAxNDQuMDQ4IDEzNy4zOTYgMTQ0LjA0OCAxMjUuOTVDMTQ0LjA0OCAxMTIuNTE0IDE1Mi42MTkgMTA3LjYzNyAxNTkuODU3IDEwNy42MzdDMTcwLjcxNCAxMDcuNjM3IDE3NS42NjcgMTE2LjY5NCAxNzUuNjY3IDEyNS4wNTVDMTc1Ljc2MiAxMjcuMTQ1IDE3NC4xNDMgMTI4LjkzNiAxNzIuMTQzIDEyOS4wMzZDMTcyLjA0OCAxMjkuMDM2IDE3MS45NTIgMTI5LjAzNiAxNzEuODU3IDEyOS4wMzZIMTUxLjg1N0MxNTIuOTA1IDEzNC4wMTIgMTU2LjMzMyAxMzYuNyAxNjEuNzYyIDEzNi43WiIgZmlsbD0id2hpdGUiLz4NCjxwYXRoIGQ9Ik0xNjAuMDQ3IDExNC43MDNDMTU1Ljg1NyAxMTQuNjA0IDE1Mi4zMzMgMTE3Ljg4OCAxNTEuOTUyIDEyMi4yNjhIMTY4LjIzOEMxNjcuNzYyIDExNy44ODggMTY0LjIzOCAxMTQuNjA0IDE2MC4wNDcgMTE0LjcwM1oiIGZpbGw9IndoaXRlIi8+DQo8L3N2Zz4=\";","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailpoet = function SvgMailpoet(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n viewBox: \"0 0 152.02 156.4\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FF5301\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.71 89.1c3.5 0 5.9-.8 7.2-2.3a8 8 0 0 0 2-5.4V35.7l17 45.1a12.68 12.68 0 0 0 3.7 5.4c1.6 1.3 4 2 7.2 2a12.54 12.54 0 0 0 5.9-1.4 8.41 8.41 0 0 0 3.9-5l18.1-50V81a8.53 8.53 0 0 0 2.1 6.1c1.4 1.4 3.7 2.2 6.9 2.2 3.5 0 5.9-.8 7.2-2.3a8 8 0 0 0 2-5.4V8.7a7.48 7.48 0 0 0-3.3-6.6c-2.1-1.4-5-2.1-8.6-2.1a19.3 19.3 0 0 0-9.4 2 11.63 11.63 0 0 0-5.1 6.8l-19.6 58.3-20.5-58.7a12.4 12.4 0 0 0-4.5-6.2c-2.1-1.5-5-2.2-8.8-2.2a16.51 16.51 0 0 0-8.9 2.1c-2.3 1.5-3.5 3.9-3.5 7.2v71.5c0 2.8.7 4.8 2 6.2 1.5 1.4 3.7 2.1 7 2.1ZM149 116.6l-2.4-1.9a7.4 7.4 0 0 0-9.4.3 19.65 19.65 0 0 1-12.5 4.6h-21.4A37.08 37.08 0 0 0 77 130.5l-1.1 1.2-1.1-1.1a37.25 37.25 0 0 0-26.3-10.9H27a19.59 19.59 0 0 1-12.4-4.6 7.28 7.28 0 0 0-9.4-.3l-2.4 1.9a7.43 7.43 0 0 0-2.8 5.5 7.14 7.14 0 0 0 2.4 5.7 37.28 37.28 0 0 0 24.6 9.5h21.6a19.59 19.59 0 0 1 18.9 14.4v.2c.1.7 1.2 4.4 8.5 4.4s8.4-3.7 8.5-4.4v-.2a19.59 19.59 0 0 1 18.9-14.4H125a37.28 37.28 0 0 0 24.6-9.5 7.42 7.42 0 0 0 2.4-5.7 7.86 7.86 0 0 0-3-5.6Z\"\n })))));\n};\nexport { SvgMailpoet as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNTIuMDIgMTU2LjQiIHdpZHRoPSIyNHB4Ij48dGl0bGU+c3ltYm9sPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iTGF5ZXJfMS0yIiBkYXRhLW5hbWU9IkxheWVyIDEiPjxwYXRoIGZpbGw9IiNGRjUzMDEiIGQ9Ik0zNy43MSw4OS4xYzMuNSwwLDUuOS0uOCw3LjItMi4zYTgsOCwwLDAsMCwyLTUuNFYzNS43bDE3LDQ1LjFhMTIuNjgsMTIuNjgsMCwwLDAsMy43LDUuNGMxLjYsMS4zLDQsMiw3LjIsMmExMi41NCwxMi41NCwwLDAsMCw1LjktMS40LDguNDEsOC40MSwwLDAsMCwzLjktNWwxOC4xLTUwVjgxYTguNTMsOC41MywwLDAsMCwyLjEsNi4xYzEuNCwxLjQsMy43LDIuMiw2LjksMi4yLDMuNSwwLDUuOS0uOCw3LjItMi4zYTgsOCwwLDAsMCwyLTUuNFY4LjdhNy40OCw3LjQ4LDAsMCwwLTMuMy02LjZjLTIuMS0xLjQtNS0yLjEtOC42LTIuMWExOS4zLDE5LjMsMCwwLDAtOS40LDIsMTEuNjMsMTEuNjMsMCwwLDAtNS4xLDYuOEw3NC45MSw2Ny4xLDU0LjQxLDguNGExMi40LDEyLjQsMCwwLDAtNC41LTYuMmMtMi4xLTEuNS01LTIuMi04LjgtMi4yYTE2LjUxLDE2LjUxLDAsMCwwLTguOSwyLjFjLTIuMywxLjUtMy41LDMuOS0zLjUsNy4yVjgwLjhjMCwyLjguNyw0LjgsMiw2LjJDMzIuMjEsODguNCwzNC40MSw4OS4xLDM3LjcxLDg5LjFaIi8+PHBhdGggZmlsbD0iI0ZGNTMwMSIgZD0iTTE0OSwxMTYuNmwtMi40LTEuOWE3LjQsNy40LDAsMCwwLTkuNC4zLDE5LjY1LDE5LjY1LDAsMCwxLTEyLjUsNC42aC0yMS40QTM3LjA4LDM3LjA4LDAsMCwwLDc3LDEzMC41bC0xLjEsMS4yLTEuMS0xLjFhMzcuMjUsMzcuMjUsMCwwLDAtMjYuMy0xMC45SDI3YTE5LjU5LDE5LjU5LDAsMCwxLTEyLjQtNC42LDcuMjgsNy4yOCwwLDAsMC05LjQtLjNsLTIuNCwxLjlBNy40Myw3LjQzLDAsMCwwLDAsMTIyLjJhNy4xNCw3LjE0LDAsMCwwLDIuNCw1LjdBMzcuMjgsMzcuMjgsMCwwLDAsMjcsMTM3LjRoMjEuNmExOS41OSwxOS41OSwwLDAsMSwxOC45LDE0LjR2LjJjLjEuNywxLjIsNC40LDguNSw0LjRzOC40LTMuNyw4LjUtNC40di0uMmExOS41OSwxOS41OSwwLDAsMSwxOC45LTE0LjRIMTI1YTM3LjI4LDM3LjI4LDAsMCwwLDI0LjYtOS41LDcuNDIsNy40MiwwLDAsMCwyLjQtNS43QTcuODYsNy44NiwwLDAsMCwxNDksMTE2LjZaIi8+PC9nPjwvZz48L3N2Zz4=\";","var _style, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMoosend = function SvgMoosend(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n id: \"moosend_svg__Layer_1\",\n width: 24,\n x: 0,\n y: 0,\n style: {\n enableBackground: \"new 0 0 215.6 200\"\n },\n viewBox: \"0 0 215.6 200\"\n }, props), _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \".moosend_svg__st0{fill:#fff}.moosend_svg__st1{fill:#394257}\")), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M161.8 103.5c0 9.4-7.6 17-17 17H72.3c-9.4 0-17-7.6-17-17V32.8c0-9.4 7.6-17 17-17h72.5c9.4 0 17 7.6 17 17v70.7z\",\n className: \"moosend_svg__st0\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74 13.1s7.1-23.3 16 .3c-15.6-.3-16-.3-16-.3zM126.7 13.1s7.1-23.3 16 .3c-15.6-.3-16-.3-16-.3z\",\n className: \"moosend_svg__st1\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.8 141c.4 1.4-.3 3-1.8 3.4L89.8 160c-1.4.4-3-.3-3.4-1.8l-10.3-32.4c-.5-1.4.3-3 1.8-3.4l49.2-15.6c1.4-.5 3 .3 3.4 1.8l10.3 32.4z\",\n className: \"moosend_svg__st0\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.3 163.2c-2.3 0-4.2-1.4-4.9-3.6l-10.3-32.4c-.9-2.7.6-5.6 3.3-6.5l49.2-15.6c2.6-.8 5.6.7 6.5 3.3l10.3 32.4c.9 2.7-.6 5.6-3.3 6.5l-49.2 15.6c-.6.2-1.1.3-1.6.3zm38.9-53.5-49.3 15.7c-.1 0-.2.2-.2.4L89 158.1c.1.2.3.2.4.2l49.2-15.6c.1 0 .2-.2.2-.4l-10.3-32.4c-.1-.1-.2-.2-.3-.2z\",\n className: \"moosend_svg__st1\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.8 123.2c-1.2.6-1.8 2-1.4 3.3l10.3 32.4c.2.5.5 1 .9 1.3l13.4-26-23.2-11z\",\n className: \"moosend_svg__st0\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m89 162.5-3-.6c-.8-.6-1.3-1.5-1.7-2.4L74 127.1c-.8-2.4.4-5.1 2.7-6.2l1-.5 26.4 12.5L89 162.5zm-10.1-36.1 8.9 27.9 9.8-19.1-18.7-8.8z\",\n className: \"moosend_svg__st1\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141 143.3c.2-.6.3-1.2.1-1.8l-10.2-32.2c-.5-1.4-1.9-2-3.4-1.6l-.3.1-13 21.9 26.8 13.6z\",\n className: \"moosend_svg__st0\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m140.9 146-30.2-15.3 14.8-24.9 1.2-.4c2.8-.9 5.6.6 6.4 3.2l10.2 32.2c.3 1.1.3 2.3-.1 3.4l-2.3 1.8zm-23.3-17.2 20.1 10.2-9.1-28.6-11 18.4z\",\n className: \"moosend_svg__st1\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.3 107.5c-.6-.3-1.3-.3-1.9-.1L78.2 123c-.8.2-1.3.8-1.6 1.5l33.9 17.1 18.8-34.1z\",\n className: \"moosend_svg__st0\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M111.4 144.8 74.1 126l.2-2.5c.6-1.3 1.7-2.3 3.1-2.8l49.2-15.6c1.2-.4 2.5-.3 3.7.2l2.4 1.1-21.3 38.4zm-29.6-20.3 27.6 13.9 15.3-27.5-42.9 13.6z\",\n className: \"moosend_svg__st1\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.1 77.5c-24.8 0-46 6.5-56.6 16.6 0 13.1 10.4 27 23.5 27h66.2c13.1 0 23.3-14.1 23.3-27.3-10.6-10.1-31.6-16.3-56.4-16.3zM153.9 15.5l40.3 23.3s-18 14.4-32.3 4.1c-.8-.6.4-16.9-.3-17.6l-7.7-9.8zM61.7 15.5 21.4 38.8s18 14.4 32.3 4.1c.8-.6-.4-16.9.3-17.6l7.7-9.8z\",\n className: \"moosend_svg__st1\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.1 82.4c-24.8 0-45.3 6.8-55.9 16.2 0 12.3 9.7 22.5 22.8 22.5h66.2c13.1 0 22.9-9.8 23-22.1-10.7-9.4-31.3-16.6-56.1-16.6z\",\n style: {\n fill: \"#e16053\"\n }\n }), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.5 58.4c-.7 2.8-2.7 4.7-4.4 4.3-1.7-.4-2.6-3-1.9-5.8.7-2.8 2.7-4.7 4.4-4.3 1.8.4 2.6 3.1 1.9 5.8zM119.8 56.8c.8 2.8 0 5.4-1.7 5.9s-3.7-1.3-4.5-4.1c-.8-2.8 0-5.4 1.7-5.9 1.6-.5 3.7 1.3 4.5 4.1zM90.3 102.8c2.3 4 2.2 8.4-.3 9.8-2.5 1.5-6.4-.6-8.7-4.6-2.3-4-2.2-8.4.3-9.8 2.5-1.5 6.4.6 8.7 4.6zM128.6 103c-2.3 4-2.2 8.4.3 9.8 2.5 1.5 6.4-.6 8.7-4.6 2.3-4 2.2-8.4-.3-9.8-2.5-1.4-6.3.6-8.7 4.6z\",\n className: \"moosend_svg__st1\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.4 35.2c0-13.2-10.7-23.9-23.9-23.9H75c-13.2 0-23.9 10.5-23.9 23.7v66.2c0 13.2 10.7 24.3 23.9 24.3h66.2c13.2 0 23.9-10.9 23.9-24.1l-.7-66.2zm-4.1 67.5c0 9.8-8 17.8-17.8 17.8H73.8c-9.8 0-17.8-8-17.8-17.8V34.1c0-9.8 8-17.8 17.8-17.8h68.6c9.8 0 17.8 8 17.8 17.8v68.6z\",\n className: \"moosend_svg__st1\"\n })));\n};\nexport { SvgMoosend as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNS4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMTUuNiAyMDAiIHdpZHRoPSIyNHB4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyMTUuNiAyMDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiNGRkZGRkY7fQ0KCS5zdDF7ZmlsbDojMzk0MjU3O30NCgkuc3Qye2ZpbGw6I0UxNjA1Mzt9DQoJLnN0M3tmaWxsOiM5Njk2OTY7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNjEuOCwxMDMuNWMwLDkuNC03LjYsMTctMTcsMTdINzIuM2MtOS40LDAtMTctNy42LTE3LTE3VjMyLjhjMC05LjQsNy42LTE3LDE3LTE3aDcyLjVjOS40LDAsMTcsNy42LDE3LDE3DQoJCQkJTDE2MS44LDEwMy41TDE2MS44LDEwMy41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik03NCwxMy4xYzAsMCw3LjEtMjMuMywxNiwwLjNDNzQuNCwxMy4xLDc0LDEzLjEsNzQsMTMuMXoiLz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTI2LjcsMTMuMWMwLDAsNy4xLTIzLjMsMTYsMC4zQzEyNy4xLDEzLjEsMTI2LjcsMTMuMSwxMjYuNywxMy4xeiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNDAuOCwxNDFjMC40LDEuNC0wLjMsMy0xLjgsMy40bC00OS4yLDE1LjZjLTEuNCwwLjQtMy0wLjMtMy40LTEuOGwtMTAuMy0zMi40Yy0wLjUtMS40LDAuMy0zLDEuOC0zLjQNCgkJCQkJbDQ5LjItMTUuNmMxLjQtMC41LDMsMC4zLDMuNCwxLjhMMTQwLjgsMTQxeiIvPg0KCQkJPC9nPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTg5LjMsMTYzLjJjLTIuMywwLTQuMi0xLjQtNC45LTMuNmwtMTAuMy0zMi40Yy0wLjktMi43LDAuNi01LjYsMy4zLTYuNWw0OS4yLTE1LjYNCgkJCQkJYzIuNi0wLjgsNS42LDAuNyw2LjUsMy4zbDEwLjMsMzIuNGMwLjksMi43LTAuNiw1LjYtMy4zLDYuNWwtNDkuMiwxNS42QzkwLjMsMTYzLjEsODkuOCwxNjMuMiw4OS4zLDE2My4yeiBNMTI4LjIsMTA5LjcNCgkJCQkJbC00OS4zLDE1LjdjLTAuMSwwLTAuMiwwLjItMC4yLDAuNEw4OSwxNTguMWMwLjEsMC4yLDAuMywwLjIsMC40LDAuMmw0OS4yLTE1LjZjMC4xLDAsMC4yLTAuMiwwLjItMC40bC0xMC4zLTMyLjQNCgkJCQkJQzEyOC40LDEwOS44LDEyOC4zLDEwOS43LDEyOC4yLDEwOS43eiIvPg0KCQkJPC9nPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTc3LjgsMTIzLjJjLTEuMiwwLjYtMS44LDItMS40LDMuM2wxMC4zLDMyLjRjMC4yLDAuNSwwLjUsMSwwLjksMS4zbDEzLjQtMjZMNzcuOCwxMjMuMnoiLz4NCgkJCTwvZz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik04OSwxNjIuNWwtMy0wLjZjLTAuOC0wLjYtMS4zLTEuNS0xLjctMi40bC0xMC4zLTMyLjRjLTAuOC0yLjQsMC40LTUuMSwyLjctNi4ybDEtMC41bDI2LjQsMTIuNUw4OSwxNjIuNXoNCgkJCQkJIE03OC45LDEyNi40bDguOSwyNy45bDkuOC0xOS4xTDc4LjksMTI2LjR6Ii8+DQoJCQk8L2c+DQoJCTwvZz4NCgkJPGc+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTQxLDE0My4zYzAuMi0wLjYsMC4zLTEuMiwwLjEtMS44bC0xMC4yLTMyLjJjLTAuNS0xLjQtMS45LTItMy40LTEuNmwtMC4zLDAuMWwtMTMsMjEuOUwxNDEsMTQzLjN6Ii8+DQoJCQk8L2c+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTQwLjksMTQ2bC0zMC4yLTE1LjNsMTQuOC0yNC45bDEuMi0wLjRjMi44LTAuOSw1LjYsMC42LDYuNCwzLjJsMTAuMiwzMi4yYzAuMywxLjEsMC4zLDIuMy0wLjEsMy40DQoJCQkJCUwxNDAuOSwxNDZ6IE0xMTcuNiwxMjguOGwyMC4xLDEwLjJsLTkuMS0yOC42TDExNy42LDEyOC44eiIvPg0KCQkJPC9nPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyOS4zLDEwNy41Yy0wLjYtMC4zLTEuMy0wLjMtMS45LTAuMWwtNDkuMiwxNS42Yy0wLjgsMC4yLTEuMywwLjgtMS42LDEuNWwzMy45LDE3LjFMMTI5LjMsMTA3LjV6Ii8+DQoJCQk8L2c+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTExLjQsMTQ0LjhMNzQuMSwxMjZsMC4yLTIuNWMwLjYtMS4zLDEuNy0yLjMsMy4xLTIuOGw0OS4yLTE1LjZjMS4yLTAuNCwyLjUtMC4zLDMuNywwLjJsMi40LDEuMQ0KCQkJCQlMMTExLjQsMTQ0Ljh6IE04MS44LDEyNC41bDI3LjYsMTMuOWwxNS4zLTI3LjVMODEuOCwxMjQuNXoiLz4NCgkJCTwvZz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTA4LjEsNzcuNWMtMjQuOCwwLTQ2LDYuNS01Ni42LDE2LjZjMCwxMy4xLDEwLjQsMjcsMjMuNSwyN2g2Ni4yYzEzLjEsMCwyMy4zLTE0LjEsMjMuMy0yNy4zDQoJCQkJQzE1My45LDgzLjcsMTMyLjksNzcuNSwxMDguMSw3Ny41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNTMuOSwxNS41bDQwLjMsMjMuM2MwLDAtMTgsMTQuNC0zMi4zLDQuMWMtMC44LTAuNiwwLjQtMTYuOS0wLjMtMTcuNkwxNTMuOSwxNS41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MS43LDE1LjVMMjEuNCwzOC44YzAsMCwxOCwxNC40LDMyLjMsNC4xYzAuOC0wLjYtMC40LTE2LjksMC4zLTE3LjZMNjEuNywxNS41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMDguMSw4Mi40Yy0yNC44LDAtNDUuMyw2LjgtNTUuOSwxNi4yYzAsMTIuMyw5LjcsMjIuNSwyMi44LDIyLjVoNjYuMmMxMy4xLDAsMjIuOS05LjgsMjMtMjIuMQ0KCQkJCUMxNTMuNSw4OS42LDEzMi45LDgyLjQsMTA4LjEsODIuNHoiLz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTAzLjUsNTguNGMtMC43LDIuOC0yLjcsNC43LTQuNCw0LjNjLTEuNy0wLjQtMi42LTMtMS45LTUuOGMwLjctMi44LDIuNy00LjcsNC40LTQuMw0KCQkJCUMxMDMuNCw1MywxMDQuMiw1NS43LDEwMy41LDU4LjR6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTExOS44LDU2LjhjMC44LDIuOCwwLDUuNC0xLjcsNS45Yy0xLjcsMC41LTMuNy0xLjMtNC41LTQuMWMtMC44LTIuOCwwLTUuNCwxLjctNS45DQoJCQkJQzExNi45LDUyLjIsMTE5LDU0LDExOS44LDU2Ljh6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTkwLjMsMTAyLjhjMi4zLDQsMi4yLDguNC0wLjMsOS44Yy0yLjUsMS41LTYuNC0wLjYtOC43LTQuNmMtMi4zLTQtMi4yLTguNCwwLjMtOS44DQoJCQkJQzg0LjEsOTYuNyw4OCw5OC44LDkwLjMsMTAyLjh6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTEyOC42LDEwM2MtMi4zLDQtMi4yLDguNCwwLjMsOS44YzIuNSwxLjUsNi40LTAuNiw4LjctNC42YzIuMy00LDIuMi04LjQtMC4zLTkuOA0KCQkJCUMxMzQuOCw5NywxMzEsOTksMTI4LjYsMTAzeiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNjQuNCwzNS4yYzAtMTMuMi0xMC43LTIzLjktMjMuOS0yMy45SDc1Yy0xMy4yLDAtMjMuOSwxMC41LTIzLjksMjMuN3Y2Ni4yYzAsMTMuMiwxMC43LDI0LjMsMjMuOSwyNC4zDQoJCQkJCWg2Ni4yYzEzLjIsMCwyMy45LTEwLjksMjMuOS0yNC4xTDE2NC40LDM1LjJ6IE0xNjAuMywxMDIuN2MwLDkuOC04LDE3LjgtMTcuOCwxNy44SDczLjhjLTkuOCwwLTE3LjgtOC0xNy44LTE3LjhWMzQuMQ0KCQkJCQljMC05LjgsOC0xNy44LDE3LjgtMTcuOGg2OC42YzkuOCwwLDE3LjgsOCwxNy44LDE3LjhWMTAyLjd6Ii8+DQoJCQk8L2c+DQoJCTwvZz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgWebhook = function SvgWebhook(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.46 19C9 21.07 6.15 21.59 4.09 20.15c-2.05-1.44-2.53-4.31-1.09-6.4a4.585 4.585 0 0 1 3.58-1.98l.05 1.43c-.91.07-1.79.54-2.36 1.36-1 1.44-.69 3.38.68 4.35 1.38.96 3.31.59 4.31-.84.31-.45.49-.94.56-1.44v-1.01l5.58-.04.07-.11c.53-.92 1.68-1.24 2.58-.72a1.9 1.9 0 0 1 .68 2.6c-.53.91-1.69 1.23-2.59.71-.41-.23-.7-.6-.83-1.02l-4.07.02a4.96 4.96 0 0 1-.78 1.94m7.28-7.14c2.53.31 4.33 2.58 4.02 5.07-.31 2.5-2.61 4.27-5.14 3.96a4.629 4.629 0 0 1-3.43-2.21l1.24-.72a3.22 3.22 0 0 0 2.32 1.45c1.75.21 3.3-.98 3.51-2.65.21-1.67-1.03-3.2-2.76-3.41-.54-.06-1.06.01-1.53.18l-.85.44-2.58-4.77h-.22a1.906 1.906 0 0 1-1.85-1.95c.03-1.04.93-1.85 1.98-1.81 1.05.06 1.88.91 1.85 1.95-.02.44-.19.84-.46 1.15l1.9 3.51c.62-.2 1.3-.27 2-.19M8.25 9.14c-1-2.35.06-5.04 2.37-6.02 2.32-.98 5 .13 6 2.48.59 1.37.47 2.87-.2 4.07l-1.24-.72c.42-.81.49-1.8.09-2.73-.68-1.6-2.49-2.37-4.04-1.72-1.56.66-2.26 2.5-1.58 4.1.28.66.75 1.17 1.32 1.51l.39.21-3.07 4.99c.03.05.07.11.1.19.49.91.15 2.06-.77 2.55-.91.49-2.06.13-2.56-.81-.49-.93-.15-2.08.77-2.57.39-.21.82-.26 1.23-.17l2.31-3.77c-.47-.43-.87-.97-1.12-1.59Z\"\n })));\n};\nexport { SvgWebhook as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXdlYmhvb2siIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTAuNDYsMTlDOSwyMS4wNyA2LjE1LDIxLjU5IDQuMDksMjAuMTVDMi4wNCwxOC43MSAxLjU2LDE1Ljg0IDMsMTMuNzVDMy44NywxMi41IDUuMjEsMTEuODMgNi41OCwxMS43N0w2LjYzLDEzLjJDNS43MiwxMy4yNyA0Ljg0LDEzLjc0IDQuMjcsMTQuNTZDMy4yNywxNiAzLjU4LDE3Ljk0IDQuOTUsMTguOTFDNi4zMywxOS44NyA4LjI2LDE5LjUgOS4yNiwxOC4wN0M5LjU3LDE3LjYyIDkuNzUsMTcuMTMgOS44MiwxNi42M1YxNS42MkwxNS40LDE1LjU4TDE1LjQ3LDE1LjQ3QzE2LDE0LjU1IDE3LjE1LDE0LjIzIDE4LjA1LDE0Ljc1QzE4Ljk1LDE1LjI3IDE5LjI2LDE2LjQzIDE4LjczLDE3LjM1QzE4LjIsMTguMjYgMTcuMDQsMTguNTggMTYuMTQsMTguMDZDMTUuNzMsMTcuODMgMTUuNDQsMTcuNDYgMTUuMzEsMTcuMDRMMTEuMjQsMTcuMDZDMTEuMTMsMTcuNzMgMTAuODcsMTguMzggMTAuNDYsMTlNMTcuNzQsMTEuODZDMjAuMjcsMTIuMTcgMjIuMDcsMTQuNDQgMjEuNzYsMTYuOTNDMjEuNDUsMTkuNDMgMTkuMTUsMjEuMiAxNi42MiwyMC44OUMxNS4xMywyMC43MSAxMy45LDE5Ljg2IDEzLjE5LDE4LjY4TDE0LjQzLDE3Ljk2QzE0LjkyLDE4LjczIDE1Ljc1LDE5LjI4IDE2Ljc1LDE5LjQxQzE4LjUsMTkuNjIgMjAuMDUsMTguNDMgMjAuMjYsMTYuNzZDMjAuNDcsMTUuMDkgMTkuMjMsMTMuNTYgMTcuNSwxMy4zNUMxNi45NiwxMy4yOSAxNi40NCwxMy4zNiAxNS45NywxMy41M0wxNS4xMiwxMy45N0wxMi41NCw5LjJIMTIuMzJDMTEuMjYsOS4xNiAxMC40NCw4LjI5IDEwLjQ3LDcuMjVDMTAuNSw2LjIxIDExLjQsNS40IDEyLjQ1LDUuNDRDMTMuNSw1LjUgMTQuMzMsNi4zNSAxNC4zLDcuMzlDMTQuMjgsNy44MyAxNC4xMSw4LjIzIDEzLjg0LDguNTRMMTUuNzQsMTIuMDVDMTYuMzYsMTEuODUgMTcuMDQsMTEuNzggMTcuNzQsMTEuODZNOC4yNSw5LjE0QzcuMjUsNi43OSA4LjMxLDQuMSAxMC42MiwzLjEyQzEyLjk0LDIuMTQgMTUuNjIsMy4yNSAxNi42Miw1LjZDMTcuMjEsNi45NyAxNy4wOSw4LjQ3IDE2LjQyLDkuNjdMMTUuMTgsOC45NUMxNS42LDguMTQgMTUuNjcsNy4xNSAxNS4yNyw2LjIyQzE0LjU5LDQuNjIgMTIuNzgsMy44NSAxMS4yMyw0LjVDOS42Nyw1LjE2IDguOTcsNyA5LjY1LDguNkM5LjkzLDkuMjYgMTAuNCw5Ljc3IDEwLjk3LDEwLjExTDExLjM2LDEwLjMyTDguMjksMTUuMzFDOC4zMiwxNS4zNiA4LjM2LDE1LjQyIDguMzksMTUuNUM4Ljg4LDE2LjQxIDguNTQsMTcuNTYgNy42MiwxOC4wNUM2LjcxLDE4LjU0IDUuNTYsMTguMTggNS4wNiwxNy4yNEM0LjU3LDE2LjMxIDQuOTEsMTUuMTYgNS44MywxNC42N0M2LjIyLDE0LjQ2IDYuNjUsMTQuNDEgNy4wNiwxNC41TDkuMzcsMTAuNzNDOC45LDEwLjMgOC41LDkuNzYgOC4yNSw5LjE0WiIgLz48L3N2Zz4=\";","/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack, __experimentalVStack as VStack, __experimentalHeading as Heading, __experimentalSpacer as Spacer } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nfunction Header({\n title\n}) {\n return /*#__PURE__*/_jsx(VStack, {\n className: \"dataforms-layouts__dropdown-header\",\n spacing: 4,\n children: /*#__PURE__*/_jsxs(HStack, {\n alignment: \"center\",\n children: [/*#__PURE__*/_jsx(Heading, {\n level: 2,\n size: 13,\n children: title\n }), /*#__PURE__*/_jsx(Spacer, {})]\n })\n });\n}\nfunction DataFormCombinedEdit({\n field,\n data,\n onChange,\n hideLabelFromVision\n}) {\n var _field$children;\n const className = 'dataforms-combined-edit';\n const visibleChildren = ((_field$children = field.children) !== null && _field$children !== void 0 ? _field$children : []).map(fieldId => field.fields.find(({\n id\n }) => id === fieldId)).filter(childField => !!childField);\n const children = visibleChildren.map(child => {\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"dataforms-combined-edit__field\",\n children: /*#__PURE__*/_jsx(child.Edit, {\n data: data,\n field: child,\n onChange: onChange\n })\n }, child.id);\n });\n const Stack = field.direction === 'horizontal' ? HStack : VStack;\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [!hideLabelFromVision && /*#__PURE__*/_jsx(Header, {\n title: field.label\n }), /*#__PURE__*/_jsx(Stack, {\n spacing: 4,\n className: className,\n as: \"fieldset\",\n children: children\n })]\n });\n}\nexport default DataFormCombinedEdit;\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { Button, CheckboxControl, __experimentalHStack as HStack } from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useMemo, useState, useRef, useContext } from '@wordpress/element';\nimport { useRegistry } from '@wordpress/data';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { ActionWithModal } from '../dataviews-item-actions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function useHasAPossibleBulkAction(actions, item) {\n return useMemo(() => {\n return actions.some(action => {\n return action.supportsBulk && (!action.isEligible || action.isEligible(item));\n });\n }, [actions, item]);\n}\nexport function useSomeItemHasAPossibleBulkAction(actions, data) {\n return useMemo(() => {\n return data.some(item => {\n return actions.some(action => {\n return action.supportsBulk && (!action.isEligible || action.isEligible(item));\n });\n });\n }, [actions, data]);\n}\nexport function BulkSelectionCheckbox({\n selection,\n onChangeSelection,\n data,\n actions,\n getItemId\n}) {\n const selectableItems = useMemo(() => {\n return data.filter(item => {\n return actions.some(action => action.supportsBulk && (!action.isEligible || action.isEligible(item)));\n });\n }, [data, actions]);\n const selectedItems = data.filter(item => selection.includes(getItemId(item)) && selectableItems.includes(item));\n const areAllSelected = selectedItems.length === selectableItems.length;\n return /*#__PURE__*/_jsx(CheckboxControl, {\n className: \"dataviews-view-table-selection-checkbox\",\n __nextHasNoMarginBottom: true,\n checked: areAllSelected,\n indeterminate: !areAllSelected && !!selectedItems.length,\n onChange: () => {\n if (areAllSelected) {\n onChangeSelection([]);\n } else {\n onChangeSelection(selectableItems.map(item => getItemId(item)));\n }\n },\n \"aria-label\": areAllSelected ? __('Deselect all') : __('Select all')\n });\n}\nfunction ActionTrigger({\n action,\n onClick,\n isBusy,\n items\n}) {\n const label = typeof action.label === 'string' ? action.label : action.label(items);\n return /*#__PURE__*/_jsx(Button, {\n disabled: isBusy,\n accessibleWhenDisabled: true,\n label: label,\n icon: action.icon,\n isDestructive: action.isDestructive,\n size: \"compact\",\n onClick: onClick,\n isBusy: isBusy,\n tooltipPosition: \"top\"\n });\n}\nconst EMPTY_ARRAY = [];\nfunction ActionButton({\n action,\n selectedItems,\n actionInProgress,\n setActionInProgress\n}) {\n const registry = useRegistry();\n const selectedEligibleItems = useMemo(() => {\n return selectedItems.filter(item => {\n return !action.isEligible || action.isEligible(item);\n });\n }, [action, selectedItems]);\n if ('RenderModal' in action) {\n return /*#__PURE__*/_jsx(ActionWithModal, {\n action: action,\n items: selectedEligibleItems,\n ActionTrigger: ActionTrigger\n }, action.id);\n }\n return /*#__PURE__*/_jsx(ActionTrigger, {\n action: action,\n onClick: async () => {\n setActionInProgress(action.id);\n await action.callback(selectedItems, {\n registry\n });\n setActionInProgress(null);\n },\n items: selectedEligibleItems,\n isBusy: actionInProgress === action.id\n }, action.id);\n}\nfunction renderFooterContent(data, actions, getItemId, selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onChangeSelection) {\n const message = selectedItems.length > 0 ? sprintf( /* translators: %d: number of items. */\n _n('%d Item selected', '%d Items selected', selectedItems.length), selectedItems.length) : sprintf( /* translators: %d: number of items. */\n _n('%d Item', '%d Items', data.length), data.length);\n return /*#__PURE__*/_jsxs(HStack, {\n expanded: false,\n className: \"dataviews-bulk-actions-footer__container\",\n spacing: 3,\n children: [/*#__PURE__*/_jsx(BulkSelectionCheckbox, {\n selection: selection,\n onChangeSelection: onChangeSelection,\n data: data,\n actions: actions,\n getItemId: getItemId\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-bulk-actions-footer__item-count\",\n children: message\n }), /*#__PURE__*/_jsxs(HStack, {\n className: \"dataviews-bulk-actions-footer__action-buttons\",\n expanded: false,\n spacing: 1,\n children: [actionsToShow.map(action => {\n return /*#__PURE__*/_jsx(ActionButton, {\n action: action,\n selectedItems: selectedItems,\n actionInProgress: actionInProgress,\n setActionInProgress: setActionInProgress\n }, action.id);\n }), selectedItems.length > 0 && /*#__PURE__*/_jsx(Button, {\n icon: closeSmall,\n showTooltip: true,\n tooltipPosition: \"top\",\n size: \"compact\",\n label: __('Cancel'),\n disabled: !!actionInProgress,\n accessibleWhenDisabled: false,\n onClick: () => {\n onChangeSelection(EMPTY_ARRAY);\n }\n })]\n })]\n });\n}\nfunction FooterContent({\n selection,\n actions,\n onChangeSelection,\n data,\n getItemId\n}) {\n const [actionInProgress, setActionInProgress] = useState(null);\n const footerContent = useRef(null);\n const bulkActions = useMemo(() => actions.filter(action => action.supportsBulk), [actions]);\n const selectableItems = useMemo(() => {\n return data.filter(item => {\n return bulkActions.some(action => !action.isEligible || action.isEligible(item));\n });\n }, [data, bulkActions]);\n const selectedItems = useMemo(() => {\n return data.filter(item => selection.includes(getItemId(item)) && selectableItems.includes(item));\n }, [selection, data, getItemId, selectableItems]);\n const actionsToShow = useMemo(() => actions.filter(action => {\n return action.supportsBulk && action.icon && selectedItems.some(item => !action.isEligible || action.isEligible(item));\n }), [actions, selectedItems]);\n if (!actionInProgress) {\n if (footerContent.current) {\n footerContent.current = null;\n }\n return renderFooterContent(data, actions, getItemId, selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onChangeSelection);\n } else if (!footerContent.current) {\n footerContent.current = renderFooterContent(data, actions, getItemId, selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onChangeSelection);\n }\n return footerContent.current;\n}\nexport function BulkActionsFooter() {\n const {\n data,\n selection,\n actions = EMPTY_ARRAY,\n onChangeSelection,\n getItemId\n } = useContext(DataViewsContext);\n return /*#__PURE__*/_jsx(FooterContent, {\n selection: selection,\n onChangeSelection: onChangeSelection,\n data: data,\n actions: actions,\n getItemId: getItemId\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport { LAYOUT_TABLE } from '../../constants';\nconst DataViewsContext = createContext({\n view: {\n type: LAYOUT_TABLE\n },\n onChangeView: () => {},\n fields: [],\n data: [],\n paginationInfo: {\n totalItems: 0,\n totalPages: 0\n },\n selection: [],\n onChangeSelection: () => {},\n setOpenedFilter: () => {},\n openedFilter: null,\n getItemId: item => item.id,\n density: 0\n});\nexport default DataViewsContext;\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { privateApis as componentsPrivateApis, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst {\n DropdownMenuV2\n} = unlock(componentsPrivateApis);\nexport function AddFilterDropdownMenu({\n filters,\n view,\n onChangeView,\n setOpenedFilter,\n trigger\n}) {\n const inactiveFilters = filters.filter(filter => !filter.isVisible);\n return /*#__PURE__*/_jsx(DropdownMenuV2, {\n trigger: trigger,\n children: inactiveFilters.map(filter => {\n return /*#__PURE__*/_jsx(DropdownMenuV2.Item, {\n onClick: () => {\n setOpenedFilter(filter.field);\n onChangeView({\n ...view,\n page: 1,\n filters: [...(view.filters || []), {\n field: filter.field,\n value: undefined,\n operator: filter.operators[0]\n }]\n });\n },\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: filter.name\n })\n }, filter.field);\n })\n });\n}\nfunction AddFilter({\n filters,\n view,\n onChangeView,\n setOpenedFilter\n}, ref) {\n if (!filters.length || filters.every(({\n isPrimary\n }) => isPrimary)) {\n return null;\n }\n const inactiveFilters = filters.filter(filter => !filter.isVisible);\n return /*#__PURE__*/_jsx(AddFilterDropdownMenu, {\n trigger: /*#__PURE__*/_jsx(Button, {\n accessibleWhenDisabled: true,\n size: \"compact\",\n className: \"dataviews-filters-button\",\n variant: \"tertiary\",\n disabled: !inactiveFilters.length,\n ref: ref,\n children: __('Add filter')\n }),\n filters,\n view,\n onChangeView,\n setOpenedFilter\n });\n}\nexport default forwardRef(AddFilter);\n//# sourceMappingURL=add-filter.js.map","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { Dropdown, __experimentalVStack as VStack, __experimentalHStack as HStack, FlexItem, SelectControl, Tooltip, Icon } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef, createInterpolateElement } from '@wordpress/element';\nimport { closeSmall } from '@wordpress/icons';\nconst ENTER = 'Enter';\nconst SPACE = ' ';\n\n/**\n * Internal dependencies\n */\nimport SearchWidget from './search-widget';\nimport { OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_ANY, OPERATOR_IS_NONE, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL } from '../../constants';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst FilterText = ({\n activeElements,\n filterInView,\n filter\n}) => {\n if (activeElements === undefined || activeElements.length === 0) {\n return filter.name;\n }\n const filterTextWrappers = {\n Name: /*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-filters__summary-filter-text-name\"\n }),\n Value: /*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-filters__summary-filter-text-value\"\n })\n };\n if (filterInView?.operator === OPERATOR_IS_ANY) {\n return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is any: Admin, Editor\". */\n __('%1$s is any: %2$s'), filter.name, activeElements.map(element => element.label).join(', ')), filterTextWrappers);\n }\n if (filterInView?.operator === OPERATOR_IS_NONE) {\n return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is none: Admin, Editor\". */\n __('%1$s is none: %2$s'), filter.name, activeElements.map(element => element.label).join(', ')), filterTextWrappers);\n }\n if (filterInView?.operator === OPERATOR_IS_ALL) {\n return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is all: Admin, Editor\". */\n __('%1$s is all: %2$s'), filter.name, activeElements.map(element => element.label).join(', ')), filterTextWrappers);\n }\n if (filterInView?.operator === OPERATOR_IS_NOT_ALL) {\n return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is not all: Admin, Editor\". */\n __('%1$s is not all: %2$s'), filter.name, activeElements.map(element => element.label).join(', ')), filterTextWrappers);\n }\n if (filterInView?.operator === OPERATOR_IS) {\n return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is: Admin\". */\n __('%1$s is: %2$s'), filter.name, activeElements[0].label), filterTextWrappers);\n }\n if (filterInView?.operator === OPERATOR_IS_NOT) {\n return createInterpolateElement(sprintf( /* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is not: Admin\". */\n __('%1$s is not: %2$s'), filter.name, activeElements[0].label), filterTextWrappers);\n }\n return sprintf( /* translators: 1: Filter name e.g.: \"Unknown status for Author\". */\n __('Unknown status for %1$s'), filter.name);\n};\nfunction OperatorSelector({\n filter,\n view,\n onChangeView\n}) {\n const operatorOptions = filter.operators?.map(operator => ({\n value: operator,\n label: OPERATORS[operator]?.label\n }));\n const currentFilter = view.filters?.find(_filter => _filter.field === filter.field);\n const value = currentFilter?.operator || filter.operators[0];\n return operatorOptions.length > 1 && /*#__PURE__*/_jsxs(HStack, {\n spacing: 2,\n justify: \"flex-start\",\n className: \"dataviews-filters__summary-operators-container\",\n children: [/*#__PURE__*/_jsx(FlexItem, {\n className: \"dataviews-filters__summary-operators-filter-name\",\n children: filter.name\n }), /*#__PURE__*/_jsx(SelectControl, {\n label: __('Conditions'),\n value: value,\n options: operatorOptions,\n onChange: newValue => {\n var _view$filters, _view$filters2;\n const operator = newValue;\n const newFilters = currentFilter ? [...((_view$filters = view.filters) !== null && _view$filters !== void 0 ? _view$filters : []).map(_filter => {\n if (_filter.field === filter.field) {\n return {\n ..._filter,\n operator\n };\n }\n return _filter;\n })] : [...((_view$filters2 = view.filters) !== null && _view$filters2 !== void 0 ? _view$filters2 : []), {\n field: filter.field,\n operator,\n value: undefined\n }];\n onChangeView({\n ...view,\n page: 1,\n filters: newFilters\n });\n },\n size: \"small\",\n __nextHasNoMarginBottom: true,\n hideLabelFromVision: true\n })]\n });\n}\nexport default function FilterSummary({\n addFilterRef,\n openedFilter,\n ...commonProps\n}) {\n const toggleRef = useRef(null);\n const {\n filter,\n view,\n onChangeView\n } = commonProps;\n const filterInView = view.filters?.find(f => f.field === filter.field);\n const activeElements = filter.elements.filter(element => {\n if (filter.singleSelection) {\n return element.value === filterInView?.value;\n }\n return filterInView?.value?.includes(element.value);\n });\n const isPrimary = filter.isPrimary;\n const hasValues = filterInView?.value !== undefined;\n const canResetOrRemove = !isPrimary || hasValues;\n return /*#__PURE__*/_jsx(Dropdown, {\n defaultOpen: openedFilter === filter.field,\n contentClassName: \"dataviews-filters__summary-popover\",\n popoverProps: {\n placement: 'bottom-start',\n role: 'dialog'\n },\n onClose: () => {\n toggleRef.current?.focus();\n },\n renderToggle: ({\n isOpen,\n onToggle\n }) => /*#__PURE__*/_jsxs(\"div\", {\n className: \"dataviews-filters__summary-chip-container\",\n children: [/*#__PURE__*/_jsx(Tooltip, {\n text: sprintf( /* translators: 1: Filter name. */\n __('Filter by: %1$s'), filter.name.toLowerCase()),\n placement: \"top\",\n children: /*#__PURE__*/_jsx(\"div\", {\n className: clsx('dataviews-filters__summary-chip', {\n 'has-reset': canResetOrRemove,\n 'has-values': hasValues\n }),\n role: \"button\",\n tabIndex: 0,\n onClick: onToggle,\n onKeyDown: event => {\n if ([ENTER, SPACE].includes(event.key)) {\n onToggle();\n event.preventDefault();\n }\n },\n \"aria-pressed\": isOpen,\n \"aria-expanded\": isOpen,\n ref: toggleRef,\n children: /*#__PURE__*/_jsx(FilterText, {\n activeElements: activeElements,\n filterInView: filterInView,\n filter: filter\n })\n })\n }), canResetOrRemove && /*#__PURE__*/_jsx(Tooltip, {\n text: isPrimary ? __('Reset') : __('Remove'),\n placement: \"top\",\n children: /*#__PURE__*/_jsx(\"button\", {\n className: clsx('dataviews-filters__summary-chip-remove', {\n 'has-values': hasValues\n }),\n onClick: () => {\n onChangeView({\n ...view,\n page: 1,\n filters: view.filters?.filter(_filter => _filter.field !== filter.field)\n });\n // If the filter is not primary and can be removed, it will be added\n // back to the available filters from `Add filter` component.\n if (!isPrimary) {\n addFilterRef.current?.focus();\n } else {\n // If is primary, focus the toggle button.\n toggleRef.current?.focus();\n }\n },\n children: /*#__PURE__*/_jsx(Icon, {\n icon: closeSmall\n })\n })\n })]\n }),\n renderContent: () => {\n return /*#__PURE__*/_jsxs(VStack, {\n spacing: 0,\n justify: \"flex-start\",\n children: [/*#__PURE__*/_jsx(OperatorSelector, {\n ...commonProps\n }), /*#__PURE__*/_jsx(SearchWidget, {\n ...commonProps\n })]\n });\n }\n });\n}\n//# sourceMappingURL=filter-summary.js.map","/**\n * WordPress dependencies\n */\nimport { memo, useContext, useRef, useMemo, useCallback } from '@wordpress/element';\nimport { __experimentalHStack as HStack, Button } from '@wordpress/components';\nimport { funnel } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport FilterSummary from './filter-summary';\nimport { default as AddFilter, AddFilterDropdownMenu } from './add-filter';\nimport ResetFilters from './reset-filters';\nimport DataViewsContext from '../dataviews-context';\nimport { sanitizeOperators } from '../../utils';\nimport { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from '../../constants';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function useFilters(fields, view) {\n return useMemo(() => {\n const filters = [];\n fields.forEach(field => {\n if (!field.elements?.length) {\n return;\n }\n const operators = sanitizeOperators(field);\n if (operators.length === 0) {\n return;\n }\n const isPrimary = !!field.filterBy?.isPrimary;\n filters.push({\n field: field.id,\n name: field.label,\n elements: field.elements,\n singleSelection: operators.some(op => [OPERATOR_IS, OPERATOR_IS_NOT].includes(op)),\n operators,\n isVisible: isPrimary || !!view.filters?.some(f => f.field === field.id && ALL_OPERATORS.includes(f.operator)),\n isPrimary\n });\n });\n // Sort filters by primary property. We need the primary filters to be first.\n // Then we sort by name.\n filters.sort((a, b) => {\n if (a.isPrimary && !b.isPrimary) {\n return -1;\n }\n if (!a.isPrimary && b.isPrimary) {\n return 1;\n }\n return a.name.localeCompare(b.name);\n });\n return filters;\n }, [fields, view]);\n}\nexport function FilterVisibilityToggle({\n filters,\n view,\n onChangeView,\n setOpenedFilter,\n isShowingFilter,\n setIsShowingFilter\n}) {\n const onChangeViewWithFilterVisibility = useCallback(_view => {\n onChangeView(_view);\n setIsShowingFilter(true);\n }, [onChangeView, setIsShowingFilter]);\n const visibleFilters = filters.filter(filter => filter.isVisible);\n const hasVisibleFilters = !!visibleFilters.length;\n if (filters.length === 0) {\n return null;\n }\n if (!hasVisibleFilters) {\n return /*#__PURE__*/_jsx(AddFilterDropdownMenu, {\n filters: filters,\n view: view,\n onChangeView: onChangeViewWithFilterVisibility,\n setOpenedFilter: setOpenedFilter,\n trigger: /*#__PURE__*/_jsx(Button, {\n className: \"dataviews-filters__visibility-toggle\",\n size: \"compact\",\n icon: funnel,\n label: __('Add filter'),\n isPressed: false,\n \"aria-expanded\": false\n })\n });\n }\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"dataviews-filters__container-visibility-toggle\",\n children: [/*#__PURE__*/_jsx(Button, {\n className: \"dataviews-filters__visibility-toggle\",\n size: \"compact\",\n icon: funnel,\n label: __('Toggle filter display'),\n onClick: () => {\n if (!isShowingFilter) {\n setOpenedFilter(null);\n }\n setIsShowingFilter(!isShowingFilter);\n },\n isPressed: isShowingFilter,\n \"aria-expanded\": isShowingFilter\n }), hasVisibleFilters && !!view.filters?.length && /*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-filters-toggle__count\",\n children: view.filters?.length\n })]\n });\n}\nfunction Filters() {\n const {\n fields,\n view,\n onChangeView,\n openedFilter,\n setOpenedFilter\n } = useContext(DataViewsContext);\n const addFilterRef = useRef(null);\n const filters = useFilters(fields, view);\n const addFilter = /*#__PURE__*/_jsx(AddFilter, {\n filters: filters,\n view: view,\n onChangeView: onChangeView,\n ref: addFilterRef,\n setOpenedFilter: setOpenedFilter\n }, \"add-filter\");\n const visibleFilters = filters.filter(filter => filter.isVisible);\n if (visibleFilters.length === 0) {\n return null;\n }\n const filterComponents = [...visibleFilters.map(filter => {\n return /*#__PURE__*/_jsx(FilterSummary, {\n filter: filter,\n view: view,\n onChangeView: onChangeView,\n addFilterRef: addFilterRef,\n openedFilter: openedFilter\n }, filter.field);\n }), addFilter];\n filterComponents.push( /*#__PURE__*/_jsx(ResetFilters, {\n filters: filters,\n view: view,\n onChangeView: onChangeView\n }, \"reset-filters\"));\n return /*#__PURE__*/_jsx(HStack, {\n justify: \"flex-start\",\n style: {\n width: 'fit-content'\n },\n className: \"dataviews-filters__container\",\n wrap: true,\n children: filterComponents\n });\n}\nexport default memo(Filters);\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function ResetFilter({\n filters,\n view,\n onChangeView\n}) {\n const isPrimary = field => filters.some(_filter => _filter.field === field && _filter.isPrimary);\n const isDisabled = !view.search && !view.filters?.some(_filter => _filter.value !== undefined || !isPrimary(_filter.field));\n return /*#__PURE__*/_jsx(Button, {\n disabled: isDisabled,\n accessibleWhenDisabled: true,\n size: \"compact\",\n variant: \"tertiary\",\n className: \"dataviews-filters__reset-button\",\n onClick: () => {\n onChangeView({\n ...view,\n page: 1,\n search: '',\n filters: []\n });\n },\n children: __('Reset')\n });\n}\n//# sourceMappingURL=reset-filters.js.map","/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport * as Ariakit from '@ariakit/react';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useState, useMemo, useDeferredValue } from '@wordpress/element';\nimport { VisuallyHidden, Icon, Composite } from '@wordpress/components';\nimport { search, check } from '@wordpress/icons';\nimport { SVG, Circle } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst radioCheck = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Circle, {\n cx: 12,\n cy: 12,\n r: 3\n })\n});\nfunction normalizeSearchInput(input = '') {\n return removeAccents(input.trim().toLowerCase());\n}\nconst EMPTY_ARRAY = [];\nconst getCurrentValue = (filterDefinition, currentFilter) => {\n if (filterDefinition.singleSelection) {\n return currentFilter?.value;\n }\n if (Array.isArray(currentFilter?.value)) {\n return currentFilter.value;\n }\n if (!Array.isArray(currentFilter?.value) && !!currentFilter?.value) {\n return [currentFilter.value];\n }\n return EMPTY_ARRAY;\n};\nconst getNewValue = (filterDefinition, currentFilter, value) => {\n if (filterDefinition.singleSelection) {\n return value;\n }\n if (Array.isArray(currentFilter?.value)) {\n return currentFilter.value.includes(value) ? currentFilter.value.filter(v => v !== value) : [...currentFilter.value, value];\n }\n return [value];\n};\nfunction generateFilterElementCompositeItemId(prefix, filterElementValue) {\n return `${prefix}-${filterElementValue}`;\n}\nfunction ListBox({\n view,\n filter,\n onChangeView\n}) {\n const baseId = useInstanceId(ListBox, 'dataviews-filter-list-box');\n const [activeCompositeId, setActiveCompositeId] = useState(\n // When there are one or less operators, the first item is set as active\n // (by setting the initial `activeId` to `undefined`).\n // With 2 or more operators, the focus is moved on the operators control\n // (by setting the initial `activeId` to `null`), meaning that there won't\n // be an active item initially. Focus is then managed via the\n // `onFocusVisible` callback.\n filter.operators?.length === 1 ? undefined : null);\n const currentFilter = view.filters?.find(f => f.field === filter.field);\n const currentValue = getCurrentValue(filter, currentFilter);\n return /*#__PURE__*/_jsx(Composite, {\n virtualFocus: true,\n focusLoop: true,\n activeId: activeCompositeId,\n setActiveId: setActiveCompositeId,\n role: \"listbox\",\n className: \"dataviews-filters__search-widget-listbox\",\n \"aria-label\": sprintf( /* translators: List of items for a filter. 1: Filter name. e.g.: \"List of: Author\". */\n __('List of: %1$s'), filter.name),\n onFocusVisible: () => {\n // `onFocusVisible` needs the `Composite` component to be focusable,\n // which is implicitly achieved via the `virtualFocus` prop.\n if (!activeCompositeId && filter.elements.length) {\n setActiveCompositeId(generateFilterElementCompositeItemId(baseId, filter.elements[0].value));\n }\n },\n render: /*#__PURE__*/_jsx(Composite.Typeahead, {}),\n children: filter.elements.map(element => /*#__PURE__*/_jsxs(Composite.Hover, {\n render: /*#__PURE__*/_jsx(Composite.Item, {\n id: generateFilterElementCompositeItemId(baseId, element.value),\n render: /*#__PURE__*/_jsx(\"div\", {\n \"aria-label\": element.label,\n role: \"option\",\n className: \"dataviews-filters__search-widget-listitem\"\n }),\n onClick: () => {\n var _view$filters, _view$filters2;\n const newFilters = currentFilter ? [...((_view$filters = view.filters) !== null && _view$filters !== void 0 ? _view$filters : []).map(_filter => {\n if (_filter.field === filter.field) {\n return {\n ..._filter,\n operator: currentFilter.operator || filter.operators[0],\n value: getNewValue(filter, currentFilter, element.value)\n };\n }\n return _filter;\n })] : [...((_view$filters2 = view.filters) !== null && _view$filters2 !== void 0 ? _view$filters2 : []), {\n field: filter.field,\n operator: filter.operators[0],\n value: getNewValue(filter, currentFilter, element.value)\n }];\n onChangeView({\n ...view,\n page: 1,\n filters: newFilters\n });\n }\n }),\n children: [/*#__PURE__*/_jsxs(\"span\", {\n className: \"dataviews-filters__search-widget-listitem-check\",\n children: [filter.singleSelection && currentValue === element.value && /*#__PURE__*/_jsx(Icon, {\n icon: radioCheck\n }), !filter.singleSelection && currentValue.includes(element.value) && /*#__PURE__*/_jsx(Icon, {\n icon: check\n })]\n }), /*#__PURE__*/_jsx(\"span\", {\n children: element.label\n })]\n }, element.value))\n });\n}\nfunction ComboboxList({\n view,\n filter,\n onChangeView\n}) {\n const [searchValue, setSearchValue] = useState('');\n const deferredSearchValue = useDeferredValue(searchValue);\n const currentFilter = view.filters?.find(_filter => _filter.field === filter.field);\n const currentValue = getCurrentValue(filter, currentFilter);\n const matches = useMemo(() => {\n const normalizedSearch = normalizeSearchInput(deferredSearchValue);\n return filter.elements.filter(item => normalizeSearchInput(item.label).includes(normalizedSearch));\n }, [filter.elements, deferredSearchValue]);\n return /*#__PURE__*/_jsxs(Ariakit.ComboboxProvider, {\n selectedValue: currentValue,\n setSelectedValue: value => {\n var _view$filters3, _view$filters4;\n const newFilters = currentFilter ? [...((_view$filters3 = view.filters) !== null && _view$filters3 !== void 0 ? _view$filters3 : []).map(_filter => {\n if (_filter.field === filter.field) {\n return {\n ..._filter,\n operator: currentFilter.operator || filter.operators[0],\n value\n };\n }\n return _filter;\n })] : [...((_view$filters4 = view.filters) !== null && _view$filters4 !== void 0 ? _view$filters4 : []), {\n field: filter.field,\n operator: filter.operators[0],\n value\n }];\n onChangeView({\n ...view,\n page: 1,\n filters: newFilters\n });\n },\n setValue: setSearchValue,\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: \"dataviews-filters__search-widget-filter-combobox__wrapper\",\n children: [/*#__PURE__*/_jsx(Ariakit.ComboboxLabel, {\n render: /*#__PURE__*/_jsx(VisuallyHidden, {\n children: __('Search items')\n }),\n children: __('Search items')\n }), /*#__PURE__*/_jsx(Ariakit.Combobox, {\n autoSelect: \"always\",\n placeholder: __('Search'),\n className: \"dataviews-filters__search-widget-filter-combobox__input\"\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"dataviews-filters__search-widget-filter-combobox__icon\",\n children: /*#__PURE__*/_jsx(Icon, {\n icon: search\n })\n })]\n }), /*#__PURE__*/_jsxs(Ariakit.ComboboxList, {\n className: \"dataviews-filters__search-widget-filter-combobox-list\",\n alwaysVisible: true,\n children: [matches.map(element => {\n return /*#__PURE__*/_jsxs(Ariakit.ComboboxItem, {\n resetValueOnSelect: false,\n value: element.value,\n className: \"dataviews-filters__search-widget-listitem\",\n hideOnClick: false,\n setValueOnClick: false,\n focusOnHover: true,\n children: [/*#__PURE__*/_jsxs(\"span\", {\n className: \"dataviews-filters__search-widget-listitem-check\",\n children: [filter.singleSelection && currentValue === element.value && /*#__PURE__*/_jsx(Icon, {\n icon: radioCheck\n }), !filter.singleSelection && currentValue.includes(element.value) && /*#__PURE__*/_jsx(Icon, {\n icon: check\n })]\n }), /*#__PURE__*/_jsxs(\"span\", {\n children: [/*#__PURE__*/_jsx(Ariakit.ComboboxItemValue, {\n className: \"dataviews-filters__search-widget-filter-combobox-item-value\",\n value: element.label\n }), !!element.description && /*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-filters__search-widget-listitem-description\",\n children: element.description\n })]\n })]\n }, element.value);\n }), !matches.length && /*#__PURE__*/_jsx(\"p\", {\n children: __('No results found')\n })]\n })]\n });\n}\nexport default function SearchWidget(props) {\n const Widget = props.filter.elements.length > 10 ? ComboboxList : ListBox;\n return /*#__PURE__*/_jsx(Widget, {\n ...props\n });\n}\n//# sourceMappingURL=search-widget.js.map","/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport DataViewsPagination from '../dataviews-pagination';\nimport { BulkActionsFooter, useSomeItemHasAPossibleBulkAction } from '../dataviews-bulk-actions';\nimport { LAYOUT_GRID, LAYOUT_TABLE } from '../../constants';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst EMPTY_ARRAY = [];\nexport default function DataViewsFooter() {\n const {\n view,\n paginationInfo: {\n totalItems = 0,\n totalPages\n },\n data,\n actions = EMPTY_ARRAY\n } = useContext(DataViewsContext);\n const hasBulkActions = useSomeItemHasAPossibleBulkAction(actions, data) && [LAYOUT_TABLE, LAYOUT_GRID].includes(view.type);\n if (!totalItems || !totalPages || totalPages <= 1 && !hasBulkActions) {\n return null;\n }\n return !!totalItems && /*#__PURE__*/_jsxs(HStack, {\n expanded: false,\n justify: \"end\",\n className: \"dataviews-footer\",\n children: [hasBulkActions && /*#__PURE__*/_jsx(BulkActionsFooter, {}), /*#__PURE__*/_jsx(DataViewsPagination, {})]\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { Button, Modal, __experimentalHStack as HStack, privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { moreVertical } from '@wordpress/icons';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst {\n DropdownMenuV2,\n kebabCase\n} = unlock(componentsPrivateApis);\nfunction ButtonTrigger({\n action,\n onClick,\n items\n}) {\n const label = typeof action.label === 'string' ? action.label : action.label(items);\n return /*#__PURE__*/_jsx(Button, {\n label: label,\n icon: action.icon,\n isDestructive: action.isDestructive,\n size: \"compact\",\n onClick: onClick\n });\n}\nfunction DropdownMenuItemTrigger({\n action,\n onClick,\n items\n}) {\n const label = typeof action.label === 'string' ? action.label : action.label(items);\n return /*#__PURE__*/_jsx(DropdownMenuV2.Item, {\n onClick: onClick,\n hideOnClick: !('RenderModal' in action),\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: label\n })\n });\n}\nexport function ActionModal({\n action,\n items,\n closeModal\n}) {\n const label = typeof action.label === 'string' ? action.label : action.label(items);\n return /*#__PURE__*/_jsx(Modal, {\n title: action.modalHeader || label,\n __experimentalHideHeader: !!action.hideModalHeader,\n onRequestClose: closeModal !== null && closeModal !== void 0 ? closeModal : () => {},\n focusOnMount: \"firstContentElement\",\n size: \"small\",\n overlayClassName: `dataviews-action-modal dataviews-action-modal__${kebabCase(action.id)}`,\n children: /*#__PURE__*/_jsx(action.RenderModal, {\n items: items,\n closeModal: closeModal\n })\n });\n}\nexport function ActionWithModal({\n action,\n items,\n ActionTrigger,\n isBusy\n}) {\n const [isModalOpen, setIsModalOpen] = useState(false);\n const actionTriggerProps = {\n action,\n onClick: () => {\n setIsModalOpen(true);\n },\n items,\n isBusy\n };\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(ActionTrigger, {\n ...actionTriggerProps\n }), isModalOpen && /*#__PURE__*/_jsx(ActionModal, {\n action: action,\n items: items,\n closeModal: () => setIsModalOpen(false)\n })]\n });\n}\nexport function ActionsDropdownMenuGroup({\n actions,\n item\n}) {\n const registry = useRegistry();\n return /*#__PURE__*/_jsx(DropdownMenuV2.Group, {\n children: actions.map(action => {\n if ('RenderModal' in action) {\n return /*#__PURE__*/_jsx(ActionWithModal, {\n action: action,\n items: [item],\n ActionTrigger: DropdownMenuItemTrigger\n }, action.id);\n }\n return /*#__PURE__*/_jsx(DropdownMenuItemTrigger, {\n action: action,\n onClick: () => {\n action.callback([item], {\n registry\n });\n },\n items: [item]\n }, action.id);\n })\n });\n}\nexport default function ItemActions({\n item,\n actions,\n isCompact\n}) {\n const registry = useRegistry();\n const {\n primaryActions,\n eligibleActions\n } = useMemo(() => {\n // If an action is eligible for all items, doesn't need\n // to provide the `isEligible` function.\n const _eligibleActions = actions.filter(action => !action.isEligible || action.isEligible(item));\n const _primaryActions = _eligibleActions.filter(action => action.isPrimary && !!action.icon);\n return {\n primaryActions: _primaryActions,\n eligibleActions: _eligibleActions\n };\n }, [actions, item]);\n if (isCompact) {\n return /*#__PURE__*/_jsx(CompactItemActions, {\n item: item,\n actions: eligibleActions\n });\n }\n return /*#__PURE__*/_jsxs(HStack, {\n spacing: 1,\n justify: \"flex-end\",\n className: \"dataviews-item-actions\",\n style: {\n flexShrink: '0',\n width: 'auto'\n },\n children: [!!primaryActions.length && primaryActions.map(action => {\n if ('RenderModal' in action) {\n return /*#__PURE__*/_jsx(ActionWithModal, {\n action: action,\n items: [item],\n ActionTrigger: ButtonTrigger\n }, action.id);\n }\n return /*#__PURE__*/_jsx(ButtonTrigger, {\n action: action,\n onClick: () => {\n action.callback([item], {\n registry\n });\n },\n items: [item]\n }, action.id);\n }), /*#__PURE__*/_jsx(CompactItemActions, {\n item: item,\n actions: eligibleActions\n })]\n });\n}\nfunction CompactItemActions({\n item,\n actions\n}) {\n return /*#__PURE__*/_jsx(DropdownMenuV2, {\n trigger: /*#__PURE__*/_jsx(Button, {\n size: \"compact\",\n icon: moreVertical,\n label: __('Actions'),\n accessibleWhenDisabled: true,\n disabled: !actions.length,\n className: \"dataviews-all-actions-button\"\n }),\n placement: \"bottom-end\",\n children: /*#__PURE__*/_jsx(ActionsDropdownMenuGroup, {\n actions: actions,\n item: item\n })\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function DataViewsLayout() {\n const {\n actions = [],\n data,\n fields,\n getItemId,\n isLoading,\n view,\n onChangeView,\n selection,\n onChangeSelection,\n setOpenedFilter,\n density\n } = useContext(DataViewsContext);\n const ViewComponent = VIEW_LAYOUTS.find(v => v.type === view.type)?.component;\n return /*#__PURE__*/_jsx(ViewComponent, {\n actions: actions,\n data: data,\n fields: fields,\n getItemId: getItemId,\n isLoading: isLoading,\n onChangeView: onChangeView,\n onChangeSelection: onChangeSelection,\n selection: selection,\n setOpenedFilter: setOpenedFilter,\n view: view,\n density: density\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { Button, __experimentalHStack as HStack, SelectControl } from '@wordpress/components';\nimport { createInterpolateElement, memo, useContext } from '@wordpress/element';\nimport { sprintf, __, _x, isRTL } from '@wordpress/i18n';\nimport { next, previous } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction DataViewsPagination() {\n var _view$page;\n const {\n view,\n onChangeView,\n paginationInfo: {\n totalItems = 0,\n totalPages\n }\n } = useContext(DataViewsContext);\n if (!totalItems || !totalPages) {\n return null;\n }\n const currentPage = (_view$page = view.page) !== null && _view$page !== void 0 ? _view$page : 1;\n const pageSelectOptions = Array.from(Array(totalPages)).map((_, i) => {\n const page = i + 1;\n return {\n value: page.toString(),\n label: page.toString(),\n 'aria-label': currentPage === page ? sprintf(\n // translators: Current page number in total number of pages\n __('Page %1$s of %2$s'), currentPage, totalPages) : page.toString()\n };\n });\n return !!totalItems && totalPages !== 1 && /*#__PURE__*/_jsxs(HStack, {\n expanded: false,\n className: \"dataviews-pagination\",\n justify: \"end\",\n spacing: 6,\n children: [/*#__PURE__*/_jsx(HStack, {\n justify: \"flex-start\",\n expanded: false,\n spacing: 1,\n className: \"dataviews-pagination__page-select\",\n children: createInterpolateElement(sprintf(\n // translators: 1: Current page number, 2: Total number of pages.\n _x('
Page
%1$s
of %2$s
', 'paging'), '', totalPages), {\n div: /*#__PURE__*/_jsx(\"div\", {\n \"aria-hidden\": true\n }),\n CurrentPage: /*#__PURE__*/_jsx(SelectControl, {\n \"aria-label\": __('Current page'),\n value: currentPage.toString(),\n options: pageSelectOptions,\n onChange: newValue => {\n onChangeView({\n ...view,\n page: +newValue\n });\n },\n size: \"small\",\n __nextHasNoMarginBottom: true,\n variant: \"minimal\"\n })\n })\n }), /*#__PURE__*/_jsxs(HStack, {\n expanded: false,\n spacing: 1,\n children: [/*#__PURE__*/_jsx(Button, {\n onClick: () => onChangeView({\n ...view,\n page: currentPage - 1\n }),\n disabled: currentPage === 1,\n accessibleWhenDisabled: true,\n label: __('Previous page'),\n icon: isRTL() ? next : previous,\n showTooltip: true,\n size: \"compact\",\n tooltipPosition: \"top\"\n }), /*#__PURE__*/_jsx(Button, {\n onClick: () => onChangeView({\n ...view,\n page: currentPage + 1\n }),\n disabled: currentPage >= totalPages,\n accessibleWhenDisabled: true,\n label: __('Next page'),\n icon: isRTL() ? previous : next,\n showTooltip: true,\n size: \"compact\",\n tooltipPosition: \"top\"\n })]\n })]\n });\n}\nexport default memo(DataViewsPagination);\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef, memo, useContext } from '@wordpress/element';\nimport { SearchControl } from '@wordpress/components';\nimport { useDebouncedInput } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DataViewsSearch = memo(function Search({\n label\n}) {\n const {\n view,\n onChangeView\n } = useContext(DataViewsContext);\n const [search, setSearch, debouncedSearch] = useDebouncedInput(view.search);\n useEffect(() => {\n var _view$search;\n setSearch((_view$search = view.search) !== null && _view$search !== void 0 ? _view$search : '');\n }, [view.search, setSearch]);\n const onChangeViewRef = useRef(onChangeView);\n const viewRef = useRef(view);\n useEffect(() => {\n onChangeViewRef.current = onChangeView;\n viewRef.current = view;\n }, [onChangeView, view]);\n useEffect(() => {\n if (debouncedSearch !== viewRef.current?.search) {\n onChangeViewRef.current({\n ...viewRef.current,\n page: 1,\n search: debouncedSearch\n });\n }\n }, [debouncedSearch]);\n const searchLabel = label || __('Search');\n return /*#__PURE__*/_jsx(SearchControl, {\n className: \"dataviews-search\",\n __nextHasNoMarginBottom: true,\n onChange: setSearch,\n value: search,\n label: searchLabel,\n placeholder: searchLabel,\n size: \"compact\"\n });\n});\nexport default DataViewsSearch;\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function DataViewsSelectionCheckbox({\n selection,\n onChangeSelection,\n item,\n getItemId,\n primaryField,\n disabled\n}) {\n const id = getItemId(item);\n const checked = !disabled && selection.includes(id);\n let selectionLabel;\n if (primaryField?.getValue && item) {\n // eslint-disable-next-line @wordpress/valid-sprintf\n selectionLabel = sprintf( /* translators: %s: item title. */\n checked ? __('Deselect item: %s') : __('Select item: %s'), primaryField.getValue({\n item\n }));\n } else {\n selectionLabel = checked ? __('Select a new item') : __('Deselect item');\n }\n return /*#__PURE__*/_jsx(CheckboxControl, {\n className: \"dataviews-selection-checkbox\",\n __nextHasNoMarginBottom: true,\n \"aria-label\": selectionLabel,\n \"aria-disabled\": disabled,\n checked: checked,\n onChange: () => {\n if (disabled) {\n return;\n }\n onChangeSelection(selection.includes(id) ? selection.filter(itemId => id !== itemId) : [...selection, id]);\n }\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { Button, __experimentalDropdownContentWrapper as DropdownContentWrapper, Dropdown, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon, SelectControl, __experimentalItemGroup as ItemGroup, __experimentalItem as Item, __experimentalGrid as Grid, __experimentalVStack as VStack, __experimentalHStack as HStack, __experimentalHeading as Heading, __experimentalText as Text, privateApis as componentsPrivateApis, BaseControl } from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { memo, useContext, useMemo } from '@wordpress/element';\nimport { chevronDown, chevronUp, cog, seen, unseen } from '@wordpress/icons';\nimport warning from '@wordpress/warning';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { SORTING_DIRECTIONS, LAYOUT_GRID, LAYOUT_TABLE, sortIcons, sortLabels } from '../../constants';\nimport { VIEW_LAYOUTS, getNotHidableFieldIds, getVisibleFieldIds, getHiddenFieldIds } from '../../dataviews-layouts';\nimport DataViewsContext from '../dataviews-context';\nimport { unlock } from '../../lock-unlock';\nimport DensityPicker from '../../dataviews-layouts/grid/density-picker';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst {\n DropdownMenuV2\n} = unlock(componentsPrivateApis);\nconst DATAVIEWS_CONFIG_POPOVER_PROPS = {\n placement: 'bottom-end',\n offset: 9\n};\nfunction ViewTypeMenu({\n defaultLayouts = {\n list: {},\n grid: {},\n table: {}\n }\n}) {\n const {\n view,\n onChangeView\n } = useContext(DataViewsContext);\n const availableLayouts = Object.keys(defaultLayouts);\n if (availableLayouts.length <= 1) {\n return null;\n }\n const activeView = VIEW_LAYOUTS.find(v => view.type === v.type);\n return /*#__PURE__*/_jsx(DropdownMenuV2, {\n trigger: /*#__PURE__*/_jsx(Button, {\n size: \"compact\",\n icon: activeView?.icon,\n label: __('Layout')\n }),\n children: availableLayouts.map(layout => {\n const config = VIEW_LAYOUTS.find(v => v.type === layout);\n if (!config) {\n return null;\n }\n return /*#__PURE__*/_jsx(DropdownMenuV2.RadioItem, {\n value: layout,\n name: \"view-actions-available-view\",\n checked: layout === view.type,\n hideOnClick: true,\n onChange: e => {\n switch (e.target.value) {\n case 'list':\n case 'grid':\n case 'table':\n return onChangeView({\n ...view,\n type: e.target.value,\n ...defaultLayouts[e.target.value]\n });\n }\n globalThis.SCRIPT_DEBUG === true ? warning('Invalid dataview') : void 0;\n },\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: config.label\n })\n }, layout);\n })\n });\n}\nfunction SortFieldControl() {\n const {\n view,\n fields,\n onChangeView\n } = useContext(DataViewsContext);\n const orderOptions = useMemo(() => {\n const sortableFields = fields.filter(field => field.enableSorting !== false);\n return sortableFields.map(field => {\n return {\n label: field.label,\n value: field.id\n };\n });\n }, [fields]);\n return /*#__PURE__*/_jsx(SelectControl, {\n __nextHasNoMarginBottom: true,\n __next40pxDefaultSize: true,\n label: __('Sort by'),\n value: view.sort?.field,\n options: orderOptions,\n onChange: value => {\n onChangeView({\n ...view,\n sort: {\n direction: view?.sort?.direction || 'desc',\n field: value\n }\n });\n }\n });\n}\nfunction SortDirectionControl() {\n const {\n view,\n fields,\n onChangeView\n } = useContext(DataViewsContext);\n const sortableFields = fields.filter(field => field.enableSorting !== false);\n if (sortableFields.length === 0) {\n return null;\n }\n let value = view.sort?.direction;\n if (!value && view.sort?.field) {\n value = 'desc';\n }\n return /*#__PURE__*/_jsx(ToggleGroupControl, {\n className: \"dataviews-view-config__sort-direction\",\n __nextHasNoMarginBottom: true,\n __next40pxDefaultSize: true,\n isBlock: true,\n label: __('Order'),\n value: value,\n onChange: newDirection => {\n if (newDirection === 'asc' || newDirection === 'desc') {\n onChangeView({\n ...view,\n sort: {\n direction: newDirection,\n field: view.sort?.field ||\n // If there is no field assigned as the sorting field assign the first sortable field.\n fields.find(field => field.enableSorting !== false)?.id || ''\n }\n });\n return;\n }\n globalThis.SCRIPT_DEBUG === true ? warning('Invalid direction') : void 0;\n },\n children: SORTING_DIRECTIONS.map(direction => {\n return /*#__PURE__*/_jsx(ToggleGroupControlOptionIcon, {\n value: direction,\n icon: sortIcons[direction],\n label: sortLabels[direction]\n }, direction);\n })\n });\n}\nconst PAGE_SIZE_VALUES = [10, 20, 50, 100];\nfunction ItemsPerPageControl() {\n const {\n view,\n onChangeView\n } = useContext(DataViewsContext);\n return /*#__PURE__*/_jsx(ToggleGroupControl, {\n __nextHasNoMarginBottom: true,\n __next40pxDefaultSize: true,\n isBlock: true,\n label: __('Items per page'),\n value: view.perPage || 10,\n disabled: !view?.sort?.field,\n onChange: newItemsPerPage => {\n const newItemsPerPageNumber = typeof newItemsPerPage === 'number' || newItemsPerPage === undefined ? newItemsPerPage : parseInt(newItemsPerPage, 10);\n onChangeView({\n ...view,\n perPage: newItemsPerPageNumber,\n page: 1\n });\n },\n children: PAGE_SIZE_VALUES.map(value => {\n return /*#__PURE__*/_jsx(ToggleGroupControlOption, {\n value: value,\n label: value.toString()\n }, value);\n })\n });\n}\nfunction FieldItem({\n field: {\n id,\n label,\n index,\n isVisible,\n isHidable\n },\n fields,\n view,\n onChangeView\n}) {\n const visibleFieldIds = getVisibleFieldIds(view, fields);\n return /*#__PURE__*/_jsx(Item, {\n children: /*#__PURE__*/_jsxs(HStack, {\n expanded: true,\n className: `dataviews-field-control__field dataviews-field-control__field-${id}`,\n children: [/*#__PURE__*/_jsx(\"span\", {\n children: label\n }), /*#__PURE__*/_jsxs(HStack, {\n justify: \"flex-end\",\n expanded: false,\n className: \"dataviews-field-control__actions\",\n children: [view.type === LAYOUT_TABLE && isVisible && /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(Button, {\n disabled: index < 1,\n accessibleWhenDisabled: true,\n size: \"compact\",\n onClick: () => {\n var _visibleFieldIds$slic;\n onChangeView({\n ...view,\n fields: [...((_visibleFieldIds$slic = visibleFieldIds.slice(0, index - 1)) !== null && _visibleFieldIds$slic !== void 0 ? _visibleFieldIds$slic : []), id, visibleFieldIds[index - 1], ...visibleFieldIds.slice(index + 1)]\n });\n },\n icon: chevronUp,\n label: sprintf( /* translators: %s: field label */\n __('Move %s up'), label)\n }), /*#__PURE__*/_jsx(Button, {\n disabled: index >= visibleFieldIds.length - 1,\n accessibleWhenDisabled: true,\n size: \"compact\",\n onClick: () => {\n var _visibleFieldIds$slic2;\n onChangeView({\n ...view,\n fields: [...((_visibleFieldIds$slic2 = visibleFieldIds.slice(0, index)) !== null && _visibleFieldIds$slic2 !== void 0 ? _visibleFieldIds$slic2 : []), visibleFieldIds[index + 1], id, ...visibleFieldIds.slice(index + 2)]\n });\n },\n icon: chevronDown,\n label: sprintf( /* translators: %s: field label */\n __('Move %s down'), label)\n }), ' ']\n }), /*#__PURE__*/_jsx(Button, {\n className: \"dataviews-field-control__field-visibility-button\",\n disabled: !isHidable,\n accessibleWhenDisabled: true,\n size: \"compact\",\n onClick: () => {\n onChangeView({\n ...view,\n fields: isVisible ? visibleFieldIds.filter(fieldId => fieldId !== id) : [...visibleFieldIds, id]\n });\n // Focus the visibility button to avoid focus loss.\n // Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n // eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n setTimeout(() => {\n const element = document.querySelector(`.dataviews-field-control__field-${id} .dataviews-field-control__field-visibility-button`);\n if (element instanceof HTMLElement) {\n element.focus();\n }\n }, 50);\n },\n icon: isVisible ? seen : unseen,\n label: isVisible ? sprintf( /* translators: %s: field label */\n __('Hide %s'), label) : sprintf( /* translators: %s: field label */\n __('Show %s'), label)\n })]\n })]\n })\n }, id);\n}\nfunction FieldControl() {\n const {\n view,\n fields,\n onChangeView\n } = useContext(DataViewsContext);\n const visibleFieldIds = useMemo(() => getVisibleFieldIds(view, fields), [view, fields]);\n const hiddenFieldIds = useMemo(() => getHiddenFieldIds(view, fields), [view, fields]);\n const notHidableFieldIds = useMemo(() => getNotHidableFieldIds(view), [view]);\n const visibleFields = fields.filter(({\n id\n }) => visibleFieldIds.includes(id)).map(({\n id,\n label,\n enableHiding\n }) => {\n return {\n id,\n label,\n index: visibleFieldIds.indexOf(id),\n isVisible: true,\n isHidable: notHidableFieldIds.includes(id) ? false : enableHiding\n };\n });\n if (view.type === LAYOUT_TABLE && view.layout?.combinedFields) {\n view.layout.combinedFields.forEach(({\n id,\n label\n }) => {\n visibleFields.push({\n id,\n label,\n index: visibleFieldIds.indexOf(id),\n isVisible: true,\n isHidable: notHidableFieldIds.includes(id)\n });\n });\n }\n visibleFields.sort((a, b) => a.index - b.index);\n const hiddenFields = fields.filter(({\n id\n }) => hiddenFieldIds.includes(id)).map(({\n id,\n label,\n enableHiding\n }, index) => {\n return {\n id,\n label,\n index,\n isVisible: false,\n isHidable: enableHiding\n };\n });\n if (!visibleFields?.length && !hiddenFields?.length) {\n return null;\n }\n return /*#__PURE__*/_jsxs(VStack, {\n spacing: 6,\n className: \"dataviews-field-control\",\n children: [!!visibleFields?.length && /*#__PURE__*/_jsx(ItemGroup, {\n isBordered: true,\n isSeparated: true,\n children: visibleFields.map(field => /*#__PURE__*/_jsx(FieldItem, {\n field: field,\n fields: fields,\n view: view,\n onChangeView: onChangeView\n }, field.id))\n }), !!hiddenFields?.length && /*#__PURE__*/_jsx(_Fragment, {\n children: /*#__PURE__*/_jsxs(VStack, {\n spacing: 4,\n children: [/*#__PURE__*/_jsx(BaseControl.VisualLabel, {\n style: {\n margin: 0\n },\n children: __('Hidden')\n }), /*#__PURE__*/_jsx(ItemGroup, {\n isBordered: true,\n isSeparated: true,\n children: hiddenFields.map(field => /*#__PURE__*/_jsx(FieldItem, {\n field: field,\n fields: fields,\n view: view,\n onChangeView: onChangeView\n }, field.id))\n })]\n })\n })]\n });\n}\nfunction SettingsSection({\n title,\n description,\n children\n}) {\n return /*#__PURE__*/_jsxs(Grid, {\n columns: 12,\n className: \"dataviews-settings-section\",\n gap: 4,\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: \"dataviews-settings-section__sidebar\",\n children: [/*#__PURE__*/_jsx(Heading, {\n level: 2,\n className: \"dataviews-settings-section__title\",\n children: title\n }), description && /*#__PURE__*/_jsx(Text, {\n variant: \"muted\",\n className: \"dataviews-settings-section__description\",\n children: description\n })]\n }), /*#__PURE__*/_jsx(Grid, {\n columns: 8,\n gap: 4,\n className: \"dataviews-settings-section__content\",\n children: children\n })]\n });\n}\nfunction DataviewsViewConfigDropdown({\n density,\n setDensity\n}) {\n const {\n view\n } = useContext(DataViewsContext);\n const popoverId = useInstanceId(_DataViewsViewConfig, 'dataviews-view-config-dropdown');\n return /*#__PURE__*/_jsx(Dropdown, {\n popoverProps: {\n ...DATAVIEWS_CONFIG_POPOVER_PROPS,\n id: popoverId\n },\n renderToggle: ({\n onToggle,\n isOpen\n }) => {\n return /*#__PURE__*/_jsx(Button, {\n size: \"compact\",\n icon: cog,\n label: _x('View options', 'View is used as a noun'),\n onClick: onToggle,\n \"aria-expanded\": isOpen ? 'true' : 'false',\n \"aria-controls\": popoverId\n });\n },\n renderContent: () => /*#__PURE__*/_jsx(DropdownContentWrapper, {\n paddingSize: \"medium\",\n children: /*#__PURE__*/_jsxs(VStack, {\n className: \"dataviews-view-config\",\n spacing: 6,\n children: [/*#__PURE__*/_jsxs(SettingsSection, {\n title: __('Appearance'),\n children: [/*#__PURE__*/_jsxs(HStack, {\n expanded: true,\n className: \"is-divided-in-two\",\n children: [/*#__PURE__*/_jsx(SortFieldControl, {}), /*#__PURE__*/_jsx(SortDirectionControl, {})]\n }), view.type === LAYOUT_GRID && /*#__PURE__*/_jsx(DensityPicker, {\n density: density,\n setDensity: setDensity\n }), /*#__PURE__*/_jsx(ItemsPerPageControl, {})]\n }), /*#__PURE__*/_jsx(SettingsSection, {\n title: __('Properties'),\n children: /*#__PURE__*/_jsx(FieldControl, {})\n })]\n })\n })\n });\n}\nfunction _DataViewsViewConfig({\n density,\n setDensity,\n defaultLayouts = {\n list: {},\n grid: {},\n table: {}\n }\n}) {\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(ViewTypeMenu, {\n defaultLayouts: defaultLayouts\n }), /*#__PURE__*/_jsx(DataviewsViewConfigDropdown, {\n density: density,\n setDensity: setDensity\n })]\n });\n}\nconst DataViewsViewConfig = memo(_DataViewsViewConfig);\nexport default DataViewsViewConfig;\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { default as DataViewsFilters, useFilters, FilterVisibilityToggle } from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport DataViewsFooter from '../dataviews-footer';\nimport DataViewsSearch from '../dataviews-search';\nimport DataViewsViewConfig from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst defaultGetItemId = item => item.id;\nexport default function DataViews({\n view,\n onChangeView,\n fields,\n search = true,\n searchLabel = undefined,\n actions = [],\n data,\n getItemId = defaultGetItemId,\n isLoading = false,\n paginationInfo,\n defaultLayouts,\n selection: selectionProperty,\n onChangeSelection,\n header\n}) {\n const [selectionState, setSelectionState] = useState([]);\n const [density, setDensity] = useState(0);\n const isUncontrolled = selectionProperty === undefined || onChangeSelection === undefined;\n const selection = isUncontrolled ? selectionState : selectionProperty;\n const [openedFilter, setOpenedFilter] = useState(null);\n function setSelectionWithChange(value) {\n const newValue = typeof value === 'function' ? value(selection) : value;\n if (isUncontrolled) {\n setSelectionState(newValue);\n }\n if (onChangeSelection) {\n onChangeSelection(newValue);\n }\n }\n const _fields = useMemo(() => normalizeFields(fields), [fields]);\n const _selection = useMemo(() => {\n return selection.filter(id => data.some(item => getItemId(item) === id));\n }, [selection, data, getItemId]);\n const filters = useFilters(_fields, view);\n const [isShowingFilter, setIsShowingFilter] = useState(() => (filters || []).some(filter => filter.isPrimary));\n return /*#__PURE__*/_jsx(DataViewsContext.Provider, {\n value: {\n view,\n onChangeView,\n fields: _fields,\n actions,\n data,\n isLoading,\n paginationInfo,\n selection: _selection,\n onChangeSelection: setSelectionWithChange,\n openedFilter,\n setOpenedFilter,\n getItemId,\n density\n },\n children: /*#__PURE__*/_jsxs(\"div\", {\n className: \"dataviews-wrapper\",\n children: [/*#__PURE__*/_jsxs(HStack, {\n alignment: \"top\",\n justify: \"space-between\",\n className: \"dataviews__view-actions\",\n spacing: 1,\n children: [/*#__PURE__*/_jsxs(HStack, {\n justify: \"start\",\n expanded: false,\n className: \"dataviews__search\",\n children: [search && /*#__PURE__*/_jsx(DataViewsSearch, {\n label: searchLabel\n }), /*#__PURE__*/_jsx(FilterVisibilityToggle, {\n filters: filters,\n view: view,\n onChangeView: onChangeView,\n setOpenedFilter: setOpenedFilter,\n setIsShowingFilter: setIsShowingFilter,\n isShowingFilter: isShowingFilter\n })]\n }), /*#__PURE__*/_jsxs(HStack, {\n spacing: 1,\n expanded: false,\n style: {\n flexShrink: 0\n },\n children: [/*#__PURE__*/_jsx(DataViewsViewConfig, {\n defaultLayouts: defaultLayouts,\n density: density,\n setDensity: setDensity\n }), header]\n })]\n }), isShowingFilter && /*#__PURE__*/_jsx(DataViewsFilters, {}), /*#__PURE__*/_jsx(DataViewsLayout, {}), /*#__PURE__*/_jsx(DataViewsFooter, {})]\n })\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { arrowDown, arrowUp } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\n\n// Filter operators.\nexport const OPERATOR_IS = 'is';\nexport const OPERATOR_IS_NOT = 'isNot';\nexport const OPERATOR_IS_ANY = 'isAny';\nexport const OPERATOR_IS_NONE = 'isNone';\nexport const OPERATOR_IS_ALL = 'isAll';\nexport const OPERATOR_IS_NOT_ALL = 'isNotAll';\nexport const ALL_OPERATORS = [OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_ANY, OPERATOR_IS_NONE, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL];\nexport const OPERATORS = {\n [OPERATOR_IS]: {\n key: 'is-filter',\n label: __('Is')\n },\n [OPERATOR_IS_NOT]: {\n key: 'is-not-filter',\n label: __('Is not')\n },\n [OPERATOR_IS_ANY]: {\n key: 'is-any-filter',\n label: __('Is any')\n },\n [OPERATOR_IS_NONE]: {\n key: 'is-none-filter',\n label: __('Is none')\n },\n [OPERATOR_IS_ALL]: {\n key: 'is-all-filter',\n label: __('Is all')\n },\n [OPERATOR_IS_NOT_ALL]: {\n key: 'is-not-all-filter',\n label: __('Is not all')\n }\n};\nexport const SORTING_DIRECTIONS = ['asc', 'desc'];\nexport const sortArrows = {\n asc: '↑',\n desc: '↓'\n};\nexport const sortValues = {\n asc: 'ascending',\n desc: 'descending'\n};\nexport const sortLabels = {\n asc: __('Sort ascending'),\n desc: __('Sort descending')\n};\nexport const sortIcons = {\n asc: arrowUp,\n desc: arrowDown\n};\n\n// View layouts.\nexport const LAYOUT_TABLE = 'table';\nexport const LAYOUT_GRID = 'grid';\nexport const LAYOUT_LIST = 'list';\n//# sourceMappingURL=constants.js.map","/**\n * WordPress dependencies\n */\nimport { BaseControl, TimePicker, VisuallyHidden } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport default function DateTime({\n data,\n field,\n onChange,\n hideLabelFromVision\n}) {\n const {\n id,\n label\n } = field;\n const value = field.getValue({\n item: data\n });\n const onChangeControl = useCallback(newValue => onChange({\n [id]: newValue\n }), [id, onChange]);\n return /*#__PURE__*/_jsxs(\"fieldset\", {\n className: \"dataviews-controls__datetime\",\n children: [!hideLabelFromVision && /*#__PURE__*/_jsx(BaseControl.VisualLabel, {\n as: \"legend\",\n children: label\n }), hideLabelFromVision && /*#__PURE__*/_jsx(VisuallyHidden, {\n as: \"legend\",\n children: label\n }), /*#__PURE__*/_jsx(TimePicker, {\n currentTime: value,\n onChange: onChangeControl,\n hideLabelFromVision: true\n })]\n });\n}\n//# sourceMappingURL=datetime.js.map","/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\n\nimport datetime from './datetime';\nimport integer from './integer';\nimport radio from './radio';\nimport select from './select';\nimport text from './text';\nconst FORM_CONTROLS = {\n datetime,\n integer,\n radio,\n select,\n text\n};\nexport function getControl(field, fieldTypeDefinition) {\n if (typeof field.Edit === 'function') {\n return field.Edit;\n }\n if (typeof field.Edit === 'string') {\n return getControlByType(field.Edit);\n }\n if (field.elements) {\n return getControlByType('select');\n }\n if (typeof fieldTypeDefinition.Edit === 'string') {\n return getControlByType(fieldTypeDefinition.Edit);\n }\n return fieldTypeDefinition.Edit;\n}\nexport function getControlByType(type) {\n if (Object.keys(FORM_CONTROLS).includes(type)) {\n return FORM_CONTROLS[type];\n }\n throw 'Control ' + type + ' not found';\n}\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { __experimentalNumberControl as NumberControl } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function Integer({\n data,\n field,\n onChange,\n hideLabelFromVision\n}) {\n var _field$getValue;\n const {\n id,\n label,\n description\n } = field;\n const value = (_field$getValue = field.getValue({\n item: data\n })) !== null && _field$getValue !== void 0 ? _field$getValue : '';\n const onChangeControl = useCallback(newValue => onChange({\n [id]: Number(newValue)\n }), [id, onChange]);\n return /*#__PURE__*/_jsx(NumberControl, {\n label: label,\n help: description,\n value: value,\n onChange: onChangeControl,\n __next40pxDefaultSize: true,\n hideLabelFromVision: hideLabelFromVision\n });\n}\n//# sourceMappingURL=integer.js.map","/**\n * WordPress dependencies\n */\nimport { RadioControl } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function Radio({\n data,\n field,\n onChange,\n hideLabelFromVision\n}) {\n const {\n id,\n label\n } = field;\n const value = field.getValue({\n item: data\n });\n const onChangeControl = useCallback(newValue => onChange({\n [id]: newValue\n }), [id, onChange]);\n if (field.elements) {\n return /*#__PURE__*/_jsx(RadioControl, {\n label: label,\n onChange: onChangeControl,\n options: field.elements,\n selected: value,\n hideLabelFromVision: hideLabelFromVision\n });\n }\n return null;\n}\n//# sourceMappingURL=radio.js.map","/**\n * WordPress dependencies\n */\nimport { SelectControl } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function Select({\n data,\n field,\n onChange,\n hideLabelFromVision\n}) {\n var _field$getValue, _field$elements;\n const {\n id,\n label\n } = field;\n const value = (_field$getValue = field.getValue({\n item: data\n })) !== null && _field$getValue !== void 0 ? _field$getValue : '';\n const onChangeControl = useCallback(newValue => onChange({\n [id]: newValue\n }), [id, onChange]);\n const elements = [\n /*\n * Value can be undefined when:\n *\n * - the field is not required\n * - in bulk editing\n *\n */\n {\n label: __('Select item'),\n value: ''\n }, ...((_field$elements = field?.elements) !== null && _field$elements !== void 0 ? _field$elements : [])];\n return /*#__PURE__*/_jsx(SelectControl, {\n label: label,\n value: value,\n options: elements,\n onChange: onChangeControl,\n __next40pxDefaultSize: true,\n __nextHasNoMarginBottom: true,\n hideLabelFromVision: hideLabelFromVision\n });\n}\n//# sourceMappingURL=select.js.map","/**\n * WordPress dependencies\n */\nimport { TextControl } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function Text({\n data,\n field,\n onChange,\n hideLabelFromVision\n}) {\n const {\n id,\n label,\n placeholder\n } = field;\n const value = field.getValue({\n item: data\n });\n const onChangeControl = useCallback(newValue => onChange({\n [id]: newValue\n }), [id, onChange]);\n return /*#__PURE__*/_jsx(TextControl, {\n label: label,\n placeholder: placeholder,\n value: value !== null && value !== void 0 ? value : '',\n onChange: onChangeControl,\n __next40pxDefaultSize: true,\n __nextHasNoMarginBottom: true,\n hideLabelFromVision: hideLabelFromVision\n });\n}\n//# sourceMappingURL=text.js.map","/**\n * WordPress dependencies\n */\nimport { RangeControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useEffect, useMemo } from '@wordpress/element';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst viewportBreaks = {\n xhuge: {\n min: 3,\n max: 6,\n default: 5\n },\n huge: {\n min: 2,\n max: 4,\n default: 4\n },\n xlarge: {\n min: 2,\n max: 3,\n default: 3\n },\n large: {\n min: 1,\n max: 2,\n default: 2\n },\n mobile: {\n min: 1,\n max: 2,\n default: 2\n }\n};\nfunction useViewPortBreakpoint() {\n const isXHuge = useViewportMatch('xhuge', '>=');\n const isHuge = useViewportMatch('huge', '>=');\n const isXlarge = useViewportMatch('xlarge', '>=');\n const isLarge = useViewportMatch('large', '>=');\n const isMobile = useViewportMatch('mobile', '>=');\n if (isXHuge) {\n return 'xhuge';\n }\n if (isHuge) {\n return 'huge';\n }\n if (isXlarge) {\n return 'xlarge';\n }\n if (isLarge) {\n return 'large';\n }\n if (isMobile) {\n return 'mobile';\n }\n return null;\n}\nexport default function DensityPicker({\n density,\n setDensity\n}) {\n const viewport = useViewPortBreakpoint();\n useEffect(() => {\n setDensity(_density => {\n if (!viewport || !_density) {\n return 0;\n }\n const breakValues = viewportBreaks[viewport];\n if (_density < breakValues.min) {\n return breakValues.min;\n }\n if (_density > breakValues.max) {\n return breakValues.max;\n }\n return _density;\n });\n }, [setDensity, viewport]);\n const breakValues = viewportBreaks[viewport || 'mobile'];\n const densityToUse = density || breakValues.default;\n const marks = useMemo(() => Array.from({\n length: breakValues.max - breakValues.min + 1\n }, (_, i) => {\n return {\n value: breakValues.min + i\n };\n }), [breakValues]);\n if (!viewport) {\n return null;\n }\n return /*#__PURE__*/_jsx(RangeControl, {\n __nextHasNoMarginBottom: true,\n __next40pxDefaultSize: true,\n showTooltip: false,\n label: __('Preview size'),\n value: breakValues.max + breakValues.min - densityToUse,\n marks: marks,\n min: breakValues.min,\n max: breakValues.max,\n withInputField: false,\n onChange: (value = 0) => {\n setDensity(breakValues.max + breakValues.min - value);\n },\n step: 1\n });\n}\n//# sourceMappingURL=density-picker.js.map","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalGrid as Grid, __experimentalHStack as HStack, __experimentalVStack as VStack, Spinner, Flex, FlexItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ItemActions from '../../components/dataviews-item-actions';\nimport SingleSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport { useHasAPossibleBulkAction } from '../../components/dataviews-bulk-actions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nfunction GridItem({\n selection,\n onChangeSelection,\n getItemId,\n item,\n actions,\n mediaField,\n primaryField,\n visibleFields,\n badgeFields,\n columnFields\n}) {\n const hasBulkAction = useHasAPossibleBulkAction(actions, item);\n const id = getItemId(item);\n const isSelected = selection.includes(id);\n const renderedMediaField = mediaField?.render ? /*#__PURE__*/_jsx(mediaField.render, {\n item: item\n }) : null;\n const renderedPrimaryField = primaryField?.render ? /*#__PURE__*/_jsx(primaryField.render, {\n item: item\n }) : null;\n return /*#__PURE__*/_jsxs(VStack, {\n spacing: 0,\n className: clsx('dataviews-view-grid__card', {\n 'is-selected': hasBulkAction && isSelected\n }),\n onClickCapture: event => {\n if (event.ctrlKey || event.metaKey) {\n event.stopPropagation();\n event.preventDefault();\n if (!hasBulkAction) {\n return;\n }\n onChangeSelection(selection.includes(id) ? selection.filter(itemId => id !== itemId) : [...selection, id]);\n }\n },\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"dataviews-view-grid__media\",\n children: renderedMediaField\n }), /*#__PURE__*/_jsx(SingleSelectionCheckbox, {\n item: item,\n selection: selection,\n onChangeSelection: onChangeSelection,\n getItemId: getItemId,\n primaryField: primaryField,\n disabled: !hasBulkAction\n }), /*#__PURE__*/_jsxs(HStack, {\n justify: \"space-between\",\n className: \"dataviews-view-grid__title-actions\",\n children: [/*#__PURE__*/_jsx(HStack, {\n className: \"dataviews-view-grid__primary-field\",\n children: renderedPrimaryField\n }), /*#__PURE__*/_jsx(ItemActions, {\n item: item,\n actions: actions,\n isCompact: true\n })]\n }), !!badgeFields?.length && /*#__PURE__*/_jsx(HStack, {\n className: \"dataviews-view-grid__badge-fields\",\n spacing: 2,\n wrap: true,\n alignment: \"top\",\n justify: \"flex-start\",\n children: badgeFields.map(field => {\n return /*#__PURE__*/_jsx(FlexItem, {\n className: \"dataviews-view-grid__field-value\",\n children: /*#__PURE__*/_jsx(field.render, {\n item: item\n })\n }, field.id);\n })\n }), !!visibleFields?.length && /*#__PURE__*/_jsx(VStack, {\n className: \"dataviews-view-grid__fields\",\n spacing: 1,\n children: visibleFields.map(field => {\n return /*#__PURE__*/_jsx(Flex, {\n className: clsx('dataviews-view-grid__field', columnFields?.includes(field.id) ? 'is-column' : 'is-row'),\n gap: 1,\n justify: \"flex-start\",\n expanded: true,\n style: {\n height: 'auto'\n },\n direction: columnFields?.includes(field.id) ? 'column' : 'row',\n children: /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(FlexItem, {\n className: \"dataviews-view-grid__field-name\",\n children: field.header\n }), /*#__PURE__*/_jsx(FlexItem, {\n className: \"dataviews-view-grid__field-value\",\n style: {\n maxHeight: 'none'\n },\n children: /*#__PURE__*/_jsx(field.render, {\n item: item\n })\n })]\n })\n }, field.id);\n })\n })]\n }, id);\n}\nexport default function ViewGrid({\n actions,\n data,\n fields,\n getItemId,\n isLoading,\n onChangeSelection,\n selection,\n view,\n density\n}) {\n const mediaField = fields.find(field => field.id === view.layout?.mediaField);\n const primaryField = fields.find(field => field.id === view.layout?.primaryField);\n const viewFields = view.fields || fields.map(field => field.id);\n const {\n visibleFields,\n badgeFields\n } = fields.reduce((accumulator, field) => {\n if (!viewFields.includes(field.id) || [view.layout?.mediaField, view?.layout?.primaryField].includes(field.id)) {\n return accumulator;\n }\n // If the field is a badge field, add it to the badgeFields array\n // otherwise add it to the rest visibleFields array.\n const key = view.layout?.badgeFields?.includes(field.id) ? 'badgeFields' : 'visibleFields';\n accumulator[key].push(field);\n return accumulator;\n }, {\n visibleFields: [],\n badgeFields: []\n });\n const hasData = !!data?.length;\n const gridStyle = density ? {\n gridTemplateColumns: `repeat(${density}, minmax(0, 1fr))`\n } : {};\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [hasData && /*#__PURE__*/_jsx(Grid, {\n gap: 8,\n columns: 2,\n alignment: \"top\",\n className: \"dataviews-view-grid\",\n style: gridStyle,\n \"aria-busy\": isLoading,\n children: data.map(item => {\n return /*#__PURE__*/_jsx(GridItem, {\n selection: selection,\n onChangeSelection: onChangeSelection,\n getItemId: getItemId,\n item: item,\n actions: actions,\n mediaField: mediaField,\n primaryField: primaryField,\n visibleFields: visibleFields,\n badgeFields: badgeFields,\n columnFields: view.layout?.columnFields\n }, getItemId(item));\n })\n }), !hasData && /*#__PURE__*/_jsx(\"div\", {\n className: clsx({\n 'dataviews-loading': isLoading,\n 'dataviews-no-results': !isLoading\n }),\n children: /*#__PURE__*/_jsx(\"p\", {\n children: isLoading ? /*#__PURE__*/_jsx(Spinner, {}) : __('No results')\n })\n })]\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { blockTable, category, formatListBullets, formatListBulletsRTL } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ViewTable from './table';\nimport ViewGrid from './grid';\nimport ViewList from './list';\nimport { LAYOUT_GRID, LAYOUT_LIST, LAYOUT_TABLE } from '../constants';\nexport const VIEW_LAYOUTS = [{\n type: LAYOUT_TABLE,\n label: __('Table'),\n component: ViewTable,\n icon: blockTable\n}, {\n type: LAYOUT_GRID,\n label: __('Grid'),\n component: ViewGrid,\n icon: category\n}, {\n type: LAYOUT_LIST,\n label: __('List'),\n component: ViewList,\n icon: isRTL() ? formatListBulletsRTL : formatListBullets\n}];\nexport function getNotHidableFieldIds(view) {\n if (view.type === 'table') {\n var _view$layout$combined;\n return [view.layout?.primaryField].concat((_view$layout$combined = view.layout?.combinedFields?.flatMap(field => field.children)) !== null && _view$layout$combined !== void 0 ? _view$layout$combined : []).filter(item => !!item);\n }\n if (view.type === 'grid') {\n return [view.layout?.primaryField, view.layout?.mediaField].filter(item => !!item);\n }\n if (view.type === 'list') {\n return [view.layout?.primaryField, view.layout?.mediaField].filter(item => !!item);\n }\n return [];\n}\nfunction getCombinedFieldIds(view) {\n const combinedFields = [];\n if (view.type === LAYOUT_TABLE && view.layout?.combinedFields) {\n view.layout.combinedFields.forEach(combination => {\n combinedFields.push(...combination.children);\n });\n }\n return combinedFields;\n}\nexport function getVisibleFieldIds(view, fields) {\n const fieldsToExclude = getCombinedFieldIds(view);\n if (view.fields) {\n return view.fields.filter(id => !fieldsToExclude.includes(id));\n }\n const visibleFields = [];\n if (view.type === LAYOUT_TABLE && view.layout?.combinedFields) {\n visibleFields.push(...view.layout.combinedFields.map(({\n id\n }) => id));\n }\n visibleFields.push(...fields.filter(({\n id\n }) => !fieldsToExclude.includes(id)).map(({\n id\n }) => id));\n return visibleFields;\n}\nexport function getHiddenFieldIds(view, fields) {\n const fieldsToExclude = [...getCombinedFieldIds(view), ...getVisibleFieldIds(view, fields)];\n\n // The media field does not need to be in the view.fields to be displayed.\n if (view.type === LAYOUT_GRID && view.layout?.mediaField) {\n fieldsToExclude.push(view.layout?.mediaField);\n }\n if (view.type === LAYOUT_LIST && view.layout?.mediaField) {\n fieldsToExclude.push(view.layout?.mediaField);\n }\n return fields.filter(({\n id,\n enableHiding\n }) => !fieldsToExclude.includes(id) && enableHiding).map(({\n id\n }) => id);\n}\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId, usePrevious } from '@wordpress/compose';\nimport { __experimentalHStack as HStack, __experimentalVStack as VStack, Button, privateApis as componentsPrivateApis, Spinner, VisuallyHidden, Composite } from '@wordpress/components';\nimport { useCallback, useEffect, useMemo, useRef, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { ActionsDropdownMenuGroup, ActionModal } from '../../components/dataviews-item-actions';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst {\n DropdownMenuV2: DropdownMenu\n} = unlock(componentsPrivateApis);\nfunction generateItemWrapperCompositeId(idPrefix) {\n return `${idPrefix}-item-wrapper`;\n}\nfunction generatePrimaryActionCompositeId(idPrefix, primaryActionId) {\n return `${idPrefix}-primary-action-${primaryActionId}`;\n}\nfunction generateDropdownTriggerCompositeId(idPrefix) {\n return `${idPrefix}-dropdown`;\n}\nfunction PrimaryActionGridCell({\n idPrefix,\n primaryAction,\n item\n}) {\n const registry = useRegistry();\n const [isModalOpen, setIsModalOpen] = useState(false);\n const compositeItemId = generatePrimaryActionCompositeId(idPrefix, primaryAction.id);\n const label = typeof primaryAction.label === 'string' ? primaryAction.label : primaryAction.label([item]);\n return 'RenderModal' in primaryAction ? /*#__PURE__*/_jsx(\"div\", {\n role: \"gridcell\",\n children: /*#__PURE__*/_jsx(Composite.Item, {\n id: compositeItemId,\n render: /*#__PURE__*/_jsx(Button, {\n label: label,\n icon: primaryAction.icon,\n isDestructive: primaryAction.isDestructive,\n size: \"small\",\n onClick: () => setIsModalOpen(true)\n }),\n children: isModalOpen && /*#__PURE__*/_jsx(ActionModal, {\n action: primaryAction,\n items: [item],\n closeModal: () => setIsModalOpen(false)\n })\n })\n }, primaryAction.id) : /*#__PURE__*/_jsx(\"div\", {\n role: \"gridcell\",\n children: /*#__PURE__*/_jsx(Composite.Item, {\n id: compositeItemId,\n render: /*#__PURE__*/_jsx(Button, {\n label: label,\n icon: primaryAction.icon,\n isDestructive: primaryAction.isDestructive,\n size: \"small\",\n onClick: () => {\n primaryAction.callback([item], {\n registry\n });\n }\n })\n })\n }, primaryAction.id);\n}\nfunction ListItem({\n actions,\n idPrefix,\n isSelected,\n item,\n mediaField,\n onSelect,\n primaryField,\n visibleFields,\n onDropdownTriggerKeyDown\n}) {\n const itemRef = useRef(null);\n const labelId = `${idPrefix}-label`;\n const descriptionId = `${idPrefix}-description`;\n const [isHovered, setIsHovered] = useState(false);\n const handleMouseEnter = () => {\n setIsHovered(true);\n };\n const handleMouseLeave = () => {\n setIsHovered(false);\n };\n useEffect(() => {\n if (isSelected) {\n itemRef.current?.scrollIntoView({\n behavior: 'auto',\n block: 'nearest',\n inline: 'nearest'\n });\n }\n }, [isSelected]);\n const {\n primaryAction,\n eligibleActions\n } = useMemo(() => {\n // If an action is eligible for all items, doesn't need\n // to provide the `isEligible` function.\n const _eligibleActions = actions.filter(action => !action.isEligible || action.isEligible(item));\n const _primaryActions = _eligibleActions.filter(action => action.isPrimary && !!action.icon);\n return {\n primaryAction: _primaryActions?.[0],\n eligibleActions: _eligibleActions\n };\n }, [actions, item]);\n const renderedMediaField = mediaField?.render ? /*#__PURE__*/_jsx(mediaField.render, {\n item: item\n }) : /*#__PURE__*/_jsx(\"div\", {\n className: \"dataviews-view-list__media-placeholder\"\n });\n const renderedPrimaryField = primaryField?.render ? /*#__PURE__*/_jsx(primaryField.render, {\n item: item\n }) : null;\n return /*#__PURE__*/_jsx(Composite.Row, {\n ref: itemRef,\n render: /*#__PURE__*/_jsx(\"li\", {}),\n role: \"row\",\n className: clsx({\n 'is-selected': isSelected,\n 'is-hovered': isHovered\n }),\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n children: /*#__PURE__*/_jsxs(HStack, {\n className: \"dataviews-view-list__item-wrapper\",\n alignment: \"center\",\n spacing: 0,\n children: [/*#__PURE__*/_jsx(\"div\", {\n role: \"gridcell\",\n children: /*#__PURE__*/_jsx(Composite.Item, {\n render: /*#__PURE__*/_jsx(\"div\", {}),\n role: \"button\",\n id: generateItemWrapperCompositeId(idPrefix),\n \"aria-pressed\": isSelected,\n \"aria-labelledby\": labelId,\n \"aria-describedby\": descriptionId,\n className: \"dataviews-view-list__item\",\n onClick: () => onSelect(item),\n children: /*#__PURE__*/_jsxs(HStack, {\n spacing: 3,\n justify: \"start\",\n alignment: \"flex-start\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"dataviews-view-list__media-wrapper\",\n children: renderedMediaField\n }), /*#__PURE__*/_jsxs(VStack, {\n spacing: 1,\n className: \"dataviews-view-list__field-wrapper\",\n children: [/*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-view-list__primary-field\",\n id: labelId,\n children: renderedPrimaryField\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"dataviews-view-list__fields\",\n id: descriptionId,\n children: visibleFields.map(field => /*#__PURE__*/_jsxs(\"div\", {\n className: \"dataviews-view-list__field\",\n children: [/*#__PURE__*/_jsx(VisuallyHidden, {\n as: \"span\",\n className: \"dataviews-view-list__field-label\",\n children: field.label\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-view-list__field-value\",\n children: /*#__PURE__*/_jsx(field.render, {\n item: item\n })\n })]\n }, field.id))\n })]\n })]\n })\n })\n }), eligibleActions?.length > 0 && /*#__PURE__*/_jsxs(HStack, {\n spacing: 3,\n justify: \"flex-end\",\n className: \"dataviews-view-list__item-actions\",\n style: {\n flexShrink: '0',\n width: 'auto'\n },\n children: [primaryAction && /*#__PURE__*/_jsx(PrimaryActionGridCell, {\n idPrefix: idPrefix,\n primaryAction: primaryAction,\n item: item\n }), /*#__PURE__*/_jsx(\"div\", {\n role: \"gridcell\",\n children: /*#__PURE__*/_jsx(DropdownMenu, {\n trigger: /*#__PURE__*/_jsx(Composite.Item, {\n id: generateDropdownTriggerCompositeId(idPrefix),\n render: /*#__PURE__*/_jsx(Button, {\n size: \"small\",\n icon: moreVertical,\n label: __('Actions'),\n accessibleWhenDisabled: true,\n disabled: !actions.length,\n onKeyDown: onDropdownTriggerKeyDown\n })\n }),\n placement: \"bottom-end\",\n children: /*#__PURE__*/_jsx(ActionsDropdownMenuGroup, {\n actions: eligibleActions,\n item: item\n })\n })\n })]\n })]\n })\n });\n}\nexport default function ViewList(props) {\n const {\n actions,\n data,\n fields,\n getItemId,\n isLoading,\n onChangeSelection,\n selection,\n view\n } = props;\n const baseId = useInstanceId(ViewList, 'view-list');\n const selectedItem = data?.findLast(item => selection.includes(getItemId(item)));\n const mediaField = fields.find(field => field.id === view.layout?.mediaField);\n const primaryField = fields.find(field => field.id === view.layout?.primaryField);\n const viewFields = view.fields || fields.map(field => field.id);\n const visibleFields = fields.filter(field => viewFields.includes(field.id) && ![view.layout?.primaryField, view.layout?.mediaField].includes(field.id));\n const onSelect = item => onChangeSelection([getItemId(item)]);\n const generateCompositeItemIdPrefix = useCallback(item => `${baseId}-${getItemId(item)}`, [baseId, getItemId]);\n const isActiveCompositeItem = useCallback((item, idToCheck) => {\n // All composite items use the same prefix in their IDs.\n return idToCheck.startsWith(generateCompositeItemIdPrefix(item));\n }, [generateCompositeItemIdPrefix]);\n\n // Controlled state for the active composite item.\n const [activeCompositeId, setActiveCompositeId] = useState(undefined);\n\n // Update the active composite item when the selected item changes.\n useEffect(() => {\n if (selectedItem) {\n setActiveCompositeId(generateItemWrapperCompositeId(generateCompositeItemIdPrefix(selectedItem)));\n }\n }, [selectedItem, generateCompositeItemIdPrefix]);\n const activeItemIndex = data.findIndex(item => isActiveCompositeItem(item, activeCompositeId !== null && activeCompositeId !== void 0 ? activeCompositeId : ''));\n const previousActiveItemIndex = usePrevious(activeItemIndex);\n const isActiveIdInList = activeItemIndex !== -1;\n const selectCompositeItem = useCallback((targetIndex, generateCompositeId) => {\n // Clamping between 0 and data.length - 1 to avoid out of bounds.\n const clampedIndex = Math.min(data.length - 1, Math.max(0, targetIndex));\n if (!data[clampedIndex]) {\n return;\n }\n const itemIdPrefix = generateCompositeItemIdPrefix(data[clampedIndex]);\n const targetCompositeItemId = generateCompositeId(itemIdPrefix);\n setActiveCompositeId(targetCompositeItemId);\n document.getElementById(targetCompositeItemId)?.focus();\n }, [data, generateCompositeItemIdPrefix]);\n\n // Select a new active composite item when the current active item\n // is removed from the list.\n useEffect(() => {\n const wasActiveIdInList = previousActiveItemIndex !== undefined && previousActiveItemIndex !== -1;\n if (!isActiveIdInList && wasActiveIdInList) {\n // By picking `previousActiveItemIndex` as the next item index, we are\n // basically picking the item that would have been after the deleted one.\n // If the previously active (and removed) item was the last of the list,\n // we will select the item before it — which is the new last item.\n selectCompositeItem(previousActiveItemIndex, generateItemWrapperCompositeId);\n }\n }, [isActiveIdInList, selectCompositeItem, previousActiveItemIndex]);\n\n // Prevent the default behavior (open dropdown menu) and instead select the\n // dropdown menu trigger on the previous/next row.\n // https://github.com/ariakit/ariakit/issues/3768\n const onDropdownTriggerKeyDown = useCallback(event => {\n if (event.key === 'ArrowDown') {\n // Select the dropdown menu trigger item in the next row.\n event.preventDefault();\n selectCompositeItem(activeItemIndex + 1, generateDropdownTriggerCompositeId);\n }\n if (event.key === 'ArrowUp') {\n // Select the dropdown menu trigger item in the previous row.\n event.preventDefault();\n selectCompositeItem(activeItemIndex - 1, generateDropdownTriggerCompositeId);\n }\n }, [selectCompositeItem, activeItemIndex]);\n const hasData = data?.length;\n if (!hasData) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: clsx({\n 'dataviews-loading': isLoading,\n 'dataviews-no-results': !hasData && !isLoading\n }),\n children: !hasData && /*#__PURE__*/_jsx(\"p\", {\n children: isLoading ? /*#__PURE__*/_jsx(Spinner, {}) : __('No results')\n })\n });\n }\n return /*#__PURE__*/_jsx(Composite, {\n id: baseId,\n render: /*#__PURE__*/_jsx(\"ul\", {}),\n className: \"dataviews-view-list\",\n role: \"grid\",\n activeId: activeCompositeId,\n setActiveId: setActiveCompositeId,\n children: data.map(item => {\n const id = generateCompositeItemIdPrefix(item);\n return /*#__PURE__*/_jsx(ListItem, {\n idPrefix: id,\n actions: actions,\n item: item,\n isSelected: item === selectedItem,\n onSelect: onSelect,\n mediaField: mediaField,\n primaryField: primaryField,\n visibleFields: visibleFields,\n onDropdownTriggerKeyDown: onDropdownTriggerKeyDown\n }, id);\n })\n });\n}\n//# sourceMappingURL=index.js.map","/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { arrowLeft, arrowRight, unseen, funnel } from '@wordpress/icons';\nimport { Button, Icon, privateApis as componentsPrivateApis } from '@wordpress/components';\nimport { forwardRef, Children, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { sanitizeOperators } from '../../utils';\nimport { SORTING_DIRECTIONS, sortArrows, sortLabels } from '../../constants';\nimport { getVisibleFieldIds } from '../index';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst {\n DropdownMenuV2\n} = unlock(componentsPrivateApis);\nfunction WithDropDownMenuSeparators({\n children\n}) {\n return Children.toArray(children).filter(Boolean).map((child, i) => /*#__PURE__*/_jsxs(Fragment, {\n children: [i > 0 && /*#__PURE__*/_jsx(DropdownMenuV2.Separator, {}), child]\n }, i));\n}\nconst _HeaderMenu = forwardRef(function HeaderMenu({\n fieldId,\n view,\n fields,\n onChangeView,\n onHide,\n setOpenedFilter\n}, ref) {\n const visibleFieldIds = getVisibleFieldIds(view, fields);\n const index = visibleFieldIds?.indexOf(fieldId);\n const isSorted = view.sort?.field === fieldId;\n let isHidable = false;\n let isSortable = false;\n let canAddFilter = false;\n let header;\n let operators = [];\n const combinedField = view.layout?.combinedFields?.find(f => f.id === fieldId);\n const field = fields.find(f => f.id === fieldId);\n if (!combinedField) {\n if (!field) {\n // No combined or regular field found.\n return null;\n }\n isHidable = field.enableHiding !== false;\n isSortable = field.enableSorting !== false;\n header = field.header;\n operators = sanitizeOperators(field);\n // Filter can be added:\n // 1. If the field is not already part of a view's filters.\n // 2. If the field meets the type and operator requirements.\n // 3. If it's not primary. If it is, it should be already visible.\n canAddFilter = !view.filters?.some(_filter => fieldId === _filter.field) && !!field.elements?.length && !!operators.length && !field.filterBy?.isPrimary;\n } else {\n header = combinedField.header || combinedField.label;\n }\n return /*#__PURE__*/_jsx(DropdownMenuV2, {\n align: \"start\",\n trigger: /*#__PURE__*/_jsxs(Button, {\n size: \"compact\",\n className: \"dataviews-view-table-header-button\",\n ref: ref,\n variant: \"tertiary\",\n children: [header, view.sort && isSorted && /*#__PURE__*/_jsx(\"span\", {\n \"aria-hidden\": \"true\",\n children: sortArrows[view.sort.direction]\n })]\n }),\n style: {\n minWidth: '240px'\n },\n children: /*#__PURE__*/_jsxs(WithDropDownMenuSeparators, {\n children: [isSortable && /*#__PURE__*/_jsx(DropdownMenuV2.Group, {\n children: SORTING_DIRECTIONS.map(direction => {\n const isChecked = view.sort && isSorted && view.sort.direction === direction;\n const value = `${fieldId}-${direction}`;\n return /*#__PURE__*/_jsx(DropdownMenuV2.RadioItem, {\n // All sorting radio items share the same name, so that\n // selecting a sorting option automatically deselects the\n // previously selected one, even if it is displayed in\n // another submenu. The field and direction are passed via\n // the `value` prop.\n name: \"view-table-sorting\",\n value: value,\n checked: isChecked,\n onChange: () => {\n onChangeView({\n ...view,\n sort: {\n field: fieldId,\n direction\n }\n });\n },\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: sortLabels[direction]\n })\n }, value);\n })\n }), canAddFilter && /*#__PURE__*/_jsx(DropdownMenuV2.Group, {\n children: /*#__PURE__*/_jsx(DropdownMenuV2.Item, {\n prefix: /*#__PURE__*/_jsx(Icon, {\n icon: funnel\n }),\n onClick: () => {\n setOpenedFilter(fieldId);\n onChangeView({\n ...view,\n page: 1,\n filters: [...(view.filters || []), {\n field: fieldId,\n value: undefined,\n operator: operators[0]\n }]\n });\n },\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: __('Add filter')\n })\n })\n }), /*#__PURE__*/_jsxs(DropdownMenuV2.Group, {\n children: [/*#__PURE__*/_jsx(DropdownMenuV2.Item, {\n prefix: /*#__PURE__*/_jsx(Icon, {\n icon: arrowLeft\n }),\n disabled: index < 1,\n onClick: () => {\n var _visibleFieldIds$slic;\n onChangeView({\n ...view,\n fields: [...((_visibleFieldIds$slic = visibleFieldIds.slice(0, index - 1)) !== null && _visibleFieldIds$slic !== void 0 ? _visibleFieldIds$slic : []), fieldId, visibleFieldIds[index - 1], ...visibleFieldIds.slice(index + 1)]\n });\n },\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: __('Move left')\n })\n }), /*#__PURE__*/_jsx(DropdownMenuV2.Item, {\n prefix: /*#__PURE__*/_jsx(Icon, {\n icon: arrowRight\n }),\n disabled: index >= visibleFieldIds.length - 1,\n onClick: () => {\n var _visibleFieldIds$slic2;\n onChangeView({\n ...view,\n fields: [...((_visibleFieldIds$slic2 = visibleFieldIds.slice(0, index)) !== null && _visibleFieldIds$slic2 !== void 0 ? _visibleFieldIds$slic2 : []), visibleFieldIds[index + 1], fieldId, ...visibleFieldIds.slice(index + 2)]\n });\n },\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: __('Move right')\n })\n }), isHidable && field && /*#__PURE__*/_jsx(DropdownMenuV2.Item, {\n prefix: /*#__PURE__*/_jsx(Icon, {\n icon: unseen\n }),\n onClick: () => {\n onHide(field);\n onChangeView({\n ...view,\n fields: visibleFieldIds.filter(id => id !== fieldId)\n });\n },\n children: /*#__PURE__*/_jsx(DropdownMenuV2.ItemLabel, {\n children: __('Hide column')\n })\n })]\n })]\n })\n });\n});\n\n// @ts-expect-error Lift the `Item` type argument through the forwardRef.\nconst ColumnHeaderMenu = _HeaderMenu;\nexport default ColumnHeaderMenu;\n//# sourceMappingURL=column-header-menu.js.map","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Spinner, __experimentalHStack as HStack, __experimentalVStack as VStack } from '@wordpress/components';\nimport { useEffect, useId, useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SingleSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport ItemActions from '../../components/dataviews-item-actions';\nimport { sortValues } from '../../constants';\nimport { useSomeItemHasAPossibleBulkAction, useHasAPossibleBulkAction, BulkSelectionCheckbox } from '../../components/dataviews-bulk-actions';\nimport ColumnHeaderMenu from './column-header-menu';\nimport { getVisibleFieldIds } from '../index';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nfunction TableColumn({\n column,\n fields,\n view,\n ...props\n}) {\n const field = fields.find(f => f.id === column);\n if (!!field) {\n return /*#__PURE__*/_jsx(TableColumnField, {\n ...props,\n field: field\n });\n }\n const combinedField = view.layout?.combinedFields?.find(f => f.id === column);\n if (!!combinedField) {\n return /*#__PURE__*/_jsx(TableColumnCombined, {\n ...props,\n fields: fields,\n view: view,\n field: combinedField\n });\n }\n return null;\n}\nfunction TableColumnField({\n primaryField,\n item,\n field\n}) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: clsx('dataviews-view-table__cell-content-wrapper', {\n 'dataviews-view-table__primary-field': primaryField?.id === field.id\n }),\n children: /*#__PURE__*/_jsx(field.render, {\n item\n })\n });\n}\nfunction TableColumnCombined({\n field,\n ...props\n}) {\n const children = field.children.map(child => /*#__PURE__*/_jsx(TableColumn, {\n ...props,\n column: child\n }, child));\n if (field.direction === 'horizontal') {\n return /*#__PURE__*/_jsx(HStack, {\n spacing: 3,\n children: children\n });\n }\n return /*#__PURE__*/_jsx(VStack, {\n spacing: 0,\n children: children\n });\n}\nfunction TableRow({\n hasBulkActions,\n item,\n actions,\n fields,\n id,\n view,\n primaryField,\n selection,\n getItemId,\n onChangeSelection\n}) {\n const hasPossibleBulkAction = useHasAPossibleBulkAction(actions, item);\n const isSelected = hasPossibleBulkAction && selection.includes(id);\n const [isHovered, setIsHovered] = useState(false);\n const handleMouseEnter = () => {\n setIsHovered(true);\n };\n const handleMouseLeave = () => {\n setIsHovered(false);\n };\n\n // Will be set to true if `onTouchStart` fires. This happens before\n // `onClick` and can be used to exclude touchscreen devices from certain\n // behaviours.\n const isTouchDeviceRef = useRef(false);\n const columns = getVisibleFieldIds(view, fields);\n return /*#__PURE__*/_jsxs(\"tr\", {\n className: clsx('dataviews-view-table__row', {\n 'is-selected': hasPossibleBulkAction && isSelected,\n 'is-hovered': isHovered,\n 'has-bulk-actions': hasPossibleBulkAction\n }),\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onTouchStart: () => {\n isTouchDeviceRef.current = true;\n },\n onClick: () => {\n if (!hasPossibleBulkAction) {\n return;\n }\n if (!isTouchDeviceRef.current && document.getSelection()?.type !== 'Range') {\n onChangeSelection(selection.includes(id) ? selection.filter(itemId => id !== itemId) : [id]);\n }\n },\n children: [hasBulkActions && /*#__PURE__*/_jsx(\"td\", {\n className: \"dataviews-view-table__checkbox-column\",\n style: {\n width: '1%'\n },\n children: /*#__PURE__*/_jsx(\"div\", {\n className: \"dataviews-view-table__cell-content-wrapper\",\n children: /*#__PURE__*/_jsx(SingleSelectionCheckbox, {\n item: item,\n selection: selection,\n onChangeSelection: onChangeSelection,\n getItemId: getItemId,\n primaryField: primaryField,\n disabled: !hasPossibleBulkAction\n })\n })\n }), columns.map(column => {\n var _view$layout$styles$c;\n // Explicits picks the supported styles.\n const {\n width,\n maxWidth,\n minWidth\n } = (_view$layout$styles$c = view.layout?.styles?.[column]) !== null && _view$layout$styles$c !== void 0 ? _view$layout$styles$c : {};\n return /*#__PURE__*/_jsx(\"td\", {\n style: {\n width,\n maxWidth,\n minWidth\n },\n children: /*#__PURE__*/_jsx(TableColumn, {\n primaryField: primaryField,\n fields: fields,\n item: item,\n column: column,\n view: view\n })\n }, column);\n }), !!actions?.length &&\n /*#__PURE__*/\n // Disable reason: we are not making the element interactive,\n // but preventing any click events from bubbling up to the\n // table row. This allows us to add a click handler to the row\n // itself (to toggle row selection) without erroneously\n // intercepting click events from ItemActions.\n /* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n _jsx(\"td\", {\n className: \"dataviews-view-table__actions-column\",\n onClick: e => e.stopPropagation(),\n children: /*#__PURE__*/_jsx(ItemActions, {\n item: item,\n actions: actions\n })\n })\n /* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */]\n });\n}\nfunction ViewTable({\n actions,\n data,\n fields,\n getItemId,\n isLoading = false,\n onChangeView,\n onChangeSelection,\n selection,\n setOpenedFilter,\n view\n}) {\n const headerMenuRefs = useRef(new Map());\n const headerMenuToFocusRef = useRef();\n const [nextHeaderMenuToFocus, setNextHeaderMenuToFocus] = useState();\n const hasBulkActions = useSomeItemHasAPossibleBulkAction(actions, data);\n useEffect(() => {\n if (headerMenuToFocusRef.current) {\n headerMenuToFocusRef.current.focus();\n headerMenuToFocusRef.current = undefined;\n }\n });\n const tableNoticeId = useId();\n if (nextHeaderMenuToFocus) {\n // If we need to force focus, we short-circuit rendering here\n // to prevent any additional work while we handle that.\n // Clearing out the focus directive is necessary to make sure\n // future renders don't cause unexpected focus jumps.\n headerMenuToFocusRef.current = nextHeaderMenuToFocus;\n setNextHeaderMenuToFocus(undefined);\n return;\n }\n const onHide = field => {\n const hidden = headerMenuRefs.current.get(field.id);\n const fallback = hidden ? headerMenuRefs.current.get(hidden.fallback) : undefined;\n setNextHeaderMenuToFocus(fallback?.node);\n };\n const columns = getVisibleFieldIds(view, fields);\n const hasData = !!data?.length;\n const primaryField = fields.find(field => field.id === view.layout?.primaryField);\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsxs(\"table\", {\n className: \"dataviews-view-table\",\n \"aria-busy\": isLoading,\n \"aria-describedby\": tableNoticeId,\n children: [/*#__PURE__*/_jsx(\"thead\", {\n children: /*#__PURE__*/_jsxs(\"tr\", {\n className: \"dataviews-view-table__row\",\n children: [hasBulkActions && /*#__PURE__*/_jsx(\"th\", {\n className: \"dataviews-view-table__checkbox-column\",\n style: {\n width: '1%'\n },\n scope: \"col\",\n children: /*#__PURE__*/_jsx(BulkSelectionCheckbox, {\n selection: selection,\n onChangeSelection: onChangeSelection,\n data: data,\n actions: actions,\n getItemId: getItemId\n })\n }), columns.map((column, index) => {\n var _view$layout$styles$c2;\n // Explicits picks the supported styles.\n const {\n width,\n maxWidth,\n minWidth\n } = (_view$layout$styles$c2 = view.layout?.styles?.[column]) !== null && _view$layout$styles$c2 !== void 0 ? _view$layout$styles$c2 : {};\n return /*#__PURE__*/_jsx(\"th\", {\n style: {\n width,\n maxWidth,\n minWidth\n },\n \"aria-sort\": view.sort?.field === column ? sortValues[view.sort.direction] : undefined,\n scope: \"col\",\n children: /*#__PURE__*/_jsx(ColumnHeaderMenu, {\n ref: node => {\n if (node) {\n headerMenuRefs.current.set(column, {\n node,\n fallback: columns[index > 0 ? index - 1 : 1]\n });\n } else {\n headerMenuRefs.current.delete(column);\n }\n },\n fieldId: column,\n view: view,\n fields: fields,\n onChangeView: onChangeView,\n onHide: onHide,\n setOpenedFilter: setOpenedFilter\n })\n }, column);\n }), !!actions?.length && /*#__PURE__*/_jsx(\"th\", {\n className: \"dataviews-view-table__actions-column\",\n children: /*#__PURE__*/_jsx(\"span\", {\n className: \"dataviews-view-table-header\",\n children: __('Actions')\n })\n })]\n })\n }), /*#__PURE__*/_jsx(\"tbody\", {\n children: hasData && data.map((item, index) => /*#__PURE__*/_jsx(TableRow, {\n item: item,\n hasBulkActions: hasBulkActions,\n actions: actions,\n fields: fields,\n id: getItemId(item) || index.toString(),\n view: view,\n primaryField: primaryField,\n selection: selection,\n getItemId: getItemId,\n onChangeSelection: onChangeSelection\n }, getItemId(item)))\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: clsx({\n 'dataviews-loading': isLoading,\n 'dataviews-no-results': !hasData && !isLoading\n }),\n id: tableNoticeId,\n children: !hasData && /*#__PURE__*/_jsx(\"p\", {\n children: isLoading ? /*#__PURE__*/_jsx(Spinner, {}) : __('No results')\n })\n })]\n });\n}\nexport default ViewTable;\n//# sourceMappingURL=index.js.map","/**\n * Internal dependencies\n */\n\nfunction sort(a, b, direction) {\n const timeA = new Date(a).getTime();\n const timeB = new Date(b).getTime();\n return direction === 'asc' ? timeA - timeB : timeB - timeA;\n}\nfunction isValid(value, context) {\n if (context?.elements) {\n const validValues = context?.elements.map(f => f.value);\n if (!validValues.includes(value)) {\n return false;\n }\n }\n return true;\n}\nexport default {\n sort,\n isValid,\n Edit: 'datetime'\n};\n//# sourceMappingURL=datetime.js.map","/**\n * Internal dependencies\n */\n\nimport { default as integer } from './integer';\nimport { default as text } from './text';\nimport { default as datetime } from './datetime';\n\n/**\n *\n * @param {FieldType} type The field type definition to get.\n *\n * @return A field type definition.\n */\nexport default function getFieldTypeDefinition(type) {\n if ('integer' === type) {\n return integer;\n }\n if ('text' === type) {\n return text;\n }\n if ('datetime' === type) {\n return datetime;\n }\n return {\n sort: (a, b, direction) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return direction === 'asc' ? a - b : b - a;\n }\n return direction === 'asc' ? a.localeCompare(b) : b.localeCompare(a);\n },\n isValid: (value, context) => {\n if (context?.elements) {\n const validValues = context?.elements?.map(f => f.value);\n if (!validValues.includes(value)) {\n return false;\n }\n }\n return true;\n },\n Edit: () => null\n };\n}\n//# sourceMappingURL=index.js.map","/**\n * Internal dependencies\n */\n\nfunction sort(a, b, direction) {\n return direction === 'asc' ? a - b : b - a;\n}\nfunction isValid(value, context) {\n // TODO: this implicitely means the value is required.\n if (value === '') {\n return false;\n }\n if (!Number.isInteger(Number(value))) {\n return false;\n }\n if (context?.elements) {\n const validValues = context?.elements.map(f => f.value);\n if (!validValues.includes(Number(value))) {\n return false;\n }\n }\n return true;\n}\nexport default {\n sort,\n isValid,\n Edit: 'integer'\n};\n//# sourceMappingURL=integer.js.map","/**\n * Internal dependencies\n */\n\nfunction sort(valueA, valueB, direction) {\n return direction === 'asc' ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA);\n}\nfunction isValid(value, context) {\n if (context?.elements) {\n const validValues = context?.elements?.map(f => f.value);\n if (!validValues.includes(value)) {\n return false;\n }\n }\n return true;\n}\nexport default {\n sort,\n isValid,\n Edit: 'text'\n};\n//# sourceMappingURL=text.js.map","/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\nexport const {\n lock,\n unlock\n} = __dangerousOptInToUnstableAPIsOnlyForCoreModules('I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.', '@wordpress/dataviews');\n//# sourceMappingURL=lock-unlock.js.map","/**\n * Internal dependencies\n */\nimport getFieldTypeDefinition from './field-types';\nimport { getControl } from './dataform-controls';\nimport DataFormCombinedEdit from './components/dataform-combined-edit';\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport function normalizeFields(fields) {\n return fields.map(field => {\n var _field$sort, _field$isValid, _field$enableHiding, _field$enableSorting;\n const fieldTypeDefinition = getFieldTypeDefinition(field.type);\n const getValue = field.getValue || (({\n item\n }) => item[field.id]);\n const sort = (_field$sort = field.sort) !== null && _field$sort !== void 0 ? _field$sort : function sort(a, b, direction) {\n return fieldTypeDefinition.sort(getValue({\n item: a\n }), getValue({\n item: b\n }), direction);\n };\n const isValid = (_field$isValid = field.isValid) !== null && _field$isValid !== void 0 ? _field$isValid : function isValid(item, context) {\n return fieldTypeDefinition.isValid(getValue({\n item\n }), context);\n };\n const Edit = getControl(field, fieldTypeDefinition);\n const renderFromElements = ({\n item\n }) => {\n const value = getValue({\n item\n });\n return field?.elements?.find(element => element.value === value)?.label || getValue({\n item\n });\n };\n const render = field.render || (field.elements ? renderFromElements : getValue);\n return {\n ...field,\n label: field.label || field.id,\n header: field.header || field.label || field.id,\n getValue,\n render,\n sort,\n isValid,\n Edit,\n enableHiding: (_field$enableHiding = field.enableHiding) !== null && _field$enableHiding !== void 0 ? _field$enableHiding : true,\n enableSorting: (_field$enableSorting = field.enableSorting) !== null && _field$enableSorting !== void 0 ? _field$enableSorting : true\n };\n });\n}\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param combinedFields combined field list.\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport function normalizeCombinedFields(combinedFields, fields) {\n return combinedFields.map(combinedField => {\n return {\n ...combinedField,\n Edit: DataFormCombinedEdit,\n fields: normalizeFields(combinedField.children.map(fieldId => fields.find(({\n id\n }) => id === fieldId)).filter(field => !!field))\n };\n });\n}\n//# sourceMappingURL=normalize-fields.js.map","/**\n * Internal dependencies\n */\nimport { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_ANY, OPERATOR_IS_NONE } from './constants';\nexport function sanitizeOperators(field) {\n let operators = field.filterBy?.operators;\n\n // Assign default values.\n if (!operators || !Array.isArray(operators)) {\n operators = [OPERATOR_IS_ANY, OPERATOR_IS_NONE];\n }\n\n // Make sure only valid operators are used.\n operators = operators.filter(operator => ALL_OPERATORS.includes(operator));\n\n // Do not allow mixing single & multiselection operators.\n // Remove multiselection operators if any of the single selection ones is present.\n if (operators.includes(OPERATOR_IS) || operators.includes(OPERATOR_IS_NOT)) {\n operators = operators.filter(operator => [OPERATOR_IS, OPERATOR_IS_NOT].includes(operator));\n }\n return operators;\n}\n//# sourceMappingURL=utils.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst arrowDown = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"m16.5 13.5-3.7 3.7V4h-1.5v13.2l-3.8-3.7-1 1 5.5 5.6 5.5-5.6z\"\n })\n});\nexport default arrowDown;\n//# sourceMappingURL=arrow-down.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst arrowLeft = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M20 11.2H6.8l3.7-3.7-1-1L3.9 12l5.6 5.5 1-1-3.7-3.7H20z\"\n })\n});\nexport default arrowLeft;\n//# sourceMappingURL=arrow-left.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst arrowRight = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"m14.5 6.5-1 1 3.7 3.7H4v1.6h13.2l-3.7 3.7 1 1 5.6-5.5z\"\n })\n});\nexport default arrowRight;\n//# sourceMappingURL=arrow-right.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst arrowUp = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M12 3.9 6.5 9.5l1 1 3.8-3.7V20h1.5V6.8l3.7 3.7 1-1z\"\n })\n});\nexport default arrowUp;\n//# sourceMappingURL=arrow-up.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst backup = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M5.5 12h1.75l-2.5 3-2.5-3H4a8 8 0 113.134 6.35l.907-1.194A6.5 6.5 0 105.5 12zm9.53 1.97l-2.28-2.28V8.5a.75.75 0 00-1.5 0V12a.747.747 0 00.218.529l1.282-.84-1.28.842 2.5 2.5a.75.75 0 101.06-1.061z\"\n })\n});\nexport default backup;\n//# sourceMappingURL=backup.js.map","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst blockTable = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v3.5h-15V5c0-.3.2-.5.5-.5zm8 5.5h6.5v3.5H13V10zm-1.5 3.5h-7V10h7v3.5zm-7 5.5v-4h7v4.5H5c-.3 0-.5-.2-.5-.5zm14.5.5h-6V15h6.5v4c0 .3-.2.5-.5.5z\"\n })\n});\nexport default blockTable;\n//# sourceMappingURL=block-table.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst category = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M6 5.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM4 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2V6zm11-.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5h-3a.5.5 0 01-.5-.5V6a.5.5 0 01.5-.5zM13 6a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2h-3a2 2 0 01-2-2V6zm5 8.5h-3a.5.5 0 00-.5.5v3a.5.5 0 00.5.5h3a.5.5 0 00.5-.5v-3a.5.5 0 00-.5-.5zM15 13a2 2 0 00-2 2v3a2 2 0 002 2h3a2 2 0 002-2v-3a2 2 0 00-2-2h-3zm-9 1.5h3a.5.5 0 01.5.5v3a.5.5 0 01-.5.5H6a.5.5 0 01-.5-.5v-3a.5.5 0 01.5-.5zM4 15a2 2 0 012-2h3a2 2 0 012 2v3a2 2 0 01-2 2H6a2 2 0 01-2-2v-3z\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })\n});\nexport default category;\n//# sourceMappingURL=category.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst check = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z\"\n })\n});\nexport default check;\n//# sourceMappingURL=check.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst chevronDown = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z\"\n })\n});\nexport default chevronDown;\n//# sourceMappingURL=chevron-down.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst chevronUp = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z\"\n })\n});\nexport default chevronUp;\n//# sourceMappingURL=chevron-up.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst closeSmall = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z\"\n })\n});\nexport default closeSmall;\n//# sourceMappingURL=close-small.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst cog = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n d: \"M10.289 4.836A1 1 0 0111.275 4h1.306a1 1 0 01.987.836l.244 1.466c.787.26 1.503.679 2.108 1.218l1.393-.522a1 1 0 011.216.437l.653 1.13a1 1 0 01-.23 1.273l-1.148.944a6.025 6.025 0 010 2.435l1.149.946a1 1 0 01.23 1.272l-.653 1.13a1 1 0 01-1.216.437l-1.394-.522c-.605.54-1.32.958-2.108 1.218l-.244 1.466a1 1 0 01-.987.836h-1.306a1 1 0 01-.986-.836l-.244-1.466a5.995 5.995 0 01-2.108-1.218l-1.394.522a1 1 0 01-1.217-.436l-.653-1.131a1 1 0 01.23-1.272l1.149-.946a6.026 6.026 0 010-2.435l-1.148-.944a1 1 0 01-.23-1.272l.653-1.131a1 1 0 011.217-.437l1.393.522a5.994 5.994 0 012.108-1.218l.244-1.466zM14.929 12a3 3 0 11-6 0 3 3 0 016 0z\",\n clipRule: \"evenodd\"\n })\n});\nexport default cog;\n//# sourceMappingURL=cog.js.map","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst commentAuthorAvatar = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n d: \"M7.25 16.437a6.5 6.5 0 1 1 9.5 0V16A2.75 2.75 0 0 0 14 13.25h-4A2.75 2.75 0 0 0 7.25 16v.437Zm1.5 1.193a6.47 6.47 0 0 0 3.25.87 6.47 6.47 0 0 0 3.25-.87V16c0-.69-.56-1.25-1.25-1.25h-4c-.69 0-1.25.56-1.25 1.25v1.63ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm10-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z\",\n clipRule: \"evenodd\"\n })\n});\nexport default commentAuthorAvatar;\n//# sourceMappingURL=comment-author-avatar.js.map","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst commentContent = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.68822 16.625L5.5 17.8145L5.5 5.5L18.5 5.5L18.5 16.625L6.68822 16.625ZM7.31 18.125L19 18.125C19.5523 18.125 20 17.6773 20 17.125L20 5C20 4.44772 19.5523 4 19 4H5C4.44772 4 4 4.44772 4 5V19.5247C4 19.8173 4.16123 20.086 4.41935 20.2237C4.72711 20.3878 5.10601 20.3313 5.35252 20.0845L7.31 18.125ZM16 9.99997H8V8.49997H16V9.99997ZM8 14H13V12.5H8V14Z\"\n })\n});\nexport default commentContent;\n//# sourceMappingURL=comment-content.js.map","/**\n * Internal dependencies\n */\n\nimport { default as pencil } from './pencil';\nexport default pencil;\n//# sourceMappingURL=edit.js.map","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst external = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z\"\n })\n});\nexport default external;\n//# sourceMappingURL=external.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst formatListBulletsRTL = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M4 8.8h8.9V7.2H4v1.6zm0 7h8.9v-1.5H4v1.5zM18 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"\n })\n});\nexport default formatListBulletsRTL;\n//# sourceMappingURL=format-list-bullets-rtl.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst formatListBullets = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M11.1 15.8H20v-1.5h-8.9v1.5zm0-8.6v1.5H20V7.2h-8.9zM6 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n })\n});\nexport default formatListBullets;\n//# sourceMappingURL=format-list-bullets.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst funnel = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M10 17.5H14V16H10V17.5ZM6 6V7.5H18V6H6ZM8 12.5H16V11H8V12.5Z\"\n })\n});\nexport default funnel;\n//# sourceMappingURL=funnel.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst heading = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M6 5V18.5911L12 13.8473L18 18.5911V5H6Z\"\n })\n});\nexport default heading;\n//# sourceMappingURL=heading.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst login = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M11 14.5l1.1 1.1 3-3 .5-.5-.6-.6-3-3-1 1 1.7 1.7H5v1.5h7.7L11 14.5zM16.8 5h-7c-1.1 0-2 .9-2 2v1.5h1.5V7c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v10c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5v-1.5H7.8V17c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2z\"\n })\n});\nexport default login;\n//# sourceMappingURL=login.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst moreVertical = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\"\n })\n});\nexport default moreVertical;\n//# sourceMappingURL=more-vertical.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst next = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M6.6 6L5.4 7l4.5 5-4.5 5 1.1 1 5.5-6-5.4-6zm6 0l-1.1 1 4.5 5-4.5 5 1.1 1 5.5-6-5.5-6z\"\n })\n});\nexport default next;\n//# sourceMappingURL=next.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst pencil = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z\"\n })\n});\nexport default pencil;\n//# sourceMappingURL=pencil.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst post = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"m7.3 9.7 1.4 1.4c.2-.2.3-.3.4-.5 0 0 0-.1.1-.1.3-.5.4-1.1.3-1.6L12 7 9 4 7.2 6.5c-.6-.1-1.1 0-1.6.3 0 0-.1 0-.1.1-.3.1-.4.2-.6.4l1.4 1.4L4 11v1h1l2.3-2.3zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z\"\n })\n});\nexport default post;\n//# sourceMappingURL=post.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst previous = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M11.6 7l-1.1-1L5 12l5.5 6 1.1-1L7 12l4.6-5zm6 0l-1.1-1-5.5 6 5.5 6 1.1-1-4.6-5 4.6-5z\"\n })\n});\nexport default previous;\n//# sourceMappingURL=previous.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst search = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z\"\n })\n});\nexport default search;\n//# sourceMappingURL=search.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst seen = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M3.99961 13C4.67043 13.3354 4.6703 13.3357 4.67017 13.3359L4.67298 13.3305C4.67621 13.3242 4.68184 13.3135 4.68988 13.2985C4.70595 13.2686 4.7316 13.2218 4.76695 13.1608C4.8377 13.0385 4.94692 12.8592 5.09541 12.6419C5.39312 12.2062 5.84436 11.624 6.45435 11.0431C7.67308 9.88241 9.49719 8.75 11.9996 8.75C14.502 8.75 16.3261 9.88241 17.5449 11.0431C18.1549 11.624 18.6061 12.2062 18.9038 12.6419C19.0523 12.8592 19.1615 13.0385 19.2323 13.1608C19.2676 13.2218 19.2933 13.2686 19.3093 13.2985C19.3174 13.3135 19.323 13.3242 19.3262 13.3305L19.3291 13.3359C19.3289 13.3357 19.3288 13.3354 19.9996 13C20.6704 12.6646 20.6703 12.6643 20.6701 12.664L20.6697 12.6632L20.6688 12.6614L20.6662 12.6563L20.6583 12.6408C20.6517 12.6282 20.6427 12.6108 20.631 12.5892C20.6078 12.5459 20.5744 12.4852 20.5306 12.4096C20.4432 12.2584 20.3141 12.0471 20.1423 11.7956C19.7994 11.2938 19.2819 10.626 18.5794 9.9569C17.1731 8.61759 14.9972 7.25 11.9996 7.25C9.00203 7.25 6.82614 8.61759 5.41987 9.9569C4.71736 10.626 4.19984 11.2938 3.85694 11.7956C3.68511 12.0471 3.55605 12.2584 3.4686 12.4096C3.42484 12.4852 3.39142 12.5459 3.36818 12.5892C3.35656 12.6108 3.34748 12.6282 3.34092 12.6408L3.33297 12.6563L3.33041 12.6614L3.32948 12.6632L3.32911 12.664C3.32894 12.6643 3.32879 12.6646 3.99961 13ZM11.9996 16C13.9326 16 15.4996 14.433 15.4996 12.5C15.4996 10.567 13.9326 9 11.9996 9C10.0666 9 8.49961 10.567 8.49961 12.5C8.49961 14.433 10.0666 16 11.9996 16Z\"\n })\n});\nexport default seen;\n//# sourceMappingURL=seen.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst starFilled = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z\"\n })\n});\nexport default starFilled;\n//# sourceMappingURL=star-filled.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst trash = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 5.5A2.25 2.25 0 0 0 9.878 7h4.244A2.251 2.251 0 0 0 12 5.5ZM12 4a3.751 3.751 0 0 0-3.675 3H5v1.5h1.27l.818 8.997a2.75 2.75 0 0 0 2.739 2.501h4.347a2.75 2.75 0 0 0 2.738-2.5L17.73 8.5H19V7h-3.325A3.751 3.751 0 0 0 12 4Zm4.224 4.5H7.776l.806 8.861a1.25 1.25 0 0 0 1.245 1.137h4.347a1.25 1.25 0 0 0 1.245-1.137l.805-8.861Z\"\n })\n});\nexport default trash;\n//# sourceMappingURL=trash.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst unseen = /*#__PURE__*/_jsx(SVG, {\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M4.67 10.664s-2.09 1.11-2.917 1.582l.494.87 1.608-.914.002.002c.343.502.86 1.17 1.563 1.84.348.33.742.663 1.185.976L5.57 16.744l.858.515 1.02-1.701a9.1 9.1 0 0 0 4.051 1.18V19h1v-2.263a9.1 9.1 0 0 0 4.05-1.18l1.021 1.7.858-.514-1.034-1.723c.442-.313.837-.646 1.184-.977.703-.669 1.22-1.337 1.563-1.839l.002-.003 1.61.914.493-.87c-1.75-.994-2.918-1.58-2.918-1.58l-.003.005a8.29 8.29 0 0 1-.422.689 10.097 10.097 0 0 1-1.36 1.598c-1.218 1.16-3.042 2.293-5.544 2.293-2.503 0-4.327-1.132-5.546-2.293a10.099 10.099 0 0 1-1.359-1.599 8.267 8.267 0 0 1-.422-.689l-.003-.005Z\"\n })\n});\nexport default unseen;\n//# sourceMappingURL=unseen.js.map","/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tstore as coreStore,\n\tgetLastEntityDeleteError,\n} from '@wordpress/core-data';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\tButton,\n} from '@wordpress/components';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { external, trash, backup, edit } from '@wordpress/icons';\nimport { addQueryArgs } from '@wordpress/url';\n\nfunction getItemTitle( item ) {\n\tif ( typeof item.title === 'string' ) {\n\t\treturn decodeEntities( item.title );\n\t}\n\treturn decodeEntities( item.title?.rendered || '' );\n}\n\nexport const trashPostAction = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Move to Trash' ),\n\tsupportsBulk: true,\n\ticon: trash,\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\thideModalHeader: true,\n\tRenderModal: ( { items: posts, closeModal } ) => {\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{ posts.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The number of posts (always plural).\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to delete %s posts?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tdecodeEntities( posts.length )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The page's title.\n\t\t\t\t\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\tposts && posts[ 0 ]?.title?.rendered\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ) }\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\t\t\t\tposts.map( async ( post ) => {\n\t\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t\tposts.length > 1\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t'The selected posts were moved to the trash.'\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: The page's title. */\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'\"%s\" moved to the Trash.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\t\t\t\t\tposts[ 0 ].title.rendered\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\t\tid: 'edit-site-page-trashed',\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} catch ( error ) {\n\t\t\t\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\t\t\t\terror.message &&\n\t\t\t\t\t\t\t\t\terror.code !== 'unknown_error'\n\t\t\t\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t\t\t\t: _n(\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the page to the trash.',\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the pages to the trash.',\n\t\t\t\t\t\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t\t\t\t\t );\n\n\t\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t},\n};\n\nexport function usePermanentlyDeletePostAction() {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'permanently-delete',\n\t\t\tlabel: __( 'Permanently delete' ),\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\tconst promiseResult = await Promise.allSettled(\n\t\t\t\t\tposts.map( ( post ) => {\n\t\t\t\t\t\treturn deleteEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ force: true },\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t);\n\t\t\t\t// If all the promises were fulfilled with success.\n\t\t\t\tif (\n\t\t\t\t\tpromiseResult.every(\n\t\t\t\t\t\t( { status } ) => status === 'fulfilled'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tlet successMessage;\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tsuccessMessage = sprintf(\n\t\t\t\t\t\t\t/* translators: The posts's title. */\n\t\t\t\t\t\t\t__( '\"%s\" permanently deleted.' ),\n\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsuccessMessage = __(\n\t\t\t\t\t\t\t'The posts were permanently deleted.'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tcreateSuccessNotice( successMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\tid: 'edit-site-post-permanently-deleted',\n\t\t\t\t\t} );\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If there was at lease one failure.\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\t// If we were trying to permanently delete a single post.\n\t\t\t\t\tif ( promiseResult.length === 1 ) {\n\t\t\t\t\t\tif ( promiseResult[ 0 ].reason?.message ) {\n\t\t\t\t\t\t\terrorMessage = promiseResult[ 0 ].reason.message;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the post.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// If we were trying to permanently delete multiple posts\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorMessages = new Set();\n\t\t\t\t\t\tconst failedPromises = promiseResult.filter(\n\t\t\t\t\t\t\t( { status } ) => status === 'rejected'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor ( const failedPromise of failedPromises ) {\n\t\t\t\t\t\t\tif ( failedPromise.reason?.message ) {\n\t\t\t\t\t\t\t\terrorMessages.add(\n\t\t\t\t\t\t\t\t\tfailedPromise.reason.message\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( errorMessages.size === 0 ) {\n\t\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts.'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( errorMessages.size === 1 ) {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: an error message */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'An error occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ][ 0 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\terrorMessage = sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: a list of comma separated error messages */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Some errors occurred while permanently deleting the posts: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t[ ...errorMessages ].join( ',' )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[ createSuccessNotice, createErrorNotice, deleteEntityRecord ]\n\t);\n}\n\nexport const viewPostAction = {\n\tid: 'view-post',\n\tlabel: __( 'View' ),\n\tisPrimary: true,\n\ticon: external,\n\tisEligible( post ) {\n\t\treturn post.status !== 'trash';\n\t},\n\tcallback( post ) {\n\t\tdocument.location.href = post.link;\n\t},\n};\n\nexport const editPostAction = {\n\tid: 'edit-post',\n\tlabel: __( 'Edit' ),\n\tisPrimary: true,\n\ticon: edit,\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\tcallback( posts, onActionPerformed ) {\n\t\tconst post = posts[ 0 ];\n\t\tconst href = addQueryArgs( 'post.php', {\n\t\t\tpost: post.id,\n\t\t\taction: 'edit',\n\t\t} );\n\t\tdocument.location.href = href;\n\t\tif ( onActionPerformed ) {\n\t\t\tonActionPerformed( posts );\n\t\t}\n\t},\n};\n\nexport const postRevisionsAction = {\n\tid: 'view-post-revisions',\n\tlabel: __( 'View revisions' ),\n\tisPrimary: false,\n\tisEligible: ( post ) => {\n\t\tif ( post.status === 'trash' ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst lastRevisionId =\n\t\t\tpost?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ?? null;\n\t\tconst revisionsCount =\n\t\t\tpost?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0;\n\t\treturn lastRevisionId && revisionsCount > 1;\n\t},\n\tcallback( post ) {\n\t\tconst href = addQueryArgs( 'revision.php', {\n\t\t\trevision: post?._links?.[ 'predecessor-version' ]?.[ 0 ]?.id,\n\t\t} );\n\t\tdocument.location.href = href;\n\t},\n};\n\nexport const deleteItem = {\n\tid: 'delete-item',\n\tlabel: __( 'Delete form', 'tropical-juice' ),\n\tisPrimary: false,\n\tisDestructive: true,\n\ticon: trash,\n\thideModalHeader: true,\n\tRenderModal: ( { item: form, closeModal } ) => {\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\n\t\tconst handleDelete = async () => {\n\t\t\tconst success = await deleteEntityRecord(\n\t\t\t\t'tropical-juice/v1',\n\t\t\t\t'forms',\n\t\t\t\tform.id\n\t\t\t);\n\t\t\tif ( success ) {\n\t\t\t\t// Tell the user the operation succeeded:\n\t\t\t\tcreateSuccessNotice( 'The form was deleted!', {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tconst lastError = getLastEntityDeleteError(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'page',\n\t\t\t\t\tform.id\n\t\t\t\t);\n\t\t\t\tconst message =\n\t\t\t\t\t( lastError?.message || 'There was an error.' ) +\n\t\t\t\t\t' Please refresh the page and try again.';\n\t\t\t\t// Tell the user how exactly the operation have failed:\n\t\t\t\tcreateErrorNotice( message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\n\t\tconst { isDeleting } = useSelect(\n\t\t\t( select ) => ( {\n\t\t\t\tisDeleting: select( coreStore ).isDeletingEntityRecord(\n\t\t\t\t\t'tropical-juice/v1',\n\t\t\t\t\t'forms',\n\t\t\t\t\tform.id\n\t\t\t\t),\n\t\t\t} ),\n\t\t\t[ form.id ]\n\t\t);\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t// translators: %s: The form to removee.\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Are you sure you want to delete form url: \"%s\"?',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tdecodeEntities( form.attributes.url )\n\t\t\t\t\t) }\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t handleDelete( form ) }\n\t\t\t\t\t\tisBusy={ isDeleting }\n\t\t\t\t\t\tdisabled={ isDeleting }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t},\n};\n\nexport function useRestorePostAction() {\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { editEntityRecord, saveEditedEntityRecord } =\n\t\tuseDispatch( coreStore );\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\tid: 'restore',\n\t\t\tlabel: __( 'Restore' ),\n\t\t\tisPrimary: true,\n\t\t\ticon: backup,\n\t\t\tsupportsBulk: true,\n\t\t\tisEligible( { status } ) {\n\t\t\t\treturn status === 'trash';\n\t\t\t},\n\t\t\tasync callback( posts, onActionPerformed ) {\n\t\t\t\ttry {\n\t\t\t\t\tfor ( const post of posts ) {\n\t\t\t\t\t\tawait editEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstatus: 'draft',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tawait saveEditedEntityRecord(\n\t\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t\tpost.type,\n\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\tposts.length > 1\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t\t\t__( '%d posts have been restored.' ),\n\t\t\t\t\t\t\t\t\tposts.length\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: The number of posts. */\n\t\t\t\t\t\t\t\t\t__( '\"%s\" has been restored.' ),\n\t\t\t\t\t\t\t\t\tgetItemTitle( posts[ 0 ] )\n\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'edit-site-post-restored',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\tif ( onActionPerformed ) {\n\t\t\t\t\t\tonActionPerformed( posts );\n\t\t\t\t\t}\n\t\t\t\t} catch ( error ) {\n\t\t\t\t\tlet errorMessage;\n\t\t\t\t\tif (\n\t\t\t\t\t\terror.message &&\n\t\t\t\t\t\terror.code !== 'unknown_error' &&\n\t\t\t\t\t\terror.message\n\t\t\t\t\t) {\n\t\t\t\t\t\terrorMessage = error.message;\n\t\t\t\t\t} else if ( posts.length > 1 ) {\n\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t'An error occurred while restoring the posts.'\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\terrorMessage = __(\n\t\t\t\t\t\t\t'An error occurred while restoring the post.'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateErrorNotice( errorMessage, { type: 'snackbar' } );\n\t\t\t\t}\n\t\t\t},\n\t\t} ),\n\t\t[\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\teditEntityRecord,\n\t\t\tsaveEditedEntityRecord,\n\t\t]\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tstore as coreStore,\n\tgetLastEntityDeleteError,\n} from '@wordpress/core-data';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\tButton,\n} from '@wordpress/components';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { trash } from '@wordpress/icons';\n\nexport const trashSubmissionAction = {\n\tid: 'move-to-trash',\n\tlabel: __( 'Move to Trash' ),\n\tisPrimary: true,\n\tisBulk: true,\n\ticon: trash,\n\tisEligible( { status } ) {\n\t\treturn status !== 'trash';\n\t},\n\thideModalHeader: true,\n\tRenderModal: ( { items: submissions, closeModal } ) => {\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tuseDispatch( noticesStore );\n\t\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{ submissions.length > 1\n\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The number of submissions (always plural).\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to delete %s submissions?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tdecodeEntities( submissions.length )\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: The page's title.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Are you sure you want to delete submission N° %s?'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\tsubmissions && submissions[ 0 ]?.id\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ) }\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tawait Promise.all(\n\t\t\t\t\t\t\t\t\tsubmissions.map( async ( post ) => {\n\t\t\t\t\t\t\t\t\t\tdeleteEntityRecord(\n\t\t\t\t\t\t\t\t\t\t\t'formello/v1',\n\t\t\t\t\t\t\t\t\t\t\t'submissions',\n\t\t\t\t\t\t\t\t\t\t\tpost.id,\n\t\t\t\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t\t\t\t{ throwOnError: true }\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t\tsubmissions.length > 1\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t'The selected submissions were moved to the trash.'\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: The page's title. */\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Submission \"%s\" moved to the Trash.'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tdecodeEntities(\n\t\t\t\t\t\t\t\t\t\t\t\t\tsubmissions[ 0 ].id\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\t\tid: 'edit-site-page-trashed',\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} catch ( error ) {\n\t\t\t\t\t\t\t\tconst errorMessage =\n\t\t\t\t\t\t\t\t\terror.message &&\n\t\t\t\t\t\t\t\t\terror.code !== 'unknown_error'\n\t\t\t\t\t\t\t\t\t\t? error.message\n\t\t\t\t\t\t\t\t\t\t: _n(\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the page to the trash.',\n\t\t\t\t\t\t\t\t\t\t\t\t'An error occurred while moving the pages to the trash.',\n\t\t\t\t\t\t\t\t\t\t\t\tsubmissions.length\n\t\t\t\t\t\t\t\t\t\t );\n\n\t\t\t\t\t\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t},\n};\n","import {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tExternalLink,\n} from '@wordpress/components';\n\nimport { __ } from '@wordpress/i18n';\nimport { PromoSettings } from '../../components/promo';\n\nexport default function Help() {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Need help?', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t

\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Detailed documentation is available on the plugin website.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t

\n\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Documentation', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t\t

\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'We would love to help you out if you need any help.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t

\n\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Ask a question', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Do you like the plugin?', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t

\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'If you like Formello plugin you can share a review to help us and spread some love!',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Rate 5 stars!', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n","import { Spinner } from '@wordpress/components';\n\nexport default function LoadingSpinner( { text } ) {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t{ text }\n\t\t
\n\t);\n}\n","import { ReactComponent as Logo } from '../../../assets/icons/logo.svg';\nimport { __experimentalHStack as HStack } from '@wordpress/components';\n\nexport default function Header( { title, className, children } ) {\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t

{ title }

\n\t\t\t\t\t{ children }\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\t// eslint-disable-next-line @wordpress/no-unsafe-wp-apis\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { useState, Fragment } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Renders the update settings buttons and animation\n *\n * @since 2.1.0\n * @param {Object} props All the props passed to this function\n * @return {string}\t\t Return the rendered JSX\n */\nexport default function UpdateSettings( props ) {\n\tconst {\n\t\treq,\n\t\ttext,\n\t\tdisabled,\n\t\tvariant,\n\t\tisDestructive = false,\n\t\twithConfirm = false,\n\t\tconfirmMessage = __( 'Are you sure?', 'formello' ),\n\t} = props;\n\n\tconst [ showConfirmDialog, setShowConfirmDialog ] = useState( false );\n\tconst [ loading, setLoading ] = useState( false );\n\tconst { createNotice } = useDispatch( noticesStore );\n\n\tconst action = () => {\n\t\tif ( withConfirm ) {\n\t\t\tsetShowConfirmDialog( true );\n\t\t} else {\n\t\t\trunAction();\n\t\t}\n\t};\n\n\tconst runAction = () => {\n\t\tsetLoading( true );\n\t\tsetShowConfirmDialog( false );\n\t\treq()\n\t\t\t.then( ( data ) => {\n\t\t\t\tif ( data?.success ) {\n\t\t\t\t\tcreateNotice( 'info', '🎯 ' + data.response, {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tcreateNotice(\n\t\t\t\t\t\t'info',\n\t\t\t\t\t\t'🎯 ' + __( 'Settings saved.', 'formello' ),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateNotice( 'error', 'âš ï¸ ' + error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\texplicitDismiss: true,\n\t\t\t\t} );\n\t\t\t} )\n\t\t\t.finally( () => setLoading( false ) );\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{ text }\n\t\t\t\t\n\t\t\t\t setShowConfirmDialog( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ confirmMessage }\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n","import { createContext } from '@wordpress/element';\nimport { useEntityProp, store as coreStore } from '@wordpress/core-data';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\nexport const SettingsContext = createContext();\n\nfunction SettingsContextProvider( props ) {\n\tconst [ settings ] = useEntityProp( 'root', 'site', 'formello' );\n\n\tconst { saveEditedEntityRecord, editEntityRecord } =\n\t\tuseDispatch( coreStore );\n\n\tconst { isSaving, hasEdits } = useSelect(\n\t\t( select ) => ( {\n\t\t\tisSaving: select( coreStore ).isSavingEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'site'\n\t\t\t),\n\t\t\thasEdits: select( coreStore ).hasEditsForEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'site',\n\t\t\t\tundefined,\n\t\t\t\t'formello'\n\t\t\t),\n\t\t} ),\n\t\t[]\n\t);\n\n\tconst saveSettings = () => {\n\t\treturn saveEditedEntityRecord( 'root', 'site' );\n\t};\n\n\tconst updateSetting = ( key, val ) => {\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tformello: {\n\t\t\t\t...settings,\n\t\t\t\t[ key ]: val,\n\t\t\t},\n\t\t} );\n\t};\n\n\treturn (\n\t\t\n\t\t\t{ props.children }\n\t\t\n\t);\n}\n\nexport default SettingsContextProvider;\n","/* eslint-disable @wordpress/no-unsafe-wp-apis */\nimport { createRoot, useEffect } from '@wordpress/element';\nimport { dispatch, useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { SnackbarList } from '@wordpress/components';\nimport './style.scss';\nimport { Forms } from './pages/submissions/forms';\nimport { Submissions } from './pages/submissions/submissions';\nimport { Submission } from './pages/submission';\nimport Settings from './pages/settings';\nimport Tools from './pages/tools';\nimport Addons from './pages/addons';\nimport { getQueryArg } from '@wordpress/url';\nimport SettingsContextProvider from './context/settings-context';\nimport { RouterProvider, useLocation, useHistory } from './router';\n\n/**\n * Add our custom entities for retrieving external setting and variable data.\n *\n * @since 2.5.0\n */\ndispatch( 'core' ).addEntities( [\n\t{\n\t\tlabel: __( 'Formello submissions', 'formello' ),\n\t\tkind: 'formello/v1',\n\t\tname: 'submissions',\n\t\tbaseURL: '/formello/v1/submissions',\n\t\tsupportsPagination: true,\n\t},\n\t{\n\t\tlabel: __( 'Formello addons', 'formello' ),\n\t\tkind: 'formello/v1',\n\t\tname: 'addons',\n\t\tbaseURL: '/formello/v1/addons',\n\t},\n\t{\n\t\tlabel: __( 'Formello columns', 'formello' ),\n\t\tkind: 'formello/v1',\n\t\tname: 'columns',\n\t\tbaseURL: '/formello/v1/columns',\n\t},\n] );\n\nconst Router = () => {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\n\tconst menuRoot = document.querySelector( '#toplevel_page_formello' );\n\tconst reset = () => {\n\t\tconst page = getQueryArg( window.location.href, 'page' );\n\t\tif ( ! page ) {\n\t\t\treturn;\n\t\t}\n\t\tfor ( const child of menuRoot.querySelectorAll( 'a' ) ) {\n\t\t\tconst target = getQueryArg( child.href, 'page' );\n\t\t\tif ( page === target ) {\n\t\t\t\tchild.classList.add( 'current' );\n\t\t\t\tchild.parentElement.classList.add( 'current' );\n\t\t\t} else {\n\t\t\t\tchild.classList.remove( 'current' );\n\t\t\t\tchild.parentElement.classList.remove( 'current' );\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleChange = ( e ) => {\n\t\te.preventDefault();\n\n\t\thistory.push( {\n\t\t\tpage: getQueryArg( e.target.href, 'page' ),\n\t\t} );\n\t\treset();\n\t};\n\n\tuseEffect( () => {\n\t\treset();\n\t\tmenuRoot.addEventListener( 'click', handleChange, false );\n\n\t\treturn () => {\n\t\t\tdocument\n\t\t\t\t.querySelector( '#toplevel_page_formello' )\n\t\t\t\t.removeEventListener( 'click', handleChange );\n\t\t};\n\t}, [] );\n\n\tif ( 'formello-settings' === params.page ) {\n\t\treturn ;\n\t}\n\tif ( 'formello-tools' === params.page ) {\n\t\treturn ;\n\t}\n\tif ( 'formello-addons' === params.page ) {\n\t\treturn ;\n\t}\n\tif (\n\t\t'formello' === params.page &&\n\t\t'submission' === params.section &&\n\t\tparams.submission_id\n\t) {\n\t\treturn ;\n\t}\n\tif (\n\t\t'formello' === params.page &&\n\t\t'submissions' === params.section &&\n\t\tparams.form_id\n\t) {\n\t\treturn ;\n\t}\n\treturn ;\n};\n\nconst App = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nfunction Notifications() {\n\tconst notices = useSelect(\n\t\t( select ) => select( noticesStore ).getNotices(),\n\t\t[]\n\t);\n\tconst { removeNotice } = useDispatch( noticesStore );\n\tconst snackbarNotices = notices.filter(\n\t\t( { type } ) => type === 'snackbar'\n\t);\n\n\treturn (\n\t\t\n\t);\n}\n\nwindow.addEventListener( 'DOMContentLoaded', () => {\n\tconst domNode = document.getElementById( 'formello-admin' );\n\tconst root = createRoot( domNode );\n\n\troot.render( );\n} );\n","import { __, sprintf } from '@wordpress/i18n';\nimport {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tCardMedia,\n\tCardFooter,\n\tButton,\n\tToggleControl,\n\tModal,\n} from '@wordpress/components';\nimport { useState, Fragment, useContext } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { SettingsContext } from '../../context/settings-context';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\n\nexport default function Addon( props ) {\n\tconst { settings, updateSetting } = useContext( SettingsContext );\n\tconst { addon } = props;\n\n\tconst [ isOpen, setOpen ] = useState( false );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst popper = useEntityRecord( 'root', 'plugin', 'popper/popper' );\n\tconst formelloPro = useEntityRecord(\n\t\t'root',\n\t\t'plugin',\n\t\t'formello-pro/formello-pro'\n\t);\n\n\tconst installPopper = () => {\n\t\tif ( popper.record ) {\n\t\t\tpopper.edit( { status: 'active' } );\n\t\t\tpopper.save();\n\t\t} else {\n\t\t\tsaveEntityRecord( 'root', 'plugin', {\n\t\t\t\tslug: 'popper',\n\t\t\t\tstatus: 'active',\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst { isInstalling } = useSelect(\n\t\t( select ) => ( {\n\t\t\tisInstalling: select( coreStore ).isSavingEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'plugin',\n\t\t\t\t'popper/popper'\n\t\t\t),\n\t\t} ),\n\t\t[]\n\t);\n\n\tconst toggleAddon = ( val, slug ) => {\n\t\tif ( ! formelloPro.record || 'active' !== formelloPro.record.status ) {\n\t\t\treturn setOpen( true );\n\t\t}\n\t\tif ( val ) {\n\t\t\tupdateSetting( 'enabled_addons', [\n\t\t\t\t...settings.enabled_addons,\n\t\t\t\tslug,\n\t\t\t] );\n\t\t} else {\n\t\t\tconst enabledAddons = settings.enabled_addons.filter( ( item ) => {\n\t\t\t\treturn item !== slug;\n\t\t\t} );\n\t\t\tupdateSetting( 'enabled_addons', enabledAddons );\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ addon.title }

\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t

{ addon.excerpt }

\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{ 'popper' === addon.slug ? (\n\t\t\t\t\t\t installPopper() }\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tisBusy={ popper.isResolving || isInstalling }\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\tpopper.isResolving ||\n\t\t\t\t\t\t\t\t'active' === popper.editedRecord.status ||\n\t\t\t\t\t\t\t\tisInstalling\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taria-disabled={ popper.isResolving }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ 'active' === popper.editedRecord.status\n\t\t\t\t\t\t\t\t? __( 'Is Active' )\n\t\t\t\t\t\t\t\t: __( 'Activate' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\ttoggleAddon( checked, addon.slug )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\tformelloPro.isResolving ||\n\t\t\t\t\t\t\t\t'active' === formelloPro.record?.status\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\n\t\t\t
\n\t\t\t{ isOpen && (\n\t\t\t\t setOpen( false ) }\n\t\t\t\t\t__experimentalHideHeader\n\t\t\t\t>\n\t\t\t\t\t

\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: Addon name */\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'To enable %s addon you need a Formello Pro license.',\n\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\taddon.title\n\t\t\t\t\t\t) }\n\t\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Download', 'formello-pro' ) }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t) }\n\t\t
\n\t);\n}\n","import Header from '../../components/masthead.js';\nimport { __ } from '@wordpress/i18n';\nimport { useState, Fragment, useContext } from '@wordpress/element';\nimport {\n\tTabPanel,\n\t// eslint-disable-next-line @wordpress/no-unsafe-wp-apis\n\t__experimentalUseNavigator as useNavigator,\n\t// eslint-disable-next-line @wordpress/no-unsafe-wp-apis\n\t__experimentalGrid as Grid,\n\tNotice,\n} from '@wordpress/components';\nimport LoadingSpinner from '../../components/loading-spinner.js';\nimport Addon from './addon.js';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { SettingsContext } from '../../context/settings-context';\n\nexport default function Addons() {\n\tconst { hasUpdates, saveSettings } = useContext( SettingsContext );\n\n\tconst addonsTabs = [\n\t\t{\n\t\t\tname: 'general',\n\t\t\ttitle: __( 'All', 'formello' ),\n\t\t},\n\t\t{\n\t\t\tname: 'integrations',\n\t\t\ttitle: __( 'Integrations', 'formello' ),\n\t\t},\n\t\t{\n\t\t\tname: 'utility',\n\t\t\ttitle: __( 'Utility', 'formello' ),\n\t\t},\n\t\t{\n\t\t\tname: 'free',\n\t\t\ttitle: __( 'Free', 'formello' ),\n\t\t},\n\t];\n\n\tconst [ filter, setFilter ] = useState( 'general' );\n\n\tconst { params } = useNavigator();\n\tconst initialTab = params.tab || 'general';\n\n\tconst { records: addons, hasResolved } = useEntityRecords(\n\t\t'formello/v1',\n\t\t'addons',\n\t\t{ per_page: 100 }\n\t);\n\n\tconst filterAddon = ( element ) => {\n\t\tif ( 'general' === filter ) {\n\t\t\treturn addons;\n\t\t}\n\t\treturn element.category === filter;\n\t};\n\n\tif ( ! hasResolved ) {\n\t\treturn ;\n\t}\n\n\treturn (\n\t\t\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t{ hasUpdates && (\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tsaveSettings().then( () =>\n\t\t\t\t\t\t\t\t\t\twindow.location.reload()\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'To make effective your choice, you must save it.',\n\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t) }\n\n\t\t\t\t setFilter( tabName ) }\n\t\t\t\t\tinitialTabName={ initialTab }\n\t\t\t\t>\n\t\t\t\t\t{ () => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{ addons\n\t\t\t\t\t\t\t\t\t\t.filter( ( element ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn filterAddon( element );\n\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t.map( ( addon ) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n}\n","import {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tTextControl,\n\tRadioControl,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useContext, Fragment } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\nimport { SettingsContext } from '../../../context/settings-context';\n\nexport default function Captcha() {\n\tconst { settings, updateSetting } = useContext( SettingsContext );\n\tconst reCaptcha = settings.reCaptcha;\n\tconst hCaptcha = settings.hCaptcha;\n\n\tfunction setCaptcha( key, value, type ) {\n\t\tconst newSettings = Object.assign( {}, settings[ type ] );\n\t\tnewSettings[ key ] = value;\n\t\tupdateSetting( type, newSettings );\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Google reCaptcha', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCaptcha( 'version', val, 'reCaptcha' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCaptcha( 'site_key', val, 'reCaptcha' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCaptcha( 'secret_key', val, 'reCaptcha' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ 3 === Number( reCaptcha.version ) && (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetCaptcha( 'threshold', val, 'reCaptcha' );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\tstep={ '0.1' }\n\t\t\t\t\t\t\t\tmin={ '0' }\n\t\t\t\t\t\t\t\tmax={ '1' }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'hCaptcha', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCaptcha( 'version', val, 'hCaptcha' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCaptcha( 'site_key', val, 'hCaptcha' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCaptcha( 'secret_key', val, 'hCaptcha' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCaptcha( 'threshold', val, 'hCaptcha' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tstep={ '0.1' }\n\t\t\t\t\t\t\tmin={ '0' }\n\t\t\t\t\t\t\tmax={ '1' }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n","import {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tExternalLink,\n\tButton,\n\t__experimentalInputControl as InputControl,\n\tNotice,\n} from '@wordpress/components';\n\nimport {\n\tRawHTML,\n\tuseContext,\n\tFragment,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\n\nimport { __, sprintf } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport { dateI18n } from '@wordpress/date';\nimport { SettingsContext } from '../../../context/settings-context';\n\nexport default function General() {\n\tconst { settings, updateSetting } = useContext( SettingsContext );\n\n\tconst licenseKey = useRef( settings.license?.license_key?.key ?? '' );\n\n\tconst [ loading, setLoading ] = useState( false );\n\tconst [ message, setMessage ] = useState( false );\n\n\tconst updateLicense = ( endpoint = 'activate' ) => {\n\t\tsetLoading( true );\n\t\tapiFetch( {\n\t\t\tpath: '/formello/v1/license/' + endpoint,\n\t\t\tmethod: 'POST',\n\t\t\tdata: {\n\t\t\t\tlicense: licenseKey.current,\n\t\t\t},\n\t\t} )\n\t\t\t.then( ( result ) => {\n\t\t\t\tif ( result.response?.success ) {\n\t\t\t\t\tupdateSetting( 'license', result.response.license );\n\t\t\t\t}\n\n\t\t\t\tif ( ! result.success ) {\n\t\t\t\t\tsetMessage( result.response );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.finally( () => setLoading( false ) );\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'License', 'formello' ) }

\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{ __( 'Get a PRO License', 'formello' ) }\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'

Your pro license key provides access to addons. You can still using Formello without a license key.

',\n\t\t\t\t\t\t'formello'\n\t\t\t\t\t) }\n\t\t\t\t
\n\t\t\t\t ( licenseKey.current = val ) }\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t updateLicense( 'validate' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t updateLicense() }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ message && (\n\t\t\t\t\t\n\t\t\t\t\t\t{ message }\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\t{ settings?.license?.license_key?.status && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: License status. */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'

License status: %1$s. Expires: %2$s

',\n\t\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tsettings.license.license_key.status,\n\t\t\t\t\t\t\t\t__( 'Never', 'tropical-juice' ) !==\n\t\t\t\t\t\t\t\t\tsettings.license.license_key.expires_at\n\t\t\t\t\t\t\t\t\t? dateI18n(\n\t\t\t\t\t\t\t\t\t\t\t'd M, Y',\n\t\t\t\t\t\t\t\t\t\t\tsettings.license.license_key\n\t\t\t\t\t\t\t\t\t\t\t\t.expires_at\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __( 'Never', 'tropical-juice' )\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t
\n\t\t
\n\t);\n}\n","import {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\twithFilters,\n\tButton,\n} from '@wordpress/components';\nimport { Fragment, createInterpolateElement } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n/**\n * Internal dependencies\n */\nimport { useHistory } from '../../../router';\nimport {\n\tintegrations,\n\ticons,\n} from '../../../../form-settings/actions/constants';\n\nconst Integrations = withFilters( 'formello.settings.integrations' )( () => {\n\tconst history = useHistory();\n\tconst noticeString = ( text ) =>\n\t\tcreateInterpolateElement( text, {\n\t\t\ta: (\n\t\t\t\t {\n\t\t\t\t\t\thistory.push( { page: 'formello-addons' } );\n\t\t\t\t\t} }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t/>\n\t\t\t),\n\t\t} );\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'Integrations', 'formello' ) }

\n\t\t\t
\n\n\t\t\t\n\t\t\t\t

\n\t\t\t\t\t{ noticeString(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Go to to enable your preferred integrations.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t

\n\t\t\t\n\t\t\n\t);\n} );\n\nconst IntegrationsTab = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default IntegrationsTab;\n","import {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tExternalLink,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useContext } from '@wordpress/element';\nimport { SettingsContext } from '../../../context/settings-context';\n\nconst LoggingTab = () => {\n\tconst { settings, updateSetting } = useContext( SettingsContext );\n\tconst log = settings.log;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'Logging', 'formello' ) }

\n\t\t\t
\n\n\t\t\t\n\t\t\t\t

\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Enable logging can hurt site performance. Please activate logging only for debug purpose.',\n\t\t\t\t\t\t'formello'\n\t\t\t\t\t) }\n\t\t\t\t

\n\n\t\t\t\t updateSetting( 'log', val ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t\t{ log && (\n\t\t\t\t\t

\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ __( 'View log', 'formello' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t

\n\t\t\t\t) }\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default LoggingTab;\n","import { Card, CardHeader, CardBody, TextControl } from '@wordpress/components';\nimport { Fragment, useContext } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\n\nimport { SettingsContext } from '../../../context/settings-context';\n\nexport default function Messages() {\n\tconst { settings } = useContext( SettingsContext );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst setMessage = ( group, field, value ) => {\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tformello: {\n\t\t\t\t...settings,\n\t\t\t\tmessages: {\n\t\t\t\t\t...settings.messages,\n\t\t\t\t\t[ group ]: {\n\t\t\t\t\t\t...settings.messages[ group ],\n\t\t\t\t\t\t[ field ]: value,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\t};\n\n\tconst formMessages = Object.keys( settings.messages.form );\n\tconst missingValue = Object.keys( settings.messages.missingValue );\n\tconst patternMismatch = Object.keys( settings.messages.patternMismatch );\n\tconst outOfRange = Object.keys( settings.messages.outOfRange );\n\tconst wrongLength = Object.keys( settings.messages.wrongLength );\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Form messages', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t

\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Default messages displayed after form submission. This setting can be overriden on form block panel.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t

\n\t\t\t\t\t{ formMessages.map( ( key, i ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetMessage( 'form', key, val );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Missing value', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t{ missingValue.map( ( key, i ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetMessage( 'missingValue', key, val );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Pattern mismatch', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t{ patternMismatch.map( ( key, i ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetMessage( 'patternMismatch', key, val );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Out of range', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t{ outOfRange.map( ( key, i ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetMessage( 'outOfRange', key, val );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'Wrong length', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t{ wrongLength.map( ( key, i ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetMessage( 'wrongLength', key, val );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalGrid as Grid,\n\tTabPanel,\n\t// eslint-disable-next-line @wordpress/no-unsafe-wp-apis\n\t__experimentalUseNavigator as useNavigator,\n} from '@wordpress/components';\nimport { Fragment, useContext } from '@wordpress/element';\nimport { applyFilters } from '@wordpress/hooks';\nimport Help from '../../components/help.js';\nimport General from './components/general.js';\nimport Captcha from './components/captcha.js';\nimport Messages from './components/messages.js';\nimport Integrations from './components/integrations.js';\nimport Logging from './components/logging.js';\n//import Licenses from '../components/settings/licenses.js';\nimport UpdateSettings from '../../components/update-settings';\nimport LoadingSpinner from '../../components/loading-spinner';\nimport Header from '../../components/masthead.js';\nimport { SettingsContext } from '../../context/settings-context';\nimport { useHistory, useLocation } from '../../router';\n\nexport default function Settings() {\n\tconst { settings, hasUpdates, saveSettings } =\n\t\tuseContext( SettingsContext );\n\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst changeTab = ( tabName ) => {\n\t\thistory.push( { page: 'formello-settings', tab: tabName } );\n\t};\n\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'general',\n\t\t\ttitle: __( 'General', 'formello' ),\n\t\t\tcomponent: General,\n\t\t},\n\t\t{\n\t\t\tname: 'captcha',\n\t\t\ttitle: 'Captcha',\n\t\t\tcomponent: Captcha,\n\t\t},\n\t\t{\n\t\t\tname: 'messages',\n\t\t\ttitle: __( 'Messages', 'formello' ),\n\t\t\tcomponent: Messages,\n\t\t},\n\t\t{\n\t\t\tname: 'integrations',\n\t\t\ttitle: __( 'Integrations', 'formello' ),\n\t\t\tcomponent: Integrations,\n\t\t},\n\t\t{\n\t\t\tname: 'logging',\n\t\t\ttitle: 'Logging',\n\t\t\tcomponent: Logging,\n\t\t},\n\t];\n\n\tif ( ! settings ) {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t{ applyFilters(\n\t\t\t\t\t'formello.dashboard.beforeSettings',\n\t\t\t\t\t'',\n\t\t\t\t\tthis\n\t\t\t\t) }\n\n\t\t\t\t changeTab( tabName ) }\n\t\t\t\t>\n\t\t\t\t\t{ ( tab ) => {\n\t\t\t\t\t\tconst SettingsTab = tab.component;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{ ( 'general' === tab.name ||\n\t\t\t\t\t\t\t\t\t\t'captcha' === tab.name ||\n\t\t\t\t\t\t\t\t\t\t'messages' === tab.name ||\n\t\t\t\t\t\t\t\t\t\t'logging' === tab.name ) && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\n\n\t\t\t\t{ applyFilters( 'formello.dashboard.settings', '', this ) }\n\n\t\t\t\t{ applyFilters( 'formello.dashboard.afterSettings', '', this ) }\n\t\t\t
\n\t\t\n\t);\n}\n","import { Card, CardHeader, CardBody } from '@wordpress/components';\nimport { RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\n\nexport function FieldsData( props ) {\n\tconst { data } = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'Fields', 'formello' ) }

\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{ Object.keys( data ).map( ( key, i ) => {\n\t\t\t\t\t\t\tconst field = JSON.parse(\n\t\t\t\t\t\t\t\tJSON.stringify( data[ key ] )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{ key\n\t\t\t\t\t\t\t\t\t\t\t.replaceAll( '_', ' ' )\n\t\t\t\t\t\t\t\t\t\t\t.toUpperCase() }\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{ Array.isArray( field )\n\t\t\t\t\t\t\t\t\t\t\t\t? field.join( ', ' )\n\t\t\t\t\t\t\t\t\t\t\t\t: decodeEntities( field ) }\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n}\n","/* eslint-disable @wordpress/no-unsafe-wp-apis */\n/**\n * WordPress dependencies\n */\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\t__experimentalGrid as Grid,\n\tSpinner,\n\tButton,\n\tNotice,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Fragment, useEffect } from '@wordpress/element';\nimport { getQueryArg } from '@wordpress/url';\nimport { SubmissionData } from './submission-data';\nimport { FieldsData } from './fields-data';\nimport Header from '../../components/masthead.js';\nimport { useDispatch } from '@wordpress/data';\nimport { useHistory, useLocation } from '../../router';\n\nexport const Submission = () => {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\n\tconst submission = useEntityRecord(\n\t\t'formello/v1',\n\t\t'submissions',\n\t\tparams.submission_id ||\n\t\t\tgetQueryArg( window.location.href, 'submission_id' )\n\t);\n\n\tconst { saveEntityRecord, invalidateResolutionForStore } =\n\t\tuseDispatch( coreStore );\n\n\tuseEffect( () => {\n\t\tif ( parseInt( submission.record?.details.is_new ) ) {\n\t\t\tsaveEntityRecord( 'formello/v1', 'submissions', {\n\t\t\t\tid: submission.record.id,\n\t\t\t\tdetails: { is_new: false },\n\t\t\t} );\n\t\t\tinvalidateResolutionForStore();\n\t\t}\n\t}, [] );\n\n\tif ( 'ERROR' === submission.status ) {\n\t\treturn (\n\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t

{ __( 'Submission Not Found.', 'formello' ) }

\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\t\tpage: 'formello',\n\t\t\t\t\t\t\t\t\tsection: 'submissions',\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Go back', 'formello' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\tpage: 'formello',\n\t\t\t\t\t\t\tsection: submission.record?.details.form_id\n\t\t\t\t\t\t\t\t? 'submissions'\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\tform_id: submission.record?.details.form_id,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Go back', 'formello' ) }\n\t\t\t\t\n\t\t\t
\n\t\t\t{ submission.isResolving && }\n\t\t\t{ submission.hasResolved && submission.record && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t) }\n\t\t\n\t);\n};\n","import {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tExternalLink,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs } from '@wordpress/url';\nimport { dateI18n, getSettings } from '@wordpress/date';\nimport { useEntityRecord } from '@wordpress/core-data';\n\nexport function SubmissionData( props ) {\n\tconst { data } = props;\n\tconst { formats } = getSettings();\n\n\tconst formUrl = addQueryArgs( 'post.php', {\n\t\tpost: data.form_id,\n\t\taction: 'edit',\n\t} );\n\n\tconst { record: form } = useEntityRecord(\n\t\t'postType',\n\t\t'formello_form',\n\t\tdata.form_id\n\t);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'Submission data', 'formello' ) }

\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
{ __( 'Submission ID', 'formello' ) }{ data.id }
{ __( 'Form ID', 'formello' ) }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{ form?.title.raw ||\n\t\t\t\t\t\t\t\t\t\t__( '(No title)', 'formello' ) }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
{ 'Timestamp' }\n\t\t\t\t\t\t\t\t{ dateI18n(\n\t\t\t\t\t\t\t\t\tformats.datetime,\n\t\t\t\t\t\t\t\t\tdata.submitted_at\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t
{ 'Referrer URL' }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{ data.referer_url }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
{ 'IP' }{ data.ip_address }
{ 'User Agent' }{ data.user_agent }
\n\t\t\t
\n\t\t
\n\t);\n}\n","/* eslint-disable @wordpress/no-unsafe-wp-apis */\n/**\n * WordPress dependencies\n */\nimport { Button, Card } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useState, useMemo, Fragment } from '@wordpress/element';\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\nimport { addQueryArgs } from '@wordpress/url';\nimport {\n\ttrashPostAction,\n\tusePermanentlyDeletePostAction,\n\tuseRestorePostAction,\n\teditPostAction,\n} from '../../components/actions';\nimport { commentContent } from '@wordpress/icons';\nimport { useHistory } from '../../router';\n\n/**\n * Internal dependencies\n */\nimport { DataViews, filterSortAndPaginate } from '@wordpress/dataviews';\nimport Header from '../../components/masthead.js';\n\n// See https://github.com/WordPress/gutenberg/issues/55886\n// We do not support custom statutes at the moment.\nconst STATUSES = [\n\t{ value: 'draft', label: __( 'Draft' ) },\n\t{ value: 'future', label: __( 'Scheduled' ) },\n\t{ value: 'pending', label: __( 'Pending Review' ) },\n\t{ value: 'private', label: __( 'Private' ) },\n\t{ value: 'publish', label: __( 'Published' ) },\n\t{ value: 'trash', label: __( 'Trash' ) },\n];\nconst DEFAULT_STATUSES = 'draft, future, pending, private, publish'; // All but 'trash'.\nconst defaultLayouts = {\n\ttable: {\n\t\tlayout: {\n\t\t\tprimaryField: 'id',\n\t\t\tcombinedFields: [\n\t\t\t\t{\n\t\t\t\t\tid: 'form',\n\t\t\t\t\tlabel: 'Form',\n\t\t\t\t\tchildren: [ 'title', 'excerpt' ],\n\t\t\t\t\tdirection: 'vertical',\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n};\n\nexport const Forms = () => {\n\tconst history = useHistory();\n\tconst [ view, setView ] = useState( {\n\t\ttype: 'table',\n\t\tfilters: [],\n\t\tfields: [\n\t\t\t'form',\n\t\t\t'title',\n\t\t\t'excerpt',\n\t\t\t'entries',\n\t\t\t'author',\n\t\t\t'status',\n\t\t\t'date',\n\t\t],\n\t\tpage: 1,\n\t\tperPage: 10,\n\t\tsort: {\n\t\t\tfield: 'date',\n\t\t\tdirection: 'desc',\n\t\t},\n\t\tsearch: '',\n\t\t// All fields are visible by default, so it's\n\t\t// better to keep track of the hidden ones.\n\t\tlayout: defaultLayouts.table.layout,\n\t} );\n\n\tconst queryArgs = useMemo( () => {\n\t\tconst filters = {};\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tif ( filter.field === 'status' && filter.operator === 'isAny' ) {\n\t\t\t\tfilters.status = filter.value;\n\t\t\t}\n\t\t\tif ( filter.field === 'author' && filter.operator === 'isAny' ) {\n\t\t\t\tfilters.author = filter.value;\n\t\t\t} else if (\n\t\t\t\tfilter.field === 'author' &&\n\t\t\t\tfilter.operator === 'isNone'\n\t\t\t) {\n\t\t\t\tfilters.author_exclude = filter.value;\n\t\t\t}\n\t\t} );\n\t\t// We want to provide a different default item for the status filter\n\t\t// than the REST API provides.\n\t\tif ( ! filters.status || filters.status === '' ) {\n\t\t\tfilters.status = DEFAULT_STATUSES;\n\t\t}\n\t\treturn {\n\t\t\tper_page: view.perPage,\n\t\t\tpage: view.page,\n\t\t\t_embed: 'author',\n\t\t\torder: view.sort?.direction,\n\t\t\torderby: view.sort?.field,\n\t\t\tsearch: view.search,\n\t\t\t...filters,\n\t\t};\n\t}, [ view ] );\n\tconst {\n\t\trecords: forms,\n\t\tisResolving: isLoadingForms,\n\t\ttotalItems,\n\t\ttotalPages,\n\t} = useEntityRecords( 'postType', 'formello_form', queryArgs );\n\n\tconst paginationInfo = useMemo( () => {\n\t\treturn {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t};\n\t}, [ totalItems, totalPages ] );\n\n\tconst { records: authors, isResolving: isLoadingAuthors } =\n\t\tuseEntityRecords( 'root', 'user', { per_page: -1 } );\n\n\tconst fields = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\theader: __( 'Title' ),\n\t\t\t\tid: 'title',\n\t\t\t\tlabel: __( 'Title' ),\n\t\t\t\tgetValue: ( { item } ) => item.title?.rendered,\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\tconst href = addQueryArgs( 'post.php', {\n\t\t\t\t\t\t\t\t\t\tpost: item.id,\n\t\t\t\t\t\t\t\t\t\taction: 'edit',\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tdocument.location.href = href;\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\titem.title?.rendered || item.slug\n\t\t\t\t\t\t\t\t) || __( '(no title)' ) }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tenableGlobalSearch: true,\n\t\t\t\tenableHiding: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Excerpt' ),\n\t\t\t\tlabel: __( 'Excerpt' ),\n\t\t\t\tid: 'excerpt',\n\t\t\t\tgetValue: ( { item } ) => item.excerpt.raw,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Entries' ),\n\t\t\t\tid: 'entries',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\t\t\tpage: 'formello',\n\t\t\t\t\t\t\t\t\t\tsection: 'submissions',\n\t\t\t\t\t\t\t\t\t\tform_id: item.id,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ item.submissions_count.total }\n\t\t\t\t\t\t\t\t{ item.submissions_count.news > 0 && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{ item.submissions_count.news }\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Author' ),\n\t\t\t\tid: 'author',\n\t\t\t\tgetValue: ( { item } ) => item._embedded?.author[ 0 ]?.name,\n\t\t\t\telements:\n\t\t\t\t\tauthors?.map( ( { id, name } ) => ( {\n\t\t\t\t\t\tvalue: id,\n\t\t\t\t\t\tlabel: name,\n\t\t\t\t\t} ) ) || [],\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Status' ),\n\t\t\t\tid: 'status',\n\t\t\t\t/*getValue: ( { item } ) =>\n\t\t\t\t\tSTATUSES.find( ( { value } ) => value === item.status )\n\t\t\t\t\t\t?.label ?? item.status,*/\n\t\t\t\telements: STATUSES,\n\t\t\t\tfilterBy: {\n\t\t\t\t\toperators: [ 'isAny', 'isNone', 'isAll', 'isNotAll' ],\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: __( 'Date' ),\n\t\t\t\tid: 'date',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\tconst formattedDate = dateI18n(\n\t\t\t\t\t\tgetSettings().formats.datetimeAbbreviated,\n\t\t\t\t\t\tgetDate( item.date )\n\t\t\t\t\t);\n\t\t\t\t\treturn ;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: 'Shortcode',\n\t\t\t\tid: 'shortcode',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn { `[formello ref=${ item.id }]` };\n\t\t\t\t},\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t],\n\t\t[ authors, history ]\n\t);\n\n\t/*const { data: shownData, paginationInfo } = useMemo( () => {\n\t\treturn filterSortAndPaginate( forms, view, fields );\n\t}, [ view, forms, fields ] );*/\n\n\tconst permanentlyDeletePostAction = usePermanentlyDeletePostAction();\n\tconst restorePostAction = useRestorePostAction();\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tid: 'view-submissions',\n\t\t\t\tlabel: __( 'View Submissions', 'formello' ),\n\t\t\t\tisPrimary: true,\n\t\t\t\ticon: commentContent,\n\t\t\t\tcallback( posts ) {\n\t\t\t\t\tconst post = posts[ 0 ];\n\t\t\t\t\thistory.push( {\n\t\t\t\t\t\tpage: 'formello',\n\t\t\t\t\t\tsection: 'submissions',\n\t\t\t\t\t\tform_id: post.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\ttrashPostAction,\n\t\t\trestorePostAction,\n\t\t\tpermanentlyDeletePostAction,\n\t\t\teditPostAction,\n\t\t],\n\t\t[ permanentlyDeletePostAction, restorePostAction, history ]\n\t);\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{ __( 'Add new' ) }\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n","/* eslint-disable @wordpress/no-unsafe-wp-apis */\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalText as Text,\n\tButton,\n\tCard,\n\tIcon,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport {\n\tuseState,\n\tuseMemo,\n\tuseCallback,\n\tFragment,\n\tRawHTML,\n} from '@wordpress/element';\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\nimport { heading, seen, starFilled } from '@wordpress/icons';\nimport { trashSubmissionAction } from '../../components/actions/submission.js';\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tstore as coreStore,\n\tuseEntityRecord,\n\tuseEntityRecords,\n} from '@wordpress/core-data';\n/**\n * Internal dependencies\n */\nimport { DataViews } from '@wordpress/dataviews';\nimport Header from '../../components/masthead.js';\nimport { useHistory, useLocation } from '../../router';\n\nconst EMPTY_ARRAY = [];\n\nconst STATUSES = [\n\t{ value: 'starred', label: __( 'Favorites' ) },\n\t{ value: 'is_new', label: __( 'Unread' ) },\n];\n\nconst defaultLayouts = {\n\ttable: {\n\t\tlayout: {\n\t\t\tprimaryField: 'id',\n\t\t\tstyles: {\n\t\t\t\tstatus: {\n\t\t\t\t\tmaxWidth: '40px',\n\t\t\t\t\twidth: '40px',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n};\n\nexport const Submissions = () => {\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst [ view, setView ] = useState( {\n\t\ttype: 'table',\n\t\tfilters: [],\n\t\tpage: 1,\n\t\tperPage: 10,\n\t\tsort: {\n\t\t\tfield: 'submitted_at',\n\t\t\tdirection: 'desc',\n\t\t},\n\t\tsearch: '',\n\t\t// All fields are visible by default, so it's\n\t\t// better to keep track of the hidden ones.\n\t\tlayout: defaultLayouts.table.layout,\n\t} );\n\n\tconst queryArgs = useMemo( () => {\n\t\tconst filters = {};\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tif ( filter.field === 'status' && filter.operator === 'isAny' ) {\n\t\t\t\tfilters.status = filter.value;\n\t\t\t}\n\t\t} );\n\t\t// We want to provide a different default item for the status filter\n\t\t// than the REST API provides.\n\t\tif ( ! filters.status || filters.status === 'all' ) {\n\t\t\tfilters.status = '';\n\t\t}\n\n\t\treturn {\n\t\t\tid: params.form_id,\n\t\t\tper_page: view.perPage,\n\t\t\tpage: view.page,\n\t\t\torder: view.sort?.direction,\n\t\t\torderby: view.sort?.field,\n\t\t\tsearch: view.search || undefined,\n\t\t\t...filters,\n\t\t};\n\t}, [ view, params ] );\n\n\tconst {\n\t\trecords: submissions,\n\t\tisResolving: isLoadingSubmissions,\n\t\ttotalItems,\n\t\ttotalPages,\n\t} = useEntityRecords( 'formello/v1', 'submissions', queryArgs );\n\n\tconst columns = useEntityRecord( 'formello/v1', 'columns', params.form_id );\n\n\tconst getColumns = useCallback( () => {\n\t\tif ( columns.hasResolved ) {\n\t\t\treturn columns.record.columns;\n\t\t}\n\t\treturn [];\n\t}, [ columns ] );\n\n\tconst paginationInfo = useMemo( () => {\n\t\treturn {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t};\n\t}, [ totalItems, totalPages ] );\n\n\tconst fields = useMemo( () => {\n\t\tconst _fields = [\n\t\t\t{\n\t\t\t\theader: __( 'Status' ),\n\t\t\t\tid: 'status',\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ parseInt( item.details.is_new ) && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ parseInt( item.details.starred ) && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t
\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tfilters: [ 'isAny' ],\n\t\t\t\telements: STATUSES,\n\t\t\t\tenableHiding: false,\n\t\t\t\tenableSorting: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\theader: '#',\n\t\t\t\tid: 'id',\n\t\t\t\tgetValue: ( { item } ) => item.id,\n\t\t\t\trender: ( { item } ) => (\n\t\t\t\t\t\n\t\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\t\tpage: 'formello',\n\t\t\t\t\t\t\t\tsection: 'submission',\n\t\t\t\t\t\t\t\tform_id: params.form_id,\n\t\t\t\t\t\t\t\tsubmission_id: item.id,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tenableHiding: false,\n\t\t\t\tenableSorting: true,\n\t\t\t},\n\t\t];\n\t\tconst cols = getColumns();\n\t\tconst _columns = cols?.map( ( key ) => {\n\t\t\treturn {\n\t\t\t\taccessor: key,\n\t\t\t\tid: key,\n\t\t\t\theader: key.replaceAll( '_', ' ' ).toUpperCase(),\n\t\t\t\tgetValue: ( item ) => item[ key ],\n\t\t\t\tfilters: [ { id: 'search', type: 'search' } ],\n\t\t\t\trender: ( { item } ) => {\n\t\t\t\t\tif ( 'submitted_at' === key ) {\n\t\t\t\t\t\tconst formattedDate = dateI18n(\n\t\t\t\t\t\t\tgetSettings().formats.datetimeAbbreviated,\n\t\t\t\t\t\t\tgetDate( item.details.submitted_at )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ decodeEntities( item.fields[ key ] ) }\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tenableSorting: true,\n\t\t\t};\n\t\t} );\n\t\treturn _fields.concat( _columns );\n\t}, [ history, getColumns ] );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst actions = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tid: 'view-submission',\n\t\t\t\tlabel: __( 'View Submission', 'formello' ),\n\t\t\t\tisPrimary: true,\n\t\t\t\ticon: seen,\n\t\t\t\tcallback( posts ) {\n\t\t\t\t\tconst post = posts[ 0 ];\n\t\t\t\t\thistory.push( {\n\t\t\t\t\t\tpage: 'formello',\n\t\t\t\t\t\tsection: 'submission',\n\t\t\t\t\t\tsubmission_id: post.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\ttrashSubmissionAction,\n\t\t\t{\n\t\t\t\tid: 'mark-as-starred',\n\t\t\t\tlabel: __( 'Toggle favorite' ),\n\t\t\t\tisPrimary: false,\n\t\t\t\tsupportsBulk: true,\n\t\t\t\tisEligible: () => true,\n\t\t\t\ticon: starFilled,\n\t\t\t\tcallback: ( posts ) => {\n\t\t\t\t\tconst post = posts[ 0 ];\n\t\t\t\t\tsaveEntityRecord( 'formello/v1', 'submissions', {\n\t\t\t\t\t\tid: post.id,\n\t\t\t\t\t\tdetails: {\n\t\t\t\t\t\t\tstarred: ! parseInt( post.details.starred ),\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: 'mark-as-new',\n\t\t\t\tlabel: __( 'Toggle new' ),\n\t\t\t\tisPrimary: false,\n\t\t\t\tsupportsBulk: true,\n\t\t\t\ticon: heading,\n\t\t\t\tcallback: ( posts ) => {\n\t\t\t\t\tconst post = posts[ 0 ];\n\t\t\t\t\tsaveEntityRecord( 'formello/v1', 'submissions', {\n\t\t\t\t\t\tid: post.id,\n\t\t\t\t\t\tdetails: { is_new: ! parseInt( post.details.is_new ) },\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\t[ history, saveEntityRecord ]\n\t);\n\n\t// TODO: we need to handle properly `data={ data || EMPTY_ARRAY }` for when `isLoading`.\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\thistory.push( {\n\t\t\t\t\t\t\tpage: 'formello',\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Go back', 'formello' ) }\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport { dateI18n } from '@wordpress/date';\nimport { downloadBlob } from '@wordpress/blob';\n\nexport default function ExportForms() {\n\tconst { records: forms, isResolving } = useEntityRecords(\n\t\t'postType',\n\t\t'formello_form',\n\t\t{\n\t\t\t_embed: 'wp:term',\n\t\t}\n\t);\n\n\tconst currentDate = dateI18n( '', new Date() );\n\n\tconst exportForms = () => {\n\t\tconst fileContent = JSON.stringify( forms, null, 2 );\n\t\tconst filename = `formello-forms-export-${ currentDate }.json`;\n\n\t\tdownloadBlob( filename, fileContent, 'application/json' );\n\t};\n\n\treturn (\n\t\t\n\t);\n}\n","import { FormFileUpload } from '@wordpress/components';\nimport { useState, Fragment } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport UpdateSettings from '../../../components/update-settings';\n\nexport default function ImportForms() {\n\tconst [ files, setFiles ] = useState( false );\n\n\tconst req = () => {\n\t\tconst data = new FormData();\n\t\tdata.append( 'file', files[ 0 ] );\n\n\t\treturn apiFetch( {\n\t\t\tpath: '/formello/v1/forms/import',\n\t\t\tmethod: 'POST',\n\t\t\tbody: data,\n\t\t} ).finally( () => setFiles( false ) );\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t setFiles( event.target.files ) }\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Choose file', 'formello' ) }\n\t\t\t\t\n\t\t\t\t{ files && files[ 0 ]?.name }\n\t\t\t
\n\n\t\t\t\n\t\t
\n\t);\n}\n","import { Fragment } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport UpdateSettings from '../../../components/update-settings';\n\nexport default function ResetSettings() {\n\tconst resetSettings = () => {\n\t\treturn apiFetch( {\n\t\t\tpath: '/formello/v1/settings/reset',\n\t\t\tmethod: 'POST',\n\t\t} );\n\t};\n\n\treturn (\n\t\t\n\t\t\t

{ __( 'If you need to reset settings.', 'formello' ) }

\n\t\t\t\n\t\t
\n\t);\n}\n","import {\n\t// eslint-disable-next-line @wordpress/no-unsafe-wp-apis\n\t__experimentalUseNavigator as useNavigator,\n\t// eslint-disable-next-line @wordpress/no-unsafe-wp-apis\n\t__experimentalGrid as Grid,\n\tTabPanel,\n} from '@wordpress/components';\n\nimport { Fragment } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\nimport General from './tabs/general.js';\nimport Exporter from './tabs/exporter.js';\nimport { Importer } from './tabs/importer.js';\nimport Header from '../../components/masthead.js';\nimport Help from '../../components/help.js';\nimport { useHistory, useLocation } from '../../router';\n\nexport default function Tools() {\n\tconst toolsTabs = [\n\t\t{\n\t\t\tname: 'general',\n\t\t\ttitle: __( 'General', 'formello' ),\n\t\t\tcomponent: General,\n\t\t},\n\t\t{\n\t\t\tname: 'exporters',\n\t\t\ttitle: __( 'Exporters', 'formello' ),\n\t\t\tcomponent: Exporter,\n\t\t},\n\t\t{\n\t\t\tname: 'importers',\n\t\t\ttitle: __( 'Importers', 'formello' ),\n\t\t\tcomponent: Importer,\n\t\t},\n\t];\n\n\t// Filter to add a tab\n\tapplyFilters( 'formello.ToolsTabs', '', toolsTabs );\n\n\tconst history = useHistory();\n\tconst { params } = useLocation();\n\tconst changeTab = ( tabName ) => {\n\t\thistory.push( { page: 'formello-tools', tab: tabName } );\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t{ applyFilters(\n\t\t\t\t\t'formello.dashboard.beforeSettings',\n\t\t\t\t\t'',\n\t\t\t\t\tthis\n\t\t\t\t) }\n\t\t\t\t changeTab( tabName ) }\n\t\t\t\t>\n\t\t\t\t\t{ ( tab ) => {\n\t\t\t\t\t\tconst Tab = tab.component;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\n\n\t\t\t\t{ applyFilters( 'formello.dashboard.settings', '', this ) }\n\n\t\t\t\t{ applyFilters( 'formello.dashboard.afterSettings', '', this ) }\n\t\t\t
\n\t\t\n\t);\n}\n","import { Card, CardHeader, CardBody, withFilters } from '@wordpress/components';\n\nimport { __ } from '@wordpress/i18n';\nimport ExportForms from '../components/export-forms';\n\nconst Exporter = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'Export Forms', 'formello' ) }

\n\t\t\t
\n\n\t\t\t\n\t\t\t\t

\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t\"When you click the download button below, Formello will create a JSON file for you to save to your computer. Once you've saved the downloaded file, you can use the Import tool to import the forms.\",\n\t\t\t\t\t\t'formello'\n\t\t\t\t\t) }\n\t\t\t\t

\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default withFilters( 'formello.settings.exporter' )( Exporter );\n","import {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tButton,\n\tCardDivider,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { addQueryArgs } from '@wordpress/url';\nimport ResetSettings from '../components/reset-settings';\n\nconst DefaultCPTView = () => {\n\tconst defaultUrl = addQueryArgs( 'edit.php', {\n\t\tpost_type: 'formello',\n\t} );\n\n\treturn (\n\t\t\n\t\t\t

\n\t\t\t\t{ __(\n\t\t\t\t\t'If for some reason you need to manage the popups with default custom post type table, please click on the link below.',\n\t\t\t\t\t'formello'\n\t\t\t\t) }\n\t\t\t

\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default function General() {\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t

{ __( 'General', 'formello' ) }

\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n}\n","import { Card, CardHeader, CardBody, withFilters } from '@wordpress/components';\n\nimport { __ } from '@wordpress/i18n';\nimport ImportForms from '../components/import-forms';\n\nexport const Importer = withFilters( 'formello.settings.importer' )( () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'Import Forms', 'formello' ) }

\n\t\t\t
\n\n\t\t\t\n\t\t\t\t

\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Select the Formello export file(.json) you would like to import. When you click the import button below, Formello will import the forms.',\n\t\t\t\t\t\t'formello'\n\t\t\t\t\t) }\n\t\t\t\t

\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n} );\n","/**\n * External dependencies\n */\nimport { createBrowserHistory } from 'history';\n\n/**\n * WordPress dependencies\n */\nimport { addQueryArgs, getQueryArgs, removeQueryArgs } from '@wordpress/url';\n\nconst history = createBrowserHistory();\n\nconst originalHistoryPush = history.push;\nconst originalHistoryReplace = history.replace;\n\nfunction push( params, state ) {\n\tconst currentArgs = getQueryArgs( window.location.href );\n\tconst currentUrlWithoutArgs = removeQueryArgs(\n\t\twindow.location.href,\n\t\t...Object.keys( currentArgs )\n\t);\n\tconst newUrl = addQueryArgs( currentUrlWithoutArgs, params );\n\treturn originalHistoryPush.call( history, newUrl, state );\n}\n\nfunction replace( params, state ) {\n\tconst currentArgs = getQueryArgs( window.location.href );\n\tconst currentUrlWithoutArgs = removeQueryArgs(\n\t\twindow.location.href,\n\t\t...Object.keys( currentArgs )\n\t);\n\tconst newUrl = addQueryArgs( currentUrlWithoutArgs, params );\n\treturn originalHistoryReplace.call( history, newUrl, state );\n}\n\nhistory.push = push;\nhistory.replace = replace;\n\nexport default history;\n","/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseState,\n\tuseEffect,\n\tuseContext,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport history from './history';\n\nconst RoutesContext = createContext();\nconst HistoryContext = createContext();\n\nexport function useLocation() {\n\treturn useContext( RoutesContext );\n}\n\nexport function useHistory() {\n\treturn useContext( HistoryContext );\n}\n\nfunction getLocationWithParams( location ) {\n\tconst searchParams = new URLSearchParams( location.search );\n\treturn {\n\t\t...location,\n\t\tparams: Object.fromEntries( searchParams.entries() ),\n\t};\n}\n\nexport function RouterProvider( { children } ) {\n\tconst [ location, setLocation ] = useState( () =>\n\t\tgetLocationWithParams( history.location )\n\t);\n\n\tuseEffect( () => {\n\t\treturn history.listen( ( { location: updatedLocation } ) => {\n\t\t\tsetLocation( getLocationWithParams( updatedLocation ) );\n\t\t} );\n\t}, [] );\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{ children }\n\t\t\t\n\t\t\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tButton,\n\twithFilters,\n} from '@wordpress/components';\n\nexport const Promo = withFilters( 'formello.modal.promo' )( () => {\n\treturn (\n\t\t
\n\t\t\t

\n\t\t\t\t{ __(\n\t\t\t\t\t'This action is available only for pro users. You can try one month free.',\n\t\t\t\t\t'formello'\n\t\t\t\t) }\n\t\t\t

\n\t\t\t\n\t\t\t\t{ __( 'Try it now free!', 'formello' ) }\n\t\t\t\n\t\t
\n\t);\n} );\n\nexport const PromoSettings = withFilters( 'formello.settings.promo' )( () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

{ __( 'Go Pro', 'formello' ) }

\n\t\t\t
\n\t\t\t\n\t\t\t\t

{ __( 'Empower your forms with our PRO extensions.' ) }

\n\t\t\t\t
    \n\t\t\t\t\t
  • { __( 'Conditional fields', 'formello' ) }
  • \n\t\t\t\t\t
  • { __( 'File upload', 'formello' ) }
  • \n\t\t\t\t\t
  • { __( 'Frontend posting', 'formello' ) }
  • \n\t\t\t\t\t
  • { __( 'Login form', 'formello' ) }
  • \n\t\t\t\t\t
  • { __( 'Search autosuggest', 'formello' ) }
  • \n\t\t\t\t\t
  • { __( 'Calculator formula', 'formello' ) }
  • \n\t\t\t\t\t
  • { __( 'Web Hooks', 'formello' ) }
  • \n\t\t\t\t\t
  • { __( 'Mail marketing integration', 'formello' ) }
  • \n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t);\n} );\n","import { ReactComponent as MailPoet } from '../../../assets/integrations/mailpoet.svg';\nimport { ReactComponent as Mailchimp } from '../../../assets/integrations/mailchimp.svg';\nimport { ReactComponent as Moosend } from '../../../assets/integrations/moosend.svg';\nimport { ReactComponent as ConvertKit } from '../../../assets/integrations/convertkit.svg';\nimport { ReactComponent as GetResponse } from '../../../assets/integrations/getresponse.svg';\nimport { ReactComponent as Brevo } from '../../../assets/integrations/brevo.svg';\nimport { ReactComponent as MailerLite } from '../../../assets/integrations/mailerlite.svg';\nimport { ReactComponent as Email } from '../../../assets/integrations/email.svg';\nimport { ReactComponent as WebHook } from '../../../assets/integrations/webhook.svg';\nimport {\n\tpost as FrontendPosting,\n\tlogin as Login,\n\tcommentAuthorAvatar as Registration,\n} from '@wordpress/icons';\n\nexport const icons = {\n\tConvertKit,\n\tMailchimp,\n\tMailPoet,\n\tMoosend,\n\tMailerLite,\n\tGetResponse,\n\tBrevo,\n\tEmail,\n\tWebHook,\n\tFrontendPosting,\n\tLogin,\n\tRegistration,\n};\n\nexport const integrations = [\n\t{\n\t\tasync: true,\n\t\ttype: 'email',\n\t\tname: 'Email',\n\t\tto: '',\n\t\tfrom: '',\n\t\tcc: '',\n\t\tbcc: '',\n\t\treplyTo: '',\n\t\tsubject: '',\n\t\tmessage: '',\n\t\tadvanced: false,\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'ConvertKit',\n\t\tname: 'ConvertKit',\n\t\tapiUrl: 'https://www.convertkit.com/help/where-to-find-the-convertkit-api-key-groupid-and-documentation',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'GetResponse',\n\t\tname: 'GetResponse',\n\t\tapiUrl: 'https://www.getresponse.com/help/where-do-i-find-the-api-key.html',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Mailchimp',\n\t\tname: 'Mailchimp',\n\t\tapiUrl: 'https://mailchimp.com/help/about-api-keys/',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'MailerLite',\n\t\tname: 'MailerLite',\n\t\tapiUrl: 'https://www.mailerlite.com/help/where-to-find-the-mailerlite-api-key-groupid-and-documentation',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'MailPoet',\n\t\tname: 'MailPoet',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Moosend',\n\t\tname: 'Moosend',\n\t\tapiUrl: 'https://help.moosend.com/hc/en-us/articles/4403735862674-Find-the-API-key-of-your-account',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Brevo',\n\t\tname: 'Brevo',\n\t\tapiUrl: 'https://developers.brevo.com/docs/getting-started',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'WebHook',\n\t\tname: 'WebHook',\n\t\tapiUrl: '',\n\t\turl: '',\n\t\tmethod: 'POST',\n\t\tadditionalHeaders: false,\n\t\tfields: [],\n\t\theaders: [],\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'frontend-posting',\n\t\tname: 'FrontendPosting',\n\t\tpostarr: {\n\t\t\tpost_type: 'post',\n\t\t\tpost_title: '',\n\t\t\tpost_content: '',\n\t\t\tpost_excerpt: '',\n\t\t\ttax_input: [],\n\t\t\tmeta_input: [],\n\t\t},\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'login',\n\t\tname: 'Login',\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'registration',\n\t\tname: 'Registration',\n\t},\n];\n","import _extends from '@babel/runtime/helpers/esm/extends';\n\n/**\r\n * Actions represent the type of change to a location value.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#action\r\n */\nvar Action;\n\n(function (Action) {\n /**\r\n * A POP indicates a change to an arbitrary index in the history stack, such\r\n * as a back or forward navigation. It does not describe the direction of the\r\n * navigation, only that the current index changed.\r\n *\r\n * Note: This is the default action for newly created history objects.\r\n */\n Action[\"Pop\"] = \"POP\";\n /**\r\n * A PUSH indicates a new entry being added to the history stack, such as when\r\n * a link is clicked and a new page loads. When this happens, all subsequent\r\n * entries in the stack are lost.\r\n */\n\n Action[\"Push\"] = \"PUSH\";\n /**\r\n * A REPLACE indicates the entry at the current index in the history stack\r\n * being replaced by a new one.\r\n */\n\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\n\nvar readOnly = process.env.NODE_ENV !== \"production\" ? function (obj) {\n return Object.freeze(obj);\n} : function (obj) {\n return obj;\n};\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== 'undefined') console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nvar BeforeUnloadEventType = 'beforeunload';\nvar HashChangeEventType = 'hashchange';\nvar PopStateEventType = 'popstate';\n/**\r\n * Browser history stores the location in regular URLs. This is the standard for\r\n * most web apps, but it requires some configuration on the server to ensure you\r\n * serve the same app at multiple URLs.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\r\n */\n\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$window = _options.window,\n window = _options$window === void 0 ? document.defaultView : _options$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation[0],\n nextLocation = _getIndexAndLocation[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better what\n // is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop);\n var action = Action.Pop;\n\n var _getIndexAndLocation2 = getIndexAndLocation(),\n index = _getIndexAndLocation2[0],\n location = _getIndexAndLocation2[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n } // state defaults to `null` because `window.history.state` does\n\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation3 = getIndexAndLocation();\n\n index = _getIndexAndLocation3[0];\n location = _getIndexAndLocation3[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr[0],\n url = _getHistoryStateAndUr[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr2 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr2[0],\n url = _getHistoryStateAndUr2[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Hash history stores the location in window.location.hash. This makes it ideal\r\n * for situations where you don't want to send the location to the server for\r\n * some reason, either because you do cannot configure it or the URL space is\r\n * reserved for something else.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\r\n */\n\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options2 = options,\n _options2$window = _options2.window,\n window = _options2$window === void 0 ? document.defaultView : _options2$window;\n var globalHistory = window.history;\n\n function getIndexAndLocation() {\n var _parsePath = parsePath(window.location.hash.substr(1)),\n _parsePath$pathname = _parsePath.pathname,\n pathname = _parsePath$pathname === void 0 ? '/' : _parsePath$pathname,\n _parsePath$search = _parsePath.search,\n search = _parsePath$search === void 0 ? '' : _parsePath$search,\n _parsePath$hash = _parsePath.hash,\n hash = _parsePath$hash === void 0 ? '' : _parsePath$hash;\n\n var state = globalHistory.state || {};\n return [state.idx, readOnly({\n pathname: pathname,\n search: search,\n hash: hash,\n state: state.usr || null,\n key: state.key || 'default'\n })];\n }\n\n var blockedPopTx = null;\n\n function handlePop() {\n if (blockedPopTx) {\n blockers.call(blockedPopTx);\n blockedPopTx = null;\n } else {\n var nextAction = Action.Pop;\n\n var _getIndexAndLocation4 = getIndexAndLocation(),\n nextIndex = _getIndexAndLocation4[0],\n nextLocation = _getIndexAndLocation4[1];\n\n if (blockers.length) {\n if (nextIndex != null) {\n var delta = index - nextIndex;\n\n if (delta) {\n // Revert the POP\n blockedPopTx = {\n action: nextAction,\n location: nextLocation,\n retry: function retry() {\n go(delta * -1);\n }\n };\n go(delta);\n }\n } else {\n // Trying to POP to a location with no index. We did not create\n // this location, so we can't effectively block the navigation.\n process.env.NODE_ENV !== \"production\" ? warning(false, // TODO: Write up a doc that explains our blocking strategy in\n // detail and link to it here so people can understand better\n // what is going on and how to avoid it.\n \"You are trying to block a POP navigation to a location that was not \" + \"created by the history library. The block will fail silently in \" + \"production, but in general you should do all navigation with the \" + \"history library (instead of using window.history.pushState directly) \" + \"to avoid this situation.\") : void 0;\n }\n } else {\n applyTx(nextAction);\n }\n }\n }\n\n window.addEventListener(PopStateEventType, handlePop); // popstate does not fire on hashchange in IE 11 and old (trident) Edge\n // https://developer.mozilla.org/de/docs/Web/API/Window/popstate_event\n\n window.addEventListener(HashChangeEventType, function () {\n var _getIndexAndLocation5 = getIndexAndLocation(),\n nextLocation = _getIndexAndLocation5[1]; // Ignore extraneous hashchange events.\n\n\n if (createPath(nextLocation) !== createPath(location)) {\n handlePop();\n }\n });\n var action = Action.Pop;\n\n var _getIndexAndLocation6 = getIndexAndLocation(),\n index = _getIndexAndLocation6[0],\n location = _getIndexAndLocation6[1];\n\n var listeners = createEvents();\n var blockers = createEvents();\n\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), '');\n }\n\n function getBaseHref() {\n var base = document.querySelector('base');\n var href = '';\n\n if (base && base.getAttribute('href')) {\n var url = window.location.href;\n var hashIndex = url.indexOf('#');\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href;\n }\n\n function createHref(to) {\n return getBaseHref() + '#' + (typeof to === 'string' ? to : createPath(to));\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n hash: '',\n search: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function getHistoryStateAndUrl(nextLocation, index) {\n return [{\n usr: nextLocation.state,\n key: nextLocation.key,\n idx: index\n }, createHref(nextLocation)];\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction) {\n action = nextAction;\n\n var _getIndexAndLocation7 = getIndexAndLocation();\n\n index = _getIndexAndLocation7[0];\n location = _getIndexAndLocation7[1];\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr3 = getHistoryStateAndUrl(nextLocation, index + 1),\n historyState = _getHistoryStateAndUr3[0],\n url = _getHistoryStateAndUr3[1]; // TODO: Support forced reloading\n // try...catch because iOS limits us to 100 pushState calls :/\n\n\n try {\n globalHistory.pushState(historyState, '', url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n applyTx(nextAction);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(nextLocation.pathname.charAt(0) === '/', \"Relative pathnames are not supported in hash history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n var _getHistoryStateAndUr4 = getHistoryStateAndUrl(nextLocation, index),\n historyState = _getHistoryStateAndUr4[0],\n url = _getHistoryStateAndUr4[1]; // TODO: Support forced reloading\n\n\n globalHistory.replaceState(historyState, '', url);\n applyTx(nextAction);\n }\n }\n\n function go(delta) {\n globalHistory.go(delta);\n }\n\n var history = {\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n var unblock = blockers.push(blocker);\n\n if (blockers.length === 1) {\n window.addEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n\n return function () {\n unblock(); // Remove the beforeunload listener so the document may\n // still be salvageable in the pagehide event.\n // See https://html.spec.whatwg.org/#unloading-documents\n\n if (!blockers.length) {\n window.removeEventListener(BeforeUnloadEventType, promptBeforeUnload);\n }\n };\n }\n };\n return history;\n}\n/**\r\n * Memory history stores the current location in memory. It is designed for use\r\n * in stateful non-browser environments like tests and React Native.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#creatememoryhistory\r\n */\n\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options3 = options,\n _options3$initialEntr = _options3.initialEntries,\n initialEntries = _options3$initialEntr === void 0 ? ['/'] : _options3$initialEntr,\n initialIndex = _options3.initialIndex;\n var entries = initialEntries.map(function (entry) {\n var location = readOnly(_extends({\n pathname: '/',\n search: '',\n hash: '',\n state: null,\n key: createKey()\n }, typeof entry === 'string' ? parsePath(entry) : entry));\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: \" + JSON.stringify(entry) + \")\") : void 0;\n return location;\n });\n var index = clamp(initialIndex == null ? entries.length - 1 : initialIndex, 0, entries.length - 1);\n var action = Action.Pop;\n var location = entries[index];\n var listeners = createEvents();\n var blockers = createEvents();\n\n function createHref(to) {\n return typeof to === 'string' ? to : createPath(to);\n }\n\n function getNextLocation(to, state) {\n if (state === void 0) {\n state = null;\n }\n\n return readOnly(_extends({\n pathname: location.pathname,\n search: '',\n hash: ''\n }, typeof to === 'string' ? parsePath(to) : to, {\n state: state,\n key: createKey()\n }));\n }\n\n function allowTx(action, location, retry) {\n return !blockers.length || (blockers.call({\n action: action,\n location: location,\n retry: retry\n }), false);\n }\n\n function applyTx(nextAction, nextLocation) {\n action = nextAction;\n location = nextLocation;\n listeners.call({\n action: action,\n location: location\n });\n }\n\n function push(to, state) {\n var nextAction = Action.Push;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n push(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.push(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n applyTx(nextAction, nextLocation);\n }\n }\n\n function replace(to, state) {\n var nextAction = Action.Replace;\n var nextLocation = getNextLocation(to, state);\n\n function retry() {\n replace(to, state);\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(location.pathname.charAt(0) === '/', \"Relative pathnames are not supported in memory history.replace(\" + JSON.stringify(to) + \")\") : void 0;\n\n if (allowTx(nextAction, nextLocation, retry)) {\n entries[index] = nextLocation;\n applyTx(nextAction, nextLocation);\n }\n }\n\n function go(delta) {\n var nextIndex = clamp(index + delta, 0, entries.length - 1);\n var nextAction = Action.Pop;\n var nextLocation = entries[nextIndex];\n\n function retry() {\n go(delta);\n }\n\n if (allowTx(nextAction, nextLocation, retry)) {\n index = nextIndex;\n applyTx(nextAction, nextLocation);\n }\n }\n\n var history = {\n get index() {\n return index;\n },\n\n get action() {\n return action;\n },\n\n get location() {\n return location;\n },\n\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n back: function back() {\n go(-1);\n },\n forward: function forward() {\n go(1);\n },\n listen: function listen(listener) {\n return listeners.push(listener);\n },\n block: function block(blocker) {\n return blockers.push(blocker);\n }\n };\n return history;\n} ////////////////////////////////////////////////////////////////////////////////\n// UTILS\n////////////////////////////////////////////////////////////////////////////////\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n\nfunction promptBeforeUnload(event) {\n // Cancel the event.\n event.preventDefault(); // Chrome (and legacy IE) requires returnValue to be set.\n\n event.returnValue = '';\n}\n\nfunction createEvents() {\n var handlers = [];\n return {\n get length() {\n return handlers.length;\n },\n\n push: function push(fn) {\n handlers.push(fn);\n return function () {\n handlers = handlers.filter(function (handler) {\n return handler !== fn;\n });\n };\n },\n call: function call(arg) {\n handlers.forEach(function (fn) {\n return fn && fn(arg);\n });\n }\n };\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\r\n * Creates a string URL path from the given pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createpath\r\n */\n\n\nfunction createPath(_ref) {\n var _ref$pathname = _ref.pathname,\n pathname = _ref$pathname === void 0 ? '/' : _ref$pathname,\n _ref$search = _ref.search,\n search = _ref$search === void 0 ? '' : _ref$search,\n _ref$hash = _ref.hash,\n hash = _ref$hash === void 0 ? '' : _ref$hash;\n if (search && search !== '?') pathname += search.charAt(0) === '?' ? search : '?' + search;\n if (hash && hash !== '#') pathname += hash.charAt(0) === '#' ? hash : '#' + hash;\n return pathname;\n}\n/**\r\n * Parses a string URL path into its separate pathname, search, and hash components.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#parsepath\r\n */\n\nfunction parsePath(path) {\n var parsedPath = {};\n\n if (path) {\n var hashIndex = path.indexOf('#');\n\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n var searchIndex = path.indexOf('?');\n\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport { Action, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, parsePath };\n//# sourceMappingURL=index.js.map\n","// extracted by mini-css-extract-plugin\nexport {};","var characterMap = {\n\t\"À\": \"A\",\n\t\"Ã\": \"A\",\n\t\"Â\": \"A\",\n\t\"Ã\": \"A\",\n\t\"Ä\": \"A\",\n\t\"Ã…\": \"A\",\n\t\"Ấ\": \"A\",\n\t\"Ắ\": \"A\",\n\t\"Ẳ\": \"A\",\n\t\"Ẵ\": \"A\",\n\t\"Ặ\": \"A\",\n\t\"Æ\": \"AE\",\n\t\"Ầ\": \"A\",\n\t\"Ằ\": \"A\",\n\t\"È‚\": \"A\",\n\t\"Ả\": \"A\",\n\t\"Ạ\": \"A\",\n\t\"Ẩ\": \"A\",\n\t\"Ẫ\": \"A\",\n\t\"Ậ\": \"A\",\n\t\"Ç\": \"C\",\n\t\"Ḉ\": \"C\",\n\t\"È\": \"E\",\n\t\"É\": \"E\",\n\t\"Ê\": \"E\",\n\t\"Ë\": \"E\",\n\t\"Ế\": \"E\",\n\t\"Ḗ\": \"E\",\n\t\"Ề\": \"E\",\n\t\"Ḕ\": \"E\",\n\t\"Ḝ\": \"E\",\n\t\"Ȇ\": \"E\",\n\t\"Ẻ\": \"E\",\n\t\"Ẽ\": \"E\",\n\t\"Ẹ\": \"E\",\n\t\"Ể\": \"E\",\n\t\"Ễ\": \"E\",\n\t\"Ệ\": \"E\",\n\t\"ÃŒ\": \"I\",\n\t\"Ã\": \"I\",\n\t\"ÃŽ\": \"I\",\n\t\"Ã\": \"I\",\n\t\"Ḯ\": \"I\",\n\t\"ÈŠ\": \"I\",\n\t\"Ỉ\": \"I\",\n\t\"Ị\": \"I\",\n\t\"Ã\": \"D\",\n\t\"Ñ\": \"N\",\n\t\"Ã’\": \"O\",\n\t\"Ó\": \"O\",\n\t\"Ô\": \"O\",\n\t\"Õ\": \"O\",\n\t\"Ö\": \"O\",\n\t\"Ø\": \"O\",\n\t\"á»\": \"O\",\n\t\"Ṍ\": \"O\",\n\t\"á¹’\": \"O\",\n\t\"ÈŽ\": \"O\",\n\t\"Ỏ\": \"O\",\n\t\"Ọ\": \"O\",\n\t\"á»”\": \"O\",\n\t\"á»–\": \"O\",\n\t\"Ộ\": \"O\",\n\t\"Ờ\": \"O\",\n\t\"Ở\": \"O\",\n\t\"á» \": \"O\",\n\t\"Ớ\": \"O\",\n\t\"Ợ\": \"O\",\n\t\"Ù\": \"U\",\n\t\"Ú\": \"U\",\n\t\"Û\": \"U\",\n\t\"Ãœ\": \"U\",\n\t\"Ủ\": \"U\",\n\t\"Ụ\": \"U\",\n\t\"Ử\": \"U\",\n\t\"á»®\": \"U\",\n\t\"á»°\": \"U\",\n\t\"Ã\": \"Y\",\n\t\"à\": \"a\",\n\t\"á\": \"a\",\n\t\"â\": \"a\",\n\t\"ã\": \"a\",\n\t\"ä\": \"a\",\n\t\"Ã¥\": \"a\",\n\t\"ấ\": \"a\",\n\t\"ắ\": \"a\",\n\t\"ẳ\": \"a\",\n\t\"ẵ\": \"a\",\n\t\"ặ\": \"a\",\n\t\"æ\": \"ae\",\n\t\"ầ\": \"a\",\n\t\"ằ\": \"a\",\n\t\"ȃ\": \"a\",\n\t\"ả\": \"a\",\n\t\"ạ\": \"a\",\n\t\"ẩ\": \"a\",\n\t\"ẫ\": \"a\",\n\t\"ậ\": \"a\",\n\t\"ç\": \"c\",\n\t\"ḉ\": \"c\",\n\t\"è\": \"e\",\n\t\"é\": \"e\",\n\t\"ê\": \"e\",\n\t\"ë\": \"e\",\n\t\"ế\": \"e\",\n\t\"ḗ\": \"e\",\n\t\"á»\": \"e\",\n\t\"ḕ\": \"e\",\n\t\"á¸\": \"e\",\n\t\"ȇ\": \"e\",\n\t\"ẻ\": \"e\",\n\t\"ẽ\": \"e\",\n\t\"ẹ\": \"e\",\n\t\"ể\": \"e\",\n\t\"á»…\": \"e\",\n\t\"ệ\": \"e\",\n\t\"ì\": \"i\",\n\t\"í\": \"i\",\n\t\"î\": \"i\",\n\t\"ï\": \"i\",\n\t\"ḯ\": \"i\",\n\t\"È‹\": \"i\",\n\t\"ỉ\": \"i\",\n\t\"ị\": \"i\",\n\t\"ð\": \"d\",\n\t\"ñ\": \"n\",\n\t\"ò\": \"o\",\n\t\"ó\": \"o\",\n\t\"ô\": \"o\",\n\t\"õ\": \"o\",\n\t\"ö\": \"o\",\n\t\"ø\": \"o\",\n\t\"ố\": \"o\",\n\t\"á¹\": \"o\",\n\t\"ṓ\": \"o\",\n\t\"È\": \"o\",\n\t\"á»\": \"o\",\n\t\"á»\": \"o\",\n\t\"ổ\": \"o\",\n\t\"á»—\": \"o\",\n\t\"á»™\": \"o\",\n\t\"á»\": \"o\",\n\t\"ở\": \"o\",\n\t\"ỡ\": \"o\",\n\t\"á»›\": \"o\",\n\t\"ợ\": \"o\",\n\t\"ù\": \"u\",\n\t\"ú\": \"u\",\n\t\"û\": \"u\",\n\t\"ü\": \"u\",\n\t\"ủ\": \"u\",\n\t\"ụ\": \"u\",\n\t\"á»­\": \"u\",\n\t\"ữ\": \"u\",\n\t\"á»±\": \"u\",\n\t\"ý\": \"y\",\n\t\"ÿ\": \"y\",\n\t\"Ä€\": \"A\",\n\t\"Ä\": \"a\",\n\t\"Ä‚\": \"A\",\n\t\"ă\": \"a\",\n\t\"Ä„\": \"A\",\n\t\"Ä…\": \"a\",\n\t\"Ć\": \"C\",\n\t\"ć\": \"c\",\n\t\"Ĉ\": \"C\",\n\t\"ĉ\": \"c\",\n\t\"ÄŠ\": \"C\",\n\t\"Ä‹\": \"c\",\n\t\"ÄŒ\": \"C\",\n\t\"Ä\": \"c\",\n\t\"C̆\": \"C\",\n\t\"c̆\": \"c\",\n\t\"ÄŽ\": \"D\",\n\t\"Ä\": \"d\",\n\t\"Ä\": \"D\",\n\t\"Ä‘\": \"d\",\n\t\"Ä’\": \"E\",\n\t\"Ä“\": \"e\",\n\t\"Ä”\": \"E\",\n\t\"Ä•\": \"e\",\n\t\"Ä–\": \"E\",\n\t\"Ä—\": \"e\",\n\t\"Ę\": \"E\",\n\t\"Ä™\": \"e\",\n\t\"Äš\": \"E\",\n\t\"Ä›\": \"e\",\n\t\"Äœ\": \"G\",\n\t\"Ç´\": \"G\",\n\t\"Ä\": \"g\",\n\t\"ǵ\": \"g\",\n\t\"Äž\": \"G\",\n\t\"ÄŸ\": \"g\",\n\t\"Ä \": \"G\",\n\t\"Ä¡\": \"g\",\n\t\"Ä¢\": \"G\",\n\t\"Ä£\": \"g\",\n\t\"Ĥ\": \"H\",\n\t\"Ä¥\": \"h\",\n\t\"Ħ\": \"H\",\n\t\"ħ\": \"h\",\n\t\"Ḫ\": \"H\",\n\t\"ḫ\": \"h\",\n\t\"Ĩ\": \"I\",\n\t\"Ä©\": \"i\",\n\t\"Ī\": \"I\",\n\t\"Ä«\": \"i\",\n\t\"Ĭ\": \"I\",\n\t\"Ä­\": \"i\",\n\t\"Ä®\": \"I\",\n\t\"į\": \"i\",\n\t\"Ä°\": \"I\",\n\t\"ı\": \"i\",\n\t\"IJ\": \"IJ\",\n\t\"ij\": \"ij\",\n\t\"Ä´\": \"J\",\n\t\"ĵ\": \"j\",\n\t\"Ķ\": \"K\",\n\t\"Ä·\": \"k\",\n\t\"Ḱ\": \"K\",\n\t\"ḱ\": \"k\",\n\t\"K̆\": \"K\",\n\t\"k̆\": \"k\",\n\t\"Ĺ\": \"L\",\n\t\"ĺ\": \"l\",\n\t\"Ä»\": \"L\",\n\t\"ļ\": \"l\",\n\t\"Ľ\": \"L\",\n\t\"ľ\": \"l\",\n\t\"Ä¿\": \"L\",\n\t\"Å€\": \"l\",\n\t\"Å\": \"l\",\n\t\"Å‚\": \"l\",\n\t\"Ḿ\": \"M\",\n\t\"ḿ\": \"m\",\n\t\"M̆\": \"M\",\n\t\"m̆\": \"m\",\n\t\"Ń\": \"N\",\n\t\"Å„\": \"n\",\n\t\"Å…\": \"N\",\n\t\"ņ\": \"n\",\n\t\"Ň\": \"N\",\n\t\"ň\": \"n\",\n\t\"ʼn\": \"n\",\n\t\"N̆\": \"N\",\n\t\"n̆\": \"n\",\n\t\"ÅŒ\": \"O\",\n\t\"Å\": \"o\",\n\t\"ÅŽ\": \"O\",\n\t\"Å\": \"o\",\n\t\"Å\": \"O\",\n\t\"Å‘\": \"o\",\n\t\"Å’\": \"OE\",\n\t\"Å“\": \"oe\",\n\t\"P̆\": \"P\",\n\t\"p̆\": \"p\",\n\t\"Å”\": \"R\",\n\t\"Å•\": \"r\",\n\t\"Å–\": \"R\",\n\t\"Å—\": \"r\",\n\t\"Ř\": \"R\",\n\t\"Å™\": \"r\",\n\t\"R̆\": \"R\",\n\t\"r̆\": \"r\",\n\t\"È’\": \"R\",\n\t\"È“\": \"r\",\n\t\"Åš\": \"S\",\n\t\"Å›\": \"s\",\n\t\"Åœ\": \"S\",\n\t\"Å\": \"s\",\n\t\"Åž\": \"S\",\n\t\"Ș\": \"S\",\n\t\"È™\": \"s\",\n\t\"ÅŸ\": \"s\",\n\t\"Å \": \"S\",\n\t\"Å¡\": \"s\",\n\t\"Å¢\": \"T\",\n\t\"Å£\": \"t\",\n\t\"È›\": \"t\",\n\t\"Èš\": \"T\",\n\t\"Ť\": \"T\",\n\t\"Å¥\": \"t\",\n\t\"Ŧ\": \"T\",\n\t\"ŧ\": \"t\",\n\t\"T̆\": \"T\",\n\t\"t̆\": \"t\",\n\t\"Ũ\": \"U\",\n\t\"Å©\": \"u\",\n\t\"Ū\": \"U\",\n\t\"Å«\": \"u\",\n\t\"Ŭ\": \"U\",\n\t\"Å­\": \"u\",\n\t\"Å®\": \"U\",\n\t\"ů\": \"u\",\n\t\"Å°\": \"U\",\n\t\"ű\": \"u\",\n\t\"Ų\": \"U\",\n\t\"ų\": \"u\",\n\t\"È–\": \"U\",\n\t\"È—\": \"u\",\n\t\"V̆\": \"V\",\n\t\"v̆\": \"v\",\n\t\"Å´\": \"W\",\n\t\"ŵ\": \"w\",\n\t\"Ẃ\": \"W\",\n\t\"ẃ\": \"w\",\n\t\"X̆\": \"X\",\n\t\"x̆\": \"x\",\n\t\"Ŷ\": \"Y\",\n\t\"Å·\": \"y\",\n\t\"Ÿ\": \"Y\",\n\t\"Y̆\": \"Y\",\n\t\"y̆\": \"y\",\n\t\"Ź\": \"Z\",\n\t\"ź\": \"z\",\n\t\"Å»\": \"Z\",\n\t\"ż\": \"z\",\n\t\"Ž\": \"Z\",\n\t\"ž\": \"z\",\n\t\"Å¿\": \"s\",\n\t\"Æ’\": \"f\",\n\t\"Æ \": \"O\",\n\t\"Æ¡\": \"o\",\n\t\"Ư\": \"U\",\n\t\"Æ°\": \"u\",\n\t\"Ç\": \"A\",\n\t\"ÇŽ\": \"a\",\n\t\"Ç\": \"I\",\n\t\"Ç\": \"i\",\n\t\"Ç‘\": \"O\",\n\t\"Ç’\": \"o\",\n\t\"Ç“\": \"U\",\n\t\"Ç”\": \"u\",\n\t\"Ç•\": \"U\",\n\t\"Ç–\": \"u\",\n\t\"Ç—\": \"U\",\n\t\"ǘ\": \"u\",\n\t\"Ç™\": \"U\",\n\t\"Çš\": \"u\",\n\t\"Ç›\": \"U\",\n\t\"Çœ\": \"u\",\n\t\"Ứ\": \"U\",\n\t\"ứ\": \"u\",\n\t\"Ṹ\": \"U\",\n\t\"á¹¹\": \"u\",\n\t\"Ǻ\": \"A\",\n\t\"Ç»\": \"a\",\n\t\"Ǽ\": \"AE\",\n\t\"ǽ\": \"ae\",\n\t\"Ǿ\": \"O\",\n\t\"Ç¿\": \"o\",\n\t\"Þ\": \"TH\",\n\t\"þ\": \"th\",\n\t\"á¹”\": \"P\",\n\t\"ṕ\": \"p\",\n\t\"Ṥ\": \"S\",\n\t\"á¹¥\": \"s\",\n\t\"XÌ\": \"X\",\n\t\"xÌ\": \"x\",\n\t\"Ѓ\": \"Г\",\n\t\"Ñ“\": \"г\",\n\t\"ÐŒ\": \"К\",\n\t\"Ñœ\": \"к\",\n\t\"AÌ‹\": \"A\",\n\t\"aÌ‹\": \"a\",\n\t\"EÌ‹\": \"E\",\n\t\"eÌ‹\": \"e\",\n\t\"IÌ‹\": \"I\",\n\t\"iÌ‹\": \"i\",\n\t\"Ǹ\": \"N\",\n\t\"ǹ\": \"n\",\n\t\"á»’\": \"O\",\n\t\"ồ\": \"o\",\n\t\"á¹\": \"O\",\n\t\"ṑ\": \"o\",\n\t\"Ừ\": \"U\",\n\t\"ừ\": \"u\",\n\t\"Ẁ\": \"W\",\n\t\"áº\": \"w\",\n\t\"Ỳ\": \"Y\",\n\t\"ỳ\": \"y\",\n\t\"È€\": \"A\",\n\t\"È\": \"a\",\n\t\"È„\": \"E\",\n\t\"È…\": \"e\",\n\t\"Ȉ\": \"I\",\n\t\"ȉ\": \"i\",\n\t\"ÈŒ\": \"O\",\n\t\"È\": \"o\",\n\t\"È\": \"R\",\n\t\"È‘\": \"r\",\n\t\"È”\": \"U\",\n\t\"È•\": \"u\",\n\t\"BÌŒ\": \"B\",\n\t\"bÌŒ\": \"b\",\n\t\"Č̣\": \"C\",\n\t\"ÄÌ£\": \"c\",\n\t\"Ê̌\": \"E\",\n\t\"ê̌\": \"e\",\n\t\"FÌŒ\": \"F\",\n\t\"fÌŒ\": \"f\",\n\t\"Ǧ\": \"G\",\n\t\"ǧ\": \"g\",\n\t\"Èž\": \"H\",\n\t\"ÈŸ\": \"h\",\n\t\"JÌŒ\": \"J\",\n\t\"Ç°\": \"j\",\n\t\"Ǩ\": \"K\",\n\t\"Ç©\": \"k\",\n\t\"MÌŒ\": \"M\",\n\t\"mÌŒ\": \"m\",\n\t\"PÌŒ\": \"P\",\n\t\"pÌŒ\": \"p\",\n\t\"QÌŒ\": \"Q\",\n\t\"qÌŒ\": \"q\",\n\t\"Ř̩\": \"R\",\n\t\"ř̩\": \"r\",\n\t\"Ṧ\": \"S\",\n\t\"ṧ\": \"s\",\n\t\"VÌŒ\": \"V\",\n\t\"vÌŒ\": \"v\",\n\t\"WÌŒ\": \"W\",\n\t\"wÌŒ\": \"w\",\n\t\"XÌŒ\": \"X\",\n\t\"xÌŒ\": \"x\",\n\t\"YÌŒ\": \"Y\",\n\t\"yÌŒ\": \"y\",\n\t\"A̧\": \"A\",\n\t\"a̧\": \"a\",\n\t\"B̧\": \"B\",\n\t\"b̧\": \"b\",\n\t\"á¸\": \"D\",\n\t\"ḑ\": \"d\",\n\t\"Ȩ\": \"E\",\n\t\"È©\": \"e\",\n\t\"Æ̧\": \"E\",\n\t\"ɛ̧\": \"e\",\n\t\"Ḩ\": \"H\",\n\t\"ḩ\": \"h\",\n\t\"I̧\": \"I\",\n\t\"i̧\": \"i\",\n\t\"Ɨ̧\": \"I\",\n\t\"ɨ̧\": \"i\",\n\t\"M̧\": \"M\",\n\t\"m̧\": \"m\",\n\t\"O̧\": \"O\",\n\t\"o̧\": \"o\",\n\t\"Q̧\": \"Q\",\n\t\"q̧\": \"q\",\n\t\"U̧\": \"U\",\n\t\"u̧\": \"u\",\n\t\"X̧\": \"X\",\n\t\"x̧\": \"x\",\n\t\"Z̧\": \"Z\",\n\t\"z̧\": \"z\",\n\t\"й\":\"и\",\n\t\"Й\":\"И\",\n\t\"Ñ‘\":\"е\",\n\t\"Ð\":\"Е\",\n};\n\nvar chars = Object.keys(characterMap).join('|');\nvar allAccents = new RegExp(chars, 'g');\nvar firstAccent = new RegExp(chars, '');\n\nfunction matcher(match) {\n\treturn characterMap[match];\n}\n\nvar removeAccents = function(string) {\n\treturn string.replace(allAccents, matcher);\n};\n\nvar hasAccents = function(string) {\n\treturn !!string.match(firstAccent);\n};\n\nmodule.exports = removeAccents;\nmodule.exports.has = hasAccents;\nmodule.exports.remove = removeAccents;\n","/**\n * @license React\n * use-sync-external-store-shim.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n\n 'use strict';\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n var React = require('react');\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n\nvar objectIs = typeof Object.is === 'function' ? Object.is : is;\n\n// dispatch for CommonJS interop named imports.\n\nvar useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nvar didWarnOld18Alpha = false;\nvar didWarnUncachedGetSnapshot = false; // Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\n\nfunction useSyncExternalStore(subscribe, getSnapshot, // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n// React do not expose a way to check if we're hydrating. So users of the shim\n// will need to track that themselves and return the correct value\n// from `getSnapshot`.\ngetServerSnapshot) {\n {\n if (!didWarnOld18Alpha) {\n if (React.startTransition !== undefined) {\n didWarnOld18Alpha = true;\n\n error('You are using an outdated, pre-release alpha of React 18 that ' + 'does not support useSyncExternalStore. The ' + 'use-sync-external-store shim will not work correctly. Upgrade ' + 'to a newer pre-release.');\n }\n }\n } // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n\n\n var value = getSnapshot();\n\n {\n if (!didWarnUncachedGetSnapshot) {\n var cachedValue = getSnapshot();\n\n if (!objectIs(value, cachedValue)) {\n error('The result of getSnapshot should be cached to avoid an infinite loop');\n\n didWarnUncachedGetSnapshot = true;\n }\n }\n } // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n\n\n var _useState = useState({\n inst: {\n value: value,\n getSnapshot: getSnapshot\n }\n }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1]; // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n\n\n useLayoutEffect(function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot; // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst: inst\n });\n }\n }, [subscribe, value, getSnapshot]);\n useEffect(function () {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst: inst\n });\n }\n\n var handleStoreChange = function () {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst: inst\n });\n }\n }; // Subscribe to the store and return a clean-up function.\n\n\n return subscribe(handleStoreChange);\n }, [subscribe]);\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n var prevValue = inst.value;\n\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n\nfunction useSyncExternalStore$1(subscribe, getSnapshot, getServerSnapshot) {\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n return getSnapshot();\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n\nvar isServerEnvironment = !canUseDOM;\n\nvar shim = isServerEnvironment ? useSyncExternalStore$1 : useSyncExternalStore;\nvar useSyncExternalStore$2 = React.useSyncExternalStore !== undefined ? React.useSyncExternalStore : shim;\n\nexports.useSyncExternalStore = useSyncExternalStore$2;\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n \n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","module.exports = window[\"React\"];","module.exports = window[\"ReactDOM\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"apiFetch\"];","module.exports = window[\"wp\"][\"blob\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"compose\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"date\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"hooks\"];","module.exports = window[\"wp\"][\"htmlEntities\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"notices\"];","module.exports = window[\"wp\"][\"primitives\"];","module.exports = window[\"wp\"][\"privateApis\"];","module.exports = window[\"wp\"][\"url\"];","module.exports = window[\"wp\"][\"warning\"];","\"use client\";\nimport {\n createDialogStore\n} from \"./YOHCVXJB.js\";\nimport {\n createStore,\n mergeStore,\n omit,\n throwOnConflictingProps\n} from \"./EQQLU3CG.js\";\nimport {\n defaultValue\n} from \"./PBFD2E7P.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/popover/popover-store.ts\nfunction createPopoverStore(_a = {}) {\n var _b = _a, {\n popover: otherPopover\n } = _b, props = __objRest(_b, [\n \"popover\"\n ]);\n const store = mergeStore(\n props.store,\n omit(otherPopover, [\n \"arrowElement\",\n \"anchorElement\",\n \"contentElement\",\n \"popoverElement\",\n \"disclosureElement\"\n ])\n );\n throwOnConflictingProps(props, store);\n const syncState = store == null ? void 0 : store.getState();\n const dialog = createDialogStore(__spreadProps(__spreadValues({}, props), { store }));\n const placement = defaultValue(\n props.placement,\n syncState == null ? void 0 : syncState.placement,\n \"bottom\"\n );\n const initialState = __spreadProps(__spreadValues({}, dialog.getState()), {\n placement,\n currentPlacement: placement,\n anchorElement: defaultValue(syncState == null ? void 0 : syncState.anchorElement, null),\n popoverElement: defaultValue(syncState == null ? void 0 : syncState.popoverElement, null),\n arrowElement: defaultValue(syncState == null ? void 0 : syncState.arrowElement, null),\n rendered: Symbol(\"rendered\")\n });\n const popover = createStore(initialState, dialog, store);\n return __spreadProps(__spreadValues(__spreadValues({}, dialog), popover), {\n setAnchorElement: (element) => popover.setState(\"anchorElement\", element),\n setPopoverElement: (element) => popover.setState(\"popoverElement\", element),\n setArrowElement: (element) => popover.setState(\"arrowElement\", element),\n render: () => popover.setState(\"rendered\", Symbol(\"rendered\"))\n });\n}\n\nexport {\n createPopoverStore\n};\n","\"use client\";\nimport {\n canUseDOM\n} from \"./PQP5VPTV.js\";\n\n// src/utils/platform.ts\nfunction isTouchDevice() {\n return canUseDOM && !!navigator.maxTouchPoints;\n}\nfunction isApple() {\n if (!canUseDOM) return false;\n return /mac|iphone|ipad|ipod/i.test(navigator.platform);\n}\nfunction isSafari() {\n return canUseDOM && isApple() && /apple/i.test(navigator.vendor);\n}\nfunction isFirefox() {\n return canUseDOM && /firefox\\//i.test(navigator.userAgent);\n}\nfunction isMac() {\n return canUseDOM && navigator.platform.startsWith(\"Mac\") && !isTouchDevice();\n}\n\nexport {\n isTouchDevice,\n isApple,\n isSafari,\n isFirefox,\n isMac\n};\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\n\nexport {\n __spreadValues,\n __spreadProps,\n __objRest\n};\n","\"use client\";\nimport {\n createStore,\n mergeStore,\n omit,\n setup,\n subscribe,\n sync,\n throwOnConflictingProps\n} from \"./EQQLU3CG.js\";\nimport {\n defaultValue\n} from \"./PBFD2E7P.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/disclosure/disclosure-store.ts\nfunction createDisclosureStore(props = {}) {\n const store = mergeStore(\n props.store,\n omit(props.disclosure, [\"contentElement\", \"disclosureElement\"])\n );\n throwOnConflictingProps(props, store);\n const syncState = store == null ? void 0 : store.getState();\n const open = defaultValue(\n props.open,\n syncState == null ? void 0 : syncState.open,\n props.defaultOpen,\n false\n );\n const animated = defaultValue(props.animated, syncState == null ? void 0 : syncState.animated, false);\n const initialState = {\n open,\n animated,\n animating: !!animated && open,\n mounted: open,\n contentElement: defaultValue(syncState == null ? void 0 : syncState.contentElement, null),\n disclosureElement: defaultValue(syncState == null ? void 0 : syncState.disclosureElement, null)\n };\n const disclosure = createStore(initialState, store);\n setup(\n disclosure,\n () => sync(disclosure, [\"animated\", \"animating\"], (state) => {\n if (state.animated) return;\n disclosure.setState(\"animating\", false);\n })\n );\n setup(\n disclosure,\n () => subscribe(disclosure, [\"open\"], () => {\n if (!disclosure.getState().animated) return;\n disclosure.setState(\"animating\", true);\n })\n );\n setup(\n disclosure,\n () => sync(disclosure, [\"open\", \"animating\"], (state) => {\n disclosure.setState(\"mounted\", state.open || state.animating);\n })\n );\n return __spreadProps(__spreadValues({}, disclosure), {\n disclosure: props.disclosure,\n setOpen: (value) => disclosure.setState(\"open\", value),\n show: () => disclosure.setState(\"open\", true),\n hide: () => disclosure.setState(\"open\", false),\n toggle: () => disclosure.setState(\"open\", (open2) => !open2),\n stopAnimation: () => disclosure.setState(\"animating\", false),\n setContentElement: (value) => disclosure.setState(\"contentElement\", value),\n setDisclosureElement: (value) => disclosure.setState(\"disclosureElement\", value)\n });\n}\n\nexport {\n createDisclosureStore\n};\n","\"use client\";\nimport {\n batch,\n createStore,\n init,\n setup,\n throwOnConflictingProps\n} from \"./EQQLU3CG.js\";\nimport {\n chain,\n defaultValue\n} from \"./PBFD2E7P.js\";\nimport {\n getDocument\n} from \"./PQP5VPTV.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/collection/collection-store.ts\nfunction isElementPreceding(a, b) {\n return Boolean(\n b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING\n );\n}\nfunction sortBasedOnDOMPosition(items) {\n const pairs = items.map((item, index) => [index, item]);\n let isOrderDifferent = false;\n pairs.sort(([indexA, a], [indexB, b]) => {\n const elementA = a.element;\n const elementB = b.element;\n if (elementA === elementB) return 0;\n if (!elementA || !elementB) return 0;\n if (isElementPreceding(elementA, elementB)) {\n if (indexA > indexB) {\n isOrderDifferent = true;\n }\n return -1;\n }\n if (indexA < indexB) {\n isOrderDifferent = true;\n }\n return 1;\n });\n if (isOrderDifferent) {\n return pairs.map(([_, item]) => item);\n }\n return items;\n}\nfunction getCommonParent(items) {\n var _a;\n const firstItem = items.find((item) => !!item.element);\n const lastItem = [...items].reverse().find((item) => !!item.element);\n let parentElement = (_a = firstItem == null ? void 0 : firstItem.element) == null ? void 0 : _a.parentElement;\n while (parentElement && (lastItem == null ? void 0 : lastItem.element)) {\n const parent = parentElement;\n if (lastItem && parent.contains(lastItem.element)) {\n return parentElement;\n }\n parentElement = parentElement.parentElement;\n }\n return getDocument(parentElement).body;\n}\nfunction getPrivateStore(store) {\n return store == null ? void 0 : store.__unstablePrivateStore;\n}\nfunction createCollectionStore(props = {}) {\n var _a;\n throwOnConflictingProps(props, props.store);\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const items = defaultValue(\n props.items,\n syncState == null ? void 0 : syncState.items,\n props.defaultItems,\n []\n );\n const itemsMap = new Map(items.map((item) => [item.id, item]));\n const initialState = {\n items,\n renderedItems: defaultValue(syncState == null ? void 0 : syncState.renderedItems, [])\n };\n const syncPrivateStore = getPrivateStore(props.store);\n const privateStore = createStore(\n { items, renderedItems: initialState.renderedItems },\n syncPrivateStore\n );\n const collection = createStore(initialState, props.store);\n const sortItems = (renderedItems) => {\n const sortedItems = sortBasedOnDOMPosition(renderedItems);\n privateStore.setState(\"renderedItems\", sortedItems);\n collection.setState(\"renderedItems\", sortedItems);\n };\n setup(collection, () => init(privateStore));\n setup(privateStore, () => {\n return batch(privateStore, [\"items\"], (state) => {\n collection.setState(\"items\", state.items);\n });\n });\n setup(privateStore, () => {\n return batch(privateStore, [\"renderedItems\"], (state) => {\n let firstRun = true;\n let raf = requestAnimationFrame(() => {\n const { renderedItems } = collection.getState();\n if (state.renderedItems === renderedItems) return;\n sortItems(state.renderedItems);\n });\n if (typeof IntersectionObserver !== \"function\") {\n return () => cancelAnimationFrame(raf);\n }\n const ioCallback = () => {\n if (firstRun) {\n firstRun = false;\n return;\n }\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => sortItems(state.renderedItems));\n };\n const root = getCommonParent(state.renderedItems);\n const observer = new IntersectionObserver(ioCallback, { root });\n for (const item of state.renderedItems) {\n if (!item.element) continue;\n observer.observe(item.element);\n }\n return () => {\n cancelAnimationFrame(raf);\n observer.disconnect();\n };\n });\n });\n const mergeItem = (item, setItems, canDeleteFromMap = false) => {\n let prevItem;\n setItems((items2) => {\n const index = items2.findIndex(({ id }) => id === item.id);\n const nextItems = items2.slice();\n if (index !== -1) {\n prevItem = items2[index];\n const nextItem = __spreadValues(__spreadValues({}, prevItem), item);\n nextItems[index] = nextItem;\n itemsMap.set(item.id, nextItem);\n } else {\n nextItems.push(item);\n itemsMap.set(item.id, item);\n }\n return nextItems;\n });\n const unmergeItem = () => {\n setItems((items2) => {\n if (!prevItem) {\n if (canDeleteFromMap) {\n itemsMap.delete(item.id);\n }\n return items2.filter(({ id }) => id !== item.id);\n }\n const index = items2.findIndex(({ id }) => id === item.id);\n if (index === -1) return items2;\n const nextItems = items2.slice();\n nextItems[index] = prevItem;\n itemsMap.set(item.id, prevItem);\n return nextItems;\n });\n };\n return unmergeItem;\n };\n const registerItem = (item) => mergeItem(\n item,\n (getItems) => privateStore.setState(\"items\", getItems),\n true\n );\n return __spreadProps(__spreadValues({}, collection), {\n registerItem,\n renderItem: (item) => chain(\n registerItem(item),\n mergeItem(\n item,\n (getItems) => privateStore.setState(\"renderedItems\", getItems)\n )\n ),\n item: (id) => {\n if (!id) return null;\n let item = itemsMap.get(id);\n if (!item) {\n const { items: items2 } = collection.getState();\n item = items2.find((item2) => item2.id === id);\n if (item) {\n itemsMap.set(id, item);\n }\n }\n return item || null;\n },\n // @ts-expect-error Internal\n __unstablePrivateStore: privateStore\n });\n}\n\nexport {\n createCollectionStore\n};\n","\"use client\";\n\n// src/utils/array.ts\nfunction toArray(arg) {\n if (Array.isArray(arg)) {\n return arg;\n }\n return typeof arg !== \"undefined\" ? [arg] : [];\n}\nfunction addItemToArray(array, item, index = -1) {\n if (!(index in array)) {\n return [...array, item];\n }\n return [...array.slice(0, index), item, ...array.slice(index)];\n}\nfunction flatten2DArray(array) {\n const flattened = [];\n for (const row of array) {\n flattened.push(...row);\n }\n return flattened;\n}\nfunction reverseArray(array) {\n return array.slice().reverse();\n}\n\nexport {\n toArray,\n addItemToArray,\n flatten2DArray,\n reverseArray\n};\n","\"use client\";\nimport {\n applyState,\n chain,\n getKeys,\n hasOwnProperty,\n invariant,\n noop,\n omit,\n pick\n} from \"./PBFD2E7P.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/store.ts\nfunction getInternal(store, key) {\n const internals = store.__unstableInternals;\n invariant(internals, \"Invalid store\");\n return internals[key];\n}\nfunction createStore(initialState, ...stores) {\n let state = initialState;\n let prevStateBatch = state;\n let lastUpdate = Symbol();\n let destroy = noop;\n const instances = /* @__PURE__ */ new Set();\n const updatedKeys = /* @__PURE__ */ new Set();\n const setups = /* @__PURE__ */ new Set();\n const listeners = /* @__PURE__ */ new Set();\n const batchListeners = /* @__PURE__ */ new Set();\n const disposables = /* @__PURE__ */ new WeakMap();\n const listenerKeys = /* @__PURE__ */ new WeakMap();\n const storeSetup = (callback) => {\n setups.add(callback);\n return () => setups.delete(callback);\n };\n const storeInit = () => {\n const initialized = instances.size;\n const instance = Symbol();\n instances.add(instance);\n const maybeDestroy = () => {\n instances.delete(instance);\n if (instances.size) return;\n destroy();\n };\n if (initialized) return maybeDestroy;\n const desyncs = getKeys(state).map(\n (key) => chain(\n ...stores.map((store) => {\n var _a;\n const storeState = (_a = store == null ? void 0 : store.getState) == null ? void 0 : _a.call(store);\n if (!storeState) return;\n if (!hasOwnProperty(storeState, key)) return;\n return sync(store, [key], (state2) => {\n setState(\n key,\n state2[key],\n // @ts-expect-error - Not public API. This is just to prevent\n // infinite loops.\n true\n );\n });\n })\n )\n );\n const teardowns = [];\n for (const setup2 of setups) {\n teardowns.push(setup2());\n }\n const cleanups = stores.map(init);\n destroy = chain(...desyncs, ...teardowns, ...cleanups);\n return maybeDestroy;\n };\n const sub = (keys, listener, set = listeners) => {\n set.add(listener);\n listenerKeys.set(listener, keys);\n return () => {\n var _a;\n (_a = disposables.get(listener)) == null ? void 0 : _a();\n disposables.delete(listener);\n listenerKeys.delete(listener);\n set.delete(listener);\n };\n };\n const storeSubscribe = (keys, listener) => sub(keys, listener);\n const storeSync = (keys, listener) => {\n disposables.set(listener, listener(state, state));\n return sub(keys, listener);\n };\n const storeBatch = (keys, listener) => {\n disposables.set(listener, listener(state, prevStateBatch));\n return sub(keys, listener, batchListeners);\n };\n const storePick = (keys) => createStore(pick(state, keys), finalStore);\n const storeOmit = (keys) => createStore(omit(state, keys), finalStore);\n const getState = () => state;\n const setState = (key, value, fromStores = false) => {\n var _a;\n if (!hasOwnProperty(state, key)) return;\n const nextValue = applyState(value, state[key]);\n if (nextValue === state[key]) return;\n if (!fromStores) {\n for (const store of stores) {\n (_a = store == null ? void 0 : store.setState) == null ? void 0 : _a.call(store, key, nextValue);\n }\n }\n const prevState = state;\n state = __spreadProps(__spreadValues({}, state), { [key]: nextValue });\n const thisUpdate = Symbol();\n lastUpdate = thisUpdate;\n updatedKeys.add(key);\n const run = (listener, prev, uKeys) => {\n var _a2;\n const keys = listenerKeys.get(listener);\n const updated = (k) => uKeys ? uKeys.has(k) : k === key;\n if (!keys || keys.some(updated)) {\n (_a2 = disposables.get(listener)) == null ? void 0 : _a2();\n disposables.set(listener, listener(state, prev));\n }\n };\n for (const listener of listeners) {\n run(listener, prevState);\n }\n queueMicrotask(() => {\n if (lastUpdate !== thisUpdate) return;\n const snapshot = state;\n for (const listener of batchListeners) {\n run(listener, prevStateBatch, updatedKeys);\n }\n prevStateBatch = snapshot;\n updatedKeys.clear();\n });\n };\n const finalStore = {\n getState,\n setState,\n __unstableInternals: {\n setup: storeSetup,\n init: storeInit,\n subscribe: storeSubscribe,\n sync: storeSync,\n batch: storeBatch,\n pick: storePick,\n omit: storeOmit\n }\n };\n return finalStore;\n}\nfunction setup(store, ...args) {\n if (!store) return;\n return getInternal(store, \"setup\")(...args);\n}\nfunction init(store, ...args) {\n if (!store) return;\n return getInternal(store, \"init\")(...args);\n}\nfunction subscribe(store, ...args) {\n if (!store) return;\n return getInternal(store, \"subscribe\")(...args);\n}\nfunction sync(store, ...args) {\n if (!store) return;\n return getInternal(store, \"sync\")(...args);\n}\nfunction batch(store, ...args) {\n if (!store) return;\n return getInternal(store, \"batch\")(...args);\n}\nfunction omit2(store, ...args) {\n if (!store) return;\n return getInternal(store, \"omit\")(...args);\n}\nfunction pick2(store, ...args) {\n if (!store) return;\n return getInternal(store, \"pick\")(...args);\n}\nfunction mergeStore(...stores) {\n const initialState = stores.reduce((state, store2) => {\n var _a;\n const nextState = (_a = store2 == null ? void 0 : store2.getState) == null ? void 0 : _a.call(store2);\n if (!nextState) return state;\n return Object.assign(state, nextState);\n }, {});\n const store = createStore(initialState, ...stores);\n return store;\n}\nfunction throwOnConflictingProps(props, store) {\n if (process.env.NODE_ENV === \"production\") return;\n if (!store) return;\n const defaultKeys = Object.entries(props).filter(([key, value]) => key.startsWith(\"default\") && value !== void 0).map(([key]) => {\n var _a;\n const stateKey = key.replace(\"default\", \"\");\n return `${((_a = stateKey[0]) == null ? void 0 : _a.toLowerCase()) || \"\"}${stateKey.slice(1)}`;\n });\n if (!defaultKeys.length) return;\n const storeState = store.getState();\n const conflictingProps = defaultKeys.filter(\n (key) => hasOwnProperty(storeState, key)\n );\n if (!conflictingProps.length) return;\n throw new Error(\n `Passing a store prop in conjunction with a default state is not supported.\n\nconst store = useSelectStore();\n\n ^ ^\n\nInstead, pass the default state to the topmost store:\n\nconst store = useSelectStore({ defaultValue: \"Apple\" });\n\n\nSee https://github.com/ariakit/ariakit/pull/2745 for more details.\n\nIf there's a particular need for this, please submit a feature request at https://github.com/ariakit/ariakit\n`\n );\n}\n\nexport {\n createStore,\n setup,\n init,\n subscribe,\n sync,\n batch,\n omit2 as omit,\n pick2 as pick,\n mergeStore,\n throwOnConflictingProps\n};\n","\"use client\";\nimport {\n createCollectionStore\n} from \"./7DTP4AQO.js\";\nimport {\n flatten2DArray,\n reverseArray\n} from \"./7PRQYBBV.js\";\nimport {\n createStore,\n setup,\n sync\n} from \"./EQQLU3CG.js\";\nimport {\n defaultValue\n} from \"./PBFD2E7P.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite-store.ts\nvar NULL_ITEM = { id: null };\nfunction findFirstEnabledItem(items, excludeId) {\n return items.find((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getEnabledItems(items, excludeId) {\n return items.filter((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getItemsInRow(items, rowId) {\n return items.filter((item) => item.rowId === rowId);\n}\nfunction flipItems(items, activeId, shouldInsertNullItem = false) {\n const index = items.findIndex((item) => item.id === activeId);\n return [\n ...items.slice(index + 1),\n ...shouldInsertNullItem ? [NULL_ITEM] : [],\n ...items.slice(0, index)\n ];\n}\nfunction groupItemsByRows(items) {\n const rows = [];\n for (const item of items) {\n const row = rows.find((currentRow) => {\n var _a;\n return ((_a = currentRow[0]) == null ? void 0 : _a.rowId) === item.rowId;\n });\n if (row) {\n row.push(item);\n } else {\n rows.push([item]);\n }\n }\n return rows;\n}\nfunction getMaxRowLength(array) {\n let maxLength = 0;\n for (const { length } of array) {\n if (length > maxLength) {\n maxLength = length;\n }\n }\n return maxLength;\n}\nfunction createEmptyItem(rowId) {\n return {\n id: \"__EMPTY_ITEM__\",\n disabled: true,\n rowId\n };\n}\nfunction normalizeRows(rows, activeId, focusShift) {\n const maxLength = getMaxRowLength(rows);\n for (const row of rows) {\n for (let i = 0; i < maxLength; i += 1) {\n const item = row[i];\n if (!item || focusShift && item.disabled) {\n const isFirst = i === 0;\n const previousItem = isFirst && focusShift ? findFirstEnabledItem(row) : row[i - 1];\n row[i] = previousItem && activeId !== previousItem.id && focusShift ? previousItem : createEmptyItem(previousItem == null ? void 0 : previousItem.rowId);\n }\n }\n }\n return rows;\n}\nfunction verticalizeItems(items) {\n const rows = groupItemsByRows(items);\n const maxLength = getMaxRowLength(rows);\n const verticalized = [];\n for (let i = 0; i < maxLength; i += 1) {\n for (const row of rows) {\n const item = row[i];\n if (item) {\n verticalized.push(__spreadProps(__spreadValues({}, item), {\n // If there's no rowId, it means that it's not a grid composite, but\n // a single row instead. So, instead of verticalizing it, that is,\n // assigning a different rowId based on the column index, we keep it\n // undefined so they will be part of the same row. This is useful\n // when using up/down on one-dimensional composites.\n rowId: item.rowId ? `${i}` : void 0\n }));\n }\n }\n }\n return verticalized;\n}\nfunction createCompositeStore(props = {}) {\n var _a;\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const collection = createCollectionStore(props);\n const activeId = defaultValue(\n props.activeId,\n syncState == null ? void 0 : syncState.activeId,\n props.defaultActiveId\n );\n const initialState = __spreadProps(__spreadValues({}, collection.getState()), {\n activeId,\n baseElement: defaultValue(syncState == null ? void 0 : syncState.baseElement, null),\n includesBaseElement: defaultValue(\n props.includesBaseElement,\n syncState == null ? void 0 : syncState.includesBaseElement,\n activeId === null\n ),\n moves: defaultValue(syncState == null ? void 0 : syncState.moves, 0),\n orientation: defaultValue(\n props.orientation,\n syncState == null ? void 0 : syncState.orientation,\n \"both\"\n ),\n rtl: defaultValue(props.rtl, syncState == null ? void 0 : syncState.rtl, false),\n virtualFocus: defaultValue(\n props.virtualFocus,\n syncState == null ? void 0 : syncState.virtualFocus,\n false\n ),\n focusLoop: defaultValue(props.focusLoop, syncState == null ? void 0 : syncState.focusLoop, false),\n focusWrap: defaultValue(props.focusWrap, syncState == null ? void 0 : syncState.focusWrap, false),\n focusShift: defaultValue(props.focusShift, syncState == null ? void 0 : syncState.focusShift, false)\n });\n const composite = createStore(initialState, collection, props.store);\n setup(\n composite,\n () => sync(composite, [\"renderedItems\", \"activeId\"], (state) => {\n composite.setState(\"activeId\", (activeId2) => {\n var _a2;\n if (activeId2 !== void 0) return activeId2;\n return (_a2 = findFirstEnabledItem(state.renderedItems)) == null ? void 0 : _a2.id;\n });\n })\n );\n const getNextId = (direction = \"next\", options = {}) => {\n var _a2, _b;\n const defaultState = composite.getState();\n const {\n skip = 0,\n activeId: activeId2 = defaultState.activeId,\n focusShift = defaultState.focusShift,\n focusLoop = defaultState.focusLoop,\n focusWrap = defaultState.focusWrap,\n includesBaseElement = defaultState.includesBaseElement,\n renderedItems = defaultState.renderedItems,\n rtl = defaultState.rtl\n } = options;\n const isVerticalDirection = direction === \"up\" || direction === \"down\";\n const isNextDirection = direction === \"next\" || direction === \"down\";\n const canReverse = isNextDirection ? rtl && !isVerticalDirection : !rtl || isVerticalDirection;\n const canShift = focusShift && !skip;\n let items = !isVerticalDirection ? renderedItems : flatten2DArray(\n normalizeRows(groupItemsByRows(renderedItems), activeId2, canShift)\n );\n items = canReverse ? reverseArray(items) : items;\n items = isVerticalDirection ? verticalizeItems(items) : items;\n if (activeId2 == null) {\n return (_a2 = findFirstEnabledItem(items)) == null ? void 0 : _a2.id;\n }\n const activeItem = items.find((item) => item.id === activeId2);\n if (!activeItem) {\n return (_b = findFirstEnabledItem(items)) == null ? void 0 : _b.id;\n }\n const isGrid = items.some((item) => item.rowId);\n const activeIndex = items.indexOf(activeItem);\n const nextItems = items.slice(activeIndex + 1);\n const nextItemsInRow = getItemsInRow(nextItems, activeItem.rowId);\n if (skip) {\n const nextEnabledItemsInRow = getEnabledItems(nextItemsInRow, activeId2);\n const nextItem2 = nextEnabledItemsInRow.slice(skip)[0] || // If we can't find an item, just return the last one.\n nextEnabledItemsInRow[nextEnabledItemsInRow.length - 1];\n return nextItem2 == null ? void 0 : nextItem2.id;\n }\n const canLoop = focusLoop && (isVerticalDirection ? focusLoop !== \"horizontal\" : focusLoop !== \"vertical\");\n const canWrap = isGrid && focusWrap && (isVerticalDirection ? focusWrap !== \"horizontal\" : focusWrap !== \"vertical\");\n const hasNullItem = isNextDirection ? (!isGrid || isVerticalDirection) && canLoop && includesBaseElement : isVerticalDirection ? includesBaseElement : false;\n if (canLoop) {\n const loopItems = canWrap && !hasNullItem ? items : getItemsInRow(items, activeItem.rowId);\n const sortedItems = flipItems(loopItems, activeId2, hasNullItem);\n const nextItem2 = findFirstEnabledItem(sortedItems, activeId2);\n return nextItem2 == null ? void 0 : nextItem2.id;\n }\n if (canWrap) {\n const nextItem2 = findFirstEnabledItem(\n // We can use nextItems, which contains all the next items, including\n // items from other rows, to wrap between rows. However, if there is a\n // null item (the composite container), we'll only use the next items in\n // the row. So moving next from the last item will focus on the\n // composite container. On grid composites, horizontal navigation never\n // focuses on the composite container, only vertical.\n hasNullItem ? nextItemsInRow : nextItems,\n activeId2\n );\n const nextId = hasNullItem ? (nextItem2 == null ? void 0 : nextItem2.id) || null : nextItem2 == null ? void 0 : nextItem2.id;\n return nextId;\n }\n const nextItem = findFirstEnabledItem(nextItemsInRow, activeId2);\n if (!nextItem && hasNullItem) {\n return null;\n }\n return nextItem == null ? void 0 : nextItem.id;\n };\n return __spreadProps(__spreadValues(__spreadValues({}, collection), composite), {\n setBaseElement: (element) => composite.setState(\"baseElement\", element),\n setActiveId: (id) => composite.setState(\"activeId\", id),\n move: (id) => {\n if (id === void 0) return;\n composite.setState(\"activeId\", id);\n composite.setState(\"moves\", (moves) => moves + 1);\n },\n first: () => {\n var _a2;\n return (_a2 = findFirstEnabledItem(composite.getState().renderedItems)) == null ? void 0 : _a2.id;\n },\n last: () => {\n var _a2;\n return (_a2 = findFirstEnabledItem(reverseArray(composite.getState().renderedItems))) == null ? void 0 : _a2.id;\n },\n next: (options) => {\n if (options !== void 0 && typeof options === \"number\") {\n options = { skip: options };\n }\n return getNextId(\"next\", options);\n },\n previous: (options) => {\n if (options !== void 0 && typeof options === \"number\") {\n options = { skip: options };\n }\n return getNextId(\"previous\", options);\n },\n down: (options) => {\n if (options !== void 0 && typeof options === \"number\") {\n options = { skip: options };\n }\n return getNextId(\"down\", options);\n },\n up: (options) => {\n if (options !== void 0 && typeof options === \"number\") {\n options = { skip: options };\n }\n return getNextId(\"up\", options);\n }\n });\n}\n\nexport {\n createCompositeStore\n};\n","\"use client\";\nimport {\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/misc.ts\nfunction noop(..._) {\n}\nfunction shallowEqual(a, b) {\n if (a === b) return true;\n if (!a) return false;\n if (!b) return false;\n if (typeof a !== \"object\") return false;\n if (typeof b !== \"object\") return false;\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n const { length } = aKeys;\n if (bKeys.length !== length) return false;\n for (const key of aKeys) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n}\nfunction applyState(argument, currentValue) {\n if (isUpdater(argument)) {\n const value = isLazyValue(currentValue) ? currentValue() : currentValue;\n return argument(value);\n }\n return argument;\n}\nfunction isUpdater(argument) {\n return typeof argument === \"function\";\n}\nfunction isLazyValue(value) {\n return typeof value === \"function\";\n}\nfunction isObject(arg) {\n return typeof arg === \"object\" && arg != null;\n}\nfunction isEmpty(arg) {\n if (Array.isArray(arg)) return !arg.length;\n if (isObject(arg)) return !Object.keys(arg).length;\n if (arg == null) return true;\n if (arg === \"\") return true;\n return false;\n}\nfunction isInteger(arg) {\n if (typeof arg === \"number\") {\n return Math.floor(arg) === arg;\n }\n return String(Math.floor(Number(arg))) === arg;\n}\nfunction hasOwnProperty(object, prop) {\n if (typeof Object.hasOwn === \"function\") {\n return Object.hasOwn(object, prop);\n }\n return Object.prototype.hasOwnProperty.call(object, prop);\n}\nfunction chain(...fns) {\n return (...args) => {\n for (const fn of fns) {\n if (typeof fn === \"function\") {\n fn(...args);\n }\n }\n };\n}\nfunction cx(...args) {\n return args.filter(Boolean).join(\" \") || void 0;\n}\nfunction normalizeString(str) {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\nfunction omit(object, keys) {\n const result = __spreadValues({}, object);\n for (const key of keys) {\n if (hasOwnProperty(result, key)) {\n delete result[key];\n }\n }\n return result;\n}\nfunction pick(object, paths) {\n const result = {};\n for (const key of paths) {\n if (hasOwnProperty(object, key)) {\n result[key] = object[key];\n }\n }\n return result;\n}\nfunction identity(value) {\n return value;\n}\nfunction beforePaint(cb = noop) {\n const raf = requestAnimationFrame(cb);\n return () => cancelAnimationFrame(raf);\n}\nfunction afterPaint(cb = noop) {\n let raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(cb);\n });\n return () => cancelAnimationFrame(raf);\n}\nfunction invariant(condition, message) {\n if (condition) return;\n if (typeof message !== \"string\") throw new Error(\"Invariant failed\");\n throw new Error(message);\n}\nfunction getKeys(obj) {\n return Object.keys(obj);\n}\nfunction isFalsyBooleanCallback(booleanOrCallback, ...args) {\n const result = typeof booleanOrCallback === \"function\" ? booleanOrCallback(...args) : booleanOrCallback;\n if (result == null) return false;\n return !result;\n}\nfunction disabledFromProps(props) {\n return props.disabled || props[\"aria-disabled\"] === true || props[\"aria-disabled\"] === \"true\";\n}\nfunction removeUndefinedValues(obj) {\n const result = {};\n for (const key in obj) {\n if (obj[key] !== void 0) {\n result[key] = obj[key];\n }\n }\n return result;\n}\nfunction defaultValue(...values) {\n for (const value of values) {\n if (value !== void 0) return value;\n }\n return void 0;\n}\n\nexport {\n noop,\n shallowEqual,\n applyState,\n isObject,\n isEmpty,\n isInteger,\n hasOwnProperty,\n chain,\n cx,\n normalizeString,\n omit,\n pick,\n identity,\n beforePaint,\n afterPaint,\n invariant,\n getKeys,\n isFalsyBooleanCallback,\n disabledFromProps,\n removeUndefinedValues,\n defaultValue\n};\n","\"use client\";\n\n// src/utils/dom.ts\nvar canUseDOM = checkIsBrowser();\nfunction checkIsBrowser() {\n var _a;\n return typeof window !== \"undefined\" && !!((_a = window.document) == null ? void 0 : _a.createElement);\n}\nfunction getDocument(node) {\n return node ? node.ownerDocument || node : document;\n}\nfunction getWindow(node) {\n return getDocument(node).defaultView || window;\n}\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getDocument(node);\n if (!(activeElement == null ? void 0 : activeElement.nodeName)) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(\n activeElement.contentDocument.body,\n activeDescendant\n );\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\nfunction contains(parent, child) {\n return parent === child || parent.contains(child);\n}\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\nfunction isButton(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName === \"button\") return true;\n if (tagName === \"input\" && element.type) {\n return buttonInputTypes.indexOf(element.type) !== -1;\n }\n return false;\n}\nvar buttonInputTypes = [\n \"button\",\n \"color\",\n \"file\",\n \"image\",\n \"reset\",\n \"submit\"\n];\nfunction isVisible(element) {\n if (typeof element.checkVisibility === \"function\") {\n return element.checkVisibility();\n }\n const htmlElement = element;\n return htmlElement.offsetWidth > 0 || htmlElement.offsetHeight > 0 || element.getClientRects().length > 0;\n}\nfunction isTextField(element) {\n try {\n const isTextInput = element instanceof HTMLInputElement && element.selectionStart !== null;\n const isTextArea = element.tagName === \"TEXTAREA\";\n return isTextInput || isTextArea || false;\n } catch (error) {\n return false;\n }\n}\nfunction isTextbox(element) {\n return element.isContentEditable || isTextField(element);\n}\nfunction getTextboxValue(element) {\n if (isTextField(element)) {\n return element.value;\n }\n if (element.isContentEditable) {\n const range = getDocument(element).createRange();\n range.selectNodeContents(element);\n return range.toString();\n }\n return \"\";\n}\nfunction getTextboxSelection(element) {\n let start = 0;\n let end = 0;\n if (isTextField(element)) {\n start = element.selectionStart || 0;\n end = element.selectionEnd || 0;\n } else if (element.isContentEditable) {\n const selection = getDocument(element).getSelection();\n if ((selection == null ? void 0 : selection.rangeCount) && selection.anchorNode && contains(element, selection.anchorNode) && selection.focusNode && contains(element, selection.focusNode)) {\n const range = selection.getRangeAt(0);\n const nextRange = range.cloneRange();\n nextRange.selectNodeContents(element);\n nextRange.setEnd(range.startContainer, range.startOffset);\n start = nextRange.toString().length;\n nextRange.setEnd(range.endContainer, range.endOffset);\n end = nextRange.toString().length;\n }\n }\n return { start, end };\n}\nfunction getPopupRole(element, fallback) {\n const allowedPopupRoles = [\"dialog\", \"menu\", \"listbox\", \"tree\", \"grid\"];\n const role = element == null ? void 0 : element.getAttribute(\"role\");\n if (role && allowedPopupRoles.indexOf(role) !== -1) {\n return role;\n }\n return fallback;\n}\nfunction getPopupItemRole(element, fallback) {\n var _a;\n const itemRoleByPopupRole = {\n menu: \"menuitem\",\n listbox: \"option\",\n tree: \"treeitem\"\n };\n const popupRole = getPopupRole(element);\n if (!popupRole) return fallback;\n const key = popupRole;\n return (_a = itemRoleByPopupRole[key]) != null ? _a : fallback;\n}\nfunction scrollIntoViewIfNeeded(element, arg) {\n if (isPartiallyHidden(element) && \"scrollIntoView\" in element) {\n element.scrollIntoView(arg);\n }\n}\nfunction getScrollingElement(element) {\n if (!element) return null;\n const isScrollableOverflow = (overflow) => {\n if (overflow === \"auto\") return true;\n if (overflow === \"scroll\") return true;\n return false;\n };\n if (element.clientHeight && element.scrollHeight > element.clientHeight) {\n const { overflowY } = getComputedStyle(element);\n if (isScrollableOverflow(overflowY)) return element;\n } else if (element.clientWidth && element.scrollWidth > element.clientWidth) {\n const { overflowX } = getComputedStyle(element);\n if (isScrollableOverflow(overflowX)) return element;\n }\n return getScrollingElement(element.parentElement) || document.scrollingElement || document.body;\n}\nfunction isPartiallyHidden(element) {\n const elementRect = element.getBoundingClientRect();\n const scroller = getScrollingElement(element);\n if (!scroller) return false;\n const scrollerRect = scroller.getBoundingClientRect();\n const isHTML = scroller.tagName === \"HTML\";\n const scrollerTop = isHTML ? scrollerRect.top + scroller.scrollTop : scrollerRect.top;\n const scrollerBottom = isHTML ? scroller.clientHeight : scrollerRect.bottom;\n const scrollerLeft = isHTML ? scrollerRect.left + scroller.scrollLeft : scrollerRect.left;\n const scrollerRight = isHTML ? scroller.clientWidth : scrollerRect.right;\n const top = elementRect.top < scrollerTop;\n const left = elementRect.left < scrollerLeft;\n const bottom = elementRect.bottom > scrollerBottom;\n const right = elementRect.right > scrollerRight;\n return top || left || bottom || right;\n}\nfunction setSelectionRange(element, ...args) {\n if (/text|search|password|tel|url/i.test(element.type)) {\n element.setSelectionRange(...args);\n }\n}\n\nexport {\n canUseDOM,\n getDocument,\n getWindow,\n getActiveElement,\n contains,\n isFrame,\n isButton,\n isVisible,\n isTextField,\n isTextbox,\n getTextboxValue,\n getTextboxSelection,\n getPopupRole,\n getPopupItemRole,\n scrollIntoViewIfNeeded,\n getScrollingElement,\n isPartiallyHidden,\n setSelectionRange\n};\n","\"use client\";\nimport {\n createDisclosureStore\n} from \"./6E4KKOSB.js\";\n\n// src/dialog/dialog-store.ts\nfunction createDialogStore(props = {}) {\n return createDisclosureStore(props);\n}\n\nexport {\n createDialogStore\n};\n","\"use client\";\nimport {\n createCompositeStore\n} from \"../__chunks/IJ6VFLJG.js\";\nimport \"../__chunks/7DTP4AQO.js\";\nimport \"../__chunks/7PRQYBBV.js\";\nimport {\n createPopoverStore\n} from \"../__chunks/3UYWTADI.js\";\nimport \"../__chunks/YOHCVXJB.js\";\nimport \"../__chunks/6E4KKOSB.js\";\nimport {\n batch,\n createStore,\n mergeStore,\n pick,\n setup,\n sync,\n throwOnConflictingProps\n} from \"../__chunks/EQQLU3CG.js\";\nimport {\n chain,\n defaultValue\n} from \"../__chunks/PBFD2E7P.js\";\nimport {\n isSafari,\n isTouchDevice\n} from \"../__chunks/3VBK76MS.js\";\nimport \"../__chunks/PQP5VPTV.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox-store.ts\nvar isTouchSafari = isSafari() && isTouchDevice();\nfunction createComboboxStore(_a = {}) {\n var _b = _a, {\n tag\n } = _b, props = __objRest(_b, [\n \"tag\"\n ]);\n const store = mergeStore(props.store, pick(tag, [\"value\", \"rtl\"]));\n throwOnConflictingProps(props, store);\n const tagState = tag == null ? void 0 : tag.getState();\n const syncState = store == null ? void 0 : store.getState();\n const activeId = defaultValue(\n props.activeId,\n syncState == null ? void 0 : syncState.activeId,\n props.defaultActiveId,\n null\n );\n const composite = createCompositeStore(__spreadProps(__spreadValues({}, props), {\n activeId,\n includesBaseElement: defaultValue(\n props.includesBaseElement,\n syncState == null ? void 0 : syncState.includesBaseElement,\n true\n ),\n orientation: defaultValue(\n props.orientation,\n syncState == null ? void 0 : syncState.orientation,\n \"vertical\"\n ),\n focusLoop: defaultValue(props.focusLoop, syncState == null ? void 0 : syncState.focusLoop, true),\n focusWrap: defaultValue(props.focusWrap, syncState == null ? void 0 : syncState.focusWrap, true),\n virtualFocus: defaultValue(\n props.virtualFocus,\n syncState == null ? void 0 : syncState.virtualFocus,\n true\n )\n }));\n const popover = createPopoverStore(__spreadProps(__spreadValues({}, props), {\n placement: defaultValue(\n props.placement,\n syncState == null ? void 0 : syncState.placement,\n \"bottom-start\"\n )\n }));\n const value = defaultValue(\n props.value,\n syncState == null ? void 0 : syncState.value,\n props.defaultValue,\n \"\"\n );\n const selectedValue = defaultValue(\n props.selectedValue,\n syncState == null ? void 0 : syncState.selectedValue,\n tagState == null ? void 0 : tagState.values,\n props.defaultSelectedValue,\n \"\"\n );\n const multiSelectable = Array.isArray(selectedValue);\n const initialState = __spreadProps(__spreadValues(__spreadValues({}, composite.getState()), popover.getState()), {\n value,\n selectedValue,\n resetValueOnSelect: defaultValue(\n props.resetValueOnSelect,\n syncState == null ? void 0 : syncState.resetValueOnSelect,\n multiSelectable\n ),\n resetValueOnHide: defaultValue(\n props.resetValueOnHide,\n syncState == null ? void 0 : syncState.resetValueOnHide,\n multiSelectable && !tag\n ),\n activeValue: syncState == null ? void 0 : syncState.activeValue\n });\n const combobox = createStore(initialState, composite, popover, store);\n if (isTouchSafari) {\n setup(\n combobox,\n () => sync(combobox, [\"virtualFocus\"], () => {\n combobox.setState(\"virtualFocus\", false);\n })\n );\n }\n setup(combobox, () => {\n if (!tag) return;\n return chain(\n sync(combobox, [\"selectedValue\"], (state) => {\n if (!Array.isArray(state.selectedValue)) return;\n tag.setValues(state.selectedValue);\n }),\n sync(tag, [\"values\"], (state) => {\n combobox.setState(\"selectedValue\", state.values);\n })\n );\n });\n setup(\n combobox,\n () => sync(combobox, [\"resetValueOnHide\", \"mounted\"], (state) => {\n if (!state.resetValueOnHide) return;\n if (state.mounted) return;\n combobox.setState(\"value\", value);\n })\n );\n setup(\n combobox,\n () => sync(combobox, [\"open\"], (state) => {\n if (state.open) return;\n combobox.setState(\"activeId\", activeId);\n combobox.setState(\"moves\", 0);\n })\n );\n setup(\n combobox,\n () => sync(combobox, [\"moves\", \"activeId\"], (state, prevState) => {\n if (state.moves === prevState.moves) {\n combobox.setState(\"activeValue\", void 0);\n }\n })\n );\n setup(\n combobox,\n () => batch(combobox, [\"moves\", \"renderedItems\"], (state, prev) => {\n if (state.moves === prev.moves) return;\n const { activeId: activeId2 } = combobox.getState();\n const activeItem = composite.item(activeId2);\n combobox.setState(\"activeValue\", activeItem == null ? void 0 : activeItem.value);\n })\n );\n return __spreadProps(__spreadValues(__spreadValues(__spreadValues({}, popover), composite), combobox), {\n tag,\n setValue: (value2) => combobox.setState(\"value\", value2),\n resetValue: () => combobox.setState(\"value\", initialState.value),\n setSelectedValue: (selectedValue2) => combobox.setState(\"selectedValue\", selectedValue2)\n });\n}\nexport {\n createComboboxStore\n};\n","\"use client\";\nimport {\n isApple\n} from \"../__chunks/3VBK76MS.js\";\nimport {\n contains\n} from \"../__chunks/PQP5VPTV.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/utils/events.ts\nfunction isPortalEvent(event) {\n return Boolean(\n event.currentTarget && !contains(event.currentTarget, event.target)\n );\n}\nfunction isSelfTarget(event) {\n return event.target === event.currentTarget;\n}\nfunction isOpeningInNewTab(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const isAppleDevice = isApple();\n if (isAppleDevice && !event.metaKey) return false;\n if (!isAppleDevice && !event.ctrlKey) return false;\n const tagName = element.tagName.toLowerCase();\n if (tagName === \"a\") return true;\n if (tagName === \"button\" && element.type === \"submit\") return true;\n if (tagName === \"input\" && element.type === \"submit\") return true;\n return false;\n}\nfunction isDownloading(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const tagName = element.tagName.toLowerCase();\n if (!event.altKey) return false;\n if (tagName === \"a\") return true;\n if (tagName === \"button\" && element.type === \"submit\") return true;\n if (tagName === \"input\" && element.type === \"submit\") return true;\n return false;\n}\nfunction fireEvent(element, type, eventInit) {\n const event = new Event(type, eventInit);\n return element.dispatchEvent(event);\n}\nfunction fireBlurEvent(element, eventInit) {\n const event = new FocusEvent(\"blur\", eventInit);\n const defaultAllowed = element.dispatchEvent(event);\n const bubbleInit = __spreadProps(__spreadValues({}, eventInit), { bubbles: true });\n element.dispatchEvent(new FocusEvent(\"focusout\", bubbleInit));\n return defaultAllowed;\n}\nfunction fireFocusEvent(element, eventInit) {\n const event = new FocusEvent(\"focus\", eventInit);\n const defaultAllowed = element.dispatchEvent(event);\n const bubbleInit = __spreadProps(__spreadValues({}, eventInit), { bubbles: true });\n element.dispatchEvent(new FocusEvent(\"focusin\", bubbleInit));\n return defaultAllowed;\n}\nfunction fireKeyboardEvent(element, type, eventInit) {\n const event = new KeyboardEvent(type, eventInit);\n return element.dispatchEvent(event);\n}\nfunction fireClickEvent(element, eventInit) {\n const event = new MouseEvent(\"click\", eventInit);\n return element.dispatchEvent(event);\n}\nfunction isFocusEventOutside(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction getInputType(event) {\n const nativeEvent = \"nativeEvent\" in event ? event.nativeEvent : event;\n if (!nativeEvent) return;\n if (!(\"inputType\" in nativeEvent)) return;\n if (typeof nativeEvent.inputType !== \"string\") return;\n return nativeEvent.inputType;\n}\nfunction queueBeforeEvent(element, type, callback, timeout) {\n const createTimer = (callback2) => {\n if (timeout) {\n const timerId2 = setTimeout(callback2, timeout);\n return () => clearTimeout(timerId2);\n }\n const timerId = requestAnimationFrame(callback2);\n return () => cancelAnimationFrame(timerId);\n };\n const cancelTimer = createTimer(() => {\n element.removeEventListener(type, callSync, true);\n callback();\n });\n const callSync = () => {\n cancelTimer();\n callback();\n };\n element.addEventListener(type, callSync, { once: true, capture: true });\n return cancelTimer;\n}\nfunction addGlobalEventListener(type, listener, options, scope = window) {\n const children = [];\n try {\n scope.document.addEventListener(type, listener, options);\n for (const frame of Array.from(scope.frames)) {\n children.push(addGlobalEventListener(type, listener, options, frame));\n }\n } catch (e) {\n }\n const removeEventListener = () => {\n try {\n scope.document.removeEventListener(type, listener, options);\n } catch (e) {\n }\n for (const remove of children) {\n remove();\n }\n };\n return removeEventListener;\n}\nexport {\n addGlobalEventListener,\n fireBlurEvent,\n fireClickEvent,\n fireEvent,\n fireFocusEvent,\n fireKeyboardEvent,\n getInputType,\n isDownloading,\n isFocusEventOutside,\n isOpeningInNewTab,\n isPortalEvent,\n isSelfTarget,\n queueBeforeEvent\n};\n","\"use client\";\nimport {\n contains,\n getActiveElement,\n isFrame,\n isVisible\n} from \"../__chunks/PQP5VPTV.js\";\nimport {\n __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/utils/focus.ts\nvar selector = \"input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], summary, iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false'])\";\nfunction hasNegativeTabIndex(element) {\n const tabIndex = Number.parseInt(element.getAttribute(\"tabindex\") || \"0\", 10);\n return tabIndex < 0;\n}\nfunction isFocusable(element) {\n if (!element.matches(selector)) return false;\n if (!isVisible(element)) return false;\n if (element.closest(\"[inert]\")) return false;\n return true;\n}\nfunction isTabbable(element) {\n if (!isFocusable(element)) return false;\n if (hasNegativeTabIndex(element)) return false;\n if (!(\"form\" in element)) return true;\n if (!element.form) return true;\n if (element.checked) return true;\n if (element.type !== \"radio\") return true;\n const radioGroup = element.form.elements.namedItem(element.name);\n if (!radioGroup) return true;\n if (!(\"length\" in radioGroup)) return true;\n const activeElement = getActiveElement(element);\n if (!activeElement) return true;\n if (activeElement === element) return true;\n if (!(\"form\" in activeElement)) return true;\n if (activeElement.form !== element.form) return true;\n if (activeElement.name !== element.name) return true;\n return false;\n}\nfunction getAllFocusableIn(container, includeContainer) {\n const elements = Array.from(\n container.querySelectorAll(selector)\n );\n if (includeContainer) {\n elements.unshift(container);\n }\n const focusableElements = elements.filter(isFocusable);\n focusableElements.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n focusableElements.splice(i, 1, ...getAllFocusableIn(frameBody));\n }\n });\n return focusableElements;\n}\nfunction getAllFocusable(includeBody) {\n return getAllFocusableIn(document.body, includeBody);\n}\nfunction getFirstFocusableIn(container, includeContainer) {\n const [first] = getAllFocusableIn(container, includeContainer);\n return first || null;\n}\nfunction getFirstFocusable(includeBody) {\n return getFirstFocusableIn(document.body, includeBody);\n}\nfunction getAllTabbableIn(container, includeContainer, fallbackToFocusable) {\n const elements = Array.from(\n container.querySelectorAll(selector)\n );\n const tabbableElements = elements.filter(isTabbable);\n if (includeContainer && isTabbable(container)) {\n tabbableElements.unshift(container);\n }\n tabbableElements.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n const allFrameTabbable = getAllTabbableIn(\n frameBody,\n false,\n fallbackToFocusable\n );\n tabbableElements.splice(i, 1, ...allFrameTabbable);\n }\n });\n if (!tabbableElements.length && fallbackToFocusable) {\n return elements;\n }\n return tabbableElements;\n}\nfunction getAllTabbable(fallbackToFocusable) {\n return getAllTabbableIn(document.body, false, fallbackToFocusable);\n}\nfunction getFirstTabbableIn(container, includeContainer, fallbackToFocusable) {\n const [first] = getAllTabbableIn(\n container,\n includeContainer,\n fallbackToFocusable\n );\n return first || null;\n}\nfunction getFirstTabbable(fallbackToFocusable) {\n return getFirstTabbableIn(document.body, false, fallbackToFocusable);\n}\nfunction getLastTabbableIn(container, includeContainer, fallbackToFocusable) {\n const allTabbable = getAllTabbableIn(\n container,\n includeContainer,\n fallbackToFocusable\n );\n return allTabbable[allTabbable.length - 1] || null;\n}\nfunction getLastTabbable(fallbackToFocusable) {\n return getLastTabbableIn(document.body, false, fallbackToFocusable);\n}\nfunction getNextTabbableIn(container, includeContainer, fallbackToFirst, fallbackToFocusable) {\n const activeElement = getActiveElement(container);\n const allFocusable = getAllFocusableIn(container, includeContainer);\n const activeIndex = allFocusable.indexOf(activeElement);\n const nextFocusableElements = allFocusable.slice(activeIndex + 1);\n return nextFocusableElements.find(isTabbable) || (fallbackToFirst ? allFocusable.find(isTabbable) : null) || (fallbackToFocusable ? nextFocusableElements[0] : null) || null;\n}\nfunction getNextTabbable(fallbackToFirst, fallbackToFocusable) {\n return getNextTabbableIn(\n document.body,\n false,\n fallbackToFirst,\n fallbackToFocusable\n );\n}\nfunction getPreviousTabbableIn(container, includeContainer, fallbackToLast, fallbackToFocusable) {\n const activeElement = getActiveElement(container);\n const allFocusable = getAllFocusableIn(container, includeContainer).reverse();\n const activeIndex = allFocusable.indexOf(activeElement);\n const previousFocusableElements = allFocusable.slice(activeIndex + 1);\n return previousFocusableElements.find(isTabbable) || (fallbackToLast ? allFocusable.find(isTabbable) : null) || (fallbackToFocusable ? previousFocusableElements[0] : null) || null;\n}\nfunction getPreviousTabbable(fallbackToFirst, fallbackToFocusable) {\n return getPreviousTabbableIn(\n document.body,\n false,\n fallbackToFirst,\n fallbackToFocusable\n );\n}\nfunction getClosestFocusable(element) {\n while (element && !isFocusable(element)) {\n element = element.closest(selector);\n }\n return element || null;\n}\nfunction hasFocus(element) {\n const activeElement = getActiveElement(element);\n if (!activeElement) return false;\n if (activeElement === element) return true;\n const activeDescendant = activeElement.getAttribute(\"aria-activedescendant\");\n if (!activeDescendant) return false;\n return activeDescendant === element.id;\n}\nfunction hasFocusWithin(element) {\n const activeElement = getActiveElement(element);\n if (!activeElement) return false;\n if (contains(element, activeElement)) return true;\n const activeDescendant = activeElement.getAttribute(\"aria-activedescendant\");\n if (!activeDescendant) return false;\n if (!(\"id\" in element)) return false;\n if (activeDescendant === element.id) return true;\n return !!element.querySelector(`#${CSS.escape(activeDescendant)}`);\n}\nfunction focusIfNeeded(element) {\n if (!hasFocusWithin(element) && isFocusable(element)) {\n element.focus();\n }\n}\nfunction disableFocus(element) {\n var _a;\n const currentTabindex = (_a = element.getAttribute(\"tabindex\")) != null ? _a : \"\";\n element.setAttribute(\"data-tabindex\", currentTabindex);\n element.setAttribute(\"tabindex\", \"-1\");\n}\nfunction disableFocusIn(container, includeContainer) {\n const tabbableElements = getAllTabbableIn(container, includeContainer);\n for (const element of tabbableElements) {\n disableFocus(element);\n }\n}\nfunction restoreFocusIn(container) {\n const elements = container.querySelectorAll(\"[data-tabindex]\");\n const restoreTabIndex = (element) => {\n const tabindex = element.getAttribute(\"data-tabindex\");\n element.removeAttribute(\"data-tabindex\");\n if (tabindex) {\n element.setAttribute(\"tabindex\", tabindex);\n } else {\n element.removeAttribute(\"tabindex\");\n }\n };\n if (container.hasAttribute(\"data-tabindex\")) {\n restoreTabIndex(container);\n }\n for (const element of elements) {\n restoreTabIndex(element);\n }\n}\nfunction focusIntoView(element, options) {\n if (!(\"scrollIntoView\" in element)) {\n element.focus();\n } else {\n element.focus({ preventScroll: true });\n element.scrollIntoView(__spreadValues({ block: \"nearest\", inline: \"nearest\" }, options));\n }\n}\nexport {\n disableFocus,\n disableFocusIn,\n focusIfNeeded,\n focusIntoView,\n getAllFocusable,\n getAllFocusableIn,\n getAllTabbable,\n getAllTabbableIn,\n getClosestFocusable,\n getFirstFocusable,\n getFirstFocusableIn,\n getFirstTabbable,\n getFirstTabbableIn,\n getLastTabbable,\n getLastTabbableIn,\n getNextTabbable,\n getNextTabbableIn,\n getPreviousTabbable,\n getPreviousTabbableIn,\n hasFocus,\n hasFocusWithin,\n isFocusable,\n isTabbable,\n restoreFocusIn\n};\n","\"use client\";\nimport {\n CompositeContextProvider,\n CompositeScopedContextProvider\n} from \"./APGXEJ2Q.js\";\nimport {\n PopoverContextProvider,\n PopoverScopedContextProvider\n} from \"./COWZSPJ7.js\";\nimport {\n createStoreContext\n} from \"./7FZLUSKW.js\";\n\n// src/combobox/combobox-context.tsx\nimport { createContext } from \"react\";\nvar ComboboxListRoleContext = createContext(\n void 0\n);\nvar ctx = createStoreContext(\n [PopoverContextProvider, CompositeContextProvider],\n [PopoverScopedContextProvider, CompositeScopedContextProvider]\n);\nvar useComboboxContext = ctx.useContext;\nvar useComboboxScopedContext = ctx.useScopedContext;\nvar useComboboxProviderContext = ctx.useProviderContext;\nvar ComboboxContextProvider = ctx.ContextProvider;\nvar ComboboxScopedContextProvider = ctx.ScopedContextProvider;\nvar ComboboxItemValueContext = createContext(\n void 0\n);\nvar ComboboxItemCheckedContext = createContext(false);\n\nexport {\n ComboboxListRoleContext,\n useComboboxContext,\n useComboboxScopedContext,\n useComboboxProviderContext,\n ComboboxContextProvider,\n ComboboxScopedContextProvider,\n ComboboxItemValueContext,\n ComboboxItemCheckedContext\n};\n","\"use client\";\nimport {\n CompositeContextProvider,\n CompositeScopedContextProvider\n} from \"./APGXEJ2Q.js\";\nimport {\n createStoreContext\n} from \"./7FZLUSKW.js\";\n\n// src/tag/tag-context.tsx\nimport { createContext } from \"react\";\nvar TagValueContext = createContext(null);\nvar TagRemoveIdContext = createContext(\n null\n);\nvar ctx = createStoreContext(\n [CompositeContextProvider],\n [CompositeScopedContextProvider]\n);\nvar useTagContext = ctx.useContext;\nvar useTagScopedContext = ctx.useScopedContext;\nvar useTagProviderContext = ctx.useProviderContext;\nvar TagContextProvider = ctx.ContextProvider;\nvar TagScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n TagValueContext,\n TagRemoveIdContext,\n useTagContext,\n useTagScopedContext,\n useTagProviderContext,\n TagContextProvider,\n TagScopedContextProvider\n};\n","\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\n\nexport {\n __spreadValues,\n __spreadProps,\n __objRest\n};\n","\"use client\";\n\n// src/composite/utils.ts\nimport { getDocument, isTextField } from \"@ariakit/core/utils/dom\";\nvar NULL_ITEM = { id: null };\nfunction flipItems(items, activeId, shouldInsertNullItem = false) {\n const index = items.findIndex((item) => item.id === activeId);\n return [\n ...items.slice(index + 1),\n ...shouldInsertNullItem ? [NULL_ITEM] : [],\n ...items.slice(0, index)\n ];\n}\nfunction findFirstEnabledItem(items, excludeId) {\n return items.find((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getEnabledItem(store, id) {\n if (!id) return null;\n return store.item(id) || null;\n}\nfunction groupItemsByRows(items) {\n const rows = [];\n for (const item of items) {\n const row = rows.find((currentRow) => {\n var _a;\n return ((_a = currentRow[0]) == null ? void 0 : _a.rowId) === item.rowId;\n });\n if (row) {\n row.push(item);\n } else {\n rows.push([item]);\n }\n }\n return rows;\n}\nfunction selectTextField(element, collapseToEnd = false) {\n if (isTextField(element)) {\n element.setSelectionRange(\n collapseToEnd ? element.value.length : 0,\n element.value.length\n );\n } else if (element.isContentEditable) {\n const selection = getDocument(element).getSelection();\n selection == null ? void 0 : selection.selectAllChildren(element);\n if (collapseToEnd) {\n selection == null ? void 0 : selection.collapseToEnd();\n }\n }\n}\nvar FOCUS_SILENTLY = Symbol(\"FOCUS_SILENTLY\");\nfunction focusSilently(element) {\n element[FOCUS_SILENTLY] = true;\n element.focus({ preventScroll: true });\n}\nfunction silentlyFocused(element) {\n const isSilentlyFocused = element[FOCUS_SILENTLY];\n delete element[FOCUS_SILENTLY];\n return isSilentlyFocused;\n}\nfunction isItem(store, element, exclude) {\n if (!element) return false;\n if (element === exclude) return false;\n const item = store.item(element.id);\n if (!item) return false;\n if (exclude && item.element === exclude) return false;\n return true;\n}\n\nexport {\n flipItems,\n findFirstEnabledItem,\n getEnabledItem,\n groupItemsByRows,\n selectTextField,\n focusSilently,\n silentlyFocused,\n isItem\n};\n","\"use client\";\nimport {\n useMergeRefs\n} from \"./HNHAUIIY.js\";\nimport {\n getRefProperty,\n mergeProps\n} from \"./SK3NAZA3.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/system.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction forwardRef2(render) {\n const Role = React.forwardRef((props, ref) => render(__spreadProps(__spreadValues({}, props), { ref })));\n Role.displayName = render.displayName || render.name;\n return Role;\n}\nfunction memo2(Component, propsAreEqual) {\n return React.memo(Component, propsAreEqual);\n}\nfunction createElement(Type, props) {\n const _a = props, { wrapElement, render } = _a, rest = __objRest(_a, [\"wrapElement\", \"render\"]);\n const mergedRef = useMergeRefs(props.ref, getRefProperty(render));\n let element;\n if (React.isValidElement(render)) {\n const renderProps = __spreadProps(__spreadValues({}, render.props), { ref: mergedRef });\n element = React.cloneElement(render, mergeProps(rest, renderProps));\n } else if (render) {\n element = render(rest);\n } else {\n element = /* @__PURE__ */ jsx(Type, __spreadValues({}, rest));\n }\n if (wrapElement) {\n return wrapElement(element);\n }\n return element;\n}\nfunction createHook(useProps) {\n const useRole = (props = {}) => {\n return useProps(props);\n };\n useRole.displayName = useProps.name;\n return useRole;\n}\nfunction createStoreContext(providers = [], scopedProviders = []) {\n const context = React.createContext(void 0);\n const scopedContext = React.createContext(void 0);\n const useContext2 = () => React.useContext(context);\n const useScopedContext = (onlyScoped = false) => {\n const scoped = React.useContext(scopedContext);\n const store = useContext2();\n if (onlyScoped) return scoped;\n return scoped || store;\n };\n const useProviderContext = () => {\n const scoped = React.useContext(scopedContext);\n const store = useContext2();\n if (scoped && scoped === store) return;\n return store;\n };\n const ContextProvider = (props) => {\n return providers.reduceRight(\n (children, Provider) => /* @__PURE__ */ jsx(Provider, __spreadProps(__spreadValues({}, props), { children })),\n /* @__PURE__ */ jsx(context.Provider, __spreadValues({}, props))\n );\n };\n const ScopedContextProvider = (props) => {\n return /* @__PURE__ */ jsx(ContextProvider, __spreadProps(__spreadValues({}, props), { children: scopedProviders.reduceRight(\n (children, Provider) => /* @__PURE__ */ jsx(Provider, __spreadProps(__spreadValues({}, props), { children })),\n /* @__PURE__ */ jsx(scopedContext.Provider, __spreadValues({}, props))\n ) }));\n };\n return {\n context,\n scopedContext,\n useContext: useContext2,\n useScopedContext,\n useProviderContext,\n ContextProvider,\n ScopedContextProvider\n };\n}\n\nexport {\n forwardRef2 as forwardRef,\n memo2 as memo,\n createElement,\n createHook,\n createStoreContext\n};\n","\"use client\";\nimport {\n CollectionContextProvider,\n CollectionScopedContextProvider\n} from \"./G4PVPWEW.js\";\nimport {\n createStoreContext\n} from \"./7FZLUSKW.js\";\n\n// src/composite/composite-context.tsx\nimport { createContext } from \"react\";\nvar ctx = createStoreContext(\n [CollectionContextProvider],\n [CollectionScopedContextProvider]\n);\nvar useCompositeContext = ctx.useContext;\nvar useCompositeScopedContext = ctx.useScopedContext;\nvar useCompositeProviderContext = ctx.useProviderContext;\nvar CompositeContextProvider = ctx.ContextProvider;\nvar CompositeScopedContextProvider = ctx.ScopedContextProvider;\nvar CompositeItemContext = createContext(\n void 0\n);\nvar CompositeRowContext = createContext(\n void 0\n);\n\nexport {\n useCompositeContext,\n useCompositeScopedContext,\n useCompositeProviderContext,\n CompositeContextProvider,\n CompositeScopedContextProvider,\n CompositeItemContext,\n CompositeRowContext\n};\n","\"use client\";\nimport {\n useDisclosureStoreProps\n} from \"./C76P7QQC.js\";\nimport {\n useStore\n} from \"./CTKPPFRS.js\";\n\n// src/dialog/dialog-store.ts\nimport * as Core from \"@ariakit/core/dialog/dialog-store\";\nfunction useDialogStoreProps(store, update, props) {\n return useDisclosureStoreProps(store, update, props);\n}\nfunction useDialogStore(props = {}) {\n const [store, update] = useStore(Core.createDialogStore, props);\n return useDialogStoreProps(store, update, props);\n}\n\nexport {\n useDialogStoreProps,\n useDialogStore\n};\n","\"use client\";\nimport {\n useStore,\n useStoreProps\n} from \"./CTKPPFRS.js\";\nimport {\n useUpdateEffect\n} from \"./HNHAUIIY.js\";\n\n// src/disclosure/disclosure-store.ts\nimport * as Core from \"@ariakit/core/disclosure/disclosure-store\";\nfunction useDisclosureStoreProps(store, update, props) {\n useUpdateEffect(update, [props.store, props.disclosure]);\n useStoreProps(store, props, \"open\", \"setOpen\");\n useStoreProps(store, props, \"mounted\", \"setMounted\");\n useStoreProps(store, props, \"animated\");\n return Object.assign(store, { disclosure: props.disclosure });\n}\nfunction useDisclosureStore(props = {}) {\n const [store, update] = useStore(Core.createDisclosureStore, props);\n return useDisclosureStoreProps(store, update, props);\n}\n\nexport {\n useDisclosureStoreProps,\n useDisclosureStore\n};\n","\"use client\";\nimport {\n DisclosureContextProvider,\n DisclosureScopedContextProvider\n} from \"./JDEWEW7S.js\";\nimport {\n createStoreContext\n} from \"./7FZLUSKW.js\";\n\n// src/dialog/dialog-context.tsx\nimport { createContext } from \"react\";\nvar ctx = createStoreContext(\n [DisclosureContextProvider],\n [DisclosureScopedContextProvider]\n);\nvar useDialogContext = ctx.useContext;\nvar useDialogScopedContext = ctx.useScopedContext;\nvar useDialogProviderContext = ctx.useProviderContext;\nvar DialogContextProvider = ctx.ContextProvider;\nvar DialogScopedContextProvider = ctx.ScopedContextProvider;\nvar DialogHeadingContext = createContext(void 0);\nvar DialogDescriptionContext = createContext(void 0);\n\nexport {\n useDialogContext,\n useDialogScopedContext,\n useDialogProviderContext,\n DialogContextProvider,\n DialogScopedContextProvider,\n DialogHeadingContext,\n DialogDescriptionContext\n};\n","\"use client\";\nimport {\n useDialogStoreProps\n} from \"./B5WJDZ55.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./CTKPPFRS.js\";\nimport {\n useUpdateEffect\n} from \"./HNHAUIIY.js\";\n\n// src/popover/popover-store.ts\nimport * as Core from \"@ariakit/core/popover/popover-store\";\nfunction usePopoverStoreProps(store, update, props) {\n useUpdateEffect(update, [props.popover]);\n useStoreProps(store, props, \"placement\");\n return useDialogStoreProps(store, update, props);\n}\nfunction usePopoverStore(props = {}) {\n const [store, update] = useStore(Core.createPopoverStore, props);\n return usePopoverStoreProps(store, update, props);\n}\n\nexport {\n usePopoverStoreProps,\n usePopoverStore\n};\n","\"use client\";\nimport {\n DialogContextProvider,\n DialogScopedContextProvider\n} from \"./CMXOY7UW.js\";\nimport {\n createStoreContext\n} from \"./7FZLUSKW.js\";\n\n// src/popover/popover-context.tsx\nvar ctx = createStoreContext(\n [DialogContextProvider],\n [DialogScopedContextProvider]\n);\nvar usePopoverContext = ctx.useContext;\nvar usePopoverScopedContext = ctx.useScopedContext;\nvar usePopoverProviderContext = ctx.useProviderContext;\nvar PopoverContextProvider = ctx.ContextProvider;\nvar PopoverScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n usePopoverContext,\n usePopoverScopedContext,\n usePopoverProviderContext,\n PopoverContextProvider,\n PopoverScopedContextProvider\n};\n","\"use client\";\nimport {\n useEvent,\n useLiveRef,\n useSafeLayoutEffect\n} from \"./HNHAUIIY.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/store.tsx\nimport { hasOwnProperty, identity } from \"@ariakit/core/utils/misc\";\nimport { batch, init, subscribe, sync } from \"@ariakit/core/utils/store\";\nimport * as React from \"react\";\nimport useSyncExternalStoreExports from \"use-sync-external-store/shim/index.js\";\nvar { useSyncExternalStore } = useSyncExternalStoreExports;\nvar noopSubscribe = () => () => {\n};\nfunction useStoreState(store, keyOrSelector = identity) {\n const storeSubscribe = React.useCallback(\n (callback) => {\n if (!store) return noopSubscribe();\n return subscribe(store, null, callback);\n },\n [store]\n );\n const getSnapshot = () => {\n const key = typeof keyOrSelector === \"string\" ? keyOrSelector : null;\n const selector = typeof keyOrSelector === \"function\" ? keyOrSelector : null;\n const state = store == null ? void 0 : store.getState();\n if (selector) return selector(state);\n if (!state) return;\n if (!key) return;\n if (!hasOwnProperty(state, key)) return;\n return state[key];\n };\n return useSyncExternalStore(storeSubscribe, getSnapshot, getSnapshot);\n}\nfunction useStoreProps(store, props, key, setKey) {\n const value = hasOwnProperty(props, key) ? props[key] : void 0;\n const setValue = setKey ? props[setKey] : void 0;\n const propsRef = useLiveRef({ value, setValue });\n useSafeLayoutEffect(() => {\n return sync(store, [key], (state, prev) => {\n const { value: value2, setValue: setValue2 } = propsRef.current;\n if (!setValue2) return;\n if (state[key] === prev[key]) return;\n if (state[key] === value2) return;\n setValue2(state[key]);\n });\n }, [store, key]);\n useSafeLayoutEffect(() => {\n if (value === void 0) return;\n store.setState(key, value);\n return batch(store, [key], () => {\n if (value === void 0) return;\n store.setState(key, value);\n });\n });\n}\nfunction useStore(createStore, props) {\n const [store, setStore] = React.useState(() => createStore(props));\n useSafeLayoutEffect(() => init(store), [store]);\n const useState2 = React.useCallback(\n (keyOrSelector) => useStoreState(store, keyOrSelector),\n [store]\n );\n const memoizedStore = React.useMemo(\n () => __spreadProps(__spreadValues({}, store), { useState: useState2 }),\n [store, useState2]\n );\n const updateStore = useEvent(() => {\n setStore((store2) => createStore(__spreadValues(__spreadValues({}, props), store2.getState())));\n });\n return [memoizedStore, updateStore];\n}\n\nexport {\n useStoreState,\n useStoreProps,\n useStore\n};\n","\"use client\";\nimport {\n useTagContext\n} from \"./3TGOYUTQ.js\";\nimport {\n useCompositeStoreProps\n} from \"./OIB4PV4M.js\";\nimport {\n usePopoverStoreProps\n} from \"./CO7ZDQU2.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./CTKPPFRS.js\";\nimport {\n useUpdateEffect\n} from \"./HNHAUIIY.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/combobox/combobox-store.ts\nimport * as Core from \"@ariakit/core/combobox/combobox-store\";\nfunction useComboboxStoreProps(store, update, props) {\n useUpdateEffect(update, [props.tag]);\n useStoreProps(store, props, \"value\", \"setValue\");\n useStoreProps(store, props, \"selectedValue\", \"setSelectedValue\");\n useStoreProps(store, props, \"resetValueOnHide\");\n useStoreProps(store, props, \"resetValueOnSelect\");\n return Object.assign(\n useCompositeStoreProps(\n usePopoverStoreProps(store, update, props),\n update,\n props\n ),\n { tag: props.tag }\n );\n}\nfunction useComboboxStore(props = {}) {\n const tag = useTagContext();\n props = __spreadProps(__spreadValues({}, props), {\n tag: props.tag !== void 0 ? props.tag : tag\n });\n const [store, update] = useStore(Core.createComboboxStore, props);\n return useComboboxStoreProps(store, update, props);\n}\n\nexport {\n useComboboxStoreProps,\n useComboboxStore\n};\n","\"use client\";\nimport {\n createStoreContext\n} from \"./7FZLUSKW.js\";\n\n// src/collection/collection-context.tsx\nvar ctx = createStoreContext();\nvar useCollectionContext = ctx.useContext;\nvar useCollectionScopedContext = ctx.useScopedContext;\nvar useCollectionProviderContext = ctx.useProviderContext;\nvar CollectionContextProvider = ctx.ContextProvider;\nvar CollectionScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n useCollectionContext,\n useCollectionScopedContext,\n useCollectionProviderContext,\n CollectionContextProvider,\n CollectionScopedContextProvider\n};\n","\"use client\";\nimport {\n setRef\n} from \"./SK3NAZA3.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/hooks.ts\nimport { canUseDOM } from \"@ariakit/core/utils/dom\";\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useReducer,\n useRef,\n useState\n} from \"react\";\nimport * as React from \"react\";\nvar _React = __spreadValues({}, React);\nvar useReactId = _React.useId;\nvar useReactDeferredValue = _React.useDeferredValue;\nvar useReactInsertionEffect = _React.useInsertionEffect;\nvar useSafeLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\nfunction useInitialValue(value) {\n const [initialValue] = useState(value);\n return initialValue;\n}\nfunction useLazyValue(init) {\n const ref = useRef();\n if (ref.current === void 0) {\n ref.current = init();\n }\n return ref.current;\n}\nfunction useLiveRef(value) {\n const ref = useRef(value);\n useSafeLayoutEffect(() => {\n ref.current = value;\n });\n return ref;\n}\nfunction usePreviousValue(value) {\n const [previousValue, setPreviousValue] = useState(value);\n if (value !== previousValue) {\n setPreviousValue(value);\n }\n return previousValue;\n}\nfunction useEvent(callback) {\n const ref = useRef(() => {\n throw new Error(\"Cannot call an event handler while rendering.\");\n });\n if (useReactInsertionEffect) {\n useReactInsertionEffect(() => {\n ref.current = callback;\n });\n } else {\n ref.current = callback;\n }\n return useCallback((...args) => {\n var _a;\n return (_a = ref.current) == null ? void 0 : _a.call(ref, ...args);\n }, []);\n}\nfunction useTransactionState(callback) {\n const [state, setState] = useState(null);\n useSafeLayoutEffect(() => {\n if (state == null) return;\n if (!callback) return;\n let prevState = null;\n callback((prev) => {\n prevState = prev;\n return state;\n });\n return () => {\n callback(prevState);\n };\n }, [state, callback]);\n return [state, setState];\n}\nfunction useMergeRefs(...refs) {\n return useMemo(() => {\n if (!refs.some(Boolean)) return;\n return (value) => {\n for (const ref of refs) {\n setRef(ref, value);\n }\n };\n }, refs);\n}\nfunction useId(defaultId) {\n if (useReactId) {\n const reactId = useReactId();\n if (defaultId) return defaultId;\n return reactId;\n }\n const [id, setId] = useState(defaultId);\n useSafeLayoutEffect(() => {\n if (defaultId || id) return;\n const random = Math.random().toString(36).substr(2, 6);\n setId(`id-${random}`);\n }, [defaultId, id]);\n return defaultId || id;\n}\nfunction useDeferredValue(value) {\n if (useReactDeferredValue) {\n return useReactDeferredValue(value);\n }\n const [deferredValue, setDeferredValue] = useState(value);\n useEffect(() => {\n const raf = requestAnimationFrame(() => setDeferredValue(value));\n return () => cancelAnimationFrame(raf);\n }, [value]);\n return deferredValue;\n}\nfunction useTagName(refOrElement, type) {\n const stringOrUndefined = (type2) => {\n if (typeof type2 !== \"string\") return;\n return type2;\n };\n const [tagName, setTagName] = useState(() => stringOrUndefined(type));\n useSafeLayoutEffect(() => {\n const element = refOrElement && \"current\" in refOrElement ? refOrElement.current : refOrElement;\n setTagName((element == null ? void 0 : element.tagName.toLowerCase()) || stringOrUndefined(type));\n }, [refOrElement, type]);\n return tagName;\n}\nfunction useAttribute(refOrElement, attributeName, defaultValue) {\n const initialValue = useInitialValue(defaultValue);\n const [attribute, setAttribute] = useState(initialValue);\n useEffect(() => {\n const element = refOrElement && \"current\" in refOrElement ? refOrElement.current : refOrElement;\n if (!element) return;\n const callback = () => {\n const value = element.getAttribute(attributeName);\n setAttribute(value == null ? initialValue : value);\n };\n const observer = new MutationObserver(callback);\n observer.observe(element, { attributeFilter: [attributeName] });\n callback();\n return () => observer.disconnect();\n }, [refOrElement, attributeName, initialValue]);\n return attribute;\n}\nfunction useUpdateEffect(effect, deps) {\n const mounted = useRef(false);\n useEffect(() => {\n if (mounted.current) {\n return effect();\n }\n mounted.current = true;\n }, deps);\n useEffect(\n () => () => {\n mounted.current = false;\n },\n []\n );\n}\nfunction useUpdateLayoutEffect(effect, deps) {\n const mounted = useRef(false);\n useSafeLayoutEffect(() => {\n if (mounted.current) {\n return effect();\n }\n mounted.current = true;\n }, deps);\n useSafeLayoutEffect(\n () => () => {\n mounted.current = false;\n },\n []\n );\n}\nfunction useForceUpdate() {\n return useReducer(() => [], []);\n}\nfunction useBooleanEvent(booleanOrCallback) {\n return useEvent(\n typeof booleanOrCallback === \"function\" ? booleanOrCallback : () => booleanOrCallback\n );\n}\nfunction useWrapElement(props, callback, deps = []) {\n const wrapElement = useCallback(\n (element) => {\n if (props.wrapElement) {\n element = props.wrapElement(element);\n }\n return callback(element);\n },\n [...deps, props.wrapElement]\n );\n return __spreadProps(__spreadValues({}, props), { wrapElement });\n}\nfunction usePortalRef(portalProp = false, portalRefProp) {\n const [portalNode, setPortalNode] = useState(null);\n const portalRef = useMergeRefs(setPortalNode, portalRefProp);\n const domReady = !portalProp || portalNode;\n return { portalRef, portalNode, domReady };\n}\nfunction useMetadataProps(props, key, value) {\n const parent = props.onLoadedMetadataCapture;\n const onLoadedMetadataCapture = useMemo(() => {\n return Object.assign(() => {\n }, __spreadProps(__spreadValues({}, parent), { [key]: value }));\n }, [parent, key, value]);\n return [parent == null ? void 0 : parent[key], { onLoadedMetadataCapture }];\n}\nfunction useIsMouseMoving() {\n useEffect(() => {\n addGlobalEventListener(\"mousemove\", setMouseMoving, true);\n addGlobalEventListener(\"mousedown\", resetMouseMoving, true);\n addGlobalEventListener(\"mouseup\", resetMouseMoving, true);\n addGlobalEventListener(\"keydown\", resetMouseMoving, true);\n addGlobalEventListener(\"scroll\", resetMouseMoving, true);\n }, []);\n const isMouseMoving = useEvent(() => mouseMoving);\n return isMouseMoving;\n}\nvar mouseMoving = false;\nvar previousScreenX = 0;\nvar previousScreenY = 0;\nfunction hasMouseMovement(event) {\n const movementX = event.movementX || event.screenX - previousScreenX;\n const movementY = event.movementY || event.screenY - previousScreenY;\n previousScreenX = event.screenX;\n previousScreenY = event.screenY;\n return movementX || movementY || process.env.NODE_ENV === \"test\";\n}\nfunction setMouseMoving(event) {\n if (!hasMouseMovement(event)) return;\n mouseMoving = true;\n}\nfunction resetMouseMoving() {\n mouseMoving = false;\n}\n\nexport {\n useSafeLayoutEffect,\n useInitialValue,\n useLazyValue,\n useLiveRef,\n usePreviousValue,\n useEvent,\n useTransactionState,\n useMergeRefs,\n useId,\n useDeferredValue,\n useTagName,\n useAttribute,\n useUpdateEffect,\n useUpdateLayoutEffect,\n useForceUpdate,\n useBooleanEvent,\n useWrapElement,\n usePortalRef,\n useMetadataProps,\n useIsMouseMoving\n};\n","\"use client\";\nimport {\n findFirstEnabledItem,\n getEnabledItem,\n groupItemsByRows,\n isItem,\n silentlyFocused\n} from \"./5VQZOHHZ.js\";\nimport {\n CompositeContextProvider,\n useCompositeProviderContext\n} from \"./APGXEJ2Q.js\";\nimport {\n useFocusable\n} from \"./Z4WWVOIF.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./7FZLUSKW.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useMergeRefs,\n useSafeLayoutEffect,\n useTransactionState,\n useWrapElement\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite.tsx\nimport { flatten2DArray, reverseArray } from \"@ariakit/core/utils/array\";\nimport { getActiveElement, isTextField } from \"@ariakit/core/utils/dom\";\nimport {\n fireBlurEvent,\n fireKeyboardEvent,\n isSelfTarget\n} from \"@ariakit/core/utils/events\";\nimport { focusIntoView, hasFocus } from \"@ariakit/core/utils/focus\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction isGrid(items) {\n return items.some((item) => !!item.rowId);\n}\nfunction isPrintableKey(event) {\n const target = event.target;\n if (target && !isTextField(target)) return false;\n return event.key.length === 1 && !event.ctrlKey && !event.metaKey;\n}\nfunction isModifierKey(event) {\n return event.key === \"Shift\" || event.key === \"Control\" || event.key === \"Alt\" || event.key === \"Meta\";\n}\nfunction useKeyboardEventProxy(store, onKeyboardEvent, previousElementRef) {\n return useEvent((event) => {\n var _a;\n onKeyboardEvent == null ? void 0 : onKeyboardEvent(event);\n if (event.defaultPrevented) return;\n if (event.isPropagationStopped()) return;\n if (!isSelfTarget(event)) return;\n if (isModifierKey(event)) return;\n if (isPrintableKey(event)) return;\n const state = store.getState();\n const activeElement = (_a = getEnabledItem(store, state.activeId)) == null ? void 0 : _a.element;\n if (!activeElement) return;\n const _b = event, { view } = _b, eventInit = __objRest(_b, [\"view\"]);\n const previousElement = previousElementRef == null ? void 0 : previousElementRef.current;\n if (activeElement !== previousElement) {\n activeElement.focus();\n }\n if (!fireKeyboardEvent(activeElement, event.type, eventInit)) {\n event.preventDefault();\n }\n if (event.currentTarget.contains(activeElement)) {\n event.stopPropagation();\n }\n });\n}\nfunction findFirstEnabledItemInTheLastRow(items) {\n return findFirstEnabledItem(\n flatten2DArray(reverseArray(groupItemsByRows(items)))\n );\n}\nfunction useScheduleFocus(store) {\n const [scheduled, setScheduled] = useState(false);\n const schedule = useCallback(() => setScheduled(true), []);\n const activeItem = store.useState(\n (state) => getEnabledItem(store, state.activeId)\n );\n useEffect(() => {\n const activeElement = activeItem == null ? void 0 : activeItem.element;\n if (!scheduled) return;\n if (!activeElement) return;\n setScheduled(false);\n activeElement.focus({ preventScroll: true });\n }, [activeItem, scheduled]);\n return schedule;\n}\nvar useComposite = createHook(\n function useComposite2(_a) {\n var _b = _a, {\n store,\n composite = true,\n focusOnMove = composite,\n moveOnKeyPress = true\n } = _b, props = __objRest(_b, [\n \"store\",\n \"composite\",\n \"focusOnMove\",\n \"moveOnKeyPress\"\n ]);\n const context = useCompositeProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Composite must receive a `store` prop or be wrapped in a CompositeProvider component.\"\n );\n const ref = useRef(null);\n const previousElementRef = useRef(null);\n const scheduleFocus = useScheduleFocus(store);\n const moves = store.useState(\"moves\");\n const [, setBaseElement] = useTransactionState(\n composite ? store.setBaseElement : null\n );\n useEffect(() => {\n var _a2;\n if (!store) return;\n if (!moves) return;\n if (!composite) return;\n if (!focusOnMove) return;\n const { activeId: activeId2 } = store.getState();\n const itemElement = (_a2 = getEnabledItem(store, activeId2)) == null ? void 0 : _a2.element;\n if (!itemElement) return;\n focusIntoView(itemElement);\n }, [store, moves, composite, focusOnMove]);\n useSafeLayoutEffect(() => {\n if (!store) return;\n if (!moves) return;\n if (!composite) return;\n const { baseElement, activeId: activeId2 } = store.getState();\n const isSelfAcive = activeId2 === null;\n if (!isSelfAcive) return;\n if (!baseElement) return;\n const previousElement = previousElementRef.current;\n previousElementRef.current = null;\n if (previousElement) {\n fireBlurEvent(previousElement, { relatedTarget: baseElement });\n }\n if (!hasFocus(baseElement)) {\n baseElement.focus();\n }\n }, [store, moves, composite]);\n const activeId = store.useState(\"activeId\");\n const virtualFocus = store.useState(\"virtualFocus\");\n useSafeLayoutEffect(() => {\n var _a2;\n if (!store) return;\n if (!composite) return;\n if (!virtualFocus) return;\n const previousElement = previousElementRef.current;\n previousElementRef.current = null;\n if (!previousElement) return;\n const activeElement = (_a2 = getEnabledItem(store, activeId)) == null ? void 0 : _a2.element;\n const relatedTarget = activeElement || getActiveElement(previousElement);\n if (relatedTarget === previousElement) return;\n fireBlurEvent(previousElement, { relatedTarget });\n }, [store, activeId, virtualFocus, composite]);\n const onKeyDownCapture = useKeyboardEventProxy(\n store,\n props.onKeyDownCapture,\n previousElementRef\n );\n const onKeyUpCapture = useKeyboardEventProxy(\n store,\n props.onKeyUpCapture,\n previousElementRef\n );\n const onFocusCaptureProp = props.onFocusCapture;\n const onFocusCapture = useEvent((event) => {\n onFocusCaptureProp == null ? void 0 : onFocusCaptureProp(event);\n if (event.defaultPrevented) return;\n if (!store) return;\n const { virtualFocus: virtualFocus2 } = store.getState();\n if (!virtualFocus2) return;\n const previousActiveElement = event.relatedTarget;\n const isSilentlyFocused = silentlyFocused(event.currentTarget);\n if (isSelfTarget(event) && isSilentlyFocused) {\n event.stopPropagation();\n previousElementRef.current = previousActiveElement;\n }\n });\n const onFocusProp = props.onFocus;\n const onFocus = useEvent((event) => {\n onFocusProp == null ? void 0 : onFocusProp(event);\n if (event.defaultPrevented) return;\n if (!composite) return;\n if (!store) return;\n const { relatedTarget } = event;\n const { virtualFocus: virtualFocus2 } = store.getState();\n if (virtualFocus2) {\n if (isSelfTarget(event) && !isItem(store, relatedTarget)) {\n queueMicrotask(scheduleFocus);\n }\n } else if (isSelfTarget(event)) {\n store.setActiveId(null);\n }\n });\n const onBlurCaptureProp = props.onBlurCapture;\n const onBlurCapture = useEvent((event) => {\n var _a2;\n onBlurCaptureProp == null ? void 0 : onBlurCaptureProp(event);\n if (event.defaultPrevented) return;\n if (!store) return;\n const { virtualFocus: virtualFocus2, activeId: activeId2 } = store.getState();\n if (!virtualFocus2) return;\n const activeElement = (_a2 = getEnabledItem(store, activeId2)) == null ? void 0 : _a2.element;\n const nextActiveElement = event.relatedTarget;\n const nextActiveElementIsItem = isItem(store, nextActiveElement);\n const previousElement = previousElementRef.current;\n previousElementRef.current = null;\n if (isSelfTarget(event) && nextActiveElementIsItem) {\n if (nextActiveElement === activeElement) {\n if (previousElement && previousElement !== nextActiveElement) {\n fireBlurEvent(previousElement, event);\n }\n } else if (activeElement) {\n fireBlurEvent(activeElement, event);\n } else if (previousElement) {\n fireBlurEvent(previousElement, event);\n }\n event.stopPropagation();\n } else {\n const targetIsItem = isItem(store, event.target);\n if (!targetIsItem && activeElement) {\n fireBlurEvent(activeElement, event);\n }\n }\n });\n const onKeyDownProp = props.onKeyDown;\n const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);\n const onKeyDown = useEvent((event) => {\n var _a2;\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (event.defaultPrevented) return;\n if (!store) return;\n if (!isSelfTarget(event)) return;\n const { orientation, items, renderedItems, activeId: activeId2 } = store.getState();\n const activeItem = getEnabledItem(store, activeId2);\n if ((_a2 = activeItem == null ? void 0 : activeItem.element) == null ? void 0 : _a2.isConnected) return;\n const isVertical = orientation !== \"horizontal\";\n const isHorizontal = orientation !== \"vertical\";\n const grid = isGrid(renderedItems);\n const isHorizontalKey = event.key === \"ArrowLeft\" || event.key === \"ArrowRight\" || event.key === \"Home\" || event.key === \"End\";\n if (isHorizontalKey && isTextField(event.currentTarget)) return;\n const up = () => {\n if (grid) {\n const item = items && findFirstEnabledItemInTheLastRow(items);\n return item == null ? void 0 : item.id;\n }\n return store == null ? void 0 : store.last();\n };\n const keyMap = {\n ArrowUp: (grid || isVertical) && up,\n ArrowRight: (grid || isHorizontal) && store.first,\n ArrowDown: (grid || isVertical) && store.first,\n ArrowLeft: (grid || isHorizontal) && store.last,\n Home: store.first,\n End: store.last,\n PageUp: store.first,\n PageDown: store.last\n };\n const action = keyMap[event.key];\n if (action) {\n const id = action();\n if (id !== void 0) {\n if (!moveOnKeyPressProp(event)) return;\n event.preventDefault();\n store.move(id);\n }\n }\n });\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(CompositeContextProvider, { value: store, children: element }),\n [store]\n );\n const activeDescendant = store.useState((state) => {\n var _a2;\n if (!store) return;\n if (!composite) return;\n if (!state.virtualFocus) return;\n return (_a2 = getEnabledItem(store, state.activeId)) == null ? void 0 : _a2.id;\n });\n props = __spreadProps(__spreadValues({\n \"aria-activedescendant\": activeDescendant\n }, props), {\n ref: useMergeRefs(ref, setBaseElement, props.ref),\n onKeyDownCapture,\n onKeyUpCapture,\n onFocusCapture,\n onFocus,\n onBlurCapture,\n onKeyDown\n });\n const focusable = store.useState(\n (state) => composite && (state.virtualFocus || state.activeId === null)\n );\n props = useFocusable(__spreadValues({ focusable }, props));\n return props;\n }\n);\nvar Composite = forwardRef(function Composite2(props) {\n const htmlProps = useComposite(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useComposite,\n Composite\n};\n","\"use client\";\nimport {\n createStoreContext\n} from \"./7FZLUSKW.js\";\n\n// src/disclosure/disclosure-context.tsx\nvar ctx = createStoreContext();\nvar useDisclosureContext = ctx.useContext;\nvar useDisclosureScopedContext = ctx.useScopedContext;\nvar useDisclosureProviderContext = ctx.useProviderContext;\nvar DisclosureContextProvider = ctx.ContextProvider;\nvar DisclosureScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n useDisclosureContext,\n useDisclosureScopedContext,\n useDisclosureProviderContext,\n DisclosureContextProvider,\n DisclosureScopedContextProvider\n};\n","\"use client\";\nimport {\n useCompositeContext\n} from \"./APGXEJ2Q.js\";\nimport {\n createElement,\n createHook,\n forwardRef,\n memo\n} from \"./7FZLUSKW.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useIsMouseMoving,\n useMergeRefs\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite-hover.tsx\nimport { contains } from \"@ariakit/core/utils/dom\";\nimport { hasFocus, hasFocusWithin } from \"@ariakit/core/utils/focus\";\nimport {\n hasOwnProperty,\n invariant,\n removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nimport { useCallback } from \"react\";\nvar TagName = \"div\";\nfunction getMouseDestination(event) {\n const relatedTarget = event.relatedTarget;\n if ((relatedTarget == null ? void 0 : relatedTarget.nodeType) === Node.ELEMENT_NODE) {\n return relatedTarget;\n }\n return null;\n}\nfunction hoveringInside(event) {\n const nextElement = getMouseDestination(event);\n if (!nextElement) return false;\n return contains(event.currentTarget, nextElement);\n}\nvar symbol = Symbol(\"composite-hover\");\nfunction movingToAnotherItem(event) {\n let dest = getMouseDestination(event);\n if (!dest) return false;\n do {\n if (hasOwnProperty(dest, symbol) && dest[symbol]) return true;\n dest = dest.parentElement;\n } while (dest);\n return false;\n}\nvar useCompositeHover = createHook(\n function useCompositeHover2(_a) {\n var _b = _a, {\n store,\n focusOnHover = true,\n blurOnHoverEnd = !!focusOnHover\n } = _b, props = __objRest(_b, [\n \"store\",\n \"focusOnHover\",\n \"blurOnHoverEnd\"\n ]);\n const context = useCompositeContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"CompositeHover must be wrapped in a Composite component.\"\n );\n const isMouseMoving = useIsMouseMoving();\n const onMouseMoveProp = props.onMouseMove;\n const focusOnHoverProp = useBooleanEvent(focusOnHover);\n const onMouseMove = useEvent((event) => {\n onMouseMoveProp == null ? void 0 : onMouseMoveProp(event);\n if (event.defaultPrevented) return;\n if (!isMouseMoving()) return;\n if (!focusOnHoverProp(event)) return;\n if (!hasFocusWithin(event.currentTarget)) {\n const baseElement = store == null ? void 0 : store.getState().baseElement;\n if (baseElement && !hasFocus(baseElement)) {\n baseElement.focus();\n }\n }\n store == null ? void 0 : store.setActiveId(event.currentTarget.id);\n });\n const onMouseLeaveProp = props.onMouseLeave;\n const blurOnHoverEndProp = useBooleanEvent(blurOnHoverEnd);\n const onMouseLeave = useEvent((event) => {\n var _a2;\n onMouseLeaveProp == null ? void 0 : onMouseLeaveProp(event);\n if (event.defaultPrevented) return;\n if (!isMouseMoving()) return;\n if (hoveringInside(event)) return;\n if (movingToAnotherItem(event)) return;\n if (!focusOnHoverProp(event)) return;\n if (!blurOnHoverEndProp(event)) return;\n store == null ? void 0 : store.setActiveId(null);\n (_a2 = store == null ? void 0 : store.getState().baseElement) == null ? void 0 : _a2.focus();\n });\n const ref = useCallback((element) => {\n if (!element) return;\n element[symbol] = true;\n }, []);\n props = __spreadProps(__spreadValues({}, props), {\n ref: useMergeRefs(ref, props.ref),\n onMouseMove,\n onMouseLeave\n });\n return removeUndefinedValues(props);\n }\n);\nvar CompositeHover = memo(\n forwardRef(function CompositeHover2(props) {\n const htmlProps = useCompositeHover(props);\n return createElement(TagName, htmlProps);\n })\n);\n\nexport {\n useCompositeHover,\n CompositeHover\n};\n","\"use client\";\nimport {\n useCollectionItem\n} from \"./SZHY72KI.js\";\nimport {\n useCommand\n} from \"./ZHUQ44XA.js\";\nimport {\n focusSilently,\n getEnabledItem,\n isItem,\n selectTextField\n} from \"./5VQZOHHZ.js\";\nimport {\n CompositeItemContext,\n CompositeRowContext,\n useCompositeContext\n} from \"./APGXEJ2Q.js\";\nimport {\n createElement,\n createHook,\n forwardRef,\n memo\n} from \"./7FZLUSKW.js\";\nimport {\n useStoreState\n} from \"./CTKPPFRS.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useId,\n useMergeRefs,\n useWrapElement\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite-item.tsx\nimport {\n getScrollingElement,\n getTextboxSelection,\n getTextboxValue,\n isButton,\n isTextField,\n isTextbox\n} from \"@ariakit/core/utils/dom\";\nimport { isPortalEvent, isSelfTarget } from \"@ariakit/core/utils/events\";\nimport {\n disabledFromProps,\n removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nimport { isSafari } from \"@ariakit/core/utils/platform\";\nimport { useCallback, useContext, useMemo, useRef } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"button\";\nfunction isEditableElement(element) {\n if (isTextbox(element)) return true;\n return element.tagName === \"INPUT\" && !isButton(element);\n}\nfunction getNextPageOffset(scrollingElement, pageUp = false) {\n const height = scrollingElement.clientHeight;\n const { top } = scrollingElement.getBoundingClientRect();\n const pageSize = Math.max(height * 0.875, height - 40) * 1.5;\n const pageOffset = pageUp ? height - pageSize + top : pageSize + top;\n if (scrollingElement.tagName === \"HTML\") {\n return pageOffset + scrollingElement.scrollTop;\n }\n return pageOffset;\n}\nfunction getItemOffset(itemElement, pageUp = false) {\n const { top } = itemElement.getBoundingClientRect();\n if (pageUp) {\n return top + itemElement.clientHeight;\n }\n return top;\n}\nfunction findNextPageItemId(element, store, next, pageUp = false) {\n var _a;\n if (!store) return;\n if (!next) return;\n const { renderedItems } = store.getState();\n const scrollingElement = getScrollingElement(element);\n if (!scrollingElement) return;\n const nextPageOffset = getNextPageOffset(scrollingElement, pageUp);\n let id;\n let prevDifference;\n for (let i = 0; i < renderedItems.length; i += 1) {\n const previousId = id;\n id = next(i);\n if (!id) break;\n if (id === previousId) continue;\n const itemElement = (_a = getEnabledItem(store, id)) == null ? void 0 : _a.element;\n if (!itemElement) continue;\n const itemOffset = getItemOffset(itemElement, pageUp);\n const difference = itemOffset - nextPageOffset;\n const absDifference = Math.abs(difference);\n if (pageUp && difference <= 0 || !pageUp && difference >= 0) {\n if (prevDifference !== void 0 && prevDifference < absDifference) {\n id = previousId;\n }\n break;\n }\n prevDifference = absDifference;\n }\n return id;\n}\nfunction targetIsAnotherItem(event, store) {\n if (isSelfTarget(event)) return false;\n return isItem(store, event.target);\n}\nvar useCompositeItem = createHook(\n function useCompositeItem2(_a) {\n var _b = _a, {\n store,\n rowId: rowIdProp,\n preventScrollOnKeyDown = false,\n moveOnKeyPress = true,\n tabbable = false,\n getItem: getItemProp,\n \"aria-setsize\": ariaSetSizeProp,\n \"aria-posinset\": ariaPosInSetProp\n } = _b, props = __objRest(_b, [\n \"store\",\n \"rowId\",\n \"preventScrollOnKeyDown\",\n \"moveOnKeyPress\",\n \"tabbable\",\n \"getItem\",\n \"aria-setsize\",\n \"aria-posinset\"\n ]);\n const context = useCompositeContext();\n store = store || context;\n const id = useId(props.id);\n const ref = useRef(null);\n const row = useContext(CompositeRowContext);\n const rowId = useStoreState(store, (state) => {\n if (rowIdProp) return rowIdProp;\n if (!state) return;\n if (!(row == null ? void 0 : row.baseElement)) return;\n if (row.baseElement !== state.baseElement) return;\n return row.id;\n });\n const disabled = disabledFromProps(props);\n const trulyDisabled = disabled && !props.accessibleWhenDisabled;\n const getItem = useCallback(\n (item) => {\n const nextItem = __spreadProps(__spreadValues({}, item), {\n id: id || item.id,\n rowId,\n disabled: !!trulyDisabled\n });\n if (getItemProp) {\n return getItemProp(nextItem);\n }\n return nextItem;\n },\n [id, rowId, trulyDisabled, getItemProp]\n );\n const onFocusProp = props.onFocus;\n const hasFocusedComposite = useRef(false);\n const onFocus = useEvent((event) => {\n onFocusProp == null ? void 0 : onFocusProp(event);\n if (event.defaultPrevented) return;\n if (isPortalEvent(event)) return;\n if (!id) return;\n if (!store) return;\n if (targetIsAnotherItem(event, store)) return;\n const { virtualFocus, baseElement: baseElement2 } = store.getState();\n store.setActiveId(id);\n if (isTextbox(event.currentTarget)) {\n selectTextField(event.currentTarget);\n }\n if (!virtualFocus) return;\n if (!isSelfTarget(event)) return;\n if (isEditableElement(event.currentTarget)) return;\n if (!(baseElement2 == null ? void 0 : baseElement2.isConnected)) return;\n if (isSafari() && event.currentTarget.hasAttribute(\"data-autofocus\")) {\n event.currentTarget.scrollIntoView({\n block: \"nearest\",\n inline: \"nearest\"\n });\n }\n hasFocusedComposite.current = true;\n const fromComposite = event.relatedTarget === baseElement2 || isItem(store, event.relatedTarget);\n if (fromComposite) {\n focusSilently(baseElement2);\n } else {\n baseElement2.focus();\n }\n });\n const onBlurCaptureProp = props.onBlurCapture;\n const onBlurCapture = useEvent((event) => {\n onBlurCaptureProp == null ? void 0 : onBlurCaptureProp(event);\n if (event.defaultPrevented) return;\n const state = store == null ? void 0 : store.getState();\n if ((state == null ? void 0 : state.virtualFocus) && hasFocusedComposite.current) {\n hasFocusedComposite.current = false;\n event.preventDefault();\n event.stopPropagation();\n }\n });\n const onKeyDownProp = props.onKeyDown;\n const preventScrollOnKeyDownProp = useBooleanEvent(preventScrollOnKeyDown);\n const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);\n const onKeyDown = useEvent((event) => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n if (!store) return;\n const { currentTarget } = event;\n const state = store.getState();\n const item = store.item(id);\n const isGrid = !!(item == null ? void 0 : item.rowId);\n const isVertical = state.orientation !== \"horizontal\";\n const isHorizontal = state.orientation !== \"vertical\";\n const canHomeEnd = () => {\n if (isGrid) return true;\n if (isHorizontal) return true;\n if (!state.baseElement) return true;\n if (!isTextField(state.baseElement)) return true;\n return false;\n };\n const keyMap = {\n ArrowUp: (isGrid || isVertical) && store.up,\n ArrowRight: (isGrid || isHorizontal) && store.next,\n ArrowDown: (isGrid || isVertical) && store.down,\n ArrowLeft: (isGrid || isHorizontal) && store.previous,\n Home: () => {\n if (!canHomeEnd()) return;\n if (!isGrid || event.ctrlKey) {\n return store == null ? void 0 : store.first();\n }\n return store == null ? void 0 : store.previous(-1);\n },\n End: () => {\n if (!canHomeEnd()) return;\n if (!isGrid || event.ctrlKey) {\n return store == null ? void 0 : store.last();\n }\n return store == null ? void 0 : store.next(-1);\n },\n PageUp: () => {\n return findNextPageItemId(currentTarget, store, store == null ? void 0 : store.up, true);\n },\n PageDown: () => {\n return findNextPageItemId(currentTarget, store, store == null ? void 0 : store.down);\n }\n };\n const action = keyMap[event.key];\n if (action) {\n if (isTextbox(currentTarget)) {\n const selection = getTextboxSelection(currentTarget);\n const isLeft = isHorizontal && event.key === \"ArrowLeft\";\n const isRight = isHorizontal && event.key === \"ArrowRight\";\n const isUp = isVertical && event.key === \"ArrowUp\";\n const isDown = isVertical && event.key === \"ArrowDown\";\n if (isRight || isDown) {\n const { length: valueLength } = getTextboxValue(currentTarget);\n if (selection.end !== valueLength) return;\n } else if ((isLeft || isUp) && selection.start !== 0) return;\n }\n const nextId = action();\n if (preventScrollOnKeyDownProp(event) || nextId !== void 0) {\n if (!moveOnKeyPressProp(event)) return;\n event.preventDefault();\n store.move(nextId);\n }\n }\n });\n const baseElement = useStoreState(\n store,\n (state) => (state == null ? void 0 : state.baseElement) || void 0\n );\n const providerValue = useMemo(\n () => ({ id, baseElement }),\n [id, baseElement]\n );\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(CompositeItemContext.Provider, { value: providerValue, children: element }),\n [providerValue]\n );\n const isActiveItem = useStoreState(\n store,\n (state) => !!state && state.activeId === id\n );\n const ariaSetSize = useStoreState(store, (state) => {\n if (ariaSetSizeProp != null) return ariaSetSizeProp;\n if (!state) return;\n if (!(row == null ? void 0 : row.ariaSetSize)) return;\n if (row.baseElement !== state.baseElement) return;\n return row.ariaSetSize;\n });\n const ariaPosInSet = useStoreState(store, (state) => {\n if (ariaPosInSetProp != null) return ariaPosInSetProp;\n if (!state) return;\n if (!(row == null ? void 0 : row.ariaPosInSet)) return;\n if (row.baseElement !== state.baseElement) return;\n const itemsInRow = state.renderedItems.filter(\n (item) => item.rowId === rowId\n );\n return row.ariaPosInSet + itemsInRow.findIndex((item) => item.id === id);\n });\n const isTabbable = useStoreState(store, (state) => {\n var _a2;\n if (!(state == null ? void 0 : state.renderedItems.length)) return true;\n if (state.virtualFocus) return false;\n if (tabbable) return true;\n if (state.activeId === null) return false;\n const item = store == null ? void 0 : store.item(state.activeId);\n if (item == null ? void 0 : item.disabled) return true;\n if (!((_a2 = item == null ? void 0 : item.element) == null ? void 0 : _a2.isConnected)) return true;\n return state.activeId === id;\n });\n props = __spreadProps(__spreadValues({\n id,\n \"data-active-item\": isActiveItem || void 0\n }, props), {\n ref: useMergeRefs(ref, props.ref),\n tabIndex: isTabbable ? props.tabIndex : -1,\n onFocus,\n onBlurCapture,\n onKeyDown\n });\n props = useCommand(props);\n props = useCollectionItem(__spreadProps(__spreadValues({\n store\n }, props), {\n getItem,\n shouldRegisterItem: id ? props.shouldRegisterItem : false\n }));\n return removeUndefinedValues(__spreadProps(__spreadValues({}, props), {\n \"aria-setsize\": ariaSetSize,\n \"aria-posinset\": ariaPosInSet\n }));\n }\n);\nvar CompositeItem = memo(\n forwardRef(function CompositeItem2(props) {\n const htmlProps = useCompositeItem(props);\n return createElement(TagName, htmlProps);\n })\n);\n\nexport {\n useCompositeItem,\n CompositeItem\n};\n","\"use client\";\nimport {\n usePopoverProviderContext\n} from \"./COWZSPJ7.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./7FZLUSKW.js\";\nimport {\n useMergeRefs\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/popover/popover-anchor.tsx\nvar TagName = \"div\";\nvar usePopoverAnchor = createHook(\n function usePopoverAnchor2(_a) {\n var _b = _a, { store } = _b, props = __objRest(_b, [\"store\"]);\n const context = usePopoverProviderContext();\n store = store || context;\n props = __spreadProps(__spreadValues({}, props), {\n ref: useMergeRefs(store == null ? void 0 : store.setAnchorElement, props.ref)\n });\n return props;\n }\n);\nvar PopoverAnchor = forwardRef(function PopoverAnchor2(props) {\n const htmlProps = usePopoverAnchor(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n usePopoverAnchor,\n PopoverAnchor\n};\n","\"use client\";\nimport {\n useCollectionStoreProps\n} from \"./QZUWIJQN.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./CTKPPFRS.js\";\n\n// src/composite/composite-store.ts\nimport * as Core from \"@ariakit/core/composite/composite-store\";\nfunction useCompositeStoreProps(store, update, props) {\n store = useCollectionStoreProps(store, update, props);\n useStoreProps(store, props, \"activeId\", \"setActiveId\");\n useStoreProps(store, props, \"includesBaseElement\");\n useStoreProps(store, props, \"virtualFocus\");\n useStoreProps(store, props, \"orientation\");\n useStoreProps(store, props, \"rtl\");\n useStoreProps(store, props, \"focusLoop\");\n useStoreProps(store, props, \"focusWrap\");\n useStoreProps(store, props, \"focusShift\");\n return store;\n}\nfunction useCompositeStore(props = {}) {\n const [store, update] = useStore(Core.createCompositeStore, props);\n return useCompositeStoreProps(store, update, props);\n}\n\nexport {\n useCompositeStoreProps,\n useCompositeStore\n};\n","\"use client\";\nimport {\n useStore,\n useStoreProps\n} from \"./CTKPPFRS.js\";\nimport {\n useUpdateEffect\n} from \"./HNHAUIIY.js\";\n\n// src/collection/collection-store.ts\nimport * as Core from \"@ariakit/core/collection/collection-store\";\nfunction useCollectionStoreProps(store, update, props) {\n useUpdateEffect(update, [props.store]);\n useStoreProps(store, props, \"items\", \"setItems\");\n return store;\n}\nfunction useCollectionStore(props = {}) {\n const [store, update] = useStore(Core.createCollectionStore, props);\n return useCollectionStoreProps(store, update, props);\n}\n\nexport {\n useCollectionStoreProps,\n useCollectionStore\n};\n","\"use client\";\nimport {\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/misc.ts\nimport { hasOwnProperty } from \"@ariakit/core/utils/misc\";\nimport { isValidElement } from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\nfunction isValidElementWithRef(element) {\n if (!element) return false;\n if (!isValidElement(element)) return false;\n if (\"ref\" in element.props) return true;\n if (\"ref\" in element) return true;\n return false;\n}\nfunction getRefProperty(element) {\n if (!isValidElementWithRef(element)) return null;\n const props = __spreadValues({}, element.props);\n return props.ref || element.ref;\n}\nfunction mergeProps(base, overrides) {\n const props = __spreadValues({}, base);\n for (const key in overrides) {\n if (!hasOwnProperty(overrides, key)) continue;\n if (key === \"className\") {\n const prop = \"className\";\n props[prop] = base[prop] ? `${base[prop]} ${overrides[prop]}` : overrides[prop];\n continue;\n }\n if (key === \"style\") {\n const prop = \"style\";\n props[prop] = base[prop] ? __spreadValues(__spreadValues({}, base[prop]), overrides[prop]) : overrides[prop];\n continue;\n }\n const overrideValue = overrides[key];\n if (typeof overrideValue === \"function\" && key.startsWith(\"on\")) {\n const baseValue = base[key];\n if (typeof baseValue === \"function\") {\n props[key] = (...args) => {\n overrideValue(...args);\n baseValue(...args);\n };\n continue;\n }\n }\n props[key] = overrideValue;\n }\n return props;\n}\n\nexport {\n setRef,\n isValidElementWithRef,\n getRefProperty,\n mergeProps\n};\n","\"use client\";\n\n// src/focusable/focusable-context.tsx\nimport { createContext } from \"react\";\nvar FocusableContext = createContext(true);\n\nexport {\n FocusableContext\n};\n","\"use client\";\nimport {\n useCollectionContext\n} from \"./G4PVPWEW.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./7FZLUSKW.js\";\nimport {\n useId,\n useMergeRefs\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/collection/collection-item.tsx\nimport { identity, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nimport { useEffect, useRef } from \"react\";\nvar TagName = \"div\";\nvar useCollectionItem = createHook(\n function useCollectionItem2(_a) {\n var _b = _a, {\n store,\n shouldRegisterItem = true,\n getItem = identity,\n element: element\n } = _b, props = __objRest(_b, [\n \"store\",\n \"shouldRegisterItem\",\n \"getItem\",\n // @ts-expect-error This prop may come from a collection renderer.\n \"element\"\n ]);\n const context = useCollectionContext();\n store = store || context;\n const id = useId(props.id);\n const ref = useRef(element);\n useEffect(() => {\n const element2 = ref.current;\n if (!id) return;\n if (!element2) return;\n if (!shouldRegisterItem) return;\n const item = getItem({ id, element: element2 });\n return store == null ? void 0 : store.renderItem(item);\n }, [id, shouldRegisterItem, getItem, store]);\n props = __spreadProps(__spreadValues({}, props), {\n ref: useMergeRefs(ref, props.ref)\n });\n return removeUndefinedValues(props);\n }\n);\nvar CollectionItem = forwardRef(function CollectionItem2(props) {\n const htmlProps = useCollectionItem(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useCollectionItem,\n CollectionItem\n};\n","\"use client\";\nimport {\n DialogScopedContextProvider\n} from \"./CMXOY7UW.js\";\nimport {\n useDisclosureProviderContext\n} from \"./JDEWEW7S.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./7FZLUSKW.js\";\nimport {\n useStoreState\n} from \"./CTKPPFRS.js\";\nimport {\n useId,\n useMergeRefs,\n useSafeLayoutEffect,\n useWrapElement\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/disclosure/disclosure-content.tsx\nimport { invariant, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nimport { useMemo, useRef, useState } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction afterTimeout(timeoutMs, cb) {\n const timeoutId = setTimeout(cb, timeoutMs);\n return () => clearTimeout(timeoutId);\n}\nfunction afterPaint(cb) {\n let raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(cb);\n });\n return () => cancelAnimationFrame(raf);\n}\nfunction parseCSSTime(...times) {\n return times.join(\", \").split(\", \").reduce((longestTime, currentTimeString) => {\n const multiplier = currentTimeString.endsWith(\"ms\") ? 1 : 1e3;\n const currentTime = Number.parseFloat(currentTimeString || \"0s\") * multiplier;\n if (currentTime > longestTime) return currentTime;\n return longestTime;\n }, 0);\n}\nfunction isHidden(mounted, hidden, alwaysVisible) {\n return !alwaysVisible && hidden !== false && (!mounted || !!hidden);\n}\nvar useDisclosureContent = createHook(function useDisclosureContent2(_a) {\n var _b = _a, { store, alwaysVisible } = _b, props = __objRest(_b, [\"store\", \"alwaysVisible\"]);\n const context = useDisclosureProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"DisclosureContent must receive a `store` prop or be wrapped in a DisclosureProvider component.\"\n );\n const ref = useRef(null);\n const id = useId(props.id);\n const [transition, setTransition] = useState(null);\n const open = store.useState(\"open\");\n const mounted = store.useState(\"mounted\");\n const animated = store.useState(\"animated\");\n const contentElement = store.useState(\"contentElement\");\n const otherElement = useStoreState(store.disclosure, \"contentElement\");\n useSafeLayoutEffect(() => {\n if (!ref.current) return;\n store == null ? void 0 : store.setContentElement(ref.current);\n }, [store]);\n useSafeLayoutEffect(() => {\n let previousAnimated;\n store == null ? void 0 : store.setState(\"animated\", (animated2) => {\n previousAnimated = animated2;\n return true;\n });\n return () => {\n if (previousAnimated === void 0) return;\n store == null ? void 0 : store.setState(\"animated\", previousAnimated);\n };\n }, [store]);\n useSafeLayoutEffect(() => {\n if (!animated) return;\n if (!(contentElement == null ? void 0 : contentElement.isConnected)) {\n setTransition(null);\n return;\n }\n return afterPaint(() => {\n setTransition(open ? \"enter\" : mounted ? \"leave\" : null);\n });\n }, [animated, contentElement, open, mounted]);\n useSafeLayoutEffect(() => {\n if (!store) return;\n if (!animated) return;\n if (!transition) return;\n if (!contentElement) return;\n const stopAnimation = () => store == null ? void 0 : store.setState(\"animating\", false);\n const stopAnimationSync = () => flushSync(stopAnimation);\n if (transition === \"leave\" && open) return;\n if (transition === \"enter\" && !open) return;\n if (typeof animated === \"number\") {\n const timeout2 = animated;\n return afterTimeout(timeout2, stopAnimationSync);\n }\n const {\n transitionDuration,\n animationDuration,\n transitionDelay,\n animationDelay\n } = getComputedStyle(contentElement);\n const {\n transitionDuration: transitionDuration2 = \"0\",\n animationDuration: animationDuration2 = \"0\",\n transitionDelay: transitionDelay2 = \"0\",\n animationDelay: animationDelay2 = \"0\"\n } = otherElement ? getComputedStyle(otherElement) : {};\n const delay = parseCSSTime(\n transitionDelay,\n animationDelay,\n transitionDelay2,\n animationDelay2\n );\n const duration = parseCSSTime(\n transitionDuration,\n animationDuration,\n transitionDuration2,\n animationDuration2\n );\n const timeout = delay + duration;\n if (!timeout) {\n if (transition === \"enter\") {\n store.setState(\"animated\", false);\n }\n stopAnimation();\n return;\n }\n const frameRate = 1e3 / 60;\n const maxTimeout = Math.max(timeout - frameRate, 0);\n return afterTimeout(maxTimeout, stopAnimationSync);\n }, [store, animated, contentElement, otherElement, open, transition]);\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(DialogScopedContextProvider, { value: store, children: element }),\n [store]\n );\n const hidden = isHidden(mounted, props.hidden, alwaysVisible);\n const styleProp = props.style;\n const style = useMemo(() => {\n if (hidden) {\n return __spreadProps(__spreadValues({}, styleProp), { display: \"none\" });\n }\n return styleProp;\n }, [hidden, styleProp]);\n props = __spreadProps(__spreadValues({\n id,\n \"data-open\": open || void 0,\n \"data-enter\": transition === \"enter\" || void 0,\n \"data-leave\": transition === \"leave\" || void 0,\n hidden\n }, props), {\n ref: useMergeRefs(id ? store.setContentElement : null, ref, props.ref),\n style\n });\n return removeUndefinedValues(props);\n});\nvar DisclosureContentImpl = forwardRef(function DisclosureContentImpl2(props) {\n const htmlProps = useDisclosureContent(props);\n return createElement(TagName, htmlProps);\n});\nvar DisclosureContent = forwardRef(function DisclosureContent2(_a) {\n var _b = _a, {\n unmountOnHide\n } = _b, props = __objRest(_b, [\n \"unmountOnHide\"\n ]);\n const context = useDisclosureProviderContext();\n const store = props.store || context;\n const mounted = useStoreState(\n store,\n (state) => !unmountOnHide || (state == null ? void 0 : state.mounted)\n );\n if (mounted === false) return null;\n return /* @__PURE__ */ jsx(DisclosureContentImpl, __spreadValues({}, props));\n});\n\nexport {\n isHidden,\n useDisclosureContent,\n DisclosureContent\n};\n","\"use client\";\nimport {\n ComboboxListRoleContext,\n ComboboxScopedContextProvider,\n useComboboxContext,\n useComboboxScopedContext\n} from \"./3LH6HMTR.js\";\nimport {\n isHidden\n} from \"./UYRBEP7M.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./7FZLUSKW.js\";\nimport {\n useAttribute,\n useId,\n useMergeRefs,\n useSafeLayoutEffect,\n useWrapElement\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/combobox/combobox-list.tsx\nimport { invariant, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nimport { useRef, useState } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nvar useComboboxList = createHook(\n function useComboboxList2(_a) {\n var _b = _a, { store, alwaysVisible } = _b, props = __objRest(_b, [\"store\", \"alwaysVisible\"]);\n const scopedContext = useComboboxScopedContext(true);\n const context = useComboboxContext();\n store = store || context;\n const scopedContextSameStore = !!store && store === scopedContext;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"ComboboxList must receive a `store` prop or be wrapped in a ComboboxProvider component.\"\n );\n const ref = useRef(null);\n const id = useId(props.id);\n const mounted = store.useState(\"mounted\");\n const hidden = isHidden(mounted, props.hidden, alwaysVisible);\n const style = hidden ? __spreadProps(__spreadValues({}, props.style), { display: \"none\" }) : props.style;\n const multiSelectable = store.useState(\n (state) => Array.isArray(state.selectedValue)\n );\n const role = useAttribute(ref, \"role\", props.role);\n const isCompositeRole = role === \"listbox\" || role === \"tree\" || role === \"grid\";\n const ariaMultiSelectable = isCompositeRole ? multiSelectable || void 0 : void 0;\n const [hasListboxInside, setHasListboxInside] = useState(false);\n const contentElement = store.useState(\"contentElement\");\n useSafeLayoutEffect(() => {\n if (!mounted) return;\n const element = ref.current;\n if (!element) return;\n if (contentElement !== element) return;\n const callback = () => {\n setHasListboxInside(!!element.querySelector(\"[role='listbox']\"));\n };\n const observer = new MutationObserver(callback);\n observer.observe(element, {\n subtree: true,\n childList: true,\n attributeFilter: [\"role\"]\n });\n callback();\n return () => observer.disconnect();\n }, [mounted, contentElement]);\n if (!hasListboxInside) {\n props = __spreadValues({\n role: \"listbox\",\n \"aria-multiselectable\": ariaMultiSelectable\n }, props);\n }\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(ComboboxScopedContextProvider, { value: store, children: /* @__PURE__ */ jsx(ComboboxListRoleContext.Provider, { value: role, children: element }) }),\n [store, role]\n );\n const setContentElement = id && (!scopedContext || !scopedContextSameStore) ? store.setContentElement : null;\n props = __spreadProps(__spreadValues({\n id,\n hidden\n }, props), {\n ref: useMergeRefs(setContentElement, ref, props.ref),\n style\n });\n return removeUndefinedValues(props);\n }\n);\nvar ComboboxList = forwardRef(function ComboboxList2(props) {\n const htmlProps = useComboboxList(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useComboboxList,\n ComboboxList\n};\n","\"use client\";\nimport {\n FocusableContext\n} from \"./SWN3JYXT.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./7FZLUSKW.js\";\nimport {\n useEvent,\n useMergeRefs,\n useTagName\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/focusable/focusable.tsx\nimport { isButton } from \"@ariakit/core/utils/dom\";\nimport {\n addGlobalEventListener,\n isFocusEventOutside,\n isPortalEvent,\n isSelfTarget,\n queueBeforeEvent\n} from \"@ariakit/core/utils/events\";\nimport {\n focusIfNeeded,\n getClosestFocusable,\n hasFocus,\n isFocusable\n} from \"@ariakit/core/utils/focus\";\nimport {\n disabledFromProps,\n removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nimport { isSafari } from \"@ariakit/core/utils/platform\";\nimport { useContext, useEffect, useMemo, useRef, useState } from \"react\";\nvar TagName = \"div\";\nvar isSafariBrowser = isSafari();\nvar alwaysFocusVisibleInputTypes = [\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n \"number\",\n \"date\",\n \"month\",\n \"week\",\n \"time\",\n \"datetime\",\n \"datetime-local\"\n];\nvar safariFocusAncestorSymbol = Symbol(\"safariFocusAncestor\");\nfunction isSafariFocusAncestor(element) {\n if (!element) return false;\n return !!element[safariFocusAncestorSymbol];\n}\nfunction markSafariFocusAncestor(element, value) {\n if (!element) return;\n element[safariFocusAncestorSymbol] = value;\n}\nfunction isAlwaysFocusVisible(element) {\n const { tagName, readOnly, type } = element;\n if (tagName === \"TEXTAREA\" && !readOnly) return true;\n if (tagName === \"SELECT\" && !readOnly) return true;\n if (tagName === \"INPUT\" && !readOnly) {\n return alwaysFocusVisibleInputTypes.includes(type);\n }\n if (element.isContentEditable) return true;\n const role = element.getAttribute(\"role\");\n if (role === \"combobox\" && element.dataset.name) {\n return true;\n }\n return false;\n}\nfunction getLabels(element) {\n if (\"labels\" in element) {\n return element.labels;\n }\n return null;\n}\nfunction isNativeCheckboxOrRadio(element) {\n const tagName = element.tagName.toLowerCase();\n if (tagName === \"input\" && element.type) {\n return element.type === \"radio\" || element.type === \"checkbox\";\n }\n return false;\n}\nfunction isNativeTabbable(tagName) {\n if (!tagName) return true;\n return tagName === \"button\" || tagName === \"summary\" || tagName === \"input\" || tagName === \"select\" || tagName === \"textarea\" || tagName === \"a\";\n}\nfunction supportsDisabledAttribute(tagName) {\n if (!tagName) return true;\n return tagName === \"button\" || tagName === \"input\" || tagName === \"select\" || tagName === \"textarea\";\n}\nfunction getTabIndex(focusable, trulyDisabled, nativeTabbable, supportsDisabled, tabIndexProp) {\n if (!focusable) {\n return tabIndexProp;\n }\n if (trulyDisabled) {\n if (nativeTabbable && !supportsDisabled) {\n return -1;\n }\n return;\n }\n if (nativeTabbable) {\n return tabIndexProp;\n }\n return tabIndexProp || 0;\n}\nfunction useDisableEvent(onEvent, disabled) {\n return useEvent((event) => {\n onEvent == null ? void 0 : onEvent(event);\n if (event.defaultPrevented) return;\n if (disabled) {\n event.stopPropagation();\n event.preventDefault();\n }\n });\n}\nvar isKeyboardModality = true;\nfunction onGlobalMouseDown(event) {\n const target = event.target;\n if (target && \"hasAttribute\" in target) {\n if (!target.hasAttribute(\"data-focus-visible\")) {\n isKeyboardModality = false;\n }\n }\n}\nfunction onGlobalKeyDown(event) {\n if (event.metaKey) return;\n if (event.ctrlKey) return;\n if (event.altKey) return;\n isKeyboardModality = true;\n}\nvar useFocusable = createHook(\n function useFocusable2(_a) {\n var _b = _a, {\n focusable = true,\n accessibleWhenDisabled,\n autoFocus,\n onFocusVisible\n } = _b, props = __objRest(_b, [\n \"focusable\",\n \"accessibleWhenDisabled\",\n \"autoFocus\",\n \"onFocusVisible\"\n ]);\n const ref = useRef(null);\n useEffect(() => {\n if (!focusable) return;\n addGlobalEventListener(\"mousedown\", onGlobalMouseDown, true);\n addGlobalEventListener(\"keydown\", onGlobalKeyDown, true);\n }, [focusable]);\n if (isSafariBrowser) {\n useEffect(() => {\n if (!focusable) return;\n const element = ref.current;\n if (!element) return;\n if (!isNativeCheckboxOrRadio(element)) return;\n const labels = getLabels(element);\n if (!labels) return;\n const onMouseUp = () => queueMicrotask(() => element.focus());\n for (const label of labels) {\n label.addEventListener(\"mouseup\", onMouseUp);\n }\n return () => {\n for (const label of labels) {\n label.removeEventListener(\"mouseup\", onMouseUp);\n }\n };\n }, [focusable]);\n }\n const disabled = focusable && disabledFromProps(props);\n const trulyDisabled = !!disabled && !accessibleWhenDisabled;\n const [focusVisible, setFocusVisible] = useState(false);\n useEffect(() => {\n if (!focusable) return;\n if (trulyDisabled && focusVisible) {\n setFocusVisible(false);\n }\n }, [focusable, trulyDisabled, focusVisible]);\n useEffect(() => {\n if (!focusable) return;\n if (!focusVisible) return;\n const element = ref.current;\n if (!element) return;\n if (typeof IntersectionObserver === \"undefined\") return;\n const observer = new IntersectionObserver(() => {\n if (!isFocusable(element)) {\n setFocusVisible(false);\n }\n });\n observer.observe(element);\n return () => observer.disconnect();\n }, [focusable, focusVisible]);\n const onKeyPressCapture = useDisableEvent(\n props.onKeyPressCapture,\n disabled\n );\n const onMouseDownCapture = useDisableEvent(\n props.onMouseDownCapture,\n disabled\n );\n const onClickCapture = useDisableEvent(props.onClickCapture, disabled);\n const onMouseDownProp = props.onMouseDown;\n const onMouseDown = useEvent((event) => {\n onMouseDownProp == null ? void 0 : onMouseDownProp(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n const element = event.currentTarget;\n if (!isSafariBrowser) return;\n if (isPortalEvent(event)) return;\n if (!isButton(element) && !isNativeCheckboxOrRadio(element)) return;\n let receivedFocus = false;\n const onFocus = () => {\n receivedFocus = true;\n };\n const options = { capture: true, once: true };\n element.addEventListener(\"focusin\", onFocus, options);\n const focusableContainer = getClosestFocusable(element.parentElement);\n markSafariFocusAncestor(focusableContainer, true);\n queueBeforeEvent(element, \"mouseup\", () => {\n element.removeEventListener(\"focusin\", onFocus, true);\n markSafariFocusAncestor(focusableContainer, false);\n if (receivedFocus) return;\n focusIfNeeded(element);\n });\n });\n const handleFocusVisible = (event, currentTarget) => {\n if (currentTarget) {\n event.currentTarget = currentTarget;\n }\n if (!focusable) return;\n const element = event.currentTarget;\n if (!element) return;\n if (!hasFocus(element)) return;\n onFocusVisible == null ? void 0 : onFocusVisible(event);\n if (event.defaultPrevented) return;\n element.dataset.focusVisible = \"true\";\n setFocusVisible(true);\n };\n const onKeyDownCaptureProp = props.onKeyDownCapture;\n const onKeyDownCapture = useEvent((event) => {\n onKeyDownCaptureProp == null ? void 0 : onKeyDownCaptureProp(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n if (focusVisible) return;\n if (event.metaKey) return;\n if (event.altKey) return;\n if (event.ctrlKey) return;\n if (!isSelfTarget(event)) return;\n const element = event.currentTarget;\n const applyFocusVisible = () => handleFocusVisible(event, element);\n queueBeforeEvent(element, \"focusout\", applyFocusVisible);\n });\n const onFocusCaptureProp = props.onFocusCapture;\n const onFocusCapture = useEvent((event) => {\n onFocusCaptureProp == null ? void 0 : onFocusCaptureProp(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n if (!isSelfTarget(event)) {\n setFocusVisible(false);\n return;\n }\n const element = event.currentTarget;\n const applyFocusVisible = () => handleFocusVisible(event, element);\n if (isKeyboardModality || isAlwaysFocusVisible(event.target)) {\n queueBeforeEvent(event.target, \"focusout\", applyFocusVisible);\n } else {\n setFocusVisible(false);\n }\n });\n const onBlurProp = props.onBlur;\n const onBlur = useEvent((event) => {\n onBlurProp == null ? void 0 : onBlurProp(event);\n if (!focusable) return;\n if (!isFocusEventOutside(event)) return;\n setFocusVisible(false);\n });\n const autoFocusOnShow = useContext(FocusableContext);\n const autoFocusRef = useEvent((element) => {\n if (!focusable) return;\n if (!autoFocus) return;\n if (!element) return;\n if (!autoFocusOnShow) return;\n queueMicrotask(() => {\n if (hasFocus(element)) return;\n if (!isFocusable(element)) return;\n element.focus();\n });\n });\n const tagName = useTagName(ref);\n const nativeTabbable = focusable && isNativeTabbable(tagName);\n const supportsDisabled = focusable && supportsDisabledAttribute(tagName);\n const styleProp = props.style;\n const style = useMemo(() => {\n if (trulyDisabled) {\n return __spreadValues({ pointerEvents: \"none\" }, styleProp);\n }\n return styleProp;\n }, [trulyDisabled, styleProp]);\n props = __spreadProps(__spreadValues({\n \"data-focus-visible\": focusable && focusVisible || void 0,\n \"data-autofocus\": autoFocus || void 0,\n \"aria-disabled\": disabled || void 0\n }, props), {\n ref: useMergeRefs(ref, autoFocusRef, props.ref),\n style,\n tabIndex: getTabIndex(\n focusable,\n trulyDisabled,\n nativeTabbable,\n supportsDisabled,\n props.tabIndex\n ),\n disabled: supportsDisabled && trulyDisabled ? true : void 0,\n // TODO: Test Focusable contentEditable.\n contentEditable: disabled ? void 0 : props.contentEditable,\n onKeyPressCapture,\n onClickCapture,\n onMouseDownCapture,\n onMouseDown,\n onKeyDownCapture,\n onFocusCapture,\n onBlur\n });\n return removeUndefinedValues(props);\n }\n);\nvar Focusable = forwardRef(function Focusable2(props) {\n const htmlProps = useFocusable(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n isSafariFocusAncestor,\n useFocusable,\n Focusable\n};\n","\"use client\";\nimport {\n useFocusable\n} from \"./Z4WWVOIF.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./7FZLUSKW.js\";\nimport {\n useEvent,\n useMergeRefs,\n useMetadataProps,\n useTagName\n} from \"./HNHAUIIY.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/command/command.tsx\nimport { isButton, isTextField } from \"@ariakit/core/utils/dom\";\nimport {\n fireClickEvent,\n isSelfTarget,\n queueBeforeEvent\n} from \"@ariakit/core/utils/events\";\nimport { disabledFromProps } from \"@ariakit/core/utils/misc\";\nimport { isFirefox } from \"@ariakit/core/utils/platform\";\nimport { useEffect, useRef, useState } from \"react\";\nvar TagName = \"button\";\nfunction isNativeClick(event) {\n if (!event.isTrusted) return false;\n const element = event.currentTarget;\n if (event.key === \"Enter\") {\n return isButton(element) || element.tagName === \"SUMMARY\" || element.tagName === \"A\";\n }\n if (event.key === \" \") {\n return isButton(element) || element.tagName === \"SUMMARY\" || element.tagName === \"INPUT\" || element.tagName === \"SELECT\";\n }\n return false;\n}\nvar symbol = Symbol(\"command\");\nvar useCommand = createHook(\n function useCommand2(_a) {\n var _b = _a, { clickOnEnter = true, clickOnSpace = true } = _b, props = __objRest(_b, [\"clickOnEnter\", \"clickOnSpace\"]);\n const ref = useRef(null);\n const tagName = useTagName(ref);\n const type = props.type;\n const [isNativeButton, setIsNativeButton] = useState(\n () => !!tagName && isButton({ tagName, type })\n );\n useEffect(() => {\n if (!ref.current) return;\n setIsNativeButton(isButton(ref.current));\n }, []);\n const [active, setActive] = useState(false);\n const activeRef = useRef(false);\n const disabled = disabledFromProps(props);\n const [isDuplicate, metadataProps] = useMetadataProps(props, symbol, true);\n const onKeyDownProp = props.onKeyDown;\n const onKeyDown = useEvent((event) => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n const element = event.currentTarget;\n if (event.defaultPrevented) return;\n if (isDuplicate) return;\n if (disabled) return;\n if (!isSelfTarget(event)) return;\n if (isTextField(element)) return;\n if (element.isContentEditable) return;\n const isEnter = clickOnEnter && event.key === \"Enter\";\n const isSpace = clickOnSpace && event.key === \" \";\n const shouldPreventEnter = event.key === \"Enter\" && !clickOnEnter;\n const shouldPreventSpace = event.key === \" \" && !clickOnSpace;\n if (shouldPreventEnter || shouldPreventSpace) {\n event.preventDefault();\n return;\n }\n if (isEnter || isSpace) {\n const nativeClick = isNativeClick(event);\n if (isEnter) {\n if (!nativeClick) {\n event.preventDefault();\n const _a2 = event, { view } = _a2, eventInit = __objRest(_a2, [\"view\"]);\n const click = () => fireClickEvent(element, eventInit);\n if (isFirefox()) {\n queueBeforeEvent(element, \"keyup\", click);\n } else {\n queueMicrotask(click);\n }\n }\n } else if (isSpace) {\n activeRef.current = true;\n if (!nativeClick) {\n event.preventDefault();\n setActive(true);\n }\n }\n }\n });\n const onKeyUpProp = props.onKeyUp;\n const onKeyUp = useEvent((event) => {\n onKeyUpProp == null ? void 0 : onKeyUpProp(event);\n if (event.defaultPrevented) return;\n if (isDuplicate) return;\n if (disabled) return;\n if (event.metaKey) return;\n const isSpace = clickOnSpace && event.key === \" \";\n if (activeRef.current && isSpace) {\n activeRef.current = false;\n if (!isNativeClick(event)) {\n event.preventDefault();\n setActive(false);\n const element = event.currentTarget;\n const _a2 = event, { view } = _a2, eventInit = __objRest(_a2, [\"view\"]);\n queueMicrotask(() => fireClickEvent(element, eventInit));\n }\n }\n });\n props = __spreadProps(__spreadValues(__spreadValues({\n \"data-active\": active || void 0,\n type: isNativeButton ? \"button\" : void 0\n }, metadataProps), props), {\n ref: useMergeRefs(ref, props.ref),\n onKeyDown,\n onKeyUp\n });\n props = useFocusable(props);\n return props;\n }\n);\nvar Command = forwardRef(function Command2(props) {\n const htmlProps = useCommand(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useCommand,\n Command\n};\n","\"use client\";\nimport {\n ComboboxItemValueContext,\n useComboboxScopedContext\n} from \"../__chunks/3LH6HMTR.js\";\nimport \"../__chunks/APGXEJ2Q.js\";\nimport \"../__chunks/G4PVPWEW.js\";\nimport \"../__chunks/COWZSPJ7.js\";\nimport \"../__chunks/CMXOY7UW.js\";\nimport \"../__chunks/JDEWEW7S.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/7FZLUSKW.js\";\nimport {\n useStoreState\n} from \"../__chunks/CTKPPFRS.js\";\nimport \"../__chunks/HNHAUIIY.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport {\n __objRest,\n __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox-item-value.tsx\nimport { toArray } from \"@ariakit/core/utils/array\";\nimport {\n normalizeString,\n removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nimport { useContext, useMemo } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"span\";\nfunction normalizeValue(value) {\n return normalizeString(value).toLowerCase();\n}\nfunction getOffsets(string, values) {\n const offsets = [];\n for (const value of values) {\n let pos = 0;\n const length = value.length;\n while (string.indexOf(value, pos) !== -1) {\n const index = string.indexOf(value, pos);\n if (index !== -1) {\n offsets.push([index, length]);\n }\n pos = index + 1;\n }\n }\n return offsets;\n}\nfunction filterOverlappingOffsets(offsets) {\n return offsets.filter(([offset, length], i, arr) => {\n return !arr.some(\n ([o, l], j) => j !== i && o <= offset && o + l >= offset + length\n );\n });\n}\nfunction sortOffsets(offsets) {\n return offsets.sort(([a], [b]) => a - b);\n}\nfunction splitValue(itemValue, userValue) {\n if (!itemValue) return itemValue;\n if (!userValue) return itemValue;\n const userValues = toArray(userValue).filter(Boolean).map(normalizeValue);\n const parts = [];\n const span = (value, autocomplete = false) => /* @__PURE__ */ jsx(\n \"span\",\n {\n \"data-autocomplete-value\": autocomplete ? \"\" : void 0,\n \"data-user-value\": autocomplete ? void 0 : \"\",\n children: value\n },\n parts.length\n );\n const offsets = sortOffsets(\n filterOverlappingOffsets(\n // Convert userValues into a set to avoid duplicates\n getOffsets(normalizeValue(itemValue), new Set(userValues))\n )\n );\n if (!offsets.length) {\n parts.push(span(itemValue, true));\n return parts;\n }\n const [firstOffset] = offsets[0];\n const values = [\n itemValue.slice(0, firstOffset),\n ...offsets.flatMap(([offset, length], i) => {\n var _a;\n const value = itemValue.slice(offset, offset + length);\n const nextOffset = (_a = offsets[i + 1]) == null ? void 0 : _a[0];\n const nextValue = itemValue.slice(offset + length, nextOffset);\n return [value, nextValue];\n })\n ];\n values.forEach((value, i) => {\n if (!value) return;\n parts.push(span(value, i % 2 === 0));\n });\n return parts;\n}\nvar useComboboxItemValue = createHook(function useComboboxItemValue2(_a) {\n var _b = _a, { store, value, userValue } = _b, props = __objRest(_b, [\"store\", \"value\", \"userValue\"]);\n const context = useComboboxScopedContext();\n store = store || context;\n const itemContext = useContext(ComboboxItemValueContext);\n const itemValue = value != null ? value : itemContext;\n const inputValue = useStoreState(store, (state) => userValue != null ? userValue : state == null ? void 0 : state.value);\n const children = useMemo(() => {\n if (!itemValue) return;\n if (!inputValue) return itemValue;\n return splitValue(itemValue, inputValue);\n }, [itemValue, inputValue]);\n props = __spreadValues({\n children\n }, props);\n return removeUndefinedValues(props);\n});\nvar ComboboxItemValue = forwardRef(function ComboboxItemValue2(props) {\n const htmlProps = useComboboxItemValue(props);\n return createElement(TagName, htmlProps);\n});\nexport {\n ComboboxItemValue,\n useComboboxItemValue\n};\n","\"use client\";\nimport {\n useCompositeHover\n} from \"../__chunks/L63MOBXC.js\";\nimport {\n ComboboxItemCheckedContext,\n ComboboxItemValueContext,\n ComboboxListRoleContext,\n useComboboxScopedContext\n} from \"../__chunks/3LH6HMTR.js\";\nimport {\n useCompositeItem\n} from \"../__chunks/NSB34BGG.js\";\nimport \"../__chunks/SZHY72KI.js\";\nimport \"../__chunks/ZHUQ44XA.js\";\nimport \"../__chunks/5VQZOHHZ.js\";\nimport \"../__chunks/APGXEJ2Q.js\";\nimport \"../__chunks/G4PVPWEW.js\";\nimport \"../__chunks/COWZSPJ7.js\";\nimport \"../__chunks/CMXOY7UW.js\";\nimport \"../__chunks/JDEWEW7S.js\";\nimport \"../__chunks/Z4WWVOIF.js\";\nimport \"../__chunks/SWN3JYXT.js\";\nimport {\n createElement,\n createHook,\n forwardRef,\n memo\n} from \"../__chunks/7FZLUSKW.js\";\nimport \"../__chunks/CTKPPFRS.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useWrapElement\n} from \"../__chunks/HNHAUIIY.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox-item.tsx\nimport { isTextField } from \"@ariakit/core/utils/dom\";\nimport { isDownloading, isOpeningInNewTab } from \"@ariakit/core/utils/events\";\nimport { hasFocus } from \"@ariakit/core/utils/focus\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport { useCallback, useContext } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction isSelected(storeValue, itemValue) {\n if (itemValue == null) return;\n if (storeValue == null) return false;\n if (Array.isArray(storeValue)) {\n return storeValue.includes(itemValue);\n }\n return storeValue === itemValue;\n}\nfunction getItemRole(popupRole) {\n var _a;\n const itemRoleByPopupRole = {\n menu: \"menuitem\",\n listbox: \"option\",\n tree: \"treeitem\"\n };\n const key = popupRole;\n return (_a = itemRoleByPopupRole[key]) != null ? _a : \"option\";\n}\nvar useComboboxItem = createHook(\n function useComboboxItem2(_a) {\n var _b = _a, {\n store,\n value,\n hideOnClick,\n setValueOnClick,\n selectValueOnClick = true,\n resetValueOnSelect,\n focusOnHover = false,\n moveOnKeyPress = true,\n getItem: getItemProp\n } = _b, props = __objRest(_b, [\n \"store\",\n \"value\",\n \"hideOnClick\",\n \"setValueOnClick\",\n \"selectValueOnClick\",\n \"resetValueOnSelect\",\n \"focusOnHover\",\n \"moveOnKeyPress\",\n \"getItem\"\n ]);\n var _a2;\n const context = useComboboxScopedContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"ComboboxItem must be wrapped in a ComboboxList or ComboboxPopover component.\"\n );\n const getItem = useCallback(\n (item) => {\n const nextItem = __spreadProps(__spreadValues({}, item), { value });\n if (getItemProp) {\n return getItemProp(nextItem);\n }\n return nextItem;\n },\n [value, getItemProp]\n );\n const multiSelectable = store.useState(\n (state) => Array.isArray(state.selectedValue)\n );\n const selected = store.useState(\n (state) => isSelected(state.selectedValue, value)\n );\n const resetValueOnSelectState = store.useState(\"resetValueOnSelect\");\n setValueOnClick = setValueOnClick != null ? setValueOnClick : !multiSelectable;\n hideOnClick = hideOnClick != null ? hideOnClick : value != null && !multiSelectable;\n const onClickProp = props.onClick;\n const setValueOnClickProp = useBooleanEvent(setValueOnClick);\n const selectValueOnClickProp = useBooleanEvent(selectValueOnClick);\n const resetValueOnSelectProp = useBooleanEvent(\n (_a2 = resetValueOnSelect != null ? resetValueOnSelect : resetValueOnSelectState) != null ? _a2 : multiSelectable\n );\n const hideOnClickProp = useBooleanEvent(hideOnClick);\n const onClick = useEvent((event) => {\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented) return;\n if (isDownloading(event)) return;\n if (isOpeningInNewTab(event)) return;\n if (value != null) {\n if (selectValueOnClickProp(event)) {\n if (resetValueOnSelectProp(event)) {\n store == null ? void 0 : store.resetValue();\n }\n store == null ? void 0 : store.setSelectedValue((prevValue) => {\n if (!Array.isArray(prevValue)) return value;\n if (prevValue.includes(value)) {\n return prevValue.filter((v) => v !== value);\n }\n return [...prevValue, value];\n });\n }\n if (setValueOnClickProp(event)) {\n store == null ? void 0 : store.setValue(value);\n }\n }\n if (hideOnClickProp(event)) {\n store == null ? void 0 : store.hide();\n }\n });\n const onKeyDownProp = props.onKeyDown;\n const onKeyDown = useEvent((event) => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (event.defaultPrevented) return;\n const baseElement = store == null ? void 0 : store.getState().baseElement;\n if (!baseElement) return;\n if (hasFocus(baseElement)) return;\n const printable = event.key.length === 1;\n if (printable || event.key === \"Backspace\" || event.key === \"Delete\") {\n queueMicrotask(() => baseElement.focus());\n if (isTextField(baseElement)) {\n store == null ? void 0 : store.setValue(baseElement.value);\n }\n }\n });\n if (multiSelectable && selected != null) {\n props = __spreadValues({\n \"aria-selected\": selected\n }, props);\n }\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(ComboboxItemValueContext.Provider, { value, children: /* @__PURE__ */ jsx(ComboboxItemCheckedContext.Provider, { value: selected != null ? selected : false, children: element }) }),\n [value, selected]\n );\n const popupRole = useContext(ComboboxListRoleContext);\n props = __spreadProps(__spreadValues({\n role: getItemRole(popupRole),\n children: value\n }, props), {\n onClick,\n onKeyDown\n });\n const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);\n props = useCompositeItem(__spreadProps(__spreadValues({\n store\n }, props), {\n getItem,\n // Dispatch a custom event on the combobox input when moving to an item\n // with the keyboard so the Combobox component can enable inline\n // autocompletion.\n moveOnKeyPress: (event) => {\n if (!moveOnKeyPressProp(event)) return false;\n const moveEvent = new Event(\"combobox-item-move\");\n const baseElement = store == null ? void 0 : store.getState().baseElement;\n baseElement == null ? void 0 : baseElement.dispatchEvent(moveEvent);\n return true;\n }\n }));\n props = useCompositeHover(__spreadValues({ store, focusOnHover }, props));\n return props;\n }\n);\nvar ComboboxItem = memo(\n forwardRef(function ComboboxItem2(props) {\n const htmlProps = useComboboxItem(props);\n return createElement(TagName, htmlProps);\n })\n);\nexport {\n ComboboxItem,\n useComboboxItem\n};\n","\"use client\";\nimport {\n useComboboxProviderContext\n} from \"../__chunks/3LH6HMTR.js\";\nimport \"../__chunks/APGXEJ2Q.js\";\nimport \"../__chunks/G4PVPWEW.js\";\nimport \"../__chunks/COWZSPJ7.js\";\nimport \"../__chunks/CMXOY7UW.js\";\nimport \"../__chunks/JDEWEW7S.js\";\nimport {\n createElement,\n createHook,\n forwardRef,\n memo\n} from \"../__chunks/7FZLUSKW.js\";\nimport \"../__chunks/HNHAUIIY.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport {\n __objRest,\n __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox-label.tsx\nimport { invariant, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nvar TagName = \"label\";\nvar useComboboxLabel = createHook(\n function useComboboxLabel2(_a) {\n var _b = _a, { store } = _b, props = __objRest(_b, [\"store\"]);\n const context = useComboboxProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"ComboboxLabel must receive a `store` prop or be wrapped in a ComboboxProvider component.\"\n );\n const comboboxId = store.useState((state) => {\n var _a2;\n return (_a2 = state.baseElement) == null ? void 0 : _a2.id;\n });\n props = __spreadValues({\n htmlFor: comboboxId\n }, props);\n return removeUndefinedValues(props);\n }\n);\nvar ComboboxLabel = memo(\n forwardRef(function ComboboxLabel2(props) {\n const htmlProps = useComboboxLabel(props);\n return createElement(TagName, htmlProps);\n })\n);\nexport {\n ComboboxLabel,\n useComboboxLabel\n};\n","\"use client\";\nimport {\n useComboboxStore\n} from \"../__chunks/E6AN77M4.js\";\nimport {\n ComboboxContextProvider\n} from \"../__chunks/3LH6HMTR.js\";\nimport \"../__chunks/3TGOYUTQ.js\";\nimport \"../__chunks/OIB4PV4M.js\";\nimport \"../__chunks/QZUWIJQN.js\";\nimport \"../__chunks/APGXEJ2Q.js\";\nimport \"../__chunks/G4PVPWEW.js\";\nimport \"../__chunks/COWZSPJ7.js\";\nimport \"../__chunks/CMXOY7UW.js\";\nimport \"../__chunks/JDEWEW7S.js\";\nimport \"../__chunks/7FZLUSKW.js\";\nimport \"../__chunks/CO7ZDQU2.js\";\nimport \"../__chunks/B5WJDZ55.js\";\nimport \"../__chunks/C76P7QQC.js\";\nimport \"../__chunks/CTKPPFRS.js\";\nimport \"../__chunks/HNHAUIIY.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox-provider.tsx\nimport { jsx } from \"react/jsx-runtime\";\nfunction ComboboxProvider(props = {}) {\n const store = useComboboxStore(props);\n return /* @__PURE__ */ jsx(ComboboxContextProvider, { value: store, children: props.children });\n}\nexport {\n ComboboxProvider\n};\n","\"use client\";\nimport {\n useComboboxProviderContext\n} from \"../__chunks/3LH6HMTR.js\";\nimport {\n usePopoverAnchor\n} from \"../__chunks/NWYOIOBE.js\";\nimport {\n useComposite\n} from \"../__chunks/IKLZZMLE.js\";\nimport \"../__chunks/5VQZOHHZ.js\";\nimport \"../__chunks/APGXEJ2Q.js\";\nimport \"../__chunks/G4PVPWEW.js\";\nimport \"../__chunks/COWZSPJ7.js\";\nimport \"../__chunks/CMXOY7UW.js\";\nimport \"../__chunks/JDEWEW7S.js\";\nimport \"../__chunks/Z4WWVOIF.js\";\nimport \"../__chunks/SWN3JYXT.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/7FZLUSKW.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useForceUpdate,\n useId,\n useMergeRefs,\n useSafeLayoutEffect,\n useUpdateEffect,\n useUpdateLayoutEffect\n} from \"../__chunks/HNHAUIIY.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox.tsx\nimport {\n getPopupRole,\n getScrollingElement,\n getTextboxSelection,\n setSelectionRange\n} from \"@ariakit/core/utils/dom\";\nimport {\n isFocusEventOutside,\n queueBeforeEvent\n} from \"@ariakit/core/utils/events\";\nimport { hasFocus } from \"@ariakit/core/utils/focus\";\nimport {\n invariant,\n isFalsyBooleanCallback,\n noop,\n normalizeString\n} from \"@ariakit/core/utils/misc\";\nimport { sync } from \"@ariakit/core/utils/store\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nvar TagName = \"input\";\nfunction isFirstItemAutoSelected(items, activeValue, autoSelect) {\n if (!autoSelect) return false;\n const firstItem = items.find((item) => !item.disabled && item.value);\n return (firstItem == null ? void 0 : firstItem.value) === activeValue;\n}\nfunction hasCompletionString(value, activeValue) {\n if (!activeValue) return false;\n if (value == null) return false;\n value = normalizeString(value);\n return activeValue.length > value.length && activeValue.toLowerCase().indexOf(value.toLowerCase()) === 0;\n}\nfunction isInputEvent(event) {\n return event.type === \"input\";\n}\nfunction isAriaAutoCompleteValue(value) {\n return value === \"inline\" || value === \"list\" || value === \"both\" || value === \"none\";\n}\nfunction getDefaultAutoSelectId(items) {\n const item = items.find((item2) => {\n var _a;\n if (item2.disabled) return false;\n return ((_a = item2.element) == null ? void 0 : _a.getAttribute(\"role\")) !== \"tab\";\n });\n return item == null ? void 0 : item.id;\n}\nvar useCombobox = createHook(\n function useCombobox2(_a) {\n var _b = _a, {\n store,\n focusable = true,\n autoSelect: autoSelectProp = false,\n getAutoSelectId,\n setValueOnChange,\n showMinLength = 0,\n showOnChange,\n showOnMouseDown,\n showOnClick = showOnMouseDown,\n showOnKeyDown,\n showOnKeyPress = showOnKeyDown,\n blurActiveItemOnClick,\n setValueOnClick = true,\n moveOnKeyPress = true,\n autoComplete = \"list\"\n } = _b, props = __objRest(_b, [\n \"store\",\n \"focusable\",\n \"autoSelect\",\n \"getAutoSelectId\",\n \"setValueOnChange\",\n \"showMinLength\",\n \"showOnChange\",\n \"showOnMouseDown\",\n \"showOnClick\",\n \"showOnKeyDown\",\n \"showOnKeyPress\",\n \"blurActiveItemOnClick\",\n \"setValueOnClick\",\n \"moveOnKeyPress\",\n \"autoComplete\"\n ]);\n const context = useComboboxProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Combobox must receive a `store` prop or be wrapped in a ComboboxProvider component.\"\n );\n const ref = useRef(null);\n const [valueUpdated, forceValueUpdate] = useForceUpdate();\n const canAutoSelectRef = useRef(false);\n const composingRef = useRef(false);\n const autoSelect = store.useState(\n (state) => state.virtualFocus && autoSelectProp\n );\n const inline = autoComplete === \"inline\" || autoComplete === \"both\";\n const [canInline, setCanInline] = useState(inline);\n useUpdateLayoutEffect(() => {\n if (!inline) return;\n setCanInline(true);\n }, [inline]);\n const storeValue = store.useState(\"value\");\n const prevSelectedValueRef = useRef();\n useEffect(() => {\n return sync(store, [\"selectedValue\", \"activeId\"], (_, prev) => {\n prevSelectedValueRef.current = prev.selectedValue;\n });\n }, []);\n const inlineActiveValue = store.useState((state) => {\n var _a2;\n if (!inline) return;\n if (!canInline) return;\n if (state.activeValue && Array.isArray(state.selectedValue)) {\n if (state.selectedValue.includes(state.activeValue)) return;\n if ((_a2 = prevSelectedValueRef.current) == null ? void 0 : _a2.includes(state.activeValue)) return;\n }\n return state.activeValue;\n });\n const items = store.useState(\"renderedItems\");\n const open = store.useState(\"open\");\n const contentElement = store.useState(\"contentElement\");\n const value = useMemo(() => {\n if (!inline) return storeValue;\n if (!canInline) return storeValue;\n const firstItemAutoSelected = isFirstItemAutoSelected(\n items,\n inlineActiveValue,\n autoSelect\n );\n if (firstItemAutoSelected) {\n if (hasCompletionString(storeValue, inlineActiveValue)) {\n const slice = (inlineActiveValue == null ? void 0 : inlineActiveValue.slice(storeValue.length)) || \"\";\n return storeValue + slice;\n }\n return storeValue;\n }\n return inlineActiveValue || storeValue;\n }, [inline, canInline, items, inlineActiveValue, autoSelect, storeValue]);\n useEffect(() => {\n const element = ref.current;\n if (!element) return;\n const onCompositeItemMove = () => setCanInline(true);\n element.addEventListener(\"combobox-item-move\", onCompositeItemMove);\n return () => {\n element.removeEventListener(\"combobox-item-move\", onCompositeItemMove);\n };\n }, []);\n useEffect(() => {\n if (!inline) return;\n if (!canInline) return;\n if (!inlineActiveValue) return;\n const firstItemAutoSelected = isFirstItemAutoSelected(\n items,\n inlineActiveValue,\n autoSelect\n );\n if (!firstItemAutoSelected) return;\n if (!hasCompletionString(storeValue, inlineActiveValue)) return;\n let cleanup = noop;\n queueMicrotask(() => {\n const element = ref.current;\n if (!element) return;\n const { start: prevStart, end: prevEnd } = getTextboxSelection(element);\n const nextStart = storeValue.length;\n const nextEnd = inlineActiveValue.length;\n setSelectionRange(element, nextStart, nextEnd);\n cleanup = () => {\n if (!hasFocus(element)) return;\n const { start, end } = getTextboxSelection(element);\n if (start !== nextStart) return;\n if (end !== nextEnd) return;\n setSelectionRange(element, prevStart, prevEnd);\n };\n });\n return () => cleanup();\n }, [\n valueUpdated,\n inline,\n canInline,\n inlineActiveValue,\n items,\n autoSelect,\n storeValue\n ]);\n const scrollingElementRef = useRef(null);\n const getAutoSelectIdProp = useEvent(getAutoSelectId);\n const autoSelectIdRef = useRef(null);\n useEffect(() => {\n if (!open) return;\n if (!contentElement) return;\n const scrollingElement = getScrollingElement(contentElement);\n if (!scrollingElement) return;\n scrollingElementRef.current = scrollingElement;\n const onUserScroll = () => {\n canAutoSelectRef.current = false;\n };\n const onScroll = () => {\n if (!store) return;\n if (!canAutoSelectRef.current) return;\n const { activeId } = store.getState();\n if (activeId === null) return;\n if (activeId === autoSelectIdRef.current) return;\n canAutoSelectRef.current = false;\n };\n const options = { passive: true, capture: true };\n scrollingElement.addEventListener(\"wheel\", onUserScroll, options);\n scrollingElement.addEventListener(\"touchmove\", onUserScroll, options);\n scrollingElement.addEventListener(\"scroll\", onScroll, options);\n return () => {\n scrollingElement.removeEventListener(\"wheel\", onUserScroll, true);\n scrollingElement.removeEventListener(\"touchmove\", onUserScroll, true);\n scrollingElement.removeEventListener(\"scroll\", onScroll, true);\n };\n }, [open, contentElement, store]);\n useSafeLayoutEffect(() => {\n if (!storeValue) return;\n if (composingRef.current) return;\n canAutoSelectRef.current = true;\n }, [storeValue]);\n useSafeLayoutEffect(() => {\n if (autoSelect !== \"always\" && open) return;\n canAutoSelectRef.current = open;\n }, [autoSelect, open]);\n const resetValueOnSelect = store.useState(\"resetValueOnSelect\");\n useUpdateEffect(() => {\n var _a2, _b2;\n const canAutoSelect = canAutoSelectRef.current;\n if (!store) return;\n if (!open) return;\n if ((!autoSelect || !canAutoSelect) && !resetValueOnSelect) return;\n const { baseElement, contentElement: contentElement2, activeId } = store.getState();\n if (baseElement && !hasFocus(baseElement)) return;\n if (contentElement2 == null ? void 0 : contentElement2.hasAttribute(\"data-placing\")) {\n const observer = new MutationObserver(forceValueUpdate);\n observer.observe(contentElement2, { attributeFilter: [\"data-placing\"] });\n return () => observer.disconnect();\n }\n if (autoSelect && canAutoSelect) {\n const userAutoSelectId = getAutoSelectIdProp(items);\n const autoSelectId = userAutoSelectId !== void 0 ? userAutoSelectId : (_a2 = getDefaultAutoSelectId(items)) != null ? _a2 : store.first();\n autoSelectIdRef.current = autoSelectId;\n store.move(autoSelectId != null ? autoSelectId : null);\n } else {\n const element = (_b2 = store.item(activeId)) == null ? void 0 : _b2.element;\n if (element && \"scrollIntoView\" in element) {\n element.scrollIntoView({ block: \"nearest\", inline: \"nearest\" });\n }\n }\n return;\n }, [\n store,\n open,\n valueUpdated,\n storeValue,\n autoSelect,\n resetValueOnSelect,\n getAutoSelectIdProp,\n items\n ]);\n useEffect(() => {\n if (!inline) return;\n const combobox = ref.current;\n if (!combobox) return;\n const elements = [combobox, contentElement].filter(\n (value2) => !!value2\n );\n const onBlur2 = (event) => {\n if (elements.every((el) => isFocusEventOutside(event, el))) {\n store == null ? void 0 : store.setValue(value);\n }\n };\n for (const element of elements) {\n element.addEventListener(\"focusout\", onBlur2);\n }\n return () => {\n for (const element of elements) {\n element.removeEventListener(\"focusout\", onBlur2);\n }\n };\n }, [inline, contentElement, store, value]);\n const canShow = (event) => {\n const currentTarget = event.currentTarget;\n return currentTarget.value.length >= showMinLength;\n };\n const onChangeProp = props.onChange;\n const showOnChangeProp = useBooleanEvent(showOnChange != null ? showOnChange : canShow);\n const setValueOnChangeProp = useBooleanEvent(\n // If the combobox is combined with tags, the value will be set by the tag\n // input component.\n setValueOnChange != null ? setValueOnChange : !store.tag\n );\n const onChange = useEvent((event) => {\n onChangeProp == null ? void 0 : onChangeProp(event);\n if (event.defaultPrevented) return;\n if (!store) return;\n const currentTarget = event.currentTarget;\n const { value: value2, selectionStart, selectionEnd } = currentTarget;\n const nativeEvent = event.nativeEvent;\n canAutoSelectRef.current = true;\n if (isInputEvent(nativeEvent)) {\n if (nativeEvent.isComposing) {\n canAutoSelectRef.current = false;\n composingRef.current = true;\n }\n if (inline) {\n const textInserted = nativeEvent.inputType === \"insertText\" || nativeEvent.inputType === \"insertCompositionText\";\n const caretAtEnd = selectionStart === value2.length;\n setCanInline(textInserted && caretAtEnd);\n }\n }\n if (setValueOnChangeProp(event)) {\n const isSameValue = value2 === store.getState().value;\n store.setValue(value2);\n queueMicrotask(() => {\n setSelectionRange(currentTarget, selectionStart, selectionEnd);\n });\n if (inline && autoSelect && isSameValue) {\n forceValueUpdate();\n }\n }\n if (showOnChangeProp(event)) {\n store.show();\n }\n if (!autoSelect || !canAutoSelectRef.current) {\n store.setActiveId(null);\n }\n });\n const onCompositionEndProp = props.onCompositionEnd;\n const onCompositionEnd = useEvent((event) => {\n canAutoSelectRef.current = true;\n composingRef.current = false;\n onCompositionEndProp == null ? void 0 : onCompositionEndProp(event);\n if (event.defaultPrevented) return;\n if (!autoSelect) return;\n forceValueUpdate();\n });\n const onMouseDownProp = props.onMouseDown;\n const blurActiveItemOnClickProp = useBooleanEvent(\n blurActiveItemOnClick != null ? blurActiveItemOnClick : () => !!(store == null ? void 0 : store.getState().includesBaseElement)\n );\n const setValueOnClickProp = useBooleanEvent(setValueOnClick);\n const showOnClickProp = useBooleanEvent(showOnClick != null ? showOnClick : canShow);\n const onMouseDown = useEvent((event) => {\n onMouseDownProp == null ? void 0 : onMouseDownProp(event);\n if (event.defaultPrevented) return;\n if (event.button) return;\n if (event.ctrlKey) return;\n if (!store) return;\n if (blurActiveItemOnClickProp(event)) {\n store.setActiveId(null);\n }\n if (setValueOnClickProp(event)) {\n store.setValue(value);\n }\n if (showOnClickProp(event)) {\n queueBeforeEvent(event.currentTarget, \"mouseup\", store.show);\n }\n });\n const onKeyDownProp = props.onKeyDown;\n const showOnKeyPressProp = useBooleanEvent(showOnKeyPress != null ? showOnKeyPress : canShow);\n const onKeyDown = useEvent((event) => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (!event.repeat) {\n canAutoSelectRef.current = false;\n }\n if (event.defaultPrevented) return;\n if (event.ctrlKey) return;\n if (event.altKey) return;\n if (event.shiftKey) return;\n if (event.metaKey) return;\n if (!store) return;\n const { open: open2 } = store.getState();\n if (open2) return;\n if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n if (showOnKeyPressProp(event)) {\n event.preventDefault();\n store.show();\n }\n }\n });\n const onBlurProp = props.onBlur;\n const onBlur = useEvent((event) => {\n canAutoSelectRef.current = false;\n onBlurProp == null ? void 0 : onBlurProp(event);\n if (event.defaultPrevented) return;\n });\n const id = useId(props.id);\n const ariaAutoComplete = isAriaAutoCompleteValue(autoComplete) ? autoComplete : void 0;\n const isActiveItem = store.useState((state) => state.activeId === null);\n props = __spreadProps(__spreadValues({\n id,\n role: \"combobox\",\n \"aria-autocomplete\": ariaAutoComplete,\n \"aria-haspopup\": getPopupRole(contentElement, \"listbox\"),\n \"aria-expanded\": open,\n \"aria-controls\": contentElement == null ? void 0 : contentElement.id,\n \"data-active-item\": isActiveItem || void 0,\n value\n }, props), {\n ref: useMergeRefs(ref, props.ref),\n onChange,\n onCompositionEnd,\n onMouseDown,\n onKeyDown,\n onBlur\n });\n props = useComposite(__spreadProps(__spreadValues({\n store,\n focusable\n }, props), {\n // Enable inline autocomplete when the user moves from the combobox input\n // to an item.\n moveOnKeyPress: (event) => {\n if (isFalsyBooleanCallback(moveOnKeyPress, event)) return false;\n if (inline) setCanInline(true);\n return true;\n }\n }));\n props = usePopoverAnchor(__spreadValues({ store }, props));\n return __spreadValues({ autoComplete: \"off\" }, props);\n }\n);\nvar Combobox = forwardRef(function Combobox2(props) {\n const htmlProps = useCombobox(props);\n return createElement(TagName, htmlProps);\n});\nexport {\n Combobox,\n useCombobox\n};\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"admin\": 0,\n\t\"./style-admin\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkformello\"] = self[\"webpackChunkformello\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"./style-admin\"], () => (__webpack_require__(\"./src/admin/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["useMemo","useDispatch","useSelect","decodeEntities","store","coreStore","getLastEntityDeleteError","__","sprintf","_n","__experimentalVStack","VStack","__experimentalHStack","HStack","__experimentalText","Text","Button","noticesStore","external","trash","backup","edit","addQueryArgs","jsx","_jsx","jsxs","_jsxs","getItemTitle","item","title","rendered","trashPostAction","id","label","supportsBulk","icon","isEligible","status","hideModalHeader","RenderModal","items","posts","closeModal","createSuccessNotice","createErrorNotice","deleteEntityRecord","spacing","children","length","justify","variant","onClick","Promise","all","map","post","type","throwOnError","error","errorMessage","message","code","usePermanentlyDeletePostAction","callback","onActionPerformed","promiseResult","allSettled","force","every","successMessage","reason","errorMessages","Set","failedPromises","filter","failedPromise","add","size","join","viewPostAction","isPrimary","document","location","href","link","editPostAction","action","postRevisionsAction","_post$_links$predeces","_post$_links$version","lastRevisionId","_links","revisionsCount","count","revision","deleteItem","isDestructive","form","handleDelete","success","lastError","isDeleting","select","isDeletingEntityRecord","attributes","url","isBusy","disabled","useRestorePostAction","editEntityRecord","saveEditedEntityRecord","trashSubmissionAction","isBulk","submissions","Card","CardHeader","CardBody","ExternalLink","PromoSettings","Help","className","Spinner","LoadingSpinner","text","ReactComponent","Logo","Header","expanded","__experimentalConfirmDialog","ConfirmDialog","useState","Fragment","UpdateSettings","props","req","withConfirm","confirmMessage","showConfirmDialog","setShowConfirmDialog","loading","setLoading","createNotice","runAction","then","data","response","catch","explicitDismiss","finally","isOpen","onConfirm","onCancel","createContext","useEntityProp","SettingsContext","SettingsContextProvider","settings","isSaving","hasEdits","isSavingEntityRecord","hasEditsForEntityRecord","undefined","saveSettings","updateSetting","key","val","formello","Provider","value","hasUpdates","createRoot","useEffect","dispatch","SnackbarList","Forms","Submissions","Submission","Settings","Tools","Addons","getQueryArg","RouterProvider","useLocation","useHistory","addEntities","kind","name","baseURL","supportsPagination","Router","history","params","menuRoot","querySelector","reset","page","window","child","querySelectorAll","target","classList","parentElement","remove","handleChange","e","preventDefault","push","addEventListener","removeEventListener","createElement","section","submission_id","form_id","App","Notifications","notices","getNotices","removeNotice","snackbarNotices","onRemove","domNode","getElementById","root","render","CardMedia","CardFooter","ToggleControl","Modal","useContext","useEntityRecord","Addon","addon","setOpen","saveEntityRecord","popper","formelloPro","installPopper","record","save","slug","isInstalling","toggleAddon","enabled_addons","enabledAddons","as","src","require","alt","excerpt","isResolving","editedRecord","checked","onChange","__nextHasNoMarginBottom","onRequestClose","__experimentalHideHeader","iconPosition","TabPanel","__experimentalUseNavigator","useNavigator","__experimentalGrid","Grid","Notice","useEntityRecords","addonsTabs","setFilter","initialTab","tab","records","addons","hasResolved","per_page","filterAddon","element","category","isDismissible","actions","reload","tabs","onSelect","tabName","initialTabName","columns","TextControl","RadioControl","Captcha","reCaptcha","hCaptcha","setCaptcha","newSettings","Object","assign","selected","version","options","site_key","secret_key","Number","threshold","step","min","max","__experimentalInputControl","InputControl","RawHTML","useRef","apiFetch","dateI18n","General","_settings$license$lic","licenseKey","license","license_key","setMessage","updateLicense","endpoint","path","method","current","result","autoComplete","suffix","expires_at","withFilters","createInterpolateElement","integrations","icons","Integrations","noticeString","a","IntegrationsTab","LoggingTab","log","log_file","Messages","group","field","messages","formMessages","keys","missingValue","patternMismatch","outOfRange","wrongLength","i","applyFilters","Logging","changeTab","component","SettingsTab","templateColumns","gap","FieldsData","JSON","parse","stringify","replaceAll","toUpperCase","Array","isArray","SubmissionData","submission","invalidateResolutionForStore","parseInt","details","is_new","fields","getSettings","formats","formUrl","raw","datetime","submitted_at","referer_url","ip_address","user_agent","getDate","commentContent","DataViews","filterSortAndPaginate","STATUSES","DEFAULT_STATUSES","defaultLayouts","table","layout","primaryField","combinedFields","direction","view","setView","filters","perPage","sort","search","queryArgs","forEach","operator","author","author_exclude","_embed","order","orderby","forms","isLoadingForms","totalItems","totalPages","paginationInfo","authors","isLoadingAuthors","header","getValue","stopPropagation","enableGlobalSearch","enableHiding","submissions_count","total","news","_embedded","elements","filterBy","operators","formattedDate","datetimeAbbreviated","date","enableSorting","permanentlyDeletePostAction","restorePostAction","isLoading","onChangeView","Icon","useCallback","heading","seen","starFilled","EMPTY_ARRAY","styles","maxWidth","width","isLoadingSubmissions","getColumns","_fields","fill","starred","cols","_columns","accessor","concat","downloadBlob","ExportForms","currentDate","Date","exportForms","fileContent","filename","FormFileUpload","ImportForms","files","setFiles","FormData","append","body","accept","event","ResetSettings","resetSettings","Exporter","Importer","toolsTabs","Tab","CardDivider","DefaultCPTView","defaultUrl","post_type","createBrowserHistory","getQueryArgs","removeQueryArgs","originalHistoryPush","originalHistoryReplace","replace","state","currentArgs","currentUrlWithoutArgs","newUrl","call","RoutesContext","HistoryContext","getLocationWithParams","searchParams","URLSearchParams","fromEntries","entries","setLocation","listen","updatedLocation","Promo","MailPoet","Mailchimp","Moosend","ConvertKit","GetResponse","Brevo","MailerLite","Email","WebHook","FrontendPosting","login","Login","commentAuthorAvatar","Registration","async","to","from","cc","bcc","replyTo","subject","advanced","apiUrl","additionalHeaders","headers","postarr","post_title","post_content","post_excerpt","tax_input","meta_input"],"sourceRoot":""} \ No newline at end of file diff --git a/build/blocks/button/block.json b/build/blocks/button/block.json index 6e407b51..14fc0955 100644 --- a/build/blocks/button/block.json +++ b/build/blocks/button/block.json @@ -46,7 +46,10 @@ }, "selectors": { "root": ".wp-block-formello-button", - "color": ".wp-block-formello-button > button", + "color": { + "background": ".wp-block-formello-button > button", + "text": ".wp-block-formello-button > button" + }, "typography": { "root": ".wp-block-formello-button > button", "text-decoration": ".wp-block-formello-button > button" @@ -78,6 +81,11 @@ "fontSize": true } }, + "example": { + "attributes": { + "text": "Submit" + } + }, "editorScript": "file:./index.js", "style": "file:./style-index.css", "render": "file:./render.php" diff --git a/build/blocks/button/index.asset.php b/build/blocks/button/index.asset.php index a011894d..7059cd4f 100644 --- a/build/blocks/button/index.asset.php +++ b/build/blocks/button/index.asset.php @@ -1 +1 @@ - array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => '20a5082e3b82380287a8'); + array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => 'fb5a61be3d223fdf3d50'); diff --git a/build/blocks/button/index.js b/build/blocks/button/index.js index 09018f38..446afac7 100644 --- a/build/blocks/button/index.js +++ b/build/blocks/button/index.js @@ -984,6 +984,7 @@ function Edit({ ...blockProps, children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("button", { className: buttonClasses, + style: colorProps.style, children: [!noWrapper && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.BlockControls, { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.ToolbarGroup, { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.ToolbarDropdownMenu, { @@ -1033,8 +1034,7 @@ function Edit({ text: val }), placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Enter button text…', 'formello'), - allowedFormats: ['core/bold'], - className: "buttonClasses" + allowedFormats: ['core/bold'] }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(ButtonIcon, {})] }) }); @@ -1150,7 +1150,8 @@ function save({ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("button", { type: "submit", ..._wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockProps.save({ - className: buttonClasses + className: buttonClasses, + style: colorProps.style }), children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.RichText.Content, { tagName: "span", @@ -1165,6 +1166,7 @@ function save({ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("button", { type: "submit", className: buttonClasses, + style: colorProps.style, children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.RichText.Content, { tagName: "span", value: text @@ -1327,7 +1329,7 @@ function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else i \**************************************/ /***/ ((module) => { -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"formello/button","title":"Button","description":"A block to display form button.","category":"formello","icon":"button","ancestor":["formello/form"],"textdomain":"formello","usesContext":["formello/settings"],"attributes":{"text":{"type":"string","source":"text","selector":"span","default":"Submit"},"alignment":{"type":"string","default":"left"},"noWrapper":{"type":"boolean"},"type":{"type":"string","default":"Loading"},"style":{"type":"object","default":{"color":{"background":"#000000","text":"#ffffff"},"padding":{"top":"10"}}}},"selectors":{"root":".wp-block-formello-button","color":".wp-block-formello-button > button","typography":{"root":".wp-block-formello-button > button","text-decoration":".wp-block-formello-button > button"}},"supports":{"html":false,"lock":false,"multiple":false,"reusable":false,"inserter":true,"color":{"background":true,"text":true,"gradients":true,"__experimentalSkipSerialization":true},"spacing":{"padding":true,"margin":true},"__experimentalBorder":{"radius":true,"width":true,"color":true,"style":true},"typography":{"fontSize":true}},"editorScript":"file:./index.js","style":"file:./style-index.css","render":"file:./render.php"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"formello/button","title":"Button","description":"A block to display form button.","category":"formello","icon":"button","ancestor":["formello/form"],"textdomain":"formello","usesContext":["formello/settings"],"attributes":{"text":{"type":"string","source":"text","selector":"span","default":"Submit"},"alignment":{"type":"string","default":"left"},"noWrapper":{"type":"boolean"},"type":{"type":"string","default":"Loading"},"style":{"type":"object","default":{"color":{"background":"#000000","text":"#ffffff"},"padding":{"top":"10"}}}},"selectors":{"root":".wp-block-formello-button","color":{"background":".wp-block-formello-button > button","text":".wp-block-formello-button > button"},"typography":{"root":".wp-block-formello-button > button","text-decoration":".wp-block-formello-button > button"}},"supports":{"html":false,"lock":false,"multiple":false,"reusable":false,"inserter":true,"color":{"background":true,"text":true,"gradients":true,"__experimentalSkipSerialization":true},"spacing":{"padding":true,"margin":true},"__experimentalBorder":{"radius":true,"width":true,"color":true,"style":true},"typography":{"fontSize":true}},"example":{"attributes":{"text":"Submit"}},"editorScript":"file:./index.js","style":"file:./style-index.css","render":"file:./render.php"}'); /***/ }) diff --git a/build/blocks/button/index.js.map b/build/blocks/button/index.js.map index 14d36346..4a1a85fa 100644 --- a/build/blocks/button/index.js.map +++ b/build/blocks/button/index.js.map @@ -1 +1 @@ -{"version":3,"file":"blocks/button/index.js","mappings":"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DAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,6CAA6C,gDAAmB;AACnE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG;AACH;AACqC;AACrC,iEAAe,oBAAoB,opFAAopF;;;;;;;;;;;;;;;;;AC/GvrF;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,uBAAuB,gDAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,sCAAsC,gDAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACkD;AAClD,iEAAe,oBAAoB,4wBAA4wB;;;;;;;;;;;;;;;;;ACnC/yB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,sCAAsC,gDAAmB;AAC5D;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,sCAAsC,gDAAmB;AAC5D;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AAC+C;AAC/C,iEAAe,oBAAoB,oyDAAoyD;;;;;;;;;;;;;;;;;AC5Cv0D;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACwC;AACxC,iEAAe,oBAAoB,wgCAAwgC;;;;;;;;;;;;;;;;;ACvB3iC;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACyC;AACzC,iEAAe,oBAAoB,gnBAAgnB;;;;;;;;;;;;;;;;;ACpBnpB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,GAAG,sCAAsC,gDAAmB;AAC5D;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,GAAG,sCAAsC,gDAAmB;AAC5D;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,GAAG;AACH;AACyC;AACzC,iEAAe,oBAAoB,gnCAAgnC;;;;;;;;;;;;;;;;;AC9CnpC;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,mCAAmC,gDAAmB;AACzD;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB,GAAG,gBAAgB,gDAAmB;AACtC;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB,GAAG,iBAAiB,gDAAmB;AACvC;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB,GAAG,gBAAgB,gDAAmB;AACtC;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB,GAAG;AACH;AACsC;AACtC,iEAAe,oBAAoB,g5DAAg5D;;;;;;;;;;;;;;;;;AC3Dn7D;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,6CAA6C,gDAAmB;AACnE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB,GAAG,gBAAgB,gDAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,gBAAgB,gDAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB,GAAG,gBAAgB,gDAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG;AACH;AAC0C;AAC1C,iEAAe,oBAAoB,o9DAAo9D;;;;;;;;;;;;;;;;;;;;;;;;;;AC/El9D;AASJ;AAOF;AACe;AACtB;AAcK;AAAA;AAE7B,MAAM+B,kBAAkB,GAAG,CAC1B;EACCC,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAEjC,mDAAE,CAAE,YAAY,EAAE,UAAW,CAAC;EACrCkC,KAAK,EAAE;AACR,CAAC,EACD;EACCF,IAAI,EAAE,cAAc;EACpBC,KAAK,EAAEjC,mDAAE,CAAE,cAAc,EAAE,UAAW,CAAC;EACvCkC,KAAK,EAAE;AACR,CAAC,EACD;EACCF,IAAI,EAAE,aAAa;EACnBC,KAAK,EAAEjC,mDAAE,CAAE,aAAa,EAAE,UAAW,CAAC;EACtCkC,KAAK,EAAE;AACR,CAAC,EACD;EACCF,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAEjC,mDAAE,CAAE,MAAM,EAAE,UAAW,CAAC;EAC/BkC,KAAK,EAAE;AACR,CAAC,CACD;AAEc,SAASC,IAAIA,CAAE;EAAEC,UAAU;EAAEC;AAAc,CAAC,EAAG;EAC7D,MAAM;IAAEC,IAAI;IAAEC,SAAS;IAAEC;EAAU,CAAC,GAAGJ,UAAU;EAEjD,MAAMK,KAAK,GAAG;IACb1B,OAAO;IACPC,QAAQ;IACRC,KAAK;IACLC,QAAQ;IACRC,cAAc;IACdC,iBAAiB;IACjBC,KAAK;IACLC,YAAY;IACZC,IAAI;IACJC,OAAO;IACPC,IAAI;IACJC,SAASA,uDAAAA;EACV,CAAC;EAED,MAAMgB,UAAU,GAAGD,KAAK,CAAEH,IAAI,CAAE;EAEhC,MAAM,CAAEK,QAAQ,EAAEC,WAAW,CAAE,GAAG/B,4DAAQ,CAAE,KAAM,CAAC;;EAEnD;EACA;;EAEA,MAAMgC,UAAU,GAAGrC,oFAAa,CAAE4B,UAAW,CAAC;EAC9C,MAAMU,WAAW,GAAGxC,qFAAc,CAAE8B,UAAW,CAAC;EAEhD,MAAMW,aAAa,GAAGjC,gDAAI,CACzB,mBAAmB,EACnBgC,WAAW,CAACE,SAAS,EACrBH,UAAU,CAACG,SAAS,EACpB;IACC,mCAAmC,EAAEL;EACtC,CACD,CAAC;EAED,MAAMM,UAAU,GAAGhD,sEAAa,CAAE;IACjC+C,SAAS,EAAET;EACZ,CAAE,CAAC;EAEH,oBACCX,sDAAA;IAAA,GAAUqB,UAAU;IAAAC,QAAA,eACnBpB,uDAAA;MAAQkB,SAAS,EAAGD,aAAe;MAAAG,QAAA,GAChC,CAAEV,SAAS,iBACZZ,sDAAA,CAAC1B,kEAAa;QAAAgD,QAAA,eACbtB,sDAAA,CAAChB,+DAAY;UAAAsC,QAAA,eACZtB,sDAAA,CAACjB,sEAAmB;YACnBqB,IAAI,EAAG,QAAQ,GAAGO,SAAW;YAC7BY,KAAK,EAAGnD,mDAAE,CAAE,OAAQ,CAAG;YACvBoD,QAAQ,EAAGrB,kBAAkB,CAACsB,GAAG,CAC9BC,OAAO,IAAM;cACd,MAAM;gBAAEpB;cAAM,CAAC,GAAGoB,OAAO;cACzB,MAAMC,QAAQ,GAAGrB,KAAK,KAAKK,SAAS;cAEpC,OAAO;gBACN,GAAGe,OAAO;gBACVC,QAAQ;gBACRC,OAAO,EAAEA,CAAA,KACRnB,aAAa,CAAE;kBACdE,SAAS,EAAEL;gBACZ,CAAE;cACJ,CAAC;YACF,CACD;UAAG,CACH;QAAC,CACW;MAAC,CACD,CACf,eACDJ,uDAAA,CAAC3B,8EAAyB;QAAA+C,QAAA,gBACzBtB,sDAAA,CAAClB,gEAAa;UACbyC,KAAK,EAAGnD,mDAAE,CAAE,WAAW,EAAE,UAAW,CAAG;UACvCyD,OAAO,EAAGd,QAAU;UACpBe,QAAQ,EAAKC,GAAG,IAAM;YACrBf,WAAW,CAAEe,GAAI,CAAC;UACnB;QAAG,CACH,CAAC,eACF/B,sDAAA,CAACnB,gEAAa;UACb0C,KAAK,EAAGnD,mDAAE,CAAE,WAAW,EAAE,UAAW,CAAG;UACvC4D,KAAK,EAAGxB,UAAU,CAACE,IAAM;UACzBuB,OAAO,EAAGC,MAAM,CAACC,IAAI,CAAEtB,KAAM,CAAC,CAACY,GAAG,CAAIrB,IAAI,IAAM;YAC/C,OAAO;cAAEmB,KAAK,EAAEnB,IAAI;cAAE4B,KAAK,EAAE5B;YAAK,CAAC;UACpC,CAAE,CAAG;UACL0B,QAAQ,EAAKC,GAAG,IAAM;YACrBtB,aAAa,CAAE;cAAEC,IAAI,EAAEqB;YAAI,CAAE,CAAC;UAC/B;QAAG,CACH,CAAC;MAAA,CACwB,CAAC,eAC5B/B,sDAAA,CAACxB,6DAAQ;QACR4D,OAAO,EAAC,MAAM;QACdJ,KAAK,EAAGxB,UAAU,CAAC6B,IAAM;QACzBP,QAAQ,EAAKC,GAAG,IAAMtB,aAAa,CAAE;UAAE4B,IAAI,EAAEN;QAAI,CAAE,CAAG;QACtDO,WAAW,EAAGlE,mDAAE,CAAE,oBAAoB,EAAE,UAAW,CAAG;QACtDmE,cAAc,EAAG,CAAE,WAAW,CAAI;QAClCnB,SAAS,EAAC;MAAe,CACzB,CAAC,eACFpB,sDAAA,CAACc,UAAU,IAAE,CAAC;IAAA,CACP;EAAC,CACL,CAAC;AAER;;;;;;;;;;;;;;;;;AC7JmE;AACzC;AACA;AACU;AACd;;AAEtB;AACA;AACA;AACA;AACA;AACA0B,oEAAiB,CAAEG,wCAAQ,EAAE;EAC5BC,UAAU,EAAE;IACXC,IAAI,EAAE,CACL;MACCnC,IAAI,EAAE,KAAK;MACXoC,OAAO,EAAIC,IAAI,IAAMA,IAAI,CAACC,QAAQ,KAAK,QAAQ;MAC/CC,SAAS,EAAEA,CAAA,KAAM;QAChB,OAAOR,8DAAW,CAAE,iBAAkB,CAAC;MACxC;IACD,CAAC;EAEH,CAAC;EAEDrC,IAAI,EAAE;IACL;IACA8C,UAAU,EAAE,MAAM;IAClB;IACAC,UAAU,EAAE,SAAS;IACrBC,GAAG,EAAE;EACN,CAAC;EAEDC,QAAQ,EAAE;IACT,GAAGV,iDAAiBU;IACpB;EACD,CAAC;EAED;AACD;AACA;EACCC,IAAI,EAAE/C,6CAAI;EAEV;AACD;AACA;EACCmC,IAAIA,+CAAAA;AACL,CAAE,CAAC;;;;;;;;;;;;;;;;;;;;AC9CqB;AAMS;AAcJ;AAAA;AAEd,SAASA,IAAIA,CAAE;EAAElC;AAAW,CAAC,EAAG;EAC9C,MAAM;IAAE6B,IAAI;IAAE1B,SAAS;IAAED,IAAI;IAAEE;EAAU,CAAC,GAAGJ,UAAU;EAEvD,MAAMK,KAAK,GAAG;IACb1B,OAAO;IACPC,QAAQ;IACRC,KAAK;IACLC,QAAQ;IACRC,cAAc;IACdC,iBAAiB;IACjBC,KAAK;IACLC,YAAY;IACZC,IAAI;IACJC,OAAO;IACPC,IAAI;IACJC,SAASA,uDAAAA;EACV,CAAC;EAED,MAAMgB,UAAU,GAAGD,KAAK,CAAEH,IAAI,CAAE;EAEhC,MAAMQ,WAAW,GAAGsC,gGAAyB,CAAEhD,UAAW,CAAC;EAC3D,MAAMS,UAAU,GAAGyC,+FAAwB,CAAElD,UAAW,CAAC;EAEzD,MAAMW,aAAa,GAAGjC,gDAAI,CACzB,mBAAmB,EACnBgC,WAAW,CAACE,SAAS,EACrBH,UAAU,CAACG,SACZ,CAAC;EAED,IAAKR,SAAS,EAAG;IAChB,oBACCV,uDAAA;MACCQ,IAAI,EAAC,QAAQ;MAAA,GACRrC,kEAAa,CAACqE,IAAI,CAAE;QACxBtB,SAAS,EAAED;MACZ,CAAE,CAAC;MAAAG,QAAA,gBAEHtB,sDAAA,CAACxB,6DAAQ,CAACmF,OAAO;QAACvB,OAAO,EAAC,MAAM;QAACJ,KAAK,EAAGK;MAAM,CAAE,CAAC,eAClDrC,sDAAA,CAACc,UAAU,IAAE,CAAC;IAAA,CACP,CAAC;EAEX;EAEA,oBACCd,sDAAA;IAAA,GACM3B,kEAAa,CAACqE,IAAI,CAAE;MACxBtB,SAAS,EAAET;IACZ,CAAE,CAAC;IAAAW,QAAA,eAEHpB,uDAAA;MAAQQ,IAAI,EAAC,QAAQ;MAACU,SAAS,EAAGD,aAAe;MAAAG,QAAA,gBAChDtB,sDAAA,CAACxB,6DAAQ,CAACmF,OAAO;QAACvB,OAAO,EAAC,MAAM;QAACJ,KAAK,EAAGK;MAAM,CAAE,CAAC,eAClDrC,sDAAA,CAACc,UAAU,IAAE,CAAC;IAAA,CACP;EAAC,CACL,CAAC;AAER;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7E+E;AACe;AACjB;AACM;AACN;AACM;AACE;AACA;AACa;AACO;AAC1B;AACS;;;;;;;;;;;;ACXxF;;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;;;;;;ACAA,cAAc,aAAa,+CAA+C,gDAAgD,eAAe,QAAQ,IAAI,0CAA0C,yCAAyC,SAAgB,gBAAgB,wCAAwC,IAAI,mDAAmD,SAAS,iEAAe,IAAI;;;;;;;;;;;;;;;;UCAnY;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC7BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEnDA;UACA;UACA;UACA;UACA","sources":["webpack://formello/./assets/icons/loading/audio.svg","webpack://formello/./assets/icons/loading/ball-triangle.svg","webpack://formello/./assets/icons/loading/bars.svg","webpack://formello/./assets/icons/loading/circles.svg","webpack://formello/./assets/icons/loading/grid.svg","webpack://formello/./assets/icons/loading/loading-circle-path.svg","webpack://formello/./assets/icons/loading/loading-circles.svg","webpack://formello/./assets/icons/loading/loading.svg","webpack://formello/./assets/icons/loading/loading2.svg","webpack://formello/./assets/icons/loading/loading4.svg","webpack://formello/./assets/icons/loading/pulse.svg","webpack://formello/./assets/icons/loading/three-dots.svg","webpack://formello/./src/blocks/button/edit.js","webpack://formello/./src/blocks/button/index.js","webpack://formello/./src/blocks/button/save.js","webpack://formello/./src/icons/loading.js","webpack://formello/./src/blocks/button/style.scss?330c","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"blocks\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/./node_modules/clsx/dist/clsx.mjs","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/chunk loaded","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/webpack/runtime/jsonp chunk loading","webpack://formello/webpack/before-startup","webpack://formello/webpack/startup","webpack://formello/webpack/after-startup"],"sourcesContent":["var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgAudio = function SvgAudio(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"#FFF\",\n viewBox: \"0 0 55 80\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"matrix(1 0 0 -1 0 80)\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 10,\n height: 20,\n rx: 3\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"4.3s\",\n repeatCount: \"indefinite\",\n values: \"20;45;57;80;64;32;66;45;64;23;66;13;64;56;34;34;2;23;76;79;20\"\n })), /*#__PURE__*/React.createElement(\"rect\", {\n width: 10,\n height: 80,\n x: 15,\n rx: 3\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n values: \"80;55;33;5;75;23;73;33;12;14;60;80\"\n })), /*#__PURE__*/React.createElement(\"rect\", {\n width: 10,\n height: 50,\n x: 30,\n rx: 3\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"1.4s\",\n repeatCount: \"indefinite\",\n values: \"50;34;78;23;56;23;34;76;80;54;21;50\"\n })), /*#__PURE__*/React.createElement(\"rect\", {\n width: 10,\n height: 30,\n x: 45,\n rx: 3\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n values: \"30;45;13;80;56;72;45;76;34;23;67;30\"\n })))));\n};\nexport { SvgAudio as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBCeSBTYW0gSGVyYmVydCAoQHNoZXJiKSwgZm9yIGV2ZXJ5b25lLiBNb3JlIEAgaHR0cDovL2dvby5nbC83QUp6YkwgLS0+Cjxzdmcgdmlld0JveD0iMCAwIDU1IDgwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiNGRkYiPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA4MCkiPgogICAgICAgIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSIyMCIgcng9IjMiPgogICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJoZWlnaHQiCiAgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjQuM3MiCiAgICAgICAgICAgICAgICAgdmFsdWVzPSIyMDs0NTs1Nzs4MDs2NDszMjs2Njs0NTs2NDsyMzs2NjsxMzs2NDs1NjszNDszNDsyOzIzOzc2Ozc5OzIwIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgIDwvcmVjdD4KICAgICAgICA8cmVjdCB4PSIxNSIgd2lkdGg9IjEwIiBoZWlnaHQ9IjgwIiByeD0iMyI+CiAgICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIKICAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMnMiCiAgICAgICAgICAgICAgICAgdmFsdWVzPSI4MDs1NTszMzs1Ozc1OzIzOzczOzMzOzEyOzE0OzYwOzgwIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgIDwvcmVjdD4KICAgICAgICA8cmVjdCB4PSIzMCIgd2lkdGg9IjEwIiBoZWlnaHQ9IjUwIiByeD0iMyI+CiAgICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIKICAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIKICAgICAgICAgICAgICAgICB2YWx1ZXM9IjUwOzM0Ozc4OzIzOzU2OzIzOzM0Ozc2OzgwOzU0OzIxOzUwIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgIDwvcmVjdD4KICAgICAgICA8cmVjdCB4PSI0NSIgd2lkdGg9IjEwIiBoZWlnaHQ9IjMwIiByeD0iMyI+CiAgICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIKICAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMnMiCiAgICAgICAgICAgICAgICAgdmFsdWVzPSIzMDs0NTsxMzs4MDs1Njs3Mjs0NTs3NjszNDsyMzs2NzszMCIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgICAgICA8L3JlY3Q+CiAgICA8L2c+Cjwvc3ZnPg==\";","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgBallTriangle = function SvgBallTriangle(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n stroke: \"currentColor\",\n viewBox: \"0 0 57 57\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeWidth: 2,\n transform: \"translate(1 1)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 5,\n cy: 50,\n r: 5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2.2s\",\n repeatCount: \"indefinite\",\n values: \"50;5;50;50\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cx\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2.2s\",\n repeatCount: \"indefinite\",\n values: \"5;27;49;5\"\n })), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 27,\n cy: 5,\n r: 5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2.2s\",\n from: 5,\n repeatCount: \"indefinite\",\n to: 5,\n values: \"5;50;50;5\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cx\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2.2s\",\n from: 27,\n repeatCount: \"indefinite\",\n to: 27,\n values: \"27;49;5;27\"\n })), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 49,\n cy: 50,\n r: 5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2.2s\",\n repeatCount: \"indefinite\",\n values: \"50;50;5;50\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cx\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2.2s\",\n from: 49,\n repeatCount: \"indefinite\",\n to: 49,\n values: \"49;5;27;49\"\n })))));\n};\nexport { SvgBallTriangle as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBCeSBTYW0gSGVyYmVydCAoQHNoZXJiKSwgZm9yIGV2ZXJ5b25lLiBNb3JlIEAgaHR0cDovL2dvby5nbC83QUp6YkwgLS0+CjwhLS0gVG9kbzogYWRkIGVhc2luZyAtLT4KPHN2ZyB2aWV3Qm94PSIwIDAgNTcgNTciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiPgogICAgPGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEpIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSI1IiBjeT0iNTAiIHI9IjUiPgogICAgICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3kiCiAgICAgICAgICAgICAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIyLjJzIgogICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9IjUwOzU7NTA7NTAiCiAgICAgICAgICAgICAgICAgICAgIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giCiAgICAgICAgICAgICAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIyLjJzIgogICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9IjU7Mjc7NDk7NSIKICAgICAgICAgICAgICAgICAgICAgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgICAgIDwvY2lyY2xlPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNyIgY3k9IjUiIHI9IjUiPgogICAgICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3kiCiAgICAgICAgICAgICAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIyLjJzIgogICAgICAgICAgICAgICAgICAgICBmcm9tPSI1IiB0bz0iNSIKICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPSI1OzUwOzUwOzUiCiAgICAgICAgICAgICAgICAgICAgIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giCiAgICAgICAgICAgICAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIyLjJzIgogICAgICAgICAgICAgICAgICAgICBmcm9tPSIyNyIgdG89IjI3IgogICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9IjI3OzQ5OzU7MjciCiAgICAgICAgICAgICAgICAgICAgIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgICAgICA8L2NpcmNsZT4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iNDkiIGN5PSI1MCIgcj0iNSI+CiAgICAgICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJjeSIKICAgICAgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjIuMnMiCiAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz0iNTA7NTA7NTs1MCIKICAgICAgICAgICAgICAgICAgICAgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJjeCIKICAgICAgICAgICAgICAgICAgICAgZnJvbT0iNDkiIHRvPSI0OSIKICAgICAgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjIuMnMiCiAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz0iNDk7NTsyNzs0OSIKICAgICAgICAgICAgICAgICAgICAgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgICAgIDwvY2lyY2xlPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+\";","var _rect, _rect2, _rect3, _rect4, _rect5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgBars = function SvgBars(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"#fff\",\n viewBox: \"0 0 135 140\"\n }, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 15,\n height: 120,\n y: 10,\n rx: 6\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.5s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.5s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\"\n }))), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 15,\n height: 120,\n x: 30,\n y: 10,\n rx: 6\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.25s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.25s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\"\n }))), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 15,\n height: 140,\n x: 60,\n rx: 6\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\"\n }))), _rect4 || (_rect4 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 15,\n height: 120,\n x: 90,\n y: 10,\n rx: 6\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.25s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.25s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\"\n }))), _rect5 || (_rect5 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 15,\n height: 120,\n x: 120,\n y: 10,\n rx: 6\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.5s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.5s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\"\n }))));\n};\nexport { SvgBars as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTM1IDE0MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjZmZmIj4KICAgIDxyZWN0IHk9IjEwIiB3aWR0aD0iMTUiIGhlaWdodD0iMTIwIiByeD0iNiI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iaGVpZ2h0IgogICAgICAgICAgICAgYmVnaW49IjAuNXMiIGR1cj0iMXMiCiAgICAgICAgICAgICB2YWx1ZXM9IjEyMDsxMTA7MTAwOzkwOzgwOzcwOzYwOzUwOzQwOzE0MDsxMjAiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJ5IgogICAgICAgICAgICAgYmVnaW49IjAuNXMiIGR1cj0iMXMiCiAgICAgICAgICAgICB2YWx1ZXM9IjEwOzE1OzIwOzI1OzMwOzM1OzQwOzQ1OzUwOzA7MTAiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9IjMwIiB5PSIxMCIgd2lkdGg9IjE1IiBoZWlnaHQ9IjEyMCIgcng9IjYiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIKICAgICAgICAgICAgIGJlZ2luPSIwLjI1cyIgZHVyPSIxcyIKICAgICAgICAgICAgIHZhbHVlcz0iMTIwOzExMDsxMDA7OTA7ODA7NzA7NjA7NTA7NDA7MTQwOzEyMCIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InkiCiAgICAgICAgICAgICBiZWdpbj0iMC4yNXMiIGR1cj0iMXMiCiAgICAgICAgICAgICB2YWx1ZXM9IjEwOzE1OzIwOzI1OzMwOzM1OzQwOzQ1OzUwOzA7MTAiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9IjYwIiB3aWR0aD0iMTUiIGhlaWdodD0iMTQwIiByeD0iNiI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iaGVpZ2h0IgogICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjFzIgogICAgICAgICAgICAgdmFsdWVzPSIxMjA7MTEwOzEwMDs5MDs4MDs3MDs2MDs1MDs0MDsxNDA7MTIwIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIKICAgICAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIxcyIKICAgICAgICAgICAgIHZhbHVlcz0iMTA7MTU7MjA7MjU7MzA7MzU7NDA7NDU7NTA7MDsxMCIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iOTAiIHk9IjEwIiB3aWR0aD0iMTUiIGhlaWdodD0iMTIwIiByeD0iNiI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iaGVpZ2h0IgogICAgICAgICAgICAgYmVnaW49IjAuMjVzIiBkdXI9IjFzIgogICAgICAgICAgICAgdmFsdWVzPSIxMjA7MTEwOzEwMDs5MDs4MDs3MDs2MDs1MDs0MDsxNDA7MTIwIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIKICAgICAgICAgICAgIGJlZ2luPSIwLjI1cyIgZHVyPSIxcyIKICAgICAgICAgICAgIHZhbHVlcz0iMTA7MTU7MjA7MjU7MzA7MzU7NDA7NDU7NTA7MDsxMCIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iMTIwIiB5PSIxMCIgd2lkdGg9IjE1IiBoZWlnaHQ9IjEyMCIgcng9IjYiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIKICAgICAgICAgICAgIGJlZ2luPSIwLjVzIiBkdXI9IjFzIgogICAgICAgICAgICAgdmFsdWVzPSIxMjA7MTEwOzEwMDs5MDs4MDs3MDs2MDs1MDs0MDsxNDA7MTIwIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIKICAgICAgICAgICAgIGJlZ2luPSIwLjVzIiBkdXI9IjFzIgogICAgICAgICAgICAgdmFsdWVzPSIxMDsxNTsyMDsyNTszMDszNTs0MDs0NTs1MDswOzEwIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICA8L3JlY3Q+Cjwvc3ZnPgo=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCircles = function SvgCircles(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"#fff\",\n viewBox: \"0 0 135 135\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.447 58c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zm9.448 9.447c0 5.523 4.477 10 10 10 5.522 0 10-4.477 10-10s-4.478-10-10-10c-5.523 0-10 4.477-10 10zm-9.448 9.448c-5.523 0-10 4.477-10 10 0 5.522 4.477 10 10 10s10-4.478 10-10c0-5.523-4.477-10-10-10zM58 67.447c0-5.523-4.477-10-10-10s-10 4.477-10 10 4.477 10 10 10 10-4.477 10-10z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n dur: \"1.5s\",\n from: \"0 67 67\",\n repeatCount: \"indefinite\",\n to: \"-360 67 67\",\n type: \"rotate\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.19 40.31c6.627 0 12-5.374 12-12 0-6.628-5.373-12-12-12-6.628 0-12 5.372-12 12 0 6.626 5.372 12 12 12zm30.72-19.825c4.686 4.687 12.284 4.687 16.97 0 4.686-4.686 4.686-12.284 0-16.97-4.686-4.687-12.284-4.687-16.97 0-4.687 4.686-4.687 12.284 0 16.97zm35.74 7.705c0 6.627 5.37 12 12 12 6.626 0 12-5.373 12-12 0-6.628-5.374-12-12-12-6.63 0-12 5.372-12 12zm19.822 30.72c-4.686 4.686-4.686 12.284 0 16.97 4.687 4.686 12.285 4.686 16.97 0 4.687-4.686 4.687-12.284 0-16.97-4.685-4.687-12.283-4.687-16.97 0zm-7.704 35.74c-6.627 0-12 5.37-12 12 0 6.626 5.373 12 12 12s12-5.374 12-12c0-6.63-5.373-12-12-12zm-30.72 19.822c-4.686-4.686-12.284-4.686-16.97 0-4.686 4.687-4.686 12.285 0 16.97 4.686 4.687 12.284 4.687 16.97 0 4.687-4.685 4.687-12.283 0-16.97zm-35.74-7.704c0-6.627-5.372-12-12-12-6.626 0-12 5.373-12 12s5.374 12 12 12c6.628 0 12-5.373 12-12zm-19.823-30.72c4.687-4.686 4.687-12.284 0-16.97-4.686-4.686-12.284-4.686-16.97 0-4.687 4.686-4.687 12.284 0 16.97 4.686 4.687 12.284 4.687 16.97 0z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n dur: \"4s\",\n from: \"0 67 67\",\n repeatCount: \"indefinite\",\n to: \"360 67 67\",\n type: \"rotate\"\n }))));\n};\nexport { SvgCircles as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTM1IDEzNSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjZmZmIj4KICAgIDxwYXRoIGQ9Ik02Ny40NDcgNThjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTAtMTAgNC40NzctMTAgMTAgNC40NzcgMTAgMTAgMTB6bTkuNDQ4IDkuNDQ3YzAgNS41MjMgNC40NzcgMTAgMTAgMTAgNS41MjIgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzgtMTAtMTAtMTBjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB6bS05LjQ0OCA5LjQ0OGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMCAwIDUuNTIyIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc4IDEwLTEwYzAtNS41MjMtNC40NzctMTAtMTAtMTB6TTU4IDY3LjQ0N2MwLTUuNTIzLTQuNDc3LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMCA0LjQ3NyAxMCAxMCAxMCAxMC00LjQ3NyAxMC0xMHoiPgogICAgICAgIDxhbmltYXRlVHJhbnNmb3JtCiAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIKICAgICAgICAgICAgdHlwZT0icm90YXRlIgogICAgICAgICAgICBmcm9tPSIwIDY3IDY3IgogICAgICAgICAgICB0bz0iLTM2MCA2NyA2NyIKICAgICAgICAgICAgZHVyPSIxLjVzIgogICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9wYXRoPgogICAgPHBhdGggZD0iTTI4LjE5IDQwLjMxYzYuNjI3IDAgMTItNS4zNzQgMTItMTIgMC02LjYyOC01LjM3My0xMi0xMi0xMi02LjYyOCAwLTEyIDUuMzcyLTEyIDEyIDAgNi42MjYgNS4zNzIgMTIgMTIgMTJ6bTMwLjcyLTE5LjgyNWM0LjY4NiA0LjY4NyAxMi4yODQgNC42ODcgMTYuOTcgMCA0LjY4Ni00LjY4NiA0LjY4Ni0xMi4yODQgMC0xNi45Ny00LjY4Ni00LjY4Ny0xMi4yODQtNC42ODctMTYuOTcgMC00LjY4NyA0LjY4Ni00LjY4NyAxMi4yODQgMCAxNi45N3ptMzUuNzQgNy43MDVjMCA2LjYyNyA1LjM3IDEyIDEyIDEyIDYuNjI2IDAgMTItNS4zNzMgMTItMTIgMC02LjYyOC01LjM3NC0xMi0xMi0xMi02LjYzIDAtMTIgNS4zNzItMTIgMTJ6bTE5LjgyMiAzMC43MmMtNC42ODYgNC42ODYtNC42ODYgMTIuMjg0IDAgMTYuOTcgNC42ODcgNC42ODYgMTIuMjg1IDQuNjg2IDE2Ljk3IDAgNC42ODctNC42ODYgNC42ODctMTIuMjg0IDAtMTYuOTctNC42ODUtNC42ODctMTIuMjgzLTQuNjg3LTE2Ljk3IDB6bS03LjcwNCAzNS43NGMtNi42MjcgMC0xMiA1LjM3LTEyIDEyIDAgNi42MjYgNS4zNzMgMTIgMTIgMTJzMTItNS4zNzQgMTItMTJjMC02LjYzLTUuMzczLTEyLTEyLTEyem0tMzAuNzIgMTkuODIyYy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcgMC00LjY4NiA0LjY4Ny00LjY4NiAxMi4yODUgMCAxNi45NyA0LjY4NiA0LjY4NyAxMi4yODQgNC42ODcgMTYuOTcgMCA0LjY4Ny00LjY4NSA0LjY4Ny0xMi4yODMgMC0xNi45N3ptLTM1Ljc0LTcuNzA0YzAtNi42MjctNS4zNzItMTItMTItMTItNi42MjYgMC0xMiA1LjM3My0xMiAxMnM1LjM3NCAxMiAxMiAxMmM2LjYyOCAwIDEyLTUuMzczIDEyLTEyem0tMTkuODIzLTMwLjcyYzQuNjg3LTQuNjg2IDQuNjg3LTEyLjI4NCAwLTE2Ljk3LTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NyAwLTQuNjg3IDQuNjg2LTQuNjg3IDEyLjI4NCAwIDE2Ljk3IDQuNjg2IDQuNjg3IDEyLjI4NCA0LjY4NyAxNi45NyAweiI+CiAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0KICAgICAgICAgICAgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIgogICAgICAgICAgICB0eXBlPSJyb3RhdGUiCiAgICAgICAgICAgIGZyb209IjAgNjcgNjciCiAgICAgICAgICAgIHRvPSIzNjAgNjcgNjciCiAgICAgICAgICAgIGR1cj0iNHMiCiAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICA8L3BhdGg+Cjwvc3ZnPgo=\";","var _circle, _circle2, _circle3, _circle4, _circle5, _circle6, _circle7, _circle8, _circle9;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGrid = function SvgGrid(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"#fff\",\n viewBox: \"0 0 105 105\"\n }, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12.5,\n cy: 12.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12.5,\n cy: 52.5,\n r: 12.5,\n fillOpacity: 0.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"100ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 52.5,\n cy: 12.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"300ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 52.5,\n cy: 52.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"600ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle5 || (_circle5 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 92.5,\n cy: 12.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"800ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle6 || (_circle6 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 92.5,\n cy: 52.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"400ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle7 || (_circle7 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12.5,\n cy: 92.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"700ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle8 || (_circle8 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 52.5,\n cy: 92.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"500ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle9 || (_circle9 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 92.5,\n cy: 92.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"200ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))));\n};\nexport { SvgGrid as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTA1IDEwNSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjZmZmIj4KICAgIDxjaXJjbGUgY3g9IjEyLjUiIGN5PSIxMi41IiByPSIxMi41Ij4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsLW9wYWNpdHkiCiAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIxcyIKICAgICAgICAgdmFsdWVzPSIxOy4yOzEiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIxMi41IiBjeT0iNTIuNSIgcj0iMTIuNSIgZmlsbC1vcGFjaXR5PSIuNSI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbC1vcGFjaXR5IgogICAgICAgICBiZWdpbj0iMTAwbXMiIGR1cj0iMXMiCiAgICAgICAgIHZhbHVlcz0iMTsuMjsxIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iNTIuNSIgY3k9IjEyLjUiIHI9IjEyLjUiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwtb3BhY2l0eSIKICAgICAgICAgYmVnaW49IjMwMG1zIiBkdXI9IjFzIgogICAgICAgICB2YWx1ZXM9IjE7LjI7MSIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjUyLjUiIGN5PSI1Mi41IiByPSIxMi41Ij4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsLW9wYWNpdHkiCiAgICAgICAgIGJlZ2luPSI2MDBtcyIgZHVyPSIxcyIKICAgICAgICAgdmFsdWVzPSIxOy4yOzEiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSI5Mi41IiBjeT0iMTIuNSIgcj0iMTIuNSI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbC1vcGFjaXR5IgogICAgICAgICBiZWdpbj0iODAwbXMiIGR1cj0iMXMiCiAgICAgICAgIHZhbHVlcz0iMTsuMjsxIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iOTIuNSIgY3k9IjUyLjUiIHI9IjEyLjUiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwtb3BhY2l0eSIKICAgICAgICAgYmVnaW49IjQwMG1zIiBkdXI9IjFzIgogICAgICAgICB2YWx1ZXM9IjE7LjI7MSIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjEyLjUiIGN5PSI5Mi41IiByPSIxMi41Ij4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsLW9wYWNpdHkiCiAgICAgICAgIGJlZ2luPSI3MDBtcyIgZHVyPSIxcyIKICAgICAgICAgdmFsdWVzPSIxOy4yOzEiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSI1Mi41IiBjeT0iOTIuNSIgcj0iMTIuNSI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbC1vcGFjaXR5IgogICAgICAgICBiZWdpbj0iNTAwbXMiIGR1cj0iMXMiCiAgICAgICAgIHZhbHVlcz0iMTsuMjsxIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iOTIuNSIgY3k9IjkyLjUiIHI9IjEyLjUiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwtb3BhY2l0eSIKICAgICAgICAgYmVnaW49IjIwMG1zIiBkdXI9IjFzIgogICAgICAgICB2YWx1ZXM9IjE7LjI7MSIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICA8L2NpcmNsZT4KPC9zdmc+Cg==\";","var _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLoadingCirclePath = function SvgLoadingCirclePath(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n viewBox: \"0 0 100 100\"\n }, props), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50,\n cy: 50,\n r: 44,\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 4,\n style: {\n opacity: 0.5\n }\n }), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 54,\n r: 6,\n fill: \"#fff\",\n stroke: \"currentColor\",\n strokeWidth: 3\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n dur: \"1s\",\n from: \"0 50 48\",\n repeatCount: \"indefinite\",\n to: \"360 50 52\",\n type: \"rotate\"\n }))));\n};\nexport { SvgLoadingCirclePath as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMMyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCiAgdmlld0JveD0iMCAwIDEwMCAxMDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDAgMCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CiAgPGNpcmNsZSBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSI0IiBjeD0iNTAiIGN5PSI1MCIgcj0iNDQiIHN0eWxlPSJvcGFjaXR5OjAuNTsiLz4KICA8Y2lyY2xlIGZpbGw9IiNmZmYiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjMiIGN4PSI4IiBjeT0iNTQiIHI9IjYiID4KICAgIDxhbmltYXRlVHJhbnNmb3JtCiAgICAgIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIKICAgICAgZHVyPSIxcyIKICAgICAgdHlwZT0icm90YXRlIgogICAgICBmcm9tPSIwIDUwIDQ4IgogICAgICB0bz0iMzYwIDUwIDUyIgogICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgIAogIDwvY2lyY2xlPgo8L3N2Zz4=\";","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLoadingCircles = function SvgLoadingCircles(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n viewBox: \"0 0 100 100\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M31.6 3.5C5.9 13.6-6.6 42.7 3.5 68.4c10.1 25.7 39.2 38.3 64.9 28.1l-3.1-7.9C44 97 19.9 86.6 11.5 65.3c-8.4-21.3 2-45.4 23.3-53.8l-3.2-8z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"XML\",\n dur: \"1s\",\n from: \"0 50 50\",\n repeatCount: \"indefinite\",\n to: \"360 50 50\",\n type: \"rotate\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M42.3 39.6c5.7-4.3 13.9-3.1 18.1 2.7 4.3 5.7 3.1 13.9-2.7 18.1l4.1 5.5c8.8-6.5 10.6-19 4.1-27.7-6.5-8.8-19-10.6-27.7-4.1l4.1 5.5z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"XML\",\n dur: \".4s\",\n from: \"0 50 50\",\n repeatCount: \"indefinite\",\n to: \"-360 50 50\",\n type: \"rotate\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M82 35.7C74.1 18 53.4 10.1 35.7 18S10.1 46.6 18 64.3l7.6-3.4c-6-13.5 0-29.3 13.5-35.3s29.3 0 35.3 13.5l7.6-3.4z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"XML\",\n dur: \"2s\",\n from: \"0 50 50\",\n repeatCount: \"indefinite\",\n to: \"360 50 50\",\n type: \"rotate\"\n }))));\n};\nexport { SvgLoadingCircles as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCiAgdmlld0JveD0iMCAwIDEwMCAxMDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDEwMCAxMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPgogPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTMxLjYsMy41QzUuOSwxMy42LTYuNiw0Mi43LDMuNSw2OC40YzEwLjEsMjUuNywzOS4yLDM4LjMsNjQuOSwyOC4xbC0zLjEtNy45Yy0yMS4zLDguNC00NS40LTItNTMuOC0yMy4zCiAgYy04LjQtMjEuMywyLTQ1LjQsMjMuMy01My44TDMxLjYsMy41eiI+CiAgICAgIDxhbmltYXRlVHJhbnNmb3JtIAogICAgICAgICBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIAogICAgICAgICBhdHRyaWJ1dGVUeXBlPSJYTUwiIAogICAgICAgICB0eXBlPSJyb3RhdGUiCiAgICAgICAgIGR1cj0iMXMiIAogICAgICAgICBmcm9tPSIwIDUwIDUwIgogICAgICAgICB0bz0iMzYwIDUwIDUwIiAKICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgPC9wYXRoPgogPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTQyLjMsMzkuNmM1LjctNC4zLDEzLjktMy4xLDE4LjEsMi43YzQuMyw1LjcsMy4xLDEzLjktMi43LDE4LjFsNC4xLDUuNWM4LjgtNi41LDEwLjYtMTksNC4xLTI3LjcKICBjLTYuNS04LjgtMTktMTAuNi0yNy43LTQuMUw0Mi4zLDM5LjZ6Ij4KICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gCiAgICAgICAgIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgCiAgICAgICAgIGF0dHJpYnV0ZVR5cGU9IlhNTCIgCiAgICAgICAgIHR5cGU9InJvdGF0ZSIKICAgICAgICAgZHVyPSIuNHMiIAogICAgICAgICBmcm9tPSIwIDUwIDUwIgogICAgICAgICB0bz0iLTM2MCA1MCA1MCIgCiAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvcGF0aD4KIDxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik04MiwzNS43Qzc0LjEsMTgsNTMuNCwxMC4xLDM1LjcsMThTMTAuMSw0Ni42LDE4LDY0LjNsNy42LTMuNGMtNi0xMy41LDAtMjkuMywxMy41LTM1LjNzMjkuMywwLDM1LjMsMTMuNQogIEw4MiwzNS43eiI+CiAgICAgIDxhbmltYXRlVHJhbnNmb3JtIAogICAgICAgICBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIAogICAgICAgICBhdHRyaWJ1dGVUeXBlPSJYTUwiIAogICAgICAgICB0eXBlPSJyb3RhdGUiCiAgICAgICAgIGR1cj0iMnMiIAogICAgICAgICBmcm9tPSIwIDUwIDUwIgogICAgICAgICB0bz0iMzYwIDUwIDUwIiAKICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgPC9wYXRoPgo8L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLoading = function SvgLoading(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 40 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.201 5.169c-8.254 0-14.946 6.692-14.946 14.946 0 8.255 6.692 14.946 14.946 14.946s14.946-6.691 14.946-14.946c-.001-8.254-6.692-14.946-14.946-14.946zm0 26.58c-6.425 0-11.634-5.208-11.634-11.634 0-6.425 5.209-11.634 11.634-11.634 6.425 0 11.633 5.209 11.633 11.634 0 6.426-5.208 11.634-11.633 11.634z\",\n opacity: 0.2\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m26.013 10.047 1.654-2.866a14.855 14.855 0 0 0-7.466-2.012v3.312c2.119 0 4.1.576 5.812 1.566z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"xml\",\n dur: \"0.5s\",\n from: \"0 20 20\",\n repeatCount: \"indefinite\",\n to: \"360 20 20\",\n type: \"rotate\"\n }))));\n};\nexport { SvgLoading as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggb3BhY2l0eT0iMC4yIiBmaWxsPSIjMDAwIiBkPSJNMjAuMjAxLDUuMTY5Yy04LjI1NCwwLTE0Ljk0Niw2LjY5Mi0xNC45NDYsMTQuOTQ2YzAsOC4yNTUsNi42OTIsMTQuOTQ2LDE0Ljk0NiwxNC45NDYKIHMxNC45NDYtNi42OTEsMTQuOTQ2LTE0Ljk0NkMzNS4xNDYsMTEuODYxLDI4LjQ1NSw1LjE2OSwyMC4yMDEsNS4xNjl6IE0yMC4yMDEsMzEuNzQ5Yy02LjQyNSwwLTExLjYzNC01LjIwOC0xMS42MzQtMTEuNjM0CiBjMC02LjQyNSw1LjIwOS0xMS42MzQsMTEuNjM0LTExLjYzNGM2LjQyNSwwLDExLjYzMyw1LjIwOSwxMS42MzMsMTEuNjM0QzMxLjgzNCwyNi41NDEsMjYuNjI2LDMxLjc0OSwyMC4yMDEsMzEuNzQ5eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0yNi4wMTMsMTAuMDQ3bDEuNjU0LTIuODY2Yy0yLjE5OC0xLjI3Mi00Ljc0My0yLjAxMi03LjQ2Ni0yLjAxMmgwdjMuMzEyaDAKIEMyMi4zMiw4LjQ4MSwyNC4zMDEsOS4wNTcsMjYuMDEzLDEwLjA0N3oiPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZVR5cGU9InhtbCIgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIGZyb209IjAgMjAgMjAiIHRvPSIzNjAgMjAgMjAiIGR1cj0iMC41cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiPjwvYW5pbWF0ZVRyYW5zZm9ybT48L3BhdGg+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLoading2 = function SvgLoading2(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 50 50\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.935 25.145c0-10.318-8.364-18.683-18.683-18.683-10.318 0-18.683 8.365-18.683 18.683h4.068c0-8.071 6.543-14.615 14.615-14.615s14.615 6.543 14.615 14.615h4.068z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"xml\",\n dur: \"0.6s\",\n from: \"0 25 25\",\n repeatCount: \"indefinite\",\n to: \"360 25 25\",\n type: \"rotate\"\n }))));\n};\nexport { SvgLoading2 as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNTAgNTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTQzLjkzNSwyNS4xNDVjMC0xMC4zMTgtOC4zNjQtMTguNjgzLTE4LjY4My0xOC42ODNjLTEwLjMxOCwwLTE4LjY4Myw4LjM2NS0xOC42ODMsMTguNjgzaDQuMDY4YzAtOC4wNzEsNi41NDMtMTQuNjE1LDE0LjYxNS0xNC42MTVjOC4wNzIsMCwxNC42MTUsNi41NDMsMTQuNjE1LDE0LjYxNUg0My45MzV6Ij48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVUeXBlPSJ4bWwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDI1IDI1IiB0bz0iMzYwIDI1IDI1IiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGVUcmFuc2Zvcm0+PC9wYXRoPjwvc3ZnPg==\";","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLoading4 = function SvgLoading4(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n style: {\n enableBackground: \"new 0 0 50 50\"\n },\n viewBox: \"0 0 24 30\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#333\",\n d: \"M0 0h4v10H0z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"xml\",\n begin: 0,\n dur: \"0.6s\",\n repeatCount: \"indefinite\",\n type: \"translate\",\n values: \"0 0; 0 20; 0 0\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#333\",\n d: \"M10 0h4v10h-4z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"xml\",\n begin: \"0.2s\",\n dur: \"0.6s\",\n repeatCount: \"indefinite\",\n type: \"translate\",\n values: \"0 0; 0 20; 0 0\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#333\",\n d: \"M20 0h4v10h-4z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"xml\",\n begin: \"0.4s\",\n dur: \"0.6s\",\n repeatCount: \"indefinite\",\n type: \"translate\",\n values: \"0 0; 0 20; 0 0\"\n }))));\n};\nexport { SvgLoading4 as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDI0IDMwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MCA1MDsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjQiIGhlaWdodD0iMTAiIGZpbGw9IiMzMzMiPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZVR5cGU9InhtbCIgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJ0cmFuc2xhdGUiIHZhbHVlcz0iMCAwOyAwIDIwOyAwIDAiIGJlZ2luPSIwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGVUcmFuc2Zvcm0+PC9yZWN0PjxyZWN0IHg9IjEwIiB5PSIwIiB3aWR0aD0iNCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzMzMyI+PGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlVHlwZT0ieG1sIiBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InRyYW5zbGF0ZSIgdmFsdWVzPSIwIDA7IDAgMjA7IDAgMCIgYmVnaW49IjAuMnMiIGR1cj0iMC42cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiPjwvYW5pbWF0ZVRyYW5zZm9ybT48L3JlY3Q+PHJlY3QgeD0iMjAiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjEwIiBmaWxsPSIjMzMzIj48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVUeXBlPSJ4bWwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0idHJhbnNsYXRlIiB2YWx1ZXM9IjAgMDsgMCAyMDsgMCAwIiBiZWdpbj0iMC40cyIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlVHJhbnNmb3JtPjwvcmVjdD48L3N2Zz4=\";","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPulse = function SvgPulse(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n stroke: \"currentColor\",\n viewBox: \"0 0 44 44\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeWidth: 2\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 22,\n cy: 22,\n r: 1\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n calcMode: \"spline\",\n dur: \"1.8s\",\n keySplines: \"0.165, 0.84, 0.44, 1\",\n keyTimes: \"0; 1\",\n repeatCount: \"indefinite\",\n values: \"1; 20\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"stroke-opacity\",\n begin: \"0s\",\n calcMode: \"spline\",\n dur: \"1.8s\",\n keySplines: \"0.3, 0.61, 0.355, 1\",\n keyTimes: \"0; 1\",\n repeatCount: \"indefinite\",\n values: \"1; 0\"\n })), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 22,\n cy: 22,\n r: 1\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"-0.9s\",\n calcMode: \"spline\",\n dur: \"1.8s\",\n keySplines: \"0.165, 0.84, 0.44, 1\",\n keyTimes: \"0; 1\",\n repeatCount: \"indefinite\",\n values: \"1; 20\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"stroke-opacity\",\n begin: \"-0.9s\",\n calcMode: \"spline\",\n dur: \"1.8s\",\n keySplines: \"0.3, 0.61, 0.355, 1\",\n keyTimes: \"0; 1\",\n repeatCount: \"indefinite\",\n values: \"1; 0\"\n })))));\n};\nexport { SvgPulse as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBCeSBTYW0gSGVyYmVydCAoQHNoZXJiKSwgZm9yIGV2ZXJ5b25lLiBNb3JlIEAgaHR0cDovL2dvby5nbC83QUp6YkwgLS0+Cjxzdmcgdmlld0JveD0iMCAwIDQ0IDQ0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0cm9rZT0iY3VycmVudENvbG9yIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4KICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iciIKICAgICAgICAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIxLjhzIgogICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIKICAgICAgICAgICAgICAgIGNhbGNNb2RlPSJzcGxpbmUiCiAgICAgICAgICAgICAgICBrZXlUaW1lcz0iMDsgMSIKICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIgogICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InN0cm9rZS1vcGFjaXR5IgogICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuOHMiCiAgICAgICAgICAgICAgICB2YWx1ZXM9IjE7IDAiCiAgICAgICAgICAgICAgICBjYWxjTW9kZT0ic3BsaW5lIgogICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiCiAgICAgICAgICAgICAgICBrZXlTcGxpbmVzPSIwLjMsIDAuNjEsIDAuMzU1LCAxIgogICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgPC9jaXJjbGU+CiAgICAgICAgPGNpcmNsZSBjeD0iMjIiIGN5PSIyMiIgcj0iMSI+CiAgICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InIiCiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS44cyIKICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMjAiCiAgICAgICAgICAgICAgICBjYWxjTW9kZT0ic3BsaW5lIgogICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiCiAgICAgICAgICAgICAgICBrZXlTcGxpbmVzPSIwLjE2NSwgMC44NCwgMC40NCwgMSIKICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIKICAgICAgICAgICAgICAgIGJlZ2luPSItMC45cyIgZHVyPSIxLjhzIgogICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAwIgogICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIKICAgICAgICAgICAgICAgIGtleVRpbWVzPSIwOyAxIgogICAgICAgICAgICAgICAga2V5U3BsaW5lcz0iMC4zLCAwLjYxLCAwLjM1NSwgMSIKICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgIDwvY2lyY2xlPgogICAgPC9nPgo8L3N2Zz4=\";","var _circle, _circle2, _circle3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgThreeDots = function SvgThreeDots(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 30,\n fill: \"#fff\",\n viewBox: \"0 0 120 30\"\n }, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 15,\n cy: 15,\n r: 15\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 15,\n repeatCount: \"indefinite\",\n to: 15,\n values: \"15;9;15\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 1,\n repeatCount: \"indefinite\",\n to: 1,\n values: \"1;.5;1\"\n }))), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 60,\n cy: 15,\n r: 9,\n fillOpacity: 0.3\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 9,\n repeatCount: \"indefinite\",\n to: 9,\n values: \"9;15;9\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 0.5,\n repeatCount: \"indefinite\",\n to: 0.5,\n values: \".5;1;.5\"\n }))), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 105,\n cy: 15,\n r: 15\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 15,\n repeatCount: \"indefinite\",\n to: 15,\n values: \"15;9;15\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 1,\n repeatCount: \"indefinite\",\n to: 1,\n values: \"1;.5;1\"\n }))));\n};\nexport { SvgThreeDots as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBCeSBTYW0gSGVyYmVydCAoQHNoZXJiKSwgZm9yIGV2ZXJ5b25lLiBNb3JlIEAgaHR0cDovL2dvby5nbC83QUp6YkwgLS0+Cjxzdmcgd2lkdGg9IjMwIiB2aWV3Qm94PSIwIDAgMTIwIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiNmZmYiPgogICAgPGNpcmNsZSBjeD0iMTUiIGN5PSIxNSIgcj0iMTUiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InIiIGZyb209IjE1IiB0bz0iMTUiCiAgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjAuOHMiCiAgICAgICAgICAgICAgICAgdmFsdWVzPSIxNTs5OzE1IiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwtb3BhY2l0eSIgZnJvbT0iMSIgdG89IjEiCiAgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjAuOHMiCiAgICAgICAgICAgICAgICAgdmFsdWVzPSIxOy41OzEiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjYwIiBjeT0iMTUiIHI9IjkiIGZpbGwtb3BhY2l0eT0iMC4zIj4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiBmcm9tPSI5IiB0bz0iOSIKICAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMC44cyIKICAgICAgICAgICAgICAgICB2YWx1ZXM9Ijk7MTU7OSIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsLW9wYWNpdHkiIGZyb209IjAuNSIgdG89IjAuNSIKICAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMC44cyIKICAgICAgICAgICAgICAgICB2YWx1ZXM9Ii41OzE7LjUiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjEwNSIgY3k9IjE1IiByPSIxNSI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iciIgZnJvbT0iMTUiIHRvPSIxNSIKICAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMC44cyIKICAgICAgICAgICAgICAgICB2YWx1ZXM9IjE1Ozk7MTUiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbC1vcGFjaXR5IiBmcm9tPSIxIiB0bz0iMSIKICAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMC44cyIKICAgICAgICAgICAgICAgICB2YWx1ZXM9IjE7LjU7MSIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgIDwvY2lyY2xlPgo8L3N2Zz4K\";","import { __ } from '@wordpress/i18n';\n\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tInspectorAdvancedControls,\n\tRichText,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\n\nimport {\n\tSelectControl,\n\tToggleControl,\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport clsx from 'clsx';\nimport {\n\tLoading,\n\tLoading2,\n\tPulse,\n\tLoading4,\n\tLoadingCircles,\n\tLoadingCirclePath,\n\tAudio,\n\tBallTriangle,\n\tBars,\n\tCircles,\n\tGrid,\n\tThreeDots,\n} from '../../icons/loading';\n\nconst ALIGNMENT_CONTROLS = [\n\t{\n\t\ticon: 'align-left',\n\t\ttitle: __( 'Align Left', 'formello' ),\n\t\talign: 'left',\n\t},\n\t{\n\t\ticon: 'align-center',\n\t\ttitle: __( 'Align Center', 'formello' ),\n\t\talign: 'center',\n\t},\n\t{\n\t\ticon: 'align-right',\n\t\ttitle: __( 'Align Right', 'formello' ),\n\t\talign: 'right',\n\t},\n\t{\n\t\ticon: 'align-wide',\n\t\ttitle: __( 'Wide', 'formello' ),\n\t\talign: 'wide',\n\t},\n];\n\nexport default function Edit( { attributes, setAttributes } ) {\n\tconst { type, alignment, noWrapper } = attributes;\n\n\tconst icons = {\n\t\tLoading,\n\t\tLoading2,\n\t\tPulse,\n\t\tLoading4,\n\t\tLoadingCircles,\n\t\tLoadingCirclePath,\n\t\tAudio,\n\t\tBallTriangle,\n\t\tBars,\n\t\tCircles,\n\t\tGrid,\n\t\tThreeDots,\n\t};\n\n\tconst ButtonIcon = icons[ type ];\n\n\tconst [ showIcon, setShowIcon ] = useState( false );\n\n\t// not already merged in Gutenberg\n\t// const spacingProps = useSpacingProps( attributes );\n\n\tconst colorProps = useColorProps( attributes );\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst buttonClasses = clsx(\n\t\t'wp-element-button',\n\t\tborderProps.className,\n\t\tcolorProps.className,\n\t\t{\n\t\t\t'wp-block-formello-button--loading': showIcon,\n\t\t}\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: alignment,\n\t} );\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t
\n\t);\n}\n","import { registerBlockType, createBlock } from '@wordpress/blocks';\nimport Edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport './style.scss';\n\n/**\n * Every block starts by registering a new block type definition.\n *\n * @see https://developer.wordpress.org/block-editor/reference-guides/block-api/block-registration/\n */\nregisterBlockType( metadata, {\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tisMatch: ( node ) => node.nodeName === 'BUTTON',\n\t\t\t\ttransform: () => {\n\t\t\t\t\treturn createBlock( 'formello/button' );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\ticon: {\n\t\t// Specifying a background color to appear with the icon e.g.: in the inserter.\n\t\tbackground: '#fff',\n\t\t// Specifying a color for the icon (optional: if not set, a readable color will be automatically defined)\n\t\tforeground: '#000000',\n\t\tsrc: 'button',\n\t},\n\n\tsupports: {\n\t\t...metadata.supports,\n\t\t//multiple: 'formello' !== window.pagenow ? true : false,\n\t},\n\n\t/**\n\t * @see ./edit.js\n\t */\n\tedit: Edit,\n\n\t/**\n\t * @see ./save.js\n\t */\n\tsave,\n} );\n","import clsx from 'clsx';\nimport {\n\tuseBlockProps,\n\tRichText,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport {\n\tLoading,\n\tLoading2,\n\tPulse,\n\tLoading4,\n\tLoadingCircles,\n\tLoadingCirclePath,\n\tAudio,\n\tBallTriangle,\n\tBars,\n\tCircles,\n\tGrid,\n\tThreeDots,\n} from '../../icons/loading';\n\nexport default function save( { attributes } ) {\n\tconst { text, alignment, type, noWrapper } = attributes;\n\n\tconst icons = {\n\t\tLoading,\n\t\tLoading2,\n\t\tPulse,\n\t\tLoading4,\n\t\tLoadingCircles,\n\t\tLoadingCirclePath,\n\t\tAudio,\n\t\tBallTriangle,\n\t\tBars,\n\t\tCircles,\n\t\tGrid,\n\t\tThreeDots,\n\t};\n\n\tconst ButtonIcon = icons[ type ];\n\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst buttonClasses = clsx(\n\t\t'wp-element-button',\n\t\tborderProps.className,\n\t\tcolorProps.className\n\t);\n\n\tif ( noWrapper ) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import { ReactComponent as Audio } from '../../assets/icons/loading/audio.svg';\nimport { ReactComponent as BallTriangle } from '../../assets/icons/loading/ball-triangle.svg';\nimport { ReactComponent as Bars } from '../../assets/icons/loading/bars.svg';\nimport { ReactComponent as Circles } from '../../assets/icons/loading/circles.svg';\nimport { ReactComponent as Grid } from '../../assets/icons/loading/grid.svg';\nimport { ReactComponent as Loading } from '../../assets/icons/loading/loading.svg';\nimport { ReactComponent as Loading2 } from '../../assets/icons/loading/loading2.svg';\nimport { ReactComponent as Loading4 } from '../../assets/icons/loading/loading4.svg';\nimport { ReactComponent as LoadingCircles } from '../../assets/icons/loading/loading-circles.svg';\nimport { ReactComponent as LoadingCirclePath } from '../../assets/icons/loading/loading-circle-path.svg';\nimport { ReactComponent as Pulse } from '../../assets/icons/loading/pulse.svg';\nimport { ReactComponent as ThreeDots } from '../../assets/icons/loading/three-dots.svg';\n\nexport {\n\tAudio,\n\tBallTriangle,\n\tBars,\n\tCircles,\n\tGrid,\n\tLoading,\n\tLoading2,\n\tLoading4,\n\tLoadingCircles,\n\tLoadingCirclePath,\n\tPulse,\n\tThreeDots,\n};\n","// extracted by mini-css-extract-plugin\nexport {};","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"i18n\"];","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"blocks/button/index\": 0,\n\t\"blocks/button/style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkformello\"] = self[\"webpackChunkformello\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"blocks/button/style-index\"], () => (__webpack_require__(\"./src/blocks/button/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["__","useBlockProps","BlockControls","InspectorAdvancedControls","RichText","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","SelectControl","ToggleControl","ToolbarDropdownMenu","ToolbarGroup","useState","clsx","Loading","Loading2","Pulse","Loading4","LoadingCircles","LoadingCirclePath","Audio","BallTriangle","Bars","Circles","Grid","ThreeDots","jsx","_jsx","jsxs","_jsxs","ALIGNMENT_CONTROLS","icon","title","align","Edit","attributes","setAttributes","type","alignment","noWrapper","icons","ButtonIcon","showIcon","setShowIcon","colorProps","borderProps","buttonClasses","className","blockProps","children","label","controls","map","control","isActive","onClick","checked","onChange","val","value","options","Object","keys","tagName","text","placeholder","allowedFormats","registerBlockType","createBlock","save","metadata","transforms","from","isMatch","node","nodeName","transform","background","foreground","src","supports","edit","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","Content","ReactComponent"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"blocks/button/index.js","mappings":"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DAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,6CAA6C,gDAAmB;AACnE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG,0CAA0C,gDAAmB;AAChE;AACA;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,GAAG;AACH;AACqC;AACrC,iEAAe,oBAAoB,opFAAopF;;;;;;;;;;;;;;;;;AC/GvrF;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,uBAAuB,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","sources":["webpack://formello/./assets/icons/loading/audio.svg","webpack://formello/./assets/icons/loading/ball-triangle.svg","webpack://formello/./assets/icons/loading/bars.svg","webpack://formello/./assets/icons/loading/circles.svg","webpack://formello/./assets/icons/loading/grid.svg","webpack://formello/./assets/icons/loading/loading-circle-path.svg","webpack://formello/./assets/icons/loading/loading-circles.svg","webpack://formello/./assets/icons/loading/loading.svg","webpack://formello/./assets/icons/loading/loading2.svg","webpack://formello/./assets/icons/loading/loading4.svg","webpack://formello/./assets/icons/loading/pulse.svg","webpack://formello/./assets/icons/loading/three-dots.svg","webpack://formello/./src/blocks/button/edit.js","webpack://formello/./src/blocks/button/index.js","webpack://formello/./src/blocks/button/save.js","webpack://formello/./src/icons/loading.js","webpack://formello/./src/blocks/button/style.scss?330c","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"blocks\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/./node_modules/clsx/dist/clsx.mjs","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/chunk loaded","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/webpack/runtime/jsonp chunk loading","webpack://formello/webpack/before-startup","webpack://formello/webpack/startup","webpack://formello/webpack/after-startup"],"sourcesContent":["var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgAudio = function SvgAudio(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"#FFF\",\n viewBox: \"0 0 55 80\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"matrix(1 0 0 -1 0 80)\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 10,\n height: 20,\n rx: 3\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"4.3s\",\n repeatCount: \"indefinite\",\n values: \"20;45;57;80;64;32;66;45;64;23;66;13;64;56;34;34;2;23;76;79;20\"\n })), /*#__PURE__*/React.createElement(\"rect\", {\n width: 10,\n height: 80,\n x: 15,\n rx: 3\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n values: \"80;55;33;5;75;23;73;33;12;14;60;80\"\n })), /*#__PURE__*/React.createElement(\"rect\", {\n width: 10,\n height: 50,\n x: 30,\n rx: 3\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"1.4s\",\n repeatCount: \"indefinite\",\n values: \"50;34;78;23;56;23;34;76;80;54;21;50\"\n })), /*#__PURE__*/React.createElement(\"rect\", {\n width: 10,\n height: 30,\n x: 45,\n rx: 3\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2s\",\n repeatCount: \"indefinite\",\n values: \"30;45;13;80;56;72;45;76;34;23;67;30\"\n })))));\n};\nexport { SvgAudio as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBCeSBTYW0gSGVyYmVydCAoQHNoZXJiKSwgZm9yIGV2ZXJ5b25lLiBNb3JlIEAgaHR0cDovL2dvby5nbC83QUp6YkwgLS0+Cjxzdmcgdmlld0JveD0iMCAwIDU1IDgwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiNGRkYiPgogICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA4MCkiPgogICAgICAgIDxyZWN0IHdpZHRoPSIxMCIgaGVpZ2h0PSIyMCIgcng9IjMiPgogICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJoZWlnaHQiCiAgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjQuM3MiCiAgICAgICAgICAgICAgICAgdmFsdWVzPSIyMDs0NTs1Nzs4MDs2NDszMjs2Njs0NTs2NDsyMzs2NjsxMzs2NDs1NjszNDszNDsyOzIzOzc2Ozc5OzIwIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgIDwvcmVjdD4KICAgICAgICA8cmVjdCB4PSIxNSIgd2lkdGg9IjEwIiBoZWlnaHQ9IjgwIiByeD0iMyI+CiAgICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIKICAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMnMiCiAgICAgICAgICAgICAgICAgdmFsdWVzPSI4MDs1NTszMzs1Ozc1OzIzOzczOzMzOzEyOzE0OzYwOzgwIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgIDwvcmVjdD4KICAgICAgICA8cmVjdCB4PSIzMCIgd2lkdGg9IjEwIiBoZWlnaHQ9IjUwIiByeD0iMyI+CiAgICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIKICAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIKICAgICAgICAgICAgICAgICB2YWx1ZXM9IjUwOzM0Ozc4OzIzOzU2OzIzOzM0Ozc2OzgwOzU0OzIxOzUwIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgIDwvcmVjdD4KICAgICAgICA8cmVjdCB4PSI0NSIgd2lkdGg9IjEwIiBoZWlnaHQ9IjMwIiByeD0iMyI+CiAgICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIKICAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMnMiCiAgICAgICAgICAgICAgICAgdmFsdWVzPSIzMDs0NTsxMzs4MDs1Njs3Mjs0NTs3NjszNDsyMzs2NzszMCIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgICAgICA8L3JlY3Q+CiAgICA8L2c+Cjwvc3ZnPg==\";","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgBallTriangle = function SvgBallTriangle(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n stroke: \"currentColor\",\n viewBox: \"0 0 57 57\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeWidth: 2,\n transform: \"translate(1 1)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 5,\n cy: 50,\n r: 5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2.2s\",\n repeatCount: \"indefinite\",\n values: \"50;5;50;50\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cx\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2.2s\",\n repeatCount: \"indefinite\",\n values: \"5;27;49;5\"\n })), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 27,\n cy: 5,\n r: 5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2.2s\",\n from: 5,\n repeatCount: \"indefinite\",\n to: 5,\n values: \"5;50;50;5\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cx\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2.2s\",\n from: 27,\n repeatCount: \"indefinite\",\n to: 27,\n values: \"27;49;5;27\"\n })), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 49,\n cy: 50,\n r: 5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cy\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2.2s\",\n repeatCount: \"indefinite\",\n values: \"50;50;5;50\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"cx\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"2.2s\",\n from: 49,\n repeatCount: \"indefinite\",\n to: 49,\n values: \"49;5;27;49\"\n })))));\n};\nexport { SvgBallTriangle as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBCeSBTYW0gSGVyYmVydCAoQHNoZXJiKSwgZm9yIGV2ZXJ5b25lLiBNb3JlIEAgaHR0cDovL2dvby5nbC83QUp6YkwgLS0+CjwhLS0gVG9kbzogYWRkIGVhc2luZyAtLT4KPHN2ZyB2aWV3Qm94PSIwIDAgNTcgNTciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiPgogICAgPGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEpIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSI1IiBjeT0iNTAiIHI9IjUiPgogICAgICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3kiCiAgICAgICAgICAgICAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIyLjJzIgogICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9IjUwOzU7NTA7NTAiCiAgICAgICAgICAgICAgICAgICAgIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giCiAgICAgICAgICAgICAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIyLjJzIgogICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9IjU7Mjc7NDk7NSIKICAgICAgICAgICAgICAgICAgICAgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgICAgIDwvY2lyY2xlPgogICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNyIgY3k9IjUiIHI9IjUiPgogICAgICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3kiCiAgICAgICAgICAgICAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIyLjJzIgogICAgICAgICAgICAgICAgICAgICBmcm9tPSI1IiB0bz0iNSIKICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPSI1OzUwOzUwOzUiCiAgICAgICAgICAgICAgICAgICAgIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giCiAgICAgICAgICAgICAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIyLjJzIgogICAgICAgICAgICAgICAgICAgICBmcm9tPSIyNyIgdG89IjI3IgogICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9IjI3OzQ5OzU7MjciCiAgICAgICAgICAgICAgICAgICAgIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgICAgICA8L2NpcmNsZT4KICAgICAgICAgICAgPGNpcmNsZSBjeD0iNDkiIGN5PSI1MCIgcj0iNSI+CiAgICAgICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJjeSIKICAgICAgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjIuMnMiCiAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz0iNTA7NTA7NTs1MCIKICAgICAgICAgICAgICAgICAgICAgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJjeCIKICAgICAgICAgICAgICAgICAgICAgZnJvbT0iNDkiIHRvPSI0OSIKICAgICAgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjIuMnMiCiAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz0iNDk7NTsyNzs0OSIKICAgICAgICAgICAgICAgICAgICAgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgICAgIDwvY2lyY2xlPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+\";","var _rect, _rect2, _rect3, _rect4, _rect5;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgBars = function SvgBars(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"#fff\",\n viewBox: \"0 0 135 140\"\n }, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 15,\n height: 120,\n y: 10,\n rx: 6\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.5s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.5s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\"\n }))), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 15,\n height: 120,\n x: 30,\n y: 10,\n rx: 6\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.25s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.25s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\"\n }))), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 15,\n height: 140,\n x: 60,\n rx: 6\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\"\n }))), _rect4 || (_rect4 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 15,\n height: 120,\n x: 90,\n y: 10,\n rx: 6\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.25s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.25s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\"\n }))), _rect5 || (_rect5 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 15,\n height: 120,\n x: 120,\n y: 10,\n rx: 6\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.5s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.5s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\"\n }))));\n};\nexport { SvgBars as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTM1IDE0MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjZmZmIj4KICAgIDxyZWN0IHk9IjEwIiB3aWR0aD0iMTUiIGhlaWdodD0iMTIwIiByeD0iNiI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iaGVpZ2h0IgogICAgICAgICAgICAgYmVnaW49IjAuNXMiIGR1cj0iMXMiCiAgICAgICAgICAgICB2YWx1ZXM9IjEyMDsxMTA7MTAwOzkwOzgwOzcwOzYwOzUwOzQwOzE0MDsxMjAiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJ5IgogICAgICAgICAgICAgYmVnaW49IjAuNXMiIGR1cj0iMXMiCiAgICAgICAgICAgICB2YWx1ZXM9IjEwOzE1OzIwOzI1OzMwOzM1OzQwOzQ1OzUwOzA7MTAiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9IjMwIiB5PSIxMCIgd2lkdGg9IjE1IiBoZWlnaHQ9IjEyMCIgcng9IjYiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIKICAgICAgICAgICAgIGJlZ2luPSIwLjI1cyIgZHVyPSIxcyIKICAgICAgICAgICAgIHZhbHVlcz0iMTIwOzExMDsxMDA7OTA7ODA7NzA7NjA7NTA7NDA7MTQwOzEyMCIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InkiCiAgICAgICAgICAgICBiZWdpbj0iMC4yNXMiIGR1cj0iMXMiCiAgICAgICAgICAgICB2YWx1ZXM9IjEwOzE1OzIwOzI1OzMwOzM1OzQwOzQ1OzUwOzA7MTAiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgIDwvcmVjdD4KICAgIDxyZWN0IHg9IjYwIiB3aWR0aD0iMTUiIGhlaWdodD0iMTQwIiByeD0iNiI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iaGVpZ2h0IgogICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjFzIgogICAgICAgICAgICAgdmFsdWVzPSIxMjA7MTEwOzEwMDs5MDs4MDs3MDs2MDs1MDs0MDsxNDA7MTIwIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIKICAgICAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIxcyIKICAgICAgICAgICAgIHZhbHVlcz0iMTA7MTU7MjA7MjU7MzA7MzU7NDA7NDU7NTA7MDsxMCIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iOTAiIHk9IjEwIiB3aWR0aD0iMTUiIGhlaWdodD0iMTIwIiByeD0iNiI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iaGVpZ2h0IgogICAgICAgICAgICAgYmVnaW49IjAuMjVzIiBkdXI9IjFzIgogICAgICAgICAgICAgdmFsdWVzPSIxMjA7MTEwOzEwMDs5MDs4MDs3MDs2MDs1MDs0MDsxNDA7MTIwIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIKICAgICAgICAgICAgIGJlZ2luPSIwLjI1cyIgZHVyPSIxcyIKICAgICAgICAgICAgIHZhbHVlcz0iMTA7MTU7MjA7MjU7MzA7MzU7NDA7NDU7NTA7MDsxMCIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgPC9yZWN0PgogICAgPHJlY3QgeD0iMTIwIiB5PSIxMCIgd2lkdGg9IjE1IiBoZWlnaHQ9IjEyMCIgcng9IjYiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImhlaWdodCIKICAgICAgICAgICAgIGJlZ2luPSIwLjVzIiBkdXI9IjFzIgogICAgICAgICAgICAgdmFsdWVzPSIxMjA7MTEwOzEwMDs5MDs4MDs3MDs2MDs1MDs0MDsxNDA7MTIwIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ieSIKICAgICAgICAgICAgIGJlZ2luPSIwLjVzIiBkdXI9IjFzIgogICAgICAgICAgICAgdmFsdWVzPSIxMDsxNTsyMDsyNTszMDszNTs0MDs0NTs1MDswOzEwIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICA8L3JlY3Q+Cjwvc3ZnPgo=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCircles = function SvgCircles(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"#fff\",\n viewBox: \"0 0 135 135\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.447 58c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zm9.448 9.447c0 5.523 4.477 10 10 10 5.522 0 10-4.477 10-10s-4.478-10-10-10c-5.523 0-10 4.477-10 10zm-9.448 9.448c-5.523 0-10 4.477-10 10 0 5.522 4.477 10 10 10s10-4.478 10-10c0-5.523-4.477-10-10-10zM58 67.447c0-5.523-4.477-10-10-10s-10 4.477-10 10 4.477 10 10 10 10-4.477 10-10z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n dur: \"1.5s\",\n from: \"0 67 67\",\n repeatCount: \"indefinite\",\n to: \"-360 67 67\",\n type: \"rotate\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M28.19 40.31c6.627 0 12-5.374 12-12 0-6.628-5.373-12-12-12-6.628 0-12 5.372-12 12 0 6.626 5.372 12 12 12zm30.72-19.825c4.686 4.687 12.284 4.687 16.97 0 4.686-4.686 4.686-12.284 0-16.97-4.686-4.687-12.284-4.687-16.97 0-4.687 4.686-4.687 12.284 0 16.97zm35.74 7.705c0 6.627 5.37 12 12 12 6.626 0 12-5.373 12-12 0-6.628-5.374-12-12-12-6.63 0-12 5.372-12 12zm19.822 30.72c-4.686 4.686-4.686 12.284 0 16.97 4.687 4.686 12.285 4.686 16.97 0 4.687-4.686 4.687-12.284 0-16.97-4.685-4.687-12.283-4.687-16.97 0zm-7.704 35.74c-6.627 0-12 5.37-12 12 0 6.626 5.373 12 12 12s12-5.374 12-12c0-6.63-5.373-12-12-12zm-30.72 19.822c-4.686-4.686-12.284-4.686-16.97 0-4.686 4.687-4.686 12.285 0 16.97 4.686 4.687 12.284 4.687 16.97 0 4.687-4.685 4.687-12.283 0-16.97zm-35.74-7.704c0-6.627-5.372-12-12-12-6.626 0-12 5.373-12 12s5.374 12 12 12c6.628 0 12-5.373 12-12zm-19.823-30.72c4.687-4.686 4.687-12.284 0-16.97-4.686-4.686-12.284-4.686-16.97 0-4.687 4.686-4.687 12.284 0 16.97 4.686 4.687 12.284 4.687 16.97 0z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n dur: \"4s\",\n from: \"0 67 67\",\n repeatCount: \"indefinite\",\n to: \"360 67 67\",\n type: \"rotate\"\n }))));\n};\nexport { SvgCircles as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTM1IDEzNSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjZmZmIj4KICAgIDxwYXRoIGQ9Ik02Ny40NDcgNThjNS41MjMgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzctMTAtMTAtMTAtMTAgNC40NzctMTAgMTAgNC40NzcgMTAgMTAgMTB6bTkuNDQ4IDkuNDQ3YzAgNS41MjMgNC40NzcgMTAgMTAgMTAgNS41MjIgMCAxMC00LjQ3NyAxMC0xMHMtNC40NzgtMTAtMTAtMTBjLTUuNTIzIDAtMTAgNC40NzctMTAgMTB6bS05LjQ0OCA5LjQ0OGMtNS41MjMgMC0xMCA0LjQ3Ny0xMCAxMCAwIDUuNTIyIDQuNDc3IDEwIDEwIDEwczEwLTQuNDc4IDEwLTEwYzAtNS41MjMtNC40NzctMTAtMTAtMTB6TTU4IDY3LjQ0N2MwLTUuNTIzLTQuNDc3LTEwLTEwLTEwcy0xMCA0LjQ3Ny0xMCAxMCA0LjQ3NyAxMCAxMCAxMCAxMC00LjQ3NyAxMC0xMHoiPgogICAgICAgIDxhbmltYXRlVHJhbnNmb3JtCiAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIKICAgICAgICAgICAgdHlwZT0icm90YXRlIgogICAgICAgICAgICBmcm9tPSIwIDY3IDY3IgogICAgICAgICAgICB0bz0iLTM2MCA2NyA2NyIKICAgICAgICAgICAgZHVyPSIxLjVzIgogICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPgogICAgPC9wYXRoPgogICAgPHBhdGggZD0iTTI4LjE5IDQwLjMxYzYuNjI3IDAgMTItNS4zNzQgMTItMTIgMC02LjYyOC01LjM3My0xMi0xMi0xMi02LjYyOCAwLTEyIDUuMzcyLTEyIDEyIDAgNi42MjYgNS4zNzIgMTIgMTIgMTJ6bTMwLjcyLTE5LjgyNWM0LjY4NiA0LjY4NyAxMi4yODQgNC42ODcgMTYuOTcgMCA0LjY4Ni00LjY4NiA0LjY4Ni0xMi4yODQgMC0xNi45Ny00LjY4Ni00LjY4Ny0xMi4yODQtNC42ODctMTYuOTcgMC00LjY4NyA0LjY4Ni00LjY4NyAxMi4yODQgMCAxNi45N3ptMzUuNzQgNy43MDVjMCA2LjYyNyA1LjM3IDEyIDEyIDEyIDYuNjI2IDAgMTItNS4zNzMgMTItMTIgMC02LjYyOC01LjM3NC0xMi0xMi0xMi02LjYzIDAtMTIgNS4zNzItMTIgMTJ6bTE5LjgyMiAzMC43MmMtNC42ODYgNC42ODYtNC42ODYgMTIuMjg0IDAgMTYuOTcgNC42ODcgNC42ODYgMTIuMjg1IDQuNjg2IDE2Ljk3IDAgNC42ODctNC42ODYgNC42ODctMTIuMjg0IDAtMTYuOTctNC42ODUtNC42ODctMTIuMjgzLTQuNjg3LTE2Ljk3IDB6bS03LjcwNCAzNS43NGMtNi42MjcgMC0xMiA1LjM3LTEyIDEyIDAgNi42MjYgNS4zNzMgMTIgMTIgMTJzMTItNS4zNzQgMTItMTJjMC02LjYzLTUuMzczLTEyLTEyLTEyem0tMzAuNzIgMTkuODIyYy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcgMC00LjY4NiA0LjY4Ny00LjY4NiAxMi4yODUgMCAxNi45NyA0LjY4NiA0LjY4NyAxMi4yODQgNC42ODcgMTYuOTcgMCA0LjY4Ny00LjY4NSA0LjY4Ny0xMi4yODMgMC0xNi45N3ptLTM1Ljc0LTcuNzA0YzAtNi42MjctNS4zNzItMTItMTItMTItNi42MjYgMC0xMiA1LjM3My0xMiAxMnM1LjM3NCAxMiAxMiAxMmM2LjYyOCAwIDEyLTUuMzczIDEyLTEyem0tMTkuODIzLTMwLjcyYzQuNjg3LTQuNjg2IDQuNjg3LTEyLjI4NCAwLTE2Ljk3LTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NyAwLTQuNjg3IDQuNjg2LTQuNjg3IDEyLjI4NCAwIDE2Ljk3IDQuNjg2IDQuNjg3IDEyLjI4NCA0LjY4NyAxNi45NyAweiI+CiAgICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0KICAgICAgICAgICAgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIgogICAgICAgICAgICB0eXBlPSJyb3RhdGUiCiAgICAgICAgICAgIGZyb209IjAgNjcgNjciCiAgICAgICAgICAgIHRvPSIzNjAgNjcgNjciCiAgICAgICAgICAgIGR1cj0iNHMiCiAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+CiAgICA8L3BhdGg+Cjwvc3ZnPgo=\";","var _circle, _circle2, _circle3, _circle4, _circle5, _circle6, _circle7, _circle8, _circle9;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGrid = function SvgGrid(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"#fff\",\n viewBox: \"0 0 105 105\"\n }, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12.5,\n cy: 12.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12.5,\n cy: 52.5,\n r: 12.5,\n fillOpacity: 0.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"100ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 52.5,\n cy: 12.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"300ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle4 || (_circle4 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 52.5,\n cy: 52.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"600ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle5 || (_circle5 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 92.5,\n cy: 12.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"800ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle6 || (_circle6 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 92.5,\n cy: 52.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"400ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle7 || (_circle7 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12.5,\n cy: 92.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"700ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle8 || (_circle8 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 52.5,\n cy: 92.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"500ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))), _circle9 || (_circle9 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 92.5,\n cy: 92.5,\n r: 12.5\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"200ms\",\n calcMode: \"linear\",\n dur: \"1s\",\n repeatCount: \"indefinite\",\n values: \"1;.2;1\"\n }))));\n};\nexport { SvgGrid as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTA1IDEwNSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjZmZmIj4KICAgIDxjaXJjbGUgY3g9IjEyLjUiIGN5PSIxMi41IiByPSIxMi41Ij4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsLW9wYWNpdHkiCiAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIxcyIKICAgICAgICAgdmFsdWVzPSIxOy4yOzEiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSIxMi41IiBjeT0iNTIuNSIgcj0iMTIuNSIgZmlsbC1vcGFjaXR5PSIuNSI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbC1vcGFjaXR5IgogICAgICAgICBiZWdpbj0iMTAwbXMiIGR1cj0iMXMiCiAgICAgICAgIHZhbHVlcz0iMTsuMjsxIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iNTIuNSIgY3k9IjEyLjUiIHI9IjEyLjUiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwtb3BhY2l0eSIKICAgICAgICAgYmVnaW49IjMwMG1zIiBkdXI9IjFzIgogICAgICAgICB2YWx1ZXM9IjE7LjI7MSIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjUyLjUiIGN5PSI1Mi41IiByPSIxMi41Ij4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsLW9wYWNpdHkiCiAgICAgICAgIGJlZ2luPSI2MDBtcyIgZHVyPSIxcyIKICAgICAgICAgdmFsdWVzPSIxOy4yOzEiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSI5Mi41IiBjeT0iMTIuNSIgcj0iMTIuNSI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbC1vcGFjaXR5IgogICAgICAgICBiZWdpbj0iODAwbXMiIGR1cj0iMXMiCiAgICAgICAgIHZhbHVlcz0iMTsuMjsxIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iOTIuNSIgY3k9IjUyLjUiIHI9IjEyLjUiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwtb3BhY2l0eSIKICAgICAgICAgYmVnaW49IjQwMG1zIiBkdXI9IjFzIgogICAgICAgICB2YWx1ZXM9IjE7LjI7MSIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjEyLjUiIGN5PSI5Mi41IiByPSIxMi41Ij4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsLW9wYWNpdHkiCiAgICAgICAgIGJlZ2luPSI3MDBtcyIgZHVyPSIxcyIKICAgICAgICAgdmFsdWVzPSIxOy4yOzEiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgPC9jaXJjbGU+CiAgICA8Y2lyY2xlIGN4PSI1Mi41IiBjeT0iOTIuNSIgcj0iMTIuNSI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbC1vcGFjaXR5IgogICAgICAgICBiZWdpbj0iNTAwbXMiIGR1cj0iMXMiCiAgICAgICAgIHZhbHVlcz0iMTsuMjsxIiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgIDwvY2lyY2xlPgogICAgPGNpcmNsZSBjeD0iOTIuNSIgY3k9IjkyLjUiIHI9IjEyLjUiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwtb3BhY2l0eSIKICAgICAgICAgYmVnaW49IjIwMG1zIiBkdXI9IjFzIgogICAgICAgICB2YWx1ZXM9IjE7LjI7MSIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICA8L2NpcmNsZT4KPC9zdmc+Cg==\";","var _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLoadingCirclePath = function SvgLoadingCirclePath(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n viewBox: \"0 0 100 100\"\n }, props), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50,\n cy: 50,\n r: 44,\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 4,\n style: {\n opacity: 0.5\n }\n }), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 54,\n r: 6,\n fill: \"#fff\",\n stroke: \"currentColor\",\n strokeWidth: 3\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n dur: \"1s\",\n from: \"0 50 48\",\n repeatCount: \"indefinite\",\n to: \"360 50 52\",\n type: \"rotate\"\n }))));\n};\nexport { SvgLoadingCirclePath as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMMyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCiAgdmlld0JveD0iMCAwIDEwMCAxMDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDAgMCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CiAgPGNpcmNsZSBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSI0IiBjeD0iNTAiIGN5PSI1MCIgcj0iNDQiIHN0eWxlPSJvcGFjaXR5OjAuNTsiLz4KICA8Y2lyY2xlIGZpbGw9IiNmZmYiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjMiIGN4PSI4IiBjeT0iNTQiIHI9IjYiID4KICAgIDxhbmltYXRlVHJhbnNmb3JtCiAgICAgIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIKICAgICAgZHVyPSIxcyIKICAgICAgdHlwZT0icm90YXRlIgogICAgICBmcm9tPSIwIDUwIDQ4IgogICAgICB0bz0iMzYwIDUwIDUyIgogICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgIAogIDwvY2lyY2xlPgo8L3N2Zz4=\";","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLoadingCircles = function SvgLoadingCircles(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n viewBox: \"0 0 100 100\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M31.6 3.5C5.9 13.6-6.6 42.7 3.5 68.4c10.1 25.7 39.2 38.3 64.9 28.1l-3.1-7.9C44 97 19.9 86.6 11.5 65.3c-8.4-21.3 2-45.4 23.3-53.8l-3.2-8z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"XML\",\n dur: \"1s\",\n from: \"0 50 50\",\n repeatCount: \"indefinite\",\n to: \"360 50 50\",\n type: \"rotate\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M42.3 39.6c5.7-4.3 13.9-3.1 18.1 2.7 4.3 5.7 3.1 13.9-2.7 18.1l4.1 5.5c8.8-6.5 10.6-19 4.1-27.7-6.5-8.8-19-10.6-27.7-4.1l4.1 5.5z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"XML\",\n dur: \".4s\",\n from: \"0 50 50\",\n repeatCount: \"indefinite\",\n to: \"-360 50 50\",\n type: \"rotate\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M82 35.7C74.1 18 53.4 10.1 35.7 18S10.1 46.6 18 64.3l7.6-3.4c-6-13.5 0-29.3 13.5-35.3s29.3 0 35.3 13.5l7.6-3.4z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"XML\",\n dur: \"2s\",\n from: \"0 50 50\",\n repeatCount: \"indefinite\",\n to: \"360 50 50\",\n type: \"rotate\"\n }))));\n};\nexport { SvgLoadingCircles as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMNyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCiAgdmlld0JveD0iMCAwIDEwMCAxMDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDEwMCAxMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPgogPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTMxLjYsMy41QzUuOSwxMy42LTYuNiw0Mi43LDMuNSw2OC40YzEwLjEsMjUuNywzOS4yLDM4LjMsNjQuOSwyOC4xbC0zLjEtNy45Yy0yMS4zLDguNC00NS40LTItNTMuOC0yMy4zCiAgYy04LjQtMjEuMywyLTQ1LjQsMjMuMy01My44TDMxLjYsMy41eiI+CiAgICAgIDxhbmltYXRlVHJhbnNmb3JtIAogICAgICAgICBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIAogICAgICAgICBhdHRyaWJ1dGVUeXBlPSJYTUwiIAogICAgICAgICB0eXBlPSJyb3RhdGUiCiAgICAgICAgIGR1cj0iMXMiIAogICAgICAgICBmcm9tPSIwIDUwIDUwIgogICAgICAgICB0bz0iMzYwIDUwIDUwIiAKICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgPC9wYXRoPgogPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTQyLjMsMzkuNmM1LjctNC4zLDEzLjktMy4xLDE4LjEsMi43YzQuMyw1LjcsMy4xLDEzLjktMi43LDE4LjFsNC4xLDUuNWM4LjgtNi41LDEwLjYtMTksNC4xLTI3LjcKICBjLTYuNS04LjgtMTktMTAuNi0yNy43LTQuMUw0Mi4zLDM5LjZ6Ij4KICAgICAgPGFuaW1hdGVUcmFuc2Zvcm0gCiAgICAgICAgIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgCiAgICAgICAgIGF0dHJpYnV0ZVR5cGU9IlhNTCIgCiAgICAgICAgIHR5cGU9InJvdGF0ZSIKICAgICAgICAgZHVyPSIuNHMiIAogICAgICAgICBmcm9tPSIwIDUwIDUwIgogICAgICAgICB0bz0iLTM2MCA1MCA1MCIgCiAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvcGF0aD4KIDxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik04MiwzNS43Qzc0LjEsMTgsNTMuNCwxMC4xLDM1LjcsMThTMTAuMSw0Ni42LDE4LDY0LjNsNy42LTMuNGMtNi0xMy41LDAtMjkuMywxMy41LTM1LjNzMjkuMywwLDM1LjMsMTMuNQogIEw4MiwzNS43eiI+CiAgICAgIDxhbmltYXRlVHJhbnNmb3JtIAogICAgICAgICBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIAogICAgICAgICBhdHRyaWJ1dGVUeXBlPSJYTUwiIAogICAgICAgICB0eXBlPSJyb3RhdGUiCiAgICAgICAgIGR1cj0iMnMiIAogICAgICAgICBmcm9tPSIwIDUwIDUwIgogICAgICAgICB0bz0iMzYwIDUwIDUwIiAKICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgPC9wYXRoPgo8L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLoading = function SvgLoading(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 40 40\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.201 5.169c-8.254 0-14.946 6.692-14.946 14.946 0 8.255 6.692 14.946 14.946 14.946s14.946-6.691 14.946-14.946c-.001-8.254-6.692-14.946-14.946-14.946zm0 26.58c-6.425 0-11.634-5.208-11.634-11.634 0-6.425 5.209-11.634 11.634-11.634 6.425 0 11.633 5.209 11.633 11.634 0 6.426-5.208 11.634-11.633 11.634z\",\n opacity: 0.2\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m26.013 10.047 1.654-2.866a14.855 14.855 0 0 0-7.466-2.012v3.312c2.119 0 4.1.576 5.812 1.566z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"xml\",\n dur: \"0.5s\",\n from: \"0 20 20\",\n repeatCount: \"indefinite\",\n to: \"360 20 20\",\n type: \"rotate\"\n }))));\n};\nexport { SvgLoading as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNDAgNDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggb3BhY2l0eT0iMC4yIiBmaWxsPSIjMDAwIiBkPSJNMjAuMjAxLDUuMTY5Yy04LjI1NCwwLTE0Ljk0Niw2LjY5Mi0xNC45NDYsMTQuOTQ2YzAsOC4yNTUsNi42OTIsMTQuOTQ2LDE0Ljk0NiwxNC45NDYKIHMxNC45NDYtNi42OTEsMTQuOTQ2LTE0Ljk0NkMzNS4xNDYsMTEuODYxLDI4LjQ1NSw1LjE2OSwyMC4yMDEsNS4xNjl6IE0yMC4yMDEsMzEuNzQ5Yy02LjQyNSwwLTExLjYzNC01LjIwOC0xMS42MzQtMTEuNjM0CiBjMC02LjQyNSw1LjIwOS0xMS42MzQsMTEuNjM0LTExLjYzNGM2LjQyNSwwLDExLjYzMyw1LjIwOSwxMS42MzMsMTEuNjM0QzMxLjgzNCwyNi41NDEsMjYuNjI2LDMxLjc0OSwyMC4yMDEsMzEuNzQ5eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0yNi4wMTMsMTAuMDQ3bDEuNjU0LTIuODY2Yy0yLjE5OC0xLjI3Mi00Ljc0My0yLjAxMi03LjQ2Ni0yLjAxMmgwdjMuMzEyaDAKIEMyMi4zMiw4LjQ4MSwyNC4zMDEsOS4wNTcsMjYuMDEzLDEwLjA0N3oiPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZVR5cGU9InhtbCIgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIGZyb209IjAgMjAgMjAiIHRvPSIzNjAgMjAgMjAiIGR1cj0iMC41cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiPjwvYW5pbWF0ZVRyYW5zZm9ybT48L3BhdGg+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLoading2 = function SvgLoading2(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 50 50\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.935 25.145c0-10.318-8.364-18.683-18.683-18.683-10.318 0-18.683 8.365-18.683 18.683h4.068c0-8.071 6.543-14.615 14.615-14.615s14.615 6.543 14.615 14.615h4.068z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"xml\",\n dur: \"0.6s\",\n from: \"0 25 25\",\n repeatCount: \"indefinite\",\n to: \"360 25 25\",\n type: \"rotate\"\n }))));\n};\nexport { SvgLoading2 as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNTAgNTAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTQzLjkzNSwyNS4xNDVjMC0xMC4zMTgtOC4zNjQtMTguNjgzLTE4LjY4My0xOC42ODNjLTEwLjMxOCwwLTE4LjY4Myw4LjM2NS0xOC42ODMsMTguNjgzaDQuMDY4YzAtOC4wNzEsNi41NDMtMTQuNjE1LDE0LjYxNS0xNC42MTVjOC4wNzIsMCwxNC42MTUsNi41NDMsMTQuNjE1LDE0LjYxNUg0My45MzV6Ij48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVUeXBlPSJ4bWwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBmcm9tPSIwIDI1IDI1IiB0bz0iMzYwIDI1IDI1IiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGVUcmFuc2Zvcm0+PC9wYXRoPjwvc3ZnPg==\";","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLoading4 = function SvgLoading4(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n style: {\n enableBackground: \"new 0 0 50 50\"\n },\n viewBox: \"0 0 24 30\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#333\",\n d: \"M0 0h4v10H0z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"xml\",\n begin: 0,\n dur: \"0.6s\",\n repeatCount: \"indefinite\",\n type: \"translate\",\n values: \"0 0; 0 20; 0 0\"\n }))), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#333\",\n d: \"M10 0h4v10h-4z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"xml\",\n begin: \"0.2s\",\n dur: \"0.6s\",\n repeatCount: \"indefinite\",\n type: \"translate\",\n values: \"0 0; 0 20; 0 0\"\n }))), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#333\",\n d: \"M20 0h4v10h-4z\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n attributeType: \"xml\",\n begin: \"0.4s\",\n dur: \"0.6s\",\n repeatCount: \"indefinite\",\n type: \"translate\",\n values: \"0 0; 0 20; 0 0\"\n }))));\n};\nexport { SvgLoading4 as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDI0IDMwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1MCA1MDsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjQiIGhlaWdodD0iMTAiIGZpbGw9IiMzMzMiPjxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZVR5cGU9InhtbCIgYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJ0cmFuc2xhdGUiIHZhbHVlcz0iMCAwOyAwIDIwOyAwIDAiIGJlZ2luPSIwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIj48L2FuaW1hdGVUcmFuc2Zvcm0+PC9yZWN0PjxyZWN0IHg9IjEwIiB5PSIwIiB3aWR0aD0iNCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzMzMyI+PGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlVHlwZT0ieG1sIiBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InRyYW5zbGF0ZSIgdmFsdWVzPSIwIDA7IDAgMjA7IDAgMCIgYmVnaW49IjAuMnMiIGR1cj0iMC42cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiPjwvYW5pbWF0ZVRyYW5zZm9ybT48L3JlY3Q+PHJlY3QgeD0iMjAiIHk9IjAiIHdpZHRoPSI0IiBoZWlnaHQ9IjEwIiBmaWxsPSIjMzMzIj48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVUeXBlPSJ4bWwiIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0idHJhbnNsYXRlIiB2YWx1ZXM9IjAgMDsgMCAyMDsgMCAwIiBiZWdpbj0iMC40cyIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlVHJhbnNmb3JtPjwvcmVjdD48L3N2Zz4=\";","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPulse = function SvgPulse(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n stroke: \"currentColor\",\n viewBox: \"0 0 44 44\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeWidth: 2\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 22,\n cy: 22,\n r: 1\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n calcMode: \"spline\",\n dur: \"1.8s\",\n keySplines: \"0.165, 0.84, 0.44, 1\",\n keyTimes: \"0; 1\",\n repeatCount: \"indefinite\",\n values: \"1; 20\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"stroke-opacity\",\n begin: \"0s\",\n calcMode: \"spline\",\n dur: \"1.8s\",\n keySplines: \"0.3, 0.61, 0.355, 1\",\n keyTimes: \"0; 1\",\n repeatCount: \"indefinite\",\n values: \"1; 0\"\n })), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 22,\n cy: 22,\n r: 1\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"-0.9s\",\n calcMode: \"spline\",\n dur: \"1.8s\",\n keySplines: \"0.165, 0.84, 0.44, 1\",\n keyTimes: \"0; 1\",\n repeatCount: \"indefinite\",\n values: \"1; 20\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"stroke-opacity\",\n begin: \"-0.9s\",\n calcMode: \"spline\",\n dur: \"1.8s\",\n keySplines: \"0.3, 0.61, 0.355, 1\",\n keyTimes: \"0; 1\",\n repeatCount: \"indefinite\",\n values: \"1; 0\"\n })))));\n};\nexport { SvgPulse as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBCeSBTYW0gSGVyYmVydCAoQHNoZXJiKSwgZm9yIGV2ZXJ5b25lLiBNb3JlIEAgaHR0cDovL2dvby5nbC83QUp6YkwgLS0+Cjxzdmcgdmlld0JveD0iMCAwIDQ0IDQ0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0cm9rZT0iY3VycmVudENvbG9yIj4KICAgIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4KICAgICAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iciIKICAgICAgICAgICAgICAgIGJlZ2luPSIwcyIgZHVyPSIxLjhzIgogICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIKICAgICAgICAgICAgICAgIGNhbGNNb2RlPSJzcGxpbmUiCiAgICAgICAgICAgICAgICBrZXlUaW1lcz0iMDsgMSIKICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIgogICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InN0cm9rZS1vcGFjaXR5IgogICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuOHMiCiAgICAgICAgICAgICAgICB2YWx1ZXM9IjE7IDAiCiAgICAgICAgICAgICAgICBjYWxjTW9kZT0ic3BsaW5lIgogICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiCiAgICAgICAgICAgICAgICBrZXlTcGxpbmVzPSIwLjMsIDAuNjEsIDAuMzU1LCAxIgogICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgPC9jaXJjbGU+CiAgICAgICAgPGNpcmNsZSBjeD0iMjIiIGN5PSIyMiIgcj0iMSI+CiAgICAgICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InIiCiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS44cyIKICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMjAiCiAgICAgICAgICAgICAgICBjYWxjTW9kZT0ic3BsaW5lIgogICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiCiAgICAgICAgICAgICAgICBrZXlTcGxpbmVzPSIwLjE2NSwgMC44NCwgMC40NCwgMSIKICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIKICAgICAgICAgICAgICAgIGJlZ2luPSItMC45cyIgZHVyPSIxLjhzIgogICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAwIgogICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIKICAgICAgICAgICAgICAgIGtleVRpbWVzPSIwOyAxIgogICAgICAgICAgICAgICAga2V5U3BsaW5lcz0iMC4zLCAwLjYxLCAwLjM1NSwgMSIKICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgIDwvY2lyY2xlPgogICAgPC9nPgo8L3N2Zz4=\";","var _circle, _circle2, _circle3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgThreeDots = function SvgThreeDots(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 30,\n fill: \"#fff\",\n viewBox: \"0 0 120 30\"\n }, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 15,\n cy: 15,\n r: 15\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 15,\n repeatCount: \"indefinite\",\n to: 15,\n values: \"15;9;15\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 1,\n repeatCount: \"indefinite\",\n to: 1,\n values: \"1;.5;1\"\n }))), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 60,\n cy: 15,\n r: 9,\n fillOpacity: 0.3\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 9,\n repeatCount: \"indefinite\",\n to: 9,\n values: \"9;15;9\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 0.5,\n repeatCount: \"indefinite\",\n to: 0.5,\n values: \".5;1;.5\"\n }))), _circle3 || (_circle3 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 105,\n cy: 15,\n r: 15\n }, /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 15,\n repeatCount: \"indefinite\",\n to: 15,\n values: \"15;9;15\"\n }), /*#__PURE__*/React.createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n calcMode: \"linear\",\n dur: \"0.8s\",\n from: 1,\n repeatCount: \"indefinite\",\n to: 1,\n values: \"1;.5;1\"\n }))));\n};\nexport { SvgThreeDots as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBCeSBTYW0gSGVyYmVydCAoQHNoZXJiKSwgZm9yIGV2ZXJ5b25lLiBNb3JlIEAgaHR0cDovL2dvby5nbC83QUp6YkwgLS0+Cjxzdmcgd2lkdGg9IjMwIiB2aWV3Qm94PSIwIDAgMTIwIDMwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiNmZmYiPgogICAgPGNpcmNsZSBjeD0iMTUiIGN5PSIxNSIgcj0iMTUiPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InIiIGZyb209IjE1IiB0bz0iMTUiCiAgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjAuOHMiCiAgICAgICAgICAgICAgICAgdmFsdWVzPSIxNTs5OzE1IiBjYWxjTW9kZT0ibGluZWFyIgogICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogICAgICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImZpbGwtb3BhY2l0eSIgZnJvbT0iMSIgdG89IjEiCiAgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjAuOHMiCiAgICAgICAgICAgICAgICAgdmFsdWVzPSIxOy41OzEiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjYwIiBjeT0iMTUiIHI9IjkiIGZpbGwtb3BhY2l0eT0iMC4zIj4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiBmcm9tPSI5IiB0bz0iOSIKICAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMC44cyIKICAgICAgICAgICAgICAgICB2YWx1ZXM9Ijk7MTU7OSIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJmaWxsLW9wYWNpdHkiIGZyb209IjAuNSIgdG89IjAuNSIKICAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMC44cyIKICAgICAgICAgICAgICAgICB2YWx1ZXM9Ii41OzE7LjUiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICA8L2NpcmNsZT4KICAgIDxjaXJjbGUgY3g9IjEwNSIgY3k9IjE1IiByPSIxNSI+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iciIgZnJvbT0iMTUiIHRvPSIxNSIKICAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMC44cyIKICAgICAgICAgICAgICAgICB2YWx1ZXM9IjE1Ozk7MTUiIGNhbGNNb2RlPSJsaW5lYXIiCiAgICAgICAgICAgICAgICAgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIC8+CiAgICAgICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iZmlsbC1vcGFjaXR5IiBmcm9tPSIxIiB0bz0iMSIKICAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMC44cyIKICAgICAgICAgICAgICAgICB2YWx1ZXM9IjE7LjU7MSIgY2FsY01vZGU9ImxpbmVhciIKICAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICAgIDwvY2lyY2xlPgo8L3N2Zz4K\";","import { __ } from '@wordpress/i18n';\n\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tInspectorAdvancedControls,\n\tRichText,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\n\nimport {\n\tSelectControl,\n\tToggleControl,\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport clsx from 'clsx';\nimport {\n\tLoading,\n\tLoading2,\n\tPulse,\n\tLoading4,\n\tLoadingCircles,\n\tLoadingCirclePath,\n\tAudio,\n\tBallTriangle,\n\tBars,\n\tCircles,\n\tGrid,\n\tThreeDots,\n} from '../../icons/loading';\n\nconst ALIGNMENT_CONTROLS = [\n\t{\n\t\ticon: 'align-left',\n\t\ttitle: __( 'Align Left', 'formello' ),\n\t\talign: 'left',\n\t},\n\t{\n\t\ticon: 'align-center',\n\t\ttitle: __( 'Align Center', 'formello' ),\n\t\talign: 'center',\n\t},\n\t{\n\t\ticon: 'align-right',\n\t\ttitle: __( 'Align Right', 'formello' ),\n\t\talign: 'right',\n\t},\n\t{\n\t\ticon: 'align-wide',\n\t\ttitle: __( 'Wide', 'formello' ),\n\t\talign: 'wide',\n\t},\n];\n\nexport default function Edit( { attributes, setAttributes } ) {\n\tconst { type, alignment, noWrapper } = attributes;\n\n\tconst icons = {\n\t\tLoading,\n\t\tLoading2,\n\t\tPulse,\n\t\tLoading4,\n\t\tLoadingCircles,\n\t\tLoadingCirclePath,\n\t\tAudio,\n\t\tBallTriangle,\n\t\tBars,\n\t\tCircles,\n\t\tGrid,\n\t\tThreeDots,\n\t};\n\n\tconst ButtonIcon = icons[ type ];\n\n\tconst [ showIcon, setShowIcon ] = useState( false );\n\n\t// not already merged in Gutenberg\n\t// const spacingProps = useSpacingProps( attributes );\n\n\tconst colorProps = useColorProps( attributes );\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst buttonClasses = clsx(\n\t\t'wp-element-button',\n\t\tborderProps.className,\n\t\tcolorProps.className,\n\t\t{\n\t\t\t'wp-block-formello-button--loading': showIcon,\n\t\t}\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: alignment,\n\t} );\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t
\n\t);\n}\n","import { registerBlockType, createBlock } from '@wordpress/blocks';\nimport Edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport './style.scss';\n\n/**\n * Every block starts by registering a new block type definition.\n *\n * @see https://developer.wordpress.org/block-editor/reference-guides/block-api/block-registration/\n */\nregisterBlockType( metadata, {\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tisMatch: ( node ) => node.nodeName === 'BUTTON',\n\t\t\t\ttransform: () => {\n\t\t\t\t\treturn createBlock( 'formello/button' );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\ticon: {\n\t\t// Specifying a background color to appear with the icon e.g.: in the inserter.\n\t\tbackground: '#fff',\n\t\t// Specifying a color for the icon (optional: if not set, a readable color will be automatically defined)\n\t\tforeground: '#000000',\n\t\tsrc: 'button',\n\t},\n\n\tsupports: {\n\t\t...metadata.supports,\n\t\t//multiple: 'formello' !== window.pagenow ? true : false,\n\t},\n\n\t/**\n\t * @see ./edit.js\n\t */\n\tedit: Edit,\n\n\t/**\n\t * @see ./save.js\n\t */\n\tsave,\n} );\n","import clsx from 'clsx';\nimport {\n\tuseBlockProps,\n\tRichText,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport {\n\tLoading,\n\tLoading2,\n\tPulse,\n\tLoading4,\n\tLoadingCircles,\n\tLoadingCirclePath,\n\tAudio,\n\tBallTriangle,\n\tBars,\n\tCircles,\n\tGrid,\n\tThreeDots,\n} from '../../icons/loading';\n\nexport default function save( { attributes } ) {\n\tconst { text, alignment, type, noWrapper } = attributes;\n\n\tconst icons = {\n\t\tLoading,\n\t\tLoading2,\n\t\tPulse,\n\t\tLoading4,\n\t\tLoadingCircles,\n\t\tLoadingCirclePath,\n\t\tAudio,\n\t\tBallTriangle,\n\t\tBars,\n\t\tCircles,\n\t\tGrid,\n\t\tThreeDots,\n\t};\n\n\tconst ButtonIcon = icons[ type ];\n\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst buttonClasses = clsx(\n\t\t'wp-element-button',\n\t\tborderProps.className,\n\t\tcolorProps.className\n\t);\n\n\tif ( noWrapper ) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import { ReactComponent as Audio } from '../../assets/icons/loading/audio.svg';\nimport { ReactComponent as BallTriangle } from '../../assets/icons/loading/ball-triangle.svg';\nimport { ReactComponent as Bars } from '../../assets/icons/loading/bars.svg';\nimport { ReactComponent as Circles } from '../../assets/icons/loading/circles.svg';\nimport { ReactComponent as Grid } from '../../assets/icons/loading/grid.svg';\nimport { ReactComponent as Loading } from '../../assets/icons/loading/loading.svg';\nimport { ReactComponent as Loading2 } from '../../assets/icons/loading/loading2.svg';\nimport { ReactComponent as Loading4 } from '../../assets/icons/loading/loading4.svg';\nimport { ReactComponent as LoadingCircles } from '../../assets/icons/loading/loading-circles.svg';\nimport { ReactComponent as LoadingCirclePath } from '../../assets/icons/loading/loading-circle-path.svg';\nimport { ReactComponent as Pulse } from '../../assets/icons/loading/pulse.svg';\nimport { ReactComponent as ThreeDots } from '../../assets/icons/loading/three-dots.svg';\n\nexport {\n\tAudio,\n\tBallTriangle,\n\tBars,\n\tCircles,\n\tGrid,\n\tLoading,\n\tLoading2,\n\tLoading4,\n\tLoadingCircles,\n\tLoadingCirclePath,\n\tPulse,\n\tThreeDots,\n};\n","// extracted by mini-css-extract-plugin\nexport {};","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"i18n\"];","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"blocks/button/index\": 0,\n\t\"blocks/button/style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkformello\"] = self[\"webpackChunkformello\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"blocks/button/style-index\"], () => (__webpack_require__(\"./src/blocks/button/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["__","useBlockProps","BlockControls","InspectorAdvancedControls","RichText","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","SelectControl","ToggleControl","ToolbarDropdownMenu","ToolbarGroup","useState","clsx","Loading","Loading2","Pulse","Loading4","LoadingCircles","LoadingCirclePath","Audio","BallTriangle","Bars","Circles","Grid","ThreeDots","jsx","_jsx","jsxs","_jsxs","ALIGNMENT_CONTROLS","icon","title","align","Edit","attributes","setAttributes","type","alignment","noWrapper","icons","ButtonIcon","showIcon","setShowIcon","colorProps","borderProps","buttonClasses","className","blockProps","children","style","label","controls","map","control","isActive","onClick","checked","onChange","val","value","options","Object","keys","tagName","text","placeholder","allowedFormats","registerBlockType","createBlock","save","metadata","transforms","from","isMatch","node","nodeName","transform","background","foreground","src","supports","edit","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","Content","ReactComponent"],"sourceRoot":""} \ No newline at end of file diff --git a/build/blocks/button/render.php b/build/blocks/button/render.php index a96e1d17..93178d90 100644 --- a/build/blocks/button/render.php +++ b/build/blocks/button/render.php @@ -8,7 +8,11 @@ * $block (WP_Block): The block instance. * * @see https://github.com/WordPress/gutenberg/blob/trunk/docs/reference-guides/block-api/block-metadata.md#render - * @package formello + * @link https://www.francescopepe.com + * @since 1.0.0 + * + * @package Formello + * @subpackage Formello/includes */ $config = wp_interactivity_config( 'formello' ); @@ -20,7 +24,7 @@ '
', 'reCaptcha' === $state['captcha']['type'] ? 'g-recaptcha' : 'h-captcha', $config['settings'][ $state['captcha']['type'] ]['site_key'], - '1' === $config['settings'][ $state['captcha']['type'] ]['version'] ? 'normal' : 'invisible', + '1' === $config['settings'][ $state['captcha']['type'] ]['version'] ? 'normal' : 'invisible' ); } @@ -50,3 +54,7 @@ } echo $captcha . $p->get_updated_html() . $message; + +if ( ! is_admin() && current_user_can( 'manage_options' ) && $state['debug'] ) { + echo $debug; +} diff --git a/build/blocks/button/style-index-rtl.css b/build/blocks/button/style-index-rtl.css index 7b02a1d2..65f20e46 100644 --- a/build/blocks/button/style-index-rtl.css +++ b/build/blocks/button/style-index-rtl.css @@ -5,6 +5,7 @@ display: flex; flex-direction: row; align-items: center; + flex: 1; } .wp-block-formello-button button { display: flex; diff --git a/build/blocks/button/style-index.css b/build/blocks/button/style-index.css index 4ec8de41..3423138b 100644 --- a/build/blocks/button/style-index.css +++ b/build/blocks/button/style-index.css @@ -5,6 +5,7 @@ display: flex; flex-direction: row; align-items: center; + flex: 1; } .wp-block-formello-button button { display: flex; diff --git a/build/blocks/button/style-index.css.map b/build/blocks/button/style-index.css.map index 20d20f4c..1edf91d3 100644 --- a/build/blocks/button/style-index.css.map +++ b/build/blocks/button/style-index.css.map @@ -1 +1 @@ -{"version":3,"file":"blocks/button/style-index.css","mappings":";;;AAAA;EACI;EACA;EACA;AACJ;AACI;EACI;EACA;AACR;AAEI;EACI;AAAR;AAGI;EACI;EACA;AADR;AAII;EACI;EACA;EACA;EACA;EACA;AAFR;AAIQ;;EAEI;AAFZ;AAMI;EACI;AAJR;AAOI;EACI;AALR;AASQ;EACI;EACA;AAPZ;;AAaA;EACI;AAVJ;AAYI;EACI;AAVR;AAaI;EACI;AAXR;;AAeA;EAEI;IACI;EAbN;EAgBE;IACI;EAdN;AACF,C","sources":["webpack://formello/./src/blocks/button/style.scss"],"sourcesContent":[".wp-block-formello-button {\n display: flex;\n flex-direction: row;\n align-items: center;\n\n button {\n display: flex;\n align-items: center;\n }\n\n button[hidden] {\n display: none;\n }\n\n span {\n transition: all 0.2s;\n opacity: 1;\n }\n\n svg {\n display: none;\n margin: 0 0.3em;\n width: 1em;\n transition: all 0.5s;\n transform: scale(1.3);\n\n path,\n rect {\n fill: currentcolor;\n }\n }\n\n &.center {\n justify-content: center;\n }\n\n &.right {\n justify-content: flex-end;\n }\n\n &.wide {\n button {\n flex-grow: 1;\n justify-content: center;\n }\n }\n\n}\n\n.wp-block-formello-button--loading {\n cursor: revert;\n\n span {\n margin-right: 5px;\n }\n\n svg {\n display: block;\n }\n}\n\n@keyframes button-loading-spinner {\n\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"blocks/button/style-index.css","mappings":";;;AAAA;EACI;EACA;EACA;EACA;AACJ;AACI;EACI;EACA;AACR;AAEI;EACI;AAAR;AAGI;EACI;EACA;AADR;AAII;EACI;EACA;EACA;EACA;EACA;AAFR;AAIQ;;EAEI;AAFZ;AAMI;EACI;AAJR;AAOI;EACI;AALR;AASQ;EACI;EACA;AAPZ;;AAaA;EACI;AAVJ;AAYI;EACI;AAVR;AAaI;EACI;AAXR;;AAeA;EAEI;IACI;EAbN;EAgBE;IACI;EAdN;AACF,C","sources":["webpack://formello/./src/blocks/button/style.scss"],"sourcesContent":[".wp-block-formello-button {\n display: flex;\n flex-direction: row;\n align-items: center;\n flex: 1;\n\n button {\n display: flex;\n align-items: center;\n }\n\n button[hidden] {\n display: none;\n }\n\n span {\n transition: all 0.2s;\n opacity: 1;\n }\n\n svg {\n display: none;\n margin: 0 0.3em;\n width: 1em;\n transition: all 0.5s;\n transform: scale(1.3);\n\n path,\n rect {\n fill: currentcolor;\n }\n }\n\n &.center {\n justify-content: center;\n }\n\n &.right {\n justify-content: flex-end;\n }\n\n &.wide {\n button {\n flex-grow: 1;\n justify-content: center;\n }\n }\n\n}\n\n.wp-block-formello-button--loading {\n cursor: revert;\n\n span {\n margin-right: 5px;\n }\n\n svg {\n display: block;\n }\n}\n\n@keyframes button-loading-spinner {\n\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/build/blocks/fieldset/block.json b/build/blocks/fieldset/block.json index 11378dda..9ca652f7 100644 --- a/build/blocks/fieldset/block.json +++ b/build/blocks/fieldset/block.json @@ -54,5 +54,24 @@ } } }, + "example": { + "attributes": { + "legend": "Preferences" + }, + "innerBlocks": [ + { + "name": "formello/input", + "attributes": { + "label": "Job" + } + }, + { + "name": "formello/textarea", + "attributes": { + "label": "Description" + } + } + ] + }, "editorScript": "file:./index.js" } \ No newline at end of file diff --git a/build/blocks/fieldset/index.asset.php b/build/blocks/fieldset/index.asset.php index 33e5e382..25d3647c 100644 --- a/build/blocks/fieldset/index.asset.php +++ b/build/blocks/fieldset/index.asset.php @@ -1 +1 @@ - array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-i18n'), 'version' => '9a2fcaf8d75d04b445e6'); + array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-i18n'), 'version' => 'f86ace3f07aa71d0b02b'); diff --git a/build/blocks/fieldset/index.js b/build/blocks/fieldset/index.js index 7ecf76e5..a8cb2fce 100644 --- a/build/blocks/fieldset/index.js +++ b/build/blocks/fieldset/index.js @@ -961,7 +961,7 @@ module.exports = window["wp"]["i18n"]; \****************************************/ /***/ ((module) => { -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"formello/fieldset","title":"Fieldset","ancestor":["formello/form"],"description":"A block to display form fieldset.","category":"formello","textdomain":"formello","attributes":{"showLegend":{"type":"boolean","default":true},"legend":{"type":"string","source":"text","selector":"legend","default":"Legend"}},"supports":{"anchor":true,"html":false,"color":{"text":true},"spacing":{"padding":true},"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true,"__experimentalDefaultControls":{"color":true,"radius":true,"style":true,"width":true}},"__experimentalLayout":{"allowSwitching":false,"allowInheriting":false,"allowSizingOnChildren":true,"default":{"type":"flex","justifyContent":"stretch","orientation":"vertical","flexWrap":"nowrap"}}},"editorScript":"file:./index.js"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"formello/fieldset","title":"Fieldset","ancestor":["formello/form"],"description":"A block to display form fieldset.","category":"formello","textdomain":"formello","attributes":{"showLegend":{"type":"boolean","default":true},"legend":{"type":"string","source":"text","selector":"legend","default":"Legend"}},"supports":{"anchor":true,"html":false,"color":{"text":true},"spacing":{"padding":true},"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true,"__experimentalDefaultControls":{"color":true,"radius":true,"style":true,"width":true}},"__experimentalLayout":{"allowSwitching":false,"allowInheriting":false,"allowSizingOnChildren":true,"default":{"type":"flex","justifyContent":"stretch","orientation":"vertical","flexWrap":"nowrap"}}},"example":{"attributes":{"legend":"Preferences"},"innerBlocks":[{"name":"formello/input","attributes":{"label":"Job"}},{"name":"formello/textarea","attributes":{"label":"Description"}}]},"editorScript":"file:./index.js"}'); /***/ }) diff --git a/build/blocks/form/index-rtl.css b/build/blocks/form/index-rtl.css index d6ecaff7..bea31232 100644 --- a/build/blocks/form/index-rtl.css +++ b/build/blocks/form/index-rtl.css @@ -70,3 +70,8 @@ body.post-type-formello_form .is-root-container .wp-block, body.post-type-formel .formello-action-modal > div { margin-block-start: 1rem; } +.formello-action-modal .formello-modal-buttons { + display: flex; + flex-direction: row-reverse; + justify-content: space-between; +} diff --git a/build/blocks/form/index.asset.php b/build/blocks/form/index.asset.php index dad96186..e64471d0 100644 --- a/build/blocks/form/index.asset.php +++ b/build/blocks/form/index.asset.php @@ -1 +1 @@ - array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => '6e7071b0c4aa82f0183b'); + array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => '772fbe197648c9048bc7'); diff --git a/build/blocks/form/index.css b/build/blocks/form/index.css index 16273215..ca1358a0 100644 --- a/build/blocks/form/index.css +++ b/build/blocks/form/index.css @@ -70,5 +70,10 @@ body.post-type-formello_form .is-root-container .wp-block, body.post-type-formel .formello-action-modal > div { margin-block-start: 1rem; } +.formello-action-modal .formello-modal-buttons { + display: flex; + flex-direction: row-reverse; + justify-content: space-between; +} /*# sourceMappingURL=index.css.map*/ \ No newline at end of file diff --git a/build/blocks/form/index.css.map b/build/blocks/form/index.css.map index b5e73aa4..1ac11b49 100644 --- a/build/blocks/form/index.css.map +++ b/build/blocks/form/index.css.map @@ -1 +1 @@ -{"version":3,"file":"blocks/form/index.css","mappings":";;;AAME;EACC;AALH;;AAaE;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAVH;AAcG;EACC;AAZJ;AAgBE;EACC;EACA;AAdH;AAiBE;EACC;AAfH;AAkBE;EACC;EACA;EACA;AAhBH;AAiBG;EACC;AAfJ;AAiBG;EACC;AAfJ;AAiBG;EACC;EACA;AAfJ;AAiBG;EACC;AAfJ;;AAqBA;EACC;AAlBD;;AAqBA;EACI;AAlBJ;AAmBC;EACC;EACA;AAjBF;;AAqBA;EACC;AAlBD;AAmBC;EACC;AAjBF;;AAqBA;EACC;AAlBD;;AAsBI;EACI;AAnBR,C","sources":["webpack://formello/./src/blocks/form/editor.scss"],"sourcesContent":["body.post-type-formello_form {\n .is-root-container {\n\t\t//display: flex;\n\t\t//flex-wrap: wrap;\n\t\t//width: 100%;\n\n\t\t.wp-block, .formello {\n\t\t\tflex-basis: 100%;\n\t\t}\n\t}\n}\n\n.wp-block-formello-form {\n\n\t.wp-block-formello-input, .wp-block-formello-select, .wp-block-formello-textarea, .wp-block-formello-multichoices {\n\t\t&.missing-name::before {\n\t\t\tcontent: 'Missing name';\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbackground-color: red;\n\t\t\tcolor: white;\n\t\t\tpadding: 0 .5em;\n\t\t\tfont-size: small;\n\t\t}\n\n\t\t&:has(input[type=checkbox]), &:has(input[type=radio]) {\n\t\t\tdiv.label-div {\n\t\t\t\torder: 2;\n\t\t\t}\n\t\t}\n\n\t\t.label-div>span.required {\n\t\t\tcolor: red;\n\t\t\tmargin: 0 5px;\n\t\t}\n\n\t\t.label-div.hide {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&:has(.wp-block-formello-output), &:has(.wp-block-formello-button) {\n\t\t\tflex-direction: row;\n\t\t\tflex-wrap: wrap;\n\t\t\talign-items: center;\n\t\t\t.label-div {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\tdiv.wp-block-formello-button, output {\n\t\t\t\tflex-basis: auto;\n\t\t\t}\n\t\t\tinput {\n\t\t\t\tflex-grow: 1;\n\t\t\t\tflex-shrink: 1;\n\t\t\t}\n\t\t\tsmall {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.formello-sidebar .components-base-control:where(:not(:last-child)) {\n\tmargin-bottom: 16px;\n}\n\n.formello-actions-list:not(:empty) {\n margin: 1em 0;\n\t.formello-action-item {\n\t\tpadding: 0.5rem;\n\t\tborder: 1px solid #efefef;\t\t\n\t}\n}\n\n.formello-urlinput {\n\tmin-width: 100%;\n\tinput[type=\"text\"] {\n\t\twidth: 100%;\n\t}\n}\n\n.formello-urlinput__suggestions {\n\twidth: 240px;\n}\n\n.formello-action-modal {\n > div {\n margin-block-start: 1rem;\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"blocks/form/index.css","mappings":";;;AAME;EACC;AALH;;AAaE;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAVH;AAcG;EACC;AAZJ;AAgBE;EACC;EACA;AAdH;AAiBE;EACC;AAfH;AAkBE;EACC;EACA;EACA;AAhBH;AAiBG;EACC;AAfJ;AAiBG;EACC;AAfJ;AAiBG;EACC;EACA;AAfJ;AAiBG;EACC;AAfJ;;AAqBA;EACC;AAlBD;;AAqBA;EACI;AAlBJ;AAmBC;EACC;EACA;AAjBF;;AAqBA;EACC;AAlBD;AAmBC;EACC;AAjBF;;AAqBA;EACC;AAlBD;;AAsBI;EACI;AAnBR;AAqBC;EACC;EACA;EACA;AAnBF,C","sources":["webpack://formello/./src/blocks/form/editor.scss"],"sourcesContent":["body.post-type-formello_form {\n .is-root-container {\n\t\t//display: flex;\n\t\t//flex-wrap: wrap;\n\t\t//width: 100%;\n\n\t\t.wp-block, .formello {\n\t\t\tflex-basis: 100%;\n\t\t}\n\t}\n}\n\n.wp-block-formello-form {\n\n\t.wp-block-formello-input, .wp-block-formello-select, .wp-block-formello-textarea, .wp-block-formello-multichoices {\n\t\t&.missing-name::before {\n\t\t\tcontent: 'Missing name';\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tright: 0;\n\t\t\tbackground-color: red;\n\t\t\tcolor: white;\n\t\t\tpadding: 0 .5em;\n\t\t\tfont-size: small;\n\t\t}\n\n\t\t&:has(input[type=checkbox]), &:has(input[type=radio]) {\n\t\t\tdiv.label-div {\n\t\t\t\torder: 2;\n\t\t\t}\n\t\t}\n\n\t\t.label-div>span.required {\n\t\t\tcolor: red;\n\t\t\tmargin: 0 5px;\n\t\t}\n\n\t\t.label-div.hide {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&:has(.wp-block-formello-output), &:has(.wp-block-formello-button) {\n\t\t\tflex-direction: row;\n\t\t\tflex-wrap: wrap;\n\t\t\talign-items: center;\n\t\t\t.label-div {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\tdiv.wp-block-formello-button, output {\n\t\t\t\tflex-basis: auto;\n\t\t\t}\n\t\t\tinput {\n\t\t\t\tflex-grow: 1;\n\t\t\t\tflex-shrink: 1;\n\t\t\t}\n\t\t\tsmall {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.formello-sidebar .components-base-control:where(:not(:last-child)) {\n\tmargin-bottom: 16px;\n}\n\n.formello-actions-list:not(:empty) {\n margin: 1em 0;\n\t.formello-action-item {\n\t\tpadding: 0.5rem;\n\t\tborder: 1px solid #efefef;\t\t\n\t}\n}\n\n.formello-urlinput {\n\tmin-width: 100%;\n\tinput[type=\"text\"] {\n\t\twidth: 100%;\n\t}\n}\n\n.formello-urlinput__suggestions {\n\twidth: 240px;\n}\n\n.formello-action-modal {\n > div {\n margin-block-start: 1rem;\n }\n\t.formello-modal-buttons {\n\t\tdisplay: flex;\n\t\tflex-direction: row-reverse;\n\t\tjustify-content: space-between;\n\t}\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/build/blocks/form/index.js b/build/blocks/form/index.js index 0776a87b..91a92663 100644 --- a/build/blocks/form/index.js +++ b/build/blocks/form/index.js @@ -3241,7 +3241,7 @@ function getFieldsType() { type = b.attributes.type; } fields[b.attributes.name] = type; - if (b.attributes.enableRtf) { + if (b.attributes.advanced && 'textarea' === 'textarea') { fields[b.attributes.name] = 'richtext'; } if (b.attributes.multiple && 'select' === type) { @@ -3586,7 +3586,8 @@ function TabContent({ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.SearchControl, { value: searchInput, - onChange: setSearchInput + onChange: setSearchInput, + __nextHasNoMarginBottom: true }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.TabPanel, { tabs: tabs, children: tab => tab.data.filter(element => { diff --git a/build/blocks/form/index.js.map b/build/blocks/form/index.js.map index 4d0eeea5..2ca7e0db 100644 --- a/build/blocks/form/index.js.map +++ b/build/blocks/form/index.js.map @@ -1 +1 @@ -{"version":3,"file":"blocks/form/index.js","mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4CAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iCAAiC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;;;;;;;;;;;;;;AC9IP;AACA;AACA;AACA;AACsB;;;;;;;;;;;;;;;;;;;;;;;;;ACJwC;AACvD,gCAAgC;AACvC,oCAAoC,eAAe,uEAAc;AACjE,iDAAiD;AAC1C;AACP;AACA;AACA,4DAA4D,kCAAkC;AAC9F,0DAA0D,sCAAsC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA,oCAAoC,sBAAsB,QAAQ,yFAAyF;AAC3J;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,0DAA0D;AAC1D,gDAAgD;AAChD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACrEA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+B;AACiB;AACR;AACoG;AACxF;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,wBAAwB;AACxB;AACA,iBAAiB,+CAAO;AACxB;AACA;AACA;AACA;AACA;AACA,6CAA6C,6BAA6B;AAC1E;AACA;AACA;AACA,6CAA6C,wCAAwC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAU;AACpC;AACA;AACA;AACA,gDAAgD,uBAAuB,oGAAoG,oDAAY;AACvL;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yDAAiB;AAC1D;AACA,yEAAyE,iBAAiB;AAC1F,yBAAyB;AACzB;AACA,4CAA4C,kDAAU;AACtD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+CAAO;AAC3B;AACA,4CAA4C,kDAAU;AACtD;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,gBAAgB,yDAAiB;AACjC;AACA;AACA;AACA;AACA,qCAAqC,4CAAI;AACzC,2BAA2B,4CAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,oBAAoB,+CAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,mEAA2B;AAC1C;AACA;AACA;AACA,eAAe,gDAAmB;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,gDAAmB;AAClC;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8DAA8D;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,kBAAkB,8CAA8C;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAc,0EAA0E,0BAA0B;AAC9H;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAe;AACtC;AACA;AACA;AACA;AACA,CA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f,IACCkG,MAAM,CAACiQ,OAAO,CACb;cACAd,wDAAO,CACNlX,mDAAE,CACD,mBAAmB,EACnB,UACD,CAAC,EACDuC,QAAQ,CAACL,IACV,CACD,CAAC,EACA;gBACD6G,MAAM,CAAElE,MAAO,CAAC;cACjB;YACD,CAAG;YAAAnD,QAAA,EAED1B,mDAAE,CAAE,QAAQ,EAAE,UAAW;UAAC,CACrB,CACR;QAAA,CACG,CAAC;MAAA,CACG,CAAC;IAAA,CACP;EAAC,CACA,CAAC;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrI6E;AACA;AACE;AACE;AACJ;AACA;AACA;AACA;AACR;AACM;AACI;AACH;AACP;AACU;AACI;AACN;AACA;AACG;AACP;AACE;AACQ;AACV;;;;;;;;;;;ACrBzE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK,KAA6B;AAClC;AACA;AACA,GAAG,SAAS,IAA4E;AACxF;AACA,EAAE,iCAAqB,EAAE,mCAAE;AAC3B;AACA,GAAG;AAAA,kGAAC;AACJ,GAAG,KAAK,EAEN;AACF,CAAC;;;;;;;;;;;;;ACzDD;;;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,IAAI,IAAqC;AACzC,6BAA6B,mBAAO,CAAC,yFAA4B;AACjE;AACA,YAAY,mBAAO,CAAC,uDAAW;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAY;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,cAAc,mBAAO,CAAC,0EAAU;AAChC,aAAa,mBAAO,CAAC,4DAAe;;AAEpC,2BAA2B,mBAAO,CAAC,yFAA4B;AAC/D,UAAU,mBAAO,CAAC,uDAAW;AAC7B,qBAAqB,mBAAO,CAAC,qEAAkB;;AAE/C;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,8BAA8B;AAC9B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS,KAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,2BAA2B;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC,4FAA4F,CAAM;AAC7I;AACA;;AAEA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,gCAAgC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iHAAiH;AACjH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACjmBA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,IAAqC;AACzC,gBAAgB,mBAAO,CAAC,0EAAU;;AAElC;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,uFAA2B;AACtD,EAAE,KAAK,EAIN;;;;;;;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;;;;;;;;;;;ACXA;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;;;AAIb,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB,sBAAsB;AACtB,uBAAuB;AACvB,uBAAuB;AACvB,eAAe;AACf,kBAAkB;AAClB,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,gBAAgB;AAChB,mBAAmB;AACnB,wBAAwB;AACxB,yBAAyB;AACzB,yBAAyB;AACzB,iBAAiB;AACjB,oBAAoB;AACpB,kBAAkB;AAClB,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,oBAAoB;AACpB,kBAAkB;AAClB,0BAA0B;AAC1B,cAAc;AACd,GAAG;AACH;;;;;;;;;;;;ACpLa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,wJAAyD;AAC3D;;;;;;;;;;;;ACNA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA,cAAc,aAAa,+CAA+C,gDAAgD,eAAe,QAAQ,IAAI,0CAA0C,yCAAyC,SAAgB,gBAAgB,wCAAwC,IAAI,mDAAmD,SAAS,iEAAe,IAAI;;;;;;;;;;;;;;;;;UCAnY;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC7BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEnDA;UACA;UACA;UACA;UACA","sources":["webpack://formello/./assets/icons/asterisk.svg","webpack://formello/./assets/icons/checkbox.svg","webpack://formello/./assets/icons/checkboxes.svg","webpack://formello/./assets/icons/clock-field.svg","webpack://formello/./assets/icons/color-field.svg","webpack://formello/./assets/icons/date-field.svg","webpack://formello/./assets/icons/email-field.svg","webpack://formello/./assets/icons/fieldset.svg","webpack://formello/./assets/icons/form.svg","webpack://formello/./assets/icons/gdpr-field.svg","webpack://formello/./assets/icons/hidden-field.svg","webpack://formello/./assets/icons/logo.svg","webpack://formello/./assets/icons/number-field.svg","webpack://formello/./assets/icons/password-field.svg","webpack://formello/./assets/icons/phone-field.svg","webpack://formello/./assets/icons/radio-buttons.svg","webpack://formello/./assets/icons/radio-field.svg","webpack://formello/./assets/icons/range-field.svg","webpack://formello/./assets/icons/select.svg","webpack://formello/./assets/icons/text-field.svg","webpack://formello/./assets/icons/textarea-field.svg","webpack://formello/./assets/icons/url-field.svg","webpack://formello/./assets/integrations/brevo.svg","webpack://formello/./assets/integrations/convertkit.svg","webpack://formello/./assets/integrations/email.svg","webpack://formello/./assets/integrations/getresponse.svg","webpack://formello/./assets/integrations/mailchimp.svg","webpack://formello/./assets/integrations/mailerlite.svg","webpack://formello/./assets/integrations/mailpoet.svg","webpack://formello/./assets/integrations/moosend.svg","webpack://formello/./assets/integrations/webhook.svg","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/ScriptLoader2.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/TinyMCE.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/Utils.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/components/Editor.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/components/EditorPropTypes.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/index.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/comment-author-avatar.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/layout.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/login.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/more-vertical.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/post.js","webpack://formello/./src/blocks/form/controls.js","webpack://formello/./src/blocks/form/deprecated.js","webpack://formello/./src/blocks/form/edit.js","webpack://formello/./src/blocks/form/index.js","webpack://formello/./src/blocks/form/save.js","webpack://formello/./src/blocks/form/templates-modal.js","webpack://formello/./src/blocks/form/variation-picker.js","webpack://formello/./src/blocks/form/variations.js","webpack://formello/./src/components/merge-tags/functions.js","webpack://formello/./src/components/merge-tags/index.js","webpack://formello/./src/components/merge-tags/tab-content.js","webpack://formello/./src/components/merge-tags/use-tabs.js","webpack://formello/./src/components/promo.js","webpack://formello/./src/form-settings/actions/constants.js","webpack://formello/./src/form-settings/actions/email.js","webpack://formello/./src/form-settings/actions/filters.js","webpack://formello/./src/form-settings/actions/modal.js","webpack://formello/./src/icons/icons.js","webpack://formello/./node_modules/classnames/index.js","webpack://formello/./src/blocks/form/editor.scss?f439","webpack://formello/./src/blocks/form/style.scss?474e","webpack://formello/./node_modules/object-assign/index.js","webpack://formello/./node_modules/prop-types/checkPropTypes.js","webpack://formello/./node_modules/prop-types/factoryWithTypeCheckers.js","webpack://formello/./node_modules/prop-types/index.js","webpack://formello/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://formello/./node_modules/prop-types/lib/has.js","webpack://formello/./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","webpack://formello/./node_modules/prop-types/node_modules/react-is/index.js","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"blocks\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"coreData\"]","webpack://formello/external window [\"wp\",\"data\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"hooks\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/external window [\"wp\",\"primitives\"]","webpack://formello/./node_modules/clsx/dist/clsx.mjs","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/chunk loaded","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/webpack/runtime/jsonp chunk loading","webpack://formello/webpack/before-startup","webpack://formello/webpack/startup","webpack://formello/webpack/after-startup"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgAsterisk = function SvgAsterisk(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12.75 6h-1.5v4.19L8.288 7.226l-1.061 1.06 2.962 2.963H6v1.5h4.19l-2.963 2.962 1.06 1.061 2.963-2.962V18h1.5v-4.19l2.962 2.963 1.061-1.06-2.962-2.963H18v-1.5h-4.19l2.963-2.962-1.06-1.061-2.963 2.962V6Z\"\n })));\n};\nexport { SvgAsterisk as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjc1IDZIMTEuMjVWMTAuMTg5M0w4LjI4NzY5IDcuMjI3MDNMNy4yMjcwMyA4LjI4NzY5TDEwLjE4OTMgMTEuMjVINlYxMi43NUgxMC4xODkzTDcuMjI3MDMgMTUuNzEyM0w4LjI4NzY5IDE2Ljc3M0wxMS4yNSAxMy44MTA3VjE4SDEyLjc1VjEzLjgxMDdMMTUuNzEyMyAxNi43NzNMMTYuNzczIDE1LjcxMjNMMTMuODEwNyAxMi43NUgxOFYxMS4yNUgxMy44MTA3TDE2Ljc3MyA4LjI4NzY5TDE1LjcxMjMgNy4yMjcwM0wxMi43NSAxMC4xODkzVjZaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckbox = function SvgCheckbox(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z\"\n })));\n};\nexport { SvgCheckbox as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGc+CiAgICAgICAgPHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIvPgogICAgICAgIDxwYXRoIGQ9Ik00IDNoMTZhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6bTEgMnYxNGgxNFY1SDV6bTYuMDAzIDExTDYuNzYgMTEuNzU3bDEuNDE0LTEuNDE0IDIuODI5IDIuODI5IDUuNjU2LTUuNjU3IDEuNDE1IDEuNDE0TDExLjAwMyAxNnoiIC8+CiAgICA8L2c+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckboxes = function SvgCheckboxes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 24,\n height: 24,\n viewBox: \"0 0 300.396 300.396\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.048 216.749H4.076a3 3 0 0 0-3 3v59.973a3 3 0 0 0 3 3h59.972a3 3 0 0 0 3-3v-59.973c0-1.656-1.344-3-3-3zM64.048 17.675H4.076A4.075 4.075 0 0 0 0 21.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076V21.749a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986V36.809h29.849v29.852H19.138zM64.048 116.675H4.076A4.075 4.075 0 0 0 0 120.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076v-59.973a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986v-29.852h29.849v29.852H19.138zM297.396 231.036h-186.67a3 3 0 0 0-3 3v31.4a3 3 0 0 0 3 3h186.67c1.656 0 3-1.344 3-3v-31.4a3 3 0 0 0-3-3zM110.729 169.438h186.667a3 3 0 0 0 3-3v-31.406c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3zM110.729 70.438h186.667a3 3 0 0 0 3-3V36.032c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3z\"\n })));\n};\nexport { SvgCheckboxes as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiAKCSB2aWV3Qm94PSIwIDAgMzAwLjM5NiAzMDAuMzk2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNNjQuMDQ4LDIxNi43NDlINC4wNzZjLTEuNjU3LDAtMywxLjM0NC0zLDN2NTkuOTczYzAsMS42NTgsMS4zNDMsMywzLDNoNTkuOTcyYzEuNjU2LDAsMy0xLjM0MiwzLTN2LTU5Ljk3MwoJCUM2Ny4wNDgsMjE4LjA5Myw2NS43MDQsMjE2Ljc0OSw2NC4wNDgsMjE2Ljc0OXoiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTcuNjc1SDQuMDc2QzEuODI1LDE3LjY3NSwwLDE5LjQ5OSwwLDIxLjc0OXY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NlYyMS43NDlDNjguMTIzLDE5LjQ5OSw2Ni4yOTksMTcuNjc1LDY0LjA0OCwxNy42NzV6IE0xOS4xMzgsNjYuNjYxVjM2LjgwOWgyOS44NDl2MjkuODUySDE5LjEzOHoKCQkiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTE2LjY3NUg0LjA3NmMtMi4yNTEsMC00LjA3NiwxLjgyNC00LjA3Niw0LjA3NHY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NnYtNTkuOTczQzY4LjEyMywxMTguNDk5LDY2LjI5OSwxMTYuNjc1LDY0LjA0OCwxMTYuNjc1eiBNMTkuMTM4LDE2NS42NjF2LTI5Ljg1MmgyOS44NDl2MjkuODUyCgkJSDE5LjEzOHoiLz4KCTxwYXRoIGQ9Ik0yOTcuMzk2LDIzMS4wMzZoLTE4Ni42N2MtMS42NTcsMC0zLDEuMzQyLTMsM3YzMS40YzAsMS42NTYsMS4zNDMsMywzLDNoMTg2LjY3YzEuNjU2LDAsMy0xLjM0NCwzLTN2LTMxLjQKCQlDMzAwLjM5NiwyMzIuMzc4LDI5OS4wNTMsMjMxLjAzNiwyOTcuMzk2LDIzMS4wMzZ6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSwxNjkuNDM4aDE4Ni42NjdjMS42NTYsMCwzLTEuMzQyLDMtM3YtMzEuNDA2YzAtMS42NTYtMS4zNDQtMy0zLTNIMTEwLjcyOWMtMS42NTcsMC0zLDEuMzQ0LTMsM3YzMS40MDYKCQlDMTA3LjcyOSwxNjguMDk3LDEwOS4wNzEsMTY5LjQzOCwxMTAuNzI5LDE2OS40Mzh6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSw3MC40MzhoMTg2LjY2N2MxLjY1NiwwLDMtMS4zNDIsMy0zVjM2LjAzMmMwLTEuNjU2LTEuMzQ0LTMtMy0zSDExMC43MjljLTEuNjU3LDAtMywxLjM0NC0zLDN2MzEuNDA2CgkJQzEwNy43MjksNjkuMDk3LDEwOS4wNzEsNzAuNDM4LDExMC43MjksNzAuNDM4eiIvPgo8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgClockField = function SvgClockField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 -8 72 72\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 0a28 28 0 1 0 28 28A28 28 0 0 0 36 0Zm0 50a22 22 0 1 1 22-22 22.07 22.07 0 0 1-22 22Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.59 27.14H38V12a2.31 2.31 0 1 0-4.61 0v17.44a2.31 2.31 0 0 0 2.3 2.31h14.9a2.31 2.31 0 1 0 0-4.61Z\"\n })));\n};\nexport { SvgClockField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAtOCA3MiA3MiIgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Y2xvY2stbzwvdGl0bGU+PHBhdGggZD0iTTM2LDBBMjgsMjgsMCwxLDAsNjQsMjgsMjgsMjgsMCwwLDAsMzYsMFptMCw1MEEyMiwyMiwwLDEsMSw1OCwyOCwyMi4wNywyMi4wNywwLDAsMSwzNiw1MFoiLz48cGF0aCBkPSJNNTAuNTksMjcuMTRIMzhWMTJhMi4zMSwyLjMxLDAsMSwwLTQuNjEsMFYyOS40NGEyLjMxLDIuMzEsMCwwLDAsMi4zLDIuMzFINTAuNTlhMi4zMSwyLjMxLDAsMSwwLDAtNC42MVoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgColorField = function SvgColorField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 36 36\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.23 14.89c-2.1-.56-4.93 1.8-6.34.3-1.71-1.82 2.27-5.53 1.86-8.92-.33-2.78-3.51-4.08-6.66-4.1A18.5 18.5 0 0 0 7.74 7.59c-6.64 6.59-8.07 16-1.37 22.48 6.21 6 16.61 4.23 22.67-1.4a17.73 17.73 0 0 0 4.22-6.54c1.08-2.9 1.18-6.64-1.03-7.24ZM9.4 10.57a2.23 2.23 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.81 2.53 2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53ZM5.07 20.82a2.22 2.22 0 0 1 1.82-2.53 2.22 2.22 0 0 1 2.86 1.21A2.23 2.23 0 0 1 7.94 22a2.24 2.24 0 0 1-2.87-1.18Zm7 8.33a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.8-2.53 2.23 2.23 0 0 1 2.87 1.21A2.22 2.22 0 0 1 12 29.15ZM15 8.26a2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.82 2.53A2.21 2.21 0 0 1 15 8.26Zm5.82 22.19a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.85 2.53Zm5-10.46a3.2 3.2 0 0 1-1.69 1.76 3.53 3.53 0 0 1-1.4.3 2.78 2.78 0 0 1-2.56-1.5 2.49 2.49 0 0 1-.07-2 3.2 3.2 0 0 1 1.69-1.76 3 3 0 0 1 4 1.2 2.54 2.54 0 0 1 0 2.01Z\",\n \"data-name\": \"Layer 3\"\n })));\n};\nexport { SvgColorField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDM2IDM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoNPHRpdGxlPmNvbG9yX3BhbGV0dGVfc29saWQ8L3RpdGxlPgoNPGcgaWQ9ImI4OTRlMzJiLTA0MzctNDVhYi1iOGJmLTlmMGM0ZThmNTdjZCIgZGF0YS1uYW1lPSJMYXllciAzIj4KDTxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTguNSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMywwLDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywyLjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEsMS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDateField = function SvgDateField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38 4V0h-4v4H14V0h-4v4H0v44h48V4H38zm6 40H4V19.9h40V44zM4 15.9V8h6v4h4V8h20v4h4V8h6v7.9H4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 24h6v6h-6zM16.667 24h6v6h-6zM25.583 24h6v6h-6zM34.5 24h6v6h-6zM7.5 33h6v6h-6zM16.667 33h6v6h-6zM25.583 33h6v6h-6zM34.5 33h6v6h-6z\"\n })));\n};\nexport { SvgDateField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCFET0NUWVBFIHN2ZyAgUFVCTElDICctLy9XM0MvL0RURCBTVkcgMS4xLy9FTicgICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQnPgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0OCA0OCIgaWQ9IkxheWVyXzMiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08Zz4KDTxwYXRoIGQ9Ik0zOCw0VjBoLTR2NEgxNFYwaC00djRIMHYxMS45djRWNDhoNDhWMTkuOXYtNFY0SDM4eiBNNDQsNDRINFYxOS45aDQwVjQ0eiBNNCwxNS45VjhoNnY0aDRWOGgyMHY0aDRWOGg2djcuOUg0eiIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iNy41IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMTYuNjY3IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMjUuNTgzIiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMzQuNSIgeT0iMjQiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjcuNSIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjE2LjY2NyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjI1LjU4MyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjM0LjUiIHk9IjMzIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmailField = function SvgEmailField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2c5.43 0 9.848 4.327 9.996 9.72L22 12v1c0 2.173-1.523 4-3.5 4-1.173 0-2.186-.643-2.816-1.62a5 5 0 1 1 1.311-3.597L17 12v1c0 1.14.716 2 1.5 2 .745 0 1.428-.775 1.495-1.831L20 13v-1a8 8 0 1 0-4.677 7.28 1 1 0 1 1 .831 1.819A9.966 9.966 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2Zm0 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z\"\n })));\n};\nexport { SvgEmailField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik0xMiwyIEMxNy40MjkyMzk5LDIgMjEuODQ3OTMxNyw2LjMyNjY3MDc5IDIxLjk5NjE1ODIsMTEuNzIwMDk1MiBMMjIsMTIgTDIyLDEzIEMyMiwxNS4xNzI5MjA4IDIwLjQ3NzQzNCwxNyAxOC41LDE3IEMxNy4zMjY5MzkxLDE3IDE2LjMxMzk1MjksMTYuMzU3MDI0NCAxNS42ODM5MzgyLDE1LjM4MDMwMjQgQzE0Ljc3MDU5MywxNi4zNzU3ODIzIDEzLjQ1ODE5MzQsMTcgMTIsMTcgQzkuMjM4NTc2MjUsMTcgNywxNC43NjE0MjM3IDcsMTIgQzcsOS4yMzg1NzYyNSA5LjIzODU3NjI1LDcgMTIsNyBDMTQuNjg4NzU0Nyw3IDE2Ljg4MTgxODEsOS4xMjIzMDY3MSAxNi45OTUzODA1LDExLjc4MzExMDQgTDE3LDEyIEwxNywxMyBDMTcsMTQuMTQwNzg3NyAxNy43MTYwMTAzLDE1IDE4LjUsMTUgQzE5LjI0NDc5MDIsMTUgMTkuOTI4MjI5LDE0LjIyNDU2MDkgMTkuOTk0NzEwOSwxMy4xNjg5MzQxIEwyMCwxMyBMMjAsMTIgQzIwLDcuNTgxNzIyIDE2LjQxODI3OCw0IDEyLDQgQzcuNTgxNzIyLDQgNCw3LjU4MTcyMiA0LDEyIEM0LDE2LjQxODI3OCA3LjU4MTcyMiwyMCAxMiwyMCBDMTMuMTYzMDk0OCwyMCAxNC4yODkyODIyLDE5Ljc1MjI2MTggMTUuMzIyNTE1OSwxOS4yNzk4MzMxIEMxNS44MjQ3ODc2LDE5LjA1MDE3NzcgMTYuNDE4MTMxNywxOS4yNzExNzcgMTYuNjQ3Nzg3LDE5Ljc3MzQ0ODcgQzE2Ljg3NzQ0MjMsMjAuMjc1NzIwNSAxNi42NTY0NDMsMjAuODY5MDY0NiAxNi4xNTQxNzEzLDIxLjA5ODcxOTkgQzE0Ljg2MTIxOCwyMS42ODk5MDEgMTMuNDUxNTQ2MywyMiAxMiwyMiBDNi40NzcxNTI1LDIyIDIsMTcuNTIyODQ3NSAyLDEyIEMyLDYuNDc3MTUyNSA2LjQ3NzE1MjUsMiAxMiwyIFogTTEyLDkgQzEwLjM0MzE0NTgsOSA5LDEwLjM0MzE0NTggOSwxMiBDOSwxMy42NTY4NTQyIDEwLjM0MzE0NTgsMTUgMTIsMTUgQzEzLjY1Njg1NDIsMTUgMTUsMTMuNjU2ODU0MiAxNSwxMiBDMTUsMTAuMzQzMTQ1OCAxMy42NTY4NTQyLDkgMTIsOSBaIi8+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFieldset = function SvgFieldset(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 80,\n height: 80,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 20h1v1H1v-2h1zm20 0h-1v1h2v-2h-1zM1 5h1V4h1V3H1zm1 2H1v2h1zm0 4H1v2h1zm20-2h1V7h-1zm0 4h1v-2h-1zM2 15H1v2h1zm20 2h1v-2h-1zM5 4h2V3H5zm6 0V3H9v1zm2 0h2V3h-2zm6-1h-2v1h2zM5 21h2v-1H5zm4 0h2v-1H9zm4 0h2v-1h-2zm4 0h2v-1h-2zm4-17h1v1h1V3h-2zm-1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1V8a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19V8H5v2h14m1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1v-2a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19v-2H5v2h14\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgFieldset as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MHB4IiBoZWlnaHQ9IjgwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAyMGgxdjFIMXYtMmgxem0yMCAwaC0xdjFoMnYtMmgtMXpNMSA1aDFWNGgxVjNIMXptMSAySDF2Mmgxem0wIDRIMXYyaDF6bTIwLTJoMVY3aC0xem0wIDRoMXYtMmgtMXpNMiAxNUgxdjJoMXptMjAgMmgxdi0yaC0xek01IDRoMlYzSDV6bTYgMFYzSDl2MXptMiAwaDJWM2gtMnptNi0xaC0ydjFoMnpNNSAyMWgydi0xSDV6bTQgMGgydi0xSDl6bTQgMGgydi0xaC0yem00IDBoMnYtMWgtMnptNC0xN2gxdjFoMVYzaC0yem0tMSA0djJhMS4wMDEgMS4wMDEgMCAwIDEtMSAxSDVhMS4wMDEgMS4wMDEgMCAwIDEtMS0xVjhhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOVY4SDV2MmgxNG0xIDR2MmExLjAwMSAxLjAwMSAwIDAgMS0xIDFINWExLjAwMSAxLjAwMSAwIDAgMS0xLTF2LTJhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOXYtMkg1djJoMTQiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgForm = function SvgForm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.2 12.994a.312.312 0 0 1-.188-.191C1 12.76.999 12.113 1 6.982V1.208l.022-.045a.328.328 0 0 1 .14-.14L1.208 1h11.585l.05.025a.31.31 0 0 1 .136.135l.021.039v5.783c0 5.377 0 5.787-.013 5.831a.314.314 0 0 1-.142.162L12.8 13H7.012c-3.457.001-5.8 0-5.817-.01zm11.236-5.992V1.568H1.573v10.857c0 .01 1.099.01 5.436.01h5.432V7.003zM5.574 10.72v-.86h1.712v1.72H5.574v-.86zm1.144 0v-.284h-.576v.568h.576v-.284zm1.145 0v-.284h3.432v.568H7.863v-.284zM5.574 7.572V6.428h5.72v2.288h-5.72V7.572zm5.144 0V7H6.142v.566c0 .311 0 .569.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.289h2.28v.577h-2.28v-.288zM5.575 4.14V2.996h5.72v2.288h-5.72V4.14zm5.144 0v-.572H6.142v.566c0 .31 0 .568.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.284h2.28v.567h-2.28V4.14z\"\n })));\n};\nexport { SvgForm as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAxNCAxNCIgcm9sZT0iaW1nIiBmb2N1c2FibGU9ImZhbHNlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtIDEuMTk5Nzk5NSwxMi45OTM5MTYgYyAtMC4wNzkwMzQsLTAuMDIzIC0wLjE2NDA3MSwtMC4xMDkzIC0wLjE4Nzk4MTMsLTAuMTkxNCAtMC4wMTIwMDUsLTAuMDQyIC0wLjAxMzAwNiwtMC42ODk1IC0wLjAxMTAwNSwtNS44MjEwMDAzIGwgMCwtNS43NzQgMC4wMjIwMSwtMC4wNDUgYyAwLjAyODAxMiwtMC4wNTcgMC4wODMwMzYsLTAuMTExNyAwLjE0MDE2MDYsLTAuMTQwMSBsIDAuMDQ1MDE5LC0wLjAyMiA1Ljc5MjIwNDEsMCA1Ljc5MjMwNDEsMCAwLjA1MTAyLDAuMDI1IGMgMC4wNTYwMiwwLjAyNyAwLjEwMzY0NSwwLjA3NSAwLjEzNTQ1OSwwLjEzNDUgbCAwLjAyMTAxLDAuMDM5IDAsNS43ODMyIGMgMCw1LjM3NjUwMDMgMCw1Ljc4NjYwMDMgLTAuMDEzMDEsNS44MzExMDAzIC0wLjAxOTAxLDAuMDYgLTAuMDc5MDMsMC4xMjkxIC0wLjE0MTc2MSwwLjE2MjEgbCAtMC4wNDYwMiwwLjAyNCAtNS43ODc3MDIzLDAgYyAtMy40NTYyOTQyLDllLTQgLTUuNzk5MjA3LDAgLTUuODE2MDE0MywtMC4wMSB6IG0gMTEuMjM2NjU3NSwtNS45OTE5MDAzIDAsLTUuNDM0MiAtNS40MzE5NDgxLDAgLTUuNDMxODQ4MiwwIDAsNS40MjI5IGMgMCwyLjk4MjYgLTQuMDAyZS00LDUuNDI4MDAwMyAwLDUuNDM0MjAwMyAwLDAuMDEgMS4wOTkwNzUxLDAuMDExIDUuNDM2NTUwMiwwLjAxMSBsIDUuNDMyMTQ4MSwwIDAsLTUuNDM0MjAwMyB6IG0gLTYuODYxOTY2MywzLjcxODEwMDMgMCwtMC44NjAzMDAzIDAuODU1NzY5OSwwIDAuODU1NzcsMCAwLDAuODYwMzAwMyAwLDAuODYwMyAtMC44NTU3NywwIC0wLjg1NTc2OTksMCAwLC0wLjg2MDMgeiBtIDEuMTQzOTk0NSwwIDAsLTAuMjgzOCAtMC4yODgyMjQ2LDAgLTAuMjg4MzI0NiwwIDAsMC4yODM4IDAsMC4yODM3IDAuMjg4MzI0NiwwIDAuMjg4MjI0NiwwIDAsLTAuMjgzNyB6IG0gMS4xNDQwOTQ3LDAgMCwtMC4yODM4IDEuNzE2MDQxOCwwIDEuNzE2MDQxMywwIDAsMC4yODM4IDAsMC4yODM3IC0xLjcxNjA0MTMsMCAtMS43MTYwNDE4LDAgMCwtMC4yODM3IHogbSAtMi4yODgwODkyLC0zLjE0ODMwMDMgMCwtMS4xNDQxIDIuODYwMDM2NCwwIDIuODYwMTM1OSwwIDAsMS4xNDQxIDAsMS4xNDM5IC0yLjg2MDEzNTksMCAtMi44NjAwMzY0LDAgMCwtMS4xNDM5IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEzIDAsMC41Njg3IDAuMDEwMDA0LDAuNTcyIDAsMCAxLjAzMjk0NjYsMC4wMSAyLjI4ODA4OTIsMC4wMSBsIDIuMjgyMDg2OCwwIDAsLTAuNTcyIHogbSAtNy45OTkyNTc4LDAgMCwtMC4yODg0IDEuMTM5NTkyNywwIDEuMTM5NDkyNSwwIDAsMC4yODg0IDAsMC4yODgyIC0xLjEzOTQ5MjUsMCAtMS4xMzk1OTI3LDAgMCwtMC4yODgyIHogbSAyLjg1NTYzNDUsLTMuNDMyMSAwLC0xLjE0NDEgMi44NjAwMzY0LDAgMi44NjAxMzU5LDAgMCwxLjE0NDEgMCwxLjE0NCAtMi44NjAxMzU5LDAgLTIuODYwMDM2NCwwIDAsLTEuMTQ0IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEyIDAsMC41Njg2IDAuMDEwMDA0LDAuNTcxOSAwLDAgMS4wMzI5NDY2LDAuMDEgMi4yODgwODkyLDAuMDEgbCAyLjI4MjA4NjgsMCAwLC0wLjU3MTkgeiBtIC03Ljk5OTI1NzgsMCAwLC0wLjI4MzkgMS4xMzk1OTI3LDAgMS4xMzk0OTI1LDAgMCwwLjI4MzkgMCwwLjI4MzcgLTEuMTM5NDkyNSwwIC0xLjEzOTU5MjcsMCAwLC0wLjI4MzcgeiIvPjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGdprField = function SvgGdprField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2zm0 8h5s1-1 1-5c0 0-5-1-6-2v7H5c1 4 5 7 5 7v-7z\"\n })));\n};\nexport { SvgGdprField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+Cgk8cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KCTxnPgoJCTxwYXRoIGQ9Ik0xMCAyczMgMiA3IDJjMCAxMS03IDE0LTcgMTRTMyAxNSAzIDRjNCAwIDctMiA3LTJ6bTAgOGg1czEtMSAxLTVjMCAwLTUtMS02LTJ2N0g1YzEgNCA1IDcgNSA3di03eiIvPgoJPC9nPgo8L3N2Zz4K\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgHiddenField = function SvgHiddenField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 1000 1000\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M499 270q57 0 104.5 28t75.5 76 28 104q0 39-15 76l122 122q97-81 142-198-36-91-104-162T694 206q-93-40-195-40-86 0-166 29l90 90q38-15 76-15zM83 157l95 94 19 20q-52 40-91.5 93T42 478q36 91 104.5 162T304 750q93 40 195 40 95 0 183-35l139 139 53-53-738-737zm230 230 65 64q-4 15-4 27 0 34 17 62.5t45.5 45.5 62.5 17q14 0 27-3l65 64q-45 22-92 22-56 0-104-28t-76-76-28-104q0-47 22-91zm180-33 131 131v-6q0-34-16.5-63t-45-45.5T500 354h-7z\"\n })));\n};\nexport { SvgHiddenField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00OTkgMjcwcTU3IDAgMTA0LjUgMjh0NzUuNSA3NiAyOCAxMDRxMCAzOS0xNSA3NmwxMjIgMTIycTk3LTgxIDE0Mi0xOTgtMzYtOTEtMTA0LTE2MlQ2OTQgMjA2cS05My00MC0xOTUtNDAtODYgMC0xNjYgMjlsOTAgOTBxMzgtMTUgNzYtMTV6TTgzIDE1N2w5NSA5NCAxOSAyMHEtNTIgNDAtOTEuNSA5M1Q0MiA0NzhxMzYgOTEgMTA0LjUgMTYyVDMwNCA3NTBxOTMgNDAgMTk1IDQwIDk1IDAgMTgzLTM1bDEzOSAxMzkgNTMtNTMtNzM4LTczN3ptMjMwIDIzMGw2NSA2NHEtNCAxNS00IDI3IDAgMzQgMTcgNjIuNXQ0NS41IDQ1LjUgNjIuNSAxN3ExNCAwIDI3LTNsNjUgNjRxLTQ1IDIyLTkyIDIyLTU2IDAtMTA0LTI4dC03Ni03Ni0yOC0xMDRxMC00NyAyMi05MXptMTgwLTMzbDEzMSAxMzF2LTZxMC0zNC0xNi41LTYzdC00NS00NS41VDUwMCAzNTRoLTd6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 341.333,\n height: 341.333,\n viewBox: \"0 0 256 256\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#9b51e0\",\n d: \"M0 128v128h256V0H0v128zm145.6-66.6c2.9.7 7.8 2.8 11.1 4.5 6.7 3.6 18.3 14.6 16.8 16-2.6 2.3-31.9 23.1-32.6 23.1-.5 0-.9-.5-.9-1 0-.6-1.1-2.2-2.5-3.5-3-3.1-8.3-3.3-11.6-.6-2.2 1.8-2.4 2.7-2.7 14l-.4 12.1H136v37h-13v34H82v-44.8c0-35.5.3-46.1 1.5-51.7 3.9-18.6 18.2-34.2 35.6-38.9 6.9-1.9 19.9-2 26.5-.2z\"\n })));\n};\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwoJdmVyc2lvbj0iMS4wIgoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJd2lkdGg9IjI1Ni4wMDAwMDBwdCIKCWhlaWdodD0iMjU2LjAwMDAwMHB0IgoJdmlld0JveD0iMCAwIDI1Ni4wMDAwMDAgMjU2LjAwMDAwMCIKCXByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiCj4KCTxnCgkJdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjU2LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKCQlmaWxsPSIjOWI1MWUwIgoJCXN0cm9rZT0ibm9uZSIKCT4KCQk8cGF0aAoJCQlkPSJNMCAxMjgwIGwwIC0xMjgwIDEyODAgMCAxMjgwIDAgMCAxMjgwIDAgMTI4MCAtMTI4MCAwIC0xMjgwIDAgMAoJCQktMTI4MHogbTE0NTYgNjY2IGMyOSAtNyA3OCAtMjggMTExIC00NSA2NyAtMzYgMTgzIC0xNDYgMTY4IC0xNjAgLTI2IC0yMwoJCQktMzE5IC0yMzEgLTMyNiAtMjMxIC01IDAgLTkgNSAtOSAxMCAwIDYgLTExIDIyIC0yNSAzNSAtMzAgMzEgLTgzIDMzIC0xMTYgNgoJCQktMjIgLTE4IC0yNCAtMjcgLTI3IC0xNDAgbC00IC0xMjEgNjYgMCA2NiAwIDAgLTE4NSAwIC0xODUgLTY1IDAgLTY1IDAgMAoJCQktMTcwIDAgLTE3MCAtMjA1IDAgLTIwNSAwIDAgNDQ4IGMwIDM1NSAzIDQ2MSAxNSA1MTcgMzkgMTg2IDE4MiAzNDIgMzU2IDM4OQoJCQk2OSAxOSAxOTkgMjAgMjY1IDJ6IgoJCS8+Cgk8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgNumberField = function SvgNumberField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 52 52\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.8 49.5H7.2c-2.6 0-4.7-2.1-4.7-4.7V7.2c0-2.6 2.1-4.7 4.7-4.7h37.6c2.6 0 4.7 2.1 4.7 4.7v37.6c0 2.6-2.1 4.7-4.7 4.7zm-36-39.2v31.3c0 .9.7 1.6 1.6 1.6h31.3c.9 0 1.6-.7 1.6-1.6V10.3c0-.9-.7-1.6-1.6-1.6H10.4c-.9.1-1.6.8-1.6 1.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.2 20.3h-2.9l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.2 4.9h-5.8l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.3 4.9H18c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h3L19 28.7h-3.1c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h2.9L17 36.5v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h5.7L26 36.4v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h3.2c.2 0 .3-.1.4-.3l.6-2.2V29c0-.2-.1-.4-.4-.4h-3l1.4-5.6h3.1c.2 0 .3-.1.4-.3l.6-2.2v-.1c-.1.1-.3-.1-.5-.1zm-8.1 8.5h-5.8l1.4-5.6h5.7l-1.3 5.6z\"\n })));\n};\nexport { SvgNumberField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCgkgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNTIgNTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUyIDUyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZD0iTTQ0LjgsNDkuNUg3LjJjLTIuNiwwLTQuNy0yLjEtNC43LTQuN1Y3LjJjMC0yLjYsMi4xLTQuNyw0LjctNC43aDM3LjZjMi42LDAsNC43LDIuMSw0LjcsNC43djM3LjYKCUM0OS41LDQ3LjQsNDcuNCw0OS41LDQ0LjgsNDkuNXogTTguOCwxMC4zdjMxLjNjMCwwLjksMC43LDEuNiwxLjYsMS42aDMxLjNjMC45LDAsMS42LTAuNywxLjYtMS42VjEwLjNjMC0wLjktMC43LTEuNi0xLjYtMS42SDEwLjQKCUM5LjUsOC44LDguOCw5LjUsOC44LDEwLjN6Ii8+CjxwYXRoIGQ9Ik0zNi4yLDIwLjNoLTIuOWwxLjItNC44di0wLjFjMC0wLjItMC4xLTAuNC0wLjQtMC40aC0yLjNjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMS4yLDQuOWgtNS44bDEuMi00LjgKCXYtMC4xYzAtMC4yLTAuMS0wLjQtMC40LTAuNGgtMi4zYy0wLjIsMC0wLjMsMC4xLTAuNCwwLjNsLTEuMyw0LjloLTMuMmMtMC4yLDAtMC4zLDAuMS0wLjQsMC4zbC0wLjYsMi4ydjAuMWMwLDAuMiwwLjEsMC40LDAuNCwwLjQKCWgzbC0xLjQsNS42aC0zLjFjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMC42LDIuMnYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuOWwtMS4yLDQuOHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuMwoJYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wxLjMtNWg1LjdMMjYsMzYuNHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuM2MwLjIsMCwwLjMtMC4xLDAuNC0wLjNsMS4zLTVoMy4yYzAuMiwwLDAuMy0wLjEsMC40LTAuMwoJbDAuNi0yLjJWMjljMC0wLjItMC4xLTAuNC0wLjQtMC40aC0zbDEuNC01LjZoMy4xYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wwLjYtMi4ydi0wLjFDMzYuNiwyMC41LDM2LjQsMjAuMywzNi4yLDIwLjNMMzYuMiwyMC4zegoJIE0yOC4xLDI4LjhoLTUuOGwxLjQtNS42aDUuN0wyOC4xLDI4Ljh6Ii8+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPasswordField = function SvgPasswordField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.988 51.297c.375 0 .961-.14 1.57-.445C42.66 43.469 47.185 40.375 47.185 31.96V14.289c0-2.414-1.055-3.187-3-4.008-2.743-1.125-11.532-4.289-14.25-5.25-.633-.187-1.266-.328-1.946-.328-.656 0-1.289.14-1.922.328-2.718.985-11.507 4.149-14.25 5.25-1.945.797-3 1.594-3 4.008v17.672c0 8.414 4.547 11.484 17.625 18.89.61.305 1.172.446 1.547.446Zm-8.226-15.563v-9.093c0-1.524.586-2.32 1.828-2.508V21.32c0-4.312 2.601-7.218 6.398-7.218 3.82 0 6.399 2.906 6.399 7.218v2.79c1.265.187 1.851.984 1.851 2.53v9.094c0 1.758-.773 2.578-2.414 2.578H22.152c-1.617 0-2.39-.82-2.39-2.578Zm4.289-11.648 7.898-.023v-3c0-2.766-1.57-4.594-3.96-4.594-2.368 0-3.938 1.828-3.938 4.593Z\"\n })));\n};\nexport { SvgPasswordField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMjcuOTg4MyA1MS4yOTY5IEMgMjguMzYzMyA1MS4yOTY5IDI4Ljk0OTIgNTEuMTU2MiAyOS41NTg2IDUwLjg1MTYgQyA0Mi42NjAyIDQzLjQ2ODggNDcuMTgzNiA0MC4zNzUwIDQ3LjE4MzYgMzEuOTYwOSBMIDQ3LjE4MzYgMTQuMjg5MSBDIDQ3LjE4MzYgMTEuODc1MCA0Ni4xMjg5IDExLjEwMTYgNDQuMTgzNiAxMC4yODEzIEMgNDEuNDQxNCA5LjE1NjIgMzIuNjUyNCA1Ljk5MjIgMjkuOTMzNiA1LjAzMTMgQyAyOS4zMDA4IDQuODQzOCAyOC42NjgwIDQuNzAzMSAyNy45ODgzIDQuNzAzMSBDIDI3LjMzMjAgNC43MDMxIDI2LjY5OTIgNC44NDM4IDI2LjA2NjQgNS4wMzEzIEMgMjMuMzQ3NiA2LjAxNTYgMTQuNTU4NiA5LjE3OTcgMTEuODE2NCAxMC4yODEzIEMgOS44NzExIDExLjA3ODEgOC44MTY0IDExLjg3NTAgOC44MTY0IDE0LjI4OTEgTCA4LjgxNjQgMzEuOTYwOSBDIDguODE2NCA0MC4zNzUwIDEzLjM2MzMgNDMuNDQ1MyAyNi40NDE0IDUwLjg1MTYgQyAyNy4wNTA4IDUxLjE1NjIgMjcuNjEzMyA1MS4yOTY5IDI3Ljk4ODMgNTEuMjk2OSBaIE0gMTkuNzYxNyAzNS43MzQ0IEwgMTkuNzYxNyAyNi42NDA2IEMgMTkuNzYxNyAyNS4xMTcyIDIwLjM0NzYgMjQuMzIwMyAyMS41ODk4IDI0LjEzMjggTCAyMS41ODk4IDIxLjMyMDMgQyAyMS41ODk4IDE3LjAwNzggMjQuMTkxNCAxNC4xMDE2IDI3Ljk4ODMgMTQuMTAxNiBDIDMxLjgwODYgMTQuMTAxNiAzNC4zODY3IDE3LjAwNzggMzQuMzg2NyAyMS4zMjAzIEwgMzQuMzg2NyAyNC4xMDk0IEMgMzUuNjUyNCAyNC4yOTY5IDM2LjIzODMgMjUuMDkzOCAzNi4yMzgzIDI2LjY0MDYgTCAzNi4yMzgzIDM1LjczNDQgQyAzNi4yMzgzIDM3LjQ5MjIgMzUuNDY0OSAzOC4zMTI1IDMzLjgyNDIgMzguMzEyNSBMIDIyLjE1MjQgMzguMzEyNSBDIDIwLjUzNTEgMzguMzEyNSAxOS43NjE3IDM3LjQ5MjIgMTkuNzYxNyAzNS43MzQ0IFogTSAyNC4wNTA4IDI0LjA4NjAgTCAzMS45NDkyIDI0LjA2MjUgTCAzMS45NDkyIDIxLjA2MjUgQyAzMS45NDkyIDE4LjI5NjkgMzAuMzc4OSAxNi40Njg3IDI3Ljk4ODMgMTYuNDY4NyBDIDI1LjYyMTEgMTYuNDY4NyAyNC4wNTA4IDE4LjI5NjkgMjQuMDUwOCAyMS4wNjI1IFoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPhoneField = function SvgPhoneField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.156 37.762c6.774 6.773 15.024 12 21.75 12 3.024 0 5.672-1.055 7.805-3.399 1.242-1.383 2.016-3 2.016-4.593 0-1.172-.446-2.297-1.57-3.094l-7.173-5.11c-1.101-.75-2.015-1.125-2.859-1.125-1.078 0-2.016.61-3.094 1.664l-1.664 1.641a1.263 1.263 0 0 1-.89.375c-.375 0-.704-.14-.961-.258-1.43-.773-3.914-2.906-6.235-5.203-2.297-2.297-4.43-4.781-5.18-6.234a1.991 1.991 0 0 1-.257-.938c0-.304.093-.61.351-.867l1.64-1.71c1.056-1.079 1.665-2.017 1.665-3.095 0-.843-.375-1.757-1.148-2.859l-5.04-7.102c-.82-1.125-1.968-1.617-3.234-1.617-1.547 0-3.164.703-4.523 2.04-2.274 2.18-3.282 4.874-3.282 7.85 0 6.727 5.133 14.884 11.883 21.634Z\"\n })));\n};\nexport { SvgPhoneField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMTguMTU2MiAzNy43NjE3IEMgMjQuOTI5NyA0NC41MzUyIDMzLjE3OTcgNDkuNzYxNyAzOS45MDYyIDQ5Ljc2MTcgQyA0Mi45Mjk3IDQ5Ljc2MTcgNDUuNTc4MSA0OC43MDcwIDQ3LjcxMDkgNDYuMzYzMyBDIDQ4Ljk1MjggNDQuOTgwNSA0OS43MjY2IDQzLjM2MzMgNDkuNzI2NiA0MS43Njk1IEMgNDkuNzI2NiA0MC41OTc3IDQ5LjI4MTIgMzkuNDcyNyA0OC4xNTYyIDM4LjY3NTggTCA0MC45ODQzIDMzLjU2NjQgQyAzOS44ODI4IDMyLjgxNjQgMzguOTY4NyAzMi40NDE0IDM4LjEyNTAgMzIuNDQxNCBDIDM3LjA0NjggMzIuNDQxNCAzNi4xMDkzIDMzLjA1MDggMzUuMDMxMiAzNC4xMDU1IEwgMzMuMzY3MSAzNS43NDYxIEMgMzMuMTA5MyAzNi4wMDM5IDMyLjc4MTIgMzYuMTIxMSAzMi40NzY1IDM2LjEyMTEgQyAzMi4xMDE1IDM2LjEyMTEgMzEuNzczNCAzNS45ODA1IDMxLjUxNTYgMzUuODYzMyBDIDMwLjA4NTkgMzUuMDg5OCAyNy42MDE1IDMyLjk1NzEgMjUuMjgxMiAzMC42NjAyIEMgMjIuOTg0MyAyOC4zNjMzIDIwLjg1MTUgMjUuODc4OSAyMC4xMDE1IDI0LjQyNTggQyAxOS45NjA5IDI0LjE2ODAgMTkuODQzNyAyMy44Mzk4IDE5Ljg0MzcgMjMuNDg4MyBDIDE5Ljg0MzcgMjMuMTgzNiAxOS45Mzc1IDIyLjg3ODkgMjAuMTk1MyAyMi42MjExIEwgMjEuODM1OSAyMC45MTAyIEMgMjIuODkwNiAxOS44MzIwIDIzLjQ5OTkgMTguODk0NSAyMy40OTk5IDE3LjgxNjQgQyAyMy40OTk5IDE2Ljk3MjcgMjMuMTI1MCAxNi4wNTg2IDIyLjM1MTUgMTQuOTU3MSBMIDE3LjMxMjQgNy44NTU1IEMgMTYuNDkyMSA2LjczMDUgMTUuMzQzNyA2LjIzODMgMTQuMDc4MSA2LjIzODMgQyAxMi41MzEyIDYuMjM4MyAxMC45MTQwIDYuOTQxNCA5LjU1NDYgOC4yNzc0IEMgNy4yODEyIDEwLjQ1NzEgNi4yNzM0IDEzLjE1MjQgNi4yNzM0IDE2LjEyODkgQyA2LjI3MzQgMjIuODU1NSAxMS40MDYyIDMxLjAxMTcgMTguMTU2MiAzNy43NjE3IFoiLz48L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioButtons = function SvgRadioButtons(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 4h13v1H9zm0 17h13v-1H9zm0-8h13v-1H9zM7 4a3 3 0 1 1-3-3 3 3 0 0 1 3 3zM6 4a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2 2 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm-2-9a1 1 0 1 0 1 1 1 1 0 0 0-1-1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgRadioButtons as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05IDRoMTN2MUg5em0wIDE3aDEzdi0xSDl6bTAtOGgxM3YtMUg5ek03IDRhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzek02IDRhMiAyIDAgMSAwLTIgMiAyLjAwMyAyLjAwMyAwIDAgMCAyLTJ6bTEgOGEzIDMgMCAxIDEtMy0zIDMgMyAwIDAgMSAzIDN6bS0xIDBhMiAyIDAgMSAwLTIgMiAyIDIgMCAwIDAgMi0yem0xIDhhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzem0tMSAwYTIgMiAwIDEgMC0yIDIgMi4wMDMgMi4wMDMgMCAwIDAgMi0yem0tMi05YTEgMSAwIDEgMCAxIDEgMSAxIDAgMCAwLTEtMXoiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioField = function SvgRadioField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 4C5.32 4 4 5.32 4 7s1.32 3 3 3 3-1.32 3-3-1.32-3-3-3Zm0-3C3.7 1 1 3.7 1 7s2.7 6 6 6 6-2.7 6-6-2.7-6-6-6Zm0 10.8c-2.64 0-4.8-2.16-4.8-4.8 0-2.64 2.16-4.8 4.8-4.8 2.64 0 4.8 2.16 4.8 4.8 0 2.64-2.16 4.8-4.8 4.8z\"\n })));\n};\nexport { SvgRadioField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE0IDE0IiByb2xlPSJpbWciIGZvY3VzYWJsZT0iZmFsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gNyw0IEMgNS4zMiw0IDQsNS4zMiA0LDcgNCw4LjY4IDUuMzIsMTAgNywxMCA4LjY4LDEwIDEwLDguNjggMTAsNyAxMCw1LjMyIDguNjgsNCA3LDQgWiBNIDcsMSBDIDMuNywxIDEsMy43IDEsNyBjIDAsMy4zIDIuNyw2IDYsNiAzLjMsMCA2LC0yLjcgNiwtNiBDIDEzLDMuNyAxMC4zLDEgNywxIFogTSA3LDExLjggQyA0LjM2LDExLjggMi4yLDkuNjQgMi4yLDcgMi4yLDQuMzYgNC4zNiwyLjIgNywyLjIgYyAyLjY0LDAgNC44LDIuMTYgNC44LDQuOCAwLDIuNjQgLTIuMTYsNC44IC00LjgsNC44IHoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRangeField = function SvgRangeField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 11h-3.184a2.982 2.982 0 0 0-5.632 0H3a1 1 0 0 0 0 2h9.184a2.982 2.982 0 0 0 5.632 0H21a1 1 0 0 0 0-2Zm-6 2a1 1 0 1 1 1-1 1.001 1.001 0 0 1-1 1Z\"\n })));\n};\nexport { SvgRangeField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggZD0iTTIxLDExSDE3LjgxNTczYTIuOTgyMDgsMi45ODIwOCwwLDAsMC01LjYzMTQ2LDBIM2ExLDEsMCwwLDAsMCwyaDkuMTg0MzNhMi45ODIsMi45ODIsMCwwLDAsNS42MzE0LDBIMjFhMSwxLDAsMCwwLDAtMlptLTYsMmExLDEsMCwxLDEsMS0xQTEuMDAxMywxLjAwMTMsMCwwLDEsMTUsMTNaIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSelect = function SvgSelect(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 4H1c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1zm-5 7H1V5h9v6zm3-2.6L11 7h4l-2 1.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1e72bd\",\n d: \"M2 6h1v4H2V6z\"\n })));\n};\nexport { SvgSelect as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8cGF0aCBkPSJNMTUgNGgtMTRjLTAuNiAwLTEgMC40LTEgMXY2YzAgMC42IDAuNCAxIDEgMWgxNGMwLjYgMCAxLTAuNCAxLTF2LTZjMC0wLjYtMC40LTEtMS0xek0xMCAxMWgtOXYtNmg5djZ6TTEzIDguNGwtMi0xLjRoNGwtMiAxLjR6Ij48L3BhdGg+CjxwYXRoIGZpbGw9IiMxZTcyYmQiIGQ9Ik0yIDZoMXY0aC0xdi00eiI+PC9wYXRoPgo8L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextField = function SvgTextField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 9h2v30H8v3h8v-3h-2V9h2V6H8zM4 16h3.021v-4H0v24h7.042v-4H4zM16.979 12v4H44v16H16.958v4H48V12z\"\n })));\n};\nexport { SvgTextField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjgsOSAxMCw5IDEwLDEyIDEwLDE2IDEwLDM5IDgsMzkgOCw0MiAxNiw0MiAxNiwzOSAxNCwzOSAxNCwxNiAxNCwxMiAxNCw5IDE2LDkgMTYsNiA4LDYgICIvPgoNPHBvbHlnb24gcG9pbnRzPSI0LDE2IDcuMDIxLDE2IDcuMDIxLDEyIDAsMTIgMCwzNiA3LjA0MiwzNiA3LjA0MiwzMiA0LDMyICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTYuOTc5LDEyIDE2Ljk3OSwxNiA0NCwxNiA0NCwzMiAxNi45NTgsMzIgMTYuOTU4LDM2IDQ4LDM2IDQ4LDEyICAiLz4KDTwvZz4KDTwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextareaField = function SvgTextareaField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 33h-2V3h2V0H8v3h2v30H8v3h8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.031 6v4H44v34H4V10h2.938V6H0v42h48V6z\"\n })));\n};\nexport { SvgTextareaField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjE2LDMzIDE0LDMzIDE0LDEwIDE0LDYgMTQsMyAxNiwzIDE2LDAgOCwwIDgsMyAxMCwzIDEwLDYgMTAsMTAgMTAsMzMgOCwzMyA4LDM2IDE2LDM2ICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTcuMDMxLDYgMTcuMDMxLDEwIDQ0LDEwIDQ0LDQ0IDQsNDQgNCwxMCA2LjkzOCwxMCA2LjkzOCw2IDAsNiAwLDQ4IDQ4LDQ4IDQ4LDYgICIvPgoNPC9nPgoNPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgUrlField = function SvgUrlField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.794 12.794c-.478.475-1.113.737-1.794.737s-1.316-.262-1.794-.738a2.54 2.54 0 0 1 0-3.584L5.5 6.916 4.084 5.5 1.791 7.794a4.54 4.54 0 0 0 .003 6.413c.853.855 1.99 1.324 3.206 1.324s2.353-.469 3.206-1.325l2.294-2.294L9.084 10.5l-2.29 2.294zm7.412-11C13.353.938 12.216.469 11 .469S8.647.938 7.794 1.794L5.5 4.084 6.916 5.5 9.21 3.206c.474-.475 1.109-.737 1.79-.737s1.316.263 1.794.737a2.537 2.537 0 0 1 0 3.584L10.5 9.084l1.416 1.416 2.294-2.294a4.54 4.54 0 0 0-.004-6.412zm-2.5 3.912L10.29 4.29l-6 6 1.416 1.416 6-6z\"\n })));\n};\nexport { SvgUrlField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgaWQ9Imljb24tYm91bmQiIGZpbGw9Im5vbmUiIC8+CiAgPHBhdGggZD0iTTYuNzk0LDEyLjc5NEM2LjMxNiwxMy4yNjksNS42ODEsMTMuNTMxLDUsMTMuNTMxcy0xLjMxNi0wLjI2Mi0xLjc5NC0wLjczOGMtMC45ODctMC45ODgtMC45ODctMi41OTcsMC0zLjU4NEw1LjUsNi45MTYgTDQuMDg0LDUuNUwxLjc5MSw3Ljc5NGMtMS43NjYsMS43NjktMS43NjYsNC42NDQsMC4wMDMsNi40MTNDMi42NDcsMTUuMDYyLDMuNzg0LDE1LjUzMSw1LDE1LjUzMXMyLjM1My0wLjQ2OSwzLjIwNi0xLjMyNSBsMi4yOTQtMi4yOTRMOS4wODQsMTAuNUw2Ljc5NCwxMi43OTR6IE0xNC4yMDYsMS43OTRDMTMuMzUzLDAuOTM4LDEyLjIxNiwwLjQ2OSwxMSwwLjQ2OVM4LjY0NywwLjkzOCw3Ljc5NCwxLjc5NEw1LjUsNC4wODQgTDYuOTE2LDUuNWwyLjI5NC0yLjI5NEM5LjY4NCwyLjczMSwxMC4zMTksMi40NjksMTEsMi40NjlzMS4zMTYsMC4yNjMsMS43OTQsMC43MzdjMC45ODgsMC45ODcsMC45ODgsMi41OTcsMCwzLjU4NEwxMC41LDkuMDg0IGwxLjQxNiwxLjQxNmwyLjI5NC0yLjI5NEMxNS45NzUsNi40MzgsMTUuOTc1LDMuNTYyLDE0LjIwNiwxLjc5NHogTTExLjcwNiw1LjcwNmwtMS40MTYtMS40MTZsLTYsNmwxLjQxNiwxLjQxNkwxMS43MDYsNS43MDZ6IiAvPgo8L3N2Zz4=\";","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgBrevo = function SvgBrevo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 64 64\"\n }, props), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 32,\n cy: 32,\n r: 32,\n style: {\n fill: \"#0b996e\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.83 28.07c2.05-2.05 3.01-4.41 3.01-7.29 0-5.95-4.29-9.91-10.74-9.91H20.24v42.28h12.79c9.72 0 17.01-6.08 17.01-14.14 0-4.41-2.24-8.38-6.2-10.94ZM25.98 16.36h9.47c3.2 0 5.31 1.85 5.31 4.67 0 3.2-2.75 5.63-8.38 7.48-3.84 1.22-5.56 2.24-6.2 3.45h-.19V16.35Zm6.52 31.28h-6.52v-6.52c0-2.88 2.43-5.69 5.82-6.78 3.01-1.02 5.5-2.05 7.61-3.13 2.81 1.67 4.54 4.54 4.54 7.55 0 5.12-4.86 8.89-11.45 8.89Z\",\n style: {\n fill: \"#fff\"\n }\n }));\n};\nexport { SvgBrevo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48dGl0bGU+QnJldm8gaWNvbiAtIFVuY2FubnkgQXV0b21hdG9yPC90aXRsZT48Y2lyY2xlIGN4PSIzMiIgY3k9IjMyIiByPSIzMiIgc3R5bGU9ImZpbGw6IzBiOTk2ZTsiLz48cGF0aCBkPSJtNDMuODMsMjguMDdjMi4wNS0yLjA1LDMuMDEtNC40MSwzLjAxLTcuMjksMC01Ljk1LTQuMjktOS45MS0xMC43NC05LjkxaC0xNS44NnY0Mi4yOGgxMi43OWM5LjcyLDAsMTcuMDEtNi4wOCwxNy4wMS0xNC4xNCwwLTQuNDEtMi4yNC04LjM4LTYuMi0xMC45NGgwWm0tMTcuODUtMTEuNzFoOS40N2MzLjIsMCw1LjMxLDEuODUsNS4zMSw0LjY3LDAsMy4yLTIuNzUsNS42My04LjM4LDcuNDgtMy44NCwxLjIyLTUuNTYsMi4yNC02LjIsMy40NWgtLjE5di0xNS42MVptNi41MiwzMS4yOGgtNi41MnYtNi41MmMwLTIuODgsMi40My01LjY5LDUuODItNi43OCwzLjAxLTEuMDIsNS41LTIuMDUsNy42MS0zLjEzLDIuODEsMS42Nyw0LjU0LDQuNTQsNC41NCw3LjU1LDAsNS4xMi00Ljg2LDguODktMTEuNDUsOC44OWgwWiIgc3R5bGU9ImZpbGw6I2ZmZjsiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgConvertkit = function SvgConvertkit(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"-0.093 0 174.921 162\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fb6970\",\n d: \"M84.358 127.894c30.359 0 53.824-22.904 53.824-51.157 0-26.47-22.045-42.631-36.646-42.631-20.332 0-36.63 14.248-38.952 35.4-.43 3.917-3.538 7.202-7.482 7.174-6.556-.047-16.089-.103-22.123-.082-2.598.009-4.745-2.096-4.617-4.689.91-18.345 7.053-35.498 18.766-48.674C60.143 8.594 79.097 0 101.536 0c37.701 0 73.292 34.209 73.292 76.737 0 47.089-39.07 85.263-89.668 85.263-36.084 0-72.427-23.549-85.116-56.472a.707.707 0 0 1-.032-.382c.17-.974.505-1.864.835-2.74.48-1.274.95-2.52.882-3.955l-.22-4.586a5.588 5.588 0 0 1 3.243-5.329l1.834-.853a7.077 7.077 0 0 0 3.99-5.138c.615-3.363 3.571-5.808 7.022-5.808 5.39 0 10.076 3.579 11.836 8.667 8.473 24.49 21.943 42.49 54.924 42.49z\"\n })));\n};\nexport { SvgConvertkit as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9Ii0uMDkyNzY5MDggMCAxNzQuOTIwNzY5MDggMTYyIiB3aWR0aD0iMjRweCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtODQuMzU4IDEyNy44OTRjMzAuMzU5IDAgNTMuODI0LTIyLjkwNCA1My44MjQtNTEuMTU3IDAtMjYuNDctMjIuMDQ1LTQyLjYzMS0zNi42NDYtNDIuNjMxLTIwLjMzMiAwLTM2LjYzIDE0LjI0OC0zOC45NTIgMzUuNC0uNDMgMy45MTctMy41MzggNy4yMDItNy40ODIgNy4xNzQtNi41NTYtLjA0Ny0xNi4wODktLjEwMy0yMi4xMjMtLjA4Mi0yLjU5OC4wMDktNC43NDUtMi4wOTYtNC42MTctNC42ODkuOTEtMTguMzQ1IDcuMDUzLTM1LjQ5OCAxOC43NjYtNDguNjc0IDEzLjAxNS0xNC42NDEgMzEuOTY5LTIzLjIzNSA1NC40MDgtMjMuMjM1IDM3LjcwMSAwIDczLjI5MiAzNC4yMDkgNzMuMjkyIDc2LjczNyAwIDQ3LjA4OS0zOS4wNyA4NS4yNjMtODkuNjY4IDg1LjI2My0zNi4wODQgMC03Mi40MjctMjMuNTQ5LTg1LjExNi01Ni40NzJhLjcwNy43MDcgMCAwIDEgLS4wMzItLjM4MmMuMTctLjk3NC41MDUtMS44NjQuODM1LTIuNzQuNDgtMS4yNzQuOTUtMi41Mi44ODItMy45NTVsLS4yMi00LjU4NmE1LjU4OCA1LjU4OCAwIDAgMSAzLjI0My01LjMyOWwxLjgzNC0uODUzYTcuMDc3IDcuMDc3IDAgMCAwIDMuOTktNS4xMzhjLjYxNS0zLjM2MyAzLjU3MS01LjgwOCA3LjAyMi01LjgwOCA1LjM5IDAgMTAuMDc2IDMuNTc5IDExLjgzNiA4LjY2NyA4LjQ3MyAyNC40OSAyMS45NDMgNDIuNDkgNTQuOTI0IDQyLjQ5eiIgZmlsbD0iI2ZiNjk3MCIvPjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmail = function SvgEmail(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n viewBox: \"0 0 114 114\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 7,\n d: \"M7 20h98v72H7zl44 44q5 4 10 0l44-44M7 92l36-36m26 0 36 36\"\n })));\n};\nexport { SvgEmail as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMTQgMTE0IiB3aWR0aD0iMjQiPg0KPHBhdGggc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjciIGZpbGw9Im5vbmUiIGQ9Im03LDIwaDk4djcySDd6bDQ0LDQ0cTUsNCAxMCwwbDQ0LTQ0TTcsOTJsMzYtMzZtMjYsMCAzNiwzNiIvPg0KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGetresponse = function SvgGetresponse(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 0 90 59\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00baff\",\n d: \"M87.6 52c0 2.1-1.7 3.7-3.7 3.7H3.7C1.7 55.8 0 54.1 0 52V3.7C0 1.7 1.7 0 3.7 0h80.1c2.1 0 3.7 1.7 3.7 3.7V52z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M86.8 1.4C76.4 17.5 60.3 32.3 43.7 31.9c-6.1-.1-13.1-1.9-19-6.7C20.3 21.6 15.9 16 14.2 8h-1.8c-2.7 0-4.3 2.4-4 4.6.1.5.2 1.1.3 1.7 1.3 7.8 5.9 16.6 13.6 22.3 6 4.4 13.4 7.3 21.5 7.3 14.6 0 30.2-9.3 43.8-33.2v-7c0-.8-.3-1.7-.8-2.3z\"\n })));\n};\nexport { SvgGetresponse as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDkwIDU5IiB2aWV3Qm94PSIwIDAgOTAgNTkiIGhlaWdodD0iMjRweCI+CjxwYXRoIGQ9Im04Ny42IDUyYzAgMi4xLTEuNyAzLjctMy43IDMuN2gtODAuMmMtMiAuMS0zLjctMS42LTMuNy0zLjd2LTQ4LjNjMC0yIDEuNy0zLjcgMy43LTMuN2g4MC4xYzIuMSAwIDMuNyAxLjcgMy43IDMuN3Y0OC4zeiIgZmlsbD0iIzAwYmFmZiIvPjxwYXRoIGQ9Im04Ni44IDEuNGMtMTAuNCAxNi4xLTI2LjUgMzAuOS00My4xIDMwLjUtNi4xLS4xLTEzLjEtMS45LTE5LTYuNy00LjQtMy42LTguOC05LjItMTAuNS0xNy4yLS43IDAtMS4yIDAtMS44IDAtMi43IDAtNC4zIDIuNC00IDQuNi4xLjUuMiAxLjEuMyAxLjcgMS4zIDcuOCA1LjkgMTYuNiAxMy42IDIyLjMgNiA0LjQgMTMuNCA3LjMgMjEuNSA3LjMgMTQuNiAwIDMwLjItOS4zIDQzLjgtMzMuMnYtN2MwLS44LS4zLTEuNy0uOC0yLjN6IiBmaWxsPSIjZmZmIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailchimp = function SvgMailchimp(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 200 200\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.4 2.4c-8.9 2.9-16.5 7.2-26.2 14.9-23.1 18.3-43 45.8-47.7 65.9-1.7 7.1-1.7 7.7-.1 12.6 1.3 3.8 2.9 6.2 6.1 8.7l4.2 3.5-.5 8.8c-.4 7.4-.1 9.6 1.6 13.4 4.1 9.3 15 17.8 22.8 17.8 3 0 3.6.5 6.6 6.2 2 4 6.5 9.5 11.8 14.9 7.3 7.3 10 9.4 18 13.2 11.3 5.4 19.5 7.5 32.1 8.3 35.8 2.3 67-18.4 74.4-49.3 2.4-9.8 1.6-14.9-2.7-18.8-4.7-4.2-6-8.5-4.1-13.5 3.7-9.4-2.2-17.4-16.2-21.5l-4-1.2-.6-10.4c-.6-10.9-3.1-19-7-22.5-1.8-1.6-1.7-1.8 2.6-7.3 7-9 9.8-16 9.3-23.7-.5-7.3-2.6-10.4-9.3-13.5-7.6-3.5-23.2-2.1-35.8 3.3l-4.7 2.1-5.5-5.2C98 3.9 91.2 0 87.5.1c-1.1 0-5.2 1-9.1 2.3zm18.1 9.7c2.5 2.3 4.5 4.7 4.5 5.3-.1.6-4 3.6-8.8 6.6-25.5 16.1-42.4 34.4-53.3 58-2.2 4.7-4.3 9.1-4.7 9.8-.4.8-2.5 2-4.6 2.7-2.1.8-5.5 2.9-7.5 4.9l-3.6 3.5-3.2-2.5c-4.3-3.3-5.7-8.5-4.2-15.5C17.6 54.1 62.9 8.4 87.3 8.1c4.2-.1 5.2.4 9.2 4zm16 23.9c-1.8 1.9-1.7 2 .1 2 2.6 0 13.7 2.9 14.6 3.8.4.4-5.9.7-14 .7-13.5 0-15.4.2-22.8 2.8-4.5 1.5-10.7 4.3-13.8 6.2-3.1 1.8-5.6 3-5.6 2.5 0-1.9 20.8-18.9 23.3-19 .4 0 .3.9-.3 1.9-1.9 3.6-1 4.2 3.3 2 5.1-2.7 11.4-4.7 14.6-4.8 2.3-.1 2.4 0 .6 1.9zm30.2 25c2.9 2.7 4 6.9 4.7 18.4.4 5.5 1.2 10.6 1.8 11.3s3.2 1.9 5.8 2.7c6.5 1.9 12.6 5.2 13.4 7.1 2.3 6-2.9 12.8-13.8 17.9-10.9 5.2-19.9 7-35.3 6.8l-13.2-.1-2.6 3c-3.2 3.9-3.4 10.4-.4 14.3 3.8 4.8 9.4 6.9 19.6 7.4 15.4.7 31.1-4.1 40.2-12.3 5-4.6 4.7-5.5-.7-2.1-15.8 9.9-40.4 13.5-51.4 7.4-2.4-1.3-4.4-3.1-4.6-4.1-.3-1.4.2-1.6 3-.9 5.6 1.2 24.6.9 26-.5 1-1-.8-1.3-8.7-1.3-8.6 0-13.7-.7-19.2-2.5-.7-.2-1-1.1-.7-2 .5-1.2 2.9-1.5 13.9-1.5 18.8 0 31.1-2.9 42.8-10.1 2.6-1.6 4.9-2.9 5.2-2.9s1 2.1 1.6 4.6c.9 3.4 1.8 4.8 3.7 5.5 2.3.9 2.4 1.3 2 6.8-1.5 21.1-26.4 39.4-51.8 37.8-16.1-.9-27.3-7.5-33.2-19.4-3-6.1-3.3-7.6-3.3-15.3.1-9.1 2-15 7-21.6 1.4-1.8 2.5-3.9 2.5-4.6s-2-3.8-4.5-6.8c-9-10.9-9.6-22.7-1.6-31.3 4.9-5.4 7.5-6.1 20.7-5.8l12 .2 6-4c6.6-4.5 10-5.1 13.1-2.1zm-95.6 41.3c11.7 7.8 13.1 30.3 2.4 37.3-3.5 2.3-11.2 2.1-16.1-.4-7.9-4.1-12.4-11.1-12.4-19.6 0-6.6 1.2-10.1 4.8-14 5.6-5.9 15.2-7.5 21.3-3.3z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136 78c-1.1 2.1.1 9.5 1.9 11.3 1.7 1.7 4.2 1.7 4.8.1.9-2.3-.7-10.2-2.3-11.9-2-2-3.1-1.9-4.4.5zm-34.7 13.4c-3.3 2.8-2.7 4.1 1.1 2.6 3.6-1.3 9.9-1.3 13.1.2 3.7 1.7 4.4 0 1.2-2.8-3.9-3.4-11.5-3.4-15.4 0zm38.4 4.2c-1.2 1.2-.8 4.1.7 5.3 1.7 1.4 3.9-.9 3.4-3.6-.3-1.8-2.9-2.9-4.1-1.7zm-30.6 1.7c-3.4 1.7-4.2 4.2-1 3.1 1.3-.5 4.1-.9 6.2-.8 4.1 0 4.8-1 1.8-2.6-2.5-1.3-4-1.3-7 .3zm20.3 3.2c-.7 1.8 1.3 4.5 3.3 4.5 2.3 0 2.8-3.1.8-4.6-2.4-1.8-3.4-1.8-4.1.1zm-96.9 8.7c-3 2.7-4.7 7.9-3.3 9.9.5.8 1.1 1 1.4.4 2.2-5 3.2-6 6.1-6.3 4.5-.4 6.7 2.9 5.1 8-2 6.6 1.7 12.1 6.5 9.6 2-1 2.3-3 .5-2.7-3.5.4-4-.1-3.3-3.4.3-1.7.9-5.3 1.2-7.8.4-4.2.2-4.8-2.7-7.2-3.9-3.3-8-3.5-11.5-.5z\"\n })));\n};\nexport { SvgMailchimp as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2ZXJzaW9uPSIxIgogIHZpZXdCb3g9IjAgMCAyMDAgMjAwIgo+CiAgICA8cGF0aAogICAgICAgIGQ9Ik03ODQgMTk3NmMtODktMjktMTY1LTcyLTI2Mi0xNDktMjMxLTE4My00MzAtNDU4LTQ3Ny02NTktMTctNzEtMTctNzctMS0xMjYgMTMtMzggMjktNjIgNjEtODdsNDItMzUtNS04OGMtNC03NC0xLTk2IDE2LTEzNCA0MS05MyAxNTAtMTc4IDIyOC0xNzggMzAgMCAzNi01IDY2LTYyIDIwLTQwIDY1LTk1IDExOC0xNDkgNzMtNzMgMTAwLTk0IDE4MC0xMzIgMTEzLTU0IDE5NS03NSAzMjEtODMgMzU4LTIzIDY3MCAxODQgNzQ0IDQ5MyAyNCA5OCAxNiAxNDktMjcgMTg4LTQ3IDQyLTYwIDg1LTQxIDEzNSAzNyA5NC0yMiAxNzQtMTYyIDIxNWwtNDAgMTItNiAxMDRjLTYgMTA5LTMxIDE5MC03MCAyMjUtMTggMTYtMTcgMTggMjYgNzMgNzAgOTAgOTggMTYwIDkzIDIzNy01IDczLTI2IDEwNC05MyAxMzUtNzYgMzUtMjMyIDIxLTM1OC0zM2wtNDctMjEtNTUgNTJjLTU1IDUyLTEyMyA5MS0xNjAgOTAtMTEgMC01Mi0xMC05MS0yM3ptMTgxLTk3YzI1LTIzIDQ1LTQ3IDQ1LTUzLTEtNi00MC0zNi04OC02Ni0yNTUtMTYxLTQyNC0zNDQtNTMzLTU4MC0yMi00Ny00My05MS00Ny05OC00LTgtMjUtMjAtNDYtMjctMjEtOC01NS0yOS03NS00OWwtMzYtMzUtMzIgMjVjLTQzIDMzLTU3IDg1LTQyIDE1NSA2NSAzMDggNTE4IDc2NSA3NjIgNzY4IDQyIDEgNTItNCA5Mi00MHptMTYwLTIzOWMtMTgtMTktMTctMjAgMS0yMCAyNiAwIDEzNy0yOSAxNDYtMzggNC00LTU5LTctMTQwLTctMTM1IDAtMTU0LTItMjI4LTI4LTQ1LTE1LTEwNy00My0xMzgtNjItMzEtMTgtNTYtMzAtNTYtMjUgMCAxOSAyMDggMTg5IDIzMyAxOTAgNCAwIDMtOS0zLTE5LTE5LTM2LTEwLTQyIDMzLTIwIDUxIDI3IDExNCA0NyAxNDYgNDggMjMgMSAyNCAwIDYtMTl6bTMwMi0yNTBjMjktMjcgNDAtNjkgNDctMTg0IDQtNTUgMTItMTA2IDE4LTExM3MzMi0xOSA1OC0yN2M2NS0xOSAxMjYtNTIgMTM0LTcxIDIzLTYwLTI5LTEyOC0xMzgtMTc5LTEwOS01Mi0xOTktNzAtMzUzLTY4bC0xMzIgMS0yNi0zMGMtMzItMzktMzQtMTA0LTQtMTQzIDM4LTQ4IDk0LTY5IDE5Ni03NCAxNTQtNyAzMTEgNDEgNDAyIDEyMyA1MCA0NiA0NyA1NS03IDIxLTE1OC05OS00MDQtMTM1LTUxNC03NC0yNCAxMy00NCAzMS00NiA0MS0zIDE0IDIgMTYgMzAgOSA1Ni0xMiAyNDYtOSAyNjAgNSAxMCAxMC04IDEzLTg3IDEzLTg2IDAtMTM3IDctMTkyIDI1LTcgMi0xMCAxMS03IDIwIDUgMTIgMjkgMTUgMTM5IDE1IDE4OCAwIDMxMSAyOSA0MjggMTAxIDI2IDE2IDQ5IDI5IDUyIDI5czEwLTIxIDE2LTQ2YzktMzQgMTgtNDggMzctNTUgMjMtOSAyNC0xMyAyMC02OC0xNS0yMTEtMjY0LTM5NC01MTgtMzc4LTE2MSA5LTI3MyA3NS0zMzIgMTk0LTMwIDYxLTMzIDc2LTMzIDE1MyAxIDkxIDIwIDE1MCA3MCAyMTYgMTQgMTggMjUgMzkgMjUgNDZzLTIwIDM4LTQ1IDY4Yy05MCAxMDktOTYgMjI3LTE2IDMxMyA0OSA1NCA3NSA2MSAyMDcgNThsMTIwLTIgNjAgNDBjNjYgNDUgMTAwIDUxIDEzMSAyMXpNNDcxIDk3N2MxMTctNzggMTMxLTMwMyAyNC0zNzMtMzUtMjMtMTEyLTIxLTE2MSA0LTc5IDQxLTEyNCAxMTEtMTI0IDE5NiAwIDY2IDEyIDEwMSA0OCAxNDAgNTYgNTkgMTUyIDc1IDIxMyAzM3oiCiAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLjEgMCAwIC0uMSAwIDIwMCkiCiAgICA+PC9wYXRoPgogICAgPHBhdGgKICAgICAgICBkPSJNMTM2MCAxMjIwYy0xMS0yMSAxLTk1IDE5LTExMyAxNy0xNyA0Mi0xNyA0OC0xIDkgMjMtNyAxMDItMjMgMTE5LTIwIDIwLTMxIDE5LTQ0LTV6TTEwMTMgMTA4NmMtMzMtMjgtMjctNDEgMTEtMjYgMzYgMTMgOTkgMTMgMTMxLTIgMzctMTcgNDQgMCAxMiAyOC0zOSAzNC0xMTUgMzQtMTU0IDB6TTEzOTcgMTA0NGMtMTItMTItOC00MSA3LTUzIDE3LTE0IDM5IDkgMzQgMzYtMyAxOC0yOSAyOS00MSAxN3pNMTA5MSAxMDI3Yy0zNC0xNy00Mi00Mi0xMC0zMSAxMyA1IDQxIDkgNjIgOCA0MSAwIDQ4IDEwIDE4IDI2LTI1IDEzLTQwIDEzLTcwLTN6TTEyOTQgOTk1Yy03LTE4IDEzLTQ1IDMzLTQ1IDIzIDAgMjggMzEgOCA0Ni0yNCAxOC0zNCAxOC00MS0xek0zMjUgOTA4Yy0zMC0yNy00Ny03OS0zMy05OSA1LTggMTEtMTAgMTQtNCAyMiA1MCAzMiA2MCA2MSA2MyA0NSA0IDY3LTI5IDUxLTgwLTIwLTY2IDE3LTEyMSA2NS05NiAyMCAxMCAyMyAzMCA1IDI3LTM1LTQtNDAgMS0zMyAzNCAzIDE3IDkgNTMgMTIgNzggNCA0MiAyIDQ4LTI3IDcyLTM5IDMzLTgwIDM1LTExNSA1eiIKICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCguMSAwIDAgLS4xIDAgMjAwKSIKICAgID48L3BhdGg+Cjwvc3ZnPg==\";","var _rect, _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailerlite = function SvgMailerlite(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n fill: \"none\",\n viewBox: \"0 0 256 256\"\n }, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 253.538,\n height: 253.538,\n x: 1.231,\n y: 1.231,\n fill: \"#09C269\",\n stroke: \"#09C269\",\n strokeWidth: 2.462,\n rx: 4.923\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M178.619 73H77.286C69.38 73 63 79.669 63 87.93v94.852l19.714-20.403h96c7.905 0 14.286-6.669 14.286-14.93v-59.52C192.905 79.67 186.524 73 178.619 73Zm-85.238 66.885c0 2.189-1.714 3.981-3.81 3.981-2.095 0-3.81-1.792-3.81-3.981v-42.3c0-2.19 1.715-3.982 3.81-3.982 2.096 0 3.81 1.791 3.81 3.981v42.301Zm17.714 0c0 2.189-1.714 3.981-3.809 3.981-2.096 0-3.81-1.792-3.81-3.981v-27.969c0-2.189 1.714-3.981 3.81-3.981 2.095 0 3.809 1.792 3.809 3.981v27.969Zm.476-40.708c0 2.388-1.809 4.279-4.095 4.279h-.381c-2.285 0-4.095-1.891-4.095-4.28v-.298c0-2.389 1.81-4.28 4.095-4.28h.381c2.286 0 4.095 1.891 4.095 4.28v.299Zm26.858 43.694c-1.715.895-3.619 1.293-5.619 1.293-6.572 0-10.096-3.284-10.096-9.555V115.4h-3.428a2.077 2.077 0 0 1-2.096-2.09v-.1c0-.696.381-1.393.953-1.891l8.476-8.659a2.912 2.912 0 0 1 1.714-.896c1.143 0 2.191.996 2.191 2.19V108.234h6.095c1.905 0 3.429 1.592 3.429 3.583s-1.524 3.583-3.429 3.583h-6.095v18.712c0 2.687 1.333 2.886 3.143 2.886a7.79 7.79 0 0 0 2.19-.298c.476-.199 1.048-.199 1.524-.299 1.714 0 3.143 1.493 3.238 3.384-.19 1.294-1.048 2.588-2.19 3.086Zm23.333-6.171c2.762.099 5.524-.598 8-1.891.476-.299 1.048-.399 1.524-.399 1.904 0 3.428 1.493 3.428 3.484v.1c-.095 1.393-.857 2.687-2.095 3.284-2.667 1.593-5.524 2.986-11.429 2.986-10.666 0-17.142-6.868-17.142-18.314 0-13.436 8.571-18.313 15.809-18.313 10.857 0 15.81 9.057 15.81 17.418.095 2.09-1.524 3.881-3.524 3.981h-20.286c1.048 4.976 4.476 7.664 9.905 7.664Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M160.047 114.703c-4.19-.099-7.714 3.185-8.095 7.565h16.286c-.476-4.38-4-7.664-8.191-7.565Z\"\n })));\n};\nexport { SvgMailerlite as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjU2IDI1NiIgd2lkdGg9IjI0cHgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQo8cmVjdCB4PSIxLjIzMDc3IiB5PSIxLjIzMDc3IiB3aWR0aD0iMjUzLjUzOCIgaGVpZ2h0PSIyNTMuNTM4IiByeD0iNC45MjMwOCIgZmlsbD0iIzA5QzI2OSIgc3Ryb2tlPSIjMDlDMjY5IiBzdHJva2Utd2lkdGg9IjIuNDYxNTQiLz4NCjxwYXRoIGQ9Ik0xNzguNjE5IDczSDc3LjI4NTdDNjkuMzgxIDczIDYzIDc5LjY2ODYgNjMgODcuOTI5NlYxODIuNzgyTDgyLjcxNDMgMTYyLjM3OUgxNzguNzE0QzE4Ni42MTkgMTYyLjM3OSAxOTMgMTU1LjcxIDE5MyAxNDcuNDQ5Vjg3LjkyOTZDMTkyLjkwNSA3OS42Njg2IDE4Ni41MjQgNzMgMTc4LjYxOSA3M1pNOTMuMzgwOSAxMzkuODg1QzkzLjM4MDkgMTQyLjA3NCA5MS42NjY3IDE0My44NjYgODkuNTcxNCAxNDMuODY2Qzg3LjQ3NjIgMTQzLjg2NiA4NS43NjE5IDE0Mi4wNzQgODUuNzYxOSAxMzkuODg1Vjk3LjU4NDFDODUuNzYxOSA5NS4zOTQ0IDg3LjQ3NjIgOTMuNjAyOSA4OS41NzE0IDkzLjYwMjlDOTEuNjY2NyA5My42MDI5IDkzLjM4MDkgOTUuMzk0NCA5My4zODA5IDk3LjU4NDFWMTM5Ljg4NVpNMTExLjA5NSAxMzkuODg1QzExMS4wOTUgMTQyLjA3NCAxMDkuMzgxIDE0My44NjYgMTA3LjI4NiAxNDMuODY2QzEwNS4xOSAxNDMuODY2IDEwMy40NzYgMTQyLjA3NCAxMDMuNDc2IDEzOS44ODVWMTExLjkxNkMxMDMuNDc2IDEwOS43MjcgMTA1LjE5IDEwNy45MzUgMTA3LjI4NiAxMDcuOTM1QzEwOS4zODEgMTA3LjkzNSAxMTEuMDk1IDEwOS43MjcgMTExLjA5NSAxMTEuOTE2VjEzOS44ODVaTTExMS41NzEgOTkuMTc2NkMxMTEuNTcxIDEwMS41NjUgMTA5Ljc2MiAxMDMuNDU2IDEwNy40NzYgMTAzLjQ1NkgxMDcuMDk1QzEwNC44MSAxMDMuNDU2IDEwMyAxMDEuNTY1IDEwMyA5OS4xNzY2Vjk4Ljg3OEMxMDMgOTYuNDg5MiAxMDQuODEgOTQuNTk4MiAxMDcuMDk1IDk0LjU5ODJIMTA3LjQ3NkMxMDkuNzYyIDk0LjU5ODIgMTExLjU3MSA5Ni40ODkyIDExMS41NzEgOTguODc4Vjk5LjE3NjZaTTEzOC40MjkgMTQyLjg3MUMxMzYuNzE0IDE0My43NjYgMTM0LjgxIDE0NC4xNjQgMTMyLjgxIDE0NC4xNjRDMTI2LjIzOCAxNDQuMTY0IDEyMi43MTQgMTQwLjg4IDEyMi43MTQgMTM0LjYwOVYxMTUuNEgxMTkuMjg2QzExOC4xNDMgMTE1LjQgMTE3LjE5IDExNC41MDQgMTE3LjE5IDExMy4zMVYxMTMuMjFDMTE3LjE5IDExMi41MTQgMTE3LjU3MSAxMTEuODE3IDExOC4xNDMgMTExLjMxOUwxMjYuNjE5IDEwMi42NkMxMjcuMDk1IDEwMi4xNjIgMTI3LjY2NyAxMDEuODY0IDEyOC4zMzMgMTAxLjc2NEMxMjkuNDc2IDEwMS43NjQgMTMwLjUyNCAxMDIuNzYgMTMwLjUyNCAxMDMuOTU0QzEzMC41MjQgMTAzLjk1NCAxMzAuNTI0IDEwMy45NTQgMTMwLjUyNCAxMDQuMDU0VjEwOC4yMzRIMTM2LjYxOUMxMzguNTI0IDEwOC4yMzQgMTQwLjA0OCAxMDkuODI2IDE0MC4wNDggMTExLjgxN0MxNDAuMDQ4IDExMy44MDggMTM4LjUyNCAxMTUuNCAxMzYuNjE5IDExNS40SDEzMC41MjRWMTM0LjExMkMxMzAuNTI0IDEzNi43OTkgMTMxLjg1NyAxMzYuOTk4IDEzMy42NjcgMTM2Ljk5OEMxMzQuNDI5IDEzNi45OTggMTM1LjE5IDEzNi44OTkgMTM1Ljg1NyAxMzYuN0MxMzYuMzMzIDEzNi41MDEgMTM2LjkwNSAxMzYuNTAxIDEzNy4zODEgMTM2LjQwMUMxMzkuMDk1IDEzNi40MDEgMTQwLjUyNCAxMzcuODk0IDE0MC42MTkgMTM5Ljc4NUMxNDAuNDI5IDE0MS4wNzkgMTM5LjU3MSAxNDIuMzczIDEzOC40MjkgMTQyLjg3MVpNMTYxLjc2MiAxMzYuN0MxNjQuNTI0IDEzNi43OTkgMTY3LjI4NiAxMzYuMTAyIDE2OS43NjIgMTM0LjgwOUMxNzAuMjM4IDEzNC41MSAxNzAuODEgMTM0LjQxIDE3MS4yODYgMTM0LjQxQzE3My4xOSAxMzQuNDEgMTc0LjcxNCAxMzUuOTAzIDE3NC43MTQgMTM3Ljg5NEMxNzQuNzE0IDEzNy44OTQgMTc0LjcxNCAxMzcuODk0IDE3NC43MTQgMTM3Ljk5NEMxNzQuNjE5IDEzOS4zODcgMTczLjg1NyAxNDAuNjgxIDE3Mi42MTkgMTQxLjI3OEMxNjkuOTUyIDE0Mi44NzEgMTY3LjA5NSAxNDQuMjY0IDE2MS4xOSAxNDQuMjY0QzE1MC41MjQgMTQ0LjI2NCAxNDQuMDQ4IDEzNy4zOTYgMTQ0LjA0OCAxMjUuOTVDMTQ0LjA0OCAxMTIuNTE0IDE1Mi42MTkgMTA3LjYzNyAxNTkuODU3IDEwNy42MzdDMTcwLjcxNCAxMDcuNjM3IDE3NS42NjcgMTE2LjY5NCAxNzUuNjY3IDEyNS4wNTVDMTc1Ljc2MiAxMjcuMTQ1IDE3NC4xNDMgMTI4LjkzNiAxNzIuMTQzIDEyOS4wMzZDMTcyLjA0OCAxMjkuMDM2IDE3MS45NTIgMTI5LjAzNiAxNzEuODU3IDEyOS4wMzZIMTUxLjg1N0MxNTIuOTA1IDEzNC4wMTIgMTU2LjMzMyAxMzYuNyAxNjEuNzYyIDEzNi43WiIgZmlsbD0id2hpdGUiLz4NCjxwYXRoIGQ9Ik0xNjAuMDQ3IDExNC43MDNDMTU1Ljg1NyAxMTQuNjA0IDE1Mi4zMzMgMTE3Ljg4OCAxNTEuOTUyIDEyMi4yNjhIMTY4LjIzOEMxNjcuNzYyIDExNy44ODggMTY0LjIzOCAxMTQuNjA0IDE2MC4wNDcgMTE0LjcwM1oiIGZpbGw9IndoaXRlIi8+DQo8L3N2Zz4=\";","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailpoet = function SvgMailpoet(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n viewBox: \"0 0 152.02 156.4\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FF5301\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.71 89.1c3.5 0 5.9-.8 7.2-2.3a8 8 0 0 0 2-5.4V35.7l17 45.1a12.68 12.68 0 0 0 3.7 5.4c1.6 1.3 4 2 7.2 2a12.54 12.54 0 0 0 5.9-1.4 8.41 8.41 0 0 0 3.9-5l18.1-50V81a8.53 8.53 0 0 0 2.1 6.1c1.4 1.4 3.7 2.2 6.9 2.2 3.5 0 5.9-.8 7.2-2.3a8 8 0 0 0 2-5.4V8.7a7.48 7.48 0 0 0-3.3-6.6c-2.1-1.4-5-2.1-8.6-2.1a19.3 19.3 0 0 0-9.4 2 11.63 11.63 0 0 0-5.1 6.8l-19.6 58.3-20.5-58.7a12.4 12.4 0 0 0-4.5-6.2c-2.1-1.5-5-2.2-8.8-2.2a16.51 16.51 0 0 0-8.9 2.1c-2.3 1.5-3.5 3.9-3.5 7.2v71.5c0 2.8.7 4.8 2 6.2 1.5 1.4 3.7 2.1 7 2.1ZM149 116.6l-2.4-1.9a7.4 7.4 0 0 0-9.4.3 19.65 19.65 0 0 1-12.5 4.6h-21.4A37.08 37.08 0 0 0 77 130.5l-1.1 1.2-1.1-1.1a37.25 37.25 0 0 0-26.3-10.9H27a19.59 19.59 0 0 1-12.4-4.6 7.28 7.28 0 0 0-9.4-.3l-2.4 1.9a7.43 7.43 0 0 0-2.8 5.5 7.14 7.14 0 0 0 2.4 5.7 37.28 37.28 0 0 0 24.6 9.5h21.6a19.59 19.59 0 0 1 18.9 14.4v.2c.1.7 1.2 4.4 8.5 4.4s8.4-3.7 8.5-4.4v-.2a19.59 19.59 0 0 1 18.9-14.4H125a37.28 37.28 0 0 0 24.6-9.5 7.42 7.42 0 0 0 2.4-5.7 7.86 7.86 0 0 0-3-5.6Z\"\n })))));\n};\nexport { SvgMailpoet as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNTIuMDIgMTU2LjQiIHdpZHRoPSIyNHB4Ij48dGl0bGU+c3ltYm9sPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iTGF5ZXJfMS0yIiBkYXRhLW5hbWU9IkxheWVyIDEiPjxwYXRoIGZpbGw9IiNGRjUzMDEiIGQ9Ik0zNy43MSw4OS4xYzMuNSwwLDUuOS0uOCw3LjItMi4zYTgsOCwwLDAsMCwyLTUuNFYzNS43bDE3LDQ1LjFhMTIuNjgsMTIuNjgsMCwwLDAsMy43LDUuNGMxLjYsMS4zLDQsMiw3LjIsMmExMi41NCwxMi41NCwwLDAsMCw1LjktMS40LDguNDEsOC40MSwwLDAsMCwzLjktNWwxOC4xLTUwVjgxYTguNTMsOC41MywwLDAsMCwyLjEsNi4xYzEuNCwxLjQsMy43LDIuMiw2LjksMi4yLDMuNSwwLDUuOS0uOCw3LjItMi4zYTgsOCwwLDAsMCwyLTUuNFY4LjdhNy40OCw3LjQ4LDAsMCwwLTMuMy02LjZjLTIuMS0xLjQtNS0yLjEtOC42LTIuMWExOS4zLDE5LjMsMCwwLDAtOS40LDIsMTEuNjMsMTEuNjMsMCwwLDAtNS4xLDYuOEw3NC45MSw2Ny4xLDU0LjQxLDguNGExMi40LDEyLjQsMCwwLDAtNC41LTYuMmMtMi4xLTEuNS01LTIuMi04LjgtMi4yYTE2LjUxLDE2LjUxLDAsMCwwLTguOSwyLjFjLTIuMywxLjUtMy41LDMuOS0zLjUsNy4yVjgwLjhjMCwyLjguNyw0LjgsMiw2LjJDMzIuMjEsODguNCwzNC40MSw4OS4xLDM3LjcxLDg5LjFaIi8+PHBhdGggZmlsbD0iI0ZGNTMwMSIgZD0iTTE0OSwxMTYuNmwtMi40LTEuOWE3LjQsNy40LDAsMCwwLTkuNC4zLDE5LjY1LDE5LjY1LDAsMCwxLTEyLjUsNC42aC0yMS40QTM3LjA4LDM3LjA4LDAsMCwwLDc3LDEzMC41bC0xLjEsMS4yLTEuMS0xLjFhMzcuMjUsMzcuMjUsMCwwLDAtMjYuMy0xMC45SDI3YTE5LjU5LDE5LjU5LDAsMCwxLTEyLjQtNC42LDcuMjgsNy4yOCwwLDAsMC05LjQtLjNsLTIuNCwxLjlBNy40Myw3LjQzLDAsMCwwLDAsMTIyLjJhNy4xNCw3LjE0LDAsMCwwLDIuNCw1LjdBMzcuMjgsMzcuMjgsMCwwLDAsMjcsMTM3LjRoMjEuNmExOS41OSwxOS41OSwwLDAsMSwxOC45LDE0LjR2LjJjLjEuNywxLjIsNC40LDguNSw0LjRzOC40LTMuNyw4LjUtNC40di0uMmExOS41OSwxOS41OSwwLDAsMSwxOC45LTE0LjRIMTI1YTM3LjI4LDM3LjI4LDAsMCwwLDI0LjYtOS41LDcuNDIsNy40MiwwLDAsMCwyLjQtNS43QTcuODYsNy44NiwwLDAsMCwxNDksMTE2LjZaIi8+PC9nPjwvZz48L3N2Zz4=\";","var _style, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMoosend = function SvgMoosend(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n id: \"moosend_svg__Layer_1\",\n width: 24,\n x: 0,\n y: 0,\n style: {\n enableBackground: \"new 0 0 215.6 200\"\n },\n viewBox: \"0 0 215.6 200\"\n }, props), _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \".moosend_svg__st0{fill:#fff}.moosend_svg__st1{fill:#394257}\")), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M161.8 103.5c0 9.4-7.6 17-17 17H72.3c-9.4 0-17-7.6-17-17V32.8c0-9.4 7.6-17 17-17h72.5c9.4 0 17 7.6 17 17v70.7z\",\n className: \"moosend_svg__st0\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74 13.1s7.1-23.3 16 .3c-15.6-.3-16-.3-16-.3zM126.7 13.1s7.1-23.3 16 .3c-15.6-.3-16-.3-16-.3z\",\n className: \"moosend_svg__st1\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.8 141c.4 1.4-.3 3-1.8 3.4L89.8 160c-1.4.4-3-.3-3.4-1.8l-10.3-32.4c-.5-1.4.3-3 1.8-3.4l49.2-15.6c1.4-.5 3 .3 3.4 1.8l10.3 32.4z\",\n className: \"moosend_svg__st0\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.3 163.2c-2.3 0-4.2-1.4-4.9-3.6l-10.3-32.4c-.9-2.7.6-5.6 3.3-6.5l49.2-15.6c2.6-.8 5.6.7 6.5 3.3l10.3 32.4c.9 2.7-.6 5.6-3.3 6.5l-49.2 15.6c-.6.2-1.1.3-1.6.3zm38.9-53.5-49.3 15.7c-.1 0-.2.2-.2.4L89 158.1c.1.2.3.2.4.2l49.2-15.6c.1 0 .2-.2.2-.4l-10.3-32.4c-.1-.1-.2-.2-.3-.2z\",\n className: \"moosend_svg__st1\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.8 123.2c-1.2.6-1.8 2-1.4 3.3l10.3 32.4c.2.5.5 1 .9 1.3l13.4-26-23.2-11z\",\n className: \"moosend_svg__st0\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m89 162.5-3-.6c-.8-.6-1.3-1.5-1.7-2.4L74 127.1c-.8-2.4.4-5.1 2.7-6.2l1-.5 26.4 12.5L89 162.5zm-10.1-36.1 8.9 27.9 9.8-19.1-18.7-8.8z\",\n className: \"moosend_svg__st1\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141 143.3c.2-.6.3-1.2.1-1.8l-10.2-32.2c-.5-1.4-1.9-2-3.4-1.6l-.3.1-13 21.9 26.8 13.6z\",\n className: \"moosend_svg__st0\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m140.9 146-30.2-15.3 14.8-24.9 1.2-.4c2.8-.9 5.6.6 6.4 3.2l10.2 32.2c.3 1.1.3 2.3-.1 3.4l-2.3 1.8zm-23.3-17.2 20.1 10.2-9.1-28.6-11 18.4z\",\n className: \"moosend_svg__st1\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.3 107.5c-.6-.3-1.3-.3-1.9-.1L78.2 123c-.8.2-1.3.8-1.6 1.5l33.9 17.1 18.8-34.1z\",\n className: \"moosend_svg__st0\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M111.4 144.8 74.1 126l.2-2.5c.6-1.3 1.7-2.3 3.1-2.8l49.2-15.6c1.2-.4 2.5-.3 3.7.2l2.4 1.1-21.3 38.4zm-29.6-20.3 27.6 13.9 15.3-27.5-42.9 13.6z\",\n className: \"moosend_svg__st1\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.1 77.5c-24.8 0-46 6.5-56.6 16.6 0 13.1 10.4 27 23.5 27h66.2c13.1 0 23.3-14.1 23.3-27.3-10.6-10.1-31.6-16.3-56.4-16.3zM153.9 15.5l40.3 23.3s-18 14.4-32.3 4.1c-.8-.6.4-16.9-.3-17.6l-7.7-9.8zM61.7 15.5 21.4 38.8s18 14.4 32.3 4.1c.8-.6-.4-16.9.3-17.6l7.7-9.8z\",\n className: \"moosend_svg__st1\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.1 82.4c-24.8 0-45.3 6.8-55.9 16.2 0 12.3 9.7 22.5 22.8 22.5h66.2c13.1 0 22.9-9.8 23-22.1-10.7-9.4-31.3-16.6-56.1-16.6z\",\n style: {\n fill: \"#e16053\"\n }\n }), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.5 58.4c-.7 2.8-2.7 4.7-4.4 4.3-1.7-.4-2.6-3-1.9-5.8.7-2.8 2.7-4.7 4.4-4.3 1.8.4 2.6 3.1 1.9 5.8zM119.8 56.8c.8 2.8 0 5.4-1.7 5.9s-3.7-1.3-4.5-4.1c-.8-2.8 0-5.4 1.7-5.9 1.6-.5 3.7 1.3 4.5 4.1zM90.3 102.8c2.3 4 2.2 8.4-.3 9.8-2.5 1.5-6.4-.6-8.7-4.6-2.3-4-2.2-8.4.3-9.8 2.5-1.5 6.4.6 8.7 4.6zM128.6 103c-2.3 4-2.2 8.4.3 9.8 2.5 1.5 6.4-.6 8.7-4.6 2.3-4 2.2-8.4-.3-9.8-2.5-1.4-6.3.6-8.7 4.6z\",\n className: \"moosend_svg__st1\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.4 35.2c0-13.2-10.7-23.9-23.9-23.9H75c-13.2 0-23.9 10.5-23.9 23.7v66.2c0 13.2 10.7 24.3 23.9 24.3h66.2c13.2 0 23.9-10.9 23.9-24.1l-.7-66.2zm-4.1 67.5c0 9.8-8 17.8-17.8 17.8H73.8c-9.8 0-17.8-8-17.8-17.8V34.1c0-9.8 8-17.8 17.8-17.8h68.6c9.8 0 17.8 8 17.8 17.8v68.6z\",\n className: \"moosend_svg__st1\"\n })));\n};\nexport { SvgMoosend as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNS4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMTUuNiAyMDAiIHdpZHRoPSIyNHB4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyMTUuNiAyMDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiNGRkZGRkY7fQ0KCS5zdDF7ZmlsbDojMzk0MjU3O30NCgkuc3Qye2ZpbGw6I0UxNjA1Mzt9DQoJLnN0M3tmaWxsOiM5Njk2OTY7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNjEuOCwxMDMuNWMwLDkuNC03LjYsMTctMTcsMTdINzIuM2MtOS40LDAtMTctNy42LTE3LTE3VjMyLjhjMC05LjQsNy42LTE3LDE3LTE3aDcyLjVjOS40LDAsMTcsNy42LDE3LDE3DQoJCQkJTDE2MS44LDEwMy41TDE2MS44LDEwMy41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik03NCwxMy4xYzAsMCw3LjEtMjMuMywxNiwwLjNDNzQuNCwxMy4xLDc0LDEzLjEsNzQsMTMuMXoiLz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTI2LjcsMTMuMWMwLDAsNy4xLTIzLjMsMTYsMC4zQzEyNy4xLDEzLjEsMTI2LjcsMTMuMSwxMjYuNywxMy4xeiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNDAuOCwxNDFjMC40LDEuNC0wLjMsMy0xLjgsMy40bC00OS4yLDE1LjZjLTEuNCwwLjQtMy0wLjMtMy40LTEuOGwtMTAuMy0zMi40Yy0wLjUtMS40LDAuMy0zLDEuOC0zLjQNCgkJCQkJbDQ5LjItMTUuNmMxLjQtMC41LDMsMC4zLDMuNCwxLjhMMTQwLjgsMTQxeiIvPg0KCQkJPC9nPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTg5LjMsMTYzLjJjLTIuMywwLTQuMi0xLjQtNC45LTMuNmwtMTAuMy0zMi40Yy0wLjktMi43LDAuNi01LjYsMy4zLTYuNWw0OS4yLTE1LjYNCgkJCQkJYzIuNi0wLjgsNS42LDAuNyw2LjUsMy4zbDEwLjMsMzIuNGMwLjksMi43LTAuNiw1LjYtMy4zLDYuNWwtNDkuMiwxNS42QzkwLjMsMTYzLjEsODkuOCwxNjMuMiw4OS4zLDE2My4yeiBNMTI4LjIsMTA5LjcNCgkJCQkJbC00OS4zLDE1LjdjLTAuMSwwLTAuMiwwLjItMC4yLDAuNEw4OSwxNTguMWMwLjEsMC4yLDAuMywwLjIsMC40LDAuMmw0OS4yLTE1LjZjMC4xLDAsMC4yLTAuMiwwLjItMC40bC0xMC4zLTMyLjQNCgkJCQkJQzEyOC40LDEwOS44LDEyOC4zLDEwOS43LDEyOC4yLDEwOS43eiIvPg0KCQkJPC9nPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTc3LjgsMTIzLjJjLTEuMiwwLjYtMS44LDItMS40LDMuM2wxMC4zLDMyLjRjMC4yLDAuNSwwLjUsMSwwLjksMS4zbDEzLjQtMjZMNzcuOCwxMjMuMnoiLz4NCgkJCTwvZz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik04OSwxNjIuNWwtMy0wLjZjLTAuOC0wLjYtMS4zLTEuNS0xLjctMi40bC0xMC4zLTMyLjRjLTAuOC0yLjQsMC40LTUuMSwyLjctNi4ybDEtMC41bDI2LjQsMTIuNUw4OSwxNjIuNXoNCgkJCQkJIE03OC45LDEyNi40bDguOSwyNy45bDkuOC0xOS4xTDc4LjksMTI2LjR6Ii8+DQoJCQk8L2c+DQoJCTwvZz4NCgkJPGc+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTQxLDE0My4zYzAuMi0wLjYsMC4zLTEuMiwwLjEtMS44bC0xMC4yLTMyLjJjLTAuNS0xLjQtMS45LTItMy40LTEuNmwtMC4zLDAuMWwtMTMsMjEuOUwxNDEsMTQzLjN6Ii8+DQoJCQk8L2c+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTQwLjksMTQ2bC0zMC4yLTE1LjNsMTQuOC0yNC45bDEuMi0wLjRjMi44LTAuOSw1LjYsMC42LDYuNCwzLjJsMTAuMiwzMi4yYzAuMywxLjEsMC4zLDIuMy0wLjEsMy40DQoJCQkJCUwxNDAuOSwxNDZ6IE0xMTcuNiwxMjguOGwyMC4xLDEwLjJsLTkuMS0yOC42TDExNy42LDEyOC44eiIvPg0KCQkJPC9nPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyOS4zLDEwNy41Yy0wLjYtMC4zLTEuMy0wLjMtMS45LTAuMWwtNDkuMiwxNS42Yy0wLjgsMC4yLTEuMywwLjgtMS42LDEuNWwzMy45LDE3LjFMMTI5LjMsMTA3LjV6Ii8+DQoJCQk8L2c+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTExLjQsMTQ0LjhMNzQuMSwxMjZsMC4yLTIuNWMwLjYtMS4zLDEuNy0yLjMsMy4xLTIuOGw0OS4yLTE1LjZjMS4yLTAuNCwyLjUtMC4zLDMuNywwLjJsMi40LDEuMQ0KCQkJCQlMMTExLjQsMTQ0Ljh6IE04MS44LDEyNC41bDI3LjYsMTMuOWwxNS4zLTI3LjVMODEuOCwxMjQuNXoiLz4NCgkJCTwvZz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTA4LjEsNzcuNWMtMjQuOCwwLTQ2LDYuNS01Ni42LDE2LjZjMCwxMy4xLDEwLjQsMjcsMjMuNSwyN2g2Ni4yYzEzLjEsMCwyMy4zLTE0LjEsMjMuMy0yNy4zDQoJCQkJQzE1My45LDgzLjcsMTMyLjksNzcuNSwxMDguMSw3Ny41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNTMuOSwxNS41bDQwLjMsMjMuM2MwLDAtMTgsMTQuNC0zMi4zLDQuMWMtMC44LTAuNiwwLjQtMTYuOS0wLjMtMTcuNkwxNTMuOSwxNS41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MS43LDE1LjVMMjEuNCwzOC44YzAsMCwxOCwxNC40LDMyLjMsNC4xYzAuOC0wLjYtMC40LTE2LjksMC4zLTE3LjZMNjEuNywxNS41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMDguMSw4Mi40Yy0yNC44LDAtNDUuMyw2LjgtNTUuOSwxNi4yYzAsMTIuMyw5LjcsMjIuNSwyMi44LDIyLjVoNjYuMmMxMy4xLDAsMjIuOS05LjgsMjMtMjIuMQ0KCQkJCUMxNTMuNSw4OS42LDEzMi45LDgyLjQsMTA4LjEsODIuNHoiLz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTAzLjUsNTguNGMtMC43LDIuOC0yLjcsNC43LTQuNCw0LjNjLTEuNy0wLjQtMi42LTMtMS45LTUuOGMwLjctMi44LDIuNy00LjcsNC40LTQuMw0KCQkJCUMxMDMuNCw1MywxMDQuMiw1NS43LDEwMy41LDU4LjR6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTExOS44LDU2LjhjMC44LDIuOCwwLDUuNC0xLjcsNS45Yy0xLjcsMC41LTMuNy0xLjMtNC41LTQuMWMtMC44LTIuOCwwLTUuNCwxLjctNS45DQoJCQkJQzExNi45LDUyLjIsMTE5LDU0LDExOS44LDU2Ljh6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTkwLjMsMTAyLjhjMi4zLDQsMi4yLDguNC0wLjMsOS44Yy0yLjUsMS41LTYuNC0wLjYtOC43LTQuNmMtMi4zLTQtMi4yLTguNCwwLjMtOS44DQoJCQkJQzg0LjEsOTYuNyw4OCw5OC44LDkwLjMsMTAyLjh6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTEyOC42LDEwM2MtMi4zLDQtMi4yLDguNCwwLjMsOS44YzIuNSwxLjUsNi40LTAuNiw4LjctNC42YzIuMy00LDIuMi04LjQtMC4zLTkuOA0KCQkJCUMxMzQuOCw5NywxMzEsOTksMTI4LjYsMTAzeiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNjQuNCwzNS4yYzAtMTMuMi0xMC43LTIzLjktMjMuOS0yMy45SDc1Yy0xMy4yLDAtMjMuOSwxMC41LTIzLjksMjMuN3Y2Ni4yYzAsMTMuMiwxMC43LDI0LjMsMjMuOSwyNC4zDQoJCQkJCWg2Ni4yYzEzLjIsMCwyMy45LTEwLjksMjMuOS0yNC4xTDE2NC40LDM1LjJ6IE0xNjAuMywxMDIuN2MwLDkuOC04LDE3LjgtMTcuOCwxNy44SDczLjhjLTkuOCwwLTE3LjgtOC0xNy44LTE3LjhWMzQuMQ0KCQkJCQljMC05LjgsOC0xNy44LDE3LjgtMTcuOGg2OC42YzkuOCwwLDE3LjgsOCwxNy44LDE3LjhWMTAyLjd6Ii8+DQoJCQk8L2c+DQoJCTwvZz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgWebhook = function SvgWebhook(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.46 19C9 21.07 6.15 21.59 4.09 20.15c-2.05-1.44-2.53-4.31-1.09-6.4a4.585 4.585 0 0 1 3.58-1.98l.05 1.43c-.91.07-1.79.54-2.36 1.36-1 1.44-.69 3.38.68 4.35 1.38.96 3.31.59 4.31-.84.31-.45.49-.94.56-1.44v-1.01l5.58-.04.07-.11c.53-.92 1.68-1.24 2.58-.72a1.9 1.9 0 0 1 .68 2.6c-.53.91-1.69 1.23-2.59.71-.41-.23-.7-.6-.83-1.02l-4.07.02a4.96 4.96 0 0 1-.78 1.94m7.28-7.14c2.53.31 4.33 2.58 4.02 5.07-.31 2.5-2.61 4.27-5.14 3.96a4.629 4.629 0 0 1-3.43-2.21l1.24-.72a3.22 3.22 0 0 0 2.32 1.45c1.75.21 3.3-.98 3.51-2.65.21-1.67-1.03-3.2-2.76-3.41-.54-.06-1.06.01-1.53.18l-.85.44-2.58-4.77h-.22a1.906 1.906 0 0 1-1.85-1.95c.03-1.04.93-1.85 1.98-1.81 1.05.06 1.88.91 1.85 1.95-.02.44-.19.84-.46 1.15l1.9 3.51c.62-.2 1.3-.27 2-.19M8.25 9.14c-1-2.35.06-5.04 2.37-6.02 2.32-.98 5 .13 6 2.48.59 1.37.47 2.87-.2 4.07l-1.24-.72c.42-.81.49-1.8.09-2.73-.68-1.6-2.49-2.37-4.04-1.72-1.56.66-2.26 2.5-1.58 4.1.28.66.75 1.17 1.32 1.51l.39.21-3.07 4.99c.03.05.07.11.1.19.49.91.15 2.06-.77 2.55-.91.49-2.06.13-2.56-.81-.49-.93-.15-2.08.77-2.57.39-.21.82-.26 1.23-.17l2.31-3.77c-.47-.43-.87-.97-1.12-1.59Z\"\n })));\n};\nexport { SvgWebhook as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXdlYmhvb2siIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTAuNDYsMTlDOSwyMS4wNyA2LjE1LDIxLjU5IDQuMDksMjAuMTVDMi4wNCwxOC43MSAxLjU2LDE1Ljg0IDMsMTMuNzVDMy44NywxMi41IDUuMjEsMTEuODMgNi41OCwxMS43N0w2LjYzLDEzLjJDNS43MiwxMy4yNyA0Ljg0LDEzLjc0IDQuMjcsMTQuNTZDMy4yNywxNiAzLjU4LDE3Ljk0IDQuOTUsMTguOTFDNi4zMywxOS44NyA4LjI2LDE5LjUgOS4yNiwxOC4wN0M5LjU3LDE3LjYyIDkuNzUsMTcuMTMgOS44MiwxNi42M1YxNS42MkwxNS40LDE1LjU4TDE1LjQ3LDE1LjQ3QzE2LDE0LjU1IDE3LjE1LDE0LjIzIDE4LjA1LDE0Ljc1QzE4Ljk1LDE1LjI3IDE5LjI2LDE2LjQzIDE4LjczLDE3LjM1QzE4LjIsMTguMjYgMTcuMDQsMTguNTggMTYuMTQsMTguMDZDMTUuNzMsMTcuODMgMTUuNDQsMTcuNDYgMTUuMzEsMTcuMDRMMTEuMjQsMTcuMDZDMTEuMTMsMTcuNzMgMTAuODcsMTguMzggMTAuNDYsMTlNMTcuNzQsMTEuODZDMjAuMjcsMTIuMTcgMjIuMDcsMTQuNDQgMjEuNzYsMTYuOTNDMjEuNDUsMTkuNDMgMTkuMTUsMjEuMiAxNi42MiwyMC44OUMxNS4xMywyMC43MSAxMy45LDE5Ljg2IDEzLjE5LDE4LjY4TDE0LjQzLDE3Ljk2QzE0LjkyLDE4LjczIDE1Ljc1LDE5LjI4IDE2Ljc1LDE5LjQxQzE4LjUsMTkuNjIgMjAuMDUsMTguNDMgMjAuMjYsMTYuNzZDMjAuNDcsMTUuMDkgMTkuMjMsMTMuNTYgMTcuNSwxMy4zNUMxNi45NiwxMy4yOSAxNi40NCwxMy4zNiAxNS45NywxMy41M0wxNS4xMiwxMy45N0wxMi41NCw5LjJIMTIuMzJDMTEuMjYsOS4xNiAxMC40NCw4LjI5IDEwLjQ3LDcuMjVDMTAuNSw2LjIxIDExLjQsNS40IDEyLjQ1LDUuNDRDMTMuNSw1LjUgMTQuMzMsNi4zNSAxNC4zLDcuMzlDMTQuMjgsNy44MyAxNC4xMSw4LjIzIDEzLjg0LDguNTRMMTUuNzQsMTIuMDVDMTYuMzYsMTEuODUgMTcuMDQsMTEuNzggMTcuNzQsMTEuODZNOC4yNSw5LjE0QzcuMjUsNi43OSA4LjMxLDQuMSAxMC42MiwzLjEyQzEyLjk0LDIuMTQgMTUuNjIsMy4yNSAxNi42Miw1LjZDMTcuMjEsNi45NyAxNy4wOSw4LjQ3IDE2LjQyLDkuNjdMMTUuMTgsOC45NUMxNS42LDguMTQgMTUuNjcsNy4xNSAxNS4yNyw2LjIyQzE0LjU5LDQuNjIgMTIuNzgsMy44NSAxMS4yMyw0LjVDOS42Nyw1LjE2IDguOTcsNyA5LjY1LDguNkM5LjkzLDkuMjYgMTAuNCw5Ljc3IDEwLjk3LDEwLjExTDExLjM2LDEwLjMyTDguMjksMTUuMzFDOC4zMiwxNS4zNiA4LjM2LDE1LjQyIDguMzksMTUuNUM4Ljg4LDE2LjQxIDguNTQsMTcuNTYgNy42MiwxOC4wNUM2LjcxLDE4LjU0IDUuNTYsMTguMTggNS4wNiwxNy4yNEM0LjU3LDE2LjMxIDQuOTEsMTUuMTYgNS44MywxNC42N0M2LjIyLDE0LjQ2IDYuNjUsMTQuNDEgNy4wNiwxNC41TDkuMzcsMTAuNzNDOC45LDEwLjMgOC41LDkuNzYgOC4yNSw5LjE0WiIgLz48L3N2Zz4=\";","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { uuid } from './Utils';\nvar injectScriptTag = function (doc, item, handler) {\n var _a, _b;\n var scriptTag = doc.createElement('script');\n scriptTag.referrerPolicy = 'origin';\n scriptTag.type = 'application/javascript';\n scriptTag.id = item.id;\n scriptTag.src = item.src;\n scriptTag.async = (_a = item.async) !== null && _a !== void 0 ? _a : false;\n scriptTag.defer = (_b = item.defer) !== null && _b !== void 0 ? _b : false;\n var loadHandler = function () {\n scriptTag.removeEventListener('load', loadHandler);\n scriptTag.removeEventListener('error', errorHandler);\n handler(item.src);\n };\n var errorHandler = function (err) {\n scriptTag.removeEventListener('load', loadHandler);\n scriptTag.removeEventListener('error', errorHandler);\n handler(item.src, err);\n };\n scriptTag.addEventListener('load', loadHandler);\n scriptTag.addEventListener('error', errorHandler);\n if (doc.head) {\n doc.head.appendChild(scriptTag);\n }\n};\nvar createDocumentScriptLoader = function (doc) {\n var lookup = {};\n var scriptLoadOrErrorHandler = function (src, err) {\n var item = lookup[src];\n item.done = true;\n item.error = err;\n for (var _i = 0, _a = item.handlers; _i < _a.length; _i++) {\n var h = _a[_i];\n h(src, err);\n }\n item.handlers = [];\n };\n var loadScripts = function (items, success, failure) {\n // eslint-disable-next-line no-console\n var failureOrLog = function (err) { return failure !== undefined ? failure(err) : console.error(err); };\n if (items.length === 0) {\n failureOrLog(new Error('At least one script must be provided'));\n return;\n }\n var successCount = 0;\n var failed = false;\n var loaded = function (_src, err) {\n if (failed) {\n return;\n }\n if (err) {\n failed = true;\n failureOrLog(err);\n }\n else if (++successCount === items.length) {\n success();\n }\n };\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var item = items_1[_i];\n var existing = lookup[item.src];\n if (existing) {\n if (existing.done) {\n loaded(item.src, existing.error);\n }\n else {\n existing.handlers.push(loaded);\n }\n }\n else {\n // create a new entry\n var id = uuid('tiny-');\n lookup[item.src] = {\n id: id,\n src: item.src,\n done: false,\n error: null,\n handlers: [loaded],\n };\n injectScriptTag(doc, __assign({ id: id }, item), scriptLoadOrErrorHandler);\n }\n }\n };\n var deleteScripts = function () {\n var _a;\n for (var _i = 0, _b = Object.values(lookup); _i < _b.length; _i++) {\n var item = _b[_i];\n var scriptTag = doc.getElementById(item.id);\n if (scriptTag != null && scriptTag.tagName === 'SCRIPT') {\n (_a = scriptTag.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(scriptTag);\n }\n }\n lookup = {};\n };\n var getDocument = function () { return doc; };\n return {\n loadScripts: loadScripts,\n deleteScripts: deleteScripts,\n getDocument: getDocument\n };\n};\nvar createScriptLoader = function () {\n var cache = [];\n var getDocumentScriptLoader = function (doc) {\n var loader = cache.find(function (l) { return l.getDocument() === doc; });\n if (loader === undefined) {\n loader = createDocumentScriptLoader(doc);\n cache.push(loader);\n }\n return loader;\n };\n var loadList = function (doc, items, delay, success, failure) {\n var doLoad = function () { return getDocumentScriptLoader(doc).loadScripts(items, success, failure); };\n if (delay > 0) {\n setTimeout(doLoad, delay);\n }\n else {\n doLoad();\n }\n };\n var reinitialize = function () {\n for (var loader = cache.pop(); loader != null; loader = cache.pop()) {\n loader.deleteScripts();\n }\n };\n return {\n loadList: loadList,\n reinitialize: reinitialize\n };\n};\nexport var ScriptLoader = createScriptLoader();\n","var getTinymce = function (view) {\n var global = view;\n return global && global.tinymce ? global.tinymce : null;\n};\nexport { getTinymce };\n","import { eventPropTypes } from './components/EditorPropTypes';\nexport var isFunction = function (x) { return typeof x === 'function'; };\nvar isEventProp = function (name) { return name in eventPropTypes; };\nvar eventAttrToEventName = function (attrName) { return attrName.substr(2); };\nexport var configHandlers2 = function (handlerLookup, on, off, adapter, prevProps, props, boundHandlers) {\n var prevEventKeys = Object.keys(prevProps).filter(isEventProp);\n var currEventKeys = Object.keys(props).filter(isEventProp);\n var removedKeys = prevEventKeys.filter(function (key) { return props[key] === undefined; });\n var addedKeys = currEventKeys.filter(function (key) { return prevProps[key] === undefined; });\n removedKeys.forEach(function (key) {\n // remove event handler\n var eventName = eventAttrToEventName(key);\n var wrappedHandler = boundHandlers[eventName];\n off(eventName, wrappedHandler);\n delete boundHandlers[eventName];\n });\n addedKeys.forEach(function (key) {\n var wrappedHandler = adapter(handlerLookup, key);\n var eventName = eventAttrToEventName(key);\n boundHandlers[eventName] = wrappedHandler;\n on(eventName, wrappedHandler);\n });\n};\nexport var configHandlers = function (editor, prevProps, props, boundHandlers, lookup) {\n return configHandlers2(lookup, editor.on.bind(editor), editor.off.bind(editor), \n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n function (handlerLookup, key) { return function (e) { var _a; return (_a = handlerLookup(key)) === null || _a === void 0 ? void 0 : _a(e, editor); }; }, prevProps, props, boundHandlers);\n};\nvar unique = 0;\nexport var uuid = function (prefix) {\n var time = Date.now();\n var random = Math.floor(Math.random() * 1000000000);\n unique++;\n return prefix + '_' + random + unique + String(time);\n};\nexport var isTextareaOrInput = function (element) {\n return element !== null && (element.tagName.toLowerCase() === 'textarea' || element.tagName.toLowerCase() === 'input');\n};\nvar normalizePluginArray = function (plugins) {\n if (typeof plugins === 'undefined' || plugins === '') {\n return [];\n }\n return Array.isArray(plugins) ? plugins : plugins.split(' ');\n};\n// eslint-disable-next-line max-len\nexport var mergePlugins = function (initPlugins, inputPlugins) { return normalizePluginArray(initPlugins).concat(normalizePluginArray(inputPlugins)); };\nexport var isBeforeInputEventAvailable = function () { return window.InputEvent && typeof InputEvent.prototype.getTargetRanges === 'function'; };\nexport var isInDoc = function (elem) {\n if (!('isConnected' in Node.prototype)) {\n // Fallback for IE and old Edge\n var current = elem;\n var parent_1 = elem.parentNode;\n while (parent_1 != null) {\n current = parent_1;\n parent_1 = current.parentNode;\n }\n return current === elem.ownerDocument;\n }\n return elem.isConnected;\n};\nexport var setMode = function (editor, mode) {\n if (editor !== undefined) {\n if (editor.mode != null && typeof editor.mode === 'object' && typeof editor.mode.set === 'function') {\n editor.mode.set(mode);\n }\n else { // support TinyMCE 4\n editor.setMode(mode);\n }\n }\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { ScriptLoader } from '../ScriptLoader2';\nimport { getTinymce } from '../TinyMCE';\nimport { isFunction, isTextareaOrInput, mergePlugins, uuid, configHandlers, isBeforeInputEventAvailable, isInDoc, setMode } from '../Utils';\nimport { EditorPropTypes } from './EditorPropTypes';\nvar Editor = /** @class */ (function (_super) {\n __extends(Editor, _super);\n function Editor(props) {\n var _a, _b, _c;\n var _this = _super.call(this, props) || this;\n _this.rollbackTimer = undefined;\n _this.valueCursor = undefined;\n _this.rollbackChange = function () {\n var editor = _this.editor;\n var value = _this.props.value;\n if (editor && value && value !== _this.currentContent) {\n editor.undoManager.ignore(function () {\n editor.setContent(value);\n // only restore cursor on inline editors when they are focused\n // as otherwise it will cause a focus grab\n if (_this.valueCursor && (!_this.inline || editor.hasFocus())) {\n try {\n editor.selection.moveToBookmark(_this.valueCursor);\n }\n catch (e) { /* ignore */ }\n }\n });\n }\n _this.rollbackTimer = undefined;\n };\n _this.handleBeforeInput = function (_evt) {\n if (_this.props.value !== undefined && _this.props.value === _this.currentContent && _this.editor) {\n if (!_this.inline || _this.editor.hasFocus()) {\n try {\n // getBookmark throws exceptions when the editor has not been focused\n // possibly only in inline mode but I'm not taking chances\n _this.valueCursor = _this.editor.selection.getBookmark(3);\n }\n catch (e) { /* ignore */ }\n }\n }\n };\n _this.handleBeforeInputSpecial = function (evt) {\n if (evt.key === 'Enter' || evt.key === 'Backspace' || evt.key === 'Delete') {\n _this.handleBeforeInput(evt);\n }\n };\n _this.handleEditorChange = function (_evt) {\n var editor = _this.editor;\n if (editor && editor.initialized) {\n var newContent = editor.getContent();\n if (_this.props.value !== undefined && _this.props.value !== newContent && _this.props.rollback !== false) {\n // start a timer and revert to the value if not applied in time\n if (!_this.rollbackTimer) {\n _this.rollbackTimer = window.setTimeout(_this.rollbackChange, typeof _this.props.rollback === 'number' ? _this.props.rollback : 200);\n }\n }\n if (newContent !== _this.currentContent) {\n _this.currentContent = newContent;\n if (isFunction(_this.props.onEditorChange)) {\n _this.props.onEditorChange(newContent, editor);\n }\n }\n }\n };\n _this.handleEditorChangeSpecial = function (evt) {\n if (evt.key === 'Backspace' || evt.key === 'Delete') {\n _this.handleEditorChange(evt);\n }\n };\n _this.initialise = function (attempts) {\n var _a, _b, _c;\n if (attempts === void 0) { attempts = 0; }\n var target = _this.elementRef.current;\n if (!target) {\n return; // Editor has been unmounted\n }\n if (!isInDoc(target)) {\n // this is probably someone trying to help by rendering us offscreen\n // but we can't do that because the editor iframe must be in the document\n // in order to have state\n if (attempts === 0) {\n // we probably just need to wait for the current events to be processed\n setTimeout(function () { return _this.initialise(1); }, 1);\n }\n else if (attempts < 100) {\n // wait for ten seconds, polling every tenth of a second\n setTimeout(function () { return _this.initialise(attempts + 1); }, 100);\n }\n else {\n // give up, at this point it seems that more polling is unlikely to help\n throw new Error('tinymce can only be initialised when in a document');\n }\n return;\n }\n var tinymce = getTinymce(_this.view);\n if (!tinymce) {\n throw new Error('tinymce should have been loaded into global scope');\n }\n var finalInit = __assign(__assign({}, _this.props.init), { selector: undefined, target: target, readonly: _this.props.disabled, inline: _this.inline, plugins: mergePlugins((_a = _this.props.init) === null || _a === void 0 ? void 0 : _a.plugins, _this.props.plugins), toolbar: (_b = _this.props.toolbar) !== null && _b !== void 0 ? _b : (_c = _this.props.init) === null || _c === void 0 ? void 0 : _c.toolbar, setup: function (editor) {\n _this.editor = editor;\n _this.bindHandlers({});\n // When running in inline mode the editor gets the initial value\n // from the innerHTML of the element it is initialized on.\n // However we don't want to take on the responsibility of sanitizing\n // to remove XSS in the react integration so we have a chicken and egg\n // problem... We avoid it by sneaking in a set content before the first\n // \"official\" setContent and using TinyMCE to do the sanitization.\n if (_this.inline && !isTextareaOrInput(target)) {\n editor.once('PostRender', function (_evt) {\n editor.setContent(_this.getInitialValue(), { no_events: true });\n });\n }\n if (_this.props.init && isFunction(_this.props.init.setup)) {\n _this.props.init.setup(editor);\n }\n }, init_instance_callback: function (editor) {\n var _a, _b;\n // check for changes that happened since tinymce.init() was called\n var initialValue = _this.getInitialValue();\n _this.currentContent = (_a = _this.currentContent) !== null && _a !== void 0 ? _a : editor.getContent();\n if (_this.currentContent !== initialValue) {\n _this.currentContent = initialValue;\n // same as resetContent in TinyMCE 5\n editor.setContent(initialValue);\n editor.undoManager.clear();\n editor.undoManager.add();\n editor.setDirty(false);\n }\n var disabled = (_b = _this.props.disabled) !== null && _b !== void 0 ? _b : false;\n setMode(_this.editor, disabled ? 'readonly' : 'design');\n // ensure existing init_instance_callback is called\n if (_this.props.init && isFunction(_this.props.init.init_instance_callback)) {\n _this.props.init.init_instance_callback(editor);\n }\n } });\n if (!_this.inline) {\n target.style.visibility = '';\n }\n if (isTextareaOrInput(target)) {\n target.value = _this.getInitialValue();\n }\n tinymce.init(finalInit);\n };\n _this.id = _this.props.id || uuid('tiny-react');\n _this.elementRef = React.createRef();\n _this.inline = (_c = (_a = _this.props.inline) !== null && _a !== void 0 ? _a : (_b = _this.props.init) === null || _b === void 0 ? void 0 : _b.inline) !== null && _c !== void 0 ? _c : false;\n _this.boundHandlers = {};\n return _this;\n }\n Object.defineProperty(Editor.prototype, \"view\", {\n get: function () {\n var _a, _b;\n return (_b = (_a = this.elementRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument.defaultView) !== null && _b !== void 0 ? _b : window;\n },\n enumerable: false,\n configurable: true\n });\n Editor.prototype.componentDidUpdate = function (prevProps) {\n var _this = this;\n var _a, _b;\n if (this.rollbackTimer) {\n clearTimeout(this.rollbackTimer);\n this.rollbackTimer = undefined;\n }\n if (this.editor) {\n this.bindHandlers(prevProps);\n if (this.editor.initialized) {\n this.currentContent = (_a = this.currentContent) !== null && _a !== void 0 ? _a : this.editor.getContent();\n if (typeof this.props.initialValue === 'string' && this.props.initialValue !== prevProps.initialValue) {\n // same as resetContent in TinyMCE 5\n this.editor.setContent(this.props.initialValue);\n this.editor.undoManager.clear();\n this.editor.undoManager.add();\n this.editor.setDirty(false);\n }\n else if (typeof this.props.value === 'string' && this.props.value !== this.currentContent) {\n var localEditor_1 = this.editor;\n localEditor_1.undoManager.transact(function () {\n // inline editors grab focus when restoring selection\n // so we don't try to keep their selection unless they are currently focused\n var cursor;\n if (!_this.inline || localEditor_1.hasFocus()) {\n try {\n // getBookmark throws exceptions when the editor has not been focused\n // possibly only in inline mode but I'm not taking chances\n cursor = localEditor_1.selection.getBookmark(3);\n }\n catch (e) { /* ignore */ }\n }\n var valueCursor = _this.valueCursor;\n localEditor_1.setContent(_this.props.value);\n if (!_this.inline || localEditor_1.hasFocus()) {\n for (var _i = 0, _a = [cursor, valueCursor]; _i < _a.length; _i++) {\n var bookmark = _a[_i];\n if (bookmark) {\n try {\n localEditor_1.selection.moveToBookmark(bookmark);\n _this.valueCursor = bookmark;\n break;\n }\n catch (e) { /* ignore */ }\n }\n }\n }\n });\n }\n if (this.props.disabled !== prevProps.disabled) {\n var disabled = (_b = this.props.disabled) !== null && _b !== void 0 ? _b : false;\n setMode(this.editor, disabled ? 'readonly' : 'design');\n }\n }\n }\n };\n Editor.prototype.componentDidMount = function () {\n var _this = this;\n var _a, _b, _c, _d, _e;\n if (getTinymce(this.view) !== null) {\n this.initialise();\n }\n else if (Array.isArray(this.props.tinymceScriptSrc) && this.props.tinymceScriptSrc.length === 0) {\n (_b = (_a = this.props).onScriptsLoadError) === null || _b === void 0 ? void 0 : _b.call(_a, new Error('No `tinymce` global is present but the `tinymceScriptSrc` prop was an empty array.'));\n }\n else if ((_c = this.elementRef.current) === null || _c === void 0 ? void 0 : _c.ownerDocument) {\n var successHandler = function () {\n var _a, _b;\n (_b = (_a = _this.props).onScriptsLoad) === null || _b === void 0 ? void 0 : _b.call(_a);\n _this.initialise();\n };\n var errorHandler = function (err) {\n var _a, _b;\n (_b = (_a = _this.props).onScriptsLoadError) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n ScriptLoader.loadList(this.elementRef.current.ownerDocument, this.getScriptSources(), (_e = (_d = this.props.scriptLoading) === null || _d === void 0 ? void 0 : _d.delay) !== null && _e !== void 0 ? _e : 0, successHandler, errorHandler);\n }\n };\n Editor.prototype.componentWillUnmount = function () {\n var _this = this;\n var editor = this.editor;\n if (editor) {\n editor.off(this.changeEvents(), this.handleEditorChange);\n editor.off(this.beforeInputEvent(), this.handleBeforeInput);\n editor.off('keypress', this.handleEditorChangeSpecial);\n editor.off('keydown', this.handleBeforeInputSpecial);\n editor.off('NewBlock', this.handleEditorChange);\n Object.keys(this.boundHandlers).forEach(function (eventName) {\n editor.off(eventName, _this.boundHandlers[eventName]);\n });\n this.boundHandlers = {};\n editor.remove();\n this.editor = undefined;\n }\n };\n Editor.prototype.render = function () {\n return this.inline ? this.renderInline() : this.renderIframe();\n };\n Editor.prototype.changeEvents = function () {\n var _a, _b, _c;\n var isIE = (_c = (_b = (_a = getTinymce(this.view)) === null || _a === void 0 ? void 0 : _a.Env) === null || _b === void 0 ? void 0 : _b.browser) === null || _c === void 0 ? void 0 : _c.isIE();\n return (isIE\n ? 'change keyup compositionend setcontent CommentChange'\n : 'change input compositionend setcontent CommentChange');\n };\n Editor.prototype.beforeInputEvent = function () {\n return isBeforeInputEventAvailable() ? 'beforeinput SelectionChange' : 'SelectionChange';\n };\n Editor.prototype.renderInline = function () {\n var _a = this.props.tagName, tagName = _a === void 0 ? 'div' : _a;\n return React.createElement(tagName, {\n ref: this.elementRef,\n id: this.id\n });\n };\n Editor.prototype.renderIframe = function () {\n return React.createElement('textarea', {\n ref: this.elementRef,\n style: { visibility: 'hidden' },\n name: this.props.textareaName,\n id: this.id\n });\n };\n Editor.prototype.getScriptSources = function () {\n var _a, _b;\n var async = (_a = this.props.scriptLoading) === null || _a === void 0 ? void 0 : _a.async;\n var defer = (_b = this.props.scriptLoading) === null || _b === void 0 ? void 0 : _b.defer;\n if (this.props.tinymceScriptSrc !== undefined) {\n if (typeof this.props.tinymceScriptSrc === 'string') {\n return [{ src: this.props.tinymceScriptSrc, async: async, defer: defer }];\n }\n // multiple scripts can be specified which allows for hybrid mode\n return this.props.tinymceScriptSrc.map(function (item) {\n if (typeof item === 'string') {\n // async does not make sense for multiple items unless\n // they are not dependent (which will be unlikely)\n return { src: item, async: async, defer: defer };\n }\n else {\n return item;\n }\n });\n }\n // fallback to the cloud when the tinymceScriptSrc is not specified\n var channel = this.props.cloudChannel;\n var apiKey = this.props.apiKey ? this.props.apiKey : 'no-api-key';\n var cloudTinyJs = \"https://cdn.tiny.cloud/1/\".concat(apiKey, \"/tinymce/\").concat(channel, \"/tinymce.min.js\");\n return [{ src: cloudTinyJs, async: async, defer: defer }];\n };\n Editor.prototype.getInitialValue = function () {\n if (typeof this.props.initialValue === 'string') {\n return this.props.initialValue;\n }\n else if (typeof this.props.value === 'string') {\n return this.props.value;\n }\n else {\n return '';\n }\n };\n Editor.prototype.bindHandlers = function (prevProps) {\n var _this = this;\n if (this.editor !== undefined) {\n // typescript chokes trying to understand the type of the lookup function\n configHandlers(this.editor, prevProps, this.props, this.boundHandlers, function (key) { return _this.props[key]; });\n // check if we should monitor editor changes\n var isValueControlled = function (p) { return p.onEditorChange !== undefined || p.value !== undefined; };\n var wasControlled = isValueControlled(prevProps);\n var nowControlled = isValueControlled(this.props);\n if (!wasControlled && nowControlled) {\n this.editor.on(this.changeEvents(), this.handleEditorChange);\n this.editor.on(this.beforeInputEvent(), this.handleBeforeInput);\n this.editor.on('keydown', this.handleBeforeInputSpecial);\n this.editor.on('keyup', this.handleEditorChangeSpecial);\n this.editor.on('NewBlock', this.handleEditorChange);\n }\n else if (wasControlled && !nowControlled) {\n this.editor.off(this.changeEvents(), this.handleEditorChange);\n this.editor.off(this.beforeInputEvent(), this.handleBeforeInput);\n this.editor.off('keydown', this.handleBeforeInputSpecial);\n this.editor.off('keyup', this.handleEditorChangeSpecial);\n this.editor.off('NewBlock', this.handleEditorChange);\n }\n }\n };\n Editor.propTypes = EditorPropTypes;\n Editor.defaultProps = {\n cloudChannel: '6'\n };\n return Editor;\n}(React.Component));\nexport { Editor };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as PropTypes from 'prop-types';\nexport var eventPropTypes = {\n onActivate: PropTypes.func,\n onAddUndo: PropTypes.func,\n onBeforeAddUndo: PropTypes.func,\n onBeforeExecCommand: PropTypes.func,\n onBeforeGetContent: PropTypes.func,\n onBeforeRenderUI: PropTypes.func,\n onBeforeSetContent: PropTypes.func,\n onBeforePaste: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onClearUndos: PropTypes.func,\n onClick: PropTypes.func,\n onContextMenu: PropTypes.func,\n onCommentChange: PropTypes.func,\n onCopy: PropTypes.func,\n onCut: PropTypes.func,\n onDblclick: PropTypes.func,\n onDeactivate: PropTypes.func,\n onDirty: PropTypes.func,\n onDrag: PropTypes.func,\n onDragDrop: PropTypes.func,\n onDragEnd: PropTypes.func,\n onDragGesture: PropTypes.func,\n onDragOver: PropTypes.func,\n onDrop: PropTypes.func,\n onExecCommand: PropTypes.func,\n onFocus: PropTypes.func,\n onFocusIn: PropTypes.func,\n onFocusOut: PropTypes.func,\n onGetContent: PropTypes.func,\n onHide: PropTypes.func,\n onInit: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyPress: PropTypes.func,\n onKeyUp: PropTypes.func,\n onLoadContent: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseUp: PropTypes.func,\n onNodeChange: PropTypes.func,\n onObjectResizeStart: PropTypes.func,\n onObjectResized: PropTypes.func,\n onObjectSelected: PropTypes.func,\n onPaste: PropTypes.func,\n onPostProcess: PropTypes.func,\n onPostRender: PropTypes.func,\n onPreProcess: PropTypes.func,\n onProgressState: PropTypes.func,\n onRedo: PropTypes.func,\n onRemove: PropTypes.func,\n onReset: PropTypes.func,\n onSaveContent: PropTypes.func,\n onSelectionChange: PropTypes.func,\n onSetAttrib: PropTypes.func,\n onSetContent: PropTypes.func,\n onShow: PropTypes.func,\n onSubmit: PropTypes.func,\n onUndo: PropTypes.func,\n onVisualAid: PropTypes.func,\n onSkinLoadError: PropTypes.func,\n onThemeLoadError: PropTypes.func,\n onModelLoadError: PropTypes.func,\n onPluginLoadError: PropTypes.func,\n onIconsLoadError: PropTypes.func,\n onLanguageLoadError: PropTypes.func,\n onScriptsLoad: PropTypes.func,\n onScriptsLoadError: PropTypes.func,\n};\nexport var EditorPropTypes = __assign({ apiKey: PropTypes.string, id: PropTypes.string, inline: PropTypes.bool, init: PropTypes.object, initialValue: PropTypes.string, onEditorChange: PropTypes.func, value: PropTypes.string, tagName: PropTypes.string, cloudChannel: PropTypes.string, plugins: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), toolbar: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), disabled: PropTypes.bool, textareaName: PropTypes.string, tinymceScriptSrc: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.shape({\n src: PropTypes.string,\n async: PropTypes.bool,\n defer: PropTypes.bool\n }))\n ]), rollback: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf([false])]), scriptLoading: PropTypes.shape({\n async: PropTypes.bool,\n defer: PropTypes.bool,\n delay: PropTypes.number\n }) }, eventPropTypes);\n","import { Editor } from './components/Editor';\nexport { Editor };\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst commentAuthorAvatar = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n d: \"M7.25 16.437a6.5 6.5 0 1 1 9.5 0V16A2.75 2.75 0 0 0 14 13.25h-4A2.75 2.75 0 0 0 7.25 16v.437Zm1.5 1.193a6.47 6.47 0 0 0 3.25.87 6.47 6.47 0 0 0 3.25-.87V16c0-.69-.56-1.25-1.25-1.25h-4c-.69 0-1.25.56-1.25 1.25v1.63ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm10-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z\",\n clipRule: \"evenodd\"\n })\n});\nexport default commentAuthorAvatar;\n//# sourceMappingURL=comment-author-avatar.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst layout = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z\"\n })\n});\nexport default layout;\n//# sourceMappingURL=layout.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst login = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M11 14.5l1.1 1.1 3-3 .5-.5-.6-.6-3-3-1 1 1.7 1.7H5v1.5h7.7L11 14.5zM16.8 5h-7c-1.1 0-2 .9-2 2v1.5h1.5V7c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v10c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5v-1.5H7.8V17c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2z\"\n })\n});\nexport default login;\n//# sourceMappingURL=login.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst moreVertical = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\"\n })\n});\nexport default moreVertical;\n//# sourceMappingURL=more-vertical.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst post = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"m7.3 9.7 1.4 1.4c.2-.2.3-.3.4-.5 0 0 0-.1.1-.1.3-.5.4-1.1.3-1.6L12 7 9 4 7.2 6.5c-.6-.1-1.1 0-1.6.3 0 0-.1 0-.1.1-.3.1-.4.2-.6.4l1.4 1.4L4 11v1h1l2.3-2.3zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z\"\n })\n});\nexport default post;\n//# sourceMappingURL=post.js.map","import { __ } from '@wordpress/i18n';\nimport { useState, Fragment } from '@wordpress/element';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { ActionsModal } from '../../form-settings/actions/modal';\nimport { integrations, icons } from '../../form-settings/actions/constants';\nimport {\n\tToolbarButton,\n\tToolbarGroup,\n\tToolbarDropdownMenu,\n\tIcon,\n} from '@wordpress/components';\nimport { TemplatesModal } from './templates-modal.js';\nimport { layout } from '@wordpress/icons';\n\nexport function Controls( { attributes, clientId } ) {\n\tconst [ meta ] = useEntityProp(\n\t\t'postType',\n\t\t'formello_form',\n\t\t'meta',\n\t\tattributes.id\n\t);\n\n\tconst [ showActionsModal, setShowActionsModal ] = useState( false );\n\tconst [ showTemplatesModal, setShowTemplatesModal ] = useState( false );\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tsetShowTemplatesModal( 'templates' );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: a.name,\n\t\t\t\t\t\t\ticon: icons[ a.name ],\n\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\tsetShowActionsModal( a );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t\t{ meta._formello_actions.map( ( a, i ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowActionsModal( a );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\n\t\t\t{ 'templates' === showTemplatesModal && (\n\t\t\t\t setShowTemplatesModal( false ) }\n\t\t\t\t\tblockName={ 'formello/form' }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showActionsModal && (\n\t\t\t\t {\n\t\t\t\t\t\tsetShowActionsModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { InnerBlocks, useBlockProps } from '@wordpress/block-editor';\n\nconst blockAttributes = {\n\tid: {\n\t\ttype: 'string',\n\t},\n\tname: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n\tsuccessMessage: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n\terrorMessage: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n\tredirectUrl: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n\tdebug: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\trecaptchaEnabled: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\trecaptchaVersion: {\n\t\ttype: 'number',\n\t\tdefault: 3,\n\t},\n\tlabelIsBold: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tlabelAlign: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n\trequiredText: {\n\t\ttype: 'string',\n\t\tdefault: '*',\n\t},\n\tstoreSubmissions: {\n\t\ttype: 'boolean',\n\t\tdefault: true,\n\t},\n\thide: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tconstraints: {\n\t\ttype: 'array',\n\t},\n\tfields: {\n\t\ttype: 'array',\n\t},\n\tformSettings: {\n\t\ttype: 'object',\n\t},\n\tasRow: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tactions: {\n\t\ttype: 'array',\n\t\tdefault: [],\n\t},\n};\n\nconst v1 = {\n\tattributes: blockAttributes,\n\tsave( { attributes, className } ) {\n\t\tclassName = classnames(\n\t\t\t//blockProps.className,\n\t\t\tattributes.asRow ? attributes.labelAlign : undefined,\n\t\t\t{\n\t\t\t\t'as-row': attributes.asRow,\n\t\t\t\t'is-bold': attributes.labelIsBold,\n\t\t\t\t'formello-label-right': 'right' === attributes.labelAlign,\n\t\t\t}\n\t\t);\n\t\tconst honeypot = '_formello_h' + attributes.id;\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t},\n};\n\nconst v2 = {\n\tattributes: blockAttributes,\n\tsave( { attributes, className } ) {\n\t\tclassName = classnames(\n\t\t\t//blockProps.className,\n\t\t\tattributes.asRow ? attributes.labelAlign : undefined,\n\t\t\t{\n\t\t\t\t'as-row': attributes.asRow,\n\t\t\t\t'is-bold': attributes.labelIsBold,\n\t\t\t\t'formello-label-right': 'right' === attributes.labelAlign,\n\t\t\t}\n\t\t);\n\t\tconst honeypot = '_formello_h' + attributes.id;\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t},\n};\n\nconst v3 = {\n\tattributes: blockAttributes,\n\tsave( { attributes, className } ) {\n\t\tclassName = classnames(\n\t\t\t//blockProps.className,\n\t\t\tattributes.asRow ? attributes.labelAlign : undefined,\n\t\t\t{\n\t\t\t\t'as-row': attributes.asRow,\n\t\t\t\t'is-bold': attributes.labelIsBold,\n\t\t\t\t'formello-label-right': 'right' === attributes.labelAlign,\n\t\t\t}\n\t\t);\n\t\tconst honeypot = '_formello_h' + attributes.id;\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t);\n\t},\n};\n\nconst v4 = {\n\tattributes: blockAttributes,\n\tsave( { attributes, className } ) {\n\t\tconst {\n\t\t\tasRow,\n\t\t\tlabelAlign,\n\t\t\tid,\n\t\t\thide,\n\t\t\tcaptchaEnabled,\n\t\t\tcaptchaType,\n\t\t\tredirectUrl,\n\t\t\tautoComplete,\n\t\t\taction,\n\t\t\tenableJsValidation,\n\t\t\tnoValidate,\n\t\t\tlabelIsBold,\n\t\t\tnoAjax,\n\t\t} = attributes;\n\n\t\tconst formClass = classnames( className, {\n\t\t\t'as-row': asRow,\n\t\t\t'formello-label-right': 'right' === labelAlign,\n\t\t\t'is-style-bolded': labelIsBold,\n\t\t} );\n\n\t\tconst honeypot = '_formello_h' + id;\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t},\n};\n\nconst deprecated = [ v4, v3, v2, v1 ];\n\nexport default deprecated;\n","import { Fragment } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToggleControl,\n\tTextControl,\n\tSelectControl,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tInspectorAdvancedControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tInnerBlocks,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport BlockVariationPicker from './variation-picker';\nimport { Controls } from './controls';\n\nfunction FormEdit( props ) {\n\tconst { attributes, setAttributes, hasInnerBlocks } = props;\n\tconst { requiredText, autoComplete, noValidate } = attributes;\n\n\tconst blockProps = useBlockProps();\n\n\tconst { children, ...innerBlocksProps } = useInnerBlocksProps( blockProps, {\n\t\t//templateLock: false,\n\t\ttemplate: [ [ 'formello/button' ] ],\n\t\trenderAppender: hasInnerBlocks\n\t\t\t? InnerBlocks.DefaultBlockAppender\n\t\t\t: null,\n\t\tprioritizedInserterBlocks: [\n\t\t\t'formello/input',\n\t\t\t'formello/select',\n\t\t\t'formello/textarea',\n\t\t\t'formello/multichoices',\n\t\t],\n\t} );\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { requiredText: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { autoComplete: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Add \"autocomplete\" attribute fo form tag.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { noValidate: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Add \"novalidate\" attribute fo form tag.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\t{ children }\n\t\t
\n\t);\n}\n\nexport default function Edit( props ) {\n\tconst { clientId } = props;\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock } = select( 'core/block-editor' );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn !! ( block && block.innerBlocks.length );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst Component = hasInnerBlocks ? FormEdit : BlockVariationPicker;\n\n\treturn ;\n}\n","import variations from './variations';\nimport edit from './edit';\nimport save from './save';\nimport deprecated from './deprecated';\nimport metadata from './block.json';\nimport { Form } from '../../icons/icons';\n\nimport { __ } from '@wordpress/i18n';\nimport { registerBlockType } from '@wordpress/blocks';\n\nimport './style.scss';\nimport './editor.scss';\n\nregisterBlockType( metadata, {\n\ticon: Form,\n\tvariations,\n\tsupports: {\n\t\treusable: false,\n\t\thtml: false,\n\t\tlock: false,\n\t\tanchor: true,\n\t\tcolor: true,\n\t\tinteractivity: true,\n\t\tinserter: 'formello_form' === window.pagenow ? true : false,\n\t\tmultiple: 'formello_form' !== window.pagenow ? true : false,\n\t\t// eslint-disable-next-line\n\t\tspacing: {\n\t\t\tpadding: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalTextDecoration: false,\n\t\t},\n\t},\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'formello/input',\n\t\t\t\tattributes: {\n\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\tlabel: __( 'Name' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'formello/input',\n\t\t\t\tattributes: {\n\t\t\t\t\tlabel: 'Email',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'formello/input',\n\t\t\t\tattributes: {\n\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\tlabel: __( 'Message' ),\n\t\t\t\t\ttype: 'textarea',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'formello/button',\n\t\t\t\tattributes: {\n\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\ttext: __( 'Submit' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\tdeprecated,\n\tedit,\n\tsave,\n} );\n\ndocument.addEventListener( 'DOMContentLoaded', function () {\n\tif ( 'formello_form' === window.pagenow ) {\n\t\t// Your code to run since DOM is loaded and ready\n\t\tconst menuRoot = document.querySelector( '#toplevel_page_formello' );\n\t\tmenuRoot.classList.remove( 'wp-not-current-submenu' );\n\t\tmenuRoot.classList.add(\n\t\t\t'wp-has-current-submenu',\n\t\t\t'wp-menu-open',\n\t\t\t'current'\n\t\t);\n\t\tmenuRoot.querySelector( '.wp-first-item' ).classList.add( 'current' );\n\t}\n} );\n","import { useBlockProps, InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { noValidate, autoComplete, action } = attributes;\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tstore as blockEditorStore,\n\t__experimentalBlockPatternsList as BlockPatternsList,\n\tBlockContextProvider,\n} from '@wordpress/block-editor';\nimport { Modal, SearchControl, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\nfunction PatternCategoriesList( {\n\tselectedCategory,\n\tpatternCategories,\n\tonClickCategory,\n} ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__sidebar';\n\treturn (\n\t\t
\n\t\t\t{ [ ...new Set( patternCategories ) ].map( ( category ) => {\n\t\t\t\treturn (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tonClickCategory( category.slug );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t} ) }\n\t\t
\n\t);\n}\n\nfunction PatternsExplorerSearch( { searchValue, setSearchValue } ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__search';\n\treturn (\n\t\t
\n\t\t\t\n\t\t
\n\t);\n}\n\nfunction PatternExplorerSidebar( {\n\tselectedCategory,\n\tpatternCategories,\n\tonClickCategory,\n\tsearchValue,\n\tsetSearchValue,\n} ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__sidebar';\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t{ ! searchValue && (\n\t\t\t\t\n\t\t\t) }\n\t\t
\n\t);\n}\n\nexport function TemplatesModal( { clientId, blockName, onRequestClose } ) {\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst onBlockPatternSelect = ( pattern ) => {\n\t\treplaceBlock( clientId, pattern.blocks );\n\t};\n\n\tconst [ searchValue, setSearchValue ] = useState();\n\tconst [ selectedCategory, setSelectedCategory ] = useState( 'all' );\n\n\tconst patterns = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn getPatternsByBlockTypes( blockName, rootClientId );\n\t\t},\n\t\t[ clientId, blockName ]\n\t);\n\n\tconst shownPatterns = patterns.filter( ( p ) => {\n\t\tif ( searchValue ) {\n\t\t\treturn p.title.toLowerCase().includes( searchValue );\n\t\t}\n\t\tif ( 'all' === selectedCategory ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn p.categories.includes( selectedCategory );\n\t} );\n\n\tconst patternCategories = [\n\t\t{\n\t\t\tslug: 'all',\n\t\t\tname: __( 'All', 'popper' ),\n\t\t},\n\t\t{\n\t\t\tslug: 'promo',\n\t\t\tname: __( 'Promo', 'popper' ),\n\t\t},\n\t\t{\n\t\t\tslug: 'top-bar',\n\t\t\tname: __( 'Top bar', 'popper' ),\n\t\t},\n\t\t{\n\t\t\tslug: 'ad-block',\n\t\t\tname: __( 'Ad Block', 'popper' ),\n\t\t},\n\t];\n\n\tconst patternCategories2 = patterns\n\t\t.map( ( p ) => {\n\t\t\treturn p.categories;\n\t\t} )\n\t\t.join( ',' )\n\t\t.split( ',' );\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n}\n","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Button, Placeholder, Flex } from '@wordpress/components';\nimport { layout } from '@wordpress/icons';\nimport { TemplatesModal } from './templates-modal.js';\nimport { useState } from '@wordpress/element';\nimport { useSelect, dispatch, select } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport {\n\tstore as blocksStore,\n\tcreateBlocksFromInnerBlocksTemplate,\n} from '@wordpress/blocks';\n\nfunction BlockVariationPicker( props ) {\n\tconst { clientId, setAttributes, name } = props;\n\tconst [ isModalOpen, setModalOpen ] = useState( false );\n\tconst { replaceInnerBlocks } = dispatch( 'core/block-editor' );\n\n\tconst { getBlockVariations, getDefaultBlockVariation } =\n\t\tselect( blocksStore );\n\n\tconst variations = useSelect( () => {\n\t\treturn getBlockVariations( 'formello/form', 'block' );\n\t} );\n\n\tconst defaultVariation = useSelect( () => {\n\t\treturn typeof getDefaultBlockVariation === 'undefined'\n\t\t\t? null\n\t\t\t: getDefaultBlockVariation( name );\n\t} );\n\n\tconst classes = clsx( 'block-editor-block-variation-picker', {\n\t\t'has-many-variations': variations.length > 4,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tconst onSelect = ( nextVariation = defaultVariation ) => {\n\t\tif ( nextVariation.attributes ) {\n\t\t\tsetAttributes( nextVariation.attributes );\n\t\t}\n\t\tif ( nextVariation.innerBlocks ) {\n\t\t\treplaceInnerBlocks(\n\t\t\t\tprops.clientId,\n\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t),\n\t\t\t\ttrue\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t{ /*\n\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\n\t\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t onSelect( variation ) }\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-variation-picker__variation\"\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tvariation.description || variation.title\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{ variation.title }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t) ) }\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetModalOpen( 'templates' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Open Library', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t{ 'templates' === isModalOpen && (\n\t\t\t\t\t setModalOpen( false ) }\n\t\t\t\t\t\tblockName={ name }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\n\t\t
    \n\t);\n}\n\nexport default BlockVariationPicker;\n","import { Path, SVG } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nconst variations = [\n\t{\n\t\tname: 'blank',\n\t\ttitle: __( 'Blank' ),\n\t\tdescription: __( 'Blank form' ),\n\t\ticon: (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\tisDefault: true,\n\t\tinnerBlocks: [ [ 'core/paragraph' ], [ 'formello/button' ] ],\n\t\tscope: [ 'block' ],\n\t},\n\t{\n\t\tname: 'contact',\n\t\ttitle: __( 'Contact' ),\n\t\tdescription: __( 'A simple contact form' ),\n\t\ticon: (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\tinnerBlocks: [\n\t\t\t[ 'formello/input', { type: 'text', label: 'Name', name: 'name' } ],\n\t\t\t[\n\t\t\t\t'formello/input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'email',\n\t\t\t\t\tlabel: 'Email',\n\t\t\t\t\tname: 'email',\n\t\t\t\t\trequired: true,\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'formello/input',\n\t\t\t\t{ type: 'text', label: 'Subject', name: 'subject' },\n\t\t\t],\n\t\t\t[\n\t\t\t\t'formello/textarea',\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Message',\n\t\t\t\t\tname: 'message',\n\t\t\t\t\trows: 5,\n\t\t\t\t},\n\t\t\t],\n\t\t\t[ 'formello/button', { txt: 'Send' } ],\n\t\t],\n\t\tscope: [ 'block' ],\n\t},\n\t{\n\t\tname: 'event',\n\t\ttitle: __( 'Event' ),\n\t\tdescription: __( 'Book event form' ),\n\t\ticon: (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\tinnerBlocks: [\n\t\t\t[\n\t\t\t\t'core/group',\n\t\t\t\t{\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\ttype: 'flex',\n\t\t\t\t\t\tflexWrap: 'wrap',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\t[\n\t\t\t\t\t\t'formello/input',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\tlabel: 'First Name',\n\t\t\t\t\t\t\tname: 'name',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t[\n\t\t\t\t\t\t'formello/input',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\tlabel: 'Last Name',\n\t\t\t\t\t\t\tname: 'last_name',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t],\n\t\t\t],\n\t\t\t[\n\t\t\t\t'formello/input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'email',\n\t\t\t\t\tlabel: 'Email',\n\t\t\t\t\tname: 'email',\n\t\t\t\t\trequired: true,\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'formello/input',\n\t\t\t\t{ type: 'tel', label: 'Phone', name: 'phone', required: true },\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/group',\n\t\t\t\t{\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\ttype: 'flex',\n\t\t\t\t\t\tflexWrap: 'wrap',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\t[\n\t\t\t\t\t\t'formello/input',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'date',\n\t\t\t\t\t\t\tlabel: 'Date',\n\t\t\t\t\t\t\tname: 'date',\n\t\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t[\n\t\t\t\t\t\t'formello/input',\n\t\t\t\t\t\t{ type: 'time', label: 'Hour', name: 'hour' },\n\t\t\t\t\t],\n\t\t\t\t],\n\t\t\t],\n\t\t\t[\n\t\t\t\t'formello/textarea',\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Message',\n\t\t\t\t\tname: 'message',\n\t\t\t\t\trows: 5,\n\t\t\t\t},\n\t\t\t],\n\t\t\t[ 'formello/button', { txt: 'Book appointment' } ],\n\t\t],\n\t\tscope: [ 'block' ],\n\t},\n];\n\nexport default variations;\n","import { applyFilters } from '@wordpress/hooks';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nconst allowed = [\n\t'formello/input',\n\t'formello/select',\n\t'formello/textarea',\n\t'formello/multichoices',\n];\n\n/**\n * Find the input fields blocks IDS.\n */\nexport function getFieldsBlock() {\n\tconst fields = [];\n\tconst inputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/input' );\n\tconst textareas =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/textarea' );\n\tconst selects =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/select' );\n\tconst outputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/output' );\n\tconst multichoices = select( blockEditorStore ).getBlocksByName(\n\t\t'formello/multichoices'\n\t);\n\n\tconst fieldsId = inputs.concat( textareas, selects, outputs, multichoices );\n\n\tfieldsId.forEach( ( b ) => {\n\t\tconst block = select( blockEditorStore ).getBlock( b );\n\t\tif ( allowed.includes( block.name ) ) {\n\t\t\tfields.push( block );\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Validate form before saving\n */\nexport function validate() {\n\tconst fields = {\n\t\tnames: [],\n\t\tbuttons:\n\t\t\tselect( blockEditorStore ).getBlocksByName( 'formello/button' ),\n\t};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.names.push( b.attributes.name );\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Get fields type.\n */\nexport function getFieldsType() {\n\tconst fields = {};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\t// get block type by name\n\t\tlet type = b.name.split( '/' )[ 1 ];\n\t\tif ( 'input' === type ) {\n\t\t\ttype = b.attributes.type;\n\t\t}\n\n\t\tfields[ b.attributes.name ] = type;\n\t\tif ( b.attributes.enableRtf ) {\n\t\t\tfields[ b.attributes.name ] = 'richtext';\n\t\t}\n\t\tif ( b.attributes.multiple && 'select' === type ) {\n\t\t\tfields[ b.attributes.name ] = type + '-multiple';\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFields() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\ttitle: b.attributes.name,\n\t\t\ttag: '{{fields.' + b.attributes.name + '}}',\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFieldsName() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\tlabel: b.attributes.name,\n\t\t\tvalue: b.attributes.name,\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function getFieldsTags() {\n\tconst fields = serializeFields();\n\n\treturn [\n\t\t{\n\t\t\ttitle: 'All Data',\n\t\t\ttag: '{{fields.all_data}}',\n\t\t},\n\t\t...fields,\n\t];\n}\n\nexport function getConstraints() {\n\tconst constraints = {};\n\tconst fields = getFieldsBlock();\n\n\tif ( fields ) {\n\t\tfields.forEach( ( b ) => {\n\t\t\tconst constraint = getFieldConstraint( b );\n\t\t\tlet name = b.attributes.name;\n\n\t\t\tif ( b.attributes.multiple ) {\n\t\t\t\tname += '.*';\n\t\t\t}\n\t\t\tif ( constraint ) {\n\t\t\t\tconstraints[ name ] = constraint;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn constraints;\n}\n\nexport function getFieldConstraint( field ) {\n\tlet constraints = [];\n\n\tif ( field.attributes.type === 'url' ) {\n\t\tconstraints.push( 'url' );\n\t}\n\n\tif ( field.attributes.required ) {\n\t\tconstraints.push( 'required' );\n\t}\n\n\tif ( field.attributes.minlength ) {\n\t\tconstraints.push( 'minlength:' + field.attributes.minlength );\n\t}\n\n\tif ( field.attributes.maxlength ) {\n\t\tconstraints.push( 'maxlength:' + field.attributes.maxlength );\n\t}\n\n\tif ( field.attributes.min && 'date' !== field.attributes.type ) {\n\t\tconstraints.push( 'min:' + field.attributes.min );\n\t}\n\n\tif (\n\t\tfield.attributes.max &&\n\t\t'date' !== field.attributes.type &&\n\t\t'file' !== field.attributes.type\n\t) {\n\t\tconstraints.push( 'max:' + field.attributes.max );\n\t}\n\n\tif ( field.attributes.type === 'email' ) {\n\t\tconstraints.push( 'email' );\n\t}\n\n\tif (\n\t\tfield.attributes.type === 'number' ||\n\t\tfield.attributes.type === 'range'\n\t) {\n\t\tconstraints.push( 'numeric' );\n\t}\n\n\tif ( 'date' === field.attributes.type && ! field.attributes.advanced ) {\n\t\tconstraints.push( 'date' );\n\t}\n\n\tif ( field.attributes.pattern ) {\n\t\tconst regEx = new RegExp( field.attributes.pattern );\n\t\tconstraints.push( 'regex:' + regEx );\n\t}\n\n\tif ( field.attributes.enableMismatch && '' !== field.attributes.match ) {\n\t\tconstraints.push( 'same:' + field.attributes.match );\n\t}\n\n\tapplyFilters( 'formello.constraints', constraints, field );\n\n\tif ( constraints.length ) {\n\t\tconstraints = constraints.join( '|' );\n\t}\n\n\treturn constraints.length ? constraints : undefined;\n}\n\nexport function getMetaTags() {\n\tconst postType = select( 'core/editor' ).getCurrentPostType();\n\tconst postId = select( 'core/editor' ).getCurrentPostId();\n\n\tconst [ meta ] = useEntityProp( 'postType', postType, 'meta', postId );\n\tconst metaTags = [];\n\n\tfor ( const key in meta ) {\n\t\tif ( meta[ key ] !== Object( key ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst tag = {\n\t\t\ttitle: key,\n\t\t\ttag: `{{meta.${ key }}}`,\n\t\t};\n\t\tmetaTags.push( tag );\n\t}\n\n\treturn metaTags;\n}\n\nexport function getWordpressTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Post ID',\n\t\t\ttag: `{{wp.post_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Title',\n\t\t\ttag: `{{wp.post_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post URL',\n\t\t\ttag: `{{wp.post_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author',\n\t\t\ttag: `{{wp.post_author}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author Email',\n\t\t\ttag: `{{wp.post_author_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User ID',\n\t\t\ttag: `{{wp.user_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User First Name',\n\t\t\ttag: `{{wp.user_first_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Last Name',\n\t\t\ttag: `{{wp.user_last_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Display Name',\n\t\t\ttag: `{{wp.user_display_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Username',\n\t\t\ttag: `{{wp.user_username}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Email',\n\t\t\ttag: `{{wp.user_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User URL',\n\t\t\ttag: `{{wp.user_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site Title',\n\t\t\ttag: `{{wp.site_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site URL',\n\t\t\ttag: `{{wp.site_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Admin Email',\n\t\t\ttag: `{{wp.admin_email}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getFormTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Form ID',\n\t\t\ttag: `{{form.form_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Form Label',\n\t\t\ttag: `{{form.form_name}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getOtherTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Date',\n\t\t\ttag: `{{other.system_date}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Time',\n\t\t\ttag: `{{other.system_time}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Referrer URL',\n\t\t\ttag: `{{other.referrer}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User IP',\n\t\t\ttag: `{{other.user_ip}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getPatternTabs() {\n\tconst passwords = [\n\t\t{\n\t\t\ttitle: 'Password',\n\t\t\ttag: `^(?=.*[A-Za-z])(?=.*\\\\d)[A-Za-z\\\\d]{8,}$`,\n\t\t\tdescription: 'One uppercase, one number, at least 8 chars',\n\t\t},\n\t\t{\n\t\t\ttitle: 'Password with special characters',\n\t\t\ttag: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$`,\n\t\t\tdescription:\n\t\t\t\t'One uppercase, one number, one special chars, at least 8 chars',\n\t\t},\n\t];\n\n\tconst dates = [\n\t\t{\n\t\t\ttitle: 'dd/mm/yyyy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{4}$',\n\t\t},\n\t\t{\n\t\t\ttitle: 'dd/mm/yy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{2}$',\n\t\t},\n\t];\n\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'passwords',\n\t\t\ttitle: 'Passwords',\n\t\t\tdata: passwords,\n\t\t},\n\t\t{\n\t\t\tname: 'dates',\n\t\t\ttitle: 'Dates',\n\t\t\tdata: dates,\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport {\n\tBaseControl,\n\tDropdownMenu,\n\t__experimentalInputControl as InputControl,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { defaultTabs } from './use-tabs';\nimport TabContent from './tab-content';\n\nexport default function MergeTags( props ) {\n\tconst {\n\t\tlabel,\n\t\tvalue,\n\t\tplaceholder,\n\t\thelp,\n\t\tonChange,\n\t\ticon = moreVertical,\n\t\tclientId,\n\t\ttabs = defaultTabs( clientId ),\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) }\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t\n\t);\n}\n\nexport function MergeTagsMenu( props ) {\n\tconst { label, onChange, icon = moreVertical, clientId } = props;\n\n\tconst tabs = defaultTabs( clientId );\n\n\treturn (\n\t\t\n\t\t\t{ () => }\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { SearchControl, TabPanel, MenuItem } from '@wordpress/components';\nimport { useState, Fragment } from '@wordpress/element';\n\nexport default function TabContent( { tabs, onChange } ) {\n\tconst [ searchInput, setSearchInput ] = useState( '' );\n\n\tconst filterAddon = ( element ) => {\n\t\tif ( '' === searchInput ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn (\n\t\t\telement.title.toLowerCase().search( searchInput.toLowerCase() ) !==\n\t\t\t-1\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ ( tab ) =>\n\t\t\t\t\ttab.data\n\t\t\t\t\t\t.filter( ( element ) => {\n\t\t\t\t\t\t\treturn filterAddon( element );\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.map( ( data ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t onChange( data.tag ) }\n\t\t\t\t\t\t\t\t\tinfo={ data.description }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ data.title }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n}\n","import {\n\tgetFieldsTags,\n\tgetWordpressTags,\n\tgetOtherTags,\n\tgetMetaTags,\n} from './functions';\n\nexport function defaultTabs( clientId ) {\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'fields',\n\t\t\ttitle: 'Fields',\n\t\t\tdata: getFieldsTags( clientId ),\n\t\t},\n\t\t{\n\t\t\tname: 'wordpress',\n\t\t\ttitle: 'WordPress',\n\t\t\tdata: getWordpressTags(),\n\t\t},\n\t\t{\n\t\t\tname: 'other',\n\t\t\ttitle: 'Other',\n\t\t\tdata: getOtherTags(),\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","import { __ } from '@wordpress/i18n';\nimport {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tButton,\n\twithFilters,\n} from '@wordpress/components';\n\nexport const Promo = withFilters( 'formello.modal.promo' )( () => {\n\treturn (\n\t\t
    \n\t\t\t

    \n\t\t\t\t{ __(\n\t\t\t\t\t'This action is available only for pro users. You can try one month free.',\n\t\t\t\t\t'formello'\n\t\t\t\t) }\n\t\t\t

    \n\t\t\t\n\t\t\t\t{ __( 'Try it now free!', 'formello' ) }\n\t\t\t\n\t\t
    \n\t);\n} );\n\nexport const PromoSettings = withFilters( 'formello.settings.promo' )( () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

    { __( 'Go Pro', 'formello' ) }

    \n\t\t\t
    \n\t\t\t\n\t\t\t\t

    { __( 'Empower your forms with our PRO extensions.' ) }

    \n\t\t\t\t
      \n\t\t\t\t\t
    • { __( 'Conditional fields', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'File upload', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Frontend posting', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Login form', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Search autosuggest', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Calculator formula', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Web Hooks', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Mail marketing integration', 'formello' ) }
    • \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n} );\n","import { ReactComponent as MailPoet } from '../../../assets/integrations/mailpoet.svg';\nimport { ReactComponent as Mailchimp } from '../../../assets/integrations/mailchimp.svg';\nimport { ReactComponent as Moosend } from '../../../assets/integrations/moosend.svg';\nimport { ReactComponent as ConvertKit } from '../../../assets/integrations/convertkit.svg';\nimport { ReactComponent as GetResponse } from '../../../assets/integrations/getresponse.svg';\nimport { ReactComponent as Brevo } from '../../../assets/integrations/brevo.svg';\nimport { ReactComponent as MailerLite } from '../../../assets/integrations/mailerlite.svg';\nimport { ReactComponent as Email } from '../../../assets/integrations/email.svg';\nimport { ReactComponent as WebHook } from '../../../assets/integrations/webhook.svg';\nimport {\n\tpost as FrontendPosting,\n\tlogin as Login,\n\tcommentAuthorAvatar as Registration,\n} from '@wordpress/icons';\n\nexport const icons = {\n\tConvertKit,\n\tMailchimp,\n\tMailPoet,\n\tMoosend,\n\tMailerLite,\n\tGetResponse,\n\tBrevo,\n\tEmail,\n\tWebHook,\n\tFrontendPosting,\n\tLogin,\n\tRegistration,\n};\n\nexport const integrations = [\n\t{\n\t\tasync: true,\n\t\ttype: 'email',\n\t\tname: 'Email',\n\t\tto: '',\n\t\tfrom: '',\n\t\tcc: '',\n\t\tbcc: '',\n\t\treplyTo: '',\n\t\tsubject: '',\n\t\tmessage: '',\n\t\tadvanced: false,\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'ConvertKit',\n\t\tname: 'ConvertKit',\n\t\tapiUrl: 'https://www.convertkit.com/help/where-to-find-the-convertkit-api-key-groupid-and-documentation',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'GetResponse',\n\t\tname: 'GetResponse',\n\t\tapiUrl: 'https://www.getresponse.com/help/where-do-i-find-the-api-key.html',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Mailchimp',\n\t\tname: 'Mailchimp',\n\t\tapiUrl: 'https://mailchimp.com/help/about-api-keys/',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'MailerLite',\n\t\tname: 'MailerLite',\n\t\tapiUrl: 'https://www.mailerlite.com/help/where-to-find-the-mailerlite-api-key-groupid-and-documentation',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'MailPoet',\n\t\tname: 'MailPoet',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Moosend',\n\t\tname: 'Moosend',\n\t\tapiUrl: 'https://help.moosend.com/hc/en-us/articles/4403735862674-Find-the-API-key-of-your-account',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Brevo',\n\t\tname: 'Brevo',\n\t\tapiUrl: 'https://developers.brevo.com/docs/getting-started',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'WebHook',\n\t\tname: 'WebHook',\n\t\tapiUrl: '',\n\t\turl: '',\n\t\tmethod: 'POST',\n\t\tadditionalHeaders: false,\n\t\tfields: [],\n\t\theaders: [],\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'frontend-posting',\n\t\tname: 'FrontendPosting',\n\t\tpostarr: {\n\t\t\tpost_type: 'post',\n\t\t\tpost_title: '',\n\t\t\tpost_content: '',\n\t\t\tpost_excerpt: '',\n\t\t\ttax_input: [],\n\t\t\tmeta_input: [],\n\t\t},\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'login',\n\t\tname: 'Login',\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'registration',\n\t\tname: 'Registration',\n\t},\n];\n","import { addFilter } from '@wordpress/hooks';\n\nimport {\n\tToggleControl,\n\tBaseControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\nimport MergeTags, { MergeTagsMenu } from '../../components/merge-tags';\nimport { Editor } from '@tinymce/tinymce-react';\n\nexport default function Email( content, clientId, action, handleUpdate ) {\n\tconst id = `editor-${ clientId }`;\n\n\tconst { settings } = window.wpEditorL10n.tinymce;\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'from', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'to', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'advanced', val );\n\t\t\t\t} }\n\t\t\t\tchecked={ action.advanced }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\n\t\t\t{ action.advanced && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\thandleUpdate( 'cc', val );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\n\t\t\t\t\t {\n\t\t\t\t\t\t\thandleUpdate( 'bcc', val );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'replyTo', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'subject', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Message', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\thandleUpdate( 'message', action.message + val );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t handleUpdate( 'message', val ) }\n\t\t\t\t/>\n\t\t\t\n\t\t\n\t);\n}\n\naddFilter( 'formello.modal.email', 'formello/actions-email', Email );\n\nfunction withComponentAppended( FilteredComponent ) {\n\treturn ( props ) => {\n\t\tconst { settings } = props;\n\t\tif ( 'email' === settings.type ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n}\n\naddFilter(\n\t'formello.modal.test',\n\t'formello/actions-email-promo',\n\twithComponentAppended\n);\n","import { addFilter } from '@wordpress/hooks';\nimport './email';\n\nfunction withComponentAppended( FilteredComponent ) {\n\treturn ( props ) => {\n\t\tconst { settings } = props;\n\t\tif ( 'email' === settings.type ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n}\n\naddFilter(\n\t'formello.modal.test',\n\t'formello/actions-email-promo',\n\twithComponentAppended\n);\n","import { Fragment, useState, useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { useEntityProp } from '@wordpress/core-data';\nimport {\n\tModal,\n\tButton,\n\tIcon,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { applyFilters } from '@wordpress/hooks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { icons } from './constants';\nimport MergeTags from '../../components/merge-tags';\nimport { Promo } from '../../components/promo';\nimport './filters';\n\nexport function ActionsModal( props ) {\n\tconst { onRequestClose, settings, clientId } = props;\n\n\tconst [ action, setAction ] = useState( Object.assign( {}, settings ) );\n\n\tconst updateSettings = ( prop, val ) => {\n\t\tsetAction( { ...action, [ prop ]: val } );\n\t};\n\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t};\n\t}, [] );\n\n\tconst [ meta, setMeta ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tconst setActions = useCallback( ( actions ) => {\n\t\tsetMeta( {\n\t\t\t...meta,\n\t\t\t_formello_actions: actions,\n\t\t} );\n\t}, [] );\n\n\tconst save = ( item ) => {\n\t\tif ( ! item.id ) {\n\t\t\tconst newItem = Object.assign( item, {\n\t\t\t\tid: meta._formello_actions.length + 1,\n\t\t\t} );\n\t\t\tconst actions = [ ...meta._formello_actions, newItem ];\n\t\t\tsetActions( actions );\n\t\t} else {\n\t\t\tconst actions = meta._formello_actions.map( ( el ) =>\n\t\t\t\tel.id === item.id ? { ...el, ...item } : el\n\t\t\t);\n\t\t\tsetActions( actions );\n\t\t}\n\t\tonRequestClose( false );\n\t};\n\n\tconst remove = ( item ) => {\n\t\tconst actions = meta._formello_actions.filter( ( o ) => {\n\t\t\treturn o.id !== item.id;\n\t\t} );\n\t\tsetActions( actions );\n\t\tonRequestClose( false );\n\t};\n\n\treturn (\n\t\t\n\t\t\t\t\t\n\t\t\t\t\t{ settings.name }\n\t\t\t\t\n\t\t\t}\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\tsize=\"large\"\n\t\t>\n\t\t\t
    \n\t\t\t\t{ 'email' !== settings.type && (\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\t\n\t\t\t\t\t{ applyFilters(\n\t\t\t\t\t\t'formello.modal.' + settings.type,\n\t\t\t\t\t\t'',\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\taction,\n\t\t\t\t\t\tupdateSettings,\n\t\t\t\t\t\tMergeTags\n\t\t\t\t\t) }\n\n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsave( action );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t\t{ settings.id && (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\twindow.confirm(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of form action */\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t`Delete action %s?`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tsettings.name\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tremove( action );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Delete', 'formello' ) }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) }\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n","import { ReactComponent as Asterisk } from '../../assets/icons/asterisk.svg';\nimport { ReactComponent as Checkbox } from '../../assets/icons/checkbox.svg';\nimport { ReactComponent as Calendar } from '../../assets/icons/date-field.svg';\nimport { ReactComponent as Checkboxes } from '../../assets/icons/checkboxes.svg';\nimport { ReactComponent as Clock } from '../../assets/icons/clock-field.svg';\nimport { ReactComponent as Color } from '../../assets/icons/color-field.svg';\nimport { ReactComponent as Email } from '../../assets/icons/email-field.svg';\nimport { ReactComponent as Fieldset } from '../../assets/icons/fieldset.svg';\nimport { ReactComponent as Form } from '../../assets/icons/form.svg';\nimport { ReactComponent as GDPR } from '../../assets/icons/gdpr-field.svg';\nimport { ReactComponent as Hidden } from '../../assets/icons/hidden-field.svg';\nimport { ReactComponent as Input } from '../../assets/icons/text-field.svg';\nimport { ReactComponent as Logo } from '../../assets/icons/logo.svg';\nimport { ReactComponent as Number } from '../../assets/icons/number-field.svg';\nimport { ReactComponent as Password } from '../../assets/icons/password-field.svg';\nimport { ReactComponent as Range } from '../../assets/icons/range-field.svg';\nimport { ReactComponent as Radio } from '../../assets/icons/radio-field.svg';\nimport { ReactComponent as Radios } from '../../assets/icons/radio-buttons.svg';\nimport { ReactComponent as Select } from '../../assets/icons/select.svg';\nimport { ReactComponent as Tel } from '../../assets/icons/phone-field.svg';\nimport { ReactComponent as Textarea } from '../../assets/icons/textarea-field.svg';\nimport { ReactComponent as Url } from '../../assets/icons/url-field.svg';\n\nexport {\n\tAsterisk,\n\tCheckbox,\n\tCheckboxes,\n\tClock,\n\tColor,\n\tEmail,\n\tFieldset,\n\tForm,\n\tGDPR,\n\tHidden,\n\tInput,\n\tLogo,\n\tNumber,\n\tPassword,\n\tRadio,\n\tRange,\n\tRadios,\n\tSelect,\n\tTel,\n\tTextarea,\n\tUrl,\n\tCalendar,\n};\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"hooks\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"primitives\"];","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"blocks/form/index\": 0,\n\t\"blocks/form/style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkformello\"] = self[\"webpackChunkformello\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"blocks/form/style-index\"], () => (__webpack_require__(\"./src/blocks/form/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["__","useState","Fragment","useEntityProp","ActionsModal","integrations","icons","ToolbarButton","ToolbarGroup","ToolbarDropdownMenu","Icon","TemplatesModal","layout","jsx","_jsx","jsxs","_jsxs","Controls","attributes","clientId","meta","id","showActionsModal","setShowActionsModal","showTemplatesModal","setShowTemplatesModal","children","label","icon","onClick","controls","map","a","title","name","_formello_actions","i","onRequestClose","blockName","settings","className","classnames","InnerBlocks","useBlockProps","blockAttributes","type","default","successMessage","errorMessage","redirectUrl","debug","recaptchaEnabled","recaptchaVersion","labelIsBold","labelAlign","requiredText","storeSubmissions","hide","constraints","fields","formSettings","asRow","actions","v1","save","undefined","honeypot","method","noValidate","value","autoComplete","Content","v2","v3","v4","captchaEnabled","captchaType","action","enableJsValidation","noAjax","formClass","tabIndex","deprecated","ToggleControl","TextControl","SelectControl","useSelect","InspectorAdvancedControls","useInnerBlocksProps","BlockControls","BlockVariationPicker","FormEdit","props","setAttributes","hasInnerBlocks","blockProps","innerBlocksProps","template","renderAppender","DefaultBlockAppender","prioritizedInserterBlocks","onChange","val","__nextHasNoMarginBottom","options","help","checked","Edit","select","getBlock","block","innerBlocks","length","Component","variations","edit","metadata","Form","registerBlockType","supports","reusable","html","lock","anchor","color","interactivity","inserter","window","pagenow","multiple","spacing","padding","typography","fontSize","__experimentalFontWeight","__experimentalTextDecoration","example","text","document","addEventListener","menuRoot","querySelector","classList","remove","add","useDispatch","store","blockEditorStore","__experimentalBlockPatternsList","BlockPatternsList","BlockContextProvider","Modal","SearchControl","Button","PatternCategoriesList","selectedCategory","patternCategories","onClickCategory","baseClassName","Set","category","isPressed","slug","PatternsExplorerSearch","searchValue","setSearchValue","placeholder","PatternExplorerSidebar","replaceBlock","onBlockPatternSelect","pattern","blocks","setSelectedCategory","patterns","getBlockRootClientId","getPatternsByBlockTypes","rootClientId","shownPatterns","filter","p","toLowerCase","includes","categories","patternCategories2","join","split","isFullScreen","closeLabel","postType","blockPatterns","onClickPattern","clsx","Placeholder","Flex","dispatch","blocksStore","createBlocksFromInnerBlocksTemplate","isModalOpen","setModalOpen","replaceInnerBlocks","getBlockVariations","getDefaultBlockVariation","defaultVariation","classes","onSelect","nextVariation","instructions","role","variation","isSecondary","iconSize","description","justify","isPrimary","isLink","Path","SVG","width","height","viewBox","xmlns","fillRule","clipRule","d","isDefault","scope","required","rows","txt","flexWrap","applyFilters","allowed","getFieldsBlock","inputs","getBlocksByName","textareas","selects","outputs","multichoices","fieldsId","concat","forEach","b","push","validate","names","buttons","fieldsBlock","getFieldsType","enableRtf","serializeFields","tag","serializeFieldsName","getFieldsTags","getConstraints","constraint","getFieldConstraint","field","minlength","maxlength","min","max","advanced","regEx","RegExp","enableMismatch","match","getMetaTags","getCurrentPostType","postId","getCurrentPostId","metaTags","key","Object","getWordpressTags","tags","getFormTags","getOtherTags","getPatternTabs","passwords","dates","tabs","data","BaseControl","DropdownMenu","__experimentalInputControl","InputControl","moreVertical","defaultTabs","TabContent","MergeTags","suffix","toggleProps","isSmall","size","MergeTagsMenu","TabPanel","MenuItem","searchInput","setSearchInput","filterAddon","element","search","tab","info","Card","CardHeader","CardBody","withFilters","Promo","variant","href","iconPosition","target","PromoSettings","ReactComponent","MailPoet","Mailchimp","Moosend","ConvertKit","GetResponse","Brevo","MailerLite","Email","WebHook","post","FrontendPosting","login","Login","commentAuthorAvatar","Registration","async","to","from","cc","bcc","replyTo","subject","message","apiUrl","url","additionalHeaders","headers","postarr","post_type","post_title","post_content","post_excerpt","tax_input","meta_input","addFilter","__experimentalHStack","HStack","Editor","_Fragment","content","handleUpdate","wpEditorL10n","tinymce","VisualLabel","init","menubar","plugins","toolbar","toolbar1","toolbar2","onEditorChange","withComponentAppended","FilteredComponent","useCallback","sprintf","setAction","assign","updateSettings","prop","setMeta","setActions","item","newItem","el","o","shouldCloseOnClickOutside","mergeTags","isDestructive","confirm","Asterisk","Checkbox","Calendar","Checkboxes","Clock","Color","Fieldset","GDPR","Hidden","Input","Logo","Number","Password","Range","Radio","Radios","Select","Tel","Textarea","Url"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"blocks/form/index.js","mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4CAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iCAAiC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;;;;;;;;;;;;;;AC9IP;AACA;AACA;AACA;AACsB;;;;;;;;;;;;;;;;;;;;;;;;;ACJwC;AACvD,gCAAgC;AACvC,oCAAoC,eAAe,uEAAc;AACjE,iDAAiD;AAC1C;AACP;AACA;AACA,4DAA4D,kCAAkC;AAC9F,0DAA0D,sCAAsC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA,oCAAoC,sBAAsB,QAAQ,yFAAyF;AAC3J;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,0DAA0D;AAC1D,gDAAgD;AAChD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACrEA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+B;AACiB;AACR;AACoG;AACxF;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,wBAAwB;AACxB;AACA,iBAAiB,+CAAO;AACxB;AACA;AACA;AACA;AACA;AACA,6CAA6C,6BAA6B;AAC1E;AACA;AACA;AACA,6CAA6C,wCAAwC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAU;AACpC;AACA;AACA;AACA,gDAAgD,uBAAuB,oGAAoG,oDAAY;AACvL;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yDAAiB;AAC1D;AACA,yEAAyE,iBAAiB;AAC1F,yBAAyB;AACzB;AACA,4CAA4C,kDAAU;AACtD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+CAAO;AAC3B;AACA,4CAA4C,kDAAU;AACtD;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,gBAAgB,yDAAiB;AACjC;AACA;AACA;AACA;AACA,qCAAqC,4CAAI;AACzC,2BAA2B,4CAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,oBAAoB,+CAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,mEAA2B;AAC1C;AACA;AACA;AACA,eAAe,gDAAmB;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,gDAAmB;AAClC;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8DAA8D;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,kBAAkB,8CAA8C;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAc,0EAA0E,0BAA0B;AAC9H;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAe;AACtC;AACA;AACA;AACA;AACA,CA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AAG,IAAM;YACtBjW,OAAO,EAAGA,CAAA,KAAM;cACf,IACCkG,MAAM,CAACgQ,OAAO,CACb;cACAd,wDAAO,CACNjX,mDAAE,CACD,mBAAmB,EACnB,UACD,CAAC,EACDuC,QAAQ,CAACL,IACV,CACD,CAAC,EACA;gBACD6G,MAAM,CAAElE,MAAO,CAAC;cACjB;YACD,CAAG;YAAAnD,QAAA,EAED1B,mDAAE,CAAE,QAAQ,EAAE,UAAW;UAAC,CACrB,CACR;QAAA,CACG,CAAC;MAAA,CACG,CAAC;IAAA,CACP;EAAC,CACA,CAAC;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrI6E;AACA;AACE;AACE;AACJ;AACA;AACA;AACA;AACR;AACM;AACI;AACH;AACP;AACU;AACI;AACN;AACA;AACG;AACP;AACE;AACQ;AACV;;;;;;;;;;;ACrBzE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK,KAA6B;AAClC;AACA;AACA,GAAG,SAAS,IAA4E;AACxF;AACA,EAAE,iCAAqB,EAAE,mCAAE;AAC3B;AACA,GAAG;AAAA,kGAAC;AACJ,GAAG,KAAK,EAEN;AACF,CAAC;;;;;;;;;;;;;ACzDD;;;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,IAAI,IAAqC;AACzC,6BAA6B,mBAAO,CAAC,yFAA4B;AACjE;AACA,YAAY,mBAAO,CAAC,uDAAW;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAY;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,cAAc,mBAAO,CAAC,0EAAU;AAChC,aAAa,mBAAO,CAAC,4DAAe;;AAEpC,2BAA2B,mBAAO,CAAC,yFAA4B;AAC/D,UAAU,mBAAO,CAAC,uDAAW;AAC7B,qBAAqB,mBAAO,CAAC,qEAAkB;;AAE/C;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,8BAA8B;AAC9B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS,KAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,2BAA2B;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC,4FAA4F,CAAM;AAC7I;AACA;;AAEA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,gCAAgC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iHAAiH;AACjH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACjmBA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,IAAqC;AACzC,gBAAgB,mBAAO,CAAC,0EAAU;;AAElC;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,uFAA2B;AACtD,EAAE,KAAK,EAIN;;;;;;;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;;;;;;;;;;;ACXA;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;;;AAIb,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB,sBAAsB;AACtB,uBAAuB;AACvB,uBAAuB;AACvB,eAAe;AACf,kBAAkB;AAClB,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,gBAAgB;AAChB,mBAAmB;AACnB,wBAAwB;AACxB,yBAAyB;AACzB,yBAAyB;AACzB,iBAAiB;AACjB,oBAAoB;AACpB,kBAAkB;AAClB,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,oBAAoB;AACpB,kBAAkB;AAClB,0BAA0B;AAC1B,cAAc;AACd,GAAG;AACH;;;;;;;;;;;;ACpLa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,wJAAyD;AAC3D;;;;;;;;;;;;ACNA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA,cAAc,aAAa,+CAA+C,gDAAgD,eAAe,QAAQ,IAAI,0CAA0C,yCAAyC,SAAgB,gBAAgB,wCAAwC,IAAI,mDAAmD,SAAS,iEAAe,IAAI;;;;;;;;;;;;;;;;;UCAnY;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC7BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEnDA;UACA;UACA;UACA;UACA","sources":["webpack://formello/./assets/icons/asterisk.svg","webpack://formello/./assets/icons/checkbox.svg","webpack://formello/./assets/icons/checkboxes.svg","webpack://formello/./assets/icons/clock-field.svg","webpack://formello/./assets/icons/color-field.svg","webpack://formello/./assets/icons/date-field.svg","webpack://formello/./assets/icons/email-field.svg","webpack://formello/./assets/icons/fieldset.svg","webpack://formello/./assets/icons/form.svg","webpack://formello/./assets/icons/gdpr-field.svg","webpack://formello/./assets/icons/hidden-field.svg","webpack://formello/./assets/icons/logo.svg","webpack://formello/./assets/icons/number-field.svg","webpack://formello/./assets/icons/password-field.svg","webpack://formello/./assets/icons/phone-field.svg","webpack://formello/./assets/icons/radio-buttons.svg","webpack://formello/./assets/icons/radio-field.svg","webpack://formello/./assets/icons/range-field.svg","webpack://formello/./assets/icons/select.svg","webpack://formello/./assets/icons/text-field.svg","webpack://formello/./assets/icons/textarea-field.svg","webpack://formello/./assets/icons/url-field.svg","webpack://formello/./assets/integrations/brevo.svg","webpack://formello/./assets/integrations/convertkit.svg","webpack://formello/./assets/integrations/email.svg","webpack://formello/./assets/integrations/getresponse.svg","webpack://formello/./assets/integrations/mailchimp.svg","webpack://formello/./assets/integrations/mailerlite.svg","webpack://formello/./assets/integrations/mailpoet.svg","webpack://formello/./assets/integrations/moosend.svg","webpack://formello/./assets/integrations/webhook.svg","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/ScriptLoader2.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/TinyMCE.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/Utils.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/components/Editor.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/components/EditorPropTypes.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/index.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/comment-author-avatar.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/layout.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/login.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/more-vertical.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/post.js","webpack://formello/./src/blocks/form/controls.js","webpack://formello/./src/blocks/form/deprecated.js","webpack://formello/./src/blocks/form/edit.js","webpack://formello/./src/blocks/form/index.js","webpack://formello/./src/blocks/form/save.js","webpack://formello/./src/blocks/form/templates-modal.js","webpack://formello/./src/blocks/form/variation-picker.js","webpack://formello/./src/blocks/form/variations.js","webpack://formello/./src/components/merge-tags/functions.js","webpack://formello/./src/components/merge-tags/index.js","webpack://formello/./src/components/merge-tags/tab-content.js","webpack://formello/./src/components/merge-tags/use-tabs.js","webpack://formello/./src/components/promo.js","webpack://formello/./src/form-settings/actions/constants.js","webpack://formello/./src/form-settings/actions/email.js","webpack://formello/./src/form-settings/actions/filters.js","webpack://formello/./src/form-settings/actions/modal.js","webpack://formello/./src/icons/icons.js","webpack://formello/./node_modules/classnames/index.js","webpack://formello/./src/blocks/form/editor.scss?f439","webpack://formello/./src/blocks/form/style.scss?474e","webpack://formello/./node_modules/object-assign/index.js","webpack://formello/./node_modules/prop-types/checkPropTypes.js","webpack://formello/./node_modules/prop-types/factoryWithTypeCheckers.js","webpack://formello/./node_modules/prop-types/index.js","webpack://formello/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://formello/./node_modules/prop-types/lib/has.js","webpack://formello/./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","webpack://formello/./node_modules/prop-types/node_modules/react-is/index.js","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"blocks\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"coreData\"]","webpack://formello/external window [\"wp\",\"data\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"hooks\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/external window [\"wp\",\"primitives\"]","webpack://formello/./node_modules/clsx/dist/clsx.mjs","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/chunk loaded","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/webpack/runtime/jsonp chunk loading","webpack://formello/webpack/before-startup","webpack://formello/webpack/startup","webpack://formello/webpack/after-startup"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgAsterisk = function SvgAsterisk(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12.75 6h-1.5v4.19L8.288 7.226l-1.061 1.06 2.962 2.963H6v1.5h4.19l-2.963 2.962 1.06 1.061 2.963-2.962V18h1.5v-4.19l2.962 2.963 1.061-1.06-2.962-2.963H18v-1.5h-4.19l2.963-2.962-1.06-1.061-2.963 2.962V6Z\"\n })));\n};\nexport { SvgAsterisk as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjc1IDZIMTEuMjVWMTAuMTg5M0w4LjI4NzY5IDcuMjI3MDNMNy4yMjcwMyA4LjI4NzY5TDEwLjE4OTMgMTEuMjVINlYxMi43NUgxMC4xODkzTDcuMjI3MDMgMTUuNzEyM0w4LjI4NzY5IDE2Ljc3M0wxMS4yNSAxMy44MTA3VjE4SDEyLjc1VjEzLjgxMDdMMTUuNzEyMyAxNi43NzNMMTYuNzczIDE1LjcxMjNMMTMuODEwNyAxMi43NUgxOFYxMS4yNUgxMy44MTA3TDE2Ljc3MyA4LjI4NzY5TDE1LjcxMjMgNy4yMjcwM0wxMi43NSAxMC4xODkzVjZaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckbox = function SvgCheckbox(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z\"\n })));\n};\nexport { SvgCheckbox as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGc+CiAgICAgICAgPHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIvPgogICAgICAgIDxwYXRoIGQ9Ik00IDNoMTZhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6bTEgMnYxNGgxNFY1SDV6bTYuMDAzIDExTDYuNzYgMTEuNzU3bDEuNDE0LTEuNDE0IDIuODI5IDIuODI5IDUuNjU2LTUuNjU3IDEuNDE1IDEuNDE0TDExLjAwMyAxNnoiIC8+CiAgICA8L2c+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckboxes = function SvgCheckboxes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 24,\n height: 24,\n viewBox: \"0 0 300.396 300.396\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.048 216.749H4.076a3 3 0 0 0-3 3v59.973a3 3 0 0 0 3 3h59.972a3 3 0 0 0 3-3v-59.973c0-1.656-1.344-3-3-3zM64.048 17.675H4.076A4.075 4.075 0 0 0 0 21.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076V21.749a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986V36.809h29.849v29.852H19.138zM64.048 116.675H4.076A4.075 4.075 0 0 0 0 120.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076v-59.973a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986v-29.852h29.849v29.852H19.138zM297.396 231.036h-186.67a3 3 0 0 0-3 3v31.4a3 3 0 0 0 3 3h186.67c1.656 0 3-1.344 3-3v-31.4a3 3 0 0 0-3-3zM110.729 169.438h186.667a3 3 0 0 0 3-3v-31.406c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3zM110.729 70.438h186.667a3 3 0 0 0 3-3V36.032c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3z\"\n })));\n};\nexport { SvgCheckboxes as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiAKCSB2aWV3Qm94PSIwIDAgMzAwLjM5NiAzMDAuMzk2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNNjQuMDQ4LDIxNi43NDlINC4wNzZjLTEuNjU3LDAtMywxLjM0NC0zLDN2NTkuOTczYzAsMS42NTgsMS4zNDMsMywzLDNoNTkuOTcyYzEuNjU2LDAsMy0xLjM0MiwzLTN2LTU5Ljk3MwoJCUM2Ny4wNDgsMjE4LjA5Myw2NS43MDQsMjE2Ljc0OSw2NC4wNDgsMjE2Ljc0OXoiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTcuNjc1SDQuMDc2QzEuODI1LDE3LjY3NSwwLDE5LjQ5OSwwLDIxLjc0OXY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NlYyMS43NDlDNjguMTIzLDE5LjQ5OSw2Ni4yOTksMTcuNjc1LDY0LjA0OCwxNy42NzV6IE0xOS4xMzgsNjYuNjYxVjM2LjgwOWgyOS44NDl2MjkuODUySDE5LjEzOHoKCQkiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTE2LjY3NUg0LjA3NmMtMi4yNTEsMC00LjA3NiwxLjgyNC00LjA3Niw0LjA3NHY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NnYtNTkuOTczQzY4LjEyMywxMTguNDk5LDY2LjI5OSwxMTYuNjc1LDY0LjA0OCwxMTYuNjc1eiBNMTkuMTM4LDE2NS42NjF2LTI5Ljg1MmgyOS44NDl2MjkuODUyCgkJSDE5LjEzOHoiLz4KCTxwYXRoIGQ9Ik0yOTcuMzk2LDIzMS4wMzZoLTE4Ni42N2MtMS42NTcsMC0zLDEuMzQyLTMsM3YzMS40YzAsMS42NTYsMS4zNDMsMywzLDNoMTg2LjY3YzEuNjU2LDAsMy0xLjM0NCwzLTN2LTMxLjQKCQlDMzAwLjM5NiwyMzIuMzc4LDI5OS4wNTMsMjMxLjAzNiwyOTcuMzk2LDIzMS4wMzZ6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSwxNjkuNDM4aDE4Ni42NjdjMS42NTYsMCwzLTEuMzQyLDMtM3YtMzEuNDA2YzAtMS42NTYtMS4zNDQtMy0zLTNIMTEwLjcyOWMtMS42NTcsMC0zLDEuMzQ0LTMsM3YzMS40MDYKCQlDMTA3LjcyOSwxNjguMDk3LDEwOS4wNzEsMTY5LjQzOCwxMTAuNzI5LDE2OS40Mzh6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSw3MC40MzhoMTg2LjY2N2MxLjY1NiwwLDMtMS4zNDIsMy0zVjM2LjAzMmMwLTEuNjU2LTEuMzQ0LTMtMy0zSDExMC43MjljLTEuNjU3LDAtMywxLjM0NC0zLDN2MzEuNDA2CgkJQzEwNy43MjksNjkuMDk3LDEwOS4wNzEsNzAuNDM4LDExMC43MjksNzAuNDM4eiIvPgo8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgClockField = function SvgClockField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 -8 72 72\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 0a28 28 0 1 0 28 28A28 28 0 0 0 36 0Zm0 50a22 22 0 1 1 22-22 22.07 22.07 0 0 1-22 22Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.59 27.14H38V12a2.31 2.31 0 1 0-4.61 0v17.44a2.31 2.31 0 0 0 2.3 2.31h14.9a2.31 2.31 0 1 0 0-4.61Z\"\n })));\n};\nexport { SvgClockField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAtOCA3MiA3MiIgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Y2xvY2stbzwvdGl0bGU+PHBhdGggZD0iTTM2LDBBMjgsMjgsMCwxLDAsNjQsMjgsMjgsMjgsMCwwLDAsMzYsMFptMCw1MEEyMiwyMiwwLDEsMSw1OCwyOCwyMi4wNywyMi4wNywwLDAsMSwzNiw1MFoiLz48cGF0aCBkPSJNNTAuNTksMjcuMTRIMzhWMTJhMi4zMSwyLjMxLDAsMSwwLTQuNjEsMFYyOS40NGEyLjMxLDIuMzEsMCwwLDAsMi4zLDIuMzFINTAuNTlhMi4zMSwyLjMxLDAsMSwwLDAtNC42MVoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgColorField = function SvgColorField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 36 36\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.23 14.89c-2.1-.56-4.93 1.8-6.34.3-1.71-1.82 2.27-5.53 1.86-8.92-.33-2.78-3.51-4.08-6.66-4.1A18.5 18.5 0 0 0 7.74 7.59c-6.64 6.59-8.07 16-1.37 22.48 6.21 6 16.61 4.23 22.67-1.4a17.73 17.73 0 0 0 4.22-6.54c1.08-2.9 1.18-6.64-1.03-7.24ZM9.4 10.57a2.23 2.23 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.81 2.53 2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53ZM5.07 20.82a2.22 2.22 0 0 1 1.82-2.53 2.22 2.22 0 0 1 2.86 1.21A2.23 2.23 0 0 1 7.94 22a2.24 2.24 0 0 1-2.87-1.18Zm7 8.33a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.8-2.53 2.23 2.23 0 0 1 2.87 1.21A2.22 2.22 0 0 1 12 29.15ZM15 8.26a2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.82 2.53A2.21 2.21 0 0 1 15 8.26Zm5.82 22.19a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.85 2.53Zm5-10.46a3.2 3.2 0 0 1-1.69 1.76 3.53 3.53 0 0 1-1.4.3 2.78 2.78 0 0 1-2.56-1.5 2.49 2.49 0 0 1-.07-2 3.2 3.2 0 0 1 1.69-1.76 3 3 0 0 1 4 1.2 2.54 2.54 0 0 1 0 2.01Z\",\n \"data-name\": \"Layer 3\"\n })));\n};\nexport { SvgColorField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDM2IDM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoNPHRpdGxlPmNvbG9yX3BhbGV0dGVfc29saWQ8L3RpdGxlPgoNPGcgaWQ9ImI4OTRlMzJiLTA0MzctNDVhYi1iOGJmLTlmMGM0ZThmNTdjZCIgZGF0YS1uYW1lPSJMYXllciAzIj4KDTxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTguNSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMywwLDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywyLjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEsMS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDateField = function SvgDateField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38 4V0h-4v4H14V0h-4v4H0v44h48V4H38zm6 40H4V19.9h40V44zM4 15.9V8h6v4h4V8h20v4h4V8h6v7.9H4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 24h6v6h-6zM16.667 24h6v6h-6zM25.583 24h6v6h-6zM34.5 24h6v6h-6zM7.5 33h6v6h-6zM16.667 33h6v6h-6zM25.583 33h6v6h-6zM34.5 33h6v6h-6z\"\n })));\n};\nexport { SvgDateField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCFET0NUWVBFIHN2ZyAgUFVCTElDICctLy9XM0MvL0RURCBTVkcgMS4xLy9FTicgICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQnPgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0OCA0OCIgaWQ9IkxheWVyXzMiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08Zz4KDTxwYXRoIGQ9Ik0zOCw0VjBoLTR2NEgxNFYwaC00djRIMHYxMS45djRWNDhoNDhWMTkuOXYtNFY0SDM4eiBNNDQsNDRINFYxOS45aDQwVjQ0eiBNNCwxNS45VjhoNnY0aDRWOGgyMHY0aDRWOGg2djcuOUg0eiIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iNy41IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMTYuNjY3IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMjUuNTgzIiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMzQuNSIgeT0iMjQiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjcuNSIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjE2LjY2NyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjI1LjU4MyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjM0LjUiIHk9IjMzIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmailField = function SvgEmailField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2c5.43 0 9.848 4.327 9.996 9.72L22 12v1c0 2.173-1.523 4-3.5 4-1.173 0-2.186-.643-2.816-1.62a5 5 0 1 1 1.311-3.597L17 12v1c0 1.14.716 2 1.5 2 .745 0 1.428-.775 1.495-1.831L20 13v-1a8 8 0 1 0-4.677 7.28 1 1 0 1 1 .831 1.819A9.966 9.966 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2Zm0 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z\"\n })));\n};\nexport { SvgEmailField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik0xMiwyIEMxNy40MjkyMzk5LDIgMjEuODQ3OTMxNyw2LjMyNjY3MDc5IDIxLjk5NjE1ODIsMTEuNzIwMDk1MiBMMjIsMTIgTDIyLDEzIEMyMiwxNS4xNzI5MjA4IDIwLjQ3NzQzNCwxNyAxOC41LDE3IEMxNy4zMjY5MzkxLDE3IDE2LjMxMzk1MjksMTYuMzU3MDI0NCAxNS42ODM5MzgyLDE1LjM4MDMwMjQgQzE0Ljc3MDU5MywxNi4zNzU3ODIzIDEzLjQ1ODE5MzQsMTcgMTIsMTcgQzkuMjM4NTc2MjUsMTcgNywxNC43NjE0MjM3IDcsMTIgQzcsOS4yMzg1NzYyNSA5LjIzODU3NjI1LDcgMTIsNyBDMTQuNjg4NzU0Nyw3IDE2Ljg4MTgxODEsOS4xMjIzMDY3MSAxNi45OTUzODA1LDExLjc4MzExMDQgTDE3LDEyIEwxNywxMyBDMTcsMTQuMTQwNzg3NyAxNy43MTYwMTAzLDE1IDE4LjUsMTUgQzE5LjI0NDc5MDIsMTUgMTkuOTI4MjI5LDE0LjIyNDU2MDkgMTkuOTk0NzEwOSwxMy4xNjg5MzQxIEwyMCwxMyBMMjAsMTIgQzIwLDcuNTgxNzIyIDE2LjQxODI3OCw0IDEyLDQgQzcuNTgxNzIyLDQgNCw3LjU4MTcyMiA0LDEyIEM0LDE2LjQxODI3OCA3LjU4MTcyMiwyMCAxMiwyMCBDMTMuMTYzMDk0OCwyMCAxNC4yODkyODIyLDE5Ljc1MjI2MTggMTUuMzIyNTE1OSwxOS4yNzk4MzMxIEMxNS44MjQ3ODc2LDE5LjA1MDE3NzcgMTYuNDE4MTMxNywxOS4yNzExNzcgMTYuNjQ3Nzg3LDE5Ljc3MzQ0ODcgQzE2Ljg3NzQ0MjMsMjAuMjc1NzIwNSAxNi42NTY0NDMsMjAuODY5MDY0NiAxNi4xNTQxNzEzLDIxLjA5ODcxOTkgQzE0Ljg2MTIxOCwyMS42ODk5MDEgMTMuNDUxNTQ2MywyMiAxMiwyMiBDNi40NzcxNTI1LDIyIDIsMTcuNTIyODQ3NSAyLDEyIEMyLDYuNDc3MTUyNSA2LjQ3NzE1MjUsMiAxMiwyIFogTTEyLDkgQzEwLjM0MzE0NTgsOSA5LDEwLjM0MzE0NTggOSwxMiBDOSwxMy42NTY4NTQyIDEwLjM0MzE0NTgsMTUgMTIsMTUgQzEzLjY1Njg1NDIsMTUgMTUsMTMuNjU2ODU0MiAxNSwxMiBDMTUsMTAuMzQzMTQ1OCAxMy42NTY4NTQyLDkgMTIsOSBaIi8+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFieldset = function SvgFieldset(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 80,\n height: 80,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 20h1v1H1v-2h1zm20 0h-1v1h2v-2h-1zM1 5h1V4h1V3H1zm1 2H1v2h1zm0 4H1v2h1zm20-2h1V7h-1zm0 4h1v-2h-1zM2 15H1v2h1zm20 2h1v-2h-1zM5 4h2V3H5zm6 0V3H9v1zm2 0h2V3h-2zm6-1h-2v1h2zM5 21h2v-1H5zm4 0h2v-1H9zm4 0h2v-1h-2zm4 0h2v-1h-2zm4-17h1v1h1V3h-2zm-1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1V8a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19V8H5v2h14m1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1v-2a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19v-2H5v2h14\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgFieldset as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MHB4IiBoZWlnaHQ9IjgwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAyMGgxdjFIMXYtMmgxem0yMCAwaC0xdjFoMnYtMmgtMXpNMSA1aDFWNGgxVjNIMXptMSAySDF2Mmgxem0wIDRIMXYyaDF6bTIwLTJoMVY3aC0xem0wIDRoMXYtMmgtMXpNMiAxNUgxdjJoMXptMjAgMmgxdi0yaC0xek01IDRoMlYzSDV6bTYgMFYzSDl2MXptMiAwaDJWM2gtMnptNi0xaC0ydjFoMnpNNSAyMWgydi0xSDV6bTQgMGgydi0xSDl6bTQgMGgydi0xaC0yem00IDBoMnYtMWgtMnptNC0xN2gxdjFoMVYzaC0yem0tMSA0djJhMS4wMDEgMS4wMDEgMCAwIDEtMSAxSDVhMS4wMDEgMS4wMDEgMCAwIDEtMS0xVjhhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOVY4SDV2MmgxNG0xIDR2MmExLjAwMSAxLjAwMSAwIDAgMS0xIDFINWExLjAwMSAxLjAwMSAwIDAgMS0xLTF2LTJhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOXYtMkg1djJoMTQiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgForm = function SvgForm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.2 12.994a.312.312 0 0 1-.188-.191C1 12.76.999 12.113 1 6.982V1.208l.022-.045a.328.328 0 0 1 .14-.14L1.208 1h11.585l.05.025a.31.31 0 0 1 .136.135l.021.039v5.783c0 5.377 0 5.787-.013 5.831a.314.314 0 0 1-.142.162L12.8 13H7.012c-3.457.001-5.8 0-5.817-.01zm11.236-5.992V1.568H1.573v10.857c0 .01 1.099.01 5.436.01h5.432V7.003zM5.574 10.72v-.86h1.712v1.72H5.574v-.86zm1.144 0v-.284h-.576v.568h.576v-.284zm1.145 0v-.284h3.432v.568H7.863v-.284zM5.574 7.572V6.428h5.72v2.288h-5.72V7.572zm5.144 0V7H6.142v.566c0 .311 0 .569.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.289h2.28v.577h-2.28v-.288zM5.575 4.14V2.996h5.72v2.288h-5.72V4.14zm5.144 0v-.572H6.142v.566c0 .31 0 .568.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.284h2.28v.567h-2.28V4.14z\"\n })));\n};\nexport { SvgForm as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAxNCAxNCIgcm9sZT0iaW1nIiBmb2N1c2FibGU9ImZhbHNlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtIDEuMTk5Nzk5NSwxMi45OTM5MTYgYyAtMC4wNzkwMzQsLTAuMDIzIC0wLjE2NDA3MSwtMC4xMDkzIC0wLjE4Nzk4MTMsLTAuMTkxNCAtMC4wMTIwMDUsLTAuMDQyIC0wLjAxMzAwNiwtMC42ODk1IC0wLjAxMTAwNSwtNS44MjEwMDAzIGwgMCwtNS43NzQgMC4wMjIwMSwtMC4wNDUgYyAwLjAyODAxMiwtMC4wNTcgMC4wODMwMzYsLTAuMTExNyAwLjE0MDE2MDYsLTAuMTQwMSBsIDAuMDQ1MDE5LC0wLjAyMiA1Ljc5MjIwNDEsMCA1Ljc5MjMwNDEsMCAwLjA1MTAyLDAuMDI1IGMgMC4wNTYwMiwwLjAyNyAwLjEwMzY0NSwwLjA3NSAwLjEzNTQ1OSwwLjEzNDUgbCAwLjAyMTAxLDAuMDM5IDAsNS43ODMyIGMgMCw1LjM3NjUwMDMgMCw1Ljc4NjYwMDMgLTAuMDEzMDEsNS44MzExMDAzIC0wLjAxOTAxLDAuMDYgLTAuMDc5MDMsMC4xMjkxIC0wLjE0MTc2MSwwLjE2MjEgbCAtMC4wNDYwMiwwLjAyNCAtNS43ODc3MDIzLDAgYyAtMy40NTYyOTQyLDllLTQgLTUuNzk5MjA3LDAgLTUuODE2MDE0MywtMC4wMSB6IG0gMTEuMjM2NjU3NSwtNS45OTE5MDAzIDAsLTUuNDM0MiAtNS40MzE5NDgxLDAgLTUuNDMxODQ4MiwwIDAsNS40MjI5IGMgMCwyLjk4MjYgLTQuMDAyZS00LDUuNDI4MDAwMyAwLDUuNDM0MjAwMyAwLDAuMDEgMS4wOTkwNzUxLDAuMDExIDUuNDM2NTUwMiwwLjAxMSBsIDUuNDMyMTQ4MSwwIDAsLTUuNDM0MjAwMyB6IG0gLTYuODYxOTY2MywzLjcxODEwMDMgMCwtMC44NjAzMDAzIDAuODU1NzY5OSwwIDAuODU1NzcsMCAwLDAuODYwMzAwMyAwLDAuODYwMyAtMC44NTU3NywwIC0wLjg1NTc2OTksMCAwLC0wLjg2MDMgeiBtIDEuMTQzOTk0NSwwIDAsLTAuMjgzOCAtMC4yODgyMjQ2LDAgLTAuMjg4MzI0NiwwIDAsMC4yODM4IDAsMC4yODM3IDAuMjg4MzI0NiwwIDAuMjg4MjI0NiwwIDAsLTAuMjgzNyB6IG0gMS4xNDQwOTQ3LDAgMCwtMC4yODM4IDEuNzE2MDQxOCwwIDEuNzE2MDQxMywwIDAsMC4yODM4IDAsMC4yODM3IC0xLjcxNjA0MTMsMCAtMS43MTYwNDE4LDAgMCwtMC4yODM3IHogbSAtMi4yODgwODkyLC0zLjE0ODMwMDMgMCwtMS4xNDQxIDIuODYwMDM2NCwwIDIuODYwMTM1OSwwIDAsMS4xNDQxIDAsMS4xNDM5IC0yLjg2MDEzNTksMCAtMi44NjAwMzY0LDAgMCwtMS4xNDM5IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEzIDAsMC41Njg3IDAuMDEwMDA0LDAuNTcyIDAsMCAxLjAzMjk0NjYsMC4wMSAyLjI4ODA4OTIsMC4wMSBsIDIuMjgyMDg2OCwwIDAsLTAuNTcyIHogbSAtNy45OTkyNTc4LDAgMCwtMC4yODg0IDEuMTM5NTkyNywwIDEuMTM5NDkyNSwwIDAsMC4yODg0IDAsMC4yODgyIC0xLjEzOTQ5MjUsMCAtMS4xMzk1OTI3LDAgMCwtMC4yODgyIHogbSAyLjg1NTYzNDUsLTMuNDMyMSAwLC0xLjE0NDEgMi44NjAwMzY0LDAgMi44NjAxMzU5LDAgMCwxLjE0NDEgMCwxLjE0NCAtMi44NjAxMzU5LDAgLTIuODYwMDM2NCwwIDAsLTEuMTQ0IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEyIDAsMC41Njg2IDAuMDEwMDA0LDAuNTcxOSAwLDAgMS4wMzI5NDY2LDAuMDEgMi4yODgwODkyLDAuMDEgbCAyLjI4MjA4NjgsMCAwLC0wLjU3MTkgeiBtIC03Ljk5OTI1NzgsMCAwLC0wLjI4MzkgMS4xMzk1OTI3LDAgMS4xMzk0OTI1LDAgMCwwLjI4MzkgMCwwLjI4MzcgLTEuMTM5NDkyNSwwIC0xLjEzOTU5MjcsMCAwLC0wLjI4MzcgeiIvPjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGdprField = function SvgGdprField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2zm0 8h5s1-1 1-5c0 0-5-1-6-2v7H5c1 4 5 7 5 7v-7z\"\n })));\n};\nexport { SvgGdprField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+Cgk8cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KCTxnPgoJCTxwYXRoIGQ9Ik0xMCAyczMgMiA3IDJjMCAxMS03IDE0LTcgMTRTMyAxNSAzIDRjNCAwIDctMiA3LTJ6bTAgOGg1czEtMSAxLTVjMCAwLTUtMS02LTJ2N0g1YzEgNCA1IDcgNSA3di03eiIvPgoJPC9nPgo8L3N2Zz4K\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgHiddenField = function SvgHiddenField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 1000 1000\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M499 270q57 0 104.5 28t75.5 76 28 104q0 39-15 76l122 122q97-81 142-198-36-91-104-162T694 206q-93-40-195-40-86 0-166 29l90 90q38-15 76-15zM83 157l95 94 19 20q-52 40-91.5 93T42 478q36 91 104.5 162T304 750q93 40 195 40 95 0 183-35l139 139 53-53-738-737zm230 230 65 64q-4 15-4 27 0 34 17 62.5t45.5 45.5 62.5 17q14 0 27-3l65 64q-45 22-92 22-56 0-104-28t-76-76-28-104q0-47 22-91zm180-33 131 131v-6q0-34-16.5-63t-45-45.5T500 354h-7z\"\n })));\n};\nexport { SvgHiddenField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00OTkgMjcwcTU3IDAgMTA0LjUgMjh0NzUuNSA3NiAyOCAxMDRxMCAzOS0xNSA3NmwxMjIgMTIycTk3LTgxIDE0Mi0xOTgtMzYtOTEtMTA0LTE2MlQ2OTQgMjA2cS05My00MC0xOTUtNDAtODYgMC0xNjYgMjlsOTAgOTBxMzgtMTUgNzYtMTV6TTgzIDE1N2w5NSA5NCAxOSAyMHEtNTIgNDAtOTEuNSA5M1Q0MiA0NzhxMzYgOTEgMTA0LjUgMTYyVDMwNCA3NTBxOTMgNDAgMTk1IDQwIDk1IDAgMTgzLTM1bDEzOSAxMzkgNTMtNTMtNzM4LTczN3ptMjMwIDIzMGw2NSA2NHEtNCAxNS00IDI3IDAgMzQgMTcgNjIuNXQ0NS41IDQ1LjUgNjIuNSAxN3ExNCAwIDI3LTNsNjUgNjRxLTQ1IDIyLTkyIDIyLTU2IDAtMTA0LTI4dC03Ni03Ni0yOC0xMDRxMC00NyAyMi05MXptMTgwLTMzbDEzMSAxMzF2LTZxMC0zNC0xNi41LTYzdC00NS00NS41VDUwMCAzNTRoLTd6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 341.333,\n height: 341.333,\n viewBox: \"0 0 256 256\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#9b51e0\",\n d: \"M0 128v128h256V0H0v128zm145.6-66.6c2.9.7 7.8 2.8 11.1 4.5 6.7 3.6 18.3 14.6 16.8 16-2.6 2.3-31.9 23.1-32.6 23.1-.5 0-.9-.5-.9-1 0-.6-1.1-2.2-2.5-3.5-3-3.1-8.3-3.3-11.6-.6-2.2 1.8-2.4 2.7-2.7 14l-.4 12.1H136v37h-13v34H82v-44.8c0-35.5.3-46.1 1.5-51.7 3.9-18.6 18.2-34.2 35.6-38.9 6.9-1.9 19.9-2 26.5-.2z\"\n })));\n};\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwoJdmVyc2lvbj0iMS4wIgoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJd2lkdGg9IjI1Ni4wMDAwMDBwdCIKCWhlaWdodD0iMjU2LjAwMDAwMHB0IgoJdmlld0JveD0iMCAwIDI1Ni4wMDAwMDAgMjU2LjAwMDAwMCIKCXByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiCj4KCTxnCgkJdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjU2LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKCQlmaWxsPSIjOWI1MWUwIgoJCXN0cm9rZT0ibm9uZSIKCT4KCQk8cGF0aAoJCQlkPSJNMCAxMjgwIGwwIC0xMjgwIDEyODAgMCAxMjgwIDAgMCAxMjgwIDAgMTI4MCAtMTI4MCAwIC0xMjgwIDAgMAoJCQktMTI4MHogbTE0NTYgNjY2IGMyOSAtNyA3OCAtMjggMTExIC00NSA2NyAtMzYgMTgzIC0xNDYgMTY4IC0xNjAgLTI2IC0yMwoJCQktMzE5IC0yMzEgLTMyNiAtMjMxIC01IDAgLTkgNSAtOSAxMCAwIDYgLTExIDIyIC0yNSAzNSAtMzAgMzEgLTgzIDMzIC0xMTYgNgoJCQktMjIgLTE4IC0yNCAtMjcgLTI3IC0xNDAgbC00IC0xMjEgNjYgMCA2NiAwIDAgLTE4NSAwIC0xODUgLTY1IDAgLTY1IDAgMAoJCQktMTcwIDAgLTE3MCAtMjA1IDAgLTIwNSAwIDAgNDQ4IGMwIDM1NSAzIDQ2MSAxNSA1MTcgMzkgMTg2IDE4MiAzNDIgMzU2IDM4OQoJCQk2OSAxOSAxOTkgMjAgMjY1IDJ6IgoJCS8+Cgk8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgNumberField = function SvgNumberField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 52 52\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.8 49.5H7.2c-2.6 0-4.7-2.1-4.7-4.7V7.2c0-2.6 2.1-4.7 4.7-4.7h37.6c2.6 0 4.7 2.1 4.7 4.7v37.6c0 2.6-2.1 4.7-4.7 4.7zm-36-39.2v31.3c0 .9.7 1.6 1.6 1.6h31.3c.9 0 1.6-.7 1.6-1.6V10.3c0-.9-.7-1.6-1.6-1.6H10.4c-.9.1-1.6.8-1.6 1.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.2 20.3h-2.9l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.2 4.9h-5.8l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.3 4.9H18c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h3L19 28.7h-3.1c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h2.9L17 36.5v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h5.7L26 36.4v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h3.2c.2 0 .3-.1.4-.3l.6-2.2V29c0-.2-.1-.4-.4-.4h-3l1.4-5.6h3.1c.2 0 .3-.1.4-.3l.6-2.2v-.1c-.1.1-.3-.1-.5-.1zm-8.1 8.5h-5.8l1.4-5.6h5.7l-1.3 5.6z\"\n })));\n};\nexport { SvgNumberField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCgkgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNTIgNTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUyIDUyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZD0iTTQ0LjgsNDkuNUg3LjJjLTIuNiwwLTQuNy0yLjEtNC43LTQuN1Y3LjJjMC0yLjYsMi4xLTQuNyw0LjctNC43aDM3LjZjMi42LDAsNC43LDIuMSw0LjcsNC43djM3LjYKCUM0OS41LDQ3LjQsNDcuNCw0OS41LDQ0LjgsNDkuNXogTTguOCwxMC4zdjMxLjNjMCwwLjksMC43LDEuNiwxLjYsMS42aDMxLjNjMC45LDAsMS42LTAuNywxLjYtMS42VjEwLjNjMC0wLjktMC43LTEuNi0xLjYtMS42SDEwLjQKCUM5LjUsOC44LDguOCw5LjUsOC44LDEwLjN6Ii8+CjxwYXRoIGQ9Ik0zNi4yLDIwLjNoLTIuOWwxLjItNC44di0wLjFjMC0wLjItMC4xLTAuNC0wLjQtMC40aC0yLjNjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMS4yLDQuOWgtNS44bDEuMi00LjgKCXYtMC4xYzAtMC4yLTAuMS0wLjQtMC40LTAuNGgtMi4zYy0wLjIsMC0wLjMsMC4xLTAuNCwwLjNsLTEuMyw0LjloLTMuMmMtMC4yLDAtMC4zLDAuMS0wLjQsMC4zbC0wLjYsMi4ydjAuMWMwLDAuMiwwLjEsMC40LDAuNCwwLjQKCWgzbC0xLjQsNS42aC0zLjFjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMC42LDIuMnYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuOWwtMS4yLDQuOHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuMwoJYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wxLjMtNWg1LjdMMjYsMzYuNHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuM2MwLjIsMCwwLjMtMC4xLDAuNC0wLjNsMS4zLTVoMy4yYzAuMiwwLDAuMy0wLjEsMC40LTAuMwoJbDAuNi0yLjJWMjljMC0wLjItMC4xLTAuNC0wLjQtMC40aC0zbDEuNC01LjZoMy4xYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wwLjYtMi4ydi0wLjFDMzYuNiwyMC41LDM2LjQsMjAuMywzNi4yLDIwLjNMMzYuMiwyMC4zegoJIE0yOC4xLDI4LjhoLTUuOGwxLjQtNS42aDUuN0wyOC4xLDI4Ljh6Ii8+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPasswordField = function SvgPasswordField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.988 51.297c.375 0 .961-.14 1.57-.445C42.66 43.469 47.185 40.375 47.185 31.96V14.289c0-2.414-1.055-3.187-3-4.008-2.743-1.125-11.532-4.289-14.25-5.25-.633-.187-1.266-.328-1.946-.328-.656 0-1.289.14-1.922.328-2.718.985-11.507 4.149-14.25 5.25-1.945.797-3 1.594-3 4.008v17.672c0 8.414 4.547 11.484 17.625 18.89.61.305 1.172.446 1.547.446Zm-8.226-15.563v-9.093c0-1.524.586-2.32 1.828-2.508V21.32c0-4.312 2.601-7.218 6.398-7.218 3.82 0 6.399 2.906 6.399 7.218v2.79c1.265.187 1.851.984 1.851 2.53v9.094c0 1.758-.773 2.578-2.414 2.578H22.152c-1.617 0-2.39-.82-2.39-2.578Zm4.289-11.648 7.898-.023v-3c0-2.766-1.57-4.594-3.96-4.594-2.368 0-3.938 1.828-3.938 4.593Z\"\n })));\n};\nexport { SvgPasswordField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMjcuOTg4MyA1MS4yOTY5IEMgMjguMzYzMyA1MS4yOTY5IDI4Ljk0OTIgNTEuMTU2MiAyOS41NTg2IDUwLjg1MTYgQyA0Mi42NjAyIDQzLjQ2ODggNDcuMTgzNiA0MC4zNzUwIDQ3LjE4MzYgMzEuOTYwOSBMIDQ3LjE4MzYgMTQuMjg5MSBDIDQ3LjE4MzYgMTEuODc1MCA0Ni4xMjg5IDExLjEwMTYgNDQuMTgzNiAxMC4yODEzIEMgNDEuNDQxNCA5LjE1NjIgMzIuNjUyNCA1Ljk5MjIgMjkuOTMzNiA1LjAzMTMgQyAyOS4zMDA4IDQuODQzOCAyOC42NjgwIDQuNzAzMSAyNy45ODgzIDQuNzAzMSBDIDI3LjMzMjAgNC43MDMxIDI2LjY5OTIgNC44NDM4IDI2LjA2NjQgNS4wMzEzIEMgMjMuMzQ3NiA2LjAxNTYgMTQuNTU4NiA5LjE3OTcgMTEuODE2NCAxMC4yODEzIEMgOS44NzExIDExLjA3ODEgOC44MTY0IDExLjg3NTAgOC44MTY0IDE0LjI4OTEgTCA4LjgxNjQgMzEuOTYwOSBDIDguODE2NCA0MC4zNzUwIDEzLjM2MzMgNDMuNDQ1MyAyNi40NDE0IDUwLjg1MTYgQyAyNy4wNTA4IDUxLjE1NjIgMjcuNjEzMyA1MS4yOTY5IDI3Ljk4ODMgNTEuMjk2OSBaIE0gMTkuNzYxNyAzNS43MzQ0IEwgMTkuNzYxNyAyNi42NDA2IEMgMTkuNzYxNyAyNS4xMTcyIDIwLjM0NzYgMjQuMzIwMyAyMS41ODk4IDI0LjEzMjggTCAyMS41ODk4IDIxLjMyMDMgQyAyMS41ODk4IDE3LjAwNzggMjQuMTkxNCAxNC4xMDE2IDI3Ljk4ODMgMTQuMTAxNiBDIDMxLjgwODYgMTQuMTAxNiAzNC4zODY3IDE3LjAwNzggMzQuMzg2NyAyMS4zMjAzIEwgMzQuMzg2NyAyNC4xMDk0IEMgMzUuNjUyNCAyNC4yOTY5IDM2LjIzODMgMjUuMDkzOCAzNi4yMzgzIDI2LjY0MDYgTCAzNi4yMzgzIDM1LjczNDQgQyAzNi4yMzgzIDM3LjQ5MjIgMzUuNDY0OSAzOC4zMTI1IDMzLjgyNDIgMzguMzEyNSBMIDIyLjE1MjQgMzguMzEyNSBDIDIwLjUzNTEgMzguMzEyNSAxOS43NjE3IDM3LjQ5MjIgMTkuNzYxNyAzNS43MzQ0IFogTSAyNC4wNTA4IDI0LjA4NjAgTCAzMS45NDkyIDI0LjA2MjUgTCAzMS45NDkyIDIxLjA2MjUgQyAzMS45NDkyIDE4LjI5NjkgMzAuMzc4OSAxNi40Njg3IDI3Ljk4ODMgMTYuNDY4NyBDIDI1LjYyMTEgMTYuNDY4NyAyNC4wNTA4IDE4LjI5NjkgMjQuMDUwOCAyMS4wNjI1IFoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPhoneField = function SvgPhoneField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.156 37.762c6.774 6.773 15.024 12 21.75 12 3.024 0 5.672-1.055 7.805-3.399 1.242-1.383 2.016-3 2.016-4.593 0-1.172-.446-2.297-1.57-3.094l-7.173-5.11c-1.101-.75-2.015-1.125-2.859-1.125-1.078 0-2.016.61-3.094 1.664l-1.664 1.641a1.263 1.263 0 0 1-.89.375c-.375 0-.704-.14-.961-.258-1.43-.773-3.914-2.906-6.235-5.203-2.297-2.297-4.43-4.781-5.18-6.234a1.991 1.991 0 0 1-.257-.938c0-.304.093-.61.351-.867l1.64-1.71c1.056-1.079 1.665-2.017 1.665-3.095 0-.843-.375-1.757-1.148-2.859l-5.04-7.102c-.82-1.125-1.968-1.617-3.234-1.617-1.547 0-3.164.703-4.523 2.04-2.274 2.18-3.282 4.874-3.282 7.85 0 6.727 5.133 14.884 11.883 21.634Z\"\n })));\n};\nexport { SvgPhoneField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMTguMTU2MiAzNy43NjE3IEMgMjQuOTI5NyA0NC41MzUyIDMzLjE3OTcgNDkuNzYxNyAzOS45MDYyIDQ5Ljc2MTcgQyA0Mi45Mjk3IDQ5Ljc2MTcgNDUuNTc4MSA0OC43MDcwIDQ3LjcxMDkgNDYuMzYzMyBDIDQ4Ljk1MjggNDQuOTgwNSA0OS43MjY2IDQzLjM2MzMgNDkuNzI2NiA0MS43Njk1IEMgNDkuNzI2NiA0MC41OTc3IDQ5LjI4MTIgMzkuNDcyNyA0OC4xNTYyIDM4LjY3NTggTCA0MC45ODQzIDMzLjU2NjQgQyAzOS44ODI4IDMyLjgxNjQgMzguOTY4NyAzMi40NDE0IDM4LjEyNTAgMzIuNDQxNCBDIDM3LjA0NjggMzIuNDQxNCAzNi4xMDkzIDMzLjA1MDggMzUuMDMxMiAzNC4xMDU1IEwgMzMuMzY3MSAzNS43NDYxIEMgMzMuMTA5MyAzNi4wMDM5IDMyLjc4MTIgMzYuMTIxMSAzMi40NzY1IDM2LjEyMTEgQyAzMi4xMDE1IDM2LjEyMTEgMzEuNzczNCAzNS45ODA1IDMxLjUxNTYgMzUuODYzMyBDIDMwLjA4NTkgMzUuMDg5OCAyNy42MDE1IDMyLjk1NzEgMjUuMjgxMiAzMC42NjAyIEMgMjIuOTg0MyAyOC4zNjMzIDIwLjg1MTUgMjUuODc4OSAyMC4xMDE1IDI0LjQyNTggQyAxOS45NjA5IDI0LjE2ODAgMTkuODQzNyAyMy44Mzk4IDE5Ljg0MzcgMjMuNDg4MyBDIDE5Ljg0MzcgMjMuMTgzNiAxOS45Mzc1IDIyLjg3ODkgMjAuMTk1MyAyMi42MjExIEwgMjEuODM1OSAyMC45MTAyIEMgMjIuODkwNiAxOS44MzIwIDIzLjQ5OTkgMTguODk0NSAyMy40OTk5IDE3LjgxNjQgQyAyMy40OTk5IDE2Ljk3MjcgMjMuMTI1MCAxNi4wNTg2IDIyLjM1MTUgMTQuOTU3MSBMIDE3LjMxMjQgNy44NTU1IEMgMTYuNDkyMSA2LjczMDUgMTUuMzQzNyA2LjIzODMgMTQuMDc4MSA2LjIzODMgQyAxMi41MzEyIDYuMjM4MyAxMC45MTQwIDYuOTQxNCA5LjU1NDYgOC4yNzc0IEMgNy4yODEyIDEwLjQ1NzEgNi4yNzM0IDEzLjE1MjQgNi4yNzM0IDE2LjEyODkgQyA2LjI3MzQgMjIuODU1NSAxMS40MDYyIDMxLjAxMTcgMTguMTU2MiAzNy43NjE3IFoiLz48L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioButtons = function SvgRadioButtons(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 4h13v1H9zm0 17h13v-1H9zm0-8h13v-1H9zM7 4a3 3 0 1 1-3-3 3 3 0 0 1 3 3zM6 4a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2 2 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm-2-9a1 1 0 1 0 1 1 1 1 0 0 0-1-1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgRadioButtons as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05IDRoMTN2MUg5em0wIDE3aDEzdi0xSDl6bTAtOGgxM3YtMUg5ek03IDRhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzek02IDRhMiAyIDAgMSAwLTIgMiAyLjAwMyAyLjAwMyAwIDAgMCAyLTJ6bTEgOGEzIDMgMCAxIDEtMy0zIDMgMyAwIDAgMSAzIDN6bS0xIDBhMiAyIDAgMSAwLTIgMiAyIDIgMCAwIDAgMi0yem0xIDhhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzem0tMSAwYTIgMiAwIDEgMC0yIDIgMi4wMDMgMi4wMDMgMCAwIDAgMi0yem0tMi05YTEgMSAwIDEgMCAxIDEgMSAxIDAgMCAwLTEtMXoiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioField = function SvgRadioField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 4C5.32 4 4 5.32 4 7s1.32 3 3 3 3-1.32 3-3-1.32-3-3-3Zm0-3C3.7 1 1 3.7 1 7s2.7 6 6 6 6-2.7 6-6-2.7-6-6-6Zm0 10.8c-2.64 0-4.8-2.16-4.8-4.8 0-2.64 2.16-4.8 4.8-4.8 2.64 0 4.8 2.16 4.8 4.8 0 2.64-2.16 4.8-4.8 4.8z\"\n })));\n};\nexport { SvgRadioField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE0IDE0IiByb2xlPSJpbWciIGZvY3VzYWJsZT0iZmFsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gNyw0IEMgNS4zMiw0IDQsNS4zMiA0LDcgNCw4LjY4IDUuMzIsMTAgNywxMCA4LjY4LDEwIDEwLDguNjggMTAsNyAxMCw1LjMyIDguNjgsNCA3LDQgWiBNIDcsMSBDIDMuNywxIDEsMy43IDEsNyBjIDAsMy4zIDIuNyw2IDYsNiAzLjMsMCA2LC0yLjcgNiwtNiBDIDEzLDMuNyAxMC4zLDEgNywxIFogTSA3LDExLjggQyA0LjM2LDExLjggMi4yLDkuNjQgMi4yLDcgMi4yLDQuMzYgNC4zNiwyLjIgNywyLjIgYyAyLjY0LDAgNC44LDIuMTYgNC44LDQuOCAwLDIuNjQgLTIuMTYsNC44IC00LjgsNC44IHoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRangeField = function SvgRangeField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 11h-3.184a2.982 2.982 0 0 0-5.632 0H3a1 1 0 0 0 0 2h9.184a2.982 2.982 0 0 0 5.632 0H21a1 1 0 0 0 0-2Zm-6 2a1 1 0 1 1 1-1 1.001 1.001 0 0 1-1 1Z\"\n })));\n};\nexport { SvgRangeField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggZD0iTTIxLDExSDE3LjgxNTczYTIuOTgyMDgsMi45ODIwOCwwLDAsMC01LjYzMTQ2LDBIM2ExLDEsMCwwLDAsMCwyaDkuMTg0MzNhMi45ODIsMi45ODIsMCwwLDAsNS42MzE0LDBIMjFhMSwxLDAsMCwwLDAtMlptLTYsMmExLDEsMCwxLDEsMS0xQTEuMDAxMywxLjAwMTMsMCwwLDEsMTUsMTNaIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSelect = function SvgSelect(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 4H1c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1zm-5 7H1V5h9v6zm3-2.6L11 7h4l-2 1.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1e72bd\",\n d: \"M2 6h1v4H2V6z\"\n })));\n};\nexport { SvgSelect as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8cGF0aCBkPSJNMTUgNGgtMTRjLTAuNiAwLTEgMC40LTEgMXY2YzAgMC42IDAuNCAxIDEgMWgxNGMwLjYgMCAxLTAuNCAxLTF2LTZjMC0wLjYtMC40LTEtMS0xek0xMCAxMWgtOXYtNmg5djZ6TTEzIDguNGwtMi0xLjRoNGwtMiAxLjR6Ij48L3BhdGg+CjxwYXRoIGZpbGw9IiMxZTcyYmQiIGQ9Ik0yIDZoMXY0aC0xdi00eiI+PC9wYXRoPgo8L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextField = function SvgTextField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 9h2v30H8v3h8v-3h-2V9h2V6H8zM4 16h3.021v-4H0v24h7.042v-4H4zM16.979 12v4H44v16H16.958v4H48V12z\"\n })));\n};\nexport { SvgTextField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjgsOSAxMCw5IDEwLDEyIDEwLDE2IDEwLDM5IDgsMzkgOCw0MiAxNiw0MiAxNiwzOSAxNCwzOSAxNCwxNiAxNCwxMiAxNCw5IDE2LDkgMTYsNiA4LDYgICIvPgoNPHBvbHlnb24gcG9pbnRzPSI0LDE2IDcuMDIxLDE2IDcuMDIxLDEyIDAsMTIgMCwzNiA3LjA0MiwzNiA3LjA0MiwzMiA0LDMyICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTYuOTc5LDEyIDE2Ljk3OSwxNiA0NCwxNiA0NCwzMiAxNi45NTgsMzIgMTYuOTU4LDM2IDQ4LDM2IDQ4LDEyICAiLz4KDTwvZz4KDTwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextareaField = function SvgTextareaField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 33h-2V3h2V0H8v3h2v30H8v3h8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.031 6v4H44v34H4V10h2.938V6H0v42h48V6z\"\n })));\n};\nexport { SvgTextareaField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjE2LDMzIDE0LDMzIDE0LDEwIDE0LDYgMTQsMyAxNiwzIDE2LDAgOCwwIDgsMyAxMCwzIDEwLDYgMTAsMTAgMTAsMzMgOCwzMyA4LDM2IDE2LDM2ICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTcuMDMxLDYgMTcuMDMxLDEwIDQ0LDEwIDQ0LDQ0IDQsNDQgNCwxMCA2LjkzOCwxMCA2LjkzOCw2IDAsNiAwLDQ4IDQ4LDQ4IDQ4LDYgICIvPgoNPC9nPgoNPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgUrlField = function SvgUrlField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.794 12.794c-.478.475-1.113.737-1.794.737s-1.316-.262-1.794-.738a2.54 2.54 0 0 1 0-3.584L5.5 6.916 4.084 5.5 1.791 7.794a4.54 4.54 0 0 0 .003 6.413c.853.855 1.99 1.324 3.206 1.324s2.353-.469 3.206-1.325l2.294-2.294L9.084 10.5l-2.29 2.294zm7.412-11C13.353.938 12.216.469 11 .469S8.647.938 7.794 1.794L5.5 4.084 6.916 5.5 9.21 3.206c.474-.475 1.109-.737 1.79-.737s1.316.263 1.794.737a2.537 2.537 0 0 1 0 3.584L10.5 9.084l1.416 1.416 2.294-2.294a4.54 4.54 0 0 0-.004-6.412zm-2.5 3.912L10.29 4.29l-6 6 1.416 1.416 6-6z\"\n })));\n};\nexport { SvgUrlField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgaWQ9Imljb24tYm91bmQiIGZpbGw9Im5vbmUiIC8+CiAgPHBhdGggZD0iTTYuNzk0LDEyLjc5NEM2LjMxNiwxMy4yNjksNS42ODEsMTMuNTMxLDUsMTMuNTMxcy0xLjMxNi0wLjI2Mi0xLjc5NC0wLjczOGMtMC45ODctMC45ODgtMC45ODctMi41OTcsMC0zLjU4NEw1LjUsNi45MTYgTDQuMDg0LDUuNUwxLjc5MSw3Ljc5NGMtMS43NjYsMS43NjktMS43NjYsNC42NDQsMC4wMDMsNi40MTNDMi42NDcsMTUuMDYyLDMuNzg0LDE1LjUzMSw1LDE1LjUzMXMyLjM1My0wLjQ2OSwzLjIwNi0xLjMyNSBsMi4yOTQtMi4yOTRMOS4wODQsMTAuNUw2Ljc5NCwxMi43OTR6IE0xNC4yMDYsMS43OTRDMTMuMzUzLDAuOTM4LDEyLjIxNiwwLjQ2OSwxMSwwLjQ2OVM4LjY0NywwLjkzOCw3Ljc5NCwxLjc5NEw1LjUsNC4wODQgTDYuOTE2LDUuNWwyLjI5NC0yLjI5NEM5LjY4NCwyLjczMSwxMC4zMTksMi40NjksMTEsMi40NjlzMS4zMTYsMC4yNjMsMS43OTQsMC43MzdjMC45ODgsMC45ODcsMC45ODgsMi41OTcsMCwzLjU4NEwxMC41LDkuMDg0IGwxLjQxNiwxLjQxNmwyLjI5NC0yLjI5NEMxNS45NzUsNi40MzgsMTUuOTc1LDMuNTYyLDE0LjIwNiwxLjc5NHogTTExLjcwNiw1LjcwNmwtMS40MTYtMS40MTZsLTYsNmwxLjQxNiwxLjQxNkwxMS43MDYsNS43MDZ6IiAvPgo8L3N2Zz4=\";","function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgBrevo = function SvgBrevo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 64 64\"\n }, props), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 32,\n cy: 32,\n r: 32,\n style: {\n fill: \"#0b996e\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.83 28.07c2.05-2.05 3.01-4.41 3.01-7.29 0-5.95-4.29-9.91-10.74-9.91H20.24v42.28h12.79c9.72 0 17.01-6.08 17.01-14.14 0-4.41-2.24-8.38-6.2-10.94ZM25.98 16.36h9.47c3.2 0 5.31 1.85 5.31 4.67 0 3.2-2.75 5.63-8.38 7.48-3.84 1.22-5.56 2.24-6.2 3.45h-.19V16.35Zm6.52 31.28h-6.52v-6.52c0-2.88 2.43-5.69 5.82-6.78 3.01-1.02 5.5-2.05 7.61-3.13 2.81 1.67 4.54 4.54 4.54 7.55 0 5.12-4.86 8.89-11.45 8.89Z\",\n style: {\n fill: \"#fff\"\n }\n }));\n};\nexport { SvgBrevo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48dGl0bGU+QnJldm8gaWNvbiAtIFVuY2FubnkgQXV0b21hdG9yPC90aXRsZT48Y2lyY2xlIGN4PSIzMiIgY3k9IjMyIiByPSIzMiIgc3R5bGU9ImZpbGw6IzBiOTk2ZTsiLz48cGF0aCBkPSJtNDMuODMsMjguMDdjMi4wNS0yLjA1LDMuMDEtNC40MSwzLjAxLTcuMjksMC01Ljk1LTQuMjktOS45MS0xMC43NC05LjkxaC0xNS44NnY0Mi4yOGgxMi43OWM5LjcyLDAsMTcuMDEtNi4wOCwxNy4wMS0xNC4xNCwwLTQuNDEtMi4yNC04LjM4LTYuMi0xMC45NGgwWm0tMTcuODUtMTEuNzFoOS40N2MzLjIsMCw1LjMxLDEuODUsNS4zMSw0LjY3LDAsMy4yLTIuNzUsNS42My04LjM4LDcuNDgtMy44NCwxLjIyLTUuNTYsMi4yNC02LjIsMy40NWgtLjE5di0xNS42MVptNi41MiwzMS4yOGgtNi41MnYtNi41MmMwLTIuODgsMi40My01LjY5LDUuODItNi43OCwzLjAxLTEuMDIsNS41LTIuMDUsNy42MS0zLjEzLDIuODEsMS42Nyw0LjU0LDQuNTQsNC41NCw3LjU1LDAsNS4xMi00Ljg2LDguODktMTEuNDUsOC44OWgwWiIgc3R5bGU9ImZpbGw6I2ZmZjsiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgConvertkit = function SvgConvertkit(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"-0.093 0 174.921 162\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fb6970\",\n d: \"M84.358 127.894c30.359 0 53.824-22.904 53.824-51.157 0-26.47-22.045-42.631-36.646-42.631-20.332 0-36.63 14.248-38.952 35.4-.43 3.917-3.538 7.202-7.482 7.174-6.556-.047-16.089-.103-22.123-.082-2.598.009-4.745-2.096-4.617-4.689.91-18.345 7.053-35.498 18.766-48.674C60.143 8.594 79.097 0 101.536 0c37.701 0 73.292 34.209 73.292 76.737 0 47.089-39.07 85.263-89.668 85.263-36.084 0-72.427-23.549-85.116-56.472a.707.707 0 0 1-.032-.382c.17-.974.505-1.864.835-2.74.48-1.274.95-2.52.882-3.955l-.22-4.586a5.588 5.588 0 0 1 3.243-5.329l1.834-.853a7.077 7.077 0 0 0 3.99-5.138c.615-3.363 3.571-5.808 7.022-5.808 5.39 0 10.076 3.579 11.836 8.667 8.473 24.49 21.943 42.49 54.924 42.49z\"\n })));\n};\nexport { SvgConvertkit as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9Ii0uMDkyNzY5MDggMCAxNzQuOTIwNzY5MDggMTYyIiB3aWR0aD0iMjRweCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtODQuMzU4IDEyNy44OTRjMzAuMzU5IDAgNTMuODI0LTIyLjkwNCA1My44MjQtNTEuMTU3IDAtMjYuNDctMjIuMDQ1LTQyLjYzMS0zNi42NDYtNDIuNjMxLTIwLjMzMiAwLTM2LjYzIDE0LjI0OC0zOC45NTIgMzUuNC0uNDMgMy45MTctMy41MzggNy4yMDItNy40ODIgNy4xNzQtNi41NTYtLjA0Ny0xNi4wODktLjEwMy0yMi4xMjMtLjA4Mi0yLjU5OC4wMDktNC43NDUtMi4wOTYtNC42MTctNC42ODkuOTEtMTguMzQ1IDcuMDUzLTM1LjQ5OCAxOC43NjYtNDguNjc0IDEzLjAxNS0xNC42NDEgMzEuOTY5LTIzLjIzNSA1NC40MDgtMjMuMjM1IDM3LjcwMSAwIDczLjI5MiAzNC4yMDkgNzMuMjkyIDc2LjczNyAwIDQ3LjA4OS0zOS4wNyA4NS4yNjMtODkuNjY4IDg1LjI2My0zNi4wODQgMC03Mi40MjctMjMuNTQ5LTg1LjExNi01Ni40NzJhLjcwNy43MDcgMCAwIDEgLS4wMzItLjM4MmMuMTctLjk3NC41MDUtMS44NjQuODM1LTIuNzQuNDgtMS4yNzQuOTUtMi41Mi44ODItMy45NTVsLS4yMi00LjU4NmE1LjU4OCA1LjU4OCAwIDAgMSAzLjI0My01LjMyOWwxLjgzNC0uODUzYTcuMDc3IDcuMDc3IDAgMCAwIDMuOTktNS4xMzhjLjYxNS0zLjM2MyAzLjU3MS01LjgwOCA3LjAyMi01LjgwOCA1LjM5IDAgMTAuMDc2IDMuNTc5IDExLjgzNiA4LjY2NyA4LjQ3MyAyNC40OSAyMS45NDMgNDIuNDkgNTQuOTI0IDQyLjQ5eiIgZmlsbD0iI2ZiNjk3MCIvPjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmail = function SvgEmail(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n viewBox: \"0 0 114 114\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 7,\n d: \"M7 20h98v72H7zl44 44q5 4 10 0l44-44M7 92l36-36m26 0 36 36\"\n })));\n};\nexport { SvgEmail as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMTQgMTE0IiB3aWR0aD0iMjQiPg0KPHBhdGggc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjciIGZpbGw9Im5vbmUiIGQ9Im03LDIwaDk4djcySDd6bDQ0LDQ0cTUsNCAxMCwwbDQ0LTQ0TTcsOTJsMzYtMzZtMjYsMCAzNiwzNiIvPg0KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGetresponse = function SvgGetresponse(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 0 90 59\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00baff\",\n d: \"M87.6 52c0 2.1-1.7 3.7-3.7 3.7H3.7C1.7 55.8 0 54.1 0 52V3.7C0 1.7 1.7 0 3.7 0h80.1c2.1 0 3.7 1.7 3.7 3.7V52z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M86.8 1.4C76.4 17.5 60.3 32.3 43.7 31.9c-6.1-.1-13.1-1.9-19-6.7C20.3 21.6 15.9 16 14.2 8h-1.8c-2.7 0-4.3 2.4-4 4.6.1.5.2 1.1.3 1.7 1.3 7.8 5.9 16.6 13.6 22.3 6 4.4 13.4 7.3 21.5 7.3 14.6 0 30.2-9.3 43.8-33.2v-7c0-.8-.3-1.7-.8-2.3z\"\n })));\n};\nexport { SvgGetresponse as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDkwIDU5IiB2aWV3Qm94PSIwIDAgOTAgNTkiIGhlaWdodD0iMjRweCI+CjxwYXRoIGQ9Im04Ny42IDUyYzAgMi4xLTEuNyAzLjctMy43IDMuN2gtODAuMmMtMiAuMS0zLjctMS42LTMuNy0zLjd2LTQ4LjNjMC0yIDEuNy0zLjcgMy43LTMuN2g4MC4xYzIuMSAwIDMuNyAxLjcgMy43IDMuN3Y0OC4zeiIgZmlsbD0iIzAwYmFmZiIvPjxwYXRoIGQ9Im04Ni44IDEuNGMtMTAuNCAxNi4xLTI2LjUgMzAuOS00My4xIDMwLjUtNi4xLS4xLTEzLjEtMS45LTE5LTYuNy00LjQtMy42LTguOC05LjItMTAuNS0xNy4yLS43IDAtMS4yIDAtMS44IDAtMi43IDAtNC4zIDIuNC00IDQuNi4xLjUuMiAxLjEuMyAxLjcgMS4zIDcuOCA1LjkgMTYuNiAxMy42IDIyLjMgNiA0LjQgMTMuNCA3LjMgMjEuNSA3LjMgMTQuNiAwIDMwLjItOS4zIDQzLjgtMzMuMnYtN2MwLS44LS4zLTEuNy0uOC0yLjN6IiBmaWxsPSIjZmZmIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailchimp = function SvgMailchimp(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 200 200\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.4 2.4c-8.9 2.9-16.5 7.2-26.2 14.9-23.1 18.3-43 45.8-47.7 65.9-1.7 7.1-1.7 7.7-.1 12.6 1.3 3.8 2.9 6.2 6.1 8.7l4.2 3.5-.5 8.8c-.4 7.4-.1 9.6 1.6 13.4 4.1 9.3 15 17.8 22.8 17.8 3 0 3.6.5 6.6 6.2 2 4 6.5 9.5 11.8 14.9 7.3 7.3 10 9.4 18 13.2 11.3 5.4 19.5 7.5 32.1 8.3 35.8 2.3 67-18.4 74.4-49.3 2.4-9.8 1.6-14.9-2.7-18.8-4.7-4.2-6-8.5-4.1-13.5 3.7-9.4-2.2-17.4-16.2-21.5l-4-1.2-.6-10.4c-.6-10.9-3.1-19-7-22.5-1.8-1.6-1.7-1.8 2.6-7.3 7-9 9.8-16 9.3-23.7-.5-7.3-2.6-10.4-9.3-13.5-7.6-3.5-23.2-2.1-35.8 3.3l-4.7 2.1-5.5-5.2C98 3.9 91.2 0 87.5.1c-1.1 0-5.2 1-9.1 2.3zm18.1 9.7c2.5 2.3 4.5 4.7 4.5 5.3-.1.6-4 3.6-8.8 6.6-25.5 16.1-42.4 34.4-53.3 58-2.2 4.7-4.3 9.1-4.7 9.8-.4.8-2.5 2-4.6 2.7-2.1.8-5.5 2.9-7.5 4.9l-3.6 3.5-3.2-2.5c-4.3-3.3-5.7-8.5-4.2-15.5C17.6 54.1 62.9 8.4 87.3 8.1c4.2-.1 5.2.4 9.2 4zm16 23.9c-1.8 1.9-1.7 2 .1 2 2.6 0 13.7 2.9 14.6 3.8.4.4-5.9.7-14 .7-13.5 0-15.4.2-22.8 2.8-4.5 1.5-10.7 4.3-13.8 6.2-3.1 1.8-5.6 3-5.6 2.5 0-1.9 20.8-18.9 23.3-19 .4 0 .3.9-.3 1.9-1.9 3.6-1 4.2 3.3 2 5.1-2.7 11.4-4.7 14.6-4.8 2.3-.1 2.4 0 .6 1.9zm30.2 25c2.9 2.7 4 6.9 4.7 18.4.4 5.5 1.2 10.6 1.8 11.3s3.2 1.9 5.8 2.7c6.5 1.9 12.6 5.2 13.4 7.1 2.3 6-2.9 12.8-13.8 17.9-10.9 5.2-19.9 7-35.3 6.8l-13.2-.1-2.6 3c-3.2 3.9-3.4 10.4-.4 14.3 3.8 4.8 9.4 6.9 19.6 7.4 15.4.7 31.1-4.1 40.2-12.3 5-4.6 4.7-5.5-.7-2.1-15.8 9.9-40.4 13.5-51.4 7.4-2.4-1.3-4.4-3.1-4.6-4.1-.3-1.4.2-1.6 3-.9 5.6 1.2 24.6.9 26-.5 1-1-.8-1.3-8.7-1.3-8.6 0-13.7-.7-19.2-2.5-.7-.2-1-1.1-.7-2 .5-1.2 2.9-1.5 13.9-1.5 18.8 0 31.1-2.9 42.8-10.1 2.6-1.6 4.9-2.9 5.2-2.9s1 2.1 1.6 4.6c.9 3.4 1.8 4.8 3.7 5.5 2.3.9 2.4 1.3 2 6.8-1.5 21.1-26.4 39.4-51.8 37.8-16.1-.9-27.3-7.5-33.2-19.4-3-6.1-3.3-7.6-3.3-15.3.1-9.1 2-15 7-21.6 1.4-1.8 2.5-3.9 2.5-4.6s-2-3.8-4.5-6.8c-9-10.9-9.6-22.7-1.6-31.3 4.9-5.4 7.5-6.1 20.7-5.8l12 .2 6-4c6.6-4.5 10-5.1 13.1-2.1zm-95.6 41.3c11.7 7.8 13.1 30.3 2.4 37.3-3.5 2.3-11.2 2.1-16.1-.4-7.9-4.1-12.4-11.1-12.4-19.6 0-6.6 1.2-10.1 4.8-14 5.6-5.9 15.2-7.5 21.3-3.3z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136 78c-1.1 2.1.1 9.5 1.9 11.3 1.7 1.7 4.2 1.7 4.8.1.9-2.3-.7-10.2-2.3-11.9-2-2-3.1-1.9-4.4.5zm-34.7 13.4c-3.3 2.8-2.7 4.1 1.1 2.6 3.6-1.3 9.9-1.3 13.1.2 3.7 1.7 4.4 0 1.2-2.8-3.9-3.4-11.5-3.4-15.4 0zm38.4 4.2c-1.2 1.2-.8 4.1.7 5.3 1.7 1.4 3.9-.9 3.4-3.6-.3-1.8-2.9-2.9-4.1-1.7zm-30.6 1.7c-3.4 1.7-4.2 4.2-1 3.1 1.3-.5 4.1-.9 6.2-.8 4.1 0 4.8-1 1.8-2.6-2.5-1.3-4-1.3-7 .3zm20.3 3.2c-.7 1.8 1.3 4.5 3.3 4.5 2.3 0 2.8-3.1.8-4.6-2.4-1.8-3.4-1.8-4.1.1zm-96.9 8.7c-3 2.7-4.7 7.9-3.3 9.9.5.8 1.1 1 1.4.4 2.2-5 3.2-6 6.1-6.3 4.5-.4 6.7 2.9 5.1 8-2 6.6 1.7 12.1 6.5 9.6 2-1 2.3-3 .5-2.7-3.5.4-4-.1-3.3-3.4.3-1.7.9-5.3 1.2-7.8.4-4.2.2-4.8-2.7-7.2-3.9-3.3-8-3.5-11.5-.5z\"\n })));\n};\nexport { SvgMailchimp as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2ZXJzaW9uPSIxIgogIHZpZXdCb3g9IjAgMCAyMDAgMjAwIgo+CiAgICA8cGF0aAogICAgICAgIGQ9Ik03ODQgMTk3NmMtODktMjktMTY1LTcyLTI2Mi0xNDktMjMxLTE4My00MzAtNDU4LTQ3Ny02NTktMTctNzEtMTctNzctMS0xMjYgMTMtMzggMjktNjIgNjEtODdsNDItMzUtNS04OGMtNC03NC0xLTk2IDE2LTEzNCA0MS05MyAxNTAtMTc4IDIyOC0xNzggMzAgMCAzNi01IDY2LTYyIDIwLTQwIDY1LTk1IDExOC0xNDkgNzMtNzMgMTAwLTk0IDE4MC0xMzIgMTEzLTU0IDE5NS03NSAzMjEtODMgMzU4LTIzIDY3MCAxODQgNzQ0IDQ5MyAyNCA5OCAxNiAxNDktMjcgMTg4LTQ3IDQyLTYwIDg1LTQxIDEzNSAzNyA5NC0yMiAxNzQtMTYyIDIxNWwtNDAgMTItNiAxMDRjLTYgMTA5LTMxIDE5MC03MCAyMjUtMTggMTYtMTcgMTggMjYgNzMgNzAgOTAgOTggMTYwIDkzIDIzNy01IDczLTI2IDEwNC05MyAxMzUtNzYgMzUtMjMyIDIxLTM1OC0zM2wtNDctMjEtNTUgNTJjLTU1IDUyLTEyMyA5MS0xNjAgOTAtMTEgMC01Mi0xMC05MS0yM3ptMTgxLTk3YzI1LTIzIDQ1LTQ3IDQ1LTUzLTEtNi00MC0zNi04OC02Ni0yNTUtMTYxLTQyNC0zNDQtNTMzLTU4MC0yMi00Ny00My05MS00Ny05OC00LTgtMjUtMjAtNDYtMjctMjEtOC01NS0yOS03NS00OWwtMzYtMzUtMzIgMjVjLTQzIDMzLTU3IDg1LTQyIDE1NSA2NSAzMDggNTE4IDc2NSA3NjIgNzY4IDQyIDEgNTItNCA5Mi00MHptMTYwLTIzOWMtMTgtMTktMTctMjAgMS0yMCAyNiAwIDEzNy0yOSAxNDYtMzggNC00LTU5LTctMTQwLTctMTM1IDAtMTU0LTItMjI4LTI4LTQ1LTE1LTEwNy00My0xMzgtNjItMzEtMTgtNTYtMzAtNTYtMjUgMCAxOSAyMDggMTg5IDIzMyAxOTAgNCAwIDMtOS0zLTE5LTE5LTM2LTEwLTQyIDMzLTIwIDUxIDI3IDExNCA0NyAxNDYgNDggMjMgMSAyNCAwIDYtMTl6bTMwMi0yNTBjMjktMjcgNDAtNjkgNDctMTg0IDQtNTUgMTItMTA2IDE4LTExM3MzMi0xOSA1OC0yN2M2NS0xOSAxMjYtNTIgMTM0LTcxIDIzLTYwLTI5LTEyOC0xMzgtMTc5LTEwOS01Mi0xOTktNzAtMzUzLTY4bC0xMzIgMS0yNi0zMGMtMzItMzktMzQtMTA0LTQtMTQzIDM4LTQ4IDk0LTY5IDE5Ni03NCAxNTQtNyAzMTEgNDEgNDAyIDEyMyA1MCA0NiA0NyA1NS03IDIxLTE1OC05OS00MDQtMTM1LTUxNC03NC0yNCAxMy00NCAzMS00NiA0MS0zIDE0IDIgMTYgMzAgOSA1Ni0xMiAyNDYtOSAyNjAgNSAxMCAxMC04IDEzLTg3IDEzLTg2IDAtMTM3IDctMTkyIDI1LTcgMi0xMCAxMS03IDIwIDUgMTIgMjkgMTUgMTM5IDE1IDE4OCAwIDMxMSAyOSA0MjggMTAxIDI2IDE2IDQ5IDI5IDUyIDI5czEwLTIxIDE2LTQ2YzktMzQgMTgtNDggMzctNTUgMjMtOSAyNC0xMyAyMC02OC0xNS0yMTEtMjY0LTM5NC01MTgtMzc4LTE2MSA5LTI3MyA3NS0zMzIgMTk0LTMwIDYxLTMzIDc2LTMzIDE1MyAxIDkxIDIwIDE1MCA3MCAyMTYgMTQgMTggMjUgMzkgMjUgNDZzLTIwIDM4LTQ1IDY4Yy05MCAxMDktOTYgMjI3LTE2IDMxMyA0OSA1NCA3NSA2MSAyMDcgNThsMTIwLTIgNjAgNDBjNjYgNDUgMTAwIDUxIDEzMSAyMXpNNDcxIDk3N2MxMTctNzggMTMxLTMwMyAyNC0zNzMtMzUtMjMtMTEyLTIxLTE2MSA0LTc5IDQxLTEyNCAxMTEtMTI0IDE5NiAwIDY2IDEyIDEwMSA0OCAxNDAgNTYgNTkgMTUyIDc1IDIxMyAzM3oiCiAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLjEgMCAwIC0uMSAwIDIwMCkiCiAgICA+PC9wYXRoPgogICAgPHBhdGgKICAgICAgICBkPSJNMTM2MCAxMjIwYy0xMS0yMSAxLTk1IDE5LTExMyAxNy0xNyA0Mi0xNyA0OC0xIDkgMjMtNyAxMDItMjMgMTE5LTIwIDIwLTMxIDE5LTQ0LTV6TTEwMTMgMTA4NmMtMzMtMjgtMjctNDEgMTEtMjYgMzYgMTMgOTkgMTMgMTMxLTIgMzctMTcgNDQgMCAxMiAyOC0zOSAzNC0xMTUgMzQtMTU0IDB6TTEzOTcgMTA0NGMtMTItMTItOC00MSA3LTUzIDE3LTE0IDM5IDkgMzQgMzYtMyAxOC0yOSAyOS00MSAxN3pNMTA5MSAxMDI3Yy0zNC0xNy00Mi00Mi0xMC0zMSAxMyA1IDQxIDkgNjIgOCA0MSAwIDQ4IDEwIDE4IDI2LTI1IDEzLTQwIDEzLTcwLTN6TTEyOTQgOTk1Yy03LTE4IDEzLTQ1IDMzLTQ1IDIzIDAgMjggMzEgOCA0Ni0yNCAxOC0zNCAxOC00MS0xek0zMjUgOTA4Yy0zMC0yNy00Ny03OS0zMy05OSA1LTggMTEtMTAgMTQtNCAyMiA1MCAzMiA2MCA2MSA2MyA0NSA0IDY3LTI5IDUxLTgwLTIwLTY2IDE3LTEyMSA2NS05NiAyMCAxMCAyMyAzMCA1IDI3LTM1LTQtNDAgMS0zMyAzNCAzIDE3IDkgNTMgMTIgNzggNCA0MiAyIDQ4LTI3IDcyLTM5IDMzLTgwIDM1LTExNSA1eiIKICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCguMSAwIDAgLS4xIDAgMjAwKSIKICAgID48L3BhdGg+Cjwvc3ZnPg==\";","var _rect, _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailerlite = function SvgMailerlite(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n fill: \"none\",\n viewBox: \"0 0 256 256\"\n }, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 253.538,\n height: 253.538,\n x: 1.231,\n y: 1.231,\n fill: \"#09C269\",\n stroke: \"#09C269\",\n strokeWidth: 2.462,\n rx: 4.923\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M178.619 73H77.286C69.38 73 63 79.669 63 87.93v94.852l19.714-20.403h96c7.905 0 14.286-6.669 14.286-14.93v-59.52C192.905 79.67 186.524 73 178.619 73Zm-85.238 66.885c0 2.189-1.714 3.981-3.81 3.981-2.095 0-3.81-1.792-3.81-3.981v-42.3c0-2.19 1.715-3.982 3.81-3.982 2.096 0 3.81 1.791 3.81 3.981v42.301Zm17.714 0c0 2.189-1.714 3.981-3.809 3.981-2.096 0-3.81-1.792-3.81-3.981v-27.969c0-2.189 1.714-3.981 3.81-3.981 2.095 0 3.809 1.792 3.809 3.981v27.969Zm.476-40.708c0 2.388-1.809 4.279-4.095 4.279h-.381c-2.285 0-4.095-1.891-4.095-4.28v-.298c0-2.389 1.81-4.28 4.095-4.28h.381c2.286 0 4.095 1.891 4.095 4.28v.299Zm26.858 43.694c-1.715.895-3.619 1.293-5.619 1.293-6.572 0-10.096-3.284-10.096-9.555V115.4h-3.428a2.077 2.077 0 0 1-2.096-2.09v-.1c0-.696.381-1.393.953-1.891l8.476-8.659a2.912 2.912 0 0 1 1.714-.896c1.143 0 2.191.996 2.191 2.19V108.234h6.095c1.905 0 3.429 1.592 3.429 3.583s-1.524 3.583-3.429 3.583h-6.095v18.712c0 2.687 1.333 2.886 3.143 2.886a7.79 7.79 0 0 0 2.19-.298c.476-.199 1.048-.199 1.524-.299 1.714 0 3.143 1.493 3.238 3.384-.19 1.294-1.048 2.588-2.19 3.086Zm23.333-6.171c2.762.099 5.524-.598 8-1.891.476-.299 1.048-.399 1.524-.399 1.904 0 3.428 1.493 3.428 3.484v.1c-.095 1.393-.857 2.687-2.095 3.284-2.667 1.593-5.524 2.986-11.429 2.986-10.666 0-17.142-6.868-17.142-18.314 0-13.436 8.571-18.313 15.809-18.313 10.857 0 15.81 9.057 15.81 17.418.095 2.09-1.524 3.881-3.524 3.981h-20.286c1.048 4.976 4.476 7.664 9.905 7.664Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M160.047 114.703c-4.19-.099-7.714 3.185-8.095 7.565h16.286c-.476-4.38-4-7.664-8.191-7.565Z\"\n })));\n};\nexport { SvgMailerlite as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjU2IDI1NiIgd2lkdGg9IjI0cHgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQo8cmVjdCB4PSIxLjIzMDc3IiB5PSIxLjIzMDc3IiB3aWR0aD0iMjUzLjUzOCIgaGVpZ2h0PSIyNTMuNTM4IiByeD0iNC45MjMwOCIgZmlsbD0iIzA5QzI2OSIgc3Ryb2tlPSIjMDlDMjY5IiBzdHJva2Utd2lkdGg9IjIuNDYxNTQiLz4NCjxwYXRoIGQ9Ik0xNzguNjE5IDczSDc3LjI4NTdDNjkuMzgxIDczIDYzIDc5LjY2ODYgNjMgODcuOTI5NlYxODIuNzgyTDgyLjcxNDMgMTYyLjM3OUgxNzguNzE0QzE4Ni42MTkgMTYyLjM3OSAxOTMgMTU1LjcxIDE5MyAxNDcuNDQ5Vjg3LjkyOTZDMTkyLjkwNSA3OS42Njg2IDE4Ni41MjQgNzMgMTc4LjYxOSA3M1pNOTMuMzgwOSAxMzkuODg1QzkzLjM4MDkgMTQyLjA3NCA5MS42NjY3IDE0My44NjYgODkuNTcxNCAxNDMuODY2Qzg3LjQ3NjIgMTQzLjg2NiA4NS43NjE5IDE0Mi4wNzQgODUuNzYxOSAxMzkuODg1Vjk3LjU4NDFDODUuNzYxOSA5NS4zOTQ0IDg3LjQ3NjIgOTMuNjAyOSA4OS41NzE0IDkzLjYwMjlDOTEuNjY2NyA5My42MDI5IDkzLjM4MDkgOTUuMzk0NCA5My4zODA5IDk3LjU4NDFWMTM5Ljg4NVpNMTExLjA5NSAxMzkuODg1QzExMS4wOTUgMTQyLjA3NCAxMDkuMzgxIDE0My44NjYgMTA3LjI4NiAxNDMuODY2QzEwNS4xOSAxNDMuODY2IDEwMy40NzYgMTQyLjA3NCAxMDMuNDc2IDEzOS44ODVWMTExLjkxNkMxMDMuNDc2IDEwOS43MjcgMTA1LjE5IDEwNy45MzUgMTA3LjI4NiAxMDcuOTM1QzEwOS4zODEgMTA3LjkzNSAxMTEuMDk1IDEwOS43MjcgMTExLjA5NSAxMTEuOTE2VjEzOS44ODVaTTExMS41NzEgOTkuMTc2NkMxMTEuNTcxIDEwMS41NjUgMTA5Ljc2MiAxMDMuNDU2IDEwNy40NzYgMTAzLjQ1NkgxMDcuMDk1QzEwNC44MSAxMDMuNDU2IDEwMyAxMDEuNTY1IDEwMyA5OS4xNzY2Vjk4Ljg3OEMxMDMgOTYuNDg5MiAxMDQuODEgOTQuNTk4MiAxMDcuMDk1IDk0LjU5ODJIMTA3LjQ3NkMxMDkuNzYyIDk0LjU5ODIgMTExLjU3MSA5Ni40ODkyIDExMS41NzEgOTguODc4Vjk5LjE3NjZaTTEzOC40MjkgMTQyLjg3MUMxMzYuNzE0IDE0My43NjYgMTM0LjgxIDE0NC4xNjQgMTMyLjgxIDE0NC4xNjRDMTI2LjIzOCAxNDQuMTY0IDEyMi43MTQgMTQwLjg4IDEyMi43MTQgMTM0LjYwOVYxMTUuNEgxMTkuMjg2QzExOC4xNDMgMTE1LjQgMTE3LjE5IDExNC41MDQgMTE3LjE5IDExMy4zMVYxMTMuMjFDMTE3LjE5IDExMi41MTQgMTE3LjU3MSAxMTEuODE3IDExOC4xNDMgMTExLjMxOUwxMjYuNjE5IDEwMi42NkMxMjcuMDk1IDEwMi4xNjIgMTI3LjY2NyAxMDEuODY0IDEyOC4zMzMgMTAxLjc2NEMxMjkuNDc2IDEwMS43NjQgMTMwLjUyNCAxMDIuNzYgMTMwLjUyNCAxMDMuOTU0QzEzMC41MjQgMTAzLjk1NCAxMzAuNTI0IDEwMy45NTQgMTMwLjUyNCAxMDQuMDU0VjEwOC4yMzRIMTM2LjYxOUMxMzguNTI0IDEwOC4yMzQgMTQwLjA0OCAxMDkuODI2IDE0MC4wNDggMTExLjgxN0MxNDAuMDQ4IDExMy44MDggMTM4LjUyNCAxMTUuNCAxMzYuNjE5IDExNS40SDEzMC41MjRWMTM0LjExMkMxMzAuNTI0IDEzNi43OTkgMTMxLjg1NyAxMzYuOTk4IDEzMy42NjcgMTM2Ljk5OEMxMzQuNDI5IDEzNi45OTggMTM1LjE5IDEzNi44OTkgMTM1Ljg1NyAxMzYuN0MxMzYuMzMzIDEzNi41MDEgMTM2LjkwNSAxMzYuNTAxIDEzNy4zODEgMTM2LjQwMUMxMzkuMDk1IDEzNi40MDEgMTQwLjUyNCAxMzcuODk0IDE0MC42MTkgMTM5Ljc4NUMxNDAuNDI5IDE0MS4wNzkgMTM5LjU3MSAxNDIuMzczIDEzOC40MjkgMTQyLjg3MVpNMTYxLjc2MiAxMzYuN0MxNjQuNTI0IDEzNi43OTkgMTY3LjI4NiAxMzYuMTAyIDE2OS43NjIgMTM0LjgwOUMxNzAuMjM4IDEzNC41MSAxNzAuODEgMTM0LjQxIDE3MS4yODYgMTM0LjQxQzE3My4xOSAxMzQuNDEgMTc0LjcxNCAxMzUuOTAzIDE3NC43MTQgMTM3Ljg5NEMxNzQuNzE0IDEzNy44OTQgMTc0LjcxNCAxMzcuODk0IDE3NC43MTQgMTM3Ljk5NEMxNzQuNjE5IDEzOS4zODcgMTczLjg1NyAxNDAuNjgxIDE3Mi42MTkgMTQxLjI3OEMxNjkuOTUyIDE0Mi44NzEgMTY3LjA5NSAxNDQuMjY0IDE2MS4xOSAxNDQuMjY0QzE1MC41MjQgMTQ0LjI2NCAxNDQuMDQ4IDEzNy4zOTYgMTQ0LjA0OCAxMjUuOTVDMTQ0LjA0OCAxMTIuNTE0IDE1Mi42MTkgMTA3LjYzNyAxNTkuODU3IDEwNy42MzdDMTcwLjcxNCAxMDcuNjM3IDE3NS42NjcgMTE2LjY5NCAxNzUuNjY3IDEyNS4wNTVDMTc1Ljc2MiAxMjcuMTQ1IDE3NC4xNDMgMTI4LjkzNiAxNzIuMTQzIDEyOS4wMzZDMTcyLjA0OCAxMjkuMDM2IDE3MS45NTIgMTI5LjAzNiAxNzEuODU3IDEyOS4wMzZIMTUxLjg1N0MxNTIuOTA1IDEzNC4wMTIgMTU2LjMzMyAxMzYuNyAxNjEuNzYyIDEzNi43WiIgZmlsbD0id2hpdGUiLz4NCjxwYXRoIGQ9Ik0xNjAuMDQ3IDExNC43MDNDMTU1Ljg1NyAxMTQuNjA0IDE1Mi4zMzMgMTE3Ljg4OCAxNTEuOTUyIDEyMi4yNjhIMTY4LjIzOEMxNjcuNzYyIDExNy44ODggMTY0LjIzOCAxMTQuNjA0IDE2MC4wNDcgMTE0LjcwM1oiIGZpbGw9IndoaXRlIi8+DQo8L3N2Zz4=\";","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailpoet = function SvgMailpoet(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n viewBox: \"0 0 152.02 156.4\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FF5301\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.71 89.1c3.5 0 5.9-.8 7.2-2.3a8 8 0 0 0 2-5.4V35.7l17 45.1a12.68 12.68 0 0 0 3.7 5.4c1.6 1.3 4 2 7.2 2a12.54 12.54 0 0 0 5.9-1.4 8.41 8.41 0 0 0 3.9-5l18.1-50V81a8.53 8.53 0 0 0 2.1 6.1c1.4 1.4 3.7 2.2 6.9 2.2 3.5 0 5.9-.8 7.2-2.3a8 8 0 0 0 2-5.4V8.7a7.48 7.48 0 0 0-3.3-6.6c-2.1-1.4-5-2.1-8.6-2.1a19.3 19.3 0 0 0-9.4 2 11.63 11.63 0 0 0-5.1 6.8l-19.6 58.3-20.5-58.7a12.4 12.4 0 0 0-4.5-6.2c-2.1-1.5-5-2.2-8.8-2.2a16.51 16.51 0 0 0-8.9 2.1c-2.3 1.5-3.5 3.9-3.5 7.2v71.5c0 2.8.7 4.8 2 6.2 1.5 1.4 3.7 2.1 7 2.1ZM149 116.6l-2.4-1.9a7.4 7.4 0 0 0-9.4.3 19.65 19.65 0 0 1-12.5 4.6h-21.4A37.08 37.08 0 0 0 77 130.5l-1.1 1.2-1.1-1.1a37.25 37.25 0 0 0-26.3-10.9H27a19.59 19.59 0 0 1-12.4-4.6 7.28 7.28 0 0 0-9.4-.3l-2.4 1.9a7.43 7.43 0 0 0-2.8 5.5 7.14 7.14 0 0 0 2.4 5.7 37.28 37.28 0 0 0 24.6 9.5h21.6a19.59 19.59 0 0 1 18.9 14.4v.2c.1.7 1.2 4.4 8.5 4.4s8.4-3.7 8.5-4.4v-.2a19.59 19.59 0 0 1 18.9-14.4H125a37.28 37.28 0 0 0 24.6-9.5 7.42 7.42 0 0 0 2.4-5.7 7.86 7.86 0 0 0-3-5.6Z\"\n })))));\n};\nexport { SvgMailpoet as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNTIuMDIgMTU2LjQiIHdpZHRoPSIyNHB4Ij48dGl0bGU+c3ltYm9sPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iTGF5ZXJfMS0yIiBkYXRhLW5hbWU9IkxheWVyIDEiPjxwYXRoIGZpbGw9IiNGRjUzMDEiIGQ9Ik0zNy43MSw4OS4xYzMuNSwwLDUuOS0uOCw3LjItMi4zYTgsOCwwLDAsMCwyLTUuNFYzNS43bDE3LDQ1LjFhMTIuNjgsMTIuNjgsMCwwLDAsMy43LDUuNGMxLjYsMS4zLDQsMiw3LjIsMmExMi41NCwxMi41NCwwLDAsMCw1LjktMS40LDguNDEsOC40MSwwLDAsMCwzLjktNWwxOC4xLTUwVjgxYTguNTMsOC41MywwLDAsMCwyLjEsNi4xYzEuNCwxLjQsMy43LDIuMiw2LjksMi4yLDMuNSwwLDUuOS0uOCw3LjItMi4zYTgsOCwwLDAsMCwyLTUuNFY4LjdhNy40OCw3LjQ4LDAsMCwwLTMuMy02LjZjLTIuMS0xLjQtNS0yLjEtOC42LTIuMWExOS4zLDE5LjMsMCwwLDAtOS40LDIsMTEuNjMsMTEuNjMsMCwwLDAtNS4xLDYuOEw3NC45MSw2Ny4xLDU0LjQxLDguNGExMi40LDEyLjQsMCwwLDAtNC41LTYuMmMtMi4xLTEuNS01LTIuMi04LjgtMi4yYTE2LjUxLDE2LjUxLDAsMCwwLTguOSwyLjFjLTIuMywxLjUtMy41LDMuOS0zLjUsNy4yVjgwLjhjMCwyLjguNyw0LjgsMiw2LjJDMzIuMjEsODguNCwzNC40MSw4OS4xLDM3LjcxLDg5LjFaIi8+PHBhdGggZmlsbD0iI0ZGNTMwMSIgZD0iTTE0OSwxMTYuNmwtMi40LTEuOWE3LjQsNy40LDAsMCwwLTkuNC4zLDE5LjY1LDE5LjY1LDAsMCwxLTEyLjUsNC42aC0yMS40QTM3LjA4LDM3LjA4LDAsMCwwLDc3LDEzMC41bC0xLjEsMS4yLTEuMS0xLjFhMzcuMjUsMzcuMjUsMCwwLDAtMjYuMy0xMC45SDI3YTE5LjU5LDE5LjU5LDAsMCwxLTEyLjQtNC42LDcuMjgsNy4yOCwwLDAsMC05LjQtLjNsLTIuNCwxLjlBNy40Myw3LjQzLDAsMCwwLDAsMTIyLjJhNy4xNCw3LjE0LDAsMCwwLDIuNCw1LjdBMzcuMjgsMzcuMjgsMCwwLDAsMjcsMTM3LjRoMjEuNmExOS41OSwxOS41OSwwLDAsMSwxOC45LDE0LjR2LjJjLjEuNywxLjIsNC40LDguNSw0LjRzOC40LTMuNyw4LjUtNC40di0uMmExOS41OSwxOS41OSwwLDAsMSwxOC45LTE0LjRIMTI1YTM3LjI4LDM3LjI4LDAsMCwwLDI0LjYtOS41LDcuNDIsNy40MiwwLDAsMCwyLjQtNS43QTcuODYsNy44NiwwLDAsMCwxNDksMTE2LjZaIi8+PC9nPjwvZz48L3N2Zz4=\";","var _style, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMoosend = function SvgMoosend(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n id: \"moosend_svg__Layer_1\",\n width: 24,\n x: 0,\n y: 0,\n style: {\n enableBackground: \"new 0 0 215.6 200\"\n },\n viewBox: \"0 0 215.6 200\"\n }, props), _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \".moosend_svg__st0{fill:#fff}.moosend_svg__st1{fill:#394257}\")), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M161.8 103.5c0 9.4-7.6 17-17 17H72.3c-9.4 0-17-7.6-17-17V32.8c0-9.4 7.6-17 17-17h72.5c9.4 0 17 7.6 17 17v70.7z\",\n className: \"moosend_svg__st0\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74 13.1s7.1-23.3 16 .3c-15.6-.3-16-.3-16-.3zM126.7 13.1s7.1-23.3 16 .3c-15.6-.3-16-.3-16-.3z\",\n className: \"moosend_svg__st1\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.8 141c.4 1.4-.3 3-1.8 3.4L89.8 160c-1.4.4-3-.3-3.4-1.8l-10.3-32.4c-.5-1.4.3-3 1.8-3.4l49.2-15.6c1.4-.5 3 .3 3.4 1.8l10.3 32.4z\",\n className: \"moosend_svg__st0\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.3 163.2c-2.3 0-4.2-1.4-4.9-3.6l-10.3-32.4c-.9-2.7.6-5.6 3.3-6.5l49.2-15.6c2.6-.8 5.6.7 6.5 3.3l10.3 32.4c.9 2.7-.6 5.6-3.3 6.5l-49.2 15.6c-.6.2-1.1.3-1.6.3zm38.9-53.5-49.3 15.7c-.1 0-.2.2-.2.4L89 158.1c.1.2.3.2.4.2l49.2-15.6c.1 0 .2-.2.2-.4l-10.3-32.4c-.1-.1-.2-.2-.3-.2z\",\n className: \"moosend_svg__st1\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.8 123.2c-1.2.6-1.8 2-1.4 3.3l10.3 32.4c.2.5.5 1 .9 1.3l13.4-26-23.2-11z\",\n className: \"moosend_svg__st0\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m89 162.5-3-.6c-.8-.6-1.3-1.5-1.7-2.4L74 127.1c-.8-2.4.4-5.1 2.7-6.2l1-.5 26.4 12.5L89 162.5zm-10.1-36.1 8.9 27.9 9.8-19.1-18.7-8.8z\",\n className: \"moosend_svg__st1\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141 143.3c.2-.6.3-1.2.1-1.8l-10.2-32.2c-.5-1.4-1.9-2-3.4-1.6l-.3.1-13 21.9 26.8 13.6z\",\n className: \"moosend_svg__st0\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m140.9 146-30.2-15.3 14.8-24.9 1.2-.4c2.8-.9 5.6.6 6.4 3.2l10.2 32.2c.3 1.1.3 2.3-.1 3.4l-2.3 1.8zm-23.3-17.2 20.1 10.2-9.1-28.6-11 18.4z\",\n className: \"moosend_svg__st1\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.3 107.5c-.6-.3-1.3-.3-1.9-.1L78.2 123c-.8.2-1.3.8-1.6 1.5l33.9 17.1 18.8-34.1z\",\n className: \"moosend_svg__st0\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M111.4 144.8 74.1 126l.2-2.5c.6-1.3 1.7-2.3 3.1-2.8l49.2-15.6c1.2-.4 2.5-.3 3.7.2l2.4 1.1-21.3 38.4zm-29.6-20.3 27.6 13.9 15.3-27.5-42.9 13.6z\",\n className: \"moosend_svg__st1\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.1 77.5c-24.8 0-46 6.5-56.6 16.6 0 13.1 10.4 27 23.5 27h66.2c13.1 0 23.3-14.1 23.3-27.3-10.6-10.1-31.6-16.3-56.4-16.3zM153.9 15.5l40.3 23.3s-18 14.4-32.3 4.1c-.8-.6.4-16.9-.3-17.6l-7.7-9.8zM61.7 15.5 21.4 38.8s18 14.4 32.3 4.1c.8-.6-.4-16.9.3-17.6l7.7-9.8z\",\n className: \"moosend_svg__st1\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.1 82.4c-24.8 0-45.3 6.8-55.9 16.2 0 12.3 9.7 22.5 22.8 22.5h66.2c13.1 0 22.9-9.8 23-22.1-10.7-9.4-31.3-16.6-56.1-16.6z\",\n style: {\n fill: \"#e16053\"\n }\n }), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.5 58.4c-.7 2.8-2.7 4.7-4.4 4.3-1.7-.4-2.6-3-1.9-5.8.7-2.8 2.7-4.7 4.4-4.3 1.8.4 2.6 3.1 1.9 5.8zM119.8 56.8c.8 2.8 0 5.4-1.7 5.9s-3.7-1.3-4.5-4.1c-.8-2.8 0-5.4 1.7-5.9 1.6-.5 3.7 1.3 4.5 4.1zM90.3 102.8c2.3 4 2.2 8.4-.3 9.8-2.5 1.5-6.4-.6-8.7-4.6-2.3-4-2.2-8.4.3-9.8 2.5-1.5 6.4.6 8.7 4.6zM128.6 103c-2.3 4-2.2 8.4.3 9.8 2.5 1.5 6.4-.6 8.7-4.6 2.3-4 2.2-8.4-.3-9.8-2.5-1.4-6.3.6-8.7 4.6z\",\n className: \"moosend_svg__st1\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.4 35.2c0-13.2-10.7-23.9-23.9-23.9H75c-13.2 0-23.9 10.5-23.9 23.7v66.2c0 13.2 10.7 24.3 23.9 24.3h66.2c13.2 0 23.9-10.9 23.9-24.1l-.7-66.2zm-4.1 67.5c0 9.8-8 17.8-17.8 17.8H73.8c-9.8 0-17.8-8-17.8-17.8V34.1c0-9.8 8-17.8 17.8-17.8h68.6c9.8 0 17.8 8 17.8 17.8v68.6z\",\n className: \"moosend_svg__st1\"\n })));\n};\nexport { SvgMoosend as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNS4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMTUuNiAyMDAiIHdpZHRoPSIyNHB4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyMTUuNiAyMDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiNGRkZGRkY7fQ0KCS5zdDF7ZmlsbDojMzk0MjU3O30NCgkuc3Qye2ZpbGw6I0UxNjA1Mzt9DQoJLnN0M3tmaWxsOiM5Njk2OTY7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNjEuOCwxMDMuNWMwLDkuNC03LjYsMTctMTcsMTdINzIuM2MtOS40LDAtMTctNy42LTE3LTE3VjMyLjhjMC05LjQsNy42LTE3LDE3LTE3aDcyLjVjOS40LDAsMTcsNy42LDE3LDE3DQoJCQkJTDE2MS44LDEwMy41TDE2MS44LDEwMy41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik03NCwxMy4xYzAsMCw3LjEtMjMuMywxNiwwLjNDNzQuNCwxMy4xLDc0LDEzLjEsNzQsMTMuMXoiLz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTI2LjcsMTMuMWMwLDAsNy4xLTIzLjMsMTYsMC4zQzEyNy4xLDEzLjEsMTI2LjcsMTMuMSwxMjYuNywxMy4xeiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNDAuOCwxNDFjMC40LDEuNC0wLjMsMy0xLjgsMy40bC00OS4yLDE1LjZjLTEuNCwwLjQtMy0wLjMtMy40LTEuOGwtMTAuMy0zMi40Yy0wLjUtMS40LDAuMy0zLDEuOC0zLjQNCgkJCQkJbDQ5LjItMTUuNmMxLjQtMC41LDMsMC4zLDMuNCwxLjhMMTQwLjgsMTQxeiIvPg0KCQkJPC9nPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTg5LjMsMTYzLjJjLTIuMywwLTQuMi0xLjQtNC45LTMuNmwtMTAuMy0zMi40Yy0wLjktMi43LDAuNi01LjYsMy4zLTYuNWw0OS4yLTE1LjYNCgkJCQkJYzIuNi0wLjgsNS42LDAuNyw2LjUsMy4zbDEwLjMsMzIuNGMwLjksMi43LTAuNiw1LjYtMy4zLDYuNWwtNDkuMiwxNS42QzkwLjMsMTYzLjEsODkuOCwxNjMuMiw4OS4zLDE2My4yeiBNMTI4LjIsMTA5LjcNCgkJCQkJbC00OS4zLDE1LjdjLTAuMSwwLTAuMiwwLjItMC4yLDAuNEw4OSwxNTguMWMwLjEsMC4yLDAuMywwLjIsMC40LDAuMmw0OS4yLTE1LjZjMC4xLDAsMC4yLTAuMiwwLjItMC40bC0xMC4zLTMyLjQNCgkJCQkJQzEyOC40LDEwOS44LDEyOC4zLDEwOS43LDEyOC4yLDEwOS43eiIvPg0KCQkJPC9nPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTc3LjgsMTIzLjJjLTEuMiwwLjYtMS44LDItMS40LDMuM2wxMC4zLDMyLjRjMC4yLDAuNSwwLjUsMSwwLjksMS4zbDEzLjQtMjZMNzcuOCwxMjMuMnoiLz4NCgkJCTwvZz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik04OSwxNjIuNWwtMy0wLjZjLTAuOC0wLjYtMS4zLTEuNS0xLjctMi40bC0xMC4zLTMyLjRjLTAuOC0yLjQsMC40LTUuMSwyLjctNi4ybDEtMC41bDI2LjQsMTIuNUw4OSwxNjIuNXoNCgkJCQkJIE03OC45LDEyNi40bDguOSwyNy45bDkuOC0xOS4xTDc4LjksMTI2LjR6Ii8+DQoJCQk8L2c+DQoJCTwvZz4NCgkJPGc+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTQxLDE0My4zYzAuMi0wLjYsMC4zLTEuMiwwLjEtMS44bC0xMC4yLTMyLjJjLTAuNS0xLjQtMS45LTItMy40LTEuNmwtMC4zLDAuMWwtMTMsMjEuOUwxNDEsMTQzLjN6Ii8+DQoJCQk8L2c+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTQwLjksMTQ2bC0zMC4yLTE1LjNsMTQuOC0yNC45bDEuMi0wLjRjMi44LTAuOSw1LjYsMC42LDYuNCwzLjJsMTAuMiwzMi4yYzAuMywxLjEsMC4zLDIuMy0wLjEsMy40DQoJCQkJCUwxNDAuOSwxNDZ6IE0xMTcuNiwxMjguOGwyMC4xLDEwLjJsLTkuMS0yOC42TDExNy42LDEyOC44eiIvPg0KCQkJPC9nPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyOS4zLDEwNy41Yy0wLjYtMC4zLTEuMy0wLjMtMS45LTAuMWwtNDkuMiwxNS42Yy0wLjgsMC4yLTEuMywwLjgtMS42LDEuNWwzMy45LDE3LjFMMTI5LjMsMTA3LjV6Ii8+DQoJCQk8L2c+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTExLjQsMTQ0LjhMNzQuMSwxMjZsMC4yLTIuNWMwLjYtMS4zLDEuNy0yLjMsMy4xLTIuOGw0OS4yLTE1LjZjMS4yLTAuNCwyLjUtMC4zLDMuNywwLjJsMi40LDEuMQ0KCQkJCQlMMTExLjQsMTQ0Ljh6IE04MS44LDEyNC41bDI3LjYsMTMuOWwxNS4zLTI3LjVMODEuOCwxMjQuNXoiLz4NCgkJCTwvZz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTA4LjEsNzcuNWMtMjQuOCwwLTQ2LDYuNS01Ni42LDE2LjZjMCwxMy4xLDEwLjQsMjcsMjMuNSwyN2g2Ni4yYzEzLjEsMCwyMy4zLTE0LjEsMjMuMy0yNy4zDQoJCQkJQzE1My45LDgzLjcsMTMyLjksNzcuNSwxMDguMSw3Ny41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNTMuOSwxNS41bDQwLjMsMjMuM2MwLDAtMTgsMTQuNC0zMi4zLDQuMWMtMC44LTAuNiwwLjQtMTYuOS0wLjMtMTcuNkwxNTMuOSwxNS41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MS43LDE1LjVMMjEuNCwzOC44YzAsMCwxOCwxNC40LDMyLjMsNC4xYzAuOC0wLjYtMC40LTE2LjksMC4zLTE3LjZMNjEuNywxNS41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMDguMSw4Mi40Yy0yNC44LDAtNDUuMyw2LjgtNTUuOSwxNi4yYzAsMTIuMyw5LjcsMjIuNSwyMi44LDIyLjVoNjYuMmMxMy4xLDAsMjIuOS05LjgsMjMtMjIuMQ0KCQkJCUMxNTMuNSw4OS42LDEzMi45LDgyLjQsMTA4LjEsODIuNHoiLz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTAzLjUsNTguNGMtMC43LDIuOC0yLjcsNC43LTQuNCw0LjNjLTEuNy0wLjQtMi42LTMtMS45LTUuOGMwLjctMi44LDIuNy00LjcsNC40LTQuMw0KCQkJCUMxMDMuNCw1MywxMDQuMiw1NS43LDEwMy41LDU4LjR6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTExOS44LDU2LjhjMC44LDIuOCwwLDUuNC0xLjcsNS45Yy0xLjcsMC41LTMuNy0xLjMtNC41LTQuMWMtMC44LTIuOCwwLTUuNCwxLjctNS45DQoJCQkJQzExNi45LDUyLjIsMTE5LDU0LDExOS44LDU2Ljh6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTkwLjMsMTAyLjhjMi4zLDQsMi4yLDguNC0wLjMsOS44Yy0yLjUsMS41LTYuNC0wLjYtOC43LTQuNmMtMi4zLTQtMi4yLTguNCwwLjMtOS44DQoJCQkJQzg0LjEsOTYuNyw4OCw5OC44LDkwLjMsMTAyLjh6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTEyOC42LDEwM2MtMi4zLDQtMi4yLDguNCwwLjMsOS44YzIuNSwxLjUsNi40LTAuNiw4LjctNC42YzIuMy00LDIuMi04LjQtMC4zLTkuOA0KCQkJCUMxMzQuOCw5NywxMzEsOTksMTI4LjYsMTAzeiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNjQuNCwzNS4yYzAtMTMuMi0xMC43LTIzLjktMjMuOS0yMy45SDc1Yy0xMy4yLDAtMjMuOSwxMC41LTIzLjksMjMuN3Y2Ni4yYzAsMTMuMiwxMC43LDI0LjMsMjMuOSwyNC4zDQoJCQkJCWg2Ni4yYzEzLjIsMCwyMy45LTEwLjksMjMuOS0yNC4xTDE2NC40LDM1LjJ6IE0xNjAuMywxMDIuN2MwLDkuOC04LDE3LjgtMTcuOCwxNy44SDczLjhjLTkuOCwwLTE3LjgtOC0xNy44LTE3LjhWMzQuMQ0KCQkJCQljMC05LjgsOC0xNy44LDE3LjgtMTcuOGg2OC42YzkuOCwwLDE3LjgsOCwxNy44LDE3LjhWMTAyLjd6Ii8+DQoJCQk8L2c+DQoJCTwvZz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgWebhook = function SvgWebhook(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.46 19C9 21.07 6.15 21.59 4.09 20.15c-2.05-1.44-2.53-4.31-1.09-6.4a4.585 4.585 0 0 1 3.58-1.98l.05 1.43c-.91.07-1.79.54-2.36 1.36-1 1.44-.69 3.38.68 4.35 1.38.96 3.31.59 4.31-.84.31-.45.49-.94.56-1.44v-1.01l5.58-.04.07-.11c.53-.92 1.68-1.24 2.58-.72a1.9 1.9 0 0 1 .68 2.6c-.53.91-1.69 1.23-2.59.71-.41-.23-.7-.6-.83-1.02l-4.07.02a4.96 4.96 0 0 1-.78 1.94m7.28-7.14c2.53.31 4.33 2.58 4.02 5.07-.31 2.5-2.61 4.27-5.14 3.96a4.629 4.629 0 0 1-3.43-2.21l1.24-.72a3.22 3.22 0 0 0 2.32 1.45c1.75.21 3.3-.98 3.51-2.65.21-1.67-1.03-3.2-2.76-3.41-.54-.06-1.06.01-1.53.18l-.85.44-2.58-4.77h-.22a1.906 1.906 0 0 1-1.85-1.95c.03-1.04.93-1.85 1.98-1.81 1.05.06 1.88.91 1.85 1.95-.02.44-.19.84-.46 1.15l1.9 3.51c.62-.2 1.3-.27 2-.19M8.25 9.14c-1-2.35.06-5.04 2.37-6.02 2.32-.98 5 .13 6 2.48.59 1.37.47 2.87-.2 4.07l-1.24-.72c.42-.81.49-1.8.09-2.73-.68-1.6-2.49-2.37-4.04-1.72-1.56.66-2.26 2.5-1.58 4.1.28.66.75 1.17 1.32 1.51l.39.21-3.07 4.99c.03.05.07.11.1.19.49.91.15 2.06-.77 2.55-.91.49-2.06.13-2.56-.81-.49-.93-.15-2.08.77-2.57.39-.21.82-.26 1.23-.17l2.31-3.77c-.47-.43-.87-.97-1.12-1.59Z\"\n })));\n};\nexport { SvgWebhook as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXdlYmhvb2siIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTAuNDYsMTlDOSwyMS4wNyA2LjE1LDIxLjU5IDQuMDksMjAuMTVDMi4wNCwxOC43MSAxLjU2LDE1Ljg0IDMsMTMuNzVDMy44NywxMi41IDUuMjEsMTEuODMgNi41OCwxMS43N0w2LjYzLDEzLjJDNS43MiwxMy4yNyA0Ljg0LDEzLjc0IDQuMjcsMTQuNTZDMy4yNywxNiAzLjU4LDE3Ljk0IDQuOTUsMTguOTFDNi4zMywxOS44NyA4LjI2LDE5LjUgOS4yNiwxOC4wN0M5LjU3LDE3LjYyIDkuNzUsMTcuMTMgOS44MiwxNi42M1YxNS42MkwxNS40LDE1LjU4TDE1LjQ3LDE1LjQ3QzE2LDE0LjU1IDE3LjE1LDE0LjIzIDE4LjA1LDE0Ljc1QzE4Ljk1LDE1LjI3IDE5LjI2LDE2LjQzIDE4LjczLDE3LjM1QzE4LjIsMTguMjYgMTcuMDQsMTguNTggMTYuMTQsMTguMDZDMTUuNzMsMTcuODMgMTUuNDQsMTcuNDYgMTUuMzEsMTcuMDRMMTEuMjQsMTcuMDZDMTEuMTMsMTcuNzMgMTAuODcsMTguMzggMTAuNDYsMTlNMTcuNzQsMTEuODZDMjAuMjcsMTIuMTcgMjIuMDcsMTQuNDQgMjEuNzYsMTYuOTNDMjEuNDUsMTkuNDMgMTkuMTUsMjEuMiAxNi42MiwyMC44OUMxNS4xMywyMC43MSAxMy45LDE5Ljg2IDEzLjE5LDE4LjY4TDE0LjQzLDE3Ljk2QzE0LjkyLDE4LjczIDE1Ljc1LDE5LjI4IDE2Ljc1LDE5LjQxQzE4LjUsMTkuNjIgMjAuMDUsMTguNDMgMjAuMjYsMTYuNzZDMjAuNDcsMTUuMDkgMTkuMjMsMTMuNTYgMTcuNSwxMy4zNUMxNi45NiwxMy4yOSAxNi40NCwxMy4zNiAxNS45NywxMy41M0wxNS4xMiwxMy45N0wxMi41NCw5LjJIMTIuMzJDMTEuMjYsOS4xNiAxMC40NCw4LjI5IDEwLjQ3LDcuMjVDMTAuNSw2LjIxIDExLjQsNS40IDEyLjQ1LDUuNDRDMTMuNSw1LjUgMTQuMzMsNi4zNSAxNC4zLDcuMzlDMTQuMjgsNy44MyAxNC4xMSw4LjIzIDEzLjg0LDguNTRMMTUuNzQsMTIuMDVDMTYuMzYsMTEuODUgMTcuMDQsMTEuNzggMTcuNzQsMTEuODZNOC4yNSw5LjE0QzcuMjUsNi43OSA4LjMxLDQuMSAxMC42MiwzLjEyQzEyLjk0LDIuMTQgMTUuNjIsMy4yNSAxNi42Miw1LjZDMTcuMjEsNi45NyAxNy4wOSw4LjQ3IDE2LjQyLDkuNjdMMTUuMTgsOC45NUMxNS42LDguMTQgMTUuNjcsNy4xNSAxNS4yNyw2LjIyQzE0LjU5LDQuNjIgMTIuNzgsMy44NSAxMS4yMyw0LjVDOS42Nyw1LjE2IDguOTcsNyA5LjY1LDguNkM5LjkzLDkuMjYgMTAuNCw5Ljc3IDEwLjk3LDEwLjExTDExLjM2LDEwLjMyTDguMjksMTUuMzFDOC4zMiwxNS4zNiA4LjM2LDE1LjQyIDguMzksMTUuNUM4Ljg4LDE2LjQxIDguNTQsMTcuNTYgNy42MiwxOC4wNUM2LjcxLDE4LjU0IDUuNTYsMTguMTggNS4wNiwxNy4yNEM0LjU3LDE2LjMxIDQuOTEsMTUuMTYgNS44MywxNC42N0M2LjIyLDE0LjQ2IDYuNjUsMTQuNDEgNy4wNiwxNC41TDkuMzcsMTAuNzNDOC45LDEwLjMgOC41LDkuNzYgOC4yNSw5LjE0WiIgLz48L3N2Zz4=\";","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { uuid } from './Utils';\nvar injectScriptTag = function (doc, item, handler) {\n var _a, _b;\n var scriptTag = doc.createElement('script');\n scriptTag.referrerPolicy = 'origin';\n scriptTag.type = 'application/javascript';\n scriptTag.id = item.id;\n scriptTag.src = item.src;\n scriptTag.async = (_a = item.async) !== null && _a !== void 0 ? _a : false;\n scriptTag.defer = (_b = item.defer) !== null && _b !== void 0 ? _b : false;\n var loadHandler = function () {\n scriptTag.removeEventListener('load', loadHandler);\n scriptTag.removeEventListener('error', errorHandler);\n handler(item.src);\n };\n var errorHandler = function (err) {\n scriptTag.removeEventListener('load', loadHandler);\n scriptTag.removeEventListener('error', errorHandler);\n handler(item.src, err);\n };\n scriptTag.addEventListener('load', loadHandler);\n scriptTag.addEventListener('error', errorHandler);\n if (doc.head) {\n doc.head.appendChild(scriptTag);\n }\n};\nvar createDocumentScriptLoader = function (doc) {\n var lookup = {};\n var scriptLoadOrErrorHandler = function (src, err) {\n var item = lookup[src];\n item.done = true;\n item.error = err;\n for (var _i = 0, _a = item.handlers; _i < _a.length; _i++) {\n var h = _a[_i];\n h(src, err);\n }\n item.handlers = [];\n };\n var loadScripts = function (items, success, failure) {\n // eslint-disable-next-line no-console\n var failureOrLog = function (err) { return failure !== undefined ? failure(err) : console.error(err); };\n if (items.length === 0) {\n failureOrLog(new Error('At least one script must be provided'));\n return;\n }\n var successCount = 0;\n var failed = false;\n var loaded = function (_src, err) {\n if (failed) {\n return;\n }\n if (err) {\n failed = true;\n failureOrLog(err);\n }\n else if (++successCount === items.length) {\n success();\n }\n };\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var item = items_1[_i];\n var existing = lookup[item.src];\n if (existing) {\n if (existing.done) {\n loaded(item.src, existing.error);\n }\n else {\n existing.handlers.push(loaded);\n }\n }\n else {\n // create a new entry\n var id = uuid('tiny-');\n lookup[item.src] = {\n id: id,\n src: item.src,\n done: false,\n error: null,\n handlers: [loaded],\n };\n injectScriptTag(doc, __assign({ id: id }, item), scriptLoadOrErrorHandler);\n }\n }\n };\n var deleteScripts = function () {\n var _a;\n for (var _i = 0, _b = Object.values(lookup); _i < _b.length; _i++) {\n var item = _b[_i];\n var scriptTag = doc.getElementById(item.id);\n if (scriptTag != null && scriptTag.tagName === 'SCRIPT') {\n (_a = scriptTag.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(scriptTag);\n }\n }\n lookup = {};\n };\n var getDocument = function () { return doc; };\n return {\n loadScripts: loadScripts,\n deleteScripts: deleteScripts,\n getDocument: getDocument\n };\n};\nvar createScriptLoader = function () {\n var cache = [];\n var getDocumentScriptLoader = function (doc) {\n var loader = cache.find(function (l) { return l.getDocument() === doc; });\n if (loader === undefined) {\n loader = createDocumentScriptLoader(doc);\n cache.push(loader);\n }\n return loader;\n };\n var loadList = function (doc, items, delay, success, failure) {\n var doLoad = function () { return getDocumentScriptLoader(doc).loadScripts(items, success, failure); };\n if (delay > 0) {\n setTimeout(doLoad, delay);\n }\n else {\n doLoad();\n }\n };\n var reinitialize = function () {\n for (var loader = cache.pop(); loader != null; loader = cache.pop()) {\n loader.deleteScripts();\n }\n };\n return {\n loadList: loadList,\n reinitialize: reinitialize\n };\n};\nexport var ScriptLoader = createScriptLoader();\n","var getTinymce = function (view) {\n var global = view;\n return global && global.tinymce ? global.tinymce : null;\n};\nexport { getTinymce };\n","import { eventPropTypes } from './components/EditorPropTypes';\nexport var isFunction = function (x) { return typeof x === 'function'; };\nvar isEventProp = function (name) { return name in eventPropTypes; };\nvar eventAttrToEventName = function (attrName) { return attrName.substr(2); };\nexport var configHandlers2 = function (handlerLookup, on, off, adapter, prevProps, props, boundHandlers) {\n var prevEventKeys = Object.keys(prevProps).filter(isEventProp);\n var currEventKeys = Object.keys(props).filter(isEventProp);\n var removedKeys = prevEventKeys.filter(function (key) { return props[key] === undefined; });\n var addedKeys = currEventKeys.filter(function (key) { return prevProps[key] === undefined; });\n removedKeys.forEach(function (key) {\n // remove event handler\n var eventName = eventAttrToEventName(key);\n var wrappedHandler = boundHandlers[eventName];\n off(eventName, wrappedHandler);\n delete boundHandlers[eventName];\n });\n addedKeys.forEach(function (key) {\n var wrappedHandler = adapter(handlerLookup, key);\n var eventName = eventAttrToEventName(key);\n boundHandlers[eventName] = wrappedHandler;\n on(eventName, wrappedHandler);\n });\n};\nexport var configHandlers = function (editor, prevProps, props, boundHandlers, lookup) {\n return configHandlers2(lookup, editor.on.bind(editor), editor.off.bind(editor), \n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n function (handlerLookup, key) { return function (e) { var _a; return (_a = handlerLookup(key)) === null || _a === void 0 ? void 0 : _a(e, editor); }; }, prevProps, props, boundHandlers);\n};\nvar unique = 0;\nexport var uuid = function (prefix) {\n var time = Date.now();\n var random = Math.floor(Math.random() * 1000000000);\n unique++;\n return prefix + '_' + random + unique + String(time);\n};\nexport var isTextareaOrInput = function (element) {\n return element !== null && (element.tagName.toLowerCase() === 'textarea' || element.tagName.toLowerCase() === 'input');\n};\nvar normalizePluginArray = function (plugins) {\n if (typeof plugins === 'undefined' || plugins === '') {\n return [];\n }\n return Array.isArray(plugins) ? plugins : plugins.split(' ');\n};\n// eslint-disable-next-line max-len\nexport var mergePlugins = function (initPlugins, inputPlugins) { return normalizePluginArray(initPlugins).concat(normalizePluginArray(inputPlugins)); };\nexport var isBeforeInputEventAvailable = function () { return window.InputEvent && typeof InputEvent.prototype.getTargetRanges === 'function'; };\nexport var isInDoc = function (elem) {\n if (!('isConnected' in Node.prototype)) {\n // Fallback for IE and old Edge\n var current = elem;\n var parent_1 = elem.parentNode;\n while (parent_1 != null) {\n current = parent_1;\n parent_1 = current.parentNode;\n }\n return current === elem.ownerDocument;\n }\n return elem.isConnected;\n};\nexport var setMode = function (editor, mode) {\n if (editor !== undefined) {\n if (editor.mode != null && typeof editor.mode === 'object' && typeof editor.mode.set === 'function') {\n editor.mode.set(mode);\n }\n else { // support TinyMCE 4\n editor.setMode(mode);\n }\n }\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { ScriptLoader } from '../ScriptLoader2';\nimport { getTinymce } from '../TinyMCE';\nimport { isFunction, isTextareaOrInput, mergePlugins, uuid, configHandlers, isBeforeInputEventAvailable, isInDoc, setMode } from '../Utils';\nimport { EditorPropTypes } from './EditorPropTypes';\nvar Editor = /** @class */ (function (_super) {\n __extends(Editor, _super);\n function Editor(props) {\n var _a, _b, _c;\n var _this = _super.call(this, props) || this;\n _this.rollbackTimer = undefined;\n _this.valueCursor = undefined;\n _this.rollbackChange = function () {\n var editor = _this.editor;\n var value = _this.props.value;\n if (editor && value && value !== _this.currentContent) {\n editor.undoManager.ignore(function () {\n editor.setContent(value);\n // only restore cursor on inline editors when they are focused\n // as otherwise it will cause a focus grab\n if (_this.valueCursor && (!_this.inline || editor.hasFocus())) {\n try {\n editor.selection.moveToBookmark(_this.valueCursor);\n }\n catch (e) { /* ignore */ }\n }\n });\n }\n _this.rollbackTimer = undefined;\n };\n _this.handleBeforeInput = function (_evt) {\n if (_this.props.value !== undefined && _this.props.value === _this.currentContent && _this.editor) {\n if (!_this.inline || _this.editor.hasFocus()) {\n try {\n // getBookmark throws exceptions when the editor has not been focused\n // possibly only in inline mode but I'm not taking chances\n _this.valueCursor = _this.editor.selection.getBookmark(3);\n }\n catch (e) { /* ignore */ }\n }\n }\n };\n _this.handleBeforeInputSpecial = function (evt) {\n if (evt.key === 'Enter' || evt.key === 'Backspace' || evt.key === 'Delete') {\n _this.handleBeforeInput(evt);\n }\n };\n _this.handleEditorChange = function (_evt) {\n var editor = _this.editor;\n if (editor && editor.initialized) {\n var newContent = editor.getContent();\n if (_this.props.value !== undefined && _this.props.value !== newContent && _this.props.rollback !== false) {\n // start a timer and revert to the value if not applied in time\n if (!_this.rollbackTimer) {\n _this.rollbackTimer = window.setTimeout(_this.rollbackChange, typeof _this.props.rollback === 'number' ? _this.props.rollback : 200);\n }\n }\n if (newContent !== _this.currentContent) {\n _this.currentContent = newContent;\n if (isFunction(_this.props.onEditorChange)) {\n _this.props.onEditorChange(newContent, editor);\n }\n }\n }\n };\n _this.handleEditorChangeSpecial = function (evt) {\n if (evt.key === 'Backspace' || evt.key === 'Delete') {\n _this.handleEditorChange(evt);\n }\n };\n _this.initialise = function (attempts) {\n var _a, _b, _c;\n if (attempts === void 0) { attempts = 0; }\n var target = _this.elementRef.current;\n if (!target) {\n return; // Editor has been unmounted\n }\n if (!isInDoc(target)) {\n // this is probably someone trying to help by rendering us offscreen\n // but we can't do that because the editor iframe must be in the document\n // in order to have state\n if (attempts === 0) {\n // we probably just need to wait for the current events to be processed\n setTimeout(function () { return _this.initialise(1); }, 1);\n }\n else if (attempts < 100) {\n // wait for ten seconds, polling every tenth of a second\n setTimeout(function () { return _this.initialise(attempts + 1); }, 100);\n }\n else {\n // give up, at this point it seems that more polling is unlikely to help\n throw new Error('tinymce can only be initialised when in a document');\n }\n return;\n }\n var tinymce = getTinymce(_this.view);\n if (!tinymce) {\n throw new Error('tinymce should have been loaded into global scope');\n }\n var finalInit = __assign(__assign({}, _this.props.init), { selector: undefined, target: target, readonly: _this.props.disabled, inline: _this.inline, plugins: mergePlugins((_a = _this.props.init) === null || _a === void 0 ? void 0 : _a.plugins, _this.props.plugins), toolbar: (_b = _this.props.toolbar) !== null && _b !== void 0 ? _b : (_c = _this.props.init) === null || _c === void 0 ? void 0 : _c.toolbar, setup: function (editor) {\n _this.editor = editor;\n _this.bindHandlers({});\n // When running in inline mode the editor gets the initial value\n // from the innerHTML of the element it is initialized on.\n // However we don't want to take on the responsibility of sanitizing\n // to remove XSS in the react integration so we have a chicken and egg\n // problem... We avoid it by sneaking in a set content before the first\n // \"official\" setContent and using TinyMCE to do the sanitization.\n if (_this.inline && !isTextareaOrInput(target)) {\n editor.once('PostRender', function (_evt) {\n editor.setContent(_this.getInitialValue(), { no_events: true });\n });\n }\n if (_this.props.init && isFunction(_this.props.init.setup)) {\n _this.props.init.setup(editor);\n }\n }, init_instance_callback: function (editor) {\n var _a, _b;\n // check for changes that happened since tinymce.init() was called\n var initialValue = _this.getInitialValue();\n _this.currentContent = (_a = _this.currentContent) !== null && _a !== void 0 ? _a : editor.getContent();\n if (_this.currentContent !== initialValue) {\n _this.currentContent = initialValue;\n // same as resetContent in TinyMCE 5\n editor.setContent(initialValue);\n editor.undoManager.clear();\n editor.undoManager.add();\n editor.setDirty(false);\n }\n var disabled = (_b = _this.props.disabled) !== null && _b !== void 0 ? _b : false;\n setMode(_this.editor, disabled ? 'readonly' : 'design');\n // ensure existing init_instance_callback is called\n if (_this.props.init && isFunction(_this.props.init.init_instance_callback)) {\n _this.props.init.init_instance_callback(editor);\n }\n } });\n if (!_this.inline) {\n target.style.visibility = '';\n }\n if (isTextareaOrInput(target)) {\n target.value = _this.getInitialValue();\n }\n tinymce.init(finalInit);\n };\n _this.id = _this.props.id || uuid('tiny-react');\n _this.elementRef = React.createRef();\n _this.inline = (_c = (_a = _this.props.inline) !== null && _a !== void 0 ? _a : (_b = _this.props.init) === null || _b === void 0 ? void 0 : _b.inline) !== null && _c !== void 0 ? _c : false;\n _this.boundHandlers = {};\n return _this;\n }\n Object.defineProperty(Editor.prototype, \"view\", {\n get: function () {\n var _a, _b;\n return (_b = (_a = this.elementRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument.defaultView) !== null && _b !== void 0 ? _b : window;\n },\n enumerable: false,\n configurable: true\n });\n Editor.prototype.componentDidUpdate = function (prevProps) {\n var _this = this;\n var _a, _b;\n if (this.rollbackTimer) {\n clearTimeout(this.rollbackTimer);\n this.rollbackTimer = undefined;\n }\n if (this.editor) {\n this.bindHandlers(prevProps);\n if (this.editor.initialized) {\n this.currentContent = (_a = this.currentContent) !== null && _a !== void 0 ? _a : this.editor.getContent();\n if (typeof this.props.initialValue === 'string' && this.props.initialValue !== prevProps.initialValue) {\n // same as resetContent in TinyMCE 5\n this.editor.setContent(this.props.initialValue);\n this.editor.undoManager.clear();\n this.editor.undoManager.add();\n this.editor.setDirty(false);\n }\n else if (typeof this.props.value === 'string' && this.props.value !== this.currentContent) {\n var localEditor_1 = this.editor;\n localEditor_1.undoManager.transact(function () {\n // inline editors grab focus when restoring selection\n // so we don't try to keep their selection unless they are currently focused\n var cursor;\n if (!_this.inline || localEditor_1.hasFocus()) {\n try {\n // getBookmark throws exceptions when the editor has not been focused\n // possibly only in inline mode but I'm not taking chances\n cursor = localEditor_1.selection.getBookmark(3);\n }\n catch (e) { /* ignore */ }\n }\n var valueCursor = _this.valueCursor;\n localEditor_1.setContent(_this.props.value);\n if (!_this.inline || localEditor_1.hasFocus()) {\n for (var _i = 0, _a = [cursor, valueCursor]; _i < _a.length; _i++) {\n var bookmark = _a[_i];\n if (bookmark) {\n try {\n localEditor_1.selection.moveToBookmark(bookmark);\n _this.valueCursor = bookmark;\n break;\n }\n catch (e) { /* ignore */ }\n }\n }\n }\n });\n }\n if (this.props.disabled !== prevProps.disabled) {\n var disabled = (_b = this.props.disabled) !== null && _b !== void 0 ? _b : false;\n setMode(this.editor, disabled ? 'readonly' : 'design');\n }\n }\n }\n };\n Editor.prototype.componentDidMount = function () {\n var _this = this;\n var _a, _b, _c, _d, _e;\n if (getTinymce(this.view) !== null) {\n this.initialise();\n }\n else if (Array.isArray(this.props.tinymceScriptSrc) && this.props.tinymceScriptSrc.length === 0) {\n (_b = (_a = this.props).onScriptsLoadError) === null || _b === void 0 ? void 0 : _b.call(_a, new Error('No `tinymce` global is present but the `tinymceScriptSrc` prop was an empty array.'));\n }\n else if ((_c = this.elementRef.current) === null || _c === void 0 ? void 0 : _c.ownerDocument) {\n var successHandler = function () {\n var _a, _b;\n (_b = (_a = _this.props).onScriptsLoad) === null || _b === void 0 ? void 0 : _b.call(_a);\n _this.initialise();\n };\n var errorHandler = function (err) {\n var _a, _b;\n (_b = (_a = _this.props).onScriptsLoadError) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n ScriptLoader.loadList(this.elementRef.current.ownerDocument, this.getScriptSources(), (_e = (_d = this.props.scriptLoading) === null || _d === void 0 ? void 0 : _d.delay) !== null && _e !== void 0 ? _e : 0, successHandler, errorHandler);\n }\n };\n Editor.prototype.componentWillUnmount = function () {\n var _this = this;\n var editor = this.editor;\n if (editor) {\n editor.off(this.changeEvents(), this.handleEditorChange);\n editor.off(this.beforeInputEvent(), this.handleBeforeInput);\n editor.off('keypress', this.handleEditorChangeSpecial);\n editor.off('keydown', this.handleBeforeInputSpecial);\n editor.off('NewBlock', this.handleEditorChange);\n Object.keys(this.boundHandlers).forEach(function (eventName) {\n editor.off(eventName, _this.boundHandlers[eventName]);\n });\n this.boundHandlers = {};\n editor.remove();\n this.editor = undefined;\n }\n };\n Editor.prototype.render = function () {\n return this.inline ? this.renderInline() : this.renderIframe();\n };\n Editor.prototype.changeEvents = function () {\n var _a, _b, _c;\n var isIE = (_c = (_b = (_a = getTinymce(this.view)) === null || _a === void 0 ? void 0 : _a.Env) === null || _b === void 0 ? void 0 : _b.browser) === null || _c === void 0 ? void 0 : _c.isIE();\n return (isIE\n ? 'change keyup compositionend setcontent CommentChange'\n : 'change input compositionend setcontent CommentChange');\n };\n Editor.prototype.beforeInputEvent = function () {\n return isBeforeInputEventAvailable() ? 'beforeinput SelectionChange' : 'SelectionChange';\n };\n Editor.prototype.renderInline = function () {\n var _a = this.props.tagName, tagName = _a === void 0 ? 'div' : _a;\n return React.createElement(tagName, {\n ref: this.elementRef,\n id: this.id\n });\n };\n Editor.prototype.renderIframe = function () {\n return React.createElement('textarea', {\n ref: this.elementRef,\n style: { visibility: 'hidden' },\n name: this.props.textareaName,\n id: this.id\n });\n };\n Editor.prototype.getScriptSources = function () {\n var _a, _b;\n var async = (_a = this.props.scriptLoading) === null || _a === void 0 ? void 0 : _a.async;\n var defer = (_b = this.props.scriptLoading) === null || _b === void 0 ? void 0 : _b.defer;\n if (this.props.tinymceScriptSrc !== undefined) {\n if (typeof this.props.tinymceScriptSrc === 'string') {\n return [{ src: this.props.tinymceScriptSrc, async: async, defer: defer }];\n }\n // multiple scripts can be specified which allows for hybrid mode\n return this.props.tinymceScriptSrc.map(function (item) {\n if (typeof item === 'string') {\n // async does not make sense for multiple items unless\n // they are not dependent (which will be unlikely)\n return { src: item, async: async, defer: defer };\n }\n else {\n return item;\n }\n });\n }\n // fallback to the cloud when the tinymceScriptSrc is not specified\n var channel = this.props.cloudChannel;\n var apiKey = this.props.apiKey ? this.props.apiKey : 'no-api-key';\n var cloudTinyJs = \"https://cdn.tiny.cloud/1/\".concat(apiKey, \"/tinymce/\").concat(channel, \"/tinymce.min.js\");\n return [{ src: cloudTinyJs, async: async, defer: defer }];\n };\n Editor.prototype.getInitialValue = function () {\n if (typeof this.props.initialValue === 'string') {\n return this.props.initialValue;\n }\n else if (typeof this.props.value === 'string') {\n return this.props.value;\n }\n else {\n return '';\n }\n };\n Editor.prototype.bindHandlers = function (prevProps) {\n var _this = this;\n if (this.editor !== undefined) {\n // typescript chokes trying to understand the type of the lookup function\n configHandlers(this.editor, prevProps, this.props, this.boundHandlers, function (key) { return _this.props[key]; });\n // check if we should monitor editor changes\n var isValueControlled = function (p) { return p.onEditorChange !== undefined || p.value !== undefined; };\n var wasControlled = isValueControlled(prevProps);\n var nowControlled = isValueControlled(this.props);\n if (!wasControlled && nowControlled) {\n this.editor.on(this.changeEvents(), this.handleEditorChange);\n this.editor.on(this.beforeInputEvent(), this.handleBeforeInput);\n this.editor.on('keydown', this.handleBeforeInputSpecial);\n this.editor.on('keyup', this.handleEditorChangeSpecial);\n this.editor.on('NewBlock', this.handleEditorChange);\n }\n else if (wasControlled && !nowControlled) {\n this.editor.off(this.changeEvents(), this.handleEditorChange);\n this.editor.off(this.beforeInputEvent(), this.handleBeforeInput);\n this.editor.off('keydown', this.handleBeforeInputSpecial);\n this.editor.off('keyup', this.handleEditorChangeSpecial);\n this.editor.off('NewBlock', this.handleEditorChange);\n }\n }\n };\n Editor.propTypes = EditorPropTypes;\n Editor.defaultProps = {\n cloudChannel: '6'\n };\n return Editor;\n}(React.Component));\nexport { Editor };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as PropTypes from 'prop-types';\nexport var eventPropTypes = {\n onActivate: PropTypes.func,\n onAddUndo: PropTypes.func,\n onBeforeAddUndo: PropTypes.func,\n onBeforeExecCommand: PropTypes.func,\n onBeforeGetContent: PropTypes.func,\n onBeforeRenderUI: PropTypes.func,\n onBeforeSetContent: PropTypes.func,\n onBeforePaste: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onClearUndos: PropTypes.func,\n onClick: PropTypes.func,\n onContextMenu: PropTypes.func,\n onCommentChange: PropTypes.func,\n onCopy: PropTypes.func,\n onCut: PropTypes.func,\n onDblclick: PropTypes.func,\n onDeactivate: PropTypes.func,\n onDirty: PropTypes.func,\n onDrag: PropTypes.func,\n onDragDrop: PropTypes.func,\n onDragEnd: PropTypes.func,\n onDragGesture: PropTypes.func,\n onDragOver: PropTypes.func,\n onDrop: PropTypes.func,\n onExecCommand: PropTypes.func,\n onFocus: PropTypes.func,\n onFocusIn: PropTypes.func,\n onFocusOut: PropTypes.func,\n onGetContent: PropTypes.func,\n onHide: PropTypes.func,\n onInit: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyPress: PropTypes.func,\n onKeyUp: PropTypes.func,\n onLoadContent: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseUp: PropTypes.func,\n onNodeChange: PropTypes.func,\n onObjectResizeStart: PropTypes.func,\n onObjectResized: PropTypes.func,\n onObjectSelected: PropTypes.func,\n onPaste: PropTypes.func,\n onPostProcess: PropTypes.func,\n onPostRender: PropTypes.func,\n onPreProcess: PropTypes.func,\n onProgressState: PropTypes.func,\n onRedo: PropTypes.func,\n onRemove: PropTypes.func,\n onReset: PropTypes.func,\n onSaveContent: PropTypes.func,\n onSelectionChange: PropTypes.func,\n onSetAttrib: PropTypes.func,\n onSetContent: PropTypes.func,\n onShow: PropTypes.func,\n onSubmit: PropTypes.func,\n onUndo: PropTypes.func,\n onVisualAid: PropTypes.func,\n onSkinLoadError: PropTypes.func,\n onThemeLoadError: PropTypes.func,\n onModelLoadError: PropTypes.func,\n onPluginLoadError: PropTypes.func,\n onIconsLoadError: PropTypes.func,\n onLanguageLoadError: PropTypes.func,\n onScriptsLoad: PropTypes.func,\n onScriptsLoadError: PropTypes.func,\n};\nexport var EditorPropTypes = __assign({ apiKey: PropTypes.string, id: PropTypes.string, inline: PropTypes.bool, init: PropTypes.object, initialValue: PropTypes.string, onEditorChange: PropTypes.func, value: PropTypes.string, tagName: PropTypes.string, cloudChannel: PropTypes.string, plugins: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), toolbar: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), disabled: PropTypes.bool, textareaName: PropTypes.string, tinymceScriptSrc: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.shape({\n src: PropTypes.string,\n async: PropTypes.bool,\n defer: PropTypes.bool\n }))\n ]), rollback: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf([false])]), scriptLoading: PropTypes.shape({\n async: PropTypes.bool,\n defer: PropTypes.bool,\n delay: PropTypes.number\n }) }, eventPropTypes);\n","import { Editor } from './components/Editor';\nexport { Editor };\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst commentAuthorAvatar = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n d: \"M7.25 16.437a6.5 6.5 0 1 1 9.5 0V16A2.75 2.75 0 0 0 14 13.25h-4A2.75 2.75 0 0 0 7.25 16v.437Zm1.5 1.193a6.47 6.47 0 0 0 3.25.87 6.47 6.47 0 0 0 3.25-.87V16c0-.69-.56-1.25-1.25-1.25h-4c-.69 0-1.25.56-1.25 1.25v1.63ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm10-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z\",\n clipRule: \"evenodd\"\n })\n});\nexport default commentAuthorAvatar;\n//# sourceMappingURL=comment-author-avatar.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst layout = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z\"\n })\n});\nexport default layout;\n//# sourceMappingURL=layout.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst login = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M11 14.5l1.1 1.1 3-3 .5-.5-.6-.6-3-3-1 1 1.7 1.7H5v1.5h7.7L11 14.5zM16.8 5h-7c-1.1 0-2 .9-2 2v1.5h1.5V7c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v10c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5v-1.5H7.8V17c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2z\"\n })\n});\nexport default login;\n//# sourceMappingURL=login.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst moreVertical = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\"\n })\n});\nexport default moreVertical;\n//# sourceMappingURL=more-vertical.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst post = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"m7.3 9.7 1.4 1.4c.2-.2.3-.3.4-.5 0 0 0-.1.1-.1.3-.5.4-1.1.3-1.6L12 7 9 4 7.2 6.5c-.6-.1-1.1 0-1.6.3 0 0-.1 0-.1.1-.3.1-.4.2-.6.4l1.4 1.4L4 11v1h1l2.3-2.3zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z\"\n })\n});\nexport default post;\n//# sourceMappingURL=post.js.map","import { __ } from '@wordpress/i18n';\nimport { useState, Fragment } from '@wordpress/element';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { ActionsModal } from '../../form-settings/actions/modal';\nimport { integrations, icons } from '../../form-settings/actions/constants';\nimport {\n\tToolbarButton,\n\tToolbarGroup,\n\tToolbarDropdownMenu,\n\tIcon,\n} from '@wordpress/components';\nimport { TemplatesModal } from './templates-modal.js';\nimport { layout } from '@wordpress/icons';\n\nexport function Controls( { attributes, clientId } ) {\n\tconst [ meta ] = useEntityProp(\n\t\t'postType',\n\t\t'formello_form',\n\t\t'meta',\n\t\tattributes.id\n\t);\n\n\tconst [ showActionsModal, setShowActionsModal ] = useState( false );\n\tconst [ showTemplatesModal, setShowTemplatesModal ] = useState( false );\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tsetShowTemplatesModal( 'templates' );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: a.name,\n\t\t\t\t\t\t\ticon: icons[ a.name ],\n\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\tsetShowActionsModal( a );\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t\t{ meta._formello_actions.map( ( a, i ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowActionsModal( a );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\n\t\t\t{ 'templates' === showTemplatesModal && (\n\t\t\t\t setShowTemplatesModal( false ) }\n\t\t\t\t\tblockName={ 'formello/form' }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showActionsModal && (\n\t\t\t\t {\n\t\t\t\t\t\tsetShowActionsModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { InnerBlocks, useBlockProps } from '@wordpress/block-editor';\n\nconst blockAttributes = {\n\tid: {\n\t\ttype: 'string',\n\t},\n\tname: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n\tsuccessMessage: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n\terrorMessage: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n\tredirectUrl: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n\tdebug: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\trecaptchaEnabled: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\trecaptchaVersion: {\n\t\ttype: 'number',\n\t\tdefault: 3,\n\t},\n\tlabelIsBold: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tlabelAlign: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n\trequiredText: {\n\t\ttype: 'string',\n\t\tdefault: '*',\n\t},\n\tstoreSubmissions: {\n\t\ttype: 'boolean',\n\t\tdefault: true,\n\t},\n\thide: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tconstraints: {\n\t\ttype: 'array',\n\t},\n\tfields: {\n\t\ttype: 'array',\n\t},\n\tformSettings: {\n\t\ttype: 'object',\n\t},\n\tasRow: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tactions: {\n\t\ttype: 'array',\n\t\tdefault: [],\n\t},\n};\n\nconst v1 = {\n\tattributes: blockAttributes,\n\tsave( { attributes, className } ) {\n\t\tclassName = classnames(\n\t\t\t//blockProps.className,\n\t\t\tattributes.asRow ? attributes.labelAlign : undefined,\n\t\t\t{\n\t\t\t\t'as-row': attributes.asRow,\n\t\t\t\t'is-bold': attributes.labelIsBold,\n\t\t\t\t'formello-label-right': 'right' === attributes.labelAlign,\n\t\t\t}\n\t\t);\n\t\tconst honeypot = '_formello_h' + attributes.id;\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\n\t\t);\n\t},\n};\n\nconst v2 = {\n\tattributes: blockAttributes,\n\tsave( { attributes, className } ) {\n\t\tclassName = classnames(\n\t\t\t//blockProps.className,\n\t\t\tattributes.asRow ? attributes.labelAlign : undefined,\n\t\t\t{\n\t\t\t\t'as-row': attributes.asRow,\n\t\t\t\t'is-bold': attributes.labelIsBold,\n\t\t\t\t'formello-label-right': 'right' === attributes.labelAlign,\n\t\t\t}\n\t\t);\n\t\tconst honeypot = '_formello_h' + attributes.id;\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\n\t\t);\n\t},\n};\n\nconst v3 = {\n\tattributes: blockAttributes,\n\tsave( { attributes, className } ) {\n\t\tclassName = classnames(\n\t\t\t//blockProps.className,\n\t\t\tattributes.asRow ? attributes.labelAlign : undefined,\n\t\t\t{\n\t\t\t\t'as-row': attributes.asRow,\n\t\t\t\t'is-bold': attributes.labelIsBold,\n\t\t\t\t'formello-label-right': 'right' === attributes.labelAlign,\n\t\t\t}\n\t\t);\n\t\tconst honeypot = '_formello_h' + attributes.id;\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\n\t\t);\n\t},\n};\n\nconst v4 = {\n\tattributes: blockAttributes,\n\tsave( { attributes, className } ) {\n\t\tconst {\n\t\t\tasRow,\n\t\t\tlabelAlign,\n\t\t\tid,\n\t\t\thide,\n\t\t\tcaptchaEnabled,\n\t\t\tcaptchaType,\n\t\t\tredirectUrl,\n\t\t\tautoComplete,\n\t\t\taction,\n\t\t\tenableJsValidation,\n\t\t\tnoValidate,\n\t\t\tlabelIsBold,\n\t\t\tnoAjax,\n\t\t} = attributes;\n\n\t\tconst formClass = classnames( className, {\n\t\t\t'as-row': asRow,\n\t\t\t'formello-label-right': 'right' === labelAlign,\n\t\t\t'is-style-bolded': labelIsBold,\n\t\t} );\n\n\t\tconst honeypot = '_formello_h' + id;\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t},\n};\n\nconst deprecated = [ v4, v3, v2, v1 ];\n\nexport default deprecated;\n","import { Fragment } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tToggleControl,\n\tTextControl,\n\tSelectControl,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tInspectorAdvancedControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tInnerBlocks,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport BlockVariationPicker from './variation-picker';\nimport { Controls } from './controls';\n\nfunction FormEdit( props ) {\n\tconst { attributes, setAttributes, hasInnerBlocks } = props;\n\tconst { requiredText, autoComplete, noValidate } = attributes;\n\n\tconst blockProps = useBlockProps();\n\n\tconst { children, ...innerBlocksProps } = useInnerBlocksProps( blockProps, {\n\t\t//templateLock: false,\n\t\ttemplate: [ [ 'formello/button' ] ],\n\t\trenderAppender: hasInnerBlocks\n\t\t\t? InnerBlocks.DefaultBlockAppender\n\t\t\t: null,\n\t\tprioritizedInserterBlocks: [\n\t\t\t'formello/input',\n\t\t\t'formello/select',\n\t\t\t'formello/textarea',\n\t\t\t'formello/multichoices',\n\t\t],\n\t} );\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { requiredText: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { autoComplete: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Add \"autocomplete\" attribute fo form tag.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { noValidate: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Add \"novalidate\" attribute fo form tag.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\t{ children }\n\t\t
    \n\t);\n}\n\nexport default function Edit( props ) {\n\tconst { clientId } = props;\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock } = select( 'core/block-editor' );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn !! ( block && block.innerBlocks.length );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst Component = hasInnerBlocks ? FormEdit : BlockVariationPicker;\n\n\treturn ;\n}\n","import variations from './variations';\nimport edit from './edit';\nimport save from './save';\nimport deprecated from './deprecated';\nimport metadata from './block.json';\nimport { Form } from '../../icons/icons';\n\nimport { __ } from '@wordpress/i18n';\nimport { registerBlockType } from '@wordpress/blocks';\n\nimport './style.scss';\nimport './editor.scss';\n\nregisterBlockType( metadata, {\n\ticon: Form,\n\tvariations,\n\tsupports: {\n\t\treusable: false,\n\t\thtml: false,\n\t\tlock: false,\n\t\tanchor: true,\n\t\tcolor: true,\n\t\tinteractivity: true,\n\t\tinserter: 'formello_form' === window.pagenow ? true : false,\n\t\tmultiple: 'formello_form' !== window.pagenow ? true : false,\n\t\t// eslint-disable-next-line\n\t\tspacing: {\n\t\t\tpadding: true,\n\t\t},\n\t\ttypography: {\n\t\t\tfontSize: true,\n\t\t\t__experimentalFontWeight: true,\n\t\t\t__experimentalTextDecoration: false,\n\t\t},\n\t},\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'formello/input',\n\t\t\t\tattributes: {\n\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\tlabel: __( 'Name' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'formello/input',\n\t\t\t\tattributes: {\n\t\t\t\t\tlabel: 'Email',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'formello/input',\n\t\t\t\tattributes: {\n\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\tlabel: __( 'Message' ),\n\t\t\t\t\ttype: 'textarea',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'formello/button',\n\t\t\t\tattributes: {\n\t\t\t\t\t/* translators: example text. */\n\t\t\t\t\ttext: __( 'Submit' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\tdeprecated,\n\tedit,\n\tsave,\n} );\n\ndocument.addEventListener( 'DOMContentLoaded', function () {\n\tif ( 'formello_form' === window.pagenow ) {\n\t\t// Your code to run since DOM is loaded and ready\n\t\tconst menuRoot = document.querySelector( '#toplevel_page_formello' );\n\t\tmenuRoot.classList.remove( 'wp-not-current-submenu' );\n\t\tmenuRoot.classList.add(\n\t\t\t'wp-has-current-submenu',\n\t\t\t'wp-menu-open',\n\t\t\t'current'\n\t\t);\n\t\tmenuRoot.querySelector( '.wp-first-item' ).classList.add( 'current' );\n\t}\n} );\n","import { useBlockProps, InnerBlocks } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { noValidate, autoComplete, action } = attributes;\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tstore as blockEditorStore,\n\t__experimentalBlockPatternsList as BlockPatternsList,\n\tBlockContextProvider,\n} from '@wordpress/block-editor';\nimport { Modal, SearchControl, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\nfunction PatternCategoriesList( {\n\tselectedCategory,\n\tpatternCategories,\n\tonClickCategory,\n} ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__sidebar';\n\treturn (\n\t\t
    \n\t\t\t{ [ ...new Set( patternCategories ) ].map( ( category ) => {\n\t\t\t\treturn (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tonClickCategory( category.slug );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t} ) }\n\t\t
    \n\t);\n}\n\nfunction PatternsExplorerSearch( { searchValue, setSearchValue } ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__search';\n\treturn (\n\t\t
    \n\t\t\t\n\t\t
    \n\t);\n}\n\nfunction PatternExplorerSidebar( {\n\tselectedCategory,\n\tpatternCategories,\n\tonClickCategory,\n\tsearchValue,\n\tsetSearchValue,\n} ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__sidebar';\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t{ ! searchValue && (\n\t\t\t\t\n\t\t\t) }\n\t\t
    \n\t);\n}\n\nexport function TemplatesModal( { clientId, blockName, onRequestClose } ) {\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst onBlockPatternSelect = ( pattern ) => {\n\t\treplaceBlock( clientId, pattern.blocks );\n\t};\n\n\tconst [ searchValue, setSearchValue ] = useState();\n\tconst [ selectedCategory, setSelectedCategory ] = useState( 'all' );\n\n\tconst patterns = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn getPatternsByBlockTypes( blockName, rootClientId );\n\t\t},\n\t\t[ clientId, blockName ]\n\t);\n\n\tconst shownPatterns = patterns.filter( ( p ) => {\n\t\tif ( searchValue ) {\n\t\t\treturn p.title.toLowerCase().includes( searchValue );\n\t\t}\n\t\tif ( 'all' === selectedCategory ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn p.categories.includes( selectedCategory );\n\t} );\n\n\tconst patternCategories = [\n\t\t{\n\t\t\tslug: 'all',\n\t\t\tname: __( 'All', 'popper' ),\n\t\t},\n\t\t{\n\t\t\tslug: 'promo',\n\t\t\tname: __( 'Promo', 'popper' ),\n\t\t},\n\t\t{\n\t\t\tslug: 'top-bar',\n\t\t\tname: __( 'Top bar', 'popper' ),\n\t\t},\n\t\t{\n\t\t\tslug: 'ad-block',\n\t\t\tname: __( 'Ad Block', 'popper' ),\n\t\t},\n\t];\n\n\tconst patternCategories2 = patterns\n\t\t.map( ( p ) => {\n\t\t\treturn p.categories;\n\t\t} )\n\t\t.join( ',' )\n\t\t.split( ',' );\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n","/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Button, Placeholder, Flex } from '@wordpress/components';\nimport { layout } from '@wordpress/icons';\nimport { TemplatesModal } from './templates-modal.js';\nimport { useState } from '@wordpress/element';\nimport { useSelect, dispatch, select } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport {\n\tstore as blocksStore,\n\tcreateBlocksFromInnerBlocksTemplate,\n} from '@wordpress/blocks';\n\nfunction BlockVariationPicker( props ) {\n\tconst { clientId, setAttributes, name } = props;\n\tconst [ isModalOpen, setModalOpen ] = useState( false );\n\tconst { replaceInnerBlocks } = dispatch( 'core/block-editor' );\n\n\tconst { getBlockVariations, getDefaultBlockVariation } =\n\t\tselect( blocksStore );\n\n\tconst variations = useSelect( () => {\n\t\treturn getBlockVariations( 'formello/form', 'block' );\n\t} );\n\n\tconst defaultVariation = useSelect( () => {\n\t\treturn typeof getDefaultBlockVariation === 'undefined'\n\t\t\t? null\n\t\t\t: getDefaultBlockVariation( name );\n\t} );\n\n\tconst classes = clsx( 'block-editor-block-variation-picker', {\n\t\t'has-many-variations': variations.length > 4,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tconst onSelect = ( nextVariation = defaultVariation ) => {\n\t\tif ( nextVariation.attributes ) {\n\t\t\tsetAttributes( nextVariation.attributes );\n\t\t}\n\t\tif ( nextVariation.innerBlocks ) {\n\t\t\treplaceInnerBlocks(\n\t\t\t\tprops.clientId,\n\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t),\n\t\t\t\ttrue\n\t\t\t);\n\t\t}\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{ /*\n\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\n\t\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t onSelect( variation ) }\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-variation-picker__variation\"\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tvariation.description || variation.title\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{ variation.title }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t) ) }\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetModalOpen( 'templates' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Open Library', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t{ 'templates' === isModalOpen && (\n\t\t\t\t\t setModalOpen( false ) }\n\t\t\t\t\t\tblockName={ name }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\n\t\t
    \n\t);\n}\n\nexport default BlockVariationPicker;\n","import { Path, SVG } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nconst variations = [\n\t{\n\t\tname: 'blank',\n\t\ttitle: __( 'Blank' ),\n\t\tdescription: __( 'Blank form' ),\n\t\ticon: (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\tisDefault: true,\n\t\tinnerBlocks: [ [ 'core/paragraph' ], [ 'formello/button' ] ],\n\t\tscope: [ 'block' ],\n\t},\n\t{\n\t\tname: 'contact',\n\t\ttitle: __( 'Contact' ),\n\t\tdescription: __( 'A simple contact form' ),\n\t\ticon: (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\tinnerBlocks: [\n\t\t\t[ 'formello/input', { type: 'text', label: 'Name', name: 'name' } ],\n\t\t\t[\n\t\t\t\t'formello/input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'email',\n\t\t\t\t\tlabel: 'Email',\n\t\t\t\t\tname: 'email',\n\t\t\t\t\trequired: true,\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'formello/input',\n\t\t\t\t{ type: 'text', label: 'Subject', name: 'subject' },\n\t\t\t],\n\t\t\t[\n\t\t\t\t'formello/textarea',\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Message',\n\t\t\t\t\tname: 'message',\n\t\t\t\t\trows: 5,\n\t\t\t\t},\n\t\t\t],\n\t\t\t[ 'formello/button', { txt: 'Send' } ],\n\t\t],\n\t\tscope: [ 'block' ],\n\t},\n\t{\n\t\tname: 'event',\n\t\ttitle: __( 'Event' ),\n\t\tdescription: __( 'Book event form' ),\n\t\ticon: (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\tinnerBlocks: [\n\t\t\t[\n\t\t\t\t'core/group',\n\t\t\t\t{\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\ttype: 'flex',\n\t\t\t\t\t\tflexWrap: 'wrap',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\t[\n\t\t\t\t\t\t'formello/input',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\tlabel: 'First Name',\n\t\t\t\t\t\t\tname: 'name',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t[\n\t\t\t\t\t\t'formello/input',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\tlabel: 'Last Name',\n\t\t\t\t\t\t\tname: 'last_name',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t],\n\t\t\t],\n\t\t\t[\n\t\t\t\t'formello/input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'email',\n\t\t\t\t\tlabel: 'Email',\n\t\t\t\t\tname: 'email',\n\t\t\t\t\trequired: true,\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'formello/input',\n\t\t\t\t{ type: 'tel', label: 'Phone', name: 'phone', required: true },\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/group',\n\t\t\t\t{\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\ttype: 'flex',\n\t\t\t\t\t\tflexWrap: 'wrap',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\t[\n\t\t\t\t\t\t'formello/input',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: 'date',\n\t\t\t\t\t\t\tlabel: 'Date',\n\t\t\t\t\t\t\tname: 'date',\n\t\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t[\n\t\t\t\t\t\t'formello/input',\n\t\t\t\t\t\t{ type: 'time', label: 'Hour', name: 'hour' },\n\t\t\t\t\t],\n\t\t\t\t],\n\t\t\t],\n\t\t\t[\n\t\t\t\t'formello/textarea',\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Message',\n\t\t\t\t\tname: 'message',\n\t\t\t\t\trows: 5,\n\t\t\t\t},\n\t\t\t],\n\t\t\t[ 'formello/button', { txt: 'Book appointment' } ],\n\t\t],\n\t\tscope: [ 'block' ],\n\t},\n];\n\nexport default variations;\n","import { applyFilters } from '@wordpress/hooks';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nconst allowed = [\n\t'formello/input',\n\t'formello/select',\n\t'formello/textarea',\n\t'formello/multichoices',\n];\n\n/**\n * Find the input fields blocks IDS.\n */\nexport function getFieldsBlock() {\n\tconst fields = [];\n\tconst inputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/input' );\n\tconst textareas =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/textarea' );\n\tconst selects =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/select' );\n\tconst outputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/output' );\n\tconst multichoices = select( blockEditorStore ).getBlocksByName(\n\t\t'formello/multichoices'\n\t);\n\n\tconst fieldsId = inputs.concat( textareas, selects, outputs, multichoices );\n\n\tfieldsId.forEach( ( b ) => {\n\t\tconst block = select( blockEditorStore ).getBlock( b );\n\t\tif ( allowed.includes( block.name ) ) {\n\t\t\tfields.push( block );\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Validate form before saving\n */\nexport function validate() {\n\tconst fields = {\n\t\tnames: [],\n\t\tbuttons:\n\t\t\tselect( blockEditorStore ).getBlocksByName( 'formello/button' ),\n\t};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.names.push( b.attributes.name );\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Get fields type.\n */\nexport function getFieldsType() {\n\tconst fields = {};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\t// get block type by name\n\t\tlet type = b.name.split( '/' )[ 1 ];\n\t\tif ( 'input' === type ) {\n\t\t\ttype = b.attributes.type;\n\t\t}\n\n\t\tfields[ b.attributes.name ] = type;\n\t\tif ( b.attributes.advanced && 'textarea' === 'textarea' ) {\n\t\t\tfields[ b.attributes.name ] = 'richtext';\n\t\t}\n\t\tif ( b.attributes.multiple && 'select' === type ) {\n\t\t\tfields[ b.attributes.name ] = type + '-multiple';\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFields() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\ttitle: b.attributes.name,\n\t\t\ttag: '{{fields.' + b.attributes.name + '}}',\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFieldsName() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\tlabel: b.attributes.name,\n\t\t\tvalue: b.attributes.name,\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function getFieldsTags() {\n\tconst fields = serializeFields();\n\n\treturn [\n\t\t{\n\t\t\ttitle: 'All Data',\n\t\t\ttag: '{{fields.all_data}}',\n\t\t},\n\t\t...fields,\n\t];\n}\n\nexport function getConstraints() {\n\tconst constraints = {};\n\tconst fields = getFieldsBlock();\n\n\tif ( fields ) {\n\t\tfields.forEach( ( b ) => {\n\t\t\tconst constraint = getFieldConstraint( b );\n\t\t\tlet name = b.attributes.name;\n\n\t\t\tif ( b.attributes.multiple ) {\n\t\t\t\tname += '.*';\n\t\t\t}\n\t\t\tif ( constraint ) {\n\t\t\t\tconstraints[ name ] = constraint;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn constraints;\n}\n\nexport function getFieldConstraint( field ) {\n\tlet constraints = [];\n\n\tif ( field.attributes.type === 'url' ) {\n\t\tconstraints.push( 'url' );\n\t}\n\n\tif ( field.attributes.required ) {\n\t\tconstraints.push( 'required' );\n\t}\n\n\tif ( field.attributes.minlength ) {\n\t\tconstraints.push( 'minlength:' + field.attributes.minlength );\n\t}\n\n\tif ( field.attributes.maxlength ) {\n\t\tconstraints.push( 'maxlength:' + field.attributes.maxlength );\n\t}\n\n\tif ( field.attributes.min && 'date' !== field.attributes.type ) {\n\t\tconstraints.push( 'min:' + field.attributes.min );\n\t}\n\n\tif (\n\t\tfield.attributes.max &&\n\t\t'date' !== field.attributes.type &&\n\t\t'file' !== field.attributes.type\n\t) {\n\t\tconstraints.push( 'max:' + field.attributes.max );\n\t}\n\n\tif ( field.attributes.type === 'email' ) {\n\t\tconstraints.push( 'email' );\n\t}\n\n\tif (\n\t\tfield.attributes.type === 'number' ||\n\t\tfield.attributes.type === 'range'\n\t) {\n\t\tconstraints.push( 'numeric' );\n\t}\n\n\tif ( 'date' === field.attributes.type && ! field.attributes.advanced ) {\n\t\tconstraints.push( 'date' );\n\t}\n\n\tif ( field.attributes.pattern ) {\n\t\tconst regEx = new RegExp( field.attributes.pattern );\n\t\tconstraints.push( 'regex:' + regEx );\n\t}\n\n\tif ( field.attributes.enableMismatch && '' !== field.attributes.match ) {\n\t\tconstraints.push( 'same:' + field.attributes.match );\n\t}\n\n\tapplyFilters( 'formello.constraints', constraints, field );\n\n\tif ( constraints.length ) {\n\t\tconstraints = constraints.join( '|' );\n\t}\n\n\treturn constraints.length ? constraints : undefined;\n}\n\nexport function getMetaTags() {\n\tconst postType = select( 'core/editor' ).getCurrentPostType();\n\tconst postId = select( 'core/editor' ).getCurrentPostId();\n\n\tconst [ meta ] = useEntityProp( 'postType', postType, 'meta', postId );\n\tconst metaTags = [];\n\n\tfor ( const key in meta ) {\n\t\tif ( meta[ key ] !== Object( key ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst tag = {\n\t\t\ttitle: key,\n\t\t\ttag: `{{meta.${ key }}}`,\n\t\t};\n\t\tmetaTags.push( tag );\n\t}\n\n\treturn metaTags;\n}\n\nexport function getWordpressTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Post ID',\n\t\t\ttag: `{{wp.post_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Title',\n\t\t\ttag: `{{wp.post_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post URL',\n\t\t\ttag: `{{wp.post_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author',\n\t\t\ttag: `{{wp.post_author}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author Email',\n\t\t\ttag: `{{wp.post_author_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User ID',\n\t\t\ttag: `{{wp.user_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User First Name',\n\t\t\ttag: `{{wp.user_first_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Last Name',\n\t\t\ttag: `{{wp.user_last_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Display Name',\n\t\t\ttag: `{{wp.user_display_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Username',\n\t\t\ttag: `{{wp.user_username}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Email',\n\t\t\ttag: `{{wp.user_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User URL',\n\t\t\ttag: `{{wp.user_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site Title',\n\t\t\ttag: `{{wp.site_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site URL',\n\t\t\ttag: `{{wp.site_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Admin Email',\n\t\t\ttag: `{{wp.admin_email}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getFormTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Form ID',\n\t\t\ttag: `{{form.form_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Form Label',\n\t\t\ttag: `{{form.form_name}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getOtherTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Date',\n\t\t\ttag: `{{other.system_date}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Time',\n\t\t\ttag: `{{other.system_time}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Referrer URL',\n\t\t\ttag: `{{other.referrer}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User IP',\n\t\t\ttag: `{{other.user_ip}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getPatternTabs() {\n\tconst passwords = [\n\t\t{\n\t\t\ttitle: 'Password',\n\t\t\ttag: `^(?=.*[A-Za-z])(?=.*\\\\d)[A-Za-z\\\\d]{8,}$`,\n\t\t\tdescription: 'One uppercase, one number, at least 8 chars',\n\t\t},\n\t\t{\n\t\t\ttitle: 'Password with special characters',\n\t\t\ttag: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$`,\n\t\t\tdescription:\n\t\t\t\t'One uppercase, one number, one special chars, at least 8 chars',\n\t\t},\n\t];\n\n\tconst dates = [\n\t\t{\n\t\t\ttitle: 'dd/mm/yyyy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{4}$',\n\t\t},\n\t\t{\n\t\t\ttitle: 'dd/mm/yy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{2}$',\n\t\t},\n\t];\n\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'passwords',\n\t\t\ttitle: 'Passwords',\n\t\t\tdata: passwords,\n\t\t},\n\t\t{\n\t\t\tname: 'dates',\n\t\t\ttitle: 'Dates',\n\t\t\tdata: dates,\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport {\n\tBaseControl,\n\tDropdownMenu,\n\t__experimentalInputControl as InputControl,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { defaultTabs } from './use-tabs';\nimport TabContent from './tab-content';\n\nexport default function MergeTags( props ) {\n\tconst {\n\t\tlabel,\n\t\tvalue,\n\t\tplaceholder,\n\t\thelp,\n\t\tonChange,\n\t\ticon = moreVertical,\n\t\tclientId,\n\t\ttabs = defaultTabs( clientId ),\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) }\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t\n\t);\n}\n\nexport function MergeTagsMenu( props ) {\n\tconst { label, onChange, icon = moreVertical, clientId } = props;\n\n\tconst tabs = defaultTabs( clientId );\n\n\treturn (\n\t\t\n\t\t\t{ () => }\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { SearchControl, TabPanel, MenuItem } from '@wordpress/components';\nimport { useState, Fragment } from '@wordpress/element';\n\nexport default function TabContent( { tabs, onChange } ) {\n\tconst [ searchInput, setSearchInput ] = useState( '' );\n\n\tconst filterAddon = ( element ) => {\n\t\tif ( '' === searchInput ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn (\n\t\t\telement.title.toLowerCase().search( searchInput.toLowerCase() ) !==\n\t\t\t-1\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ ( tab ) =>\n\t\t\t\t\ttab.data\n\t\t\t\t\t\t.filter( ( element ) => {\n\t\t\t\t\t\t\treturn filterAddon( element );\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.map( ( data ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t onChange( data.tag ) }\n\t\t\t\t\t\t\t\t\tinfo={ data.description }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ data.title }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n}\n","import {\n\tgetFieldsTags,\n\tgetWordpressTags,\n\tgetOtherTags,\n\tgetMetaTags,\n} from './functions';\n\nexport function defaultTabs( clientId ) {\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'fields',\n\t\t\ttitle: 'Fields',\n\t\t\tdata: getFieldsTags( clientId ),\n\t\t},\n\t\t{\n\t\t\tname: 'wordpress',\n\t\t\ttitle: 'WordPress',\n\t\t\tdata: getWordpressTags(),\n\t\t},\n\t\t{\n\t\t\tname: 'other',\n\t\t\ttitle: 'Other',\n\t\t\tdata: getOtherTags(),\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","import { __ } from '@wordpress/i18n';\nimport {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tButton,\n\twithFilters,\n} from '@wordpress/components';\n\nexport const Promo = withFilters( 'formello.modal.promo' )( () => {\n\treturn (\n\t\t
    \n\t\t\t

    \n\t\t\t\t{ __(\n\t\t\t\t\t'This action is available only for pro users. You can try one month free.',\n\t\t\t\t\t'formello'\n\t\t\t\t) }\n\t\t\t

    \n\t\t\t\n\t\t\t\t{ __( 'Try it now free!', 'formello' ) }\n\t\t\t\n\t\t
    \n\t);\n} );\n\nexport const PromoSettings = withFilters( 'formello.settings.promo' )( () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

    { __( 'Go Pro', 'formello' ) }

    \n\t\t\t
    \n\t\t\t\n\t\t\t\t

    { __( 'Empower your forms with our PRO extensions.' ) }

    \n\t\t\t\t
      \n\t\t\t\t\t
    • { __( 'Conditional fields', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'File upload', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Frontend posting', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Login form', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Search autosuggest', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Calculator formula', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Web Hooks', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Mail marketing integration', 'formello' ) }
    • \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n} );\n","import { ReactComponent as MailPoet } from '../../../assets/integrations/mailpoet.svg';\nimport { ReactComponent as Mailchimp } from '../../../assets/integrations/mailchimp.svg';\nimport { ReactComponent as Moosend } from '../../../assets/integrations/moosend.svg';\nimport { ReactComponent as ConvertKit } from '../../../assets/integrations/convertkit.svg';\nimport { ReactComponent as GetResponse } from '../../../assets/integrations/getresponse.svg';\nimport { ReactComponent as Brevo } from '../../../assets/integrations/brevo.svg';\nimport { ReactComponent as MailerLite } from '../../../assets/integrations/mailerlite.svg';\nimport { ReactComponent as Email } from '../../../assets/integrations/email.svg';\nimport { ReactComponent as WebHook } from '../../../assets/integrations/webhook.svg';\nimport {\n\tpost as FrontendPosting,\n\tlogin as Login,\n\tcommentAuthorAvatar as Registration,\n} from '@wordpress/icons';\n\nexport const icons = {\n\tConvertKit,\n\tMailchimp,\n\tMailPoet,\n\tMoosend,\n\tMailerLite,\n\tGetResponse,\n\tBrevo,\n\tEmail,\n\tWebHook,\n\tFrontendPosting,\n\tLogin,\n\tRegistration,\n};\n\nexport const integrations = [\n\t{\n\t\tasync: true,\n\t\ttype: 'email',\n\t\tname: 'Email',\n\t\tto: '',\n\t\tfrom: '',\n\t\tcc: '',\n\t\tbcc: '',\n\t\treplyTo: '',\n\t\tsubject: '',\n\t\tmessage: '',\n\t\tadvanced: false,\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'ConvertKit',\n\t\tname: 'ConvertKit',\n\t\tapiUrl: 'https://www.convertkit.com/help/where-to-find-the-convertkit-api-key-groupid-and-documentation',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'GetResponse',\n\t\tname: 'GetResponse',\n\t\tapiUrl: 'https://www.getresponse.com/help/where-do-i-find-the-api-key.html',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Mailchimp',\n\t\tname: 'Mailchimp',\n\t\tapiUrl: 'https://mailchimp.com/help/about-api-keys/',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'MailerLite',\n\t\tname: 'MailerLite',\n\t\tapiUrl: 'https://www.mailerlite.com/help/where-to-find-the-mailerlite-api-key-groupid-and-documentation',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'MailPoet',\n\t\tname: 'MailPoet',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Moosend',\n\t\tname: 'Moosend',\n\t\tapiUrl: 'https://help.moosend.com/hc/en-us/articles/4403735862674-Find-the-API-key-of-your-account',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Brevo',\n\t\tname: 'Brevo',\n\t\tapiUrl: 'https://developers.brevo.com/docs/getting-started',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'WebHook',\n\t\tname: 'WebHook',\n\t\tapiUrl: '',\n\t\turl: '',\n\t\tmethod: 'POST',\n\t\tadditionalHeaders: false,\n\t\tfields: [],\n\t\theaders: [],\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'frontend-posting',\n\t\tname: 'FrontendPosting',\n\t\tpostarr: {\n\t\t\tpost_type: 'post',\n\t\t\tpost_title: '',\n\t\t\tpost_content: '',\n\t\t\tpost_excerpt: '',\n\t\t\ttax_input: [],\n\t\t\tmeta_input: [],\n\t\t},\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'login',\n\t\tname: 'Login',\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'registration',\n\t\tname: 'Registration',\n\t},\n];\n","import { addFilter } from '@wordpress/hooks';\n\nimport {\n\tToggleControl,\n\tBaseControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\nimport MergeTags, { MergeTagsMenu } from '../../components/merge-tags';\nimport { Editor } from '@tinymce/tinymce-react';\n\nexport default function Email( content, clientId, action, handleUpdate ) {\n\tconst id = `editor-${ clientId }`;\n\n\tconst { settings } = window.wpEditorL10n.tinymce;\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'from', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'to', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'advanced', val );\n\t\t\t\t} }\n\t\t\t\tchecked={ action.advanced }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\n\t\t\t{ action.advanced && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\thandleUpdate( 'cc', val );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\n\t\t\t\t\t {\n\t\t\t\t\t\t\thandleUpdate( 'bcc', val );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'replyTo', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'subject', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Message', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\thandleUpdate( 'message', action.message + val );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t handleUpdate( 'message', val ) }\n\t\t\t\t/>\n\t\t\t\n\t\t\n\t);\n}\n\naddFilter( 'formello.modal.email', 'formello/actions-email', Email );\n\nfunction withComponentAppended( FilteredComponent ) {\n\treturn ( props ) => {\n\t\tconst { settings } = props;\n\t\tif ( 'email' === settings.type ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n}\n\naddFilter(\n\t'formello.modal.test',\n\t'formello/actions-email-promo',\n\twithComponentAppended\n);\n","import { addFilter } from '@wordpress/hooks';\nimport './email';\n\nfunction withComponentAppended( FilteredComponent ) {\n\treturn ( props ) => {\n\t\tconst { settings } = props;\n\t\tif ( 'email' === settings.type ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n}\n\naddFilter(\n\t'formello.modal.test',\n\t'formello/actions-email-promo',\n\twithComponentAppended\n);\n","import { Fragment, useState, useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { useEntityProp } from '@wordpress/core-data';\nimport {\n\tModal,\n\tButton,\n\tIcon,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { applyFilters } from '@wordpress/hooks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { icons } from './constants';\nimport MergeTags from '../../components/merge-tags';\nimport { Promo } from '../../components/promo';\nimport './filters';\n\nexport function ActionsModal( props ) {\n\tconst { onRequestClose, settings, clientId } = props;\n\n\tconst [ action, setAction ] = useState( Object.assign( {}, settings ) );\n\n\tconst updateSettings = ( prop, val ) => {\n\t\tsetAction( { ...action, [ prop ]: val } );\n\t};\n\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t};\n\t}, [] );\n\n\tconst [ meta, setMeta ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tconst setActions = useCallback( ( actions ) => {\n\t\tsetMeta( {\n\t\t\t...meta,\n\t\t\t_formello_actions: actions,\n\t\t} );\n\t}, [] );\n\n\tconst save = ( item ) => {\n\t\tif ( ! item.id ) {\n\t\t\tconst newItem = Object.assign( item, {\n\t\t\t\tid: meta._formello_actions.length + 1,\n\t\t\t} );\n\t\t\tconst actions = [ ...meta._formello_actions, newItem ];\n\t\t\tsetActions( actions );\n\t\t} else {\n\t\t\tconst actions = meta._formello_actions.map( ( el ) =>\n\t\t\t\tel.id === item.id ? { ...el, ...item } : el\n\t\t\t);\n\t\t\tsetActions( actions );\n\t\t}\n\t\tonRequestClose( false );\n\t};\n\n\tconst remove = ( item ) => {\n\t\tconst actions = meta._formello_actions.filter( ( o ) => {\n\t\t\treturn o.id !== item.id;\n\t\t} );\n\t\tsetActions( actions );\n\t\tonRequestClose( false );\n\t};\n\n\treturn (\n\t\t\n\t\t\t\t\t\n\t\t\t\t\t{ settings.name }\n\t\t\t\t\n\t\t\t}\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\tsize=\"large\"\n\t\t>\n\t\t\t
    \n\t\t\t\t{ 'email' !== settings.type && (\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\t\n\t\t\t\t\t{ applyFilters(\n\t\t\t\t\t\t'formello.modal.' + settings.type,\n\t\t\t\t\t\t'',\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\taction,\n\t\t\t\t\t\tupdateSettings,\n\t\t\t\t\t\tMergeTags\n\t\t\t\t\t) }\n\n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsave( action );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t\t{ settings.id && (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\twindow.confirm(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of form action */\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t`Delete action %s?`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tsettings.name\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tremove( action );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Delete', 'formello' ) }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) }\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n","import { ReactComponent as Asterisk } from '../../assets/icons/asterisk.svg';\nimport { ReactComponent as Checkbox } from '../../assets/icons/checkbox.svg';\nimport { ReactComponent as Calendar } from '../../assets/icons/date-field.svg';\nimport { ReactComponent as Checkboxes } from '../../assets/icons/checkboxes.svg';\nimport { ReactComponent as Clock } from '../../assets/icons/clock-field.svg';\nimport { ReactComponent as Color } from '../../assets/icons/color-field.svg';\nimport { ReactComponent as Email } from '../../assets/icons/email-field.svg';\nimport { ReactComponent as Fieldset } from '../../assets/icons/fieldset.svg';\nimport { ReactComponent as Form } from '../../assets/icons/form.svg';\nimport { ReactComponent as GDPR } from '../../assets/icons/gdpr-field.svg';\nimport { ReactComponent as Hidden } from '../../assets/icons/hidden-field.svg';\nimport { ReactComponent as Input } from '../../assets/icons/text-field.svg';\nimport { ReactComponent as Logo } from '../../assets/icons/logo.svg';\nimport { ReactComponent as Number } from '../../assets/icons/number-field.svg';\nimport { ReactComponent as Password } from '../../assets/icons/password-field.svg';\nimport { ReactComponent as Range } from '../../assets/icons/range-field.svg';\nimport { ReactComponent as Radio } from '../../assets/icons/radio-field.svg';\nimport { ReactComponent as Radios } from '../../assets/icons/radio-buttons.svg';\nimport { ReactComponent as Select } from '../../assets/icons/select.svg';\nimport { ReactComponent as Tel } from '../../assets/icons/phone-field.svg';\nimport { ReactComponent as Textarea } from '../../assets/icons/textarea-field.svg';\nimport { ReactComponent as Url } from '../../assets/icons/url-field.svg';\n\nexport {\n\tAsterisk,\n\tCheckbox,\n\tCheckboxes,\n\tClock,\n\tColor,\n\tEmail,\n\tFieldset,\n\tForm,\n\tGDPR,\n\tHidden,\n\tInput,\n\tLogo,\n\tNumber,\n\tPassword,\n\tRadio,\n\tRange,\n\tRadios,\n\tSelect,\n\tTel,\n\tTextarea,\n\tUrl,\n\tCalendar,\n};\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"hooks\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"primitives\"];","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"blocks/form/index\": 0,\n\t\"blocks/form/style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkformello\"] = self[\"webpackChunkformello\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"blocks/form/style-index\"], () => (__webpack_require__(\"./src/blocks/form/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["__","useState","Fragment","useEntityProp","ActionsModal","integrations","icons","ToolbarButton","ToolbarGroup","ToolbarDropdownMenu","Icon","TemplatesModal","layout","jsx","_jsx","jsxs","_jsxs","Controls","attributes","clientId","meta","id","showActionsModal","setShowActionsModal","showTemplatesModal","setShowTemplatesModal","children","label","icon","onClick","controls","map","a","title","name","_formello_actions","i","onRequestClose","blockName","settings","className","classnames","InnerBlocks","useBlockProps","blockAttributes","type","default","successMessage","errorMessage","redirectUrl","debug","recaptchaEnabled","recaptchaVersion","labelIsBold","labelAlign","requiredText","storeSubmissions","hide","constraints","fields","formSettings","asRow","actions","v1","save","undefined","honeypot","method","noValidate","value","autoComplete","Content","v2","v3","v4","captchaEnabled","captchaType","action","enableJsValidation","noAjax","formClass","tabIndex","deprecated","ToggleControl","TextControl","SelectControl","useSelect","InspectorAdvancedControls","useInnerBlocksProps","BlockControls","BlockVariationPicker","FormEdit","props","setAttributes","hasInnerBlocks","blockProps","innerBlocksProps","template","renderAppender","DefaultBlockAppender","prioritizedInserterBlocks","onChange","val","__nextHasNoMarginBottom","options","help","checked","Edit","select","getBlock","block","innerBlocks","length","Component","variations","edit","metadata","Form","registerBlockType","supports","reusable","html","lock","anchor","color","interactivity","inserter","window","pagenow","multiple","spacing","padding","typography","fontSize","__experimentalFontWeight","__experimentalTextDecoration","example","text","document","addEventListener","menuRoot","querySelector","classList","remove","add","useDispatch","store","blockEditorStore","__experimentalBlockPatternsList","BlockPatternsList","BlockContextProvider","Modal","SearchControl","Button","PatternCategoriesList","selectedCategory","patternCategories","onClickCategory","baseClassName","Set","category","isPressed","slug","PatternsExplorerSearch","searchValue","setSearchValue","placeholder","PatternExplorerSidebar","replaceBlock","onBlockPatternSelect","pattern","blocks","setSelectedCategory","patterns","getBlockRootClientId","getPatternsByBlockTypes","rootClientId","shownPatterns","filter","p","toLowerCase","includes","categories","patternCategories2","join","split","isFullScreen","closeLabel","postType","blockPatterns","onClickPattern","clsx","Placeholder","Flex","dispatch","blocksStore","createBlocksFromInnerBlocksTemplate","isModalOpen","setModalOpen","replaceInnerBlocks","getBlockVariations","getDefaultBlockVariation","defaultVariation","classes","onSelect","nextVariation","instructions","role","variation","isSecondary","iconSize","description","justify","isPrimary","isLink","Path","SVG","width","height","viewBox","xmlns","fillRule","clipRule","d","isDefault","scope","required","rows","txt","flexWrap","applyFilters","allowed","getFieldsBlock","inputs","getBlocksByName","textareas","selects","outputs","multichoices","fieldsId","concat","forEach","b","push","validate","names","buttons","fieldsBlock","getFieldsType","advanced","serializeFields","tag","serializeFieldsName","getFieldsTags","getConstraints","constraint","getFieldConstraint","field","minlength","maxlength","min","max","regEx","RegExp","enableMismatch","match","getMetaTags","getCurrentPostType","postId","getCurrentPostId","metaTags","key","Object","getWordpressTags","tags","getFormTags","getOtherTags","getPatternTabs","passwords","dates","tabs","data","BaseControl","DropdownMenu","__experimentalInputControl","InputControl","moreVertical","defaultTabs","TabContent","MergeTags","suffix","toggleProps","isSmall","size","MergeTagsMenu","TabPanel","MenuItem","searchInput","setSearchInput","filterAddon","element","search","tab","info","Card","CardHeader","CardBody","withFilters","Promo","variant","href","iconPosition","target","PromoSettings","ReactComponent","MailPoet","Mailchimp","Moosend","ConvertKit","GetResponse","Brevo","MailerLite","Email","WebHook","post","FrontendPosting","login","Login","commentAuthorAvatar","Registration","async","to","from","cc","bcc","replyTo","subject","message","apiUrl","url","additionalHeaders","headers","postarr","post_type","post_title","post_content","post_excerpt","tax_input","meta_input","addFilter","__experimentalHStack","HStack","Editor","_Fragment","content","handleUpdate","wpEditorL10n","tinymce","VisualLabel","init","menubar","plugins","toolbar","toolbar1","toolbar2","onEditorChange","withComponentAppended","FilteredComponent","useCallback","sprintf","setAction","assign","updateSettings","prop","setMeta","setActions","item","newItem","el","o","shouldCloseOnClickOutside","mergeTags","isDestructive","confirm","Asterisk","Checkbox","Calendar","Checkboxes","Clock","Color","Fieldset","GDPR","Hidden","Input","Logo","Number","Password","Range","Radio","Radios","Select","Tel","Textarea","Url"],"sourceRoot":""} \ No newline at end of file diff --git a/build/blocks/form/style-index-rtl.css b/build/blocks/form/style-index-rtl.css index be1fe7a5..1520e3c9 100644 --- a/build/blocks/form/style-index-rtl.css +++ b/build/blocks/form/style-index-rtl.css @@ -1,30 +1,6 @@ /*!***************************************************************************************************************************************************************************************************************************************************!*\ !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/form/style.scss ***! \***************************************************************************************************************************************************************************************************************************************************/ -.formello-message { - display: none; - box-sizing: border-box; - padding: 1em; -} -.formello-message p { - margin: 0; -} -.formello-message.success { - display: block; - background-color: #dff0d8; - border: 1px solid #d0e9c6; - color: #3c763d; -} -.formello-message.error:has(p:not(:empty)) { - display: block; - background-color: #fcf8e3; - border: 1px solid #faf2cc; - color: #8a6d3b; -} -.formello-message ul:not(:has(li)) { - display: none; -} - .wp-block-formello-form { display: flex; flex-direction: row; @@ -36,7 +12,7 @@ .wp-block-formello-form > .wp-block-formello-select, .wp-block-formello-form > .wp-block-formello-textarea, .wp-block-formello-form > .wp-block-formello-fieldset, -.wp-block-formello-form .formello-message { +.wp-block-formello-form > .wp-block-formello-multichoices { flex-basis: 100%; } .wp-block-formello-form > .wp-block-formello-input .wp-block-formello-button, .wp-block-formello-form > .wp-block-formello-input .wp-block-formello-output, @@ -46,10 +22,14 @@ .wp-block-formello-form > .wp-block-formello-textarea .wp-block-formello-output, .wp-block-formello-form > .wp-block-formello-fieldset .wp-block-formello-button, .wp-block-formello-form > .wp-block-formello-fieldset .wp-block-formello-output, -.wp-block-formello-form .formello-message .wp-block-formello-button, -.wp-block-formello-form .formello-message .wp-block-formello-output { +.wp-block-formello-form > .wp-block-formello-multichoices .wp-block-formello-button, +.wp-block-formello-form > .wp-block-formello-multichoices .wp-block-formello-output { align-self: stretch; } +.wp-block-formello-form .formello-message, +.wp-block-formello-form .formello-debug { + flex-basis: 100%; +} .wp-block-formello-form .formello-hp { position: absolute !important; right: -5000px; @@ -61,3 +41,34 @@ color: red; order: 4; } +.wp-block-formello-form input:user-invalid { + border-color: red; +} + +.formello-message { + display: none; + box-sizing: border-box; + padding: 1em; +} +.formello-message p { + margin: 0; +} +.formello-message.success { + display: block; + background-color: #dff0d8; + border: 1px solid #d0e9c6; + color: #3c763d; +} +.formello-message.error:has(p:not(:empty)) { + display: block; + background-color: #fcf8e3; + border: 1px solid #faf2cc; + color: #8a6d3b; +} +.formello-message ul:not(:has(li)) { + display: none; +} + +.formello-debug pre { + white-space: break-spaces; +} diff --git a/build/blocks/form/style-index.css b/build/blocks/form/style-index.css index 9dad6f2c..87a785e1 100644 --- a/build/blocks/form/style-index.css +++ b/build/blocks/form/style-index.css @@ -1,30 +1,6 @@ /*!***************************************************************************************************************************************************************************************************************************************************!*\ !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/blocks/form/style.scss ***! \***************************************************************************************************************************************************************************************************************************************************/ -.formello-message { - display: none; - box-sizing: border-box; - padding: 1em; -} -.formello-message p { - margin: 0; -} -.formello-message.success { - display: block; - background-color: #dff0d8; - border: 1px solid #d0e9c6; - color: #3c763d; -} -.formello-message.error:has(p:not(:empty)) { - display: block; - background-color: #fcf8e3; - border: 1px solid #faf2cc; - color: #8a6d3b; -} -.formello-message ul:not(:has(li)) { - display: none; -} - .wp-block-formello-form { display: flex; flex-direction: row; @@ -36,7 +12,7 @@ .wp-block-formello-form > .wp-block-formello-select, .wp-block-formello-form > .wp-block-formello-textarea, .wp-block-formello-form > .wp-block-formello-fieldset, -.wp-block-formello-form .formello-message { +.wp-block-formello-form > .wp-block-formello-multichoices { flex-basis: 100%; } .wp-block-formello-form > .wp-block-formello-input .wp-block-formello-button, .wp-block-formello-form > .wp-block-formello-input .wp-block-formello-output, @@ -46,10 +22,14 @@ .wp-block-formello-form > .wp-block-formello-textarea .wp-block-formello-output, .wp-block-formello-form > .wp-block-formello-fieldset .wp-block-formello-button, .wp-block-formello-form > .wp-block-formello-fieldset .wp-block-formello-output, -.wp-block-formello-form .formello-message .wp-block-formello-button, -.wp-block-formello-form .formello-message .wp-block-formello-output { +.wp-block-formello-form > .wp-block-formello-multichoices .wp-block-formello-button, +.wp-block-formello-form > .wp-block-formello-multichoices .wp-block-formello-output { align-self: stretch; } +.wp-block-formello-form .formello-message, +.wp-block-formello-form .formello-debug { + flex-basis: 100%; +} .wp-block-formello-form .formello-hp { position: absolute !important; left: -5000px; @@ -61,5 +41,36 @@ color: red; order: 4; } +.wp-block-formello-form input:user-invalid { + border-color: red; +} + +.formello-message { + display: none; + box-sizing: border-box; + padding: 1em; +} +.formello-message p { + margin: 0; +} +.formello-message.success { + display: block; + background-color: #dff0d8; + border: 1px solid #d0e9c6; + color: #3c763d; +} +.formello-message.error:has(p:not(:empty)) { + display: block; + background-color: #fcf8e3; + border: 1px solid #faf2cc; + color: #8a6d3b; +} +.formello-message ul:not(:has(li)) { + display: none; +} + +.formello-debug pre { + white-space: break-spaces; +} /*# sourceMappingURL=style-index.css.map*/ \ No newline at end of file diff --git a/build/blocks/form/style-index.css.map b/build/blocks/form/style-index.css.map index 7551dd38..f8b1f183 100644 --- a/build/blocks/form/style-index.css.map +++ b/build/blocks/form/style-index.css.map @@ -1 +1 @@ -{"version":3,"file":"blocks/form/style-index.css","mappings":";;;AAIA;EACC;EACA;EACA;AAHD;AAIC;EACC;AAFF;AAKC;EACC;EACA;EACA;EACA;AAHF;AAMC;EACC;EACA;EACA;EACA;AAJF;AAOC;EACC;AALF;;AASA;EACC;EACA;EACA;EACA;EAaA;AAlBD;AAOC;;;;;EAKC;AALF;AAME;;;;;;;;;EACC;AAIH;AACC;EACC;EACA;AACF;AAEC;EACC;AAAF;AAGC;EACC;EACA;AADF,C","sources":["webpack://formello/./src/blocks/form/style.scss"],"sourcesContent":["$label-width: 190px;\r\n$margin-left: 0.5em;\r\n$small-margin: 0 8px;\r\n\r\n.formello-message {\r\n\tdisplay: none;\r\n\tbox-sizing: border-box;\r\n\tpadding: 1em;\r\n\tp {\r\n\t\tmargin: 0;\r\n\t}\r\n\r\n\t&.success {\r\n\t\tdisplay: block;\r\n\t\tbackground-color: #dff0d8;\r\n\t\tborder: 1px solid #d0e9c6;\r\n\t\tcolor: #3c763d;\r\n\t}\r\n\r\n\t&.error:has(p:not(:empty)) {\r\n\t\tdisplay: block;\r\n\t\tbackground-color: #fcf8e3;\r\n\t\tborder: 1px solid #faf2cc;\r\n\t\tcolor: #8a6d3b;\r\n\t}\r\n\r\n\tul:not(:has(li)) {\r\n\t\tdisplay: none;\r\n\t}\r\n}\r\n\r\n.wp-block-formello-form {\r\n\tdisplay: flex;\r\n\tflex-direction: row;\r\n\tflex-wrap: wrap;\r\n\tgap: .8em;\r\n\r\n\t> .wp-block-formello-input,\r\n\t> .wp-block-formello-select,\r\n\t> .wp-block-formello-textarea,\r\n\t> .wp-block-formello-fieldset,\r\n\t.formello-message {\r\n\t\tflex-basis: 100%;\r\n\t\t.wp-block-formello-button, .wp-block-formello-output {\r\n\t\t\talign-self: stretch;\r\n\t\t}\r\n\t}\r\n\r\n\t/* HONEYPOT position */\r\n\t.formello-hp {\r\n\t\tposition: absolute !important;\r\n\t\tleft: -5000px;\r\n\t}\r\n\r\n\t.error {\r\n\t\tborder-color: red;\r\n\t}\r\n\r\n\t.error-message {\r\n\t\tcolor: red;\r\n\t\torder: 4;\r\n\t}\r\n}\r\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"blocks/form/style-index.css","mappings":";;;AAIA;EACC;EACA;EACA;EACA;EAkBA;AApBD;AAIC;;;;;EAKC;AAFF;AAGE;;;;;;;;;EACC;AAOH;AAHC;;EAEC;AAKF;AADC;EACC;EACA;AAGF;AAAC;EACC;AAEF;AACC;EACC;EACA;AACF;AAEC;EACC;AAAF;;AAIA;EACC;EACA;EACA;AADD;AAEC;EACC;AAAF;AAGC;EACC;EACA;EACA;EACA;AADF;AAIC;EACC;EACA;EACA;EACA;AAFF;AAKC;EACC;AAHF;;AAOA;EACC;AAJD,C","sources":["webpack://formello/./src/blocks/form/style.scss"],"sourcesContent":["$label-width: 190px;\r\n$margin-left: 0.5em;\r\n$small-margin: 0 8px;\r\n\r\n.wp-block-formello-form {\r\n\tdisplay: flex;\r\n\tflex-direction: row;\r\n\tflex-wrap: wrap;\r\n\tgap: .8em;\r\n\r\n\t> .wp-block-formello-input,\r\n\t> .wp-block-formello-select,\r\n\t> .wp-block-formello-textarea,\r\n\t> .wp-block-formello-fieldset,\r\n\t> .wp-block-formello-multichoices {\r\n\t\tflex-basis: 100%;\r\n\t\t.wp-block-formello-button, .wp-block-formello-output {\r\n\t\t\talign-self: stretch;\r\n\t\t}\r\n\t}\r\n\r\n\t.formello-message,\r\n\t.formello-debug {\r\n\t\tflex-basis: 100%;\r\n\t}\r\n\r\n\t/* HONEYPOT position */\r\n\t.formello-hp {\r\n\t\tposition: absolute !important;\r\n\t\tleft: -5000px;\r\n\t}\r\n\r\n\t.error {\r\n\t\tborder-color: red;\r\n\t}\r\n\r\n\t.error-message {\r\n\t\tcolor: red;\r\n\t\torder: 4;\r\n\t}\r\n\r\n\tinput:user-invalid {\r\n\t\tborder-color: red;\r\n\t}\r\n}\r\n\r\n.formello-message {\r\n\tdisplay: none;\r\n\tbox-sizing: border-box;\r\n\tpadding: 1em;\r\n\tp {\r\n\t\tmargin: 0;\r\n\t}\r\n\r\n\t&.success {\r\n\t\tdisplay: block;\r\n\t\tbackground-color: #dff0d8;\r\n\t\tborder: 1px solid #d0e9c6;\r\n\t\tcolor: #3c763d;\r\n\t}\r\n\r\n\t&.error:has(p:not(:empty)) {\r\n\t\tdisplay: block;\r\n\t\tbackground-color: #fcf8e3;\r\n\t\tborder: 1px solid #faf2cc;\r\n\t\tcolor: #8a6d3b;\r\n\t}\r\n\r\n\tul:not(:has(li)) {\r\n\t\tdisplay: none;\r\n\t}\r\n}\r\n\r\n.formello-debug pre {\r\n\twhite-space: break-spaces;\r\n}\r\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/build/blocks/input/block.json b/build/blocks/input/block.json index 91d65791..71a3aa15 100644 --- a/build/blocks/input/block.json +++ b/build/blocks/input/block.json @@ -258,6 +258,11 @@ "root": ".wp-block-formello-input > input" } }, + "example": { + "attributes": { + "label": "Name" + } + }, "editorStyle": "file:./index.css", "style": "file:./style-index.css", "editorScript": "file:./index.js", diff --git a/build/blocks/input/index.asset.php b/build/blocks/input/index.asset.php index 33b48cfc..dca26ace 100644 --- a/build/blocks/input/index.asset.php +++ b/build/blocks/input/index.asset.php @@ -1 +1 @@ - array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => '41e625a4f7847fb97419'); + array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => 'c639484ea9867e60a4e6'); diff --git a/build/blocks/input/index.js b/build/blocks/input/index.js index 942c1a72..6c189b32 100644 --- a/build/blocks/input/index.js +++ b/build/blocks/input/index.js @@ -1221,8 +1221,7 @@ __webpack_require__.r(__webpack_exports__); function Edit(props) { const { attributes, - setAttributes, - context + setAttributes } = props; const { type, @@ -1526,8 +1525,7 @@ function getInputClassesAndStyles(attributes) { 'textarea-label': 'textarea' === type }); const inputClass = (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])(borderProps.className, spacingProps.className, colorProps.className, { - 'formello-advanced': advanced, - 'formello-rtf': advanced && 'textarea' === type + 'formello-advanced': advanced }); const inputStyle = { ...borderProps.style, @@ -2073,7 +2071,8 @@ function Options(props) { required, multiple, checked, - showHelp + showHelp, + advanced } = attributes; const supported = _constants__WEBPACK_IMPORTED_MODULE_4__.SUPPORTED_ATTRIBUTES[fieldType]; return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Fragment, { @@ -2134,14 +2133,23 @@ function Options(props) { showHelp: newval }), __nextHasNoMarginBottom: true - }), 'select' === fieldType && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Fragment, { - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { + }), 'select' === fieldType && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Fragment, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Advanced', 'formello'), + checked: advanced, + onChange: val => { + setAttributes({ + advanced: val + }); + }, + __nextHasNoMarginBottom: true + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { variant: 'primary', onClick: () => { setModalOpen(true); }, children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Manage Options', 'formello') - }) + })] })] }) }); @@ -2182,7 +2190,8 @@ __webpack_require__.r(__webpack_exports__); function Toolbar(props) { const { attributes, - setAttributes + setAttributes, + name } = props; const { required, @@ -2229,7 +2238,7 @@ function Toolbar(props) { hideLabel: !hideLabel }); } - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton, { + }), 'formello/multichoices' !== name && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton, { label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Show help message', 'formello'), icon: 'editor-help', isPressed: showHelp, @@ -2306,8 +2315,8 @@ function ValidationOptions(props) { return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.PanelBody, { title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Validation', 'formello'), initialOpen: false, - children: ['date' === type && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.ToggleControl, { - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Advanced Date', 'formello'), + children: [('date' === type || 'tel' === type) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.ToggleControl, { + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Advanced', 'formello'), checked: advanced, onChange: val => { setAttributes({ @@ -2598,7 +2607,7 @@ function getFieldsType() { type = b.attributes.type; } fields[b.attributes.name] = type; - if (b.attributes.enableRtf) { + if (b.attributes.advanced && 'textarea' === 'textarea') { fields[b.attributes.name] = 'richtext'; } if (b.attributes.multiple && 'select' === type) { @@ -2943,7 +2952,8 @@ function TabContent({ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.SearchControl, { value: searchInput, - onChange: setSearchInput + onChange: setSearchInput, + __nextHasNoMarginBottom: true }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.TabPanel, { tabs: tabs, children: tab => tab.data.filter(element => { @@ -3297,7 +3307,7 @@ function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else i /***/ ((module) => { "use strict"; -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"formello/input","title":"Text Input","ancestor":["formello/form"],"usesContext":["formello/requiredText"],"category":"formello","textdomain":"formello","attributes":{"type":{"type":"string","source":"attribute","selector":"input","attribute":"type","default":"text"},"id":{"type":"string","source":"attribute","selector":"input","attribute":"id"},"name":{"type":"string","source":"attribute","selector":"input","attribute":"name"},"label":{"type":"string","source":"html","selector":"label span:not(.required)","default":"Label","role":"content"},"hideLabel":{"type":"boolean","selector":"label.hide","default":false},"placeholder":{"type":"string","source":"attribute","selector":"input","attribute":"placeholder","role":"content"},"value":{"type":"string","source":"attribute","selector":"input","attribute":"value"},"validation":{"type":"string","source":"attribute","selector":"input","attribute":"data-bouncer-message","default":""},"enableMismatch":{"type":"boolean","default":false},"mismatchMessage":{"type":"string","source":"attribute","selector":"input","attribute":"data-bouncer-mismatch-message","default":""},"match":{"type":"string","source":"attribute","selector":"input","attribute":"data-bouncer-match"},"required":{"type":"boolean","source":"attribute","selector":"input","attribute":"required","default":false},"requiredText":{"type":"string","source":"text","selector":"label span.required","default":"*"},"enableAutoComplete":{"type":"boolean","default":false},"autocomplete":{"type":"string","source":"attribute","selector":"input","attribute":"autocomplete","default":"off"},"disabled":{"type":"boolean","source":"attribute","selector":"input","attribute":"disabled","default":false},"readonly":{"type":"boolean","source":"attribute","selector":"input","attribute":"readonly","default":false},"checked":{"type":"boolean","source":"attribute","selector":"input","attribute":"checked","default":false},"multiple":{"type":"boolean","source":"attribute","selector":"input","attribute":"multiple","default":false},"showHelp":{"type":"boolean","default":false},"help":{"type":"string","default":""},"minlength":{"type":"string","source":"attribute","selector":"input","attribute":"minlength"},"maxlength":{"type":"string","source":"attribute","selector":"input","attribute":"maxlength"},"pattern":{"type":"string","source":"attribute","selector":"input","attribute":"pattern"},"min":{"type":"string","source":"attribute","selector":"input","attribute":"min"},"max":{"type":"string","source":"attribute","selector":"input","attribute":"max"},"noWrapper":{"type":"boolean","default":false},"step":{"type":"number","source":"attribute","selector":"input","attribute":"step"},"dateFormat":{"type":"string","source":"attribute","selector":"input","attribute":"data-date-format"},"minDate":{"type":"string","source":"attribute","selector":"input","attribute":"data-min-date"},"timeFormat":{"type":"string","source":"attribute","selector":"input","attribute":"data-time-format"},"enableTime":{"type":"boolean"},"inlineCalendar":{"type":"boolean"},"mode":{"type":"string","source":"attribute","attribute":"data-mode"},"advanced":{"type":"boolean"}},"supports":{"lock":false,"anchor":false,"html":false,"inserter":true,"className":true,"reusable":false,"color":{"background":true,"text":true,"__experimentalSkipSerialization":true,"__experimentalSelector":"input"},"spacing":{"padding":true,"__experimentalSkipSerialization":true},"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true,"__experimentalSkipSerialization":true,"__experimentalDefaultControls":{"color":true,"radius":true,"style":true,"width":true}}},"selectors":{"root":".wp-block-formello-input","color":{"background":".wp-block-formello-input > input","text":".wp-block-formello-input"},"spacing":{"root":".wp-block-formello-input","padding":".wp-block-formello-input > input"},"border":{"root":".wp-block-formello-input > input"}},"editorStyle":"file:./index.css","style":"file:./style-index.css","editorScript":"file:./index.js","render":"file:./render.php"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"formello/input","title":"Text Input","ancestor":["formello/form"],"usesContext":["formello/requiredText"],"category":"formello","textdomain":"formello","attributes":{"type":{"type":"string","source":"attribute","selector":"input","attribute":"type","default":"text"},"id":{"type":"string","source":"attribute","selector":"input","attribute":"id"},"name":{"type":"string","source":"attribute","selector":"input","attribute":"name"},"label":{"type":"string","source":"html","selector":"label span:not(.required)","default":"Label","role":"content"},"hideLabel":{"type":"boolean","selector":"label.hide","default":false},"placeholder":{"type":"string","source":"attribute","selector":"input","attribute":"placeholder","role":"content"},"value":{"type":"string","source":"attribute","selector":"input","attribute":"value"},"validation":{"type":"string","source":"attribute","selector":"input","attribute":"data-bouncer-message","default":""},"enableMismatch":{"type":"boolean","default":false},"mismatchMessage":{"type":"string","source":"attribute","selector":"input","attribute":"data-bouncer-mismatch-message","default":""},"match":{"type":"string","source":"attribute","selector":"input","attribute":"data-bouncer-match"},"required":{"type":"boolean","source":"attribute","selector":"input","attribute":"required","default":false},"requiredText":{"type":"string","source":"text","selector":"label span.required","default":"*"},"enableAutoComplete":{"type":"boolean","default":false},"autocomplete":{"type":"string","source":"attribute","selector":"input","attribute":"autocomplete","default":"off"},"disabled":{"type":"boolean","source":"attribute","selector":"input","attribute":"disabled","default":false},"readonly":{"type":"boolean","source":"attribute","selector":"input","attribute":"readonly","default":false},"checked":{"type":"boolean","source":"attribute","selector":"input","attribute":"checked","default":false},"multiple":{"type":"boolean","source":"attribute","selector":"input","attribute":"multiple","default":false},"showHelp":{"type":"boolean","default":false},"help":{"type":"string","default":""},"minlength":{"type":"string","source":"attribute","selector":"input","attribute":"minlength"},"maxlength":{"type":"string","source":"attribute","selector":"input","attribute":"maxlength"},"pattern":{"type":"string","source":"attribute","selector":"input","attribute":"pattern"},"min":{"type":"string","source":"attribute","selector":"input","attribute":"min"},"max":{"type":"string","source":"attribute","selector":"input","attribute":"max"},"noWrapper":{"type":"boolean","default":false},"step":{"type":"number","source":"attribute","selector":"input","attribute":"step"},"dateFormat":{"type":"string","source":"attribute","selector":"input","attribute":"data-date-format"},"minDate":{"type":"string","source":"attribute","selector":"input","attribute":"data-min-date"},"timeFormat":{"type":"string","source":"attribute","selector":"input","attribute":"data-time-format"},"enableTime":{"type":"boolean"},"inlineCalendar":{"type":"boolean"},"mode":{"type":"string","source":"attribute","attribute":"data-mode"},"advanced":{"type":"boolean"}},"supports":{"lock":false,"anchor":false,"html":false,"inserter":true,"className":true,"reusable":false,"color":{"background":true,"text":true,"__experimentalSkipSerialization":true,"__experimentalSelector":"input"},"spacing":{"padding":true,"__experimentalSkipSerialization":true},"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true,"__experimentalSkipSerialization":true,"__experimentalDefaultControls":{"color":true,"radius":true,"style":true,"width":true}}},"selectors":{"root":".wp-block-formello-input","color":{"background":".wp-block-formello-input > input","text":".wp-block-formello-input"},"spacing":{"root":".wp-block-formello-input","padding":".wp-block-formello-input > input"},"border":{"root":".wp-block-formello-input > input"}},"example":{"attributes":{"label":"Name"}},"editorStyle":"file:./index.css","style":"file:./style-index.css","editorScript":"file:./index.js","render":"file:./render.php"}'); /***/ }) diff --git a/build/blocks/input/index.js.map b/build/blocks/input/index.js.map index e69b0a62..9bbdef77 100644 --- a/build/blocks/input/index.js.map +++ b/build/blocks/input/index.js.map @@ -1 +1 @@ -{"version":3,"file":"blocks/input/index.js","mappings":"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;;AAEA,kBAAkB,sBAAsB;AACxC;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK,KAA6B;AAClC;AACA;AACA,GAAG,SAAS,IAA4E;AACxF;AACA,EAAE,iCAAqB,EAAE,mCAAE;AAC3B;AACA,GAAG;AAAA,kGAAC;AACJ,GAAG,KAAK,EAEN;AACF,CAAC;;;;;;;;;;;;;ACzDD;;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA,cAAc,aAAa,+CAA+C,gDAAgD,eAAe,QAAQ,IAAI,0CAA0C,yCAAyC,SAAgB,gBAAgB,wCAAwC,IAAI,mDAAmD,SAAS,iEAAe,IAAI;;;;;;;;;;;;;;;;;UCAnY;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC7BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEnDA;UACA;UACA;UACA;UACA","sources":["webpack://formello/./assets/icons/asterisk.svg","webpack://formello/./assets/icons/checkbox.svg","webpack://formello/./assets/icons/checkboxes.svg","webpack://formello/./assets/icons/clock-field.svg","webpack://formello/./assets/icons/color-field.svg","webpack://formello/./assets/icons/date-field.svg","webpack://formello/./assets/icons/email-field.svg","webpack://formello/./assets/icons/fieldset.svg","webpack://formello/./assets/icons/form.svg","webpack://formello/./assets/icons/gdpr-field.svg","webpack://formello/./assets/icons/hidden-field.svg","webpack://formello/./assets/icons/logo.svg","webpack://formello/./assets/icons/number-field.svg","webpack://formello/./assets/icons/password-field.svg","webpack://formello/./assets/icons/phone-field.svg","webpack://formello/./assets/icons/radio-buttons.svg","webpack://formello/./assets/icons/radio-field.svg","webpack://formello/./assets/icons/range-field.svg","webpack://formello/./assets/icons/select.svg","webpack://formello/./assets/icons/text-field.svg","webpack://formello/./assets/icons/textarea-field.svg","webpack://formello/./assets/icons/url-field.svg","webpack://formello/./node_modules/@wordpress/icons/build-module/library/more-vertical.js","webpack://formello/./src/blocks/input/deprecated.js","webpack://formello/./src/blocks/input/edit.js","webpack://formello/./src/blocks/input/index.js","webpack://formello/./src/blocks/input/save.js","webpack://formello/./src/blocks/input/use-field-props.js","webpack://formello/./src/blocks/input/variations.js","webpack://formello/./src/components/field-options/advanced.js","webpack://formello/./src/components/field-options/constants.js","webpack://formello/./src/components/field-options/date.js","webpack://formello/./src/components/field-options/index.js","webpack://formello/./src/components/field-options/toolbar.js","webpack://formello/./src/components/field-options/validation.js","webpack://formello/./src/components/label.js","webpack://formello/./src/components/merge-tags/functions.js","webpack://formello/./src/components/merge-tags/index.js","webpack://formello/./src/components/merge-tags/tab-content.js","webpack://formello/./src/components/merge-tags/use-tabs.js","webpack://formello/./src/icons/icons.js","webpack://formello/./node_modules/classnames/index.js","webpack://formello/./src/blocks/input/style.scss?5d76","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"blocks\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"coreData\"]","webpack://formello/external window [\"wp\",\"data\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"hooks\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/external window [\"wp\",\"primitives\"]","webpack://formello/./node_modules/clsx/dist/clsx.mjs","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/chunk loaded","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/webpack/runtime/jsonp chunk loading","webpack://formello/webpack/before-startup","webpack://formello/webpack/startup","webpack://formello/webpack/after-startup"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgAsterisk = function SvgAsterisk(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12.75 6h-1.5v4.19L8.288 7.226l-1.061 1.06 2.962 2.963H6v1.5h4.19l-2.963 2.962 1.06 1.061 2.963-2.962V18h1.5v-4.19l2.962 2.963 1.061-1.06-2.962-2.963H18v-1.5h-4.19l2.963-2.962-1.06-1.061-2.963 2.962V6Z\"\n })));\n};\nexport { SvgAsterisk as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjc1IDZIMTEuMjVWMTAuMTg5M0w4LjI4NzY5IDcuMjI3MDNMNy4yMjcwMyA4LjI4NzY5TDEwLjE4OTMgMTEuMjVINlYxMi43NUgxMC4xODkzTDcuMjI3MDMgMTUuNzEyM0w4LjI4NzY5IDE2Ljc3M0wxMS4yNSAxMy44MTA3VjE4SDEyLjc1VjEzLjgxMDdMMTUuNzEyMyAxNi43NzNMMTYuNzczIDE1LjcxMjNMMTMuODEwNyAxMi43NUgxOFYxMS4yNUgxMy44MTA3TDE2Ljc3MyA4LjI4NzY5TDE1LjcxMjMgNy4yMjcwM0wxMi43NSAxMC4xODkzVjZaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckbox = function SvgCheckbox(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z\"\n })));\n};\nexport { SvgCheckbox as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGc+CiAgICAgICAgPHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIvPgogICAgICAgIDxwYXRoIGQ9Ik00IDNoMTZhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6bTEgMnYxNGgxNFY1SDV6bTYuMDAzIDExTDYuNzYgMTEuNzU3bDEuNDE0LTEuNDE0IDIuODI5IDIuODI5IDUuNjU2LTUuNjU3IDEuNDE1IDEuNDE0TDExLjAwMyAxNnoiIC8+CiAgICA8L2c+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckboxes = function SvgCheckboxes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 24,\n height: 24,\n viewBox: \"0 0 300.396 300.396\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.048 216.749H4.076a3 3 0 0 0-3 3v59.973a3 3 0 0 0 3 3h59.972a3 3 0 0 0 3-3v-59.973c0-1.656-1.344-3-3-3zM64.048 17.675H4.076A4.075 4.075 0 0 0 0 21.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076V21.749a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986V36.809h29.849v29.852H19.138zM64.048 116.675H4.076A4.075 4.075 0 0 0 0 120.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076v-59.973a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986v-29.852h29.849v29.852H19.138zM297.396 231.036h-186.67a3 3 0 0 0-3 3v31.4a3 3 0 0 0 3 3h186.67c1.656 0 3-1.344 3-3v-31.4a3 3 0 0 0-3-3zM110.729 169.438h186.667a3 3 0 0 0 3-3v-31.406c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3zM110.729 70.438h186.667a3 3 0 0 0 3-3V36.032c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3z\"\n })));\n};\nexport { SvgCheckboxes as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiAKCSB2aWV3Qm94PSIwIDAgMzAwLjM5NiAzMDAuMzk2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNNjQuMDQ4LDIxNi43NDlINC4wNzZjLTEuNjU3LDAtMywxLjM0NC0zLDN2NTkuOTczYzAsMS42NTgsMS4zNDMsMywzLDNoNTkuOTcyYzEuNjU2LDAsMy0xLjM0MiwzLTN2LTU5Ljk3MwoJCUM2Ny4wNDgsMjE4LjA5Myw2NS43MDQsMjE2Ljc0OSw2NC4wNDgsMjE2Ljc0OXoiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTcuNjc1SDQuMDc2QzEuODI1LDE3LjY3NSwwLDE5LjQ5OSwwLDIxLjc0OXY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NlYyMS43NDlDNjguMTIzLDE5LjQ5OSw2Ni4yOTksMTcuNjc1LDY0LjA0OCwxNy42NzV6IE0xOS4xMzgsNjYuNjYxVjM2LjgwOWgyOS44NDl2MjkuODUySDE5LjEzOHoKCQkiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTE2LjY3NUg0LjA3NmMtMi4yNTEsMC00LjA3NiwxLjgyNC00LjA3Niw0LjA3NHY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NnYtNTkuOTczQzY4LjEyMywxMTguNDk5LDY2LjI5OSwxMTYuNjc1LDY0LjA0OCwxMTYuNjc1eiBNMTkuMTM4LDE2NS42NjF2LTI5Ljg1MmgyOS44NDl2MjkuODUyCgkJSDE5LjEzOHoiLz4KCTxwYXRoIGQ9Ik0yOTcuMzk2LDIzMS4wMzZoLTE4Ni42N2MtMS42NTcsMC0zLDEuMzQyLTMsM3YzMS40YzAsMS42NTYsMS4zNDMsMywzLDNoMTg2LjY3YzEuNjU2LDAsMy0xLjM0NCwzLTN2LTMxLjQKCQlDMzAwLjM5NiwyMzIuMzc4LDI5OS4wNTMsMjMxLjAzNiwyOTcuMzk2LDIzMS4wMzZ6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSwxNjkuNDM4aDE4Ni42NjdjMS42NTYsMCwzLTEuMzQyLDMtM3YtMzEuNDA2YzAtMS42NTYtMS4zNDQtMy0zLTNIMTEwLjcyOWMtMS42NTcsMC0zLDEuMzQ0LTMsM3YzMS40MDYKCQlDMTA3LjcyOSwxNjguMDk3LDEwOS4wNzEsMTY5LjQzOCwxMTAuNzI5LDE2OS40Mzh6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSw3MC40MzhoMTg2LjY2N2MxLjY1NiwwLDMtMS4zNDIsMy0zVjM2LjAzMmMwLTEuNjU2LTEuMzQ0LTMtMy0zSDExMC43MjljLTEuNjU3LDAtMywxLjM0NC0zLDN2MzEuNDA2CgkJQzEwNy43MjksNjkuMDk3LDEwOS4wNzEsNzAuNDM4LDExMC43MjksNzAuNDM4eiIvPgo8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgClockField = function SvgClockField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 -8 72 72\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 0a28 28 0 1 0 28 28A28 28 0 0 0 36 0Zm0 50a22 22 0 1 1 22-22 22.07 22.07 0 0 1-22 22Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.59 27.14H38V12a2.31 2.31 0 1 0-4.61 0v17.44a2.31 2.31 0 0 0 2.3 2.31h14.9a2.31 2.31 0 1 0 0-4.61Z\"\n })));\n};\nexport { SvgClockField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAtOCA3MiA3MiIgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Y2xvY2stbzwvdGl0bGU+PHBhdGggZD0iTTM2LDBBMjgsMjgsMCwxLDAsNjQsMjgsMjgsMjgsMCwwLDAsMzYsMFptMCw1MEEyMiwyMiwwLDEsMSw1OCwyOCwyMi4wNywyMi4wNywwLDAsMSwzNiw1MFoiLz48cGF0aCBkPSJNNTAuNTksMjcuMTRIMzhWMTJhMi4zMSwyLjMxLDAsMSwwLTQuNjEsMFYyOS40NGEyLjMxLDIuMzEsMCwwLDAsMi4zLDIuMzFINTAuNTlhMi4zMSwyLjMxLDAsMSwwLDAtNC42MVoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgColorField = function SvgColorField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 36 36\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.23 14.89c-2.1-.56-4.93 1.8-6.34.3-1.71-1.82 2.27-5.53 1.86-8.92-.33-2.78-3.51-4.08-6.66-4.1A18.5 18.5 0 0 0 7.74 7.59c-6.64 6.59-8.07 16-1.37 22.48 6.21 6 16.61 4.23 22.67-1.4a17.73 17.73 0 0 0 4.22-6.54c1.08-2.9 1.18-6.64-1.03-7.24ZM9.4 10.57a2.23 2.23 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.81 2.53 2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53ZM5.07 20.82a2.22 2.22 0 0 1 1.82-2.53 2.22 2.22 0 0 1 2.86 1.21A2.23 2.23 0 0 1 7.94 22a2.24 2.24 0 0 1-2.87-1.18Zm7 8.33a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.8-2.53 2.23 2.23 0 0 1 2.87 1.21A2.22 2.22 0 0 1 12 29.15ZM15 8.26a2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.82 2.53A2.21 2.21 0 0 1 15 8.26Zm5.82 22.19a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.85 2.53Zm5-10.46a3.2 3.2 0 0 1-1.69 1.76 3.53 3.53 0 0 1-1.4.3 2.78 2.78 0 0 1-2.56-1.5 2.49 2.49 0 0 1-.07-2 3.2 3.2 0 0 1 1.69-1.76 3 3 0 0 1 4 1.2 2.54 2.54 0 0 1 0 2.01Z\",\n \"data-name\": \"Layer 3\"\n })));\n};\nexport { SvgColorField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDM2IDM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoNPHRpdGxlPmNvbG9yX3BhbGV0dGVfc29saWQ8L3RpdGxlPgoNPGcgaWQ9ImI4OTRlMzJiLTA0MzctNDVhYi1iOGJmLTlmMGM0ZThmNTdjZCIgZGF0YS1uYW1lPSJMYXllciAzIj4KDTxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTguNSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMywwLDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywyLjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEsMS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDateField = function SvgDateField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38 4V0h-4v4H14V0h-4v4H0v44h48V4H38zm6 40H4V19.9h40V44zM4 15.9V8h6v4h4V8h20v4h4V8h6v7.9H4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 24h6v6h-6zM16.667 24h6v6h-6zM25.583 24h6v6h-6zM34.5 24h6v6h-6zM7.5 33h6v6h-6zM16.667 33h6v6h-6zM25.583 33h6v6h-6zM34.5 33h6v6h-6z\"\n })));\n};\nexport { SvgDateField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCFET0NUWVBFIHN2ZyAgUFVCTElDICctLy9XM0MvL0RURCBTVkcgMS4xLy9FTicgICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQnPgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0OCA0OCIgaWQ9IkxheWVyXzMiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08Zz4KDTxwYXRoIGQ9Ik0zOCw0VjBoLTR2NEgxNFYwaC00djRIMHYxMS45djRWNDhoNDhWMTkuOXYtNFY0SDM4eiBNNDQsNDRINFYxOS45aDQwVjQ0eiBNNCwxNS45VjhoNnY0aDRWOGgyMHY0aDRWOGg2djcuOUg0eiIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iNy41IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMTYuNjY3IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMjUuNTgzIiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMzQuNSIgeT0iMjQiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjcuNSIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjE2LjY2NyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjI1LjU4MyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjM0LjUiIHk9IjMzIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmailField = function SvgEmailField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2c5.43 0 9.848 4.327 9.996 9.72L22 12v1c0 2.173-1.523 4-3.5 4-1.173 0-2.186-.643-2.816-1.62a5 5 0 1 1 1.311-3.597L17 12v1c0 1.14.716 2 1.5 2 .745 0 1.428-.775 1.495-1.831L20 13v-1a8 8 0 1 0-4.677 7.28 1 1 0 1 1 .831 1.819A9.966 9.966 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2Zm0 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z\"\n })));\n};\nexport { SvgEmailField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik0xMiwyIEMxNy40MjkyMzk5LDIgMjEuODQ3OTMxNyw2LjMyNjY3MDc5IDIxLjk5NjE1ODIsMTEuNzIwMDk1MiBMMjIsMTIgTDIyLDEzIEMyMiwxNS4xNzI5MjA4IDIwLjQ3NzQzNCwxNyAxOC41LDE3IEMxNy4zMjY5MzkxLDE3IDE2LjMxMzk1MjksMTYuMzU3MDI0NCAxNS42ODM5MzgyLDE1LjM4MDMwMjQgQzE0Ljc3MDU5MywxNi4zNzU3ODIzIDEzLjQ1ODE5MzQsMTcgMTIsMTcgQzkuMjM4NTc2MjUsMTcgNywxNC43NjE0MjM3IDcsMTIgQzcsOS4yMzg1NzYyNSA5LjIzODU3NjI1LDcgMTIsNyBDMTQuNjg4NzU0Nyw3IDE2Ljg4MTgxODEsOS4xMjIzMDY3MSAxNi45OTUzODA1LDExLjc4MzExMDQgTDE3LDEyIEwxNywxMyBDMTcsMTQuMTQwNzg3NyAxNy43MTYwMTAzLDE1IDE4LjUsMTUgQzE5LjI0NDc5MDIsMTUgMTkuOTI4MjI5LDE0LjIyNDU2MDkgMTkuOTk0NzEwOSwxMy4xNjg5MzQxIEwyMCwxMyBMMjAsMTIgQzIwLDcuNTgxNzIyIDE2LjQxODI3OCw0IDEyLDQgQzcuNTgxNzIyLDQgNCw3LjU4MTcyMiA0LDEyIEM0LDE2LjQxODI3OCA3LjU4MTcyMiwyMCAxMiwyMCBDMTMuMTYzMDk0OCwyMCAxNC4yODkyODIyLDE5Ljc1MjI2MTggMTUuMzIyNTE1OSwxOS4yNzk4MzMxIEMxNS44MjQ3ODc2LDE5LjA1MDE3NzcgMTYuNDE4MTMxNywxOS4yNzExNzcgMTYuNjQ3Nzg3LDE5Ljc3MzQ0ODcgQzE2Ljg3NzQ0MjMsMjAuMjc1NzIwNSAxNi42NTY0NDMsMjAuODY5MDY0NiAxNi4xNTQxNzEzLDIxLjA5ODcxOTkgQzE0Ljg2MTIxOCwyMS42ODk5MDEgMTMuNDUxNTQ2MywyMiAxMiwyMiBDNi40NzcxNTI1LDIyIDIsMTcuNTIyODQ3NSAyLDEyIEMyLDYuNDc3MTUyNSA2LjQ3NzE1MjUsMiAxMiwyIFogTTEyLDkgQzEwLjM0MzE0NTgsOSA5LDEwLjM0MzE0NTggOSwxMiBDOSwxMy42NTY4NTQyIDEwLjM0MzE0NTgsMTUgMTIsMTUgQzEzLjY1Njg1NDIsMTUgMTUsMTMuNjU2ODU0MiAxNSwxMiBDMTUsMTAuMzQzMTQ1OCAxMy42NTY4NTQyLDkgMTIsOSBaIi8+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFieldset = function SvgFieldset(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 80,\n height: 80,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 20h1v1H1v-2h1zm20 0h-1v1h2v-2h-1zM1 5h1V4h1V3H1zm1 2H1v2h1zm0 4H1v2h1zm20-2h1V7h-1zm0 4h1v-2h-1zM2 15H1v2h1zm20 2h1v-2h-1zM5 4h2V3H5zm6 0V3H9v1zm2 0h2V3h-2zm6-1h-2v1h2zM5 21h2v-1H5zm4 0h2v-1H9zm4 0h2v-1h-2zm4 0h2v-1h-2zm4-17h1v1h1V3h-2zm-1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1V8a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19V8H5v2h14m1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1v-2a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19v-2H5v2h14\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgFieldset as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MHB4IiBoZWlnaHQ9IjgwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAyMGgxdjFIMXYtMmgxem0yMCAwaC0xdjFoMnYtMmgtMXpNMSA1aDFWNGgxVjNIMXptMSAySDF2Mmgxem0wIDRIMXYyaDF6bTIwLTJoMVY3aC0xem0wIDRoMXYtMmgtMXpNMiAxNUgxdjJoMXptMjAgMmgxdi0yaC0xek01IDRoMlYzSDV6bTYgMFYzSDl2MXptMiAwaDJWM2gtMnptNi0xaC0ydjFoMnpNNSAyMWgydi0xSDV6bTQgMGgydi0xSDl6bTQgMGgydi0xaC0yem00IDBoMnYtMWgtMnptNC0xN2gxdjFoMVYzaC0yem0tMSA0djJhMS4wMDEgMS4wMDEgMCAwIDEtMSAxSDVhMS4wMDEgMS4wMDEgMCAwIDEtMS0xVjhhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOVY4SDV2MmgxNG0xIDR2MmExLjAwMSAxLjAwMSAwIDAgMS0xIDFINWExLjAwMSAxLjAwMSAwIDAgMS0xLTF2LTJhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOXYtMkg1djJoMTQiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgForm = function SvgForm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.2 12.994a.312.312 0 0 1-.188-.191C1 12.76.999 12.113 1 6.982V1.208l.022-.045a.328.328 0 0 1 .14-.14L1.208 1h11.585l.05.025a.31.31 0 0 1 .136.135l.021.039v5.783c0 5.377 0 5.787-.013 5.831a.314.314 0 0 1-.142.162L12.8 13H7.012c-3.457.001-5.8 0-5.817-.01zm11.236-5.992V1.568H1.573v10.857c0 .01 1.099.01 5.436.01h5.432V7.003zM5.574 10.72v-.86h1.712v1.72H5.574v-.86zm1.144 0v-.284h-.576v.568h.576v-.284zm1.145 0v-.284h3.432v.568H7.863v-.284zM5.574 7.572V6.428h5.72v2.288h-5.72V7.572zm5.144 0V7H6.142v.566c0 .311 0 .569.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.289h2.28v.577h-2.28v-.288zM5.575 4.14V2.996h5.72v2.288h-5.72V4.14zm5.144 0v-.572H6.142v.566c0 .31 0 .568.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.284h2.28v.567h-2.28V4.14z\"\n })));\n};\nexport { SvgForm as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAxNCAxNCIgcm9sZT0iaW1nIiBmb2N1c2FibGU9ImZhbHNlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtIDEuMTk5Nzk5NSwxMi45OTM5MTYgYyAtMC4wNzkwMzQsLTAuMDIzIC0wLjE2NDA3MSwtMC4xMDkzIC0wLjE4Nzk4MTMsLTAuMTkxNCAtMC4wMTIwMDUsLTAuMDQyIC0wLjAxMzAwNiwtMC42ODk1IC0wLjAxMTAwNSwtNS44MjEwMDAzIGwgMCwtNS43NzQgMC4wMjIwMSwtMC4wNDUgYyAwLjAyODAxMiwtMC4wNTcgMC4wODMwMzYsLTAuMTExNyAwLjE0MDE2MDYsLTAuMTQwMSBsIDAuMDQ1MDE5LC0wLjAyMiA1Ljc5MjIwNDEsMCA1Ljc5MjMwNDEsMCAwLjA1MTAyLDAuMDI1IGMgMC4wNTYwMiwwLjAyNyAwLjEwMzY0NSwwLjA3NSAwLjEzNTQ1OSwwLjEzNDUgbCAwLjAyMTAxLDAuMDM5IDAsNS43ODMyIGMgMCw1LjM3NjUwMDMgMCw1Ljc4NjYwMDMgLTAuMDEzMDEsNS44MzExMDAzIC0wLjAxOTAxLDAuMDYgLTAuMDc5MDMsMC4xMjkxIC0wLjE0MTc2MSwwLjE2MjEgbCAtMC4wNDYwMiwwLjAyNCAtNS43ODc3MDIzLDAgYyAtMy40NTYyOTQyLDllLTQgLTUuNzk5MjA3LDAgLTUuODE2MDE0MywtMC4wMSB6IG0gMTEuMjM2NjU3NSwtNS45OTE5MDAzIDAsLTUuNDM0MiAtNS40MzE5NDgxLDAgLTUuNDMxODQ4MiwwIDAsNS40MjI5IGMgMCwyLjk4MjYgLTQuMDAyZS00LDUuNDI4MDAwMyAwLDUuNDM0MjAwMyAwLDAuMDEgMS4wOTkwNzUxLDAuMDExIDUuNDM2NTUwMiwwLjAxMSBsIDUuNDMyMTQ4MSwwIDAsLTUuNDM0MjAwMyB6IG0gLTYuODYxOTY2MywzLjcxODEwMDMgMCwtMC44NjAzMDAzIDAuODU1NzY5OSwwIDAuODU1NzcsMCAwLDAuODYwMzAwMyAwLDAuODYwMyAtMC44NTU3NywwIC0wLjg1NTc2OTksMCAwLC0wLjg2MDMgeiBtIDEuMTQzOTk0NSwwIDAsLTAuMjgzOCAtMC4yODgyMjQ2LDAgLTAuMjg4MzI0NiwwIDAsMC4yODM4IDAsMC4yODM3IDAuMjg4MzI0NiwwIDAuMjg4MjI0NiwwIDAsLTAuMjgzNyB6IG0gMS4xNDQwOTQ3LDAgMCwtMC4yODM4IDEuNzE2MDQxOCwwIDEuNzE2MDQxMywwIDAsMC4yODM4IDAsMC4yODM3IC0xLjcxNjA0MTMsMCAtMS43MTYwNDE4LDAgMCwtMC4yODM3IHogbSAtMi4yODgwODkyLC0zLjE0ODMwMDMgMCwtMS4xNDQxIDIuODYwMDM2NCwwIDIuODYwMTM1OSwwIDAsMS4xNDQxIDAsMS4xNDM5IC0yLjg2MDEzNTksMCAtMi44NjAwMzY0LDAgMCwtMS4xNDM5IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEzIDAsMC41Njg3IDAuMDEwMDA0LDAuNTcyIDAsMCAxLjAzMjk0NjYsMC4wMSAyLjI4ODA4OTIsMC4wMSBsIDIuMjgyMDg2OCwwIDAsLTAuNTcyIHogbSAtNy45OTkyNTc4LDAgMCwtMC4yODg0IDEuMTM5NTkyNywwIDEuMTM5NDkyNSwwIDAsMC4yODg0IDAsMC4yODgyIC0xLjEzOTQ5MjUsMCAtMS4xMzk1OTI3LDAgMCwtMC4yODgyIHogbSAyLjg1NTYzNDUsLTMuNDMyMSAwLC0xLjE0NDEgMi44NjAwMzY0LDAgMi44NjAxMzU5LDAgMCwxLjE0NDEgMCwxLjE0NCAtMi44NjAxMzU5LDAgLTIuODYwMDM2NCwwIDAsLTEuMTQ0IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEyIDAsMC41Njg2IDAuMDEwMDA0LDAuNTcxOSAwLDAgMS4wMzI5NDY2LDAuMDEgMi4yODgwODkyLDAuMDEgbCAyLjI4MjA4NjgsMCAwLC0wLjU3MTkgeiBtIC03Ljk5OTI1NzgsMCAwLC0wLjI4MzkgMS4xMzk1OTI3LDAgMS4xMzk0OTI1LDAgMCwwLjI4MzkgMCwwLjI4MzcgLTEuMTM5NDkyNSwwIC0xLjEzOTU5MjcsMCAwLC0wLjI4MzcgeiIvPjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGdprField = function SvgGdprField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2zm0 8h5s1-1 1-5c0 0-5-1-6-2v7H5c1 4 5 7 5 7v-7z\"\n })));\n};\nexport { SvgGdprField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+Cgk8cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KCTxnPgoJCTxwYXRoIGQ9Ik0xMCAyczMgMiA3IDJjMCAxMS03IDE0LTcgMTRTMyAxNSAzIDRjNCAwIDctMiA3LTJ6bTAgOGg1czEtMSAxLTVjMCAwLTUtMS02LTJ2N0g1YzEgNCA1IDcgNSA3di03eiIvPgoJPC9nPgo8L3N2Zz4K\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgHiddenField = function SvgHiddenField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 1000 1000\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M499 270q57 0 104.5 28t75.5 76 28 104q0 39-15 76l122 122q97-81 142-198-36-91-104-162T694 206q-93-40-195-40-86 0-166 29l90 90q38-15 76-15zM83 157l95 94 19 20q-52 40-91.5 93T42 478q36 91 104.5 162T304 750q93 40 195 40 95 0 183-35l139 139 53-53-738-737zm230 230 65 64q-4 15-4 27 0 34 17 62.5t45.5 45.5 62.5 17q14 0 27-3l65 64q-45 22-92 22-56 0-104-28t-76-76-28-104q0-47 22-91zm180-33 131 131v-6q0-34-16.5-63t-45-45.5T500 354h-7z\"\n })));\n};\nexport { SvgHiddenField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00OTkgMjcwcTU3IDAgMTA0LjUgMjh0NzUuNSA3NiAyOCAxMDRxMCAzOS0xNSA3NmwxMjIgMTIycTk3LTgxIDE0Mi0xOTgtMzYtOTEtMTA0LTE2MlQ2OTQgMjA2cS05My00MC0xOTUtNDAtODYgMC0xNjYgMjlsOTAgOTBxMzgtMTUgNzYtMTV6TTgzIDE1N2w5NSA5NCAxOSAyMHEtNTIgNDAtOTEuNSA5M1Q0MiA0NzhxMzYgOTEgMTA0LjUgMTYyVDMwNCA3NTBxOTMgNDAgMTk1IDQwIDk1IDAgMTgzLTM1bDEzOSAxMzkgNTMtNTMtNzM4LTczN3ptMjMwIDIzMGw2NSA2NHEtNCAxNS00IDI3IDAgMzQgMTcgNjIuNXQ0NS41IDQ1LjUgNjIuNSAxN3ExNCAwIDI3LTNsNjUgNjRxLTQ1IDIyLTkyIDIyLTU2IDAtMTA0LTI4dC03Ni03Ni0yOC0xMDRxMC00NyAyMi05MXptMTgwLTMzbDEzMSAxMzF2LTZxMC0zNC0xNi41LTYzdC00NS00NS41VDUwMCAzNTRoLTd6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 341.333,\n height: 341.333,\n viewBox: \"0 0 256 256\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#9b51e0\",\n d: \"M0 128v128h256V0H0v128zm145.6-66.6c2.9.7 7.8 2.8 11.1 4.5 6.7 3.6 18.3 14.6 16.8 16-2.6 2.3-31.9 23.1-32.6 23.1-.5 0-.9-.5-.9-1 0-.6-1.1-2.2-2.5-3.5-3-3.1-8.3-3.3-11.6-.6-2.2 1.8-2.4 2.7-2.7 14l-.4 12.1H136v37h-13v34H82v-44.8c0-35.5.3-46.1 1.5-51.7 3.9-18.6 18.2-34.2 35.6-38.9 6.9-1.9 19.9-2 26.5-.2z\"\n })));\n};\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwoJdmVyc2lvbj0iMS4wIgoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJd2lkdGg9IjI1Ni4wMDAwMDBwdCIKCWhlaWdodD0iMjU2LjAwMDAwMHB0IgoJdmlld0JveD0iMCAwIDI1Ni4wMDAwMDAgMjU2LjAwMDAwMCIKCXByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiCj4KCTxnCgkJdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjU2LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKCQlmaWxsPSIjOWI1MWUwIgoJCXN0cm9rZT0ibm9uZSIKCT4KCQk8cGF0aAoJCQlkPSJNMCAxMjgwIGwwIC0xMjgwIDEyODAgMCAxMjgwIDAgMCAxMjgwIDAgMTI4MCAtMTI4MCAwIC0xMjgwIDAgMAoJCQktMTI4MHogbTE0NTYgNjY2IGMyOSAtNyA3OCAtMjggMTExIC00NSA2NyAtMzYgMTgzIC0xNDYgMTY4IC0xNjAgLTI2IC0yMwoJCQktMzE5IC0yMzEgLTMyNiAtMjMxIC01IDAgLTkgNSAtOSAxMCAwIDYgLTExIDIyIC0yNSAzNSAtMzAgMzEgLTgzIDMzIC0xMTYgNgoJCQktMjIgLTE4IC0yNCAtMjcgLTI3IC0xNDAgbC00IC0xMjEgNjYgMCA2NiAwIDAgLTE4NSAwIC0xODUgLTY1IDAgLTY1IDAgMAoJCQktMTcwIDAgLTE3MCAtMjA1IDAgLTIwNSAwIDAgNDQ4IGMwIDM1NSAzIDQ2MSAxNSA1MTcgMzkgMTg2IDE4MiAzNDIgMzU2IDM4OQoJCQk2OSAxOSAxOTkgMjAgMjY1IDJ6IgoJCS8+Cgk8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgNumberField = function SvgNumberField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 52 52\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.8 49.5H7.2c-2.6 0-4.7-2.1-4.7-4.7V7.2c0-2.6 2.1-4.7 4.7-4.7h37.6c2.6 0 4.7 2.1 4.7 4.7v37.6c0 2.6-2.1 4.7-4.7 4.7zm-36-39.2v31.3c0 .9.7 1.6 1.6 1.6h31.3c.9 0 1.6-.7 1.6-1.6V10.3c0-.9-.7-1.6-1.6-1.6H10.4c-.9.1-1.6.8-1.6 1.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.2 20.3h-2.9l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.2 4.9h-5.8l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.3 4.9H18c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h3L19 28.7h-3.1c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h2.9L17 36.5v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h5.7L26 36.4v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h3.2c.2 0 .3-.1.4-.3l.6-2.2V29c0-.2-.1-.4-.4-.4h-3l1.4-5.6h3.1c.2 0 .3-.1.4-.3l.6-2.2v-.1c-.1.1-.3-.1-.5-.1zm-8.1 8.5h-5.8l1.4-5.6h5.7l-1.3 5.6z\"\n })));\n};\nexport { SvgNumberField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCgkgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNTIgNTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUyIDUyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZD0iTTQ0LjgsNDkuNUg3LjJjLTIuNiwwLTQuNy0yLjEtNC43LTQuN1Y3LjJjMC0yLjYsMi4xLTQuNyw0LjctNC43aDM3LjZjMi42LDAsNC43LDIuMSw0LjcsNC43djM3LjYKCUM0OS41LDQ3LjQsNDcuNCw0OS41LDQ0LjgsNDkuNXogTTguOCwxMC4zdjMxLjNjMCwwLjksMC43LDEuNiwxLjYsMS42aDMxLjNjMC45LDAsMS42LTAuNywxLjYtMS42VjEwLjNjMC0wLjktMC43LTEuNi0xLjYtMS42SDEwLjQKCUM5LjUsOC44LDguOCw5LjUsOC44LDEwLjN6Ii8+CjxwYXRoIGQ9Ik0zNi4yLDIwLjNoLTIuOWwxLjItNC44di0wLjFjMC0wLjItMC4xLTAuNC0wLjQtMC40aC0yLjNjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMS4yLDQuOWgtNS44bDEuMi00LjgKCXYtMC4xYzAtMC4yLTAuMS0wLjQtMC40LTAuNGgtMi4zYy0wLjIsMC0wLjMsMC4xLTAuNCwwLjNsLTEuMyw0LjloLTMuMmMtMC4yLDAtMC4zLDAuMS0wLjQsMC4zbC0wLjYsMi4ydjAuMWMwLDAuMiwwLjEsMC40LDAuNCwwLjQKCWgzbC0xLjQsNS42aC0zLjFjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMC42LDIuMnYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuOWwtMS4yLDQuOHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuMwoJYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wxLjMtNWg1LjdMMjYsMzYuNHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuM2MwLjIsMCwwLjMtMC4xLDAuNC0wLjNsMS4zLTVoMy4yYzAuMiwwLDAuMy0wLjEsMC40LTAuMwoJbDAuNi0yLjJWMjljMC0wLjItMC4xLTAuNC0wLjQtMC40aC0zbDEuNC01LjZoMy4xYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wwLjYtMi4ydi0wLjFDMzYuNiwyMC41LDM2LjQsMjAuMywzNi4yLDIwLjNMMzYuMiwyMC4zegoJIE0yOC4xLDI4LjhoLTUuOGwxLjQtNS42aDUuN0wyOC4xLDI4Ljh6Ii8+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPasswordField = function SvgPasswordField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.988 51.297c.375 0 .961-.14 1.57-.445C42.66 43.469 47.185 40.375 47.185 31.96V14.289c0-2.414-1.055-3.187-3-4.008-2.743-1.125-11.532-4.289-14.25-5.25-.633-.187-1.266-.328-1.946-.328-.656 0-1.289.14-1.922.328-2.718.985-11.507 4.149-14.25 5.25-1.945.797-3 1.594-3 4.008v17.672c0 8.414 4.547 11.484 17.625 18.89.61.305 1.172.446 1.547.446Zm-8.226-15.563v-9.093c0-1.524.586-2.32 1.828-2.508V21.32c0-4.312 2.601-7.218 6.398-7.218 3.82 0 6.399 2.906 6.399 7.218v2.79c1.265.187 1.851.984 1.851 2.53v9.094c0 1.758-.773 2.578-2.414 2.578H22.152c-1.617 0-2.39-.82-2.39-2.578Zm4.289-11.648 7.898-.023v-3c0-2.766-1.57-4.594-3.96-4.594-2.368 0-3.938 1.828-3.938 4.593Z\"\n })));\n};\nexport { SvgPasswordField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMjcuOTg4MyA1MS4yOTY5IEMgMjguMzYzMyA1MS4yOTY5IDI4Ljk0OTIgNTEuMTU2MiAyOS41NTg2IDUwLjg1MTYgQyA0Mi42NjAyIDQzLjQ2ODggNDcuMTgzNiA0MC4zNzUwIDQ3LjE4MzYgMzEuOTYwOSBMIDQ3LjE4MzYgMTQuMjg5MSBDIDQ3LjE4MzYgMTEuODc1MCA0Ni4xMjg5IDExLjEwMTYgNDQuMTgzNiAxMC4yODEzIEMgNDEuNDQxNCA5LjE1NjIgMzIuNjUyNCA1Ljk5MjIgMjkuOTMzNiA1LjAzMTMgQyAyOS4zMDA4IDQuODQzOCAyOC42NjgwIDQuNzAzMSAyNy45ODgzIDQuNzAzMSBDIDI3LjMzMjAgNC43MDMxIDI2LjY5OTIgNC44NDM4IDI2LjA2NjQgNS4wMzEzIEMgMjMuMzQ3NiA2LjAxNTYgMTQuNTU4NiA5LjE3OTcgMTEuODE2NCAxMC4yODEzIEMgOS44NzExIDExLjA3ODEgOC44MTY0IDExLjg3NTAgOC44MTY0IDE0LjI4OTEgTCA4LjgxNjQgMzEuOTYwOSBDIDguODE2NCA0MC4zNzUwIDEzLjM2MzMgNDMuNDQ1MyAyNi40NDE0IDUwLjg1MTYgQyAyNy4wNTA4IDUxLjE1NjIgMjcuNjEzMyA1MS4yOTY5IDI3Ljk4ODMgNTEuMjk2OSBaIE0gMTkuNzYxNyAzNS43MzQ0IEwgMTkuNzYxNyAyNi42NDA2IEMgMTkuNzYxNyAyNS4xMTcyIDIwLjM0NzYgMjQuMzIwMyAyMS41ODk4IDI0LjEzMjggTCAyMS41ODk4IDIxLjMyMDMgQyAyMS41ODk4IDE3LjAwNzggMjQuMTkxNCAxNC4xMDE2IDI3Ljk4ODMgMTQuMTAxNiBDIDMxLjgwODYgMTQuMTAxNiAzNC4zODY3IDE3LjAwNzggMzQuMzg2NyAyMS4zMjAzIEwgMzQuMzg2NyAyNC4xMDk0IEMgMzUuNjUyNCAyNC4yOTY5IDM2LjIzODMgMjUuMDkzOCAzNi4yMzgzIDI2LjY0MDYgTCAzNi4yMzgzIDM1LjczNDQgQyAzNi4yMzgzIDM3LjQ5MjIgMzUuNDY0OSAzOC4zMTI1IDMzLjgyNDIgMzguMzEyNSBMIDIyLjE1MjQgMzguMzEyNSBDIDIwLjUzNTEgMzguMzEyNSAxOS43NjE3IDM3LjQ5MjIgMTkuNzYxNyAzNS43MzQ0IFogTSAyNC4wNTA4IDI0LjA4NjAgTCAzMS45NDkyIDI0LjA2MjUgTCAzMS45NDkyIDIxLjA2MjUgQyAzMS45NDkyIDE4LjI5NjkgMzAuMzc4OSAxNi40Njg3IDI3Ljk4ODMgMTYuNDY4NyBDIDI1LjYyMTEgMTYuNDY4NyAyNC4wNTA4IDE4LjI5NjkgMjQuMDUwOCAyMS4wNjI1IFoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPhoneField = function SvgPhoneField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.156 37.762c6.774 6.773 15.024 12 21.75 12 3.024 0 5.672-1.055 7.805-3.399 1.242-1.383 2.016-3 2.016-4.593 0-1.172-.446-2.297-1.57-3.094l-7.173-5.11c-1.101-.75-2.015-1.125-2.859-1.125-1.078 0-2.016.61-3.094 1.664l-1.664 1.641a1.263 1.263 0 0 1-.89.375c-.375 0-.704-.14-.961-.258-1.43-.773-3.914-2.906-6.235-5.203-2.297-2.297-4.43-4.781-5.18-6.234a1.991 1.991 0 0 1-.257-.938c0-.304.093-.61.351-.867l1.64-1.71c1.056-1.079 1.665-2.017 1.665-3.095 0-.843-.375-1.757-1.148-2.859l-5.04-7.102c-.82-1.125-1.968-1.617-3.234-1.617-1.547 0-3.164.703-4.523 2.04-2.274 2.18-3.282 4.874-3.282 7.85 0 6.727 5.133 14.884 11.883 21.634Z\"\n })));\n};\nexport { SvgPhoneField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMTguMTU2MiAzNy43NjE3IEMgMjQuOTI5NyA0NC41MzUyIDMzLjE3OTcgNDkuNzYxNyAzOS45MDYyIDQ5Ljc2MTcgQyA0Mi45Mjk3IDQ5Ljc2MTcgNDUuNTc4MSA0OC43MDcwIDQ3LjcxMDkgNDYuMzYzMyBDIDQ4Ljk1MjggNDQuOTgwNSA0OS43MjY2IDQzLjM2MzMgNDkuNzI2NiA0MS43Njk1IEMgNDkuNzI2NiA0MC41OTc3IDQ5LjI4MTIgMzkuNDcyNyA0OC4xNTYyIDM4LjY3NTggTCA0MC45ODQzIDMzLjU2NjQgQyAzOS44ODI4IDMyLjgxNjQgMzguOTY4NyAzMi40NDE0IDM4LjEyNTAgMzIuNDQxNCBDIDM3LjA0NjggMzIuNDQxNCAzNi4xMDkzIDMzLjA1MDggMzUuMDMxMiAzNC4xMDU1IEwgMzMuMzY3MSAzNS43NDYxIEMgMzMuMTA5MyAzNi4wMDM5IDMyLjc4MTIgMzYuMTIxMSAzMi40NzY1IDM2LjEyMTEgQyAzMi4xMDE1IDM2LjEyMTEgMzEuNzczNCAzNS45ODA1IDMxLjUxNTYgMzUuODYzMyBDIDMwLjA4NTkgMzUuMDg5OCAyNy42MDE1IDMyLjk1NzEgMjUuMjgxMiAzMC42NjAyIEMgMjIuOTg0MyAyOC4zNjMzIDIwLjg1MTUgMjUuODc4OSAyMC4xMDE1IDI0LjQyNTggQyAxOS45NjA5IDI0LjE2ODAgMTkuODQzNyAyMy44Mzk4IDE5Ljg0MzcgMjMuNDg4MyBDIDE5Ljg0MzcgMjMuMTgzNiAxOS45Mzc1IDIyLjg3ODkgMjAuMTk1MyAyMi42MjExIEwgMjEuODM1OSAyMC45MTAyIEMgMjIuODkwNiAxOS44MzIwIDIzLjQ5OTkgMTguODk0NSAyMy40OTk5IDE3LjgxNjQgQyAyMy40OTk5IDE2Ljk3MjcgMjMuMTI1MCAxNi4wNTg2IDIyLjM1MTUgMTQuOTU3MSBMIDE3LjMxMjQgNy44NTU1IEMgMTYuNDkyMSA2LjczMDUgMTUuMzQzNyA2LjIzODMgMTQuMDc4MSA2LjIzODMgQyAxMi41MzEyIDYuMjM4MyAxMC45MTQwIDYuOTQxNCA5LjU1NDYgOC4yNzc0IEMgNy4yODEyIDEwLjQ1NzEgNi4yNzM0IDEzLjE1MjQgNi4yNzM0IDE2LjEyODkgQyA2LjI3MzQgMjIuODU1NSAxMS40MDYyIDMxLjAxMTcgMTguMTU2MiAzNy43NjE3IFoiLz48L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioButtons = function SvgRadioButtons(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 4h13v1H9zm0 17h13v-1H9zm0-8h13v-1H9zM7 4a3 3 0 1 1-3-3 3 3 0 0 1 3 3zM6 4a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2 2 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm-2-9a1 1 0 1 0 1 1 1 1 0 0 0-1-1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgRadioButtons as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05IDRoMTN2MUg5em0wIDE3aDEzdi0xSDl6bTAtOGgxM3YtMUg5ek03IDRhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzek02IDRhMiAyIDAgMSAwLTIgMiAyLjAwMyAyLjAwMyAwIDAgMCAyLTJ6bTEgOGEzIDMgMCAxIDEtMy0zIDMgMyAwIDAgMSAzIDN6bS0xIDBhMiAyIDAgMSAwLTIgMiAyIDIgMCAwIDAgMi0yem0xIDhhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzem0tMSAwYTIgMiAwIDEgMC0yIDIgMi4wMDMgMi4wMDMgMCAwIDAgMi0yem0tMi05YTEgMSAwIDEgMCAxIDEgMSAxIDAgMCAwLTEtMXoiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioField = function SvgRadioField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 4C5.32 4 4 5.32 4 7s1.32 3 3 3 3-1.32 3-3-1.32-3-3-3Zm0-3C3.7 1 1 3.7 1 7s2.7 6 6 6 6-2.7 6-6-2.7-6-6-6Zm0 10.8c-2.64 0-4.8-2.16-4.8-4.8 0-2.64 2.16-4.8 4.8-4.8 2.64 0 4.8 2.16 4.8 4.8 0 2.64-2.16 4.8-4.8 4.8z\"\n })));\n};\nexport { SvgRadioField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE0IDE0IiByb2xlPSJpbWciIGZvY3VzYWJsZT0iZmFsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gNyw0IEMgNS4zMiw0IDQsNS4zMiA0LDcgNCw4LjY4IDUuMzIsMTAgNywxMCA4LjY4LDEwIDEwLDguNjggMTAsNyAxMCw1LjMyIDguNjgsNCA3LDQgWiBNIDcsMSBDIDMuNywxIDEsMy43IDEsNyBjIDAsMy4zIDIuNyw2IDYsNiAzLjMsMCA2LC0yLjcgNiwtNiBDIDEzLDMuNyAxMC4zLDEgNywxIFogTSA3LDExLjggQyA0LjM2LDExLjggMi4yLDkuNjQgMi4yLDcgMi4yLDQuMzYgNC4zNiwyLjIgNywyLjIgYyAyLjY0LDAgNC44LDIuMTYgNC44LDQuOCAwLDIuNjQgLTIuMTYsNC44IC00LjgsNC44IHoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRangeField = function SvgRangeField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 11h-3.184a2.982 2.982 0 0 0-5.632 0H3a1 1 0 0 0 0 2h9.184a2.982 2.982 0 0 0 5.632 0H21a1 1 0 0 0 0-2Zm-6 2a1 1 0 1 1 1-1 1.001 1.001 0 0 1-1 1Z\"\n })));\n};\nexport { SvgRangeField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggZD0iTTIxLDExSDE3LjgxNTczYTIuOTgyMDgsMi45ODIwOCwwLDAsMC01LjYzMTQ2LDBIM2ExLDEsMCwwLDAsMCwyaDkuMTg0MzNhMi45ODIsMi45ODIsMCwwLDAsNS42MzE0LDBIMjFhMSwxLDAsMCwwLDAtMlptLTYsMmExLDEsMCwxLDEsMS0xQTEuMDAxMywxLjAwMTMsMCwwLDEsMTUsMTNaIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSelect = function SvgSelect(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 4H1c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1zm-5 7H1V5h9v6zm3-2.6L11 7h4l-2 1.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1e72bd\",\n d: \"M2 6h1v4H2V6z\"\n })));\n};\nexport { SvgSelect as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8cGF0aCBkPSJNMTUgNGgtMTRjLTAuNiAwLTEgMC40LTEgMXY2YzAgMC42IDAuNCAxIDEgMWgxNGMwLjYgMCAxLTAuNCAxLTF2LTZjMC0wLjYtMC40LTEtMS0xek0xMCAxMWgtOXYtNmg5djZ6TTEzIDguNGwtMi0xLjRoNGwtMiAxLjR6Ij48L3BhdGg+CjxwYXRoIGZpbGw9IiMxZTcyYmQiIGQ9Ik0yIDZoMXY0aC0xdi00eiI+PC9wYXRoPgo8L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextField = function SvgTextField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 9h2v30H8v3h8v-3h-2V9h2V6H8zM4 16h3.021v-4H0v24h7.042v-4H4zM16.979 12v4H44v16H16.958v4H48V12z\"\n })));\n};\nexport { SvgTextField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjgsOSAxMCw5IDEwLDEyIDEwLDE2IDEwLDM5IDgsMzkgOCw0MiAxNiw0MiAxNiwzOSAxNCwzOSAxNCwxNiAxNCwxMiAxNCw5IDE2LDkgMTYsNiA4LDYgICIvPgoNPHBvbHlnb24gcG9pbnRzPSI0LDE2IDcuMDIxLDE2IDcuMDIxLDEyIDAsMTIgMCwzNiA3LjA0MiwzNiA3LjA0MiwzMiA0LDMyICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTYuOTc5LDEyIDE2Ljk3OSwxNiA0NCwxNiA0NCwzMiAxNi45NTgsMzIgMTYuOTU4LDM2IDQ4LDM2IDQ4LDEyICAiLz4KDTwvZz4KDTwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextareaField = function SvgTextareaField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 33h-2V3h2V0H8v3h2v30H8v3h8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.031 6v4H44v34H4V10h2.938V6H0v42h48V6z\"\n })));\n};\nexport { SvgTextareaField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjE2LDMzIDE0LDMzIDE0LDEwIDE0LDYgMTQsMyAxNiwzIDE2LDAgOCwwIDgsMyAxMCwzIDEwLDYgMTAsMTAgMTAsMzMgOCwzMyA4LDM2IDE2LDM2ICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTcuMDMxLDYgMTcuMDMxLDEwIDQ0LDEwIDQ0LDQ0IDQsNDQgNCwxMCA2LjkzOCwxMCA2LjkzOCw2IDAsNiAwLDQ4IDQ4LDQ4IDQ4LDYgICIvPgoNPC9nPgoNPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgUrlField = function SvgUrlField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.794 12.794c-.478.475-1.113.737-1.794.737s-1.316-.262-1.794-.738a2.54 2.54 0 0 1 0-3.584L5.5 6.916 4.084 5.5 1.791 7.794a4.54 4.54 0 0 0 .003 6.413c.853.855 1.99 1.324 3.206 1.324s2.353-.469 3.206-1.325l2.294-2.294L9.084 10.5l-2.29 2.294zm7.412-11C13.353.938 12.216.469 11 .469S8.647.938 7.794 1.794L5.5 4.084 6.916 5.5 9.21 3.206c.474-.475 1.109-.737 1.79-.737s1.316.263 1.794.737a2.537 2.537 0 0 1 0 3.584L10.5 9.084l1.416 1.416 2.294-2.294a4.54 4.54 0 0 0-.004-6.412zm-2.5 3.912L10.29 4.29l-6 6 1.416 1.416 6-6z\"\n })));\n};\nexport { SvgUrlField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgaWQ9Imljb24tYm91bmQiIGZpbGw9Im5vbmUiIC8+CiAgPHBhdGggZD0iTTYuNzk0LDEyLjc5NEM2LjMxNiwxMy4yNjksNS42ODEsMTMuNTMxLDUsMTMuNTMxcy0xLjMxNi0wLjI2Mi0xLjc5NC0wLjczOGMtMC45ODctMC45ODgtMC45ODctMi41OTcsMC0zLjU4NEw1LjUsNi45MTYgTDQuMDg0LDUuNUwxLjc5MSw3Ljc5NGMtMS43NjYsMS43NjktMS43NjYsNC42NDQsMC4wMDMsNi40MTNDMi42NDcsMTUuMDYyLDMuNzg0LDE1LjUzMSw1LDE1LjUzMXMyLjM1My0wLjQ2OSwzLjIwNi0xLjMyNSBsMi4yOTQtMi4yOTRMOS4wODQsMTAuNUw2Ljc5NCwxMi43OTR6IE0xNC4yMDYsMS43OTRDMTMuMzUzLDAuOTM4LDEyLjIxNiwwLjQ2OSwxMSwwLjQ2OVM4LjY0NywwLjkzOCw3Ljc5NCwxLjc5NEw1LjUsNC4wODQgTDYuOTE2LDUuNWwyLjI5NC0yLjI5NEM5LjY4NCwyLjczMSwxMC4zMTksMi40NjksMTEsMi40NjlzMS4zMTYsMC4yNjMsMS43OTQsMC43MzdjMC45ODgsMC45ODcsMC45ODgsMi41OTcsMCwzLjU4NEwxMC41LDkuMDg0IGwxLjQxNiwxLjQxNmwyLjI5NC0yLjI5NEMxNS45NzUsNi40MzgsMTUuOTc1LDMuNTYyLDE0LjIwNiwxLjc5NHogTTExLjcwNiw1LjcwNmwtMS40MTYtMS40MTZsLTYsNmwxLjQxNiwxLjQxNkwxMS43MDYsNS43MDZ6IiAvPgo8L3N2Zz4=\";","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst moreVertical = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\"\n })\n});\nexport default moreVertical;\n//# sourceMappingURL=more-vertical.js.map","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { SUPPORTED_ATTRIBUTES } from '../../components/field-options/constants';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { InnerBlocks, useBlockProps } from '@wordpress/block-editor';\n\nconst blockAttributes = {\n\tname: {\n\t\ttype: 'string',\n\t},\n\tid: {\n\t\ttype: 'string',\n\t},\n\ttype: {\n\t\ttype: 'string',\n\t\tdefault: 'text',\n\t},\n\tlabel: {\n\t\ttype: 'string',\n\t},\n\thideLabel: {\n\t\ttype: 'boolean',\n\t},\n\tvalue: {\n\t\ttype: 'string',\n\t},\n\tplaceholder: {\n\t\ttype: 'string',\n\t},\n\trequired: {\n\t\ttype: 'boolean',\n\t},\n\trequiredText: {\n\t\ttype: 'string',\n\t},\n\tvalidation: {\n\t\ttype: 'string',\n\t},\n\treadonly: {\n\t\ttype: 'boolean',\n\t},\n\tshowHelp: {\n\t\ttype: 'string',\n\t},\n\thelp: {\n\t\ttype: 'string',\n\t},\n\twithButton: {\n\t\ttype: 'boolean',\n\t},\n\tenableMismatch: {\n\t\ttype: 'boolean',\n\t},\n\tenableAutoComplete: {\n\t\ttype: 'boolean',\n\t},\n\tadvanced: {\n\t\ttype: 'boolean',\n\t},\n\tnoWrapper: {\n\t\ttype: 'boolean',\n\t},\n\tgrouped: {\n\t\ttype: 'boolean',\n\t},\n};\n\nconst v1 = {\n\tattributes: blockAttributes,\n\tsave( { attributes, className } ) {\n\t\tconst {\n\t\t\tname,\n\t\t\tid,\n\t\t\ttype,\n\t\t\tlabel,\n\t\t\thideLabel,\n\t\t\tvalue,\n\t\t\tplaceholder,\n\t\t\trequired,\n\t\t\trequiredText,\n\t\t\treadonly,\n\t\t\tshowHelp,\n\t\t\thelp,\n\t\t\twithButton,\n\t\t\twithOutput,\n\t\t\tgrouped,\n\t\t\tvalidation,\n\t\t\tenableMismatch,\n\t\t\tenableAutoComplete,\n\t\t\tadvanced,\n\t\t\tnoWrapper,\n\t\t\tmismatchMessage,\n\t\t\tmatch,\n\t\t} = attributes;\n\n\t\tclassName = classnames( 'formello', {\n\t\t\t'formello-group': withButton || withOutput,\n\t\t\t'formello-group grouped': grouped,\n\t\t\t'formello-checkbox': 'checkbox' === type || 'radio' === type,\n\t\t} );\n\n\t\tconst labelClassName = classnames( {\n\t\t\thide: hideLabel,\n\t\t} );\n\n\t\tconst fieldClassName = classnames( {\n\t\t\tflatpickr: advanced && 'date' === type,\n\t\t\tfilepond: advanced && 'file' === type,\n\t\t} );\n\n\t\t// include only supported attributes\n\t\tconst htmlAttrs = Object.fromEntries(\n\t\t\tSUPPORTED_ATTRIBUTES[ type ].map( ( col ) => [\n\t\t\t\tcol,\n\t\t\t\tattributes[ col ],\n\t\t\t] )\n\t\t);\n\n\t\tif ( validation ) {\n\t\t\thtmlAttrs[ 'data-bouncer-message' ] = validation;\n\t\t}\n\n\t\tif ( enableMismatch && mismatchMessage ) {\n\t\t\thtmlAttrs[ 'data-bouncer-mismatch-message' ] = mismatchMessage;\n\t\t}\n\n\t\tif ( enableMismatch && match ) {\n\t\t\thtmlAttrs[ 'data-bouncer-match' ] = match;\n\t\t}\n\n\t\tif ( withOutput ) {\n\t\t\thtmlAttrs.oninput = 'this.nextElementSibling.value = this.value';\n\t\t}\n\n\t\tif ( ! enableAutoComplete ) {\n\t\t\thtmlAttrs.autocomplete = undefined;\n\t\t}\n\n\t\tif ( 'file' === type ) {\n\t\t\thtmlAttrs.name;\n\t\t\thtmlAttrs.accept = accept?.join( ',' );\n\t\t}\n\n\t\tif ( advanced && 'date' === type ) {\n\t\t\thtmlAttrs.type = 'text';\n\t\t\tObject.entries( flatpickr ).forEach( ( [ key, value ] ) => {\n\t\t\t\thtmlAttrs[ 'data-' + key ] = value;\n\t\t\t} );\n\t\t}\n\n\t\tif ( noWrapper || 'hidden' === type ) {\n\t\t\treturn ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{ 'hidden' !== type && (\n\t\t\t\t\t\n\t\t\t\t) }\n\n\t\t\t\t\n\n\t\t\t\t{ withButton && }\n\t\t\t\t{ withOutput && { value } }\n\t\t\t\t{ 'hidden' !== type && showHelp && (\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t
    \n\t\t);\n\t},\n};\n\nconst blockAttributesV2 = {\n\ttype: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'type',\n\t\tdefault: 'text',\n\t},\n\tid: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'id',\n\t},\n\tname: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'name',\n\t},\n\tlabel: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'label span:not(.required)',\n\t\tdefault: 'Label',\n\t\t__experimentalRole: 'content',\n\t},\n\thideLabel: {\n\t\ttype: 'boolean',\n\t\tselector: 'label.hide',\n\t\tdefault: false,\n\t},\n\tplaceholder: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'placeholder',\n\t\t__experimentalRole: 'content',\n\t},\n\tvalue: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'value',\n\t},\n\tvalidation: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'data-bouncer-message',\n\t\tdefault: '',\n\t},\n\tenableMismatch: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tmismatchMessage: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'data-bouncer-mismatch-message',\n\t\tdefault: '',\n\t},\n\tmatch: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'data-bouncer-match',\n\t},\n\trequired: {\n\t\ttype: 'boolean',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'required',\n\t\tdefault: false,\n\t},\n\trequiredText: {\n\t\ttype: 'string',\n\t\tsource: 'text',\n\t\tselector: 'label span.required',\n\t\tdefault: '*',\n\t},\n\tenableAutoComplete: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tautocomplete: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'autocomplete',\n\t\tdefault: 'off',\n\t},\n\tdisabled: {\n\t\ttype: 'boolean',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'disabled',\n\t\tdefault: false,\n\t},\n\treadonly: {\n\t\ttype: 'boolean',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'readonly',\n\t\tdefault: false,\n\t},\n\tchecked: {\n\t\ttype: 'boolean',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'checked',\n\t\tdefault: false,\n\t},\n\tmultiple: {\n\t\ttype: 'boolean',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'multiple',\n\t\tdefault: false,\n\t},\n\tshowHelp: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\thelp: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n\tminlength: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'minlength',\n\t},\n\tmaxlength: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'maxlength',\n\t},\n\tpattern: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'pattern',\n\t},\n\tmin: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'min',\n\t},\n\tmax: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'max',\n\t},\n\twithButton: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tgrouped: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\twithOutput: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tnoWrapper: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tstep: {\n\t\ttype: 'number',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'step',\n\t},\n\tdateFormat: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'data-date-format',\n\t},\n\tminDate: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'data-min-date',\n\t},\n\ttimeFormat: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'data-time-format',\n\t},\n\tenableTime: {\n\t\ttype: 'boolean',\n\t},\n\tinlineCalendar: {\n\t\ttype: 'boolean',\n\t},\n\tmode: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tattribute: 'data-mode',\n\t},\n\tadvanced: {\n\t\ttype: 'boolean',\n\t},\n};\n\nconst deprecated = [ v1 ];\n\nexport default deprecated;\n","import { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tInspectorAdvancedControls,\n\tBlockControls,\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\n\nimport { ToolbarGroup } from '@wordpress/components';\n\nimport { Hidden } from '../../icons/icons';\nimport Label from '../../components/label';\nimport Options from '../../components/field-options';\nimport ValidationOptions from '../../components/field-options/validation';\nimport AdvancedOptions from '../../components/field-options/advanced';\nimport Toolbar from '../../components/field-options/toolbar';\nimport { SUPPORTED_ATTRIBUTES } from '../../components/field-options/constants';\nimport { getInputClassesAndStyles } from './use-field-props';\n\nexport default function Edit( props ) {\n\tconst { attributes, setAttributes, context } = props;\n\tconst {\n\t\ttype,\n\t\tshowHelp,\n\t\tname,\n\t\tchecked,\n\t\tvalue,\n\t\tstep,\n\t\tplaceholder,\n\t\tautocomplete,\n\t\thelp,\n\t} = attributes;\n\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\tconst supported = SUPPORTED_ATTRIBUTES[ type ];\n\n\tconst fieldProps = getInputClassesAndStyles( attributes );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: fieldProps.containerClass,\n\t} );\n\n\tconst { children, ...innerBlocksProps } = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'formello/button', 'formello/output' ],\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t} );\n\n\tconst onChange = ( e ) => {\n\t\tif ( 'checkbox' === type || 'radio' === type ) {\n\t\t\tsetAttributes( { checked: ! checked } );\n\t\t}\n\t\tsetAttributes( { placeholder: e.target.value } );\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{ supported.includes( 'required' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t{ 'hidden' !== type && (\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t{ 'hidden' !== type ? (\n\t\t\t\t
    \n\t);\n}\n","import { registerBlockType, createBlock } from '@wordpress/blocks';\nimport Edit from './edit';\nimport save from './save';\nimport variations from './variations';\nimport deprecated from './deprecated';\nimport metadata from './block.json';\nimport { Input } from '../../icons/icons';\n\nimport './style.scss';\n\n/**\n * Every block starts by registering a new block type definition.\n *\n * @see https://developer.wordpress.org/block-editor/developers/block-api/#registering-a-block\n */\nregisterBlockType( metadata, {\n\tvariations,\n\n\tdeprecated,\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'formello/textarea' ],\n\t\t\t\ttransform: ( attrs ) => {\n\t\t\t\t\treturn createBlock( 'formello/input', attrs );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\t/**\n\t * An icon property should be specified to make it easier to identify a block.\n\t * These can be any of WordPress’ Dashicons, or a custom svg element.\n\t */\n\ticon: Input,\n\n\t/**\n\t * @see ./edit.js\n\t */\n\tedit: Edit,\n\n\t/**\n\t * @see ./save.js\n\t */\n\tsave,\n} );\n","import { RichText, useBlockProps, InnerBlocks } from '@wordpress/block-editor';\nimport clsx from 'clsx';\nimport { SUPPORTED_ATTRIBUTES } from '../../components/field-options/constants';\nimport { getInputClassesAndStyles } from './use-field-props';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\ttype,\n\t\tadvanced,\n\t\tvalidation,\n\t\tenableMismatch,\n\t\tmismatchMessage,\n\t\tmatch,\n\t\tenableAutoComplete,\n\t\tnoWrapper,\n\t\trequired,\n\t\trequiredText,\n\t\tlabel,\n\t\tshowHelp,\n\t\thelp,\n\t\tdateFormat,\n\t\tmode,\n\t\tinlineCalendar,\n\t\ttimeFormat,\n\t\tenableTime,\n\t\tminDate,\n\t} = attributes;\n\tconst blockProps = useBlockProps.save();\n\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst containerClass = clsx( blockProps.className );\n\n\tconst fieldProps = getInputClassesAndStyles( attributes );\n\n\t// include only supported attributes\n\tconst htmlAttrs = Object.fromEntries(\n\t\tSUPPORTED_ATTRIBUTES[ type ].map( ( col ) => [\n\t\t\tcol,\n\t\t\tattributes[ col ],\n\t\t] )\n\t);\n\n\tObject.keys( htmlAttrs ).forEach(\n\t\t( k ) => htmlAttrs[ k ] === '' && delete htmlAttrs[ k ]\n\t);\n\n\tif ( validation ) {\n\t\thtmlAttrs[ 'data-bouncer-message' ] = validation;\n\t}\n\n\tif ( enableMismatch && mismatchMessage ) {\n\t\thtmlAttrs[ 'data-bouncer-mismatch-message' ] = mismatchMessage;\n\t}\n\n\tif ( enableMismatch && match ) {\n\t\thtmlAttrs[ 'data-bouncer-match' ] = match;\n\t}\n\n\tif ( ! enableAutoComplete ) {\n\t\thtmlAttrs.autocomplete = undefined;\n\t}\n\n\tif ( advanced && 'date' === type ) {\n\t\thtmlAttrs[ 'data-date-format' ] = dateFormat;\n\t\thtmlAttrs[ 'data-time-format' ] = timeFormat;\n\t\thtmlAttrs[ 'data-mode' ] = mode;\n\t\thtmlAttrs[ 'data-min-date' ] = minDate;\n\t\thtmlAttrs[ 'data-inline' ] = inlineCalendar || undefined;\n\t\thtmlAttrs[ 'data-enable-time' ] = enableTime || undefined;\n\t}\n\n\tif ( advanced && 'time' === type ) {\n\t\thtmlAttrs[ 'data-time-format' ] = timeFormat;\n\t\thtmlAttrs[ 'data-enable-time' ] = enableTime;\n\t}\n\n\tif ( noWrapper || 'hidden' === type ) {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n\n\tif ( ! htmlAttrs.name ) {\n\t\thtmlAttrs.name = label;\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t\n\t\t\t) }\n\n\t\t\t\n\n\t\t\t\n\t\t\t{ 'hidden' !== type && showHelp && (\n\t\t\t\t\n\t\t\t) }\n\t\t
    \n\t);\n}\n","import {\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport clsx from 'clsx';\n\nexport function getInputClassesAndStyles( attributes ) {\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst { name, type, advanced, hideLabel } = attributes;\n\n\tconst containerClass = clsx( {\n\t\t'missing-name': ! name,\n\t} );\n\n\tconst labelClass = clsx( {\n\t\thide: hideLabel,\n\t\t'textarea-label': 'textarea' === type,\n\t} );\n\n\tconst inputClass = clsx(\n\t\tborderProps.className,\n\t\tspacingProps.className,\n\t\tcolorProps.className,\n\t\t{\n\t\t\t'formello-advanced': advanced,\n\t\t\t'formello-rtf': advanced && 'textarea' === type,\n\t\t}\n\t);\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...spacingProps.style,\n\t\t...colorProps.style,\n\t};\n\n\treturn {\n\t\tcontainerClass,\n\t\tlabelClass,\n\t\tinputClass,\n\t\tinputStyle,\n\t};\n}\n","import { SVG, Rect } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tCheckbox,\n\tGDPR,\n\tInput,\n\tHidden,\n\tRange,\n\tPassword,\n\tEmail,\n\tUrl,\n\tClock,\n\tCalendar,\n\tColor,\n\tTel,\n\tNumber as NumberField,\n\tRadio,\n} from '../../icons/icons';\n\nconst variations = [\n\t{\n\t\tname: 'text-field',\n\t\ttitle: __( 'Text' ),\n\t\ticon: Input,\n\t\tdescription: __( 'A basic single-line text field.', 'formello' ),\n\t\tattributes: { type: 'text' },\n\t\tscope: [ 'transform' ],\n\t},\n\t{\n\t\tname: 'hidden',\n\t\ttitle: __( 'Hidden' ),\n\t\tdescription: __( 'Display hidden field.', 'formello' ),\n\t\ticon: Hidden,\n\t\tattributes: { type: 'hidden' },\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tname: 'checkbox',\n\t\ttitle: __( 'Checkbox' ),\n\t\tdescription: __( 'A simple checkbox input.' ),\n\t\ticon: Checkbox,\n\t\tattributes: { type: 'checkbox' },\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tname: 'radio',\n\t\ttitle: __( 'Radio' ),\n\t\tdescription: __( 'A simple radio input.' ),\n\t\ticon: Radio,\n\t\tattributes: { type: 'radio' },\n\t\tscope: [ 'block' ],\n\t},\n\t{\n\t\tname: 'gdpr',\n\t\ttitle: __( 'GDPR' ),\n\t\ticon: GDPR,\n\t\tattributes: {\n\t\t\tname: 'checkbox',\n\t\t\ttype: 'checkbox',\n\t\t\tlabel: __(\n\t\t\t\t'I agree with the Terms of service and Privacy policy',\n\t\t\t\t'formello'\n\t\t\t),\n\t\t\trequired: true,\n\t\t},\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tname: 'range',\n\t\ttitle: __( 'Range' ),\n\t\ticon: Range,\n\t\tattributes: { type: 'range' },\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tname: 'email',\n\t\ttitle: __( 'Email' ),\n\t\tdescription: __( 'Used for email addresses.' ),\n\t\ticon: Email,\n\t\tattributes: { type: 'email' },\n\t\tscope: [ 'inserter', 'transform' ],\n\t},\n\t{\n\t\tname: 'number',\n\t\ttitle: __( 'Number' ),\n\t\ticon: NumberField,\n\t\tattributes: { type: 'number' },\n\t\tscope: [ 'inserter', 'transform' ],\n\t},\n\t{\n\t\tname: 'color',\n\t\ttitle: __( 'Color' ),\n\t\ticon: Color,\n\t\tattributes: { type: 'color' },\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tname: 'date',\n\t\ttitle: __( 'Date' ),\n\t\ticon: Calendar,\n\t\tattributes: { type: 'date' },\n\t\tscope: [ 'inserter', 'transform' ],\n\t},\n\t{\n\t\tname: 'time',\n\t\ttitle: __( 'Time' ),\n\t\ticon: Clock,\n\t\tattributes: { type: 'time' },\n\t\tscope: [ 'inserter', 'transform' ],\n\t},\n\t{\n\t\tname: 'tel',\n\t\ttitle: __( 'Tel' ),\n\t\ticon: Tel,\n\t\tattributes: { type: 'tel' },\n\t\tscope: [ 'inserter', 'transform' ],\n\t},\n\t{\n\t\tname: 'url',\n\t\ttitle: __( 'Url' ),\n\t\ticon: Url,\n\t\tattributes: { type: 'url' },\n\t\tscope: [ 'inserter', 'transform' ],\n\t},\n\t{\n\t\tname: 'inputbutton',\n\t\ttitle: __( 'Input with button' ),\n\t\ticon: (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\tattributes: {\n\t\t\ttype: 'email',\n\t\t\tlabel: 'Email',\n\t\t\twithButton: true,\n\t\t},\n\t\tinnerBlocks: [ [ 'formello/button', { noWrapper: true } ] ],\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tname: 'password',\n\t\ttitle: __( 'Password' ),\n\t\ticon: Password,\n\t\tattributes: {\n\t\t\ttype: 'password',\n\t\t\tpattern:\n\t\t\t\t'^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*_=+-]).{8,12}$',\n\t\t\tvalidation:\n\t\t\t\t'Please choose a password that includes at least 1 uppercase character, 1 lowercase character, and 1 number.',\n\t\t},\n\t\tscope: [ 'inserter' ],\n\t},\n];\n\n/**\n * Add `isActive` function to all `embed` variations, if not defined.\n * `isActive` function is used to find a variation match from a created\n * Block by providing its attributes.\n */\nvariations.forEach( ( variation ) => {\n\tif ( 'file' === variation.name ) {\n\t\tvariation.attributes.value = undefined;\n\t}\n\tif ( 'radio' !== variation.name || 'checkbox' !== variation.name ) {\n\t\tvariation.attributes.checked = undefined;\n\t}\n\tif ( 'date' !== variation.name ) {\n\t\tvariation.attributes.advanced = false;\n\t}\n\tvariation.isActive = ( blockAttributes, variationAttributes ) =>\n\t\tblockAttributes.type === variationAttributes.type;\n} );\n\nexport default variations;\n","import { __ } from '@wordpress/i18n';\n\nimport { ToggleControl, TextControl, withFilters } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nimport { createBlocksFromInnerBlocksTemplate } from '@wordpress/blocks';\n\nimport { Fragment } from '@wordpress/element';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\n\nfunction AdvancedOptions( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\ttype,\n\t\t\tdisabled,\n\t\t\tenableAutoComplete,\n\t\t\tautocomplete,\n\t\t\treadonly,\n\t\t\tadvanced,\n\t\t},\n\t\tsetAttributes,\n\t\tfieldType,\n\t\tclientId,\n\t} = props;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ fieldType ];\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn !! ( block && block.innerBlocks.length );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\tconst addOutput = () => {\n\t\tlet child = 'formello/button';\n\t\tif ( 'range' === type ) {\n\t\t\tchild = 'formello/output';\n\t\t}\n\t\treplaceInnerBlocks(\n\t\t\tprops.clientId,\n\t\t\tcreateBlocksFromInnerBlocksTemplate( [ [ child ] ] ),\n\t\t\ttrue\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t{ supported.includes( 'cols' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { advanced: newval } )\n\t\t\t\t\t}\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ supported.includes( 'autocomplete' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { enableAutoComplete: newval } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __( 'Hint for form autofill feature.', 'formello' ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ enableAutoComplete && supported.includes( 'autocomplete' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { autocomplete: newval } )\n\t\t\t\t\t}\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'range' === type && (\n\t\t\t\t {\n\t\t\t\t\t\tif ( newval ) {\n\t\t\t\t\t\t\tsetAttributes( { withOutput: true } );\n\t\t\t\t\t\t\taddOutput();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetAttributes( { withOutput: false } );\n\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [], true );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { disabled: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Make the control not accept clicks.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { readonly: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __( 'Make value not editable.', 'formello' ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t);\n}\n\nexport default withFilters( 'formello.advancedOptions' )( AdvancedOptions );\n","export const SUPPORTED_ATTRIBUTES = {\n\thidden: [ 'name', 'id', 'type', 'value' ],\n\ttext: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\ttel: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\turl: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\temail: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'autocomplete',\n\t],\n\tpassword: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'pattern',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'autocomplete',\n\t],\n\tnumber: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\tdate: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\ttime: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\trange: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\tcheckbox: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'checked',\n\t],\n\tradio: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'checked',\n\t],\n\tfile: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'required',\n\t\t'disabled',\n\t\t'accept',\n\t\t'capture',\n\t\t'multiple',\n\t],\n\tcolor: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t],\n\ttextarea: [\n\t\t'name',\n\t\t'id',\n\t\t'required',\n\t\t'value',\n\t\t'type', // hack to use one component\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'cols',\n\t\t'rows',\n\t],\n\tselect: [ 'name', 'id', 'required', 'readonly', 'disabled', 'multiple' ],\n};\n","import { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { SelectControl, ToggleControl } from '@wordpress/components';\n\nexport default function DatepickerSettings( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\tadvanced,\n\t\t\ttype,\n\t\t\tdateFormat,\n\t\t\ttimeFormat,\n\t\t\tenableTime,\n\t\t\tinlineCalendar,\n\t\t\tmode,\n\t\t\tminDate,\n\t\t},\n\t\tsetAttributes,\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t{ advanced && 'date' === type && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { minDate: val ? 'today' : false } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { dateFormat: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { enableTime: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t setAttributes( { mode: val } ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { inlineCalendar: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tButton,\n} from '@wordpress/components';\n\nimport { Fragment } from '@wordpress/element';\nimport MergeTags from '../merge-tags';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\n\nconst sanitizedName = ( content ) => {\n\treturn (\n\t\tcontent\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '_' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function Options( props ) {\n\tconst { attributes, setAttributes, clientId, setModalOpen, fieldType } =\n\t\tprops;\n\n\tconst {\n\t\ttype,\n\t\tname,\n\t\tvalue,\n\t\tplaceholder,\n\t\trequired,\n\t\tmultiple,\n\t\tchecked,\n\t\tshowHelp,\n\t} = attributes;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ fieldType ];\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { name: sanitizedName( val ) } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" attribute of the input element, and is used as a name for the form submission results.',\n\t\t\t\t\t\t'formello'\n\t\t\t\t\t) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t\t{ supported.includes( 'value' ) && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { value: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The initial value of the control field.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'placeholder' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { placeholder: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Text that appears in the form control when it has no value set.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'required' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { required: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'multiple' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { multiple: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'checked' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { checked: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! ( 'hidden' === type ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { showHelp: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ 'select' === fieldType && (\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetModalOpen( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage Options', 'formello' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { __ } from '@wordpress/i18n';\nimport { SVG, Rect, ToolbarButton } from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport { Asterisk } from '../../icons/icons';\n\nexport default function Toolbar( props ) {\n\tconst { attributes, setAttributes } = props;\n\tconst { required, showHelp, hideLabel, type } = attributes;\n\n\tconst toggleLabel = (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\tsetAttributes( { required: ! required } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ ( 'checkbox' || 'radio' ) !== type && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { hideLabel: ! hideLabel } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t {\n\t\t\t\t\tsetAttributes( { showHelp: ! showHelp } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\n\nimport {\n\tToggleControl,\n\tTextControl,\n\tSelectControl,\n\tPanelBody,\n} from '@wordpress/components';\n\nimport { Fragment } from '@wordpress/element';\nimport MergeTags from '../merge-tags';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\nimport DatepickerSettings from './date';\n\nimport { getPatternTabs, serializeFieldsName } from '../merge-tags/functions';\n\nfunction ValidationOptions( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\ttype,\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tadvanced,\n\t\t\tstep,\n\t\t\tminlength,\n\t\t\tmaxlength,\n\t\t\tvalidation,\n\t\t\tenableMismatch,\n\t\t\tpattern,\n\t\t\tmatch,\n\t\t\tmismatchMessage,\n\t\t},\n\t\tsetAttributes,\n\t\tclientId,\n\t} = props;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ type ?? 'textarea' ];\n\n\tif ( 'checkbox' === type || 'email' === type ) {\n\t\treturn null;\n\t}\n\n\tconst fields = serializeFieldsName();\n\n\tconst tabs = getPatternTabs();\n\n\treturn (\n\t\t\n\t\t\t{ 'date' === type && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { advanced: val } );\n\t\t\t\t\t} }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ( 'date' === type || 'time' === type ) && (\n\t\t\t\t\n\t\t\t) }\n\n\t\t\t{ applyFilters( 'formello.Validation', '', props ) }\n\n\t\t\t{ supported.includes( 'step' ) && ! advanced && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { min: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { max: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { step: Number( val ) } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\t{ supported.includes( 'minlength' ) && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { minlength: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Minimum length (number of characters) of value.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { maxlength: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Maximum length (number of characters) of value.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\t{ supported.includes( 'pattern' ) && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { pattern: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Pattern the value must match to be valid.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\t{ supported.includes( 'pattern' ) && (\n\t\t\t\t setAttributes( { validation: val } ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ supported.includes( 'mismatch' ) && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { enableMismatch: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t{ enableMismatch && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tsetAttributes( { match: val } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Select the field to match.',\n\t\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tsetAttributes( { mismatchMessage: val } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t) }\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t);\n}\n\nexport default ValidationOptions;\n","import { __ } from '@wordpress/i18n';\nimport { RichText, store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nimport clsx from 'clsx';\n\nexport default function Label( { attributes, setAttributes, context } ) {\n\tconst {\n\t\tlabelClass,\n\t\tlabelAlign,\n\t\tlabelVAlign,\n\t\thideLabel,\n\t\trequired,\n\t\tmultiple,\n\t\ttype,\n\t\tlabel,\n\t} = attributes;\n\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t\tisPreview: getSettings().__unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\n\tconst [ meta ] = useEntityProp(\n\t\t'postType',\n\t\t'formello_form',\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tconst labelClassName = clsx(\n\t\t'label-div',\n\t\tlabelClass,\n\t\tlabelAlign,\n\t\tlabelVAlign,\n\t\t{\n\t\t\thide: hideLabel,\n\t\t\trequired,\n\t\t\t'textarea-label': multiple || 'textarea' === type,\n\t\t}\n\t);\n\n\treturn (\n\t\t
    \n\t\t\t {\n\t\t\t\t\tsetAttributes( { label: val } );\n\t\t\t\t} }\n\t\t\t\tplaceholder={ __( 'Enter label…', 'formello' ) }\n\t\t\t\tallowedFormats={ [ 'core/bold', 'core/italic', 'core/link' ] }\n\t\t\t/>\n\n\t\t\t{ required && (\n\t\t\t\t\n\t\t\t\t\t{ context[ 'formello/requiredText' ] || '*' }\n\t\t\t\t\n\t\t\t) }\n\t\t
    \n\t);\n}\n","import { applyFilters } from '@wordpress/hooks';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nconst allowed = [\n\t'formello/input',\n\t'formello/select',\n\t'formello/textarea',\n\t'formello/multichoices',\n];\n\n/**\n * Find the input fields blocks IDS.\n */\nexport function getFieldsBlock() {\n\tconst fields = [];\n\tconst inputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/input' );\n\tconst textareas =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/textarea' );\n\tconst selects =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/select' );\n\tconst outputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/output' );\n\tconst multichoices = select( blockEditorStore ).getBlocksByName(\n\t\t'formello/multichoices'\n\t);\n\n\tconst fieldsId = inputs.concat( textareas, selects, outputs, multichoices );\n\n\tfieldsId.forEach( ( b ) => {\n\t\tconst block = select( blockEditorStore ).getBlock( b );\n\t\tif ( allowed.includes( block.name ) ) {\n\t\t\tfields.push( block );\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Validate form before saving\n */\nexport function validate() {\n\tconst fields = {\n\t\tnames: [],\n\t\tbuttons:\n\t\t\tselect( blockEditorStore ).getBlocksByName( 'formello/button' ),\n\t};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.names.push( b.attributes.name );\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Get fields type.\n */\nexport function getFieldsType() {\n\tconst fields = {};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\t// get block type by name\n\t\tlet type = b.name.split( '/' )[ 1 ];\n\t\tif ( 'input' === type ) {\n\t\t\ttype = b.attributes.type;\n\t\t}\n\n\t\tfields[ b.attributes.name ] = type;\n\t\tif ( b.attributes.enableRtf ) {\n\t\t\tfields[ b.attributes.name ] = 'richtext';\n\t\t}\n\t\tif ( b.attributes.multiple && 'select' === type ) {\n\t\t\tfields[ b.attributes.name ] = type + '-multiple';\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFields() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\ttitle: b.attributes.name,\n\t\t\ttag: '{{fields.' + b.attributes.name + '}}',\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFieldsName() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\tlabel: b.attributes.name,\n\t\t\tvalue: b.attributes.name,\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function getFieldsTags() {\n\tconst fields = serializeFields();\n\n\treturn [\n\t\t{\n\t\t\ttitle: 'All Data',\n\t\t\ttag: '{{fields.all_data}}',\n\t\t},\n\t\t...fields,\n\t];\n}\n\nexport function getConstraints() {\n\tconst constraints = {};\n\tconst fields = getFieldsBlock();\n\n\tif ( fields ) {\n\t\tfields.forEach( ( b ) => {\n\t\t\tconst constraint = getFieldConstraint( b );\n\t\t\tlet name = b.attributes.name;\n\n\t\t\tif ( b.attributes.multiple ) {\n\t\t\t\tname += '.*';\n\t\t\t}\n\t\t\tif ( constraint ) {\n\t\t\t\tconstraints[ name ] = constraint;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn constraints;\n}\n\nexport function getFieldConstraint( field ) {\n\tlet constraints = [];\n\n\tif ( field.attributes.type === 'url' ) {\n\t\tconstraints.push( 'url' );\n\t}\n\n\tif ( field.attributes.required ) {\n\t\tconstraints.push( 'required' );\n\t}\n\n\tif ( field.attributes.minlength ) {\n\t\tconstraints.push( 'minlength:' + field.attributes.minlength );\n\t}\n\n\tif ( field.attributes.maxlength ) {\n\t\tconstraints.push( 'maxlength:' + field.attributes.maxlength );\n\t}\n\n\tif ( field.attributes.min && 'date' !== field.attributes.type ) {\n\t\tconstraints.push( 'min:' + field.attributes.min );\n\t}\n\n\tif (\n\t\tfield.attributes.max &&\n\t\t'date' !== field.attributes.type &&\n\t\t'file' !== field.attributes.type\n\t) {\n\t\tconstraints.push( 'max:' + field.attributes.max );\n\t}\n\n\tif ( field.attributes.type === 'email' ) {\n\t\tconstraints.push( 'email' );\n\t}\n\n\tif (\n\t\tfield.attributes.type === 'number' ||\n\t\tfield.attributes.type === 'range'\n\t) {\n\t\tconstraints.push( 'numeric' );\n\t}\n\n\tif ( 'date' === field.attributes.type && ! field.attributes.advanced ) {\n\t\tconstraints.push( 'date' );\n\t}\n\n\tif ( field.attributes.pattern ) {\n\t\tconst regEx = new RegExp( field.attributes.pattern );\n\t\tconstraints.push( 'regex:' + regEx );\n\t}\n\n\tif ( field.attributes.enableMismatch && '' !== field.attributes.match ) {\n\t\tconstraints.push( 'same:' + field.attributes.match );\n\t}\n\n\tapplyFilters( 'formello.constraints', constraints, field );\n\n\tif ( constraints.length ) {\n\t\tconstraints = constraints.join( '|' );\n\t}\n\n\treturn constraints.length ? constraints : undefined;\n}\n\nexport function getMetaTags() {\n\tconst postType = select( 'core/editor' ).getCurrentPostType();\n\tconst postId = select( 'core/editor' ).getCurrentPostId();\n\n\tconst [ meta ] = useEntityProp( 'postType', postType, 'meta', postId );\n\tconst metaTags = [];\n\n\tfor ( const key in meta ) {\n\t\tif ( meta[ key ] !== Object( key ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst tag = {\n\t\t\ttitle: key,\n\t\t\ttag: `{{meta.${ key }}}`,\n\t\t};\n\t\tmetaTags.push( tag );\n\t}\n\n\treturn metaTags;\n}\n\nexport function getWordpressTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Post ID',\n\t\t\ttag: `{{wp.post_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Title',\n\t\t\ttag: `{{wp.post_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post URL',\n\t\t\ttag: `{{wp.post_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author',\n\t\t\ttag: `{{wp.post_author}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author Email',\n\t\t\ttag: `{{wp.post_author_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User ID',\n\t\t\ttag: `{{wp.user_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User First Name',\n\t\t\ttag: `{{wp.user_first_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Last Name',\n\t\t\ttag: `{{wp.user_last_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Display Name',\n\t\t\ttag: `{{wp.user_display_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Username',\n\t\t\ttag: `{{wp.user_username}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Email',\n\t\t\ttag: `{{wp.user_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User URL',\n\t\t\ttag: `{{wp.user_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site Title',\n\t\t\ttag: `{{wp.site_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site URL',\n\t\t\ttag: `{{wp.site_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Admin Email',\n\t\t\ttag: `{{wp.admin_email}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getFormTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Form ID',\n\t\t\ttag: `{{form.form_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Form Label',\n\t\t\ttag: `{{form.form_name}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getOtherTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Date',\n\t\t\ttag: `{{other.system_date}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Time',\n\t\t\ttag: `{{other.system_time}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Referrer URL',\n\t\t\ttag: `{{other.referrer}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User IP',\n\t\t\ttag: `{{other.user_ip}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getPatternTabs() {\n\tconst passwords = [\n\t\t{\n\t\t\ttitle: 'Password',\n\t\t\ttag: `^(?=.*[A-Za-z])(?=.*\\\\d)[A-Za-z\\\\d]{8,}$`,\n\t\t\tdescription: 'One uppercase, one number, at least 8 chars',\n\t\t},\n\t\t{\n\t\t\ttitle: 'Password with special characters',\n\t\t\ttag: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$`,\n\t\t\tdescription:\n\t\t\t\t'One uppercase, one number, one special chars, at least 8 chars',\n\t\t},\n\t];\n\n\tconst dates = [\n\t\t{\n\t\t\ttitle: 'dd/mm/yyyy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{4}$',\n\t\t},\n\t\t{\n\t\t\ttitle: 'dd/mm/yy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{2}$',\n\t\t},\n\t];\n\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'passwords',\n\t\t\ttitle: 'Passwords',\n\t\t\tdata: passwords,\n\t\t},\n\t\t{\n\t\t\tname: 'dates',\n\t\t\ttitle: 'Dates',\n\t\t\tdata: dates,\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport {\n\tBaseControl,\n\tDropdownMenu,\n\t__experimentalInputControl as InputControl,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { defaultTabs } from './use-tabs';\nimport TabContent from './tab-content';\n\nexport default function MergeTags( props ) {\n\tconst {\n\t\tlabel,\n\t\tvalue,\n\t\tplaceholder,\n\t\thelp,\n\t\tonChange,\n\t\ticon = moreVertical,\n\t\tclientId,\n\t\ttabs = defaultTabs( clientId ),\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) }\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t\n\t);\n}\n\nexport function MergeTagsMenu( props ) {\n\tconst { label, onChange, icon = moreVertical, clientId } = props;\n\n\tconst tabs = defaultTabs( clientId );\n\n\treturn (\n\t\t\n\t\t\t{ () => }\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { SearchControl, TabPanel, MenuItem } from '@wordpress/components';\nimport { useState, Fragment } from '@wordpress/element';\n\nexport default function TabContent( { tabs, onChange } ) {\n\tconst [ searchInput, setSearchInput ] = useState( '' );\n\n\tconst filterAddon = ( element ) => {\n\t\tif ( '' === searchInput ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn (\n\t\t\telement.title.toLowerCase().search( searchInput.toLowerCase() ) !==\n\t\t\t-1\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ ( tab ) =>\n\t\t\t\t\ttab.data\n\t\t\t\t\t\t.filter( ( element ) => {\n\t\t\t\t\t\t\treturn filterAddon( element );\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.map( ( data ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t onChange( data.tag ) }\n\t\t\t\t\t\t\t\t\tinfo={ data.description }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ data.title }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n}\n","import {\n\tgetFieldsTags,\n\tgetWordpressTags,\n\tgetOtherTags,\n\tgetMetaTags,\n} from './functions';\n\nexport function defaultTabs( clientId ) {\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'fields',\n\t\t\ttitle: 'Fields',\n\t\t\tdata: getFieldsTags( clientId ),\n\t\t},\n\t\t{\n\t\t\tname: 'wordpress',\n\t\t\ttitle: 'WordPress',\n\t\t\tdata: getWordpressTags(),\n\t\t},\n\t\t{\n\t\t\tname: 'other',\n\t\t\ttitle: 'Other',\n\t\t\tdata: getOtherTags(),\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","import { ReactComponent as Asterisk } from '../../assets/icons/asterisk.svg';\nimport { ReactComponent as Checkbox } from '../../assets/icons/checkbox.svg';\nimport { ReactComponent as Calendar } from '../../assets/icons/date-field.svg';\nimport { ReactComponent as Checkboxes } from '../../assets/icons/checkboxes.svg';\nimport { ReactComponent as Clock } from '../../assets/icons/clock-field.svg';\nimport { ReactComponent as Color } from '../../assets/icons/color-field.svg';\nimport { ReactComponent as Email } from '../../assets/icons/email-field.svg';\nimport { ReactComponent as Fieldset } from '../../assets/icons/fieldset.svg';\nimport { ReactComponent as Form } from '../../assets/icons/form.svg';\nimport { ReactComponent as GDPR } from '../../assets/icons/gdpr-field.svg';\nimport { ReactComponent as Hidden } from '../../assets/icons/hidden-field.svg';\nimport { ReactComponent as Input } from '../../assets/icons/text-field.svg';\nimport { ReactComponent as Logo } from '../../assets/icons/logo.svg';\nimport { ReactComponent as Number } from '../../assets/icons/number-field.svg';\nimport { ReactComponent as Password } from '../../assets/icons/password-field.svg';\nimport { ReactComponent as Range } from '../../assets/icons/range-field.svg';\nimport { ReactComponent as Radio } from '../../assets/icons/radio-field.svg';\nimport { ReactComponent as Radios } from '../../assets/icons/radio-buttons.svg';\nimport { ReactComponent as Select } from '../../assets/icons/select.svg';\nimport { ReactComponent as Tel } from '../../assets/icons/phone-field.svg';\nimport { ReactComponent as Textarea } from '../../assets/icons/textarea-field.svg';\nimport { ReactComponent as Url } from '../../assets/icons/url-field.svg';\n\nexport {\n\tAsterisk,\n\tCheckbox,\n\tCheckboxes,\n\tClock,\n\tColor,\n\tEmail,\n\tFieldset,\n\tForm,\n\tGDPR,\n\tHidden,\n\tInput,\n\tLogo,\n\tNumber,\n\tPassword,\n\tRadio,\n\tRange,\n\tRadios,\n\tSelect,\n\tTel,\n\tTextarea,\n\tUrl,\n\tCalendar,\n};\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// extracted by mini-css-extract-plugin\nexport {};","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"hooks\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"primitives\"];","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"blocks/input/index\": 0,\n\t\"blocks/input/style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkformello\"] = self[\"webpackChunkformello\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"blocks/input/style-index\"], () => (__webpack_require__(\"./src/blocks/input/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["classnames","SUPPORTED_ATTRIBUTES","createBlock","InnerBlocks","useBlockProps","jsx","_jsx","jsxs","_jsxs","blockAttributes","name","type","id","default","label","hideLabel","value","placeholder","required","requiredText","validation","readonly","showHelp","help","withButton","enableMismatch","enableAutoComplete","advanced","noWrapper","grouped","v1","attributes","save","className","withOutput","mismatchMessage","match","labelClassName","hide","fieldClassName","flatpickr","filepond","htmlAttrs","Object","fromEntries","map","col","oninput","autocomplete","undefined","accept","join","entries","forEach","key","children","htmlFor","Content","RichText","tagName","blockAttributesV2","source","selector","attribute","__experimentalRole","disabled","checked","multiple","minlength","maxlength","pattern","min","max","step","dateFormat","minDate","timeFormat","enableTime","inlineCalendar","mode","deprecated","__","InspectorControls","InspectorAdvancedControls","BlockControls","useInnerBlocksProps","ToolbarGroup","Hidden","Label","Options","ValidationOptions","AdvancedOptions","Toolbar","getInputClassesAndStyles","Edit","props","setAttributes","context","TagName","supported","fieldProps","blockProps","containerClass","innerBlocksProps","allowedBlocks","orientation","renderAppender","onChange","e","target","includes","fieldType","width","height","inputClass","style","inputStyle","autoComplete","val","allowedFormats","multiline","registerBlockType","variations","metadata","Input","transforms","from","blocks","transform","attrs","icon","edit","clsx","keys","k","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetSpacingClassesAndStyles","getSpacingClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","borderProps","spacingProps","colorProps","labelClass","SVG","Rect","Checkbox","GDPR","Range","Password","Email","Url","Clock","Calendar","Color","Tel","Number","NumberField","Radio","title","description","scope","xmlns","viewBox","x","y","stroke","strokeWidth","fill","rx","innerBlocks","variation","isActive","variationAttributes","ToggleControl","TextControl","withFilters","useSelect","useDispatch","store","blockEditorStore","createBlocksFromInnerBlocksTemplate","Fragment","clientId","hasInnerBlocks","select","getBlock","block","length","replaceInnerBlocks","addOutput","child","newval","__nextHasNoMarginBottom","hidden","text","tel","url","email","password","number","date","time","range","checkbox","radio","file","color","textarea","SelectControl","DatepickerSettings","options","PanelBody","Button","MergeTags","sanitizedName","content","replace","toLowerCase","setModalOpen","initialOpen","variant","onClick","ToolbarButton","Asterisk","toggleLabel","isPressed","applyFilters","getPatternTabs","serializeFieldsName","fields","tabs","useEntityProp","labelAlign","labelVAlign","postType","postId","getSettings","getCurrentPostType","getCurrentPostId","isPreview","__unstableIsPreviewMode","meta","allowed","getFieldsBlock","inputs","getBlocksByName","textareas","selects","outputs","multichoices","fieldsId","concat","b","push","validate","names","buttons","fieldsBlock","getFieldsType","split","enableRtf","serializeFields","tag","getFieldsTags","getConstraints","constraints","constraint","getFieldConstraint","field","regEx","RegExp","getMetaTags","metaTags","getWordpressTags","tags","getFormTags","getOtherTags","passwords","dates","data","BaseControl","DropdownMenu","__experimentalInputControl","InputControl","moreVertical","defaultTabs","TabContent","suffix","toggleProps","isSmall","size","MergeTagsMenu","SearchControl","TabPanel","MenuItem","useState","searchInput","setSearchInput","filterAddon","element","search","tab","filter","info","ReactComponent","Checkboxes","Fieldset","Form","Logo","Radios","Select","Textarea"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"blocks/input/index.js","mappings":";;;;;;;;;;;;;;;;;AAAA;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG;AACH;AACyC;AACzC,iEAAe,oBAAoB,gpBAAgpB;;;;;;;;;;;;;;;;;;ACdnrB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AACyC;AACzC,iEAAe,oBAAoB,4kBAA4kB;;;;;;;;;;;;;;;;;;ACjB/mB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,onEAAonE;;;;;;;;;;;;;;;;;;ACfvpE;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,wnBAAwnB;;;;;;;;;;;;;;;;;;ACjB3pB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,gtDAAgtD;;;;;;;;;;;;;;;;;;ACfnvD;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AAC0C;AAC1C,iEAAe,oBAAoB,owCAAowC;;;;;;;;;;;;;;;;;;ACjBvyC;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,ojDAAojD;;;;;;;;;;;;;;;;;;ACdvlD;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG;AACH;AACyC;AACzC,iEAAe,oBAAoB,4+BAA4+B;;;;;;;;;;;;;;;;;;ACjB/gC;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AACqC;AACrC,iEAAe,oBAAoB,wkFAAwkF;;;;;;;;;;;;;;;;;;ACb3mF;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AAC0C;AAC1C,iEAAe,oBAAoB,wUAAwU;;;;;;;;;;;;;;;;;;ACf3W;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG;AACH;AAC4C;AAC5C,iEAAe,oBAAoB,g2BAAg2B;;;;;;;;;;;;;;;;;;ACfn4B;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG;AACH;AACqC;AACrC,iEAAe,oBAAoB,g8BAAg8B;;;;;;;;;;;;;;;;;;ACfn+B;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AAC4C;AAC5C,iEAAe,oBAAoB,wiDAAwiD;;;;;;;;;;;;;;;;;;ACjB3kD;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AAC8C;AAC9C,iEAAe,oBAAoB,guDAAguD;;;;;;;;;;;;;;;;;;ACdnwD;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,wjDAAwjD;;;;;;;;;;;;;;;;;;ACd3lD;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG;AACH;AAC6C;AAC7C,iEAAe,oBAAoB,guBAAguB;;;;;;;;;;;;;;;;;;AChBnwB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,wtBAAwtB;;;;;;;;;;;;;;;;;;ACf3vB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,4fAA4f;;;;;;;;;;;;;;;;;;ACf/hB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG;AACH;AACuC;AACvC,iEAAe,oBAAoB,4nBAA4nB;;;;;;;;;;;;;;;;;;ACjB/pB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AAC0C;AAC1C,iEAAe,oBAAoB,o0BAAo0B;;;;;;;;;;;;;;;;;;ACfv2B;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AAC8C;AAC9C,iEAAe,oBAAoB,wuBAAwuB;;;;;;;;;;;;;;;;;;ACjB3wB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AACyC;AACzC,iEAAe,oBAAoB,wwCAAwwC;;;;;;;;;;;;;;;;;;;ACjB3yC;AACA;AACA;AACkD;AACF;AAChD,kCAAkC,sDAAI,CAAC,sDAAG;AAC1C;AACA;AACA,yBAAyB,sDAAI,CAAC,uDAAI;AAClC;AACA,GAAG;AACH,CAAC;AACD,iEAAe,YAAY,EAAC;AAC5B;;;;;;;;;;;;;;;;;;;;;;;;ACbA;AACA;AACA;AACoC;AAC4C;;AAEhF;AACA;AACA;AACgD;AACqB;AAAA;AAErE,MAAMS,eAAe,GAAG;EACvBC,IAAI,EAAE;IACLC,IAAI,EAAE;EACP,CAAC;EACDC,EAAE,EAAE;IACHD,IAAI,EAAE;EACP,CAAC;EACDA,IAAI,EAAE;IACLA,IAAI,EAAE,QAAQ;IACdE,OAAO,EAAE;EACV,CAAC;EACDC,KAAK,EAAE;IACNH,IAAI,EAAE;EACP,CAAC;EACDI,SAAS,EAAE;IACVJ,IAAI,EAAE;EACP,CAAC;EACDK,KAAK,EAAE;IACNL,IAAI,EAAE;EACP,CAAC;EACDM,WAAW,EAAE;IACZN,IAAI,EAAE;EACP,CAAC;EACDO,QAAQ,EAAE;IACTP,IAAI,EAAE;EACP,CAAC;EACDQ,YAAY,EAAE;IACbR,IAAI,EAAE;EACP,CAAC;EACDS,UAAU,EAAE;IACXT,IAAI,EAAE;EACP,CAAC;EACDU,QAAQ,EAAE;IACTV,IAAI,EAAE;EACP,CAAC;EACDW,QAAQ,EAAE;IACTX,IAAI,EAAE;EACP,CAAC;EACDY,IAAI,EAAE;IACLZ,IAAI,EAAE;EACP,CAAC;EACDa,UAAU,EAAE;IACXb,IAAI,EAAE;EACP,CAAC;EACDc,cAAc,EAAE;IACfd,IAAI,EAAE;EACP,CAAC;EACDe,kBAAkB,EAAE;IACnBf,IAAI,EAAE;EACP,CAAC;EACDgB,QAAQ,EAAE;IACThB,IAAI,EAAE;EACP,CAAC;EACDiB,SAAS,EAAE;IACVjB,IAAI,EAAE;EACP,CAAC;EACDkB,OAAO,EAAE;IACRlB,IAAI,EAAE;EACP;AACD,CAAC;AAED,MAAMmB,EAAE,GAAG;EACVC,UAAU,EAAEtB,eAAe;EAC3BuB,IAAIA,CAAE;IAAED,UAAU;IAAEE;EAAU,CAAC,EAAG;IACjC,MAAM;MACLvB,IAAI;MACJE,EAAE;MACFD,IAAI;MACJG,KAAK;MACLC,SAAS;MACTC,KAAK;MACLC,WAAW;MACXC,QAAQ;MACRC,YAAY;MACZE,QAAQ;MACRC,QAAQ;MACRC,IAAI;MACJC,UAAU;MACVU,UAAU;MACVL,OAAO;MACPT,UAAU;MACVK,cAAc;MACdC,kBAAkB;MAClBC,QAAQ;MACRC,SAAS;MACTO,eAAe;MACfC;IACD,CAAC,GAAGL,UAAU;IAEdE,SAAS,GAAGjC,iDAAU,CAAE,UAAU,EAAE;MACnC,gBAAgB,EAAEwB,UAAU,IAAIU,UAAU;MAC1C,wBAAwB,EAAEL,OAAO;MACjC,mBAAmB,EAAE,UAAU,KAAKlB,IAAI,IAAI,OAAO,KAAKA;IACzD,CAAE,CAAC;IAEH,MAAM0B,cAAc,GAAGrC,iDAAU,CAAE;MAClCsC,IAAI,EAAEvB;IACP,CAAE,CAAC;IAEH,MAAMwB,cAAc,GAAGvC,iDAAU,CAAE;MAClCwC,SAAS,EAAEb,QAAQ,IAAI,MAAM,KAAKhB,IAAI;MACtC8B,QAAQ,EAAEd,QAAQ,IAAI,MAAM,KAAKhB;IAClC,CAAE,CAAC;;IAEH;IACA,MAAM+B,SAAS,GAAGC,MAAM,CAACC,WAAW,CACnC3C,qFAAoB,CAAEU,IAAI,CAAE,CAACkC,GAAG,CAAIC,GAAG,IAAM,CAC5CA,GAAG,EACHf,UAAU,CAAEe,GAAG,CAAE,CAChB,CACH,CAAC;IAED,IAAK1B,UAAU,EAAG;MACjBsB,SAAS,CAAE,sBAAsB,CAAE,GAAGtB,UAAU;IACjD;IAEA,IAAKK,cAAc,IAAIU,eAAe,EAAG;MACxCO,SAAS,CAAE,+BAA+B,CAAE,GAAGP,eAAe;IAC/D;IAEA,IAAKV,cAAc,IAAIW,KAAK,EAAG;MAC9BM,SAAS,CAAE,oBAAoB,CAAE,GAAGN,KAAK;IAC1C;IAEA,IAAKF,UAAU,EAAG;MACjBQ,SAAS,CAACK,OAAO,GAAG,4CAA4C;IACjE;IAEA,IAAK,CAAErB,kBAAkB,EAAG;MAC3BgB,SAAS,CAACM,YAAY,GAAGC,SAAS;IACnC;IAEA,IAAK,MAAM,KAAKtC,IAAI,EAAG;MACtB+B,SAAS,CAAChC,IAAI;MACdgC,SAAS,CAACQ,MAAM,GAAGA,MAAM,EAAEC,IAAI,CAAE,GAAI,CAAC;IACvC;IAEA,IAAKxB,QAAQ,IAAI,MAAM,KAAKhB,IAAI,EAAG;MAClC+B,SAAS,CAAC/B,IAAI,GAAG,MAAM;MACvBgC,MAAM,CAACS,OAAO,CAAEZ,SAAU,CAAC,CAACa,OAAO,CAAE,CAAE,CAAEC,GAAG,EAAEtC,KAAK,CAAE,KAAM;QAC1D0B,SAAS,CAAE,OAAO,GAAGY,GAAG,CAAE,GAAGtC,KAAK;MACnC,CAAE,CAAC;IACJ;IAEA,IAAKY,SAAS,IAAI,QAAQ,KAAKjB,IAAI,EAAG;MACrC,oBAAOL,sDAAA;QAAA,GAAYoC,SAAS;QAAGT,SAAS,EAAGM;MAAgB,CAAE,CAAC;IAC/D;IAEA,oBACC/B,uDAAA;MAAA,GAAUJ,kEAAa,CAAC4B,IAAI,CAAC,CAAC;MAAGC,SAAS,EAAGA,SAAW;MAAAsB,QAAA,GACrD,QAAQ,KAAK5C,IAAI,iBAClBH,uDAAA;QAAOyB,SAAS,EAAGI,cAAgB;QAACmB,OAAO,EAAG5C,EAAI;QAAA2C,QAAA,GAC/CzC,KAAK,EACLI,QAAQ,iBACTZ,sDAAA;UAAM2B,SAAS,EAAC,UAAU;UAAAsB,QAAA,EAAGpC;QAAY,CAAQ,CACjD;MAAA,CACK,CACP,eAEDb,sDAAA;QAAA,GAAYoC,SAAS;QAAGT,SAAS,EAAGM;MAAgB,CAAE,CAAC,EAErDf,UAAU,iBAAIlB,sDAAA,CAACH,gEAAW,CAACsD,OAAO,IAAE,CAAC,EACrCvB,UAAU,iBAAI5B,sDAAA;QAAAiD,QAAA,EAAUvC;MAAK,CAAU,CAAC,EACxC,QAAQ,KAAKL,IAAI,IAAIW,QAAQ,iBAC9BhB,sDAAA,CAACoD,QAAQ,CAACD,OAAO;QAACE,OAAO,EAAC,OAAO;QAAC3C,KAAK,EAAGO;MAAM,CAAE,CAClD;IAAA,CACG,CAAC;EAER;AACD,CAAC;AAED,MAAMqC,iBAAiB,GAAG;EACzBjD,IAAI,EAAE;IACLA,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE,MAAM;IACjBlD,OAAO,EAAE;EACV,CAAC;EACDD,EAAE,EAAE;IACHD,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE;EACZ,CAAC;EACDrD,IAAI,EAAE;IACLC,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE;EACZ,CAAC;EACDjD,KAAK,EAAE;IACNH,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,MAAM;IACdC,QAAQ,EAAE,2BAA2B;IACrCjD,OAAO,EAAE,OAAO;IAChBmD,kBAAkB,EAAE;EACrB,CAAC;EACDjD,SAAS,EAAE;IACVJ,IAAI,EAAE,SAAS;IACfmD,QAAQ,EAAE,YAAY;IACtBjD,OAAO,EAAE;EACV,CAAC;EACDI,WAAW,EAAE;IACZN,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE,aAAa;IACxBC,kBAAkB,EAAE;EACrB,CAAC;EACDhD,KAAK,EAAE;IACNL,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE;EACZ,CAAC;EACD3C,UAAU,EAAE;IACXT,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE,sBAAsB;IACjClD,OAAO,EAAE;EACV,CAAC;EACDY,cAAc,EAAE;IACfd,IAAI,EAAE,SAAS;IACfE,OAAO,EAAE;EACV,CAAC;EACDsB,eAAe,EAAE;IAChBxB,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE,+BAA+B;IAC1ClD,OAAO,EAAE;EACV,CAAC;EACDuB,KAAK,EAAE;IACNzB,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE;EACZ,CAAC;EACD7C,QAAQ,EAAE;IACTP,IAAI,EAAE,SAAS;IACfkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE,UAAU;IACrBlD,OAAO,EAAE;EACV,CAAC;EACDM,YAAY,EAAE;IACbR,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,MAAM;IACdC,QAAQ,EAAE,qBAAqB;IAC/BjD,OAAO,EAAE;EACV,CAAC;EACDa,kBAAkB,EAAE;IACnBf,IAAI,EAAE,SAAS;IACfE,OAAO,EAAE;EACV,CAAC;EACDmC,YAAY,EAAE;IACbrC,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE,cAAc;IACzBlD,OAAO,EAAE;EACV,CAAC;EACDoD,QAAQ,EAAE;IACTtD,IAAI,EAAE,SAAS;IACfkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE,UAAU;IACrBlD,OAAO,EAAE;EACV,CAAC;EACDQ,QAAQ,EAAE;IACTV,IAAI,EAAE,SAAS;IACfkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE,UAAU;IACrBlD,OAAO,EAAE;EACV,CAAC;EACDqD,OAAO,EAAE;IACRvD,IAAI,EAAE,SAAS;IACfkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE,SAAS;IACpBlD,OAAO,EAAE;EACV,CAAC;EACDsD,QAAQ,EAAE;IACTxD,IAAI,EAAE,SAAS;IACfkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE,UAAU;IACrBlD,OAAO,EAAE;EACV,CAAC;EACDS,QAAQ,EAAE;IACTX,IAAI,EAAE,SAAS;IACfE,OAAO,EAAE;EACV,CAAC;EACDU,IAAI,EAAE;IACLZ,IAAI,EAAE,QAAQ;IACdE,OAAO,EAAE;EACV,CAAC;EACDuD,SAAS,EAAE;IACVzD,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE;EACZ,CAAC;EACDM,SAAS,EAAE;IACV1D,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE;EACZ,CAAC;EACDO,OAAO,EAAE;IACR3D,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE;EACZ,CAAC;EACDQ,GAAG,EAAE;IACJ5D,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE;EACZ,CAAC;EACDS,GAAG,EAAE;IACJ7D,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE;EACZ,CAAC;EACDvC,UAAU,EAAE;IACXb,IAAI,EAAE,SAAS;IACfE,OAAO,EAAE;EACV,CAAC;EACDgB,OAAO,EAAE;IACRlB,IAAI,EAAE,SAAS;IACfE,OAAO,EAAE;EACV,CAAC;EACDqB,UAAU,EAAE;IACXvB,IAAI,EAAE,SAAS;IACfE,OAAO,EAAE;EACV,CAAC;EACDe,SAAS,EAAE;IACVjB,IAAI,EAAE,SAAS;IACfE,OAAO,EAAE;EACV,CAAC;EACD4D,IAAI,EAAE;IACL9D,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE;EACZ,CAAC;EACDW,UAAU,EAAE;IACX/D,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE;EACZ,CAAC;EACDY,OAAO,EAAE;IACRhE,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE;EACZ,CAAC;EACDa,UAAU,EAAE;IACXjE,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBC,QAAQ,EAAE,OAAO;IACjBC,SAAS,EAAE;EACZ,CAAC;EACDc,UAAU,EAAE;IACXlE,IAAI,EAAE;EACP,CAAC;EACDmE,cAAc,EAAE;IACfnE,IAAI,EAAE;EACP,CAAC;EACDoE,IAAI,EAAE;IACLpE,IAAI,EAAE,QAAQ;IACdkD,MAAM,EAAE,WAAW;IACnBE,SAAS,EAAE;EACZ,CAAC;EACDpC,QAAQ,EAAE;IACThB,IAAI,EAAE;EACP;AACD,CAAC;AAED,MAAMqE,UAAU,GAAG,CAAElD,EAAE,CAAE;AAEzB,iEAAekD,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChZY;AAQJ;AAEoB;AAEV;AACA;AACU;AACqB;AACJ;AACT;AACmB;AACnB;AAAA;AAE9C,SAASc,IAAIA,CAAEC,KAAK,EAAG;EACrC,MAAM;IAAEhE,UAAU;IAAEiE;EAAc,CAAC,GAAGD,KAAK;EAC3C,MAAM;IACLpF,IAAI;IACJW,QAAQ;IACRZ,IAAI;IACJwD,OAAO;IACPlD,KAAK;IACLyD,IAAI;IACJxD,WAAW;IACX+B,YAAY;IACZzB;EACD,CAAC,GAAGQ,UAAU;EAEd,MAAMkE,OAAO,GAAGtF,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO;EAC1D,MAAMuF,SAAS,GAAGjG,qFAAoB,CAAEU,IAAI,CAAE;EAE9C,MAAMwF,UAAU,GAAGN,2EAAwB,CAAE9D,UAAW,CAAC;EAEzD,MAAMqE,UAAU,GAAGhG,sEAAa,CAAE;IACjC6B,SAAS,EAAEkE,UAAU,CAACE;EACvB,CAAE,CAAC;EAEH,MAAM;IAAE9C,QAAQ;IAAE,GAAG+C;EAAiB,CAAC,GAAGjB,4EAAmB,CAAEe,UAAU,EAAE;IAC1EG,aAAa,EAAE,CAAE,iBAAiB,EAAE,iBAAiB,CAAE;IACvDC,WAAW,EAAE,YAAY;IACzBC,cAAc,EAAE;EACjB,CAAE,CAAC;EAEH,MAAMC,QAAQ,GAAKC,CAAC,IAAM;IACzB,IAAK,UAAU,KAAKhG,IAAI,IAAI,OAAO,KAAKA,IAAI,EAAG;MAC9CqF,aAAa,CAAE;QAAE9B,OAAO,EAAE,CAAEA;MAAQ,CAAE,CAAC;IACxC;IACA8B,aAAa,CAAE;MAAE/E,WAAW,EAAE0F,CAAC,CAACC,MAAM,CAAC5F;IAAM,CAAE,CAAC;EACjD,CAAC;EAED,oBACCR,wDAAA;IAAA,GAAU8F,gBAAgB;IAAA/C,QAAA,gBACzBjD,uDAAA,CAAC8E,kEAAa;MAAA7B,QAAA,EACX2C,SAAS,CAACW,QAAQ,CAAE,UAAW,CAAC,iBACjCvG,uDAAA,CAACgF,+DAAY;QAAA/B,QAAA,eACZjD,uDAAA,CAACsF,yEAAO;UAAA,GAAMG;QAAK,CAAI;MAAC,CACX;IACd,CACa,CAAC,eAChBvF,wDAAA,CAAC0E,sEAAiB;MAAA3B,QAAA,gBACjBjD,uDAAA,CAACmF,iEAAO;QAAA,GAAMM,KAAK;QAAGe,SAAS,EAAGnG;MAAM,CAAE,CAAC,EACzC,QAAQ,KAAKA,IAAI,iBAClBL,uDAAA,CAACoF,4EAAiB;QAAA,GAAMK,KAAK;QAAGe,SAAS,EAAGnG;MAAM,CAAE,CACpD;IAAA,CACiB,CAAC,eACpBL,uDAAA,CAAC6E,8EAAyB;MAAA5B,QAAA,eACzBjD,uDAAA,CAACqF,0EAAe;QAAA,GAAMI,KAAK;QAAGe,SAAS,EAAGnG;MAAM,CAAE;IAAC,CACzB,CAAC,EAE1B,QAAQ,KAAKA,IAAI,gBAClBL,uDAAA,CAACkF,yDAAK;MAAA,GAAMO,KAAK;MAAGvC,OAAO,EAAC;IAAO,CAAE,CAAC,gBAEtChD,wDAAA;MAAKyB,SAAS,EAAC,iBAAiB;MAAAsB,QAAA,gBAC/BjD,uDAAA,CAACiF,gDAAM;QAACwB,KAAK,EAAC,IAAI;QAACC,MAAM,EAAC;MAAI,CAAE,CAAC,eACjCxG,wDAAA;QAAA+C,QAAA,GAAK,GAAC,EAAE7C,IAAI,EAAE,GAAC;MAAA,CAAK,CAAC;IAAA,CACjB,CACL,eAEDJ,uDAAA,CAAC2F,OAAO;MACPhE,SAAS,EAAGkE,UAAU,CAACc,UAAY;MACnCC,KAAK,EAAGf,UAAU,CAACgB,UAAY;MAC/BxG,IAAI,EAAG,UAAU,KAAKA,IAAI,GAAGA,IAAI,GAAG,MAAQ;MAC5CK,KAAK,EAAG,UAAU,KAAKL,IAAI,GAAGK,KAAK,GAAG,EAAI;MAC1CkD,OAAO,EAAGA,OAAO,IAAI,KAAO;MAC5BO,IAAI,EAAGA,IAAI,IAAIxB,SAAW;MAC1ByD,QAAQ,EAAGA,QAAU;MACrBzF,WAAW,EAAGA,WAAa;MAC3BgD,QAAQ,EAAG,MAAM,KAAKtD,IAAM;MAC5ByG,YAAY,EAAGpE,YAAY,IAAI;IAAgB,CAC/C,CAAC,EAEAO,QAAQ,EAER,QAAQ,KAAK5C,IAAI,IAAIW,QAAQ,iBAC9BhB,uDAAA,CAACoD,6DAAQ;MACRC,OAAO,EAAC,OAAO;MACf3C,KAAK,EAAGO,IAAM;MACdmF,QAAQ,EAAKW,GAAG,IAAMrB,aAAa,CAAE;QAAEzE,IAAI,EAAE8F;MAAI,CAAE,CAAG;MACtDpG,WAAW,EAAGgE,mDAAE,CAAE,qBAAqB,EAAE,UAAW,CAAG;MACvDqC,cAAc,EAAG,CAChB,WAAW,EACX,aAAa,EACb,WAAW,CACT;MACHC,SAAS,EAAG;IAAO,CACnB,CACD;EAAA,CACG,CAAC;AAER;;;;;;;;;;;;;;;;;;;;;ACpHmE;AACzC;AACA;AACY;AACA;AACF;AACM;AAEpB;;AAEtB;AACA;AACA;AACA;AACA;AACAC,oEAAiB,CAAEE,wCAAQ,EAAE;EAC5BD,UAAU;EAEVzC,UAAU;EAEV4C,UAAU,EAAE;IACXC,IAAI,EAAE,CACL;MACClH,IAAI,EAAE,OAAO;MACbmH,MAAM,EAAE,CAAE,mBAAmB,CAAE;MAC/BC,SAAS,EAAIC,KAAK,IAAM;QACvB,OAAO9H,8DAAW,CAAE,gBAAgB,EAAE8H,KAAM,CAAC;MAC9C;IACD,CAAC;EAEH,CAAC;EAED;AACD;AACA;AACA;EACCC,IAAI,EAAEN,+CAAK;EAEX;AACD;AACA;EACCO,IAAI,EAAEpC,6CAAI;EAEV;AACD;AACA;EACC9D,IAAIA,+CAAAA;AACL,CAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;AC/C4E;AACvD;AACwD;AACnB;AAAA;AAE9C,SAASA,IAAIA,CAAE;EAAED;AAAW,CAAC,EAAG;EAC9C,MAAM;IACLpB,IAAI;IACJgB,QAAQ;IACRP,UAAU;IACVK,cAAc;IACdU,eAAe;IACfC,KAAK;IACLV,kBAAkB;IAClBE,SAAS;IACTV,QAAQ;IACRC,YAAY;IACZL,KAAK;IACLQ,QAAQ;IACRC,IAAI;IACJmD,UAAU;IACVK,IAAI;IACJD,cAAc;IACdF,UAAU;IACVC,UAAU;IACVF;EACD,CAAC,GAAG5C,UAAU;EACd,MAAMqE,UAAU,GAAGhG,kEAAa,CAAC4B,IAAI,CAAC,CAAC;EAEvC,MAAMiE,OAAO,GAAGtF,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO;EAE1D,MAAM0F,cAAc,GAAG8B,gDAAI,CAAE/B,UAAU,CAACnE,SAAU,CAAC;EAEnD,MAAMkE,UAAU,GAAGN,0EAAwB,CAAE9D,UAAW,CAAC;;EAEzD;EACA,MAAMW,SAAS,GAAGC,MAAM,CAACC,WAAW,CACnC3C,qFAAoB,CAAEU,IAAI,CAAE,CAACkC,GAAG,CAAIC,GAAG,IAAM,CAC5CA,GAAG,EACHf,UAAU,CAAEe,GAAG,CAAE,CAChB,CACH,CAAC;EAEDH,MAAM,CAACyF,IAAI,CAAE1F,SAAU,CAAC,CAACW,OAAO,CAC7BgF,CAAC,IAAM3F,SAAS,CAAE2F,CAAC,CAAE,KAAK,EAAE,IAAI,OAAO3F,SAAS,CAAE2F,CAAC,CACtD,CAAC;EAED,IAAKjH,UAAU,EAAG;IACjBsB,SAAS,CAAE,sBAAsB,CAAE,GAAGtB,UAAU;EACjD;EAEA,IAAKK,cAAc,IAAIU,eAAe,EAAG;IACxCO,SAAS,CAAE,+BAA+B,CAAE,GAAGP,eAAe;EAC/D;EAEA,IAAKV,cAAc,IAAIW,KAAK,EAAG;IAC9BM,SAAS,CAAE,oBAAoB,CAAE,GAAGN,KAAK;EAC1C;EAEA,IAAK,CAAEV,kBAAkB,EAAG;IAC3BgB,SAAS,CAACM,YAAY,GAAGC,SAAS;EACnC;EAEA,IAAKtB,QAAQ,IAAI,MAAM,KAAKhB,IAAI,EAAG;IAClC+B,SAAS,CAAE,kBAAkB,CAAE,GAAGgC,UAAU;IAC5ChC,SAAS,CAAE,kBAAkB,CAAE,GAAGkC,UAAU;IAC5ClC,SAAS,CAAE,WAAW,CAAE,GAAGqC,IAAI;IAC/BrC,SAAS,CAAE,eAAe,CAAE,GAAGiC,OAAO;IACtCjC,SAAS,CAAE,aAAa,CAAE,GAAGoC,cAAc,IAAI7B,SAAS;IACxDP,SAAS,CAAE,kBAAkB,CAAE,GAAGmC,UAAU,IAAI5B,SAAS;EAC1D;EAEA,IAAKtB,QAAQ,IAAI,MAAM,KAAKhB,IAAI,EAAG;IAClC+B,SAAS,CAAE,kBAAkB,CAAE,GAAGkC,UAAU;IAC5ClC,SAAS,CAAE,kBAAkB,CAAE,GAAGmC,UAAU;EAC7C;EAEA,IAAKjD,SAAS,IAAI,QAAQ,KAAKjB,IAAI,EAAG;IACrC,oBACCL,sDAAA;MAAA,GACMoC,SAAS;MACdT,SAAS,EAAGkE,UAAU,CAACc,UAAY;MACnCC,KAAK,EAAGf,UAAU,CAACgB;IAAY,CAC/B,CAAC;EAEJ;EAEA,IAAK,CAAEzE,SAAS,CAAChC,IAAI,EAAG;IACvBgC,SAAS,CAAChC,IAAI,GAAGI,KAAK;EACvB;EAEA,oBACCN,uDAAA;IAAA,GAAUJ,kEAAa,CAAC4B,IAAI,CAAC,CAAC;IAAGC,SAAS,EAAGoE,cAAgB;IAAA9C,QAAA,GAC1D,QAAQ,KAAK5C,IAAI,iBAClBH,uDAAA;MAAOyB,SAAS,EAAGkE,UAAU,CAACrF,KAAO;MAAC0C,OAAO,EAAC,IAAI;MAAAD,QAAA,gBACjDjD,sDAAA,CAACoD,6DAAQ,CAACD,OAAO;QAACE,OAAO,EAAC,MAAM;QAAC3C,KAAK,EAAGF;MAAO,CAAE,CAAC,EACjDI,QAAQ,iBACTZ,sDAAA;QAAM2B,SAAS,EAAC,UAAU;QAAAsB,QAAA,EAAGpC;MAAY,CAAQ,CACjD;IAAA,CACK,CACP,eAEDb,sDAAA,CAAC2F,OAAO;MAAA,GACFvD,SAAS;MACdT,SAAS,EAAGkE,UAAU,CAACc,UAAY;MACnCC,KAAK,EAAGf,UAAU,CAACgB;IAAY,CAC/B,CAAC,eAEF7G,sDAAA,CAACH,gEAAW,CAACsD,OAAO,IAAE,CAAC,EACrB,QAAQ,KAAK9C,IAAI,IAAIW,QAAQ,iBAC9BhB,sDAAA,CAACoD,6DAAQ,CAACD,OAAO;MAACE,OAAO,EAAC,OAAO;MAAC3C,KAAK,EAAGO;IAAM,CAAE,CAClD;EAAA,CACG,CAAC;AAER;;;;;;;;;;;;;;;;;;AC9GiC;AACT;AAEjB,SAASsE,wBAAwBA,CAAE9D,UAAU,EAAG;EACtD,MAAM6G,WAAW,GAAGL,gGAAyB,CAAExG,UAAW,CAAC;EAC3D,MAAM8G,YAAY,GAAGJ,iGAA0B,CAAE1G,UAAW,CAAC;EAC7D,MAAM+G,UAAU,GAAGH,+FAAwB,CAAE5G,UAAW,CAAC;EAEzD,MAAM;IAAErB,IAAI;IAAEC,IAAI;IAAEgB,QAAQ;IAAEZ;EAAU,CAAC,GAAGgB,UAAU;EAEtD,MAAMsE,cAAc,GAAG8B,gDAAI,CAAE;IAC5B,cAAc,EAAE,CAAEzH;EACnB,CAAE,CAAC;EAEH,MAAMqI,UAAU,GAAGZ,gDAAI,CAAE;IACxB7F,IAAI,EAAEvB,SAAS;IACf,gBAAgB,EAAE,UAAU,KAAKJ;EAClC,CAAE,CAAC;EAEH,MAAMsG,UAAU,GAAGkB,gDAAI,CACtBS,WAAW,CAAC3G,SAAS,EACrB4G,YAAY,CAAC5G,SAAS,EACtB6G,UAAU,CAAC7G,SAAS,EACpB;IACC,mBAAmB,EAAEN;EACtB,CACD,CAAC;EAED,MAAMwF,UAAU,GAAG;IAClB,GAAGyB,WAAW,CAAC1B,KAAK;IACpB,GAAG2B,YAAY,CAAC3B,KAAK;IACrB,GAAG4B,UAAU,CAAC5B;EACf,CAAC;EAED,OAAO;IACNb,cAAc;IACd0C,UAAU;IACV9B,UAAU;IACVE;EACD,CAAC;AACF;;;;;;;;;;;;;;;;;;;;;;AC5CkD;AACb;AAgBV;AAAA;AAE3B,MAAMM,UAAU,GAAG,CAClB;EACC/G,IAAI,EAAE,YAAY;EAClBqJ,KAAK,EAAE9E,mDAAE,CAAE,MAAO,CAAC;EACnBgD,IAAI,EAAEN,+CAAK;EACXqC,WAAW,EAAE/E,mDAAE,CAAE,iCAAiC,EAAE,UAAW,CAAC;EAChElD,UAAU,EAAE;IAAEpB,IAAI,EAAE;EAAO,CAAC;EAC5BsJ,KAAK,EAAE,CAAE,WAAW;AACrB,CAAC,EACD;EACCvJ,IAAI,EAAE,QAAQ;EACdqJ,KAAK,EAAE9E,mDAAE,CAAE,QAAS,CAAC;EACrB+E,WAAW,EAAE/E,mDAAE,CAAE,uBAAuB,EAAE,UAAW,CAAC;EACtDgD,IAAI,EAAE1C,gDAAM;EACZxD,UAAU,EAAE;IAAEpB,IAAI,EAAE;EAAS,CAAC;EAC9BsJ,KAAK,EAAE,CAAE,UAAU;AACpB,CAAC,EACD;EACCvJ,IAAI,EAAE,UAAU;EAChBqJ,KAAK,EAAE9E,mDAAE,CAAE,UAAW,CAAC;EACvB+E,WAAW,EAAE/E,mDAAE,CAAE,0BAA2B,CAAC;EAC7CgD,IAAI,EAAEiB,kDAAQ;EACdnH,UAAU,EAAE;IAAEpB,IAAI,EAAE;EAAW,CAAC;EAChCsJ,KAAK,EAAE,CAAE,UAAU;AACpB,CAAC,EACD;EACCvJ,IAAI,EAAE,OAAO;EACbqJ,KAAK,EAAE9E,mDAAE,CAAE,OAAQ,CAAC;EACpB+E,WAAW,EAAE/E,mDAAE,CAAE,uBAAwB,CAAC;EAC1CgD,IAAI,EAAE6B,+CAAK;EACX/H,UAAU,EAAE;IAAEpB,IAAI,EAAE;EAAQ,CAAC;EAC7BsJ,KAAK,EAAE,CAAE,OAAO;AACjB,CAAC,EACD;EACCvJ,IAAI,EAAE,MAAM;EACZqJ,KAAK,EAAE9E,mDAAE,CAAE,MAAO,CAAC;EACnBgD,IAAI,EAAEkB,8CAAI;EACVpH,UAAU,EAAE;IACXrB,IAAI,EAAE,UAAU;IAChBC,IAAI,EAAE,UAAU;IAChBG,KAAK,EAAEmE,mDAAE,CACR,sDAAsD,EACtD,UACD,CAAC;IACD/D,QAAQ,EAAE;EACX,CAAC;EACD+I,KAAK,EAAE,CAAE,UAAU;AACpB,CAAC,EACD;EACCvJ,IAAI,EAAE,OAAO;EACbqJ,KAAK,EAAE9E,mDAAE,CAAE,OAAQ,CAAC;EACpBgD,IAAI,EAAEmB,+CAAK;EACXrH,UAAU,EAAE;IAAEpB,IAAI,EAAE;EAAQ,CAAC;EAC7BsJ,KAAK,EAAE,CAAE,UAAU;AACpB,CAAC,EACD;EACCvJ,IAAI,EAAE,OAAO;EACbqJ,KAAK,EAAE9E,mDAAE,CAAE,OAAQ,CAAC;EACpB+E,WAAW,EAAE/E,mDAAE,CAAE,2BAA4B,CAAC;EAC9CgD,IAAI,EAAEqB,+CAAK;EACXvH,UAAU,EAAE;IAAEpB,IAAI,EAAE;EAAQ,CAAC;EAC7BsJ,KAAK,EAAE,CAAE,UAAU,EAAE,WAAW;AACjC,CAAC,EACD;EACCvJ,IAAI,EAAE,QAAQ;EACdqJ,KAAK,EAAE9E,mDAAE,CAAE,QAAS,CAAC;EACrBgD,IAAI,EAAE4B,gDAAW;EACjB9H,UAAU,EAAE;IAAEpB,IAAI,EAAE;EAAS,CAAC;EAC9BsJ,KAAK,EAAE,CAAE,UAAU,EAAE,WAAW;AACjC,CAAC,EACD;EACCvJ,IAAI,EAAE,OAAO;EACbqJ,KAAK,EAAE9E,mDAAE,CAAE,OAAQ,CAAC;EACpBgD,IAAI,EAAEyB,+CAAK;EACX3H,UAAU,EAAE;IAAEpB,IAAI,EAAE;EAAQ,CAAC;EAC7BsJ,KAAK,EAAE,CAAE,UAAU;AACpB,CAAC,EACD;EACCvJ,IAAI,EAAE,MAAM;EACZqJ,KAAK,EAAE9E,mDAAE,CAAE,MAAO,CAAC;EACnBgD,IAAI,EAAEwB,kDAAQ;EACd1H,UAAU,EAAE;IAAEpB,IAAI,EAAE;EAAO,CAAC;EAC5BsJ,KAAK,EAAE,CAAE,UAAU,EAAE,WAAW;AACjC,CAAC,EACD;EACCvJ,IAAI,EAAE,MAAM;EACZqJ,KAAK,EAAE9E,mDAAE,CAAE,MAAO,CAAC;EACnBgD,IAAI,EAAEuB,+CAAK;EACXzH,UAAU,EAAE;IAAEpB,IAAI,EAAE;EAAO,CAAC;EAC5BsJ,KAAK,EAAE,CAAE,UAAU,EAAE,WAAW;AACjC,CAAC,EACD;EACCvJ,IAAI,EAAE,KAAK;EACXqJ,KAAK,EAAE9E,mDAAE,CAAE,KAAM,CAAC;EAClBgD,IAAI,EAAE0B,6CAAG;EACT5H,UAAU,EAAE;IAAEpB,IAAI,EAAE;EAAM,CAAC;EAC3BsJ,KAAK,EAAE,CAAE,UAAU,EAAE,WAAW;AACjC,CAAC,EACD;EACCvJ,IAAI,EAAE,KAAK;EACXqJ,KAAK,EAAE9E,mDAAE,CAAE,KAAM,CAAC;EAClBgD,IAAI,EAAEsB,6CAAG;EACTxH,UAAU,EAAE;IAAEpB,IAAI,EAAE;EAAM,CAAC;EAC3BsJ,KAAK,EAAE,CAAE,UAAU,EAAE,WAAW;AACjC,CAAC,EACD;EACCvJ,IAAI,EAAE,aAAa;EACnBqJ,KAAK,EAAE9E,mDAAE,CAAE,mBAAoB,CAAC;EAChCgD,IAAI,eACHzH,uDAAA,CAACwI,sDAAG;IAACkB,KAAK,EAAC,4BAA4B;IAACC,OAAO,EAAC,WAAW;IAAA5G,QAAA,gBAC1DjD,sDAAA,CAAC2I,uDAAI;MACJmB,CAAC,EAAC,MAAM;MACRC,CAAC,EAAC,OAAO;MACTtD,KAAK,EAAC,KAAK;MACXC,MAAM,EAAC,MAAM;MACbe,SAAS,EAAC,wBAAwB;MAClCuC,MAAM,EAAC,cAAc;MACrBC,WAAW,EAAC,KAAK;MACjBC,IAAI,EAAC;IAAM,CACX,CAAC,eACFlK,sDAAA,CAAC2I,uDAAI;MACJmB,CAAC,EAAC,IAAI;MACNC,CAAC,EAAC,IAAI;MACNtD,KAAK,EAAC,GAAG;MACTC,MAAM,EAAC,GAAG;MACVyD,EAAE,EAAC,GAAG;MACND,IAAI,EAAC;IAAc,CACnB,CAAC;EAAA,CACE,CACL;EACDzI,UAAU,EAAE;IACXpB,IAAI,EAAE,OAAO;IACbG,KAAK,EAAE,OAAO;IACdU,UAAU,EAAE;EACb,CAAC;EACDkJ,WAAW,EAAE,CAAE,CAAE,iBAAiB,EAAE;IAAE9I,SAAS,EAAE;EAAK,CAAC,CAAE,CAAE;EAC3DqI,KAAK,EAAE,CAAE,UAAU;AACpB,CAAC,EACD;EACCvJ,IAAI,EAAE,UAAU;EAChBqJ,KAAK,EAAE9E,mDAAE,CAAE,UAAW,CAAC;EACvBgD,IAAI,EAAEoB,kDAAQ;EACdtH,UAAU,EAAE;IACXpB,IAAI,EAAE,UAAU;IAChB2D,OAAO,EACN,gEAAgE;IACjElD,UAAU,EACT;EACF,CAAC;EACD6I,KAAK,EAAE,CAAE,UAAU;AACpB,CAAC,CACD;;AAED;AACA;AACA;AACA;AACA;AACAxC,UAAU,CAACpE,OAAO,CAAIsH,SAAS,IAAM;EACpC,IAAK,MAAM,KAAKA,SAAS,CAACjK,IAAI,EAAG;IAChCiK,SAAS,CAAC5I,UAAU,CAACf,KAAK,GAAGiC,SAAS;EACvC;EACA,IAAK,OAAO,KAAK0H,SAAS,CAACjK,IAAI,IAAI,UAAU,KAAKiK,SAAS,CAACjK,IAAI,EAAG;IAClEiK,SAAS,CAAC5I,UAAU,CAACmC,OAAO,GAAGjB,SAAS;EACzC;EACA,IAAK,MAAM,KAAK0H,SAAS,CAACjK,IAAI,EAAG;IAChCiK,SAAS,CAAC5I,UAAU,CAACJ,QAAQ,GAAG,KAAK;EACtC;EACAgJ,SAAS,CAACC,QAAQ,GAAG,CAAEnK,eAAe,EAAEoK,mBAAmB,KAC1DpK,eAAe,CAACE,IAAI,KAAKkK,mBAAmB,CAAClK,IAAI;AACnD,CAAE,CAAC;AAEH,iEAAe8G,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/LY;AAE2C;AACvB;AACW;AAEI;AAE1B;AAEK;AAAA;AAEnD,SAAS9B,eAAeA,CAAEI,KAAK,EAAG;EACjC,MAAM;IACLhE,UAAU,EAAE;MACXpB,IAAI;MACJsD,QAAQ;MACRvC,kBAAkB;MAClBsB,YAAY;MACZ3B,QAAQ;MACRM;IACD,CAAC;IACDqE,aAAa;IACbc,SAAS;IACTyE;EACD,CAAC,GAAGxF,KAAK;EAET,MAAMG,SAAS,GAAGjG,4DAAoB,CAAE6G,SAAS,CAAE;EAEnD,MAAM0E,cAAc,GAAGP,0DAAS,CAC7BQ,MAAM,IAAM;IACb,MAAM;MAAEC;IAAS,CAAC,GAAGD,MAAM,CAAEL,0DAAiB,CAAC;IAC/C,MAAMO,KAAK,GAAGD,QAAQ,CAAEH,QAAS,CAAC;IAClC,OAAO,CAAC,EAAII,KAAK,IAAIA,KAAK,CAACjB,WAAW,CAACkB,MAAM,CAAE;EAChD,CAAC,EACD,CAAEL,QAAQ,CACX,CAAC;EAED,MAAM;IAAEM;EAAmB,CAAC,GAAGX,4DAAW,CAAEE,0DAAiB,CAAC;EAE9D,MAAMU,SAAS,GAAGA,CAAA,KAAM;IACvB,IAAIC,KAAK,GAAG,iBAAiB;IAC7B,IAAK,OAAO,KAAKpL,IAAI,EAAG;MACvBoL,KAAK,GAAG,iBAAiB;IAC1B;IACAF,kBAAkB,CACjB9F,KAAK,CAACwF,QAAQ,EACdF,sFAAmC,CAAE,CAAE,CAAEU,KAAK,CAAE,CAAG,CAAC,EACpD,IACD,CAAC;EACF,CAAC;EAED,oBACCvL,uDAAA,CAAC8K,wDAAQ;IAAA/H,QAAA,GACN2C,SAAS,CAACW,QAAQ,CAAE,MAAO,CAAC,iBAC7BvG,sDAAA,CAACwK,gEAAa;MACbhK,KAAK,EAAGmE,mDAAE,CAAE,kBAAkB,EAAE,UAAW,CAAG;MAC9Cf,OAAO,EAAGvC,QAAU;MACpB+E,QAAQ,EAAKsF,MAAM,IAClBhG,aAAa,CAAE;QAAErE,QAAQ,EAAEqK;MAAO,CAAE,CACpC;MACDC,uBAAuB;IAAA,CACvB,CACD,EACC/F,SAAS,CAACW,QAAQ,CAAE,cAAe,CAAC,iBACrCvG,sDAAA,CAACwK,gEAAa;MACbhK,KAAK,EAAGmE,mDAAE,CAAE,cAAc,EAAE,UAAW,CAAG;MAC1Cf,OAAO,EAAGxC,kBAAoB;MAC9BgF,QAAQ,EAAKsF,MAAM,IAClBhG,aAAa,CAAE;QAAEtE,kBAAkB,EAAEsK;MAAO,CAAE,CAC9C;MACDzK,IAAI,EAAG0D,mDAAE,CAAE,iCAAiC,EAAE,UAAW,CAAG;MAC5DgH,uBAAuB;IAAA,CACvB,CACD,EACCvK,kBAAkB,IAAIwE,SAAS,CAACW,QAAQ,CAAE,cAAe,CAAC,iBAC3DvG,sDAAA,CAACyK,8DAAW;MACXjK,KAAK,EAAGmE,mDAAE,CAAE,wBAAwB,EAAE,UAAW,CAAG;MACpDjE,KAAK,EAAGgC,YAAc;MACtB0D,QAAQ,EAAKsF,MAAM,IAClBhG,aAAa,CAAE;QAAEhD,YAAY,EAAEgJ;MAAO,CAAE,CACxC;MACDC,uBAAuB;IAAA,CACvB,CACD,EACC,OAAO,KAAKtL,IAAI,iBACjBL,sDAAA,CAACwK,gEAAa;MACbhK,KAAK,EAAGmE,mDAAE,CAAE,aAAa,EAAE,UAAW,CAAG;MACzCf,OAAO,EAAGsH,cAAgB;MAC1B9E,QAAQ,EAAKsF,MAAM,IAAM;QACxB,IAAKA,MAAM,EAAG;UACbhG,aAAa,CAAE;YAAE9D,UAAU,EAAE;UAAK,CAAE,CAAC;UACrC4J,SAAS,CAAC,CAAC;QACZ,CAAC,MAAM;UACN9F,aAAa,CAAE;YAAE9D,UAAU,EAAE;UAAM,CAAE,CAAC;UACtC2J,kBAAkB,CAAEN,QAAQ,EAAE,EAAE,EAAE,IAAK,CAAC;QACzC;MACD,CAAG;MACHU,uBAAuB;IAAA,CACvB,CACD,EACC,QAAQ,KAAKtL,IAAI,iBAClBH,uDAAA,CAAC8K,wDAAQ;MAAA/H,QAAA,gBACRjD,sDAAA,CAACwK,gEAAa;QACbhK,KAAK,EAAGmE,mDAAE,CAAE,UAAU,EAAE,UAAW,CAAG;QACtCf,OAAO,EAAGD,QAAU;QACpByC,QAAQ,EAAKsF,MAAM,IAClBhG,aAAa,CAAE;UAAE/B,QAAQ,EAAE+H;QAAO,CAAE,CACpC;QACDzK,IAAI,EAAG0D,mDAAE,CACR,qCAAqC,EACrC,UACD,CAAG;QACHgH,uBAAuB;MAAA,CACvB,CAAC,eACF3L,sDAAA,CAACwK,gEAAa;QACbhK,KAAK,EAAGmE,mDAAE,CAAE,WAAW,EAAE,UAAW,CAAG;QACvCf,OAAO,EAAG7C,QAAU;QACpBqF,QAAQ,EAAKsF,MAAM,IAClBhG,aAAa,CAAE;UAAE3E,QAAQ,EAAE2K;QAAO,CAAE,CACpC;QACDzK,IAAI,EAAG0D,mDAAE,CAAE,0BAA0B,EAAE,UAAW,CAAG;QACrDgH,uBAAuB;MAAA,CACvB,CAAC;IAAA,CACO,CACV;EAAA,CACQ,CAAC;AAEb;AAEA,iEAAejB,kEAAW,CAAE,0BAA2B,CAAC,CAAErF,eAAgB,CAAC;;;;;;;;;;;;;;;AClIpE,MAAM1F,oBAAoB,GAAG;EACnCiM,MAAM,EAAE,CAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAE;EACzCC,IAAI,EAAE,CACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACT,cAAc,CACd;EACDC,GAAG,EAAE,CACJ,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACT,cAAc,CACd;EACDC,GAAG,EAAE,CACJ,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACT,cAAc,CACd;EACDC,KAAK,EAAE,CACN,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,cAAc,CACd;EACDC,QAAQ,EAAE,CACT,MAAM,EACN,IAAI,EACJ,MAAM,EACN,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,CACd;EACDC,MAAM,EAAE,CACP,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,MAAM,EACN,KAAK,EACL,KAAK,CACL;EACDC,IAAI,EAAE,CACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,CACL;EACDC,IAAI,EAAE,CACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,CACL;EACDC,KAAK,EAAE,CACN,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,CACL;EACDC,QAAQ,EAAE,CACT,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,CACT;EACDC,KAAK,EAAE,CACN,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,CACT;EACDC,IAAI,EAAE,CACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,CACV;EACDC,KAAK,EAAE,CACN,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,CACV;EACDC,QAAQ,EAAE,CACT,MAAM,EACN,IAAI,EACJ,UAAU,EACV,OAAO,EACP,MAAM;EAAE;EACR,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,MAAM,EACN,MAAM,CACN;EACDvB,MAAM,EAAE,CAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AACvE,CAAC;;;;;;;;;;;;;;;;;;;;;;;AC1KoC;AACS;AACuB;AAAA;AAEtD,SAASyB,kBAAkBA,CAAEnH,KAAK,EAAG;EACnD,MAAM;IACLhE,UAAU,EAAE;MACXJ,QAAQ;MACRhB,IAAI;MACJ+D,UAAU;MACVE,UAAU;MACVC,UAAU;MACVC,cAAc;MACdC,IAAI;MACJJ;IACD,CAAC;IACDqB;EACD,CAAC,GAAGD,KAAK;EAET,oBACCzF,sDAAA,CAACgL,wDAAQ;IAAA/H,QAAA,EACN5B,QAAQ,IAAI,MAAM,KAAKhB,IAAI,iBAC5BH,uDAAA,CAAC8K,wDAAQ;MAAA/H,QAAA,gBACRjD,sDAAA,CAACwK,gEAAa;QACbhK,KAAK,EAAGmE,mDAAE,CAAE,yBAAyB,EAAE,UAAW,CAAG;QACrDf,OAAO,EAAG,OAAO,KAAKS,OAAS;QAC/B+B,QAAQ,EAAKW,GAAG,IAAM;UACrBrB,aAAa,CAAE;YAAErB,OAAO,EAAE0C,GAAG,GAAG,OAAO,GAAG;UAAM,CAAE,CAAC;QACpD,CAAG;QACH4E,uBAAuB;MAAA,CACvB,CAAC,eACF3L,sDAAA,CAAC2M,gEAAa;QACbnM,KAAK,EAAGmE,mDAAE,CAAE,aAAa,EAAE,UAAW,CAAG;QACzCjE,KAAK,EAAG0D,UAAY;QACpByI,OAAO,EAAG,CACT;UAAErM,KAAK,EAAE,YAAY;UAAEE,KAAK,EAAE;QAAQ,CAAC,EACvC;UAAEF,KAAK,EAAE,YAAY;UAAEE,KAAK,EAAE;QAAQ,CAAC,EACvC;UAAEF,KAAK,EAAE,YAAY;UAAEE,KAAK,EAAE;QAAQ,CAAC,CACrC;QACH0F,QAAQ,EAAKW,GAAG,IAAM;UACrBrB,aAAa,CAAE;YAAEtB,UAAU,EAAE2C;UAAI,CAAE,CAAC;QACrC,CAAG;QACH4E,uBAAuB;MAAA,CACvB,CAAC,eACF3L,sDAAA,CAACwK,gEAAa;QACbhK,KAAK,EAAGmE,mDAAE,CAAE,aAAa,EAAE,UAAW,CAAG;QACzCf,OAAO,EAAGW,UAAY;QACtB6B,QAAQ,EAAKW,GAAG,IAAM;UACrBrB,aAAa,CAAE;YAAEnB,UAAU,EAAEwC;UAAI,CAAE,CAAC;QACrC,CAAG;QACH4E,uBAAuB;MAAA,CACvB,CAAC,eACF3L,sDAAA,CAAC2M,gEAAa;QACbnM,KAAK,EAAGmE,mDAAE,CAAE,MAAM,EAAE,UAAW,CAAG;QAClCjE,KAAK,EAAG+D,IAAM;QACdoI,OAAO,EAAG,CACT;UAAErM,KAAK,EAAE,QAAQ;UAAEE,KAAK,EAAE;QAAS,CAAC,EACpC;UAAEF,KAAK,EAAE,UAAU;UAAEE,KAAK,EAAE;QAAW,CAAC,EACxC;UAAEF,KAAK,EAAE,OAAO;UAAEE,KAAK,EAAE;QAAQ,CAAC,CAChC;QACH0F,QAAQ,EAAKW,GAAG,IAAMrB,aAAa,CAAE;UAAEjB,IAAI,EAAEsC;QAAI,CAAE,CAAG;QACtD4E,uBAAuB;MAAA,CACvB,CAAC,eACF3L,sDAAA,CAACwK,gEAAa;QACbhK,KAAK,EAAGmE,mDAAE,CAAE,iBAAiB,EAAE,UAAW,CAAG;QAC7Cf,OAAO,EAAGY,cAAgB;QAC1B4B,QAAQ,EAAKW,GAAG,IACfrB,aAAa,CAAE;UAAElB,cAAc,EAAEuC;QAAI,CAAE,CACvC;QACD4E,uBAAuB;MAAA,CACvB,CAAC;IAAA,CACO;EACV,CACQ,CAAC;AAEb;;;;;;;;;;;;;;;;;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACqC;AAMN;AAEe;AACR;AAEa;AAAA;AAEnD,MAAMsB,aAAa,GAAKC,OAAO,IAAM;EACpC,OACCA;EACC;EAAA,CACCC,OAAO,CAAE,kBAAkB,EAAE,GAAI;EAClC;EAAA,CACCC,WAAW,CAAC;EACb;EAAA,CACCD,OAAO,CAAE,cAAc,EAAE,EAAG,CAAC;AAEjC,CAAC;AAEc,SAAShI,OAAOA,CAAEM,KAAK,EAAG;EACxC,MAAM;IAAEhE,UAAU;IAAEiE,aAAa;IAAEuF,QAAQ;IAAEoC,YAAY;IAAE7G;EAAU,CAAC,GACrEf,KAAK;EAEN,MAAM;IACLpF,IAAI;IACJD,IAAI;IACJM,KAAK;IACLC,WAAW;IACXC,QAAQ;IACRiD,QAAQ;IACRD,OAAO;IACP5C,QAAQ;IACRK;EACD,CAAC,GAAGI,UAAU;EAEd,MAAMmE,SAAS,GAAGjG,4DAAoB,CAAE6G,SAAS,CAAE;EAEnD,oBACCxG,sDAAA,CAACgL,wDAAQ;IAAA/H,QAAA,eACR/C,uDAAA,CAAC4M,4DAAS;MACTrD,KAAK,EAAG9E,mDAAE,CAAE,SAAS,EAAE,UAAW,CAAG;MACrC2I,WAAW,EAAG,IAAM;MAAArK,QAAA,gBAEpBjD,sDAAA,CAACyK,8DAAW;QACXjK,KAAK,EAAGmE,mDAAE,CAAE,MAAM,EAAE,UAAW,CAAG;QAClCjE,KAAK,EAAGN,IAAM;QACdgG,QAAQ,EAAKW,GAAG,IACfrB,aAAa,CAAE;UAAEtF,IAAI,EAAE6M,aAAa,CAAElG,GAAI;QAAE,CAAE,CAC9C;QACD9F,IAAI,EAAG0D,mDAAE,CACR,2GAA2G,EAC3G,UACD,CAAG;QACHgH,uBAAuB;MAAA,CACvB,CAAC,EACA/F,SAAS,CAACW,QAAQ,CAAE,OAAQ,CAAC,iBAC9BvG,sDAAA,CAACgN,mDAAS;QACT/B,QAAQ,EAAGA,QAAU;QACrBzK,KAAK,EAAGmE,mDAAE,CAAE,OAAO,EAAE,UAAW,CAAG;QACnCjE,KAAK,EAAGA,KAAO;QACf0F,QAAQ,EAAKW,GAAG,IAAM;UACrBrB,aAAa,CAAE;YAAEhF,KAAK,EAAEqG;UAAI,CAAE,CAAC;QAChC,CAAG;QACH9F,IAAI,EAAG0D,mDAAE,CACR,yCAAyC,EACzC,UACD;MAAG,CACH,CACD,EACCiB,SAAS,CAACW,QAAQ,CAAE,aAAc,CAAC,iBACpCvG,sDAAA,CAACyK,8DAAW;QACXjK,KAAK,EAAGmE,mDAAE,CAAE,aAAa,EAAE,UAAW,CAAG;QACzCjE,KAAK,EAAGC,WAAa;QACrByF,QAAQ,EAAKW,GAAG,IACfrB,aAAa,CAAE;UAAE/E,WAAW,EAAEoG;QAAI,CAAE,CACpC;QACD9F,IAAI,EAAG0D,mDAAE,CACR,iEAAiE,EACjE,UACD,CAAG;QACHgH,uBAAuB;MAAA,CACvB,CACD,EACC/F,SAAS,CAACW,QAAQ,CAAE,UAAW,CAAC,iBACjCvG,sDAAA,CAACwK,gEAAa;QACbhK,KAAK,EAAGmE,mDAAE,CAAE,UAAU,EAAE,UAAW,CAAG;QACtCf,OAAO,EAAGhD,QAAU;QACpBwF,QAAQ,EAAKW,GAAG,IACfrB,aAAa,CAAE;UAAE9E,QAAQ,EAAEmG;QAAI,CAAE,CACjC;QACD4E,uBAAuB;MAAA,CACvB,CACD,EACC/F,SAAS,CAACW,QAAQ,CAAE,UAAW,CAAC,iBACjCvG,sDAAA,CAACwK,gEAAa;QACbhK,KAAK,EAAGmE,mDAAE,CAAE,UAAU,EAAE,UAAW,CAAG;QACtCf,OAAO,EAAGC,QAAU;QACpBuC,QAAQ,EAAKW,GAAG,IACfrB,aAAa,CAAE;UAAE7B,QAAQ,EAAEkD;QAAI,CAAE,CACjC;QACD4E,uBAAuB;MAAA,CACvB,CACD,EACC/F,SAAS,CAACW,QAAQ,CAAE,SAAU,CAAC,iBAChCvG,sDAAA,CAACwK,gEAAa;QACbhK,KAAK,EAAGmE,mDAAE,CAAE,SAAS,EAAE,UAAW,CAAG;QACrCf,OAAO,EAAGA,OAAS;QACnBwC,QAAQ,EAAKsF,MAAM,IAClBhG,aAAa,CAAE;UAAE9B,OAAO,EAAE8H;QAAO,CAAE,CACnC;QACDC,uBAAuB;MAAA,CACvB,CACD,EACC,EAAI,QAAQ,KAAKtL,IAAI,CAAE,iBACxBL,sDAAA,CAACwK,gEAAa;QACbhK,KAAK,EAAGmE,mDAAE,CAAE,mBAAmB,EAAE,UAAW,CAAG;QAC/Cf,OAAO,EAAG5C,QAAU;QACpBoF,QAAQ,EAAKsF,MAAM,IAClBhG,aAAa,CAAE;UAAE1E,QAAQ,EAAE0K;QAAO,CAAE,CACpC;QACDC,uBAAuB;MAAA,CACvB,CACD,EACC,QAAQ,KAAKnF,SAAS,iBACvBtG,uDAAA,CAAC8K,wDAAQ;QAAA/H,QAAA,gBACRjD,sDAAA,CAACwK,gEAAa;UACbhK,KAAK,EAAGmE,mDAAE,CAAE,UAAU,EAAE,UAAW,CAAG;UACtCf,OAAO,EAAGvC,QAAU;UACpB+E,QAAQ,EAAKW,GAAG,IAAM;YACrBrB,aAAa,CAAE;cAAErE,QAAQ,EAAE0F;YAAI,CAAE,CAAC;UACnC,CAAG;UACH4E,uBAAuB;QAAA,CACvB,CAAC,eACF3L,sDAAA,CAAC+M,yDAAM;UACNQ,OAAO,EAAG,SAAW;UACrBC,OAAO,EAAGA,CAAA,KAAM;YACfH,YAAY,CAAE,IAAK,CAAC;UACrB,CAAG;UAAApK,QAAA,EAED0B,mDAAE,CAAE,gBAAgB,EAAE,UAAW;QAAC,CAC7B,CAAC;MAAA,CACA,CACV;IAAA,CACS;EAAC,CACH,CAAC;AAEb;;;;;;;;;;;;;;;;;;;;;;;;AC7JA;AACA;AACA;AACA;AACA;AACqC;AAC4B;AACnB;AACD;AAAA;AAE9B,SAASW,OAAOA,CAAEG,KAAK,EAAG;EACxC,MAAM;IAAEhE,UAAU;IAAEiE,aAAa;IAAEtF;EAAK,CAAC,GAAGqF,KAAK;EACjD,MAAM;IAAE7E,QAAQ;IAAEI,QAAQ;IAAEP,SAAS;IAAEJ;EAAK,CAAC,GAAGoB,UAAU;EAE1D,MAAMkM,WAAW,gBAChBzN,uDAAA,CAACwI,sDAAG;IAACkB,KAAK,EAAC,4BAA4B;IAACC,OAAO,EAAC,WAAW;IAAA5G,QAAA,gBAC1DjD,sDAAA,CAAC2I,uDAAI;MACJmB,CAAC,EAAC,MAAM;MACRC,CAAC,EAAC,OAAO;MACTtD,KAAK,EAAC,KAAK;MACXC,MAAM,EAAC,MAAM;MACbe,SAAS,EAAC,wBAAwB;MAClCuC,MAAM,EAAC,cAAc;MACrBE,IAAI,EAAC,MAAM;MACXD,WAAW,EAAC;IAAK,CACjB,CAAC,eACFjK,sDAAA,CAAC2I,uDAAI;MAACmB,CAAC,EAAC,GAAG;MAACC,CAAC,EAAC,GAAG;MAACtD,KAAK,EAAC,IAAI;MAACC,MAAM,EAAC,GAAG;MAACwD,IAAI,EAAC;IAAc,CAAE,CAAC;EAAA,CAC1D,CACL;EAED,oBACChK,uDAAA,CAAC8K,wDAAQ;IAAA/H,QAAA,gBACRjD,sDAAA,CAACyN,gEAAa;MACbjN,KAAK,EAAGmE,mDAAE,CAAE,UAAU,EAAE,UAAW,CAAG;MACtCgD,IAAI,EAAG+F,kDAAU;MACjBE,SAAS,EAAGhN,QAAU;MACtB4M,OAAO,EAAGA,CAAA,KAAM;QACf9H,aAAa,CAAE;UAAE9E,QAAQ,EAAE,CAAEA;QAAS,CAAE,CAAC;MAC1C;IAAG,CACH,CAAC,EACA,CAAE,UAAU,IAAI,CAAO,MAAOP,IAAI,iBACnCL,sDAAA,CAACyN,gEAAa;MACbjN,KAAK,EAAGmE,mDAAE,CAAE,yBAAyB,EAAE,UAAW,CAAG;MACrDgD,IAAI,EAAGgG,WAAa;MACpBC,SAAS,EAAG,CAAEnN,SAAW;MACzB+M,OAAO,EAAGA,CAAA,KAAM;QACf9H,aAAa,CAAE;UAAEjF,SAAS,EAAE,CAAEA;QAAU,CAAE,CAAC;MAC5C;IAAG,CACH,CACD,EACC,uBAAuB,KAAKL,IAAI,iBACjCJ,sDAAA,CAACyN,gEAAa;MACbjN,KAAK,EAAGmE,mDAAE,CAAE,mBAAmB,EAAE,UAAW,CAAG;MAC/CgD,IAAI,EAAG,aAAe;MACtBiG,SAAS,EAAG5M,QAAU;MACtBwM,OAAO,EAAGA,CAAA,KAAM;QACf9H,aAAa,CAAE;UAAE1E,QAAQ,EAAE,CAAEA;QAAS,CAAE,CAAC;MAC1C;IAAG,CACH,CACD;EAAA,CACQ,CAAC;AAEb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9DqC;AACW;AAOjB;AAEe;AACR;AAEa;AACX;AAEsC;AAAA;AAE9E,SAASoE,iBAAiBA,CAAEK,KAAK,EAAG;EACnC,MAAM;IACLhE,UAAU,EAAE;MACXpB,IAAI;MACJ4D,GAAG;MACHC,GAAG;MACH7C,QAAQ;MACR8C,IAAI;MACJL,SAAS;MACTC,SAAS;MACTjD,UAAU;MACVK,cAAc;MACd6C,OAAO;MACPlC,KAAK;MACLD;IACD,CAAC;IACD6D,aAAa;IACbuF;EACD,CAAC,GAAGxF,KAAK;EAET,MAAMG,SAAS,GAAGjG,4DAAoB,CAAEU,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,UAAU,CAAE;EAE5D,IAAK,UAAU,KAAKA,IAAI,IAAI,OAAO,KAAKA,IAAI,EAAG;IAC9C,OAAO,IAAI;EACZ;EAEA,MAAM2N,MAAM,GAAGD,0EAAmB,CAAC,CAAC;EAEpC,MAAME,IAAI,GAAGH,qEAAc,CAAC,CAAC;EAE7B,oBACC5N,uDAAA,CAAC4M,4DAAS;IACTrD,KAAK,EAAG9E,mDAAE,CAAE,YAAY,EAAE,UAAW,CAAG;IACxC2I,WAAW,EAAG,KAAO;IAAArK,QAAA,GAEnB,CAAE,MAAM,KAAK5C,IAAI,IAAI,KAAK,KAAKA,IAAI,kBACpCL,sDAAA,CAACwK,gEAAa;MACbhK,KAAK,EAAGmE,mDAAE,CAAE,UAAU,EAAE,UAAW,CAAG;MACtCf,OAAO,EAAGvC,QAAU;MACpB+E,QAAQ,EAAKW,GAAG,IAAM;QACrBrB,aAAa,CAAE;UAAErE,QAAQ,EAAE0F;QAAI,CAAE,CAAC;MACnC,CAAG;MACH4E,uBAAuB;IAAA,CACvB,CACD,EACC,CAAE,MAAM,KAAKtL,IAAI,IAAI,MAAM,KAAKA,IAAI,kBACrCL,sDAAA,CAAC4M,6CAAkB;MAAA,GAAMnH;IAAK,CAAI,CAClC,EAECoI,8DAAY,CAAE,qBAAqB,EAAE,EAAE,EAAEpI,KAAM,CAAC,EAEhDG,SAAS,CAACW,QAAQ,CAAE,MAAO,CAAC,IAAI,CAAElF,QAAQ,iBAC3CnB,uDAAA,CAAC8K,wDAAQ;MAAA/H,QAAA,gBACRjD,sDAAA,CAACyK,8DAAW;QACXjK,KAAK,EAAGmE,mDAAE,CAAE,WAAW,EAAE,UAAW,CAAG;QACvCjE,KAAK,EAAGuD,GAAG,IAAI,EAAI;QACnBA,GAAG,EAAG,GAAK;QACX5D,IAAI,EAAG,OAAO,KAAKA,IAAI,GAAG,QAAQ,GAAGA,IAAM;QAC3C+F,QAAQ,EAAKW,GAAG,IAAM;UACrBrB,aAAa,CAAE;YAAEzB,GAAG,EAAE8C;UAAI,CAAE,CAAC;QAC9B,CAAG;QACH4E,uBAAuB;MAAA,CACvB,CAAC,eACF3L,sDAAA,CAACyK,8DAAW;QACXjK,KAAK,EAAGmE,mDAAE,CAAE,WAAW,EAAE,UAAW,CAAG;QACvCjE,KAAK,EAAGwD,GAAG,IAAI,EAAI;QACnB7D,IAAI,EAAG,OAAO,KAAKA,IAAI,GAAG,QAAQ,GAAGA,IAAM;QAC3C4D,GAAG,EAAG,GAAK;QACXmC,QAAQ,EAAKW,GAAG,IAAM;UACrBrB,aAAa,CAAE;YAAExB,GAAG,EAAE6C;UAAI,CAAE,CAAC;QAC9B,CAAG;QACH4E,uBAAuB;MAAA,CACvB,CAAC,eACF3L,sDAAA,CAACyK,8DAAW;QACXpK,IAAI,EAAC,QAAQ;QACbG,KAAK,EAAGmE,mDAAE,CAAE,YAAY,EAAE,UAAW,CAAG;QACxCjE,KAAK,EAAGyD,IAAI,IAAI,EAAI;QACpBiC,QAAQ,EAAKW,GAAG,IACfrB,aAAa,CAAE;UAAEvB,IAAI,EAAEmF,MAAM,CAAEvC,GAAI;QAAE,CAAE,CACvC;QACD4E,uBAAuB;MAAA,CACvB,CAAC;IAAA,CACO,CACV,EACC/F,SAAS,CAACW,QAAQ,CAAE,WAAY,CAAC,iBAClCrG,uDAAA,CAAC8K,wDAAQ;MAAA/H,QAAA,gBACRjD,sDAAA,CAACyK,8DAAW;QACXpK,IAAI,EAAC,QAAQ;QACbG,KAAK,EAAGmE,mDAAE,CAAE,gBAAgB,EAAE,UAAW,CAAG;QAC5CjE,KAAK,EAAGoD,SAAW;QACnBG,GAAG,EAAG,GAAK;QACXmC,QAAQ,EAAKW,GAAG,IACfrB,aAAa,CAAE;UAAE5B,SAAS,EAAEiD;QAAI,CAAE,CAClC;QACD9F,IAAI,EAAG0D,mDAAE,CACR,iDAAiD,EACjD,UACD,CAAG;QACHgH,uBAAuB;MAAA,CACvB,CAAC,eACF3L,sDAAA,CAACyK,8DAAW;QACXpK,IAAI,EAAC,QAAQ;QACbG,KAAK,EAAGmE,mDAAE,CAAE,gBAAgB,EAAE,UAAW,CAAG;QAC5CjE,KAAK,EAAGqD,SAAW;QACnBqC,QAAQ,EAAKW,GAAG,IACfrB,aAAa,CAAE;UAAE3B,SAAS,EAAEgD;QAAI,CAAE,CAClC;QACD9F,IAAI,EAAG0D,mDAAE,CACR,iDAAiD,EACjD,UACD,CAAG;QACHgH,uBAAuB;MAAA,CACvB,CAAC;IAAA,CACO,CACV,EACC/F,SAAS,CAACW,QAAQ,CAAE,SAAU,CAAC,iBAChCvG,sDAAA,CAACgL,wDAAQ;MAAA/H,QAAA,eACRjD,sDAAA,CAACgN,mDAAS;QACTxM,KAAK,EAAG,SAAW;QACnByK,QAAQ,EAAGA,QAAU;QACrBgD,IAAI,EAAGA,IAAM;QACbvN,KAAK,EAAGsD,OAAS;QACjBoC,QAAQ,EAAKW,GAAG,IAAM;UACrBrB,aAAa,CAAE;YAAE1B,OAAO,EAAE+C;UAAI,CAAE,CAAC;QAClC,CAAG;QACH9F,IAAI,EAAG0D,mDAAE,CACR,2CAA2C,EAC3C,UACD;MAAG,CACH;IAAC,CACO,CACV,EACCiB,SAAS,CAACW,QAAQ,CAAE,SAAU,CAAC,iBAChCvG,sDAAA,CAACyK,8DAAW;MACXjK,KAAK,EAAGmE,mDAAE,CAAE,2BAA2B,EAAE,UAAW,CAAG;MACvD1D,IAAI,EAAG0D,mDAAE,CACR,kDAAkD,EAClD,UACD,CAAG;MACHjE,KAAK,EAAGI,UAAY;MACpBsF,QAAQ,EAAKW,GAAG,IAAMrB,aAAa,CAAE;QAAE5E,UAAU,EAAEiG;MAAI,CAAE,CAAG;MAC5D4E,uBAAuB;IAAA,CACvB,CACD,EACC/F,SAAS,CAACW,QAAQ,CAAE,UAAW,CAAC,iBACjCrG,uDAAA,CAAC8K,wDAAQ;MAAA/H,QAAA,gBACRjD,sDAAA,CAACwK,gEAAa;QACbhK,KAAK,EAAGmE,mDAAE,CAAE,oBAAoB,EAAE,UAAW,CAAG;QAChDf,OAAO,EAAGzC,cAAgB;QAC1BiF,QAAQ,EAAKsF,MAAM,IAClBhG,aAAa,CAAE;UAAEvE,cAAc,EAAEuK;QAAO,CAAE,CAC1C;QACDC,uBAAuB;MAAA,CACvB,CAAC,EACAxK,cAAc,iBACfjB,uDAAA,CAAC8K,wDAAQ;QAAA/H,QAAA,gBACRjD,sDAAA,CAAC2M,gEAAa;UACbnM,KAAK,EAAGmE,mDAAE,CAAE,OAAO,EAAE,UAAW,CAAG;UACnCjE,KAAK,EAAGoB,KAAO;UACf+K,OAAO,EAAG,CACT;YACCnM,KAAK,EAAE,EAAE;YACTF,KAAK,EAAEmE,mDAAE,CACR,gBAAgB,EAChB,UACD;UACD,CAAC,EACD,GAAGqJ,MAAM,CACP;UACH5H,QAAQ,EAAKW,GAAG,IACfrB,aAAa,CAAE;YAAE5D,KAAK,EAAEiF;UAAI,CAAE,CAC9B;UACD9F,IAAI,EAAG0D,mDAAE,CACR,4BAA4B,EAC5B,UACD,CAAG;UACHgH,uBAAuB;QAAA,CACvB,CAAC,eACF3L,sDAAA,CAACyK,8DAAW;UACXpK,IAAI,EAAC,MAAM;UACXG,KAAK,EAAGmE,mDAAE,CAAE,kBAAkB,EAAE,UAAW,CAAG;UAC9CjE,KAAK,EAAGmB,eAAe,IAAI,EAAI;UAC/BuE,QAAQ,EAAKW,GAAG,IACfrB,aAAa,CAAE;YAAE7D,eAAe,EAAEkF;UAAI,CAAE,CACxC;UACD4E,uBAAuB;QAAA,CACvB,CAAC;MAAA,CACO,CACV;IAAA,CACQ,CACV;EAAA,CACS,CAAC;AAEd;AAEA,iEAAevG,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;ACrNK;AACyC;AACzB;AACT;AAEpB;AAAA;AAET,SAASF,KAAKA,CAAE;EAAEzD,UAAU;EAAEiE,aAAa;EAAEyI;AAAQ,CAAC,EAAG;EACvE,MAAM;IACL1F,UAAU;IACV2F,UAAU;IACVC,WAAW;IACX5N,SAAS;IACTG,QAAQ;IACRiD,QAAQ;IACRxD,IAAI;IACJG;EACD,CAAC,GAAGiB,UAAU;EAEd,MAAM;IAAE6M,QAAQ;IAAEC;EAAO,CAAC,GAAG5D,0DAAS,CAAIQ,MAAM,IAAM;IACrD,MAAM;MAAEqD;IAAY,CAAC,GAAGrD,MAAM,CAAEL,0DAAiB,CAAC;IAClD,OAAO;MACNwD,QAAQ,EAAEnD,MAAM,CAAE,aAAc,CAAC,CAACsD,kBAAkB,CAAC,CAAC;MACtDF,MAAM,EAAEpD,MAAM,CAAE,aAAc,CAAC,CAACuD,gBAAgB,CAAC,CAAC;MAClDC,SAAS,EAAEH,WAAW,CAAC,CAAC,CAACI;IAC1B,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM,CAAEC,IAAI,CAAE,GAAGX,mEAAa,CAC7B,UAAU,EACV,eAAe,EACf,MAAM,EACNK,MACD,CAAC;EAED,MAAMxM,cAAc,GAAG8F,gDAAI,CAC1B,WAAW,EACXY,UAAU,EACV2F,UAAU,EACVC,WAAW,EACX;IACCrM,IAAI,EAAEvB,SAAS;IACfG,QAAQ;IACR,gBAAgB,EAAEiD,QAAQ,IAAI,UAAU,KAAKxD;EAC9C,CACD,CAAC;EAED,oBACCH,uDAAA;IAAKyB,SAAS,EAAGI,cAAgB;IAACmB,OAAO,EAAC,OAAO;IAAAD,QAAA,gBAChDjD,sDAAA,CAACoD,6DAAQ;MACRC,OAAO,EAAC,MAAM;MACd3C,KAAK,EAAGF,KAAO;MACf4F,QAAQ,EAAKW,GAAG,IAAM;QACrBrB,aAAa,CAAE;UAAElF,KAAK,EAAEuG;QAAI,CAAE,CAAC;MAChC,CAAG;MACHpG,WAAW,EAAGgE,mDAAE,CAAE,cAAc,EAAE,UAAW,CAAG;MAChDqC,cAAc,EAAG,CAAE,WAAW,EAAE,aAAa,EAAE,WAAW;IAAI,CAC9D,CAAC,EAEApG,QAAQ,iBACTZ,sDAAA;MAAM2B,SAAS,EAAC,UAAU;MAAAsB,QAAA,EACvBkL,OAAO,CAAE,uBAAuB,CAAE,IAAI;IAAG,CACtC,CACN;EAAA,CACG,CAAC;AAER;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClEgD;AACK;AACZ;AAC2B;AAEpE,MAAMW,OAAO,GAAG,CACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,CACvB;;AAED;AACA;AACA;AACO,SAASC,cAAcA,CAAA,EAAG;EAChC,MAAMf,MAAM,GAAG,EAAE;EACjB,MAAMgB,MAAM,GACX7D,uDAAM,CAAEL,0DAAiB,CAAC,CAACmE,eAAe,CAAE,gBAAiB,CAAC;EAC/D,MAAMC,SAAS,GACd/D,uDAAM,CAAEL,0DAAiB,CAAC,CAACmE,eAAe,CAAE,mBAAoB,CAAC;EAClE,MAAME,OAAO,GACZhE,uDAAM,CAAEL,0DAAiB,CAAC,CAACmE,eAAe,CAAE,iBAAkB,CAAC;EAChE,MAAMG,OAAO,GACZjE,uDAAM,CAAEL,0DAAiB,CAAC,CAACmE,eAAe,CAAE,iBAAkB,CAAC;EAChE,MAAMI,YAAY,GAAGlE,uDAAM,CAAEL,0DAAiB,CAAC,CAACmE,eAAe,CAC9D,uBACD,CAAC;EAED,MAAMK,QAAQ,GAAGN,MAAM,CAACO,MAAM,CAAEL,SAAS,EAAEC,OAAO,EAAEC,OAAO,EAAEC,YAAa,CAAC;EAE3EC,QAAQ,CAACvM,OAAO,CAAIyM,CAAC,IAAM;IAC1B,MAAMnE,KAAK,GAAGF,uDAAM,CAAEL,0DAAiB,CAAC,CAACM,QAAQ,CAAEoE,CAAE,CAAC;IACtD,IAAKV,OAAO,CAACvI,QAAQ,CAAE8E,KAAK,CAACjL,IAAK,CAAC,EAAG;MACrC4N,MAAM,CAACyB,IAAI,CAAEpE,KAAM,CAAC;IACrB;EACD,CAAE,CAAC;EAEH,OAAO2C,MAAM;AACd;;AAEA;AACA;AACA;AACO,SAAS0B,QAAQA,CAAA,EAAG;EAC1B,MAAM1B,MAAM,GAAG;IACd2B,KAAK,EAAE,EAAE;IACTC,OAAO,EACNzE,uDAAM,CAAEL,0DAAiB,CAAC,CAACmE,eAAe,CAAE,iBAAkB;EAChE,CAAC;EACD,MAAMY,WAAW,GAAGd,cAAc,CAAC,CAAC;EAEpCc,WAAW,CAAC9M,OAAO,CAAIyM,CAAC,IAAM;IAC7BxB,MAAM,CAAC2B,KAAK,CAACF,IAAI,CAAED,CAAC,CAAC/N,UAAU,CAACrB,IAAK,CAAC;EACvC,CAAE,CAAC;EAEH,OAAO4N,MAAM;AACd;;AAEA;AACA;AACA;AACO,SAAS8B,aAAaA,CAAA,EAAG;EAC/B,MAAM9B,MAAM,GAAG,CAAC,CAAC;EACjB,MAAM6B,WAAW,GAAGd,cAAc,CAAC,CAAC;EAEpCc,WAAW,CAAC9M,OAAO,CAAIyM,CAAC,IAAM;IAC7B;IACA,IAAInP,IAAI,GAAGmP,CAAC,CAACpP,IAAI,CAAC2P,KAAK,CAAE,GAAI,CAAC,CAAE,CAAC,CAAE;IACnC,IAAK,OAAO,KAAK1P,IAAI,EAAG;MACvBA,IAAI,GAAGmP,CAAC,CAAC/N,UAAU,CAACpB,IAAI;IACzB;IAEA2N,MAAM,CAAEwB,CAAC,CAAC/N,UAAU,CAACrB,IAAI,CAAE,GAAGC,IAAI;IAClC,IAAKmP,CAAC,CAAC/N,UAAU,CAACJ,QAAQ,IAAI,UAAU,KAAK,UAAU,EAAG;MACzD2M,MAAM,CAAEwB,CAAC,CAAC/N,UAAU,CAACrB,IAAI,CAAE,GAAG,UAAU;IACzC;IACA,IAAKoP,CAAC,CAAC/N,UAAU,CAACoC,QAAQ,IAAI,QAAQ,KAAKxD,IAAI,EAAG;MACjD2N,MAAM,CAAEwB,CAAC,CAAC/N,UAAU,CAACrB,IAAI,CAAE,GAAGC,IAAI,GAAG,WAAW;IACjD;EACD,CAAE,CAAC;EAEH,OAAO2N,MAAM;AACd;AAEO,SAASgC,eAAeA,CAAA,EAAG;EACjC,MAAMhC,MAAM,GAAG,EAAE;EACjB,MAAM6B,WAAW,GAAGd,cAAc,CAAC,CAAC;EAEpCc,WAAW,CAAC9M,OAAO,CAAIyM,CAAC,IAAM;IAC7BxB,MAAM,CAACyB,IAAI,CAAE;MACZhG,KAAK,EAAE+F,CAAC,CAAC/N,UAAU,CAACrB,IAAI;MACxB6P,GAAG,EAAE,WAAW,GAAGT,CAAC,CAAC/N,UAAU,CAACrB,IAAI,GAAG;IACxC,CAAE,CAAC;EACJ,CAAE,CAAC;EAEH,OAAO4N,MAAM;AACd;AAEO,SAASD,mBAAmBA,CAAA,EAAG;EACrC,MAAMC,MAAM,GAAG,EAAE;EACjB,MAAM6B,WAAW,GAAGd,cAAc,CAAC,CAAC;EAEpCc,WAAW,CAAC9M,OAAO,CAAIyM,CAAC,IAAM;IAC7BxB,MAAM,CAACyB,IAAI,CAAE;MACZjP,KAAK,EAAEgP,CAAC,CAAC/N,UAAU,CAACrB,IAAI;MACxBM,KAAK,EAAE8O,CAAC,CAAC/N,UAAU,CAACrB;IACrB,CAAE,CAAC;EACJ,CAAE,CAAC;EAEH,OAAO4N,MAAM;AACd;AAEO,SAASkC,aAAaA,CAAA,EAAG;EAC/B,MAAMlC,MAAM,GAAGgC,eAAe,CAAC,CAAC;EAEhC,OAAO,CACN;IACCvG,KAAK,EAAE,UAAU;IACjBwG,GAAG,EAAE;EACN,CAAC,EACD,GAAGjC,MAAM,CACT;AACF;AAEO,SAASmC,cAAcA,CAAA,EAAG;EAChC,MAAMC,WAAW,GAAG,CAAC,CAAC;EACtB,MAAMpC,MAAM,GAAGe,cAAc,CAAC,CAAC;EAE/B,IAAKf,MAAM,EAAG;IACbA,MAAM,CAACjL,OAAO,CAAIyM,CAAC,IAAM;MACxB,MAAMa,UAAU,GAAGC,kBAAkB,CAAEd,CAAE,CAAC;MAC1C,IAAIpP,IAAI,GAAGoP,CAAC,CAAC/N,UAAU,CAACrB,IAAI;MAE5B,IAAKoP,CAAC,CAAC/N,UAAU,CAACoC,QAAQ,EAAG;QAC5BzD,IAAI,IAAI,IAAI;MACb;MACA,IAAKiQ,UAAU,EAAG;QACjBD,WAAW,CAAEhQ,IAAI,CAAE,GAAGiQ,UAAU;MACjC;IACD,CAAE,CAAC;EACJ;EAEA,OAAOD,WAAW;AACnB;AAEO,SAASE,kBAAkBA,CAAEC,KAAK,EAAG;EAC3C,IAAIH,WAAW,GAAG,EAAE;EAEpB,IAAKG,KAAK,CAAC9O,UAAU,CAACpB,IAAI,KAAK,KAAK,EAAG;IACtC+P,WAAW,CAACX,IAAI,CAAE,KAAM,CAAC;EAC1B;EAEA,IAAKc,KAAK,CAAC9O,UAAU,CAACb,QAAQ,EAAG;IAChCwP,WAAW,CAACX,IAAI,CAAE,UAAW,CAAC;EAC/B;EAEA,IAAKc,KAAK,CAAC9O,UAAU,CAACqC,SAAS,EAAG;IACjCsM,WAAW,CAACX,IAAI,CAAE,YAAY,GAAGc,KAAK,CAAC9O,UAAU,CAACqC,SAAU,CAAC;EAC9D;EAEA,IAAKyM,KAAK,CAAC9O,UAAU,CAACsC,SAAS,EAAG;IACjCqM,WAAW,CAACX,IAAI,CAAE,YAAY,GAAGc,KAAK,CAAC9O,UAAU,CAACsC,SAAU,CAAC;EAC9D;EAEA,IAAKwM,KAAK,CAAC9O,UAAU,CAACwC,GAAG,IAAI,MAAM,KAAKsM,KAAK,CAAC9O,UAAU,CAACpB,IAAI,EAAG;IAC/D+P,WAAW,CAACX,IAAI,CAAE,MAAM,GAAGc,KAAK,CAAC9O,UAAU,CAACwC,GAAI,CAAC;EAClD;EAEA,IACCsM,KAAK,CAAC9O,UAAU,CAACyC,GAAG,IACpB,MAAM,KAAKqM,KAAK,CAAC9O,UAAU,CAACpB,IAAI,IAChC,MAAM,KAAKkQ,KAAK,CAAC9O,UAAU,CAACpB,IAAI,EAC/B;IACD+P,WAAW,CAACX,IAAI,CAAE,MAAM,GAAGc,KAAK,CAAC9O,UAAU,CAACyC,GAAI,CAAC;EAClD;EAEA,IAAKqM,KAAK,CAAC9O,UAAU,CAACpB,IAAI,KAAK,OAAO,EAAG;IACxC+P,WAAW,CAACX,IAAI,CAAE,OAAQ,CAAC;EAC5B;EAEA,IACCc,KAAK,CAAC9O,UAAU,CAACpB,IAAI,KAAK,QAAQ,IAClCkQ,KAAK,CAAC9O,UAAU,CAACpB,IAAI,KAAK,OAAO,EAChC;IACD+P,WAAW,CAACX,IAAI,CAAE,SAAU,CAAC;EAC9B;EAEA,IAAK,MAAM,KAAKc,KAAK,CAAC9O,UAAU,CAACpB,IAAI,IAAI,CAAEkQ,KAAK,CAAC9O,UAAU,CAACJ,QAAQ,EAAG;IACtE+O,WAAW,CAACX,IAAI,CAAE,MAAO,CAAC;EAC3B;EAEA,IAAKc,KAAK,CAAC9O,UAAU,CAACuC,OAAO,EAAG;IAC/B,MAAMwM,KAAK,GAAG,IAAIC,MAAM,CAAEF,KAAK,CAAC9O,UAAU,CAACuC,OAAQ,CAAC;IACpDoM,WAAW,CAACX,IAAI,CAAE,QAAQ,GAAGe,KAAM,CAAC;EACrC;EAEA,IAAKD,KAAK,CAAC9O,UAAU,CAACN,cAAc,IAAI,EAAE,KAAKoP,KAAK,CAAC9O,UAAU,CAACK,KAAK,EAAG;IACvEsO,WAAW,CAACX,IAAI,CAAE,OAAO,GAAGc,KAAK,CAAC9O,UAAU,CAACK,KAAM,CAAC;EACrD;EAEA+L,8DAAY,CAAE,sBAAsB,EAAEuC,WAAW,EAAEG,KAAM,CAAC;EAE1D,IAAKH,WAAW,CAAC9E,MAAM,EAAG;IACzB8E,WAAW,GAAGA,WAAW,CAACvN,IAAI,CAAE,GAAI,CAAC;EACtC;EAEA,OAAOuN,WAAW,CAAC9E,MAAM,GAAG8E,WAAW,GAAGzN,SAAS;AACpD;AAEO,SAAS+N,WAAWA,CAAA,EAAG;EAC7B,MAAMpC,QAAQ,GAAGnD,uDAAM,CAAE,aAAc,CAAC,CAACsD,kBAAkB,CAAC,CAAC;EAC7D,MAAMF,MAAM,GAAGpD,uDAAM,CAAE,aAAc,CAAC,CAACuD,gBAAgB,CAAC,CAAC;EAEzD,MAAM,CAAEG,IAAI,CAAE,GAAGX,mEAAa,CAAE,UAAU,EAAEI,QAAQ,EAAE,MAAM,EAAEC,MAAO,CAAC;EACtE,MAAMoC,QAAQ,GAAG,EAAE;EAEnB,KAAM,MAAM3N,GAAG,IAAI6L,IAAI,EAAG;IACzB,IAAKA,IAAI,CAAE7L,GAAG,CAAE,KAAKX,MAAM,CAAEW,GAAI,CAAC,EAAG;MACpC;IACD;IACA,MAAMiN,GAAG,GAAG;MACXxG,KAAK,EAAEzG,GAAG;MACViN,GAAG,EAAE,UAAWjN,GAAG;IACpB,CAAC;IACD2N,QAAQ,CAAClB,IAAI,CAAEQ,GAAI,CAAC;EACrB;EAEA,OAAOU,QAAQ;AAChB;AAEO,SAASC,gBAAgBA,CAAA,EAAG;EAClC,MAAMC,IAAI,GAAG,CACZ;IACCpH,KAAK,EAAE,SAAS;IAChBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,YAAY;IACnBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,UAAU;IACjBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,aAAa;IACpBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,mBAAmB;IAC1BwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,SAAS;IAChBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,iBAAiB;IACxBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,gBAAgB;IACvBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,mBAAmB;IAC1BwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,eAAe;IACtBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,YAAY;IACnBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,UAAU;IACjBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,YAAY;IACnBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,UAAU;IACjBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,aAAa;IACpBwG,GAAG,EAAE;EACN,CAAC,CACD;EAED,OAAOY,IAAI;AACZ;AAEO,SAASC,WAAWA,CAAA,EAAG;EAC7B,MAAMD,IAAI,GAAG,CACZ;IACCpH,KAAK,EAAE,SAAS;IAChBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,YAAY;IACnBwG,GAAG,EAAE;EACN,CAAC,CACD;EAED,OAAOY,IAAI;AACZ;AAEO,SAASE,YAAYA,CAAA,EAAG;EAC9B,MAAMF,IAAI,GAAG,CACZ;IACCpH,KAAK,EAAE,MAAM;IACbwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,MAAM;IACbwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,cAAc;IACrBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,SAAS;IAChBwG,GAAG,EAAE;EACN,CAAC,CACD;EAED,OAAOY,IAAI;AACZ;AAEO,SAAS/C,cAAcA,CAAA,EAAG;EAChC,MAAMkD,SAAS,GAAG,CACjB;IACCvH,KAAK,EAAE,UAAU;IACjBwG,GAAG,EAAE,0CAA0C;IAC/CvG,WAAW,EAAE;EACd,CAAC,EACD;IACCD,KAAK,EAAE,kCAAkC;IACzCwG,GAAG,EAAE,wEAAwE;IAC7EvG,WAAW,EACV;EACF,CAAC,CACD;EAED,MAAMuH,KAAK,GAAG,CACb;IACCxH,KAAK,EAAE,YAAY;IACnBwG,GAAG,EAAE;EACN,CAAC,EACD;IACCxG,KAAK,EAAE,UAAU;IACjBwG,GAAG,EAAE;EACN,CAAC,CACD;EAED,MAAMhC,IAAI,GAAG,CACZ;IACC7N,IAAI,EAAE,WAAW;IACjBqJ,KAAK,EAAE,WAAW;IAClByH,IAAI,EAAEF;EACP,CAAC,EACD;IACC5Q,IAAI,EAAE,OAAO;IACbqJ,KAAK,EAAE,OAAO;IACdyH,IAAI,EAAED;EACP,CAAC,CACD;EAED,OAAOhD,IAAI;AACZ;;;;;;;;;;;;;;;;;;;;;;;ACxXA;AACA;AACA;AACA;AACA;AAK+B;AACiB;AACP;AACF;AAAA;AAExB,SAASjB,SAASA,CAAEvH,KAAK,EAAG;EAC1C,MAAM;IACLjF,KAAK;IACLE,KAAK;IACLC,WAAW;IACXM,IAAI;IACJmF,QAAQ;IACRuB,IAAI,GAAG4J,wDAAY;IACnBtG,QAAQ;IACRgD,IAAI,GAAGuD,sDAAW,CAAEvG,QAAS;EAC9B,CAAC,GAAGxF,KAAK;EAET,oBACCzF,sDAAA,CAACmR,8DAAW;IAACxF,uBAAuB;IAAA1I,QAAA,eACnCjD,sDAAA,CAACsR,6EAAY;MACZ5Q,KAAK,EAAGA,KAAO;MACfF,KAAK,EAAGA,KAAO;MACf4F,QAAQ,EAAGA,QAAU;MACrBzF,WAAW,EAAGA,WAAa;MAC3BM,IAAI,EAAGA,IAAM;MACbyQ,MAAM,eACL1R,sDAAA,CAACoR,+DAAY;QACZzJ,IAAI,EAAGA,IAAM;QACbnH,KAAK,EAAGA,KAAO;QACfmR,WAAW,EAAG;UAAEC,OAAO,EAAE;QAAK,CAAG;QACjCC,IAAI,EAAC,OAAO;QAAA5O,QAAA,EAEVA,CAAA,kBACDjD,sDAAA,CAACyR,oDAAU;UAACxD,IAAI,EAAGA,IAAM;UAAC7H,QAAQ,EAAGA;QAAU,CAAE;MACjD,CACY;IACd,CACD;EAAC,CACU,CAAC;AAEhB;AAEO,SAAS0L,aAAaA,CAAErM,KAAK,EAAG;EACtC,MAAM;IAAEjF,KAAK;IAAE4F,QAAQ;IAAEuB,IAAI,GAAG4J,wDAAY;IAAEtG;EAAS,CAAC,GAAGxF,KAAK;EAEhE,MAAMwI,IAAI,GAAGuD,sDAAW,CAAEvG,QAAS,CAAC;EAEpC,oBACCjL,sDAAA,CAACoR,+DAAY;IACZzJ,IAAI,EAAGA,IAAM;IACbnH,KAAK,EAAGA,KAAO;IACfmR,WAAW,EAAG;MAAEC,OAAO,EAAE;IAAK,CAAG;IAAA3O,QAAA,EAE/BA,CAAA,kBAAMjD,sDAAA,CAACyR,oDAAU;MAACxD,IAAI,EAAGA,IAAM;MAAC7H,QAAQ,EAAGA;IAAU,CAAE;EAAC,CAC7C,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AAC0E;AAClB;AAAA;AAEzC,SAASqL,UAAUA,CAAE;EAAExD,IAAI;EAAE7H;AAAS,CAAC,EAAG;EACxD,MAAM,CAAE+L,WAAW,EAAEC,cAAc,CAAE,GAAGF,4DAAQ,CAAE,EAAG,CAAC;EAEtD,MAAMG,WAAW,GAAKC,OAAO,IAAM;IAClC,IAAK,EAAE,KAAKH,WAAW,EAAG;MACzB,OAAO,IAAI;IACZ;IACA,OACCG,OAAO,CAAC7I,KAAK,CAAC2D,WAAW,CAAC,CAAC,CAACmF,MAAM,CAAEJ,WAAW,CAAC/E,WAAW,CAAC,CAAE,CAAC,KAC/D,CAAC,CAAC;EAEJ,CAAC;EAED,oBACClN,uDAAA,CAAC8K,wDAAQ;IAAA/H,QAAA,gBACRjD,sDAAA,CAAC+R,gEAAa;MACbrR,KAAK,EAAGyR,WAAa;MACrB/L,QAAQ,EAAGgM,cAAgB;MAC3BzG,uBAAuB;IAAA,CACvB,CAAC,eACF3L,sDAAA,CAACgS,2DAAQ;MAAC/D,IAAI,EAAGA,IAAM;MAAAhL,QAAA,EAClBuP,GAAG,IACNA,GAAG,CAACtB,IAAI,CACNuB,MAAM,CAAIH,OAAO,IAAM;QACvB,OAAOD,WAAW,CAAEC,OAAQ,CAAC;MAC9B,CAAE,CAAC,CACF/P,GAAG,CAAI2O,IAAI,IAAM;QACjB,oBACClR,sDAAA,CAACiS,2DAAQ;UAERzE,OAAO,EAAGA,CAAA,KAAMpH,QAAQ,CAAE8K,IAAI,CAACjB,GAAI,CAAG;UACtCyC,IAAI,EAAGxB,IAAI,CAACxH,WAAa;UAAAzG,QAAA,EAEvBiO,IAAI,CAACzH;QAAK,GAJNyH,IAAI,CAACzH,KAKF,CAAC;MAEb,CAAE;IAAC,CAEI,CAAC;EAAA,CACF,CAAC;AAEb;;;;;;;;;;;;;;;;AC5CqB;AAEd,SAAS+H,WAAWA,CAAEvG,QAAQ,EAAG;EACvC,MAAMgD,IAAI,GAAG,CACZ;IACC7N,IAAI,EAAE,QAAQ;IACdqJ,KAAK,EAAE,QAAQ;IACfyH,IAAI,EAAEhB,yDAAa,CAAEjF,QAAS;EAC/B,CAAC,EACD;IACC7K,IAAI,EAAE,WAAW;IACjBqJ,KAAK,EAAE,WAAW;IAClByH,IAAI,EAAEN,4DAAgB,CAAC;EACxB,CAAC,EACD;IACCxQ,IAAI,EAAE,OAAO;IACbqJ,KAAK,EAAE,OAAO;IACdyH,IAAI,EAAEH,wDAAY,CAAC;EACpB,CAAC,CACD;EAED,OAAO9C,IAAI;AACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3B6E;AACA;AACE;AACE;AACJ;AACA;AACA;AACA;AACR;AACM;AACI;AACH;AACP;AACU;AACI;AACN;AACA;AACG;AACP;AACE;AACQ;AACV;;;;;;;;;;;ACrBzE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK,KAA6B;AAClC;AACA;AACA,GAAG,SAAS,IAA4E;AACxF;AACA,EAAE,iCAAqB,EAAE,mCAAE;AAC3B;AACA,GAAG;AAAA,kGAAC;AACJ,GAAG,KAAK,EAEN;AACF,CAAC;;;;;;;;;;;;;ACzDD;;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA,cAAc,aAAa,+CAA+C,gDAAgD,eAAe,QAAQ,IAAI,0CAA0C,yCAAyC,SAAgB,gBAAgB,wCAAwC,IAAI,mDAAmD,SAAS,iEAAe,IAAI;;;;;;;;;;;;;;;;;UCAnY;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC7BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEnDA;UACA;UACA;UACA;UACA","sources":["webpack://formello/./assets/icons/asterisk.svg","webpack://formello/./assets/icons/checkbox.svg","webpack://formello/./assets/icons/checkboxes.svg","webpack://formello/./assets/icons/clock-field.svg","webpack://formello/./assets/icons/color-field.svg","webpack://formello/./assets/icons/date-field.svg","webpack://formello/./assets/icons/email-field.svg","webpack://formello/./assets/icons/fieldset.svg","webpack://formello/./assets/icons/form.svg","webpack://formello/./assets/icons/gdpr-field.svg","webpack://formello/./assets/icons/hidden-field.svg","webpack://formello/./assets/icons/logo.svg","webpack://formello/./assets/icons/number-field.svg","webpack://formello/./assets/icons/password-field.svg","webpack://formello/./assets/icons/phone-field.svg","webpack://formello/./assets/icons/radio-buttons.svg","webpack://formello/./assets/icons/radio-field.svg","webpack://formello/./assets/icons/range-field.svg","webpack://formello/./assets/icons/select.svg","webpack://formello/./assets/icons/text-field.svg","webpack://formello/./assets/icons/textarea-field.svg","webpack://formello/./assets/icons/url-field.svg","webpack://formello/./node_modules/@wordpress/icons/build-module/library/more-vertical.js","webpack://formello/./src/blocks/input/deprecated.js","webpack://formello/./src/blocks/input/edit.js","webpack://formello/./src/blocks/input/index.js","webpack://formello/./src/blocks/input/save.js","webpack://formello/./src/blocks/input/use-field-props.js","webpack://formello/./src/blocks/input/variations.js","webpack://formello/./src/components/field-options/advanced.js","webpack://formello/./src/components/field-options/constants.js","webpack://formello/./src/components/field-options/date.js","webpack://formello/./src/components/field-options/index.js","webpack://formello/./src/components/field-options/toolbar.js","webpack://formello/./src/components/field-options/validation.js","webpack://formello/./src/components/label.js","webpack://formello/./src/components/merge-tags/functions.js","webpack://formello/./src/components/merge-tags/index.js","webpack://formello/./src/components/merge-tags/tab-content.js","webpack://formello/./src/components/merge-tags/use-tabs.js","webpack://formello/./src/icons/icons.js","webpack://formello/./node_modules/classnames/index.js","webpack://formello/./src/blocks/input/style.scss","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"blocks\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"coreData\"]","webpack://formello/external window [\"wp\",\"data\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"hooks\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/external window [\"wp\",\"primitives\"]","webpack://formello/./node_modules/clsx/dist/clsx.mjs","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/chunk loaded","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/webpack/runtime/jsonp chunk loading","webpack://formello/webpack/before-startup","webpack://formello/webpack/startup","webpack://formello/webpack/after-startup"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgAsterisk = function SvgAsterisk(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12.75 6h-1.5v4.19L8.288 7.226l-1.061 1.06 2.962 2.963H6v1.5h4.19l-2.963 2.962 1.06 1.061 2.963-2.962V18h1.5v-4.19l2.962 2.963 1.061-1.06-2.962-2.963H18v-1.5h-4.19l2.963-2.962-1.06-1.061-2.963 2.962V6Z\"\n })));\n};\nexport { SvgAsterisk as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjc1IDZIMTEuMjVWMTAuMTg5M0w4LjI4NzY5IDcuMjI3MDNMNy4yMjcwMyA4LjI4NzY5TDEwLjE4OTMgMTEuMjVINlYxMi43NUgxMC4xODkzTDcuMjI3MDMgMTUuNzEyM0w4LjI4NzY5IDE2Ljc3M0wxMS4yNSAxMy44MTA3VjE4SDEyLjc1VjEzLjgxMDdMMTUuNzEyMyAxNi43NzNMMTYuNzczIDE1LjcxMjNMMTMuODEwNyAxMi43NUgxOFYxMS4yNUgxMy44MTA3TDE2Ljc3MyA4LjI4NzY5TDE1LjcxMjMgNy4yMjcwM0wxMi43NSAxMC4xODkzVjZaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckbox = function SvgCheckbox(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z\"\n })));\n};\nexport { SvgCheckbox as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGc+CiAgICAgICAgPHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIvPgogICAgICAgIDxwYXRoIGQ9Ik00IDNoMTZhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6bTEgMnYxNGgxNFY1SDV6bTYuMDAzIDExTDYuNzYgMTEuNzU3bDEuNDE0LTEuNDE0IDIuODI5IDIuODI5IDUuNjU2LTUuNjU3IDEuNDE1IDEuNDE0TDExLjAwMyAxNnoiIC8+CiAgICA8L2c+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckboxes = function SvgCheckboxes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 24,\n height: 24,\n viewBox: \"0 0 300.396 300.396\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.048 216.749H4.076a3 3 0 0 0-3 3v59.973a3 3 0 0 0 3 3h59.972a3 3 0 0 0 3-3v-59.973c0-1.656-1.344-3-3-3zM64.048 17.675H4.076A4.075 4.075 0 0 0 0 21.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076V21.749a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986V36.809h29.849v29.852H19.138zM64.048 116.675H4.076A4.075 4.075 0 0 0 0 120.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076v-59.973a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986v-29.852h29.849v29.852H19.138zM297.396 231.036h-186.67a3 3 0 0 0-3 3v31.4a3 3 0 0 0 3 3h186.67c1.656 0 3-1.344 3-3v-31.4a3 3 0 0 0-3-3zM110.729 169.438h186.667a3 3 0 0 0 3-3v-31.406c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3zM110.729 70.438h186.667a3 3 0 0 0 3-3V36.032c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3z\"\n })));\n};\nexport { SvgCheckboxes as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiAKCSB2aWV3Qm94PSIwIDAgMzAwLjM5NiAzMDAuMzk2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNNjQuMDQ4LDIxNi43NDlINC4wNzZjLTEuNjU3LDAtMywxLjM0NC0zLDN2NTkuOTczYzAsMS42NTgsMS4zNDMsMywzLDNoNTkuOTcyYzEuNjU2LDAsMy0xLjM0MiwzLTN2LTU5Ljk3MwoJCUM2Ny4wNDgsMjE4LjA5Myw2NS43MDQsMjE2Ljc0OSw2NC4wNDgsMjE2Ljc0OXoiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTcuNjc1SDQuMDc2QzEuODI1LDE3LjY3NSwwLDE5LjQ5OSwwLDIxLjc0OXY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NlYyMS43NDlDNjguMTIzLDE5LjQ5OSw2Ni4yOTksMTcuNjc1LDY0LjA0OCwxNy42NzV6IE0xOS4xMzgsNjYuNjYxVjM2LjgwOWgyOS44NDl2MjkuODUySDE5LjEzOHoKCQkiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTE2LjY3NUg0LjA3NmMtMi4yNTEsMC00LjA3NiwxLjgyNC00LjA3Niw0LjA3NHY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NnYtNTkuOTczQzY4LjEyMywxMTguNDk5LDY2LjI5OSwxMTYuNjc1LDY0LjA0OCwxMTYuNjc1eiBNMTkuMTM4LDE2NS42NjF2LTI5Ljg1MmgyOS44NDl2MjkuODUyCgkJSDE5LjEzOHoiLz4KCTxwYXRoIGQ9Ik0yOTcuMzk2LDIzMS4wMzZoLTE4Ni42N2MtMS42NTcsMC0zLDEuMzQyLTMsM3YzMS40YzAsMS42NTYsMS4zNDMsMywzLDNoMTg2LjY3YzEuNjU2LDAsMy0xLjM0NCwzLTN2LTMxLjQKCQlDMzAwLjM5NiwyMzIuMzc4LDI5OS4wNTMsMjMxLjAzNiwyOTcuMzk2LDIzMS4wMzZ6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSwxNjkuNDM4aDE4Ni42NjdjMS42NTYsMCwzLTEuMzQyLDMtM3YtMzEuNDA2YzAtMS42NTYtMS4zNDQtMy0zLTNIMTEwLjcyOWMtMS42NTcsMC0zLDEuMzQ0LTMsM3YzMS40MDYKCQlDMTA3LjcyOSwxNjguMDk3LDEwOS4wNzEsMTY5LjQzOCwxMTAuNzI5LDE2OS40Mzh6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSw3MC40MzhoMTg2LjY2N2MxLjY1NiwwLDMtMS4zNDIsMy0zVjM2LjAzMmMwLTEuNjU2LTEuMzQ0LTMtMy0zSDExMC43MjljLTEuNjU3LDAtMywxLjM0NC0zLDN2MzEuNDA2CgkJQzEwNy43MjksNjkuMDk3LDEwOS4wNzEsNzAuNDM4LDExMC43MjksNzAuNDM4eiIvPgo8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgClockField = function SvgClockField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 -8 72 72\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 0a28 28 0 1 0 28 28A28 28 0 0 0 36 0Zm0 50a22 22 0 1 1 22-22 22.07 22.07 0 0 1-22 22Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.59 27.14H38V12a2.31 2.31 0 1 0-4.61 0v17.44a2.31 2.31 0 0 0 2.3 2.31h14.9a2.31 2.31 0 1 0 0-4.61Z\"\n })));\n};\nexport { SvgClockField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAtOCA3MiA3MiIgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Y2xvY2stbzwvdGl0bGU+PHBhdGggZD0iTTM2LDBBMjgsMjgsMCwxLDAsNjQsMjgsMjgsMjgsMCwwLDAsMzYsMFptMCw1MEEyMiwyMiwwLDEsMSw1OCwyOCwyMi4wNywyMi4wNywwLDAsMSwzNiw1MFoiLz48cGF0aCBkPSJNNTAuNTksMjcuMTRIMzhWMTJhMi4zMSwyLjMxLDAsMSwwLTQuNjEsMFYyOS40NGEyLjMxLDIuMzEsMCwwLDAsMi4zLDIuMzFINTAuNTlhMi4zMSwyLjMxLDAsMSwwLDAtNC42MVoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgColorField = function SvgColorField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 36 36\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.23 14.89c-2.1-.56-4.93 1.8-6.34.3-1.71-1.82 2.27-5.53 1.86-8.92-.33-2.78-3.51-4.08-6.66-4.1A18.5 18.5 0 0 0 7.74 7.59c-6.64 6.59-8.07 16-1.37 22.48 6.21 6 16.61 4.23 22.67-1.4a17.73 17.73 0 0 0 4.22-6.54c1.08-2.9 1.18-6.64-1.03-7.24ZM9.4 10.57a2.23 2.23 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.81 2.53 2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53ZM5.07 20.82a2.22 2.22 0 0 1 1.82-2.53 2.22 2.22 0 0 1 2.86 1.21A2.23 2.23 0 0 1 7.94 22a2.24 2.24 0 0 1-2.87-1.18Zm7 8.33a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.8-2.53 2.23 2.23 0 0 1 2.87 1.21A2.22 2.22 0 0 1 12 29.15ZM15 8.26a2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.82 2.53A2.21 2.21 0 0 1 15 8.26Zm5.82 22.19a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.85 2.53Zm5-10.46a3.2 3.2 0 0 1-1.69 1.76 3.53 3.53 0 0 1-1.4.3 2.78 2.78 0 0 1-2.56-1.5 2.49 2.49 0 0 1-.07-2 3.2 3.2 0 0 1 1.69-1.76 3 3 0 0 1 4 1.2 2.54 2.54 0 0 1 0 2.01Z\",\n \"data-name\": \"Layer 3\"\n })));\n};\nexport { SvgColorField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDM2IDM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoNPHRpdGxlPmNvbG9yX3BhbGV0dGVfc29saWQ8L3RpdGxlPgoNPGcgaWQ9ImI4OTRlMzJiLTA0MzctNDVhYi1iOGJmLTlmMGM0ZThmNTdjZCIgZGF0YS1uYW1lPSJMYXllciAzIj4KDTxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTguNSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMywwLDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywyLjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEsMS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDateField = function SvgDateField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38 4V0h-4v4H14V0h-4v4H0v44h48V4H38zm6 40H4V19.9h40V44zM4 15.9V8h6v4h4V8h20v4h4V8h6v7.9H4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 24h6v6h-6zM16.667 24h6v6h-6zM25.583 24h6v6h-6zM34.5 24h6v6h-6zM7.5 33h6v6h-6zM16.667 33h6v6h-6zM25.583 33h6v6h-6zM34.5 33h6v6h-6z\"\n })));\n};\nexport { SvgDateField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCFET0NUWVBFIHN2ZyAgUFVCTElDICctLy9XM0MvL0RURCBTVkcgMS4xLy9FTicgICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQnPgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0OCA0OCIgaWQ9IkxheWVyXzMiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08Zz4KDTxwYXRoIGQ9Ik0zOCw0VjBoLTR2NEgxNFYwaC00djRIMHYxMS45djRWNDhoNDhWMTkuOXYtNFY0SDM4eiBNNDQsNDRINFYxOS45aDQwVjQ0eiBNNCwxNS45VjhoNnY0aDRWOGgyMHY0aDRWOGg2djcuOUg0eiIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iNy41IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMTYuNjY3IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMjUuNTgzIiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMzQuNSIgeT0iMjQiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjcuNSIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjE2LjY2NyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjI1LjU4MyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjM0LjUiIHk9IjMzIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmailField = function SvgEmailField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2c5.43 0 9.848 4.327 9.996 9.72L22 12v1c0 2.173-1.523 4-3.5 4-1.173 0-2.186-.643-2.816-1.62a5 5 0 1 1 1.311-3.597L17 12v1c0 1.14.716 2 1.5 2 .745 0 1.428-.775 1.495-1.831L20 13v-1a8 8 0 1 0-4.677 7.28 1 1 0 1 1 .831 1.819A9.966 9.966 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2Zm0 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z\"\n })));\n};\nexport { SvgEmailField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik0xMiwyIEMxNy40MjkyMzk5LDIgMjEuODQ3OTMxNyw2LjMyNjY3MDc5IDIxLjk5NjE1ODIsMTEuNzIwMDk1MiBMMjIsMTIgTDIyLDEzIEMyMiwxNS4xNzI5MjA4IDIwLjQ3NzQzNCwxNyAxOC41LDE3IEMxNy4zMjY5MzkxLDE3IDE2LjMxMzk1MjksMTYuMzU3MDI0NCAxNS42ODM5MzgyLDE1LjM4MDMwMjQgQzE0Ljc3MDU5MywxNi4zNzU3ODIzIDEzLjQ1ODE5MzQsMTcgMTIsMTcgQzkuMjM4NTc2MjUsMTcgNywxNC43NjE0MjM3IDcsMTIgQzcsOS4yMzg1NzYyNSA5LjIzODU3NjI1LDcgMTIsNyBDMTQuNjg4NzU0Nyw3IDE2Ljg4MTgxODEsOS4xMjIzMDY3MSAxNi45OTUzODA1LDExLjc4MzExMDQgTDE3LDEyIEwxNywxMyBDMTcsMTQuMTQwNzg3NyAxNy43MTYwMTAzLDE1IDE4LjUsMTUgQzE5LjI0NDc5MDIsMTUgMTkuOTI4MjI5LDE0LjIyNDU2MDkgMTkuOTk0NzEwOSwxMy4xNjg5MzQxIEwyMCwxMyBMMjAsMTIgQzIwLDcuNTgxNzIyIDE2LjQxODI3OCw0IDEyLDQgQzcuNTgxNzIyLDQgNCw3LjU4MTcyMiA0LDEyIEM0LDE2LjQxODI3OCA3LjU4MTcyMiwyMCAxMiwyMCBDMTMuMTYzMDk0OCwyMCAxNC4yODkyODIyLDE5Ljc1MjI2MTggMTUuMzIyNTE1OSwxOS4yNzk4MzMxIEMxNS44MjQ3ODc2LDE5LjA1MDE3NzcgMTYuNDE4MTMxNywxOS4yNzExNzcgMTYuNjQ3Nzg3LDE5Ljc3MzQ0ODcgQzE2Ljg3NzQ0MjMsMjAuMjc1NzIwNSAxNi42NTY0NDMsMjAuODY5MDY0NiAxNi4xNTQxNzEzLDIxLjA5ODcxOTkgQzE0Ljg2MTIxOCwyMS42ODk5MDEgMTMuNDUxNTQ2MywyMiAxMiwyMiBDNi40NzcxNTI1LDIyIDIsMTcuNTIyODQ3NSAyLDEyIEMyLDYuNDc3MTUyNSA2LjQ3NzE1MjUsMiAxMiwyIFogTTEyLDkgQzEwLjM0MzE0NTgsOSA5LDEwLjM0MzE0NTggOSwxMiBDOSwxMy42NTY4NTQyIDEwLjM0MzE0NTgsMTUgMTIsMTUgQzEzLjY1Njg1NDIsMTUgMTUsMTMuNjU2ODU0MiAxNSwxMiBDMTUsMTAuMzQzMTQ1OCAxMy42NTY4NTQyLDkgMTIsOSBaIi8+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFieldset = function SvgFieldset(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 80,\n height: 80,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 20h1v1H1v-2h1zm20 0h-1v1h2v-2h-1zM1 5h1V4h1V3H1zm1 2H1v2h1zm0 4H1v2h1zm20-2h1V7h-1zm0 4h1v-2h-1zM2 15H1v2h1zm20 2h1v-2h-1zM5 4h2V3H5zm6 0V3H9v1zm2 0h2V3h-2zm6-1h-2v1h2zM5 21h2v-1H5zm4 0h2v-1H9zm4 0h2v-1h-2zm4 0h2v-1h-2zm4-17h1v1h1V3h-2zm-1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1V8a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19V8H5v2h14m1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1v-2a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19v-2H5v2h14\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgFieldset as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MHB4IiBoZWlnaHQ9IjgwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAyMGgxdjFIMXYtMmgxem0yMCAwaC0xdjFoMnYtMmgtMXpNMSA1aDFWNGgxVjNIMXptMSAySDF2Mmgxem0wIDRIMXYyaDF6bTIwLTJoMVY3aC0xem0wIDRoMXYtMmgtMXpNMiAxNUgxdjJoMXptMjAgMmgxdi0yaC0xek01IDRoMlYzSDV6bTYgMFYzSDl2MXptMiAwaDJWM2gtMnptNi0xaC0ydjFoMnpNNSAyMWgydi0xSDV6bTQgMGgydi0xSDl6bTQgMGgydi0xaC0yem00IDBoMnYtMWgtMnptNC0xN2gxdjFoMVYzaC0yem0tMSA0djJhMS4wMDEgMS4wMDEgMCAwIDEtMSAxSDVhMS4wMDEgMS4wMDEgMCAwIDEtMS0xVjhhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOVY4SDV2MmgxNG0xIDR2MmExLjAwMSAxLjAwMSAwIDAgMS0xIDFINWExLjAwMSAxLjAwMSAwIDAgMS0xLTF2LTJhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOXYtMkg1djJoMTQiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgForm = function SvgForm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.2 12.994a.312.312 0 0 1-.188-.191C1 12.76.999 12.113 1 6.982V1.208l.022-.045a.328.328 0 0 1 .14-.14L1.208 1h11.585l.05.025a.31.31 0 0 1 .136.135l.021.039v5.783c0 5.377 0 5.787-.013 5.831a.314.314 0 0 1-.142.162L12.8 13H7.012c-3.457.001-5.8 0-5.817-.01zm11.236-5.992V1.568H1.573v10.857c0 .01 1.099.01 5.436.01h5.432V7.003zM5.574 10.72v-.86h1.712v1.72H5.574v-.86zm1.144 0v-.284h-.576v.568h.576v-.284zm1.145 0v-.284h3.432v.568H7.863v-.284zM5.574 7.572V6.428h5.72v2.288h-5.72V7.572zm5.144 0V7H6.142v.566c0 .311 0 .569.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.289h2.28v.577h-2.28v-.288zM5.575 4.14V2.996h5.72v2.288h-5.72V4.14zm5.144 0v-.572H6.142v.566c0 .31 0 .568.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.284h2.28v.567h-2.28V4.14z\"\n })));\n};\nexport { SvgForm as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAxNCAxNCIgcm9sZT0iaW1nIiBmb2N1c2FibGU9ImZhbHNlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtIDEuMTk5Nzk5NSwxMi45OTM5MTYgYyAtMC4wNzkwMzQsLTAuMDIzIC0wLjE2NDA3MSwtMC4xMDkzIC0wLjE4Nzk4MTMsLTAuMTkxNCAtMC4wMTIwMDUsLTAuMDQyIC0wLjAxMzAwNiwtMC42ODk1IC0wLjAxMTAwNSwtNS44MjEwMDAzIGwgMCwtNS43NzQgMC4wMjIwMSwtMC4wNDUgYyAwLjAyODAxMiwtMC4wNTcgMC4wODMwMzYsLTAuMTExNyAwLjE0MDE2MDYsLTAuMTQwMSBsIDAuMDQ1MDE5LC0wLjAyMiA1Ljc5MjIwNDEsMCA1Ljc5MjMwNDEsMCAwLjA1MTAyLDAuMDI1IGMgMC4wNTYwMiwwLjAyNyAwLjEwMzY0NSwwLjA3NSAwLjEzNTQ1OSwwLjEzNDUgbCAwLjAyMTAxLDAuMDM5IDAsNS43ODMyIGMgMCw1LjM3NjUwMDMgMCw1Ljc4NjYwMDMgLTAuMDEzMDEsNS44MzExMDAzIC0wLjAxOTAxLDAuMDYgLTAuMDc5MDMsMC4xMjkxIC0wLjE0MTc2MSwwLjE2MjEgbCAtMC4wNDYwMiwwLjAyNCAtNS43ODc3MDIzLDAgYyAtMy40NTYyOTQyLDllLTQgLTUuNzk5MjA3LDAgLTUuODE2MDE0MywtMC4wMSB6IG0gMTEuMjM2NjU3NSwtNS45OTE5MDAzIDAsLTUuNDM0MiAtNS40MzE5NDgxLDAgLTUuNDMxODQ4MiwwIDAsNS40MjI5IGMgMCwyLjk4MjYgLTQuMDAyZS00LDUuNDI4MDAwMyAwLDUuNDM0MjAwMyAwLDAuMDEgMS4wOTkwNzUxLDAuMDExIDUuNDM2NTUwMiwwLjAxMSBsIDUuNDMyMTQ4MSwwIDAsLTUuNDM0MjAwMyB6IG0gLTYuODYxOTY2MywzLjcxODEwMDMgMCwtMC44NjAzMDAzIDAuODU1NzY5OSwwIDAuODU1NzcsMCAwLDAuODYwMzAwMyAwLDAuODYwMyAtMC44NTU3NywwIC0wLjg1NTc2OTksMCAwLC0wLjg2MDMgeiBtIDEuMTQzOTk0NSwwIDAsLTAuMjgzOCAtMC4yODgyMjQ2LDAgLTAuMjg4MzI0NiwwIDAsMC4yODM4IDAsMC4yODM3IDAuMjg4MzI0NiwwIDAuMjg4MjI0NiwwIDAsLTAuMjgzNyB6IG0gMS4xNDQwOTQ3LDAgMCwtMC4yODM4IDEuNzE2MDQxOCwwIDEuNzE2MDQxMywwIDAsMC4yODM4IDAsMC4yODM3IC0xLjcxNjA0MTMsMCAtMS43MTYwNDE4LDAgMCwtMC4yODM3IHogbSAtMi4yODgwODkyLC0zLjE0ODMwMDMgMCwtMS4xNDQxIDIuODYwMDM2NCwwIDIuODYwMTM1OSwwIDAsMS4xNDQxIDAsMS4xNDM5IC0yLjg2MDEzNTksMCAtMi44NjAwMzY0LDAgMCwtMS4xNDM5IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEzIDAsMC41Njg3IDAuMDEwMDA0LDAuNTcyIDAsMCAxLjAzMjk0NjYsMC4wMSAyLjI4ODA4OTIsMC4wMSBsIDIuMjgyMDg2OCwwIDAsLTAuNTcyIHogbSAtNy45OTkyNTc4LDAgMCwtMC4yODg0IDEuMTM5NTkyNywwIDEuMTM5NDkyNSwwIDAsMC4yODg0IDAsMC4yODgyIC0xLjEzOTQ5MjUsMCAtMS4xMzk1OTI3LDAgMCwtMC4yODgyIHogbSAyLjg1NTYzNDUsLTMuNDMyMSAwLC0xLjE0NDEgMi44NjAwMzY0LDAgMi44NjAxMzU5LDAgMCwxLjE0NDEgMCwxLjE0NCAtMi44NjAxMzU5LDAgLTIuODYwMDM2NCwwIDAsLTEuMTQ0IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEyIDAsMC41Njg2IDAuMDEwMDA0LDAuNTcxOSAwLDAgMS4wMzI5NDY2LDAuMDEgMi4yODgwODkyLDAuMDEgbCAyLjI4MjA4NjgsMCAwLC0wLjU3MTkgeiBtIC03Ljk5OTI1NzgsMCAwLC0wLjI4MzkgMS4xMzk1OTI3LDAgMS4xMzk0OTI1LDAgMCwwLjI4MzkgMCwwLjI4MzcgLTEuMTM5NDkyNSwwIC0xLjEzOTU5MjcsMCAwLC0wLjI4MzcgeiIvPjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGdprField = function SvgGdprField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2zm0 8h5s1-1 1-5c0 0-5-1-6-2v7H5c1 4 5 7 5 7v-7z\"\n })));\n};\nexport { SvgGdprField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+Cgk8cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KCTxnPgoJCTxwYXRoIGQ9Ik0xMCAyczMgMiA3IDJjMCAxMS03IDE0LTcgMTRTMyAxNSAzIDRjNCAwIDctMiA3LTJ6bTAgOGg1czEtMSAxLTVjMCAwLTUtMS02LTJ2N0g1YzEgNCA1IDcgNSA3di03eiIvPgoJPC9nPgo8L3N2Zz4K\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgHiddenField = function SvgHiddenField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 1000 1000\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M499 270q57 0 104.5 28t75.5 76 28 104q0 39-15 76l122 122q97-81 142-198-36-91-104-162T694 206q-93-40-195-40-86 0-166 29l90 90q38-15 76-15zM83 157l95 94 19 20q-52 40-91.5 93T42 478q36 91 104.5 162T304 750q93 40 195 40 95 0 183-35l139 139 53-53-738-737zm230 230 65 64q-4 15-4 27 0 34 17 62.5t45.5 45.5 62.5 17q14 0 27-3l65 64q-45 22-92 22-56 0-104-28t-76-76-28-104q0-47 22-91zm180-33 131 131v-6q0-34-16.5-63t-45-45.5T500 354h-7z\"\n })));\n};\nexport { SvgHiddenField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00OTkgMjcwcTU3IDAgMTA0LjUgMjh0NzUuNSA3NiAyOCAxMDRxMCAzOS0xNSA3NmwxMjIgMTIycTk3LTgxIDE0Mi0xOTgtMzYtOTEtMTA0LTE2MlQ2OTQgMjA2cS05My00MC0xOTUtNDAtODYgMC0xNjYgMjlsOTAgOTBxMzgtMTUgNzYtMTV6TTgzIDE1N2w5NSA5NCAxOSAyMHEtNTIgNDAtOTEuNSA5M1Q0MiA0NzhxMzYgOTEgMTA0LjUgMTYyVDMwNCA3NTBxOTMgNDAgMTk1IDQwIDk1IDAgMTgzLTM1bDEzOSAxMzkgNTMtNTMtNzM4LTczN3ptMjMwIDIzMGw2NSA2NHEtNCAxNS00IDI3IDAgMzQgMTcgNjIuNXQ0NS41IDQ1LjUgNjIuNSAxN3ExNCAwIDI3LTNsNjUgNjRxLTQ1IDIyLTkyIDIyLTU2IDAtMTA0LTI4dC03Ni03Ni0yOC0xMDRxMC00NyAyMi05MXptMTgwLTMzbDEzMSAxMzF2LTZxMC0zNC0xNi41LTYzdC00NS00NS41VDUwMCAzNTRoLTd6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 341.333,\n height: 341.333,\n viewBox: \"0 0 256 256\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#9b51e0\",\n d: \"M0 128v128h256V0H0v128zm145.6-66.6c2.9.7 7.8 2.8 11.1 4.5 6.7 3.6 18.3 14.6 16.8 16-2.6 2.3-31.9 23.1-32.6 23.1-.5 0-.9-.5-.9-1 0-.6-1.1-2.2-2.5-3.5-3-3.1-8.3-3.3-11.6-.6-2.2 1.8-2.4 2.7-2.7 14l-.4 12.1H136v37h-13v34H82v-44.8c0-35.5.3-46.1 1.5-51.7 3.9-18.6 18.2-34.2 35.6-38.9 6.9-1.9 19.9-2 26.5-.2z\"\n })));\n};\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwoJdmVyc2lvbj0iMS4wIgoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJd2lkdGg9IjI1Ni4wMDAwMDBwdCIKCWhlaWdodD0iMjU2LjAwMDAwMHB0IgoJdmlld0JveD0iMCAwIDI1Ni4wMDAwMDAgMjU2LjAwMDAwMCIKCXByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiCj4KCTxnCgkJdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjU2LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKCQlmaWxsPSIjOWI1MWUwIgoJCXN0cm9rZT0ibm9uZSIKCT4KCQk8cGF0aAoJCQlkPSJNMCAxMjgwIGwwIC0xMjgwIDEyODAgMCAxMjgwIDAgMCAxMjgwIDAgMTI4MCAtMTI4MCAwIC0xMjgwIDAgMAoJCQktMTI4MHogbTE0NTYgNjY2IGMyOSAtNyA3OCAtMjggMTExIC00NSA2NyAtMzYgMTgzIC0xNDYgMTY4IC0xNjAgLTI2IC0yMwoJCQktMzE5IC0yMzEgLTMyNiAtMjMxIC01IDAgLTkgNSAtOSAxMCAwIDYgLTExIDIyIC0yNSAzNSAtMzAgMzEgLTgzIDMzIC0xMTYgNgoJCQktMjIgLTE4IC0yNCAtMjcgLTI3IC0xNDAgbC00IC0xMjEgNjYgMCA2NiAwIDAgLTE4NSAwIC0xODUgLTY1IDAgLTY1IDAgMAoJCQktMTcwIDAgLTE3MCAtMjA1IDAgLTIwNSAwIDAgNDQ4IGMwIDM1NSAzIDQ2MSAxNSA1MTcgMzkgMTg2IDE4MiAzNDIgMzU2IDM4OQoJCQk2OSAxOSAxOTkgMjAgMjY1IDJ6IgoJCS8+Cgk8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgNumberField = function SvgNumberField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 52 52\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.8 49.5H7.2c-2.6 0-4.7-2.1-4.7-4.7V7.2c0-2.6 2.1-4.7 4.7-4.7h37.6c2.6 0 4.7 2.1 4.7 4.7v37.6c0 2.6-2.1 4.7-4.7 4.7zm-36-39.2v31.3c0 .9.7 1.6 1.6 1.6h31.3c.9 0 1.6-.7 1.6-1.6V10.3c0-.9-.7-1.6-1.6-1.6H10.4c-.9.1-1.6.8-1.6 1.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.2 20.3h-2.9l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.2 4.9h-5.8l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.3 4.9H18c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h3L19 28.7h-3.1c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h2.9L17 36.5v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h5.7L26 36.4v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h3.2c.2 0 .3-.1.4-.3l.6-2.2V29c0-.2-.1-.4-.4-.4h-3l1.4-5.6h3.1c.2 0 .3-.1.4-.3l.6-2.2v-.1c-.1.1-.3-.1-.5-.1zm-8.1 8.5h-5.8l1.4-5.6h5.7l-1.3 5.6z\"\n })));\n};\nexport { SvgNumberField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCgkgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNTIgNTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUyIDUyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZD0iTTQ0LjgsNDkuNUg3LjJjLTIuNiwwLTQuNy0yLjEtNC43LTQuN1Y3LjJjMC0yLjYsMi4xLTQuNyw0LjctNC43aDM3LjZjMi42LDAsNC43LDIuMSw0LjcsNC43djM3LjYKCUM0OS41LDQ3LjQsNDcuNCw0OS41LDQ0LjgsNDkuNXogTTguOCwxMC4zdjMxLjNjMCwwLjksMC43LDEuNiwxLjYsMS42aDMxLjNjMC45LDAsMS42LTAuNywxLjYtMS42VjEwLjNjMC0wLjktMC43LTEuNi0xLjYtMS42SDEwLjQKCUM5LjUsOC44LDguOCw5LjUsOC44LDEwLjN6Ii8+CjxwYXRoIGQ9Ik0zNi4yLDIwLjNoLTIuOWwxLjItNC44di0wLjFjMC0wLjItMC4xLTAuNC0wLjQtMC40aC0yLjNjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMS4yLDQuOWgtNS44bDEuMi00LjgKCXYtMC4xYzAtMC4yLTAuMS0wLjQtMC40LTAuNGgtMi4zYy0wLjIsMC0wLjMsMC4xLTAuNCwwLjNsLTEuMyw0LjloLTMuMmMtMC4yLDAtMC4zLDAuMS0wLjQsMC4zbC0wLjYsMi4ydjAuMWMwLDAuMiwwLjEsMC40LDAuNCwwLjQKCWgzbC0xLjQsNS42aC0zLjFjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMC42LDIuMnYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuOWwtMS4yLDQuOHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuMwoJYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wxLjMtNWg1LjdMMjYsMzYuNHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuM2MwLjIsMCwwLjMtMC4xLDAuNC0wLjNsMS4zLTVoMy4yYzAuMiwwLDAuMy0wLjEsMC40LTAuMwoJbDAuNi0yLjJWMjljMC0wLjItMC4xLTAuNC0wLjQtMC40aC0zbDEuNC01LjZoMy4xYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wwLjYtMi4ydi0wLjFDMzYuNiwyMC41LDM2LjQsMjAuMywzNi4yLDIwLjNMMzYuMiwyMC4zegoJIE0yOC4xLDI4LjhoLTUuOGwxLjQtNS42aDUuN0wyOC4xLDI4Ljh6Ii8+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPasswordField = function SvgPasswordField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.988 51.297c.375 0 .961-.14 1.57-.445C42.66 43.469 47.185 40.375 47.185 31.96V14.289c0-2.414-1.055-3.187-3-4.008-2.743-1.125-11.532-4.289-14.25-5.25-.633-.187-1.266-.328-1.946-.328-.656 0-1.289.14-1.922.328-2.718.985-11.507 4.149-14.25 5.25-1.945.797-3 1.594-3 4.008v17.672c0 8.414 4.547 11.484 17.625 18.89.61.305 1.172.446 1.547.446Zm-8.226-15.563v-9.093c0-1.524.586-2.32 1.828-2.508V21.32c0-4.312 2.601-7.218 6.398-7.218 3.82 0 6.399 2.906 6.399 7.218v2.79c1.265.187 1.851.984 1.851 2.53v9.094c0 1.758-.773 2.578-2.414 2.578H22.152c-1.617 0-2.39-.82-2.39-2.578Zm4.289-11.648 7.898-.023v-3c0-2.766-1.57-4.594-3.96-4.594-2.368 0-3.938 1.828-3.938 4.593Z\"\n })));\n};\nexport { SvgPasswordField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMjcuOTg4MyA1MS4yOTY5IEMgMjguMzYzMyA1MS4yOTY5IDI4Ljk0OTIgNTEuMTU2MiAyOS41NTg2IDUwLjg1MTYgQyA0Mi42NjAyIDQzLjQ2ODggNDcuMTgzNiA0MC4zNzUwIDQ3LjE4MzYgMzEuOTYwOSBMIDQ3LjE4MzYgMTQuMjg5MSBDIDQ3LjE4MzYgMTEuODc1MCA0Ni4xMjg5IDExLjEwMTYgNDQuMTgzNiAxMC4yODEzIEMgNDEuNDQxNCA5LjE1NjIgMzIuNjUyNCA1Ljk5MjIgMjkuOTMzNiA1LjAzMTMgQyAyOS4zMDA4IDQuODQzOCAyOC42NjgwIDQuNzAzMSAyNy45ODgzIDQuNzAzMSBDIDI3LjMzMjAgNC43MDMxIDI2LjY5OTIgNC44NDM4IDI2LjA2NjQgNS4wMzEzIEMgMjMuMzQ3NiA2LjAxNTYgMTQuNTU4NiA5LjE3OTcgMTEuODE2NCAxMC4yODEzIEMgOS44NzExIDExLjA3ODEgOC44MTY0IDExLjg3NTAgOC44MTY0IDE0LjI4OTEgTCA4LjgxNjQgMzEuOTYwOSBDIDguODE2NCA0MC4zNzUwIDEzLjM2MzMgNDMuNDQ1MyAyNi40NDE0IDUwLjg1MTYgQyAyNy4wNTA4IDUxLjE1NjIgMjcuNjEzMyA1MS4yOTY5IDI3Ljk4ODMgNTEuMjk2OSBaIE0gMTkuNzYxNyAzNS43MzQ0IEwgMTkuNzYxNyAyNi42NDA2IEMgMTkuNzYxNyAyNS4xMTcyIDIwLjM0NzYgMjQuMzIwMyAyMS41ODk4IDI0LjEzMjggTCAyMS41ODk4IDIxLjMyMDMgQyAyMS41ODk4IDE3LjAwNzggMjQuMTkxNCAxNC4xMDE2IDI3Ljk4ODMgMTQuMTAxNiBDIDMxLjgwODYgMTQuMTAxNiAzNC4zODY3IDE3LjAwNzggMzQuMzg2NyAyMS4zMjAzIEwgMzQuMzg2NyAyNC4xMDk0IEMgMzUuNjUyNCAyNC4yOTY5IDM2LjIzODMgMjUuMDkzOCAzNi4yMzgzIDI2LjY0MDYgTCAzNi4yMzgzIDM1LjczNDQgQyAzNi4yMzgzIDM3LjQ5MjIgMzUuNDY0OSAzOC4zMTI1IDMzLjgyNDIgMzguMzEyNSBMIDIyLjE1MjQgMzguMzEyNSBDIDIwLjUzNTEgMzguMzEyNSAxOS43NjE3IDM3LjQ5MjIgMTkuNzYxNyAzNS43MzQ0IFogTSAyNC4wNTA4IDI0LjA4NjAgTCAzMS45NDkyIDI0LjA2MjUgTCAzMS45NDkyIDIxLjA2MjUgQyAzMS45NDkyIDE4LjI5NjkgMzAuMzc4OSAxNi40Njg3IDI3Ljk4ODMgMTYuNDY4NyBDIDI1LjYyMTEgMTYuNDY4NyAyNC4wNTA4IDE4LjI5NjkgMjQuMDUwOCAyMS4wNjI1IFoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPhoneField = function SvgPhoneField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.156 37.762c6.774 6.773 15.024 12 21.75 12 3.024 0 5.672-1.055 7.805-3.399 1.242-1.383 2.016-3 2.016-4.593 0-1.172-.446-2.297-1.57-3.094l-7.173-5.11c-1.101-.75-2.015-1.125-2.859-1.125-1.078 0-2.016.61-3.094 1.664l-1.664 1.641a1.263 1.263 0 0 1-.89.375c-.375 0-.704-.14-.961-.258-1.43-.773-3.914-2.906-6.235-5.203-2.297-2.297-4.43-4.781-5.18-6.234a1.991 1.991 0 0 1-.257-.938c0-.304.093-.61.351-.867l1.64-1.71c1.056-1.079 1.665-2.017 1.665-3.095 0-.843-.375-1.757-1.148-2.859l-5.04-7.102c-.82-1.125-1.968-1.617-3.234-1.617-1.547 0-3.164.703-4.523 2.04-2.274 2.18-3.282 4.874-3.282 7.85 0 6.727 5.133 14.884 11.883 21.634Z\"\n })));\n};\nexport { SvgPhoneField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMTguMTU2MiAzNy43NjE3IEMgMjQuOTI5NyA0NC41MzUyIDMzLjE3OTcgNDkuNzYxNyAzOS45MDYyIDQ5Ljc2MTcgQyA0Mi45Mjk3IDQ5Ljc2MTcgNDUuNTc4MSA0OC43MDcwIDQ3LjcxMDkgNDYuMzYzMyBDIDQ4Ljk1MjggNDQuOTgwNSA0OS43MjY2IDQzLjM2MzMgNDkuNzI2NiA0MS43Njk1IEMgNDkuNzI2NiA0MC41OTc3IDQ5LjI4MTIgMzkuNDcyNyA0OC4xNTYyIDM4LjY3NTggTCA0MC45ODQzIDMzLjU2NjQgQyAzOS44ODI4IDMyLjgxNjQgMzguOTY4NyAzMi40NDE0IDM4LjEyNTAgMzIuNDQxNCBDIDM3LjA0NjggMzIuNDQxNCAzNi4xMDkzIDMzLjA1MDggMzUuMDMxMiAzNC4xMDU1IEwgMzMuMzY3MSAzNS43NDYxIEMgMzMuMTA5MyAzNi4wMDM5IDMyLjc4MTIgMzYuMTIxMSAzMi40NzY1IDM2LjEyMTEgQyAzMi4xMDE1IDM2LjEyMTEgMzEuNzczNCAzNS45ODA1IDMxLjUxNTYgMzUuODYzMyBDIDMwLjA4NTkgMzUuMDg5OCAyNy42MDE1IDMyLjk1NzEgMjUuMjgxMiAzMC42NjAyIEMgMjIuOTg0MyAyOC4zNjMzIDIwLjg1MTUgMjUuODc4OSAyMC4xMDE1IDI0LjQyNTggQyAxOS45NjA5IDI0LjE2ODAgMTkuODQzNyAyMy44Mzk4IDE5Ljg0MzcgMjMuNDg4MyBDIDE5Ljg0MzcgMjMuMTgzNiAxOS45Mzc1IDIyLjg3ODkgMjAuMTk1MyAyMi42MjExIEwgMjEuODM1OSAyMC45MTAyIEMgMjIuODkwNiAxOS44MzIwIDIzLjQ5OTkgMTguODk0NSAyMy40OTk5IDE3LjgxNjQgQyAyMy40OTk5IDE2Ljk3MjcgMjMuMTI1MCAxNi4wNTg2IDIyLjM1MTUgMTQuOTU3MSBMIDE3LjMxMjQgNy44NTU1IEMgMTYuNDkyMSA2LjczMDUgMTUuMzQzNyA2LjIzODMgMTQuMDc4MSA2LjIzODMgQyAxMi41MzEyIDYuMjM4MyAxMC45MTQwIDYuOTQxNCA5LjU1NDYgOC4yNzc0IEMgNy4yODEyIDEwLjQ1NzEgNi4yNzM0IDEzLjE1MjQgNi4yNzM0IDE2LjEyODkgQyA2LjI3MzQgMjIuODU1NSAxMS40MDYyIDMxLjAxMTcgMTguMTU2MiAzNy43NjE3IFoiLz48L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioButtons = function SvgRadioButtons(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 4h13v1H9zm0 17h13v-1H9zm0-8h13v-1H9zM7 4a3 3 0 1 1-3-3 3 3 0 0 1 3 3zM6 4a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2 2 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm-2-9a1 1 0 1 0 1 1 1 1 0 0 0-1-1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgRadioButtons as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05IDRoMTN2MUg5em0wIDE3aDEzdi0xSDl6bTAtOGgxM3YtMUg5ek03IDRhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzek02IDRhMiAyIDAgMSAwLTIgMiAyLjAwMyAyLjAwMyAwIDAgMCAyLTJ6bTEgOGEzIDMgMCAxIDEtMy0zIDMgMyAwIDAgMSAzIDN6bS0xIDBhMiAyIDAgMSAwLTIgMiAyIDIgMCAwIDAgMi0yem0xIDhhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzem0tMSAwYTIgMiAwIDEgMC0yIDIgMi4wMDMgMi4wMDMgMCAwIDAgMi0yem0tMi05YTEgMSAwIDEgMCAxIDEgMSAxIDAgMCAwLTEtMXoiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioField = function SvgRadioField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 4C5.32 4 4 5.32 4 7s1.32 3 3 3 3-1.32 3-3-1.32-3-3-3Zm0-3C3.7 1 1 3.7 1 7s2.7 6 6 6 6-2.7 6-6-2.7-6-6-6Zm0 10.8c-2.64 0-4.8-2.16-4.8-4.8 0-2.64 2.16-4.8 4.8-4.8 2.64 0 4.8 2.16 4.8 4.8 0 2.64-2.16 4.8-4.8 4.8z\"\n })));\n};\nexport { SvgRadioField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE0IDE0IiByb2xlPSJpbWciIGZvY3VzYWJsZT0iZmFsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gNyw0IEMgNS4zMiw0IDQsNS4zMiA0LDcgNCw4LjY4IDUuMzIsMTAgNywxMCA4LjY4LDEwIDEwLDguNjggMTAsNyAxMCw1LjMyIDguNjgsNCA3LDQgWiBNIDcsMSBDIDMuNywxIDEsMy43IDEsNyBjIDAsMy4zIDIuNyw2IDYsNiAzLjMsMCA2LC0yLjcgNiwtNiBDIDEzLDMuNyAxMC4zLDEgNywxIFogTSA3LDExLjggQyA0LjM2LDExLjggMi4yLDkuNjQgMi4yLDcgMi4yLDQuMzYgNC4zNiwyLjIgNywyLjIgYyAyLjY0LDAgNC44LDIuMTYgNC44LDQuOCAwLDIuNjQgLTIuMTYsNC44IC00LjgsNC44IHoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRangeField = function SvgRangeField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 11h-3.184a2.982 2.982 0 0 0-5.632 0H3a1 1 0 0 0 0 2h9.184a2.982 2.982 0 0 0 5.632 0H21a1 1 0 0 0 0-2Zm-6 2a1 1 0 1 1 1-1 1.001 1.001 0 0 1-1 1Z\"\n })));\n};\nexport { SvgRangeField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggZD0iTTIxLDExSDE3LjgxNTczYTIuOTgyMDgsMi45ODIwOCwwLDAsMC01LjYzMTQ2LDBIM2ExLDEsMCwwLDAsMCwyaDkuMTg0MzNhMi45ODIsMi45ODIsMCwwLDAsNS42MzE0LDBIMjFhMSwxLDAsMCwwLDAtMlptLTYsMmExLDEsMCwxLDEsMS0xQTEuMDAxMywxLjAwMTMsMCwwLDEsMTUsMTNaIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSelect = function SvgSelect(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 4H1c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1zm-5 7H1V5h9v6zm3-2.6L11 7h4l-2 1.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1e72bd\",\n d: \"M2 6h1v4H2V6z\"\n })));\n};\nexport { SvgSelect as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8cGF0aCBkPSJNMTUgNGgtMTRjLTAuNiAwLTEgMC40LTEgMXY2YzAgMC42IDAuNCAxIDEgMWgxNGMwLjYgMCAxLTAuNCAxLTF2LTZjMC0wLjYtMC40LTEtMS0xek0xMCAxMWgtOXYtNmg5djZ6TTEzIDguNGwtMi0xLjRoNGwtMiAxLjR6Ij48L3BhdGg+CjxwYXRoIGZpbGw9IiMxZTcyYmQiIGQ9Ik0yIDZoMXY0aC0xdi00eiI+PC9wYXRoPgo8L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextField = function SvgTextField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 9h2v30H8v3h8v-3h-2V9h2V6H8zM4 16h3.021v-4H0v24h7.042v-4H4zM16.979 12v4H44v16H16.958v4H48V12z\"\n })));\n};\nexport { SvgTextField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjgsOSAxMCw5IDEwLDEyIDEwLDE2IDEwLDM5IDgsMzkgOCw0MiAxNiw0MiAxNiwzOSAxNCwzOSAxNCwxNiAxNCwxMiAxNCw5IDE2LDkgMTYsNiA4LDYgICIvPgoNPHBvbHlnb24gcG9pbnRzPSI0LDE2IDcuMDIxLDE2IDcuMDIxLDEyIDAsMTIgMCwzNiA3LjA0MiwzNiA3LjA0MiwzMiA0LDMyICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTYuOTc5LDEyIDE2Ljk3OSwxNiA0NCwxNiA0NCwzMiAxNi45NTgsMzIgMTYuOTU4LDM2IDQ4LDM2IDQ4LDEyICAiLz4KDTwvZz4KDTwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextareaField = function SvgTextareaField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 33h-2V3h2V0H8v3h2v30H8v3h8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.031 6v4H44v34H4V10h2.938V6H0v42h48V6z\"\n })));\n};\nexport { SvgTextareaField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjE2LDMzIDE0LDMzIDE0LDEwIDE0LDYgMTQsMyAxNiwzIDE2LDAgOCwwIDgsMyAxMCwzIDEwLDYgMTAsMTAgMTAsMzMgOCwzMyA4LDM2IDE2LDM2ICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTcuMDMxLDYgMTcuMDMxLDEwIDQ0LDEwIDQ0LDQ0IDQsNDQgNCwxMCA2LjkzOCwxMCA2LjkzOCw2IDAsNiAwLDQ4IDQ4LDQ4IDQ4LDYgICIvPgoNPC9nPgoNPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgUrlField = function SvgUrlField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.794 12.794c-.478.475-1.113.737-1.794.737s-1.316-.262-1.794-.738a2.54 2.54 0 0 1 0-3.584L5.5 6.916 4.084 5.5 1.791 7.794a4.54 4.54 0 0 0 .003 6.413c.853.855 1.99 1.324 3.206 1.324s2.353-.469 3.206-1.325l2.294-2.294L9.084 10.5l-2.29 2.294zm7.412-11C13.353.938 12.216.469 11 .469S8.647.938 7.794 1.794L5.5 4.084 6.916 5.5 9.21 3.206c.474-.475 1.109-.737 1.79-.737s1.316.263 1.794.737a2.537 2.537 0 0 1 0 3.584L10.5 9.084l1.416 1.416 2.294-2.294a4.54 4.54 0 0 0-.004-6.412zm-2.5 3.912L10.29 4.29l-6 6 1.416 1.416 6-6z\"\n })));\n};\nexport { SvgUrlField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgaWQ9Imljb24tYm91bmQiIGZpbGw9Im5vbmUiIC8+CiAgPHBhdGggZD0iTTYuNzk0LDEyLjc5NEM2LjMxNiwxMy4yNjksNS42ODEsMTMuNTMxLDUsMTMuNTMxcy0xLjMxNi0wLjI2Mi0xLjc5NC0wLjczOGMtMC45ODctMC45ODgtMC45ODctMi41OTcsMC0zLjU4NEw1LjUsNi45MTYgTDQuMDg0LDUuNUwxLjc5MSw3Ljc5NGMtMS43NjYsMS43NjktMS43NjYsNC42NDQsMC4wMDMsNi40MTNDMi42NDcsMTUuMDYyLDMuNzg0LDE1LjUzMSw1LDE1LjUzMXMyLjM1My0wLjQ2OSwzLjIwNi0xLjMyNSBsMi4yOTQtMi4yOTRMOS4wODQsMTAuNUw2Ljc5NCwxMi43OTR6IE0xNC4yMDYsMS43OTRDMTMuMzUzLDAuOTM4LDEyLjIxNiwwLjQ2OSwxMSwwLjQ2OVM4LjY0NywwLjkzOCw3Ljc5NCwxLjc5NEw1LjUsNC4wODQgTDYuOTE2LDUuNWwyLjI5NC0yLjI5NEM5LjY4NCwyLjczMSwxMC4zMTksMi40NjksMTEsMi40NjlzMS4zMTYsMC4yNjMsMS43OTQsMC43MzdjMC45ODgsMC45ODcsMC45ODgsMi41OTcsMCwzLjU4NEwxMC41LDkuMDg0IGwxLjQxNiwxLjQxNmwyLjI5NC0yLjI5NEMxNS45NzUsNi40MzgsMTUuOTc1LDMuNTYyLDE0LjIwNiwxLjc5NHogTTExLjcwNiw1LjcwNmwtMS40MTYtMS40MTZsLTYsNmwxLjQxNiwxLjQxNkwxMS43MDYsNS43MDZ6IiAvPgo8L3N2Zz4=\";","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst moreVertical = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\"\n })\n});\nexport default moreVertical;\n//# sourceMappingURL=more-vertical.js.map","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { SUPPORTED_ATTRIBUTES } from '../../components/field-options/constants';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { InnerBlocks, useBlockProps } from '@wordpress/block-editor';\n\nconst blockAttributes = {\n\tname: {\n\t\ttype: 'string',\n\t},\n\tid: {\n\t\ttype: 'string',\n\t},\n\ttype: {\n\t\ttype: 'string',\n\t\tdefault: 'text',\n\t},\n\tlabel: {\n\t\ttype: 'string',\n\t},\n\thideLabel: {\n\t\ttype: 'boolean',\n\t},\n\tvalue: {\n\t\ttype: 'string',\n\t},\n\tplaceholder: {\n\t\ttype: 'string',\n\t},\n\trequired: {\n\t\ttype: 'boolean',\n\t},\n\trequiredText: {\n\t\ttype: 'string',\n\t},\n\tvalidation: {\n\t\ttype: 'string',\n\t},\n\treadonly: {\n\t\ttype: 'boolean',\n\t},\n\tshowHelp: {\n\t\ttype: 'string',\n\t},\n\thelp: {\n\t\ttype: 'string',\n\t},\n\twithButton: {\n\t\ttype: 'boolean',\n\t},\n\tenableMismatch: {\n\t\ttype: 'boolean',\n\t},\n\tenableAutoComplete: {\n\t\ttype: 'boolean',\n\t},\n\tadvanced: {\n\t\ttype: 'boolean',\n\t},\n\tnoWrapper: {\n\t\ttype: 'boolean',\n\t},\n\tgrouped: {\n\t\ttype: 'boolean',\n\t},\n};\n\nconst v1 = {\n\tattributes: blockAttributes,\n\tsave( { attributes, className } ) {\n\t\tconst {\n\t\t\tname,\n\t\t\tid,\n\t\t\ttype,\n\t\t\tlabel,\n\t\t\thideLabel,\n\t\t\tvalue,\n\t\t\tplaceholder,\n\t\t\trequired,\n\t\t\trequiredText,\n\t\t\treadonly,\n\t\t\tshowHelp,\n\t\t\thelp,\n\t\t\twithButton,\n\t\t\twithOutput,\n\t\t\tgrouped,\n\t\t\tvalidation,\n\t\t\tenableMismatch,\n\t\t\tenableAutoComplete,\n\t\t\tadvanced,\n\t\t\tnoWrapper,\n\t\t\tmismatchMessage,\n\t\t\tmatch,\n\t\t} = attributes;\n\n\t\tclassName = classnames( 'formello', {\n\t\t\t'formello-group': withButton || withOutput,\n\t\t\t'formello-group grouped': grouped,\n\t\t\t'formello-checkbox': 'checkbox' === type || 'radio' === type,\n\t\t} );\n\n\t\tconst labelClassName = classnames( {\n\t\t\thide: hideLabel,\n\t\t} );\n\n\t\tconst fieldClassName = classnames( {\n\t\t\tflatpickr: advanced && 'date' === type,\n\t\t\tfilepond: advanced && 'file' === type,\n\t\t} );\n\n\t\t// include only supported attributes\n\t\tconst htmlAttrs = Object.fromEntries(\n\t\t\tSUPPORTED_ATTRIBUTES[ type ].map( ( col ) => [\n\t\t\t\tcol,\n\t\t\t\tattributes[ col ],\n\t\t\t] )\n\t\t);\n\n\t\tif ( validation ) {\n\t\t\thtmlAttrs[ 'data-bouncer-message' ] = validation;\n\t\t}\n\n\t\tif ( enableMismatch && mismatchMessage ) {\n\t\t\thtmlAttrs[ 'data-bouncer-mismatch-message' ] = mismatchMessage;\n\t\t}\n\n\t\tif ( enableMismatch && match ) {\n\t\t\thtmlAttrs[ 'data-bouncer-match' ] = match;\n\t\t}\n\n\t\tif ( withOutput ) {\n\t\t\thtmlAttrs.oninput = 'this.nextElementSibling.value = this.value';\n\t\t}\n\n\t\tif ( ! enableAutoComplete ) {\n\t\t\thtmlAttrs.autocomplete = undefined;\n\t\t}\n\n\t\tif ( 'file' === type ) {\n\t\t\thtmlAttrs.name;\n\t\t\thtmlAttrs.accept = accept?.join( ',' );\n\t\t}\n\n\t\tif ( advanced && 'date' === type ) {\n\t\t\thtmlAttrs.type = 'text';\n\t\t\tObject.entries( flatpickr ).forEach( ( [ key, value ] ) => {\n\t\t\t\thtmlAttrs[ 'data-' + key ] = value;\n\t\t\t} );\n\t\t}\n\n\t\tif ( noWrapper || 'hidden' === type ) {\n\t\t\treturn ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{ 'hidden' !== type && (\n\t\t\t\t\t\n\t\t\t\t) }\n\n\t\t\t\t\n\n\t\t\t\t{ withButton && }\n\t\t\t\t{ withOutput && { value } }\n\t\t\t\t{ 'hidden' !== type && showHelp && (\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t
    \n\t\t);\n\t},\n};\n\nconst blockAttributesV2 = {\n\ttype: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'type',\n\t\tdefault: 'text',\n\t},\n\tid: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'id',\n\t},\n\tname: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'name',\n\t},\n\tlabel: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'label span:not(.required)',\n\t\tdefault: 'Label',\n\t\t__experimentalRole: 'content',\n\t},\n\thideLabel: {\n\t\ttype: 'boolean',\n\t\tselector: 'label.hide',\n\t\tdefault: false,\n\t},\n\tplaceholder: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'placeholder',\n\t\t__experimentalRole: 'content',\n\t},\n\tvalue: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'value',\n\t},\n\tvalidation: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'data-bouncer-message',\n\t\tdefault: '',\n\t},\n\tenableMismatch: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tmismatchMessage: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'data-bouncer-mismatch-message',\n\t\tdefault: '',\n\t},\n\tmatch: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'data-bouncer-match',\n\t},\n\trequired: {\n\t\ttype: 'boolean',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'required',\n\t\tdefault: false,\n\t},\n\trequiredText: {\n\t\ttype: 'string',\n\t\tsource: 'text',\n\t\tselector: 'label span.required',\n\t\tdefault: '*',\n\t},\n\tenableAutoComplete: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tautocomplete: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'autocomplete',\n\t\tdefault: 'off',\n\t},\n\tdisabled: {\n\t\ttype: 'boolean',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'disabled',\n\t\tdefault: false,\n\t},\n\treadonly: {\n\t\ttype: 'boolean',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'readonly',\n\t\tdefault: false,\n\t},\n\tchecked: {\n\t\ttype: 'boolean',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'checked',\n\t\tdefault: false,\n\t},\n\tmultiple: {\n\t\ttype: 'boolean',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'multiple',\n\t\tdefault: false,\n\t},\n\tshowHelp: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\thelp: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n\tminlength: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'minlength',\n\t},\n\tmaxlength: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'maxlength',\n\t},\n\tpattern: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'pattern',\n\t},\n\tmin: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'min',\n\t},\n\tmax: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'max',\n\t},\n\twithButton: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tgrouped: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\twithOutput: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tnoWrapper: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tstep: {\n\t\ttype: 'number',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'step',\n\t},\n\tdateFormat: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'data-date-format',\n\t},\n\tminDate: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'data-min-date',\n\t},\n\ttimeFormat: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'input',\n\t\tattribute: 'data-time-format',\n\t},\n\tenableTime: {\n\t\ttype: 'boolean',\n\t},\n\tinlineCalendar: {\n\t\ttype: 'boolean',\n\t},\n\tmode: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tattribute: 'data-mode',\n\t},\n\tadvanced: {\n\t\ttype: 'boolean',\n\t},\n};\n\nconst deprecated = [ v1 ];\n\nexport default deprecated;\n","import { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tInspectorAdvancedControls,\n\tBlockControls,\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\n\nimport { ToolbarGroup } from '@wordpress/components';\n\nimport { Hidden } from '../../icons/icons';\nimport Label from '../../components/label';\nimport Options from '../../components/field-options';\nimport ValidationOptions from '../../components/field-options/validation';\nimport AdvancedOptions from '../../components/field-options/advanced';\nimport Toolbar from '../../components/field-options/toolbar';\nimport { SUPPORTED_ATTRIBUTES } from '../../components/field-options/constants';\nimport { getInputClassesAndStyles } from './use-field-props';\n\nexport default function Edit( props ) {\n\tconst { attributes, setAttributes } = props;\n\tconst {\n\t\ttype,\n\t\tshowHelp,\n\t\tname,\n\t\tchecked,\n\t\tvalue,\n\t\tstep,\n\t\tplaceholder,\n\t\tautocomplete,\n\t\thelp,\n\t} = attributes;\n\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\tconst supported = SUPPORTED_ATTRIBUTES[ type ];\n\n\tconst fieldProps = getInputClassesAndStyles( attributes );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: fieldProps.containerClass,\n\t} );\n\n\tconst { children, ...innerBlocksProps } = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'formello/button', 'formello/output' ],\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t} );\n\n\tconst onChange = ( e ) => {\n\t\tif ( 'checkbox' === type || 'radio' === type ) {\n\t\t\tsetAttributes( { checked: ! checked } );\n\t\t}\n\t\tsetAttributes( { placeholder: e.target.value } );\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{ supported.includes( 'required' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t{ 'hidden' !== type && (\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t{ 'hidden' !== type ? (\n\t\t\t\t
    \n\t);\n}\n","import { registerBlockType, createBlock } from '@wordpress/blocks';\nimport Edit from './edit';\nimport save from './save';\nimport variations from './variations';\nimport deprecated from './deprecated';\nimport metadata from './block.json';\nimport { Input } from '../../icons/icons';\n\nimport './style.scss';\n\n/**\n * Every block starts by registering a new block type definition.\n *\n * @see https://developer.wordpress.org/block-editor/developers/block-api/#registering-a-block\n */\nregisterBlockType( metadata, {\n\tvariations,\n\n\tdeprecated,\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'formello/textarea' ],\n\t\t\t\ttransform: ( attrs ) => {\n\t\t\t\t\treturn createBlock( 'formello/input', attrs );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\t/**\n\t * An icon property should be specified to make it easier to identify a block.\n\t * These can be any of WordPress’ Dashicons, or a custom svg element.\n\t */\n\ticon: Input,\n\n\t/**\n\t * @see ./edit.js\n\t */\n\tedit: Edit,\n\n\t/**\n\t * @see ./save.js\n\t */\n\tsave,\n} );\n","import { RichText, useBlockProps, InnerBlocks } from '@wordpress/block-editor';\nimport clsx from 'clsx';\nimport { SUPPORTED_ATTRIBUTES } from '../../components/field-options/constants';\nimport { getInputClassesAndStyles } from './use-field-props';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\ttype,\n\t\tadvanced,\n\t\tvalidation,\n\t\tenableMismatch,\n\t\tmismatchMessage,\n\t\tmatch,\n\t\tenableAutoComplete,\n\t\tnoWrapper,\n\t\trequired,\n\t\trequiredText,\n\t\tlabel,\n\t\tshowHelp,\n\t\thelp,\n\t\tdateFormat,\n\t\tmode,\n\t\tinlineCalendar,\n\t\ttimeFormat,\n\t\tenableTime,\n\t\tminDate,\n\t} = attributes;\n\tconst blockProps = useBlockProps.save();\n\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst containerClass = clsx( blockProps.className );\n\n\tconst fieldProps = getInputClassesAndStyles( attributes );\n\n\t// include only supported attributes\n\tconst htmlAttrs = Object.fromEntries(\n\t\tSUPPORTED_ATTRIBUTES[ type ].map( ( col ) => [\n\t\t\tcol,\n\t\t\tattributes[ col ],\n\t\t] )\n\t);\n\n\tObject.keys( htmlAttrs ).forEach(\n\t\t( k ) => htmlAttrs[ k ] === '' && delete htmlAttrs[ k ]\n\t);\n\n\tif ( validation ) {\n\t\thtmlAttrs[ 'data-bouncer-message' ] = validation;\n\t}\n\n\tif ( enableMismatch && mismatchMessage ) {\n\t\thtmlAttrs[ 'data-bouncer-mismatch-message' ] = mismatchMessage;\n\t}\n\n\tif ( enableMismatch && match ) {\n\t\thtmlAttrs[ 'data-bouncer-match' ] = match;\n\t}\n\n\tif ( ! enableAutoComplete ) {\n\t\thtmlAttrs.autocomplete = undefined;\n\t}\n\n\tif ( advanced && 'date' === type ) {\n\t\thtmlAttrs[ 'data-date-format' ] = dateFormat;\n\t\thtmlAttrs[ 'data-time-format' ] = timeFormat;\n\t\thtmlAttrs[ 'data-mode' ] = mode;\n\t\thtmlAttrs[ 'data-min-date' ] = minDate;\n\t\thtmlAttrs[ 'data-inline' ] = inlineCalendar || undefined;\n\t\thtmlAttrs[ 'data-enable-time' ] = enableTime || undefined;\n\t}\n\n\tif ( advanced && 'time' === type ) {\n\t\thtmlAttrs[ 'data-time-format' ] = timeFormat;\n\t\thtmlAttrs[ 'data-enable-time' ] = enableTime;\n\t}\n\n\tif ( noWrapper || 'hidden' === type ) {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n\n\tif ( ! htmlAttrs.name ) {\n\t\thtmlAttrs.name = label;\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t\n\t\t\t) }\n\n\t\t\t\n\n\t\t\t\n\t\t\t{ 'hidden' !== type && showHelp && (\n\t\t\t\t\n\t\t\t) }\n\t\t
    \n\t);\n}\n","import {\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport clsx from 'clsx';\n\nexport function getInputClassesAndStyles( attributes ) {\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst { name, type, advanced, hideLabel } = attributes;\n\n\tconst containerClass = clsx( {\n\t\t'missing-name': ! name,\n\t} );\n\n\tconst labelClass = clsx( {\n\t\thide: hideLabel,\n\t\t'textarea-label': 'textarea' === type,\n\t} );\n\n\tconst inputClass = clsx(\n\t\tborderProps.className,\n\t\tspacingProps.className,\n\t\tcolorProps.className,\n\t\t{\n\t\t\t'formello-advanced': advanced,\n\t\t}\n\t);\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...spacingProps.style,\n\t\t...colorProps.style,\n\t};\n\n\treturn {\n\t\tcontainerClass,\n\t\tlabelClass,\n\t\tinputClass,\n\t\tinputStyle,\n\t};\n}\n","import { SVG, Rect } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tCheckbox,\n\tGDPR,\n\tInput,\n\tHidden,\n\tRange,\n\tPassword,\n\tEmail,\n\tUrl,\n\tClock,\n\tCalendar,\n\tColor,\n\tTel,\n\tNumber as NumberField,\n\tRadio,\n} from '../../icons/icons';\n\nconst variations = [\n\t{\n\t\tname: 'text-field',\n\t\ttitle: __( 'Text' ),\n\t\ticon: Input,\n\t\tdescription: __( 'A basic single-line text field.', 'formello' ),\n\t\tattributes: { type: 'text' },\n\t\tscope: [ 'transform' ],\n\t},\n\t{\n\t\tname: 'hidden',\n\t\ttitle: __( 'Hidden' ),\n\t\tdescription: __( 'Display hidden field.', 'formello' ),\n\t\ticon: Hidden,\n\t\tattributes: { type: 'hidden' },\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tname: 'checkbox',\n\t\ttitle: __( 'Checkbox' ),\n\t\tdescription: __( 'A simple checkbox input.' ),\n\t\ticon: Checkbox,\n\t\tattributes: { type: 'checkbox' },\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tname: 'radio',\n\t\ttitle: __( 'Radio' ),\n\t\tdescription: __( 'A simple radio input.' ),\n\t\ticon: Radio,\n\t\tattributes: { type: 'radio' },\n\t\tscope: [ 'block' ],\n\t},\n\t{\n\t\tname: 'gdpr',\n\t\ttitle: __( 'GDPR' ),\n\t\ticon: GDPR,\n\t\tattributes: {\n\t\t\tname: 'checkbox',\n\t\t\ttype: 'checkbox',\n\t\t\tlabel: __(\n\t\t\t\t'I agree with the Terms of service and Privacy policy',\n\t\t\t\t'formello'\n\t\t\t),\n\t\t\trequired: true,\n\t\t},\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tname: 'range',\n\t\ttitle: __( 'Range' ),\n\t\ticon: Range,\n\t\tattributes: { type: 'range' },\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tname: 'email',\n\t\ttitle: __( 'Email' ),\n\t\tdescription: __( 'Used for email addresses.' ),\n\t\ticon: Email,\n\t\tattributes: { type: 'email' },\n\t\tscope: [ 'inserter', 'transform' ],\n\t},\n\t{\n\t\tname: 'number',\n\t\ttitle: __( 'Number' ),\n\t\ticon: NumberField,\n\t\tattributes: { type: 'number' },\n\t\tscope: [ 'inserter', 'transform' ],\n\t},\n\t{\n\t\tname: 'color',\n\t\ttitle: __( 'Color' ),\n\t\ticon: Color,\n\t\tattributes: { type: 'color' },\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tname: 'date',\n\t\ttitle: __( 'Date' ),\n\t\ticon: Calendar,\n\t\tattributes: { type: 'date' },\n\t\tscope: [ 'inserter', 'transform' ],\n\t},\n\t{\n\t\tname: 'time',\n\t\ttitle: __( 'Time' ),\n\t\ticon: Clock,\n\t\tattributes: { type: 'time' },\n\t\tscope: [ 'inserter', 'transform' ],\n\t},\n\t{\n\t\tname: 'tel',\n\t\ttitle: __( 'Tel' ),\n\t\ticon: Tel,\n\t\tattributes: { type: 'tel' },\n\t\tscope: [ 'inserter', 'transform' ],\n\t},\n\t{\n\t\tname: 'url',\n\t\ttitle: __( 'Url' ),\n\t\ticon: Url,\n\t\tattributes: { type: 'url' },\n\t\tscope: [ 'inserter', 'transform' ],\n\t},\n\t{\n\t\tname: 'inputbutton',\n\t\ttitle: __( 'Input with button' ),\n\t\ticon: (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\tattributes: {\n\t\t\ttype: 'email',\n\t\t\tlabel: 'Email',\n\t\t\twithButton: true,\n\t\t},\n\t\tinnerBlocks: [ [ 'formello/button', { noWrapper: true } ] ],\n\t\tscope: [ 'inserter' ],\n\t},\n\t{\n\t\tname: 'password',\n\t\ttitle: __( 'Password' ),\n\t\ticon: Password,\n\t\tattributes: {\n\t\t\ttype: 'password',\n\t\t\tpattern:\n\t\t\t\t'^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*_=+-]).{8,12}$',\n\t\t\tvalidation:\n\t\t\t\t'Please choose a password that includes at least 1 uppercase character, 1 lowercase character, and 1 number.',\n\t\t},\n\t\tscope: [ 'inserter' ],\n\t},\n];\n\n/**\n * Add `isActive` function to all `embed` variations, if not defined.\n * `isActive` function is used to find a variation match from a created\n * Block by providing its attributes.\n */\nvariations.forEach( ( variation ) => {\n\tif ( 'file' === variation.name ) {\n\t\tvariation.attributes.value = undefined;\n\t}\n\tif ( 'radio' !== variation.name || 'checkbox' !== variation.name ) {\n\t\tvariation.attributes.checked = undefined;\n\t}\n\tif ( 'date' !== variation.name ) {\n\t\tvariation.attributes.advanced = false;\n\t}\n\tvariation.isActive = ( blockAttributes, variationAttributes ) =>\n\t\tblockAttributes.type === variationAttributes.type;\n} );\n\nexport default variations;\n","import { __ } from '@wordpress/i18n';\n\nimport { ToggleControl, TextControl, withFilters } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nimport { createBlocksFromInnerBlocksTemplate } from '@wordpress/blocks';\n\nimport { Fragment } from '@wordpress/element';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\n\nfunction AdvancedOptions( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\ttype,\n\t\t\tdisabled,\n\t\t\tenableAutoComplete,\n\t\t\tautocomplete,\n\t\t\treadonly,\n\t\t\tadvanced,\n\t\t},\n\t\tsetAttributes,\n\t\tfieldType,\n\t\tclientId,\n\t} = props;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ fieldType ];\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn !! ( block && block.innerBlocks.length );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\tconst addOutput = () => {\n\t\tlet child = 'formello/button';\n\t\tif ( 'range' === type ) {\n\t\t\tchild = 'formello/output';\n\t\t}\n\t\treplaceInnerBlocks(\n\t\t\tprops.clientId,\n\t\t\tcreateBlocksFromInnerBlocksTemplate( [ [ child ] ] ),\n\t\t\ttrue\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t{ supported.includes( 'cols' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { advanced: newval } )\n\t\t\t\t\t}\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ supported.includes( 'autocomplete' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { enableAutoComplete: newval } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __( 'Hint for form autofill feature.', 'formello' ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ enableAutoComplete && supported.includes( 'autocomplete' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { autocomplete: newval } )\n\t\t\t\t\t}\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'range' === type && (\n\t\t\t\t {\n\t\t\t\t\t\tif ( newval ) {\n\t\t\t\t\t\t\tsetAttributes( { withOutput: true } );\n\t\t\t\t\t\t\taddOutput();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetAttributes( { withOutput: false } );\n\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [], true );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { disabled: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Make the control not accept clicks.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { readonly: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __( 'Make value not editable.', 'formello' ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t);\n}\n\nexport default withFilters( 'formello.advancedOptions' )( AdvancedOptions );\n","export const SUPPORTED_ATTRIBUTES = {\n\thidden: [ 'name', 'id', 'type', 'value' ],\n\ttext: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\ttel: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\turl: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\temail: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'autocomplete',\n\t],\n\tpassword: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'pattern',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'autocomplete',\n\t],\n\tnumber: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\tdate: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\ttime: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\trange: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\tcheckbox: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'checked',\n\t],\n\tradio: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'checked',\n\t],\n\tfile: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'required',\n\t\t'disabled',\n\t\t'accept',\n\t\t'capture',\n\t\t'multiple',\n\t],\n\tcolor: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t],\n\ttextarea: [\n\t\t'name',\n\t\t'id',\n\t\t'required',\n\t\t'value',\n\t\t'type', // hack to use one component\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'cols',\n\t\t'rows',\n\t],\n\tselect: [ 'name', 'id', 'required', 'readonly', 'disabled', 'multiple' ],\n};\n","import { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { SelectControl, ToggleControl } from '@wordpress/components';\n\nexport default function DatepickerSettings( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\tadvanced,\n\t\t\ttype,\n\t\t\tdateFormat,\n\t\t\ttimeFormat,\n\t\t\tenableTime,\n\t\t\tinlineCalendar,\n\t\t\tmode,\n\t\t\tminDate,\n\t\t},\n\t\tsetAttributes,\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t{ advanced && 'date' === type && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { minDate: val ? 'today' : false } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { dateFormat: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { enableTime: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t setAttributes( { mode: val } ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { inlineCalendar: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tButton,\n} from '@wordpress/components';\n\nimport { Fragment } from '@wordpress/element';\nimport MergeTags from '../merge-tags';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\n\nconst sanitizedName = ( content ) => {\n\treturn (\n\t\tcontent\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '_' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function Options( props ) {\n\tconst { attributes, setAttributes, clientId, setModalOpen, fieldType } =\n\t\tprops;\n\n\tconst {\n\t\ttype,\n\t\tname,\n\t\tvalue,\n\t\tplaceholder,\n\t\trequired,\n\t\tmultiple,\n\t\tchecked,\n\t\tshowHelp,\n\t\tadvanced,\n\t} = attributes;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ fieldType ];\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { name: sanitizedName( val ) } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" attribute of the input element, and is used as a name for the form submission results.',\n\t\t\t\t\t\t'formello'\n\t\t\t\t\t) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t\t{ supported.includes( 'value' ) && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { value: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The initial value of the control field.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'placeholder' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { placeholder: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Text that appears in the form control when it has no value set.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'required' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { required: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'multiple' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { multiple: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'checked' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { checked: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! ( 'hidden' === type ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { showHelp: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ 'select' === fieldType && (\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetAttributes( { advanced: val } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetModalOpen( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage Options', 'formello' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { __ } from '@wordpress/i18n';\nimport { SVG, Rect, ToolbarButton } from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport { Asterisk } from '../../icons/icons';\n\nexport default function Toolbar( props ) {\n\tconst { attributes, setAttributes, name } = props;\n\tconst { required, showHelp, hideLabel, type } = attributes;\n\n\tconst toggleLabel = (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\tsetAttributes( { required: ! required } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ ( 'checkbox' || 'radio' ) !== type && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { hideLabel: ! hideLabel } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'formello/multichoices' !== name && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { showHelp: ! showHelp } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\n\nimport {\n\tToggleControl,\n\tTextControl,\n\tSelectControl,\n\tPanelBody,\n} from '@wordpress/components';\n\nimport { Fragment } from '@wordpress/element';\nimport MergeTags from '../merge-tags';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\nimport DatepickerSettings from './date';\n\nimport { getPatternTabs, serializeFieldsName } from '../merge-tags/functions';\n\nfunction ValidationOptions( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\ttype,\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tadvanced,\n\t\t\tstep,\n\t\t\tminlength,\n\t\t\tmaxlength,\n\t\t\tvalidation,\n\t\t\tenableMismatch,\n\t\t\tpattern,\n\t\t\tmatch,\n\t\t\tmismatchMessage,\n\t\t},\n\t\tsetAttributes,\n\t\tclientId,\n\t} = props;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ type ?? 'textarea' ];\n\n\tif ( 'checkbox' === type || 'email' === type ) {\n\t\treturn null;\n\t}\n\n\tconst fields = serializeFieldsName();\n\n\tconst tabs = getPatternTabs();\n\n\treturn (\n\t\t\n\t\t\t{ ( 'date' === type || 'tel' === type ) && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { advanced: val } );\n\t\t\t\t\t} }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ( 'date' === type || 'time' === type ) && (\n\t\t\t\t\n\t\t\t) }\n\n\t\t\t{ applyFilters( 'formello.Validation', '', props ) }\n\n\t\t\t{ supported.includes( 'step' ) && ! advanced && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { min: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { max: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { step: Number( val ) } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\t{ supported.includes( 'minlength' ) && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { minlength: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Minimum length (number of characters) of value.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { maxlength: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Maximum length (number of characters) of value.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\t{ supported.includes( 'pattern' ) && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { pattern: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Pattern the value must match to be valid.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\t{ supported.includes( 'pattern' ) && (\n\t\t\t\t setAttributes( { validation: val } ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ supported.includes( 'mismatch' ) && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { enableMismatch: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t{ enableMismatch && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tsetAttributes( { match: val } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Select the field to match.',\n\t\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tsetAttributes( { mismatchMessage: val } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t) }\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t);\n}\n\nexport default ValidationOptions;\n","import { __ } from '@wordpress/i18n';\nimport { RichText, store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nimport clsx from 'clsx';\n\nexport default function Label( { attributes, setAttributes, context } ) {\n\tconst {\n\t\tlabelClass,\n\t\tlabelAlign,\n\t\tlabelVAlign,\n\t\thideLabel,\n\t\trequired,\n\t\tmultiple,\n\t\ttype,\n\t\tlabel,\n\t} = attributes;\n\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t\tisPreview: getSettings().__unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\n\tconst [ meta ] = useEntityProp(\n\t\t'postType',\n\t\t'formello_form',\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tconst labelClassName = clsx(\n\t\t'label-div',\n\t\tlabelClass,\n\t\tlabelAlign,\n\t\tlabelVAlign,\n\t\t{\n\t\t\thide: hideLabel,\n\t\t\trequired,\n\t\t\t'textarea-label': multiple || 'textarea' === type,\n\t\t}\n\t);\n\n\treturn (\n\t\t
    \n\t\t\t {\n\t\t\t\t\tsetAttributes( { label: val } );\n\t\t\t\t} }\n\t\t\t\tplaceholder={ __( 'Enter label…', 'formello' ) }\n\t\t\t\tallowedFormats={ [ 'core/bold', 'core/italic', 'core/link' ] }\n\t\t\t/>\n\n\t\t\t{ required && (\n\t\t\t\t\n\t\t\t\t\t{ context[ 'formello/requiredText' ] || '*' }\n\t\t\t\t\n\t\t\t) }\n\t\t
    \n\t);\n}\n","import { applyFilters } from '@wordpress/hooks';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nconst allowed = [\n\t'formello/input',\n\t'formello/select',\n\t'formello/textarea',\n\t'formello/multichoices',\n];\n\n/**\n * Find the input fields blocks IDS.\n */\nexport function getFieldsBlock() {\n\tconst fields = [];\n\tconst inputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/input' );\n\tconst textareas =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/textarea' );\n\tconst selects =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/select' );\n\tconst outputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/output' );\n\tconst multichoices = select( blockEditorStore ).getBlocksByName(\n\t\t'formello/multichoices'\n\t);\n\n\tconst fieldsId = inputs.concat( textareas, selects, outputs, multichoices );\n\n\tfieldsId.forEach( ( b ) => {\n\t\tconst block = select( blockEditorStore ).getBlock( b );\n\t\tif ( allowed.includes( block.name ) ) {\n\t\t\tfields.push( block );\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Validate form before saving\n */\nexport function validate() {\n\tconst fields = {\n\t\tnames: [],\n\t\tbuttons:\n\t\t\tselect( blockEditorStore ).getBlocksByName( 'formello/button' ),\n\t};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.names.push( b.attributes.name );\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Get fields type.\n */\nexport function getFieldsType() {\n\tconst fields = {};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\t// get block type by name\n\t\tlet type = b.name.split( '/' )[ 1 ];\n\t\tif ( 'input' === type ) {\n\t\t\ttype = b.attributes.type;\n\t\t}\n\n\t\tfields[ b.attributes.name ] = type;\n\t\tif ( b.attributes.advanced && 'textarea' === 'textarea' ) {\n\t\t\tfields[ b.attributes.name ] = 'richtext';\n\t\t}\n\t\tif ( b.attributes.multiple && 'select' === type ) {\n\t\t\tfields[ b.attributes.name ] = type + '-multiple';\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFields() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\ttitle: b.attributes.name,\n\t\t\ttag: '{{fields.' + b.attributes.name + '}}',\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFieldsName() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\tlabel: b.attributes.name,\n\t\t\tvalue: b.attributes.name,\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function getFieldsTags() {\n\tconst fields = serializeFields();\n\n\treturn [\n\t\t{\n\t\t\ttitle: 'All Data',\n\t\t\ttag: '{{fields.all_data}}',\n\t\t},\n\t\t...fields,\n\t];\n}\n\nexport function getConstraints() {\n\tconst constraints = {};\n\tconst fields = getFieldsBlock();\n\n\tif ( fields ) {\n\t\tfields.forEach( ( b ) => {\n\t\t\tconst constraint = getFieldConstraint( b );\n\t\t\tlet name = b.attributes.name;\n\n\t\t\tif ( b.attributes.multiple ) {\n\t\t\t\tname += '.*';\n\t\t\t}\n\t\t\tif ( constraint ) {\n\t\t\t\tconstraints[ name ] = constraint;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn constraints;\n}\n\nexport function getFieldConstraint( field ) {\n\tlet constraints = [];\n\n\tif ( field.attributes.type === 'url' ) {\n\t\tconstraints.push( 'url' );\n\t}\n\n\tif ( field.attributes.required ) {\n\t\tconstraints.push( 'required' );\n\t}\n\n\tif ( field.attributes.minlength ) {\n\t\tconstraints.push( 'minlength:' + field.attributes.minlength );\n\t}\n\n\tif ( field.attributes.maxlength ) {\n\t\tconstraints.push( 'maxlength:' + field.attributes.maxlength );\n\t}\n\n\tif ( field.attributes.min && 'date' !== field.attributes.type ) {\n\t\tconstraints.push( 'min:' + field.attributes.min );\n\t}\n\n\tif (\n\t\tfield.attributes.max &&\n\t\t'date' !== field.attributes.type &&\n\t\t'file' !== field.attributes.type\n\t) {\n\t\tconstraints.push( 'max:' + field.attributes.max );\n\t}\n\n\tif ( field.attributes.type === 'email' ) {\n\t\tconstraints.push( 'email' );\n\t}\n\n\tif (\n\t\tfield.attributes.type === 'number' ||\n\t\tfield.attributes.type === 'range'\n\t) {\n\t\tconstraints.push( 'numeric' );\n\t}\n\n\tif ( 'date' === field.attributes.type && ! field.attributes.advanced ) {\n\t\tconstraints.push( 'date' );\n\t}\n\n\tif ( field.attributes.pattern ) {\n\t\tconst regEx = new RegExp( field.attributes.pattern );\n\t\tconstraints.push( 'regex:' + regEx );\n\t}\n\n\tif ( field.attributes.enableMismatch && '' !== field.attributes.match ) {\n\t\tconstraints.push( 'same:' + field.attributes.match );\n\t}\n\n\tapplyFilters( 'formello.constraints', constraints, field );\n\n\tif ( constraints.length ) {\n\t\tconstraints = constraints.join( '|' );\n\t}\n\n\treturn constraints.length ? constraints : undefined;\n}\n\nexport function getMetaTags() {\n\tconst postType = select( 'core/editor' ).getCurrentPostType();\n\tconst postId = select( 'core/editor' ).getCurrentPostId();\n\n\tconst [ meta ] = useEntityProp( 'postType', postType, 'meta', postId );\n\tconst metaTags = [];\n\n\tfor ( const key in meta ) {\n\t\tif ( meta[ key ] !== Object( key ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst tag = {\n\t\t\ttitle: key,\n\t\t\ttag: `{{meta.${ key }}}`,\n\t\t};\n\t\tmetaTags.push( tag );\n\t}\n\n\treturn metaTags;\n}\n\nexport function getWordpressTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Post ID',\n\t\t\ttag: `{{wp.post_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Title',\n\t\t\ttag: `{{wp.post_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post URL',\n\t\t\ttag: `{{wp.post_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author',\n\t\t\ttag: `{{wp.post_author}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author Email',\n\t\t\ttag: `{{wp.post_author_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User ID',\n\t\t\ttag: `{{wp.user_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User First Name',\n\t\t\ttag: `{{wp.user_first_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Last Name',\n\t\t\ttag: `{{wp.user_last_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Display Name',\n\t\t\ttag: `{{wp.user_display_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Username',\n\t\t\ttag: `{{wp.user_username}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Email',\n\t\t\ttag: `{{wp.user_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User URL',\n\t\t\ttag: `{{wp.user_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site Title',\n\t\t\ttag: `{{wp.site_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site URL',\n\t\t\ttag: `{{wp.site_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Admin Email',\n\t\t\ttag: `{{wp.admin_email}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getFormTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Form ID',\n\t\t\ttag: `{{form.form_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Form Label',\n\t\t\ttag: `{{form.form_name}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getOtherTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Date',\n\t\t\ttag: `{{other.system_date}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Time',\n\t\t\ttag: `{{other.system_time}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Referrer URL',\n\t\t\ttag: `{{other.referrer}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User IP',\n\t\t\ttag: `{{other.user_ip}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getPatternTabs() {\n\tconst passwords = [\n\t\t{\n\t\t\ttitle: 'Password',\n\t\t\ttag: `^(?=.*[A-Za-z])(?=.*\\\\d)[A-Za-z\\\\d]{8,}$`,\n\t\t\tdescription: 'One uppercase, one number, at least 8 chars',\n\t\t},\n\t\t{\n\t\t\ttitle: 'Password with special characters',\n\t\t\ttag: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$`,\n\t\t\tdescription:\n\t\t\t\t'One uppercase, one number, one special chars, at least 8 chars',\n\t\t},\n\t];\n\n\tconst dates = [\n\t\t{\n\t\t\ttitle: 'dd/mm/yyyy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{4}$',\n\t\t},\n\t\t{\n\t\t\ttitle: 'dd/mm/yy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{2}$',\n\t\t},\n\t];\n\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'passwords',\n\t\t\ttitle: 'Passwords',\n\t\t\tdata: passwords,\n\t\t},\n\t\t{\n\t\t\tname: 'dates',\n\t\t\ttitle: 'Dates',\n\t\t\tdata: dates,\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport {\n\tBaseControl,\n\tDropdownMenu,\n\t__experimentalInputControl as InputControl,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { defaultTabs } from './use-tabs';\nimport TabContent from './tab-content';\n\nexport default function MergeTags( props ) {\n\tconst {\n\t\tlabel,\n\t\tvalue,\n\t\tplaceholder,\n\t\thelp,\n\t\tonChange,\n\t\ticon = moreVertical,\n\t\tclientId,\n\t\ttabs = defaultTabs( clientId ),\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) }\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t\n\t);\n}\n\nexport function MergeTagsMenu( props ) {\n\tconst { label, onChange, icon = moreVertical, clientId } = props;\n\n\tconst tabs = defaultTabs( clientId );\n\n\treturn (\n\t\t\n\t\t\t{ () => }\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { SearchControl, TabPanel, MenuItem } from '@wordpress/components';\nimport { useState, Fragment } from '@wordpress/element';\n\nexport default function TabContent( { tabs, onChange } ) {\n\tconst [ searchInput, setSearchInput ] = useState( '' );\n\n\tconst filterAddon = ( element ) => {\n\t\tif ( '' === searchInput ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn (\n\t\t\telement.title.toLowerCase().search( searchInput.toLowerCase() ) !==\n\t\t\t-1\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ ( tab ) =>\n\t\t\t\t\ttab.data\n\t\t\t\t\t\t.filter( ( element ) => {\n\t\t\t\t\t\t\treturn filterAddon( element );\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.map( ( data ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t onChange( data.tag ) }\n\t\t\t\t\t\t\t\t\tinfo={ data.description }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ data.title }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n}\n","import {\n\tgetFieldsTags,\n\tgetWordpressTags,\n\tgetOtherTags,\n\tgetMetaTags,\n} from './functions';\n\nexport function defaultTabs( clientId ) {\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'fields',\n\t\t\ttitle: 'Fields',\n\t\t\tdata: getFieldsTags( clientId ),\n\t\t},\n\t\t{\n\t\t\tname: 'wordpress',\n\t\t\ttitle: 'WordPress',\n\t\t\tdata: getWordpressTags(),\n\t\t},\n\t\t{\n\t\t\tname: 'other',\n\t\t\ttitle: 'Other',\n\t\t\tdata: getOtherTags(),\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","import { ReactComponent as Asterisk } from '../../assets/icons/asterisk.svg';\nimport { ReactComponent as Checkbox } from '../../assets/icons/checkbox.svg';\nimport { ReactComponent as Calendar } from '../../assets/icons/date-field.svg';\nimport { ReactComponent as Checkboxes } from '../../assets/icons/checkboxes.svg';\nimport { ReactComponent as Clock } from '../../assets/icons/clock-field.svg';\nimport { ReactComponent as Color } from '../../assets/icons/color-field.svg';\nimport { ReactComponent as Email } from '../../assets/icons/email-field.svg';\nimport { ReactComponent as Fieldset } from '../../assets/icons/fieldset.svg';\nimport { ReactComponent as Form } from '../../assets/icons/form.svg';\nimport { ReactComponent as GDPR } from '../../assets/icons/gdpr-field.svg';\nimport { ReactComponent as Hidden } from '../../assets/icons/hidden-field.svg';\nimport { ReactComponent as Input } from '../../assets/icons/text-field.svg';\nimport { ReactComponent as Logo } from '../../assets/icons/logo.svg';\nimport { ReactComponent as Number } from '../../assets/icons/number-field.svg';\nimport { ReactComponent as Password } from '../../assets/icons/password-field.svg';\nimport { ReactComponent as Range } from '../../assets/icons/range-field.svg';\nimport { ReactComponent as Radio } from '../../assets/icons/radio-field.svg';\nimport { ReactComponent as Radios } from '../../assets/icons/radio-buttons.svg';\nimport { ReactComponent as Select } from '../../assets/icons/select.svg';\nimport { ReactComponent as Tel } from '../../assets/icons/phone-field.svg';\nimport { ReactComponent as Textarea } from '../../assets/icons/textarea-field.svg';\nimport { ReactComponent as Url } from '../../assets/icons/url-field.svg';\n\nexport {\n\tAsterisk,\n\tCheckbox,\n\tCheckboxes,\n\tClock,\n\tColor,\n\tEmail,\n\tFieldset,\n\tForm,\n\tGDPR,\n\tHidden,\n\tInput,\n\tLogo,\n\tNumber,\n\tPassword,\n\tRadio,\n\tRange,\n\tRadios,\n\tSelect,\n\tTel,\n\tTextarea,\n\tUrl,\n\tCalendar,\n};\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// extracted by mini-css-extract-plugin\nexport {};","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"hooks\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"primitives\"];","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"blocks/input/index\": 0,\n\t\"blocks/input/style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkformello\"] = self[\"webpackChunkformello\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"blocks/input/style-index\"], () => (__webpack_require__(\"./src/blocks/input/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["classnames","SUPPORTED_ATTRIBUTES","createBlock","InnerBlocks","useBlockProps","jsx","_jsx","jsxs","_jsxs","blockAttributes","name","type","id","default","label","hideLabel","value","placeholder","required","requiredText","validation","readonly","showHelp","help","withButton","enableMismatch","enableAutoComplete","advanced","noWrapper","grouped","v1","attributes","save","className","withOutput","mismatchMessage","match","labelClassName","hide","fieldClassName","flatpickr","filepond","htmlAttrs","Object","fromEntries","map","col","oninput","autocomplete","undefined","accept","join","entries","forEach","key","children","htmlFor","Content","RichText","tagName","blockAttributesV2","source","selector","attribute","__experimentalRole","disabled","checked","multiple","minlength","maxlength","pattern","min","max","step","dateFormat","minDate","timeFormat","enableTime","inlineCalendar","mode","deprecated","__","InspectorControls","InspectorAdvancedControls","BlockControls","useInnerBlocksProps","ToolbarGroup","Hidden","Label","Options","ValidationOptions","AdvancedOptions","Toolbar","getInputClassesAndStyles","Edit","props","setAttributes","TagName","supported","fieldProps","blockProps","containerClass","innerBlocksProps","allowedBlocks","orientation","renderAppender","onChange","e","target","includes","fieldType","width","height","inputClass","style","inputStyle","autoComplete","val","allowedFormats","multiline","registerBlockType","variations","metadata","Input","transforms","from","blocks","transform","attrs","icon","edit","clsx","keys","k","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetSpacingClassesAndStyles","getSpacingClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","borderProps","spacingProps","colorProps","labelClass","SVG","Rect","Checkbox","GDPR","Range","Password","Email","Url","Clock","Calendar","Color","Tel","Number","NumberField","Radio","title","description","scope","xmlns","viewBox","x","y","stroke","strokeWidth","fill","rx","innerBlocks","variation","isActive","variationAttributes","ToggleControl","TextControl","withFilters","useSelect","useDispatch","store","blockEditorStore","createBlocksFromInnerBlocksTemplate","Fragment","clientId","hasInnerBlocks","select","getBlock","block","length","replaceInnerBlocks","addOutput","child","newval","__nextHasNoMarginBottom","hidden","text","tel","url","email","password","number","date","time","range","checkbox","radio","file","color","textarea","SelectControl","DatepickerSettings","options","PanelBody","Button","MergeTags","sanitizedName","content","replace","toLowerCase","setModalOpen","initialOpen","variant","onClick","ToolbarButton","Asterisk","toggleLabel","isPressed","applyFilters","getPatternTabs","serializeFieldsName","fields","tabs","useEntityProp","context","labelAlign","labelVAlign","postType","postId","getSettings","getCurrentPostType","getCurrentPostId","isPreview","__unstableIsPreviewMode","meta","allowed","getFieldsBlock","inputs","getBlocksByName","textareas","selects","outputs","multichoices","fieldsId","concat","b","push","validate","names","buttons","fieldsBlock","getFieldsType","split","serializeFields","tag","getFieldsTags","getConstraints","constraints","constraint","getFieldConstraint","field","regEx","RegExp","getMetaTags","metaTags","getWordpressTags","tags","getFormTags","getOtherTags","passwords","dates","data","BaseControl","DropdownMenu","__experimentalInputControl","InputControl","moreVertical","defaultTabs","TabContent","suffix","toggleProps","isSmall","size","MergeTagsMenu","SearchControl","TabPanel","MenuItem","useState","searchInput","setSearchInput","filterAddon","element","search","tab","filter","info","ReactComponent","Checkboxes","Fieldset","Form","Logo","Radios","Select","Textarea"],"sourceRoot":""} \ No newline at end of file diff --git a/build/blocks/input/render.php b/build/blocks/input/render.php index 5ed52218..e35f2325 100644 --- a/build/blocks/input/render.php +++ b/build/blocks/input/render.php @@ -8,6 +8,11 @@ * $block (WP_Block): The block instance. * * @see https://github.com/WordPress/gutenberg/blob/trunk/docs/reference-guides/block-api/block-metadata.md#render + * @link https://www.francescopepe.com + * @since 1.0.0 + * + * @package Formello + * @subpackage Formello/includes */ $replacer = new Formello\TagReplacers\Replacer(); @@ -28,6 +33,20 @@ $p->set_attribute( 'data-wp-on--input', 'actions.setOutput' ); } + if ( 'tel' === $p->get_attribute( 'type' ) ) { + wp_enqueue_script( + 'intl-tel', + 'https://cdn.jsdelivr.net/npm/intl-tel-input@24.6.0/build/js/intlTelInput.min.js', + array(), + false, // phpcs:ignore + array( + 'strategy' => 'defer', + ) + ); + // phpcs:ignore + wp_enqueue_style( 'intl-tel', 'https://cdn.jsdelivr.net/npm/intl-tel-input@24.6.0/build/css/intlTelInput.css' ); + } + if ( 'password' === $p->get_attribute( 'type' ) ) { wp_enqueue_script( 'password-strength-meter' ); } @@ -36,11 +55,12 @@ 'flatpickr', 'https://cdn.jsdelivr.net/npm/flatpickr', array(), - false, + false, // phpcs:ignore array( 'strategy' => 'defer', - ), + ) ); + // phpcs:ignore wp_enqueue_style( 'flatpickr', 'https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css' ); } } diff --git a/build/blocks/input/style-index-rtl.css b/build/blocks/input/style-index-rtl.css index c015a402..92958a49 100644 --- a/build/blocks/input/style-index-rtl.css +++ b/build/blocks/input/style-index-rtl.css @@ -23,9 +23,10 @@ color: color-mix(in srgb, currentColor 60%, transparent); } .wp-block-formello-input:has(input[type=checkbox]), .wp-block-formello-input:has(input[type=radio]) { - flex-direction: row; align-items: baseline; gap: 0.3em; + display: grid; + grid-template-columns: min-content auto; } .wp-block-formello-input:has(input[type=checkbox]) input, .wp-block-formello-input:has(input[type=radio]) input { order: 1; @@ -35,6 +36,10 @@ } .wp-block-formello-input:has(input[type=checkbox]) small, .wp-block-formello-input:has(input[type=radio]) small { order: 3; + grid-column: 2/-1; +} +.wp-block-formello-input:has(input[type=checkbox]) .error-message, .wp-block-formello-input:has(input[type=radio]) .error-message { + grid-column: 2/-1; } .wp-block-formello-input:has(.wp-block-formello-output) { flex-direction: row; diff --git a/build/blocks/input/style-index.css b/build/blocks/input/style-index.css index 59ca7c06..b7123bdd 100644 --- a/build/blocks/input/style-index.css +++ b/build/blocks/input/style-index.css @@ -23,9 +23,10 @@ color: color-mix(in srgb, currentColor 60%, transparent); } .wp-block-formello-input:has(input[type=checkbox]), .wp-block-formello-input:has(input[type=radio]) { - flex-direction: row; align-items: baseline; gap: 0.3em; + display: grid; + grid-template-columns: min-content auto; } .wp-block-formello-input:has(input[type=checkbox]) input, .wp-block-formello-input:has(input[type=radio]) input { order: 1; @@ -35,6 +36,10 @@ } .wp-block-formello-input:has(input[type=checkbox]) small, .wp-block-formello-input:has(input[type=radio]) small { order: 3; + grid-column: 2/-1; +} +.wp-block-formello-input:has(input[type=checkbox]) .error-message, .wp-block-formello-input:has(input[type=radio]) .error-message { + grid-column: 2/-1; } .wp-block-formello-input:has(.wp-block-formello-output) { flex-direction: row; diff --git a/build/blocks/input/style-index.css.map b/build/blocks/input/style-index.css.map index c48db261..cb86e9d9 100644 --- a/build/blocks/input/style-index.css.map +++ b/build/blocks/input/style-index.css.map @@ -1 +1 @@ -{"version":3,"file":"blocks/input/style-index.css","mappings":";;;AAAA;EACI;EACA;AACJ;AAEE;EACC;AAAH;AAGE;EACC;EACA;EACA;AADH;AAKI;EACI;AAHR;AAMI;EACI;AAJR;AAOI;EACI;AALR;AAQI;EACI;EACA;EACA;AANR;AAQQ;EACI;AANZ;AAQQ;EACI;AANZ;AAQQ;EACI;AANZ;AAUI;EACI;EACA;EACA;AARR;AASQ;EACI;AAPZ;AASQ;EACI;AAPZ;AAWI;EACI;EACA;EACA;AATR;AAUQ;EACI;AARZ;AAUQ;EACI;EACA;AARZ;AAUQ;EACI;AARZ,C","sources":["webpack://formello/./src/blocks/input/style.scss"],"sourcesContent":[".wp-block-formello-input {\n display: flex;\n flex-direction: column;\n\n\tlabel {\n\t\t&.hide {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\tspan.required {\n\t\t\tcolor: red;\n\t\t\tmargin: 0 5px;\n\t\t\tfont-weight: normal;\n\t\t}\n\t}\n\n input + output, input + div.wp-block-formello-button {\n margin: 0 0 0 .5rem;\n }\n\n input + button {\n margin: 0 0 0 .5rem;\n }\n\n small {\n color: color-mix(in srgb, currentColor 60%, transparent);\n }\n\n &:has(input[type=checkbox]), &:has(input[type=radio]) {\n flex-direction: row;\n align-items: baseline;\n gap: .3em;\n\n input {\n order: 1;\n }\n label {\n order: 2;\n }\n small {\n order: 3;\n }\n }\n\n &:has(.wp-block-formello-output) {\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n input {\n flex: 1;\n }\n small {\n width: 100%;\n }\n }\n\n &:has(.wp-block-formello-button) {\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n label {\n flex-basis: 100%;\n }\n input {\n flex: 1;\n align-self: stretch;\n }\n small {\n width: 100%;\n }\n }\n\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"blocks/input/style-index.css","mappings":";;;AAAA;EACI;EACA;AACJ;AAEE;EACC;AAAH;AAGE;EACC;EACA;EACA;AADH;AAKI;EACI;AAHR;AAMI;EACI;AAJR;AAOI;EACI;AALR;AAQI;EAEI;EACA;EACA;EACA;AAPR;AAQQ;EACI;AANZ;AAQQ;EACI;AANZ;AAQQ;EACI;EACA;AANZ;AAQQ;EACI;AANZ;AAUI;EACI;EACA;EACA;AARR;AASQ;EACI;AAPZ;AASQ;EACI;AAPZ;AAWI;EACI;EACA;EACA;AATR;AAUQ;EACI;AARZ;AAUQ;EACI;EACA;AARZ;AAUQ;EACI;AARZ,C","sources":["webpack://formello/./src/blocks/input/style.scss"],"sourcesContent":[".wp-block-formello-input {\n display: flex;\n flex-direction: column;\n\n\tlabel {\n\t\t&.hide {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\tspan.required {\n\t\t\tcolor: red;\n\t\t\tmargin: 0 5px;\n\t\t\tfont-weight: normal;\n\t\t}\n\t}\n\n input + output, input + div.wp-block-formello-button {\n margin: 0 0 0 .5rem;\n }\n\n input + button {\n margin: 0 0 0 .5rem;\n }\n\n small {\n color: color-mix(in srgb, currentColor 60%, transparent);\n }\n\n &:has(input[type=checkbox]), &:has(input[type=radio]) {\n //flex-direction: row;\n align-items: baseline;\n gap: .3em;\n display: grid;\n grid-template-columns: min-content auto;\n input {\n order: 1;\n }\n label {\n order: 2;\n }\n small {\n order: 3;\n grid-column: 2 / -1;\n }\n .error-message {\n grid-column: 2 / -1;\n }\n }\n\n &:has(.wp-block-formello-output) {\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n input {\n flex: 1;\n }\n small {\n width: 100%;\n }\n }\n\n &:has(.wp-block-formello-button) {\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n label {\n flex-basis: 100%;\n }\n input {\n flex: 1;\n align-self: stretch;\n }\n small {\n width: 100%;\n }\n }\n\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/build/blocks/library/index.asset.php b/build/blocks/library/index.asset.php index dca1682f..7b5ac1d5 100644 --- a/build/blocks/library/index.asset.php +++ b/build/blocks/library/index.asset.php @@ -1 +1 @@ - array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => '411abbfee2858057061e'); + array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => 'fa9cb0f54df274b41b1a'); diff --git a/build/blocks/library/index.js b/build/blocks/library/index.js index aa0a060d..52ac9113 100644 --- a/build/blocks/library/index.js +++ b/build/blocks/library/index.js @@ -1040,7 +1040,8 @@ function ReusableBlockEdit({ setAttributes({ ref: parseInt(val) }); - } + }, + __nextHasNoMarginBottom: true }) }) }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Placeholder, { @@ -1054,7 +1055,8 @@ function ReusableBlockEdit({ setAttributes({ ref: parseInt(val) }); - } + }, + __nextHasNoMarginBottom: true }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.Fragment, { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Button, { isPrimary: true, diff --git a/build/blocks/library/index.js.map b/build/blocks/library/index.js.map index 2972ffc7..dc44868b 100644 --- a/build/blocks/library/index.js.map +++ b/build/blocks/library/index.js.map @@ -1 +1 @@ -{"version":3,"file":"blocks/library/index.js","mappings":"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","sources":["webpack://formello/./assets/icons/asterisk.svg","webpack://formello/./assets/icons/checkbox.svg","webpack://formello/./assets/icons/checkboxes.svg","webpack://formello/./assets/icons/clock-field.svg","webpack://formello/./assets/icons/color-field.svg","webpack://formello/./assets/icons/date-field.svg","webpack://formello/./assets/icons/email-field.svg","webpack://formello/./assets/icons/fieldset.svg","webpack://formello/./assets/icons/form.svg","webpack://formello/./assets/icons/gdpr-field.svg","webpack://formello/./assets/icons/hidden-field.svg","webpack://formello/./assets/icons/logo.svg","webpack://formello/./assets/icons/number-field.svg","webpack://formello/./assets/icons/password-field.svg","webpack://formello/./assets/icons/phone-field.svg","webpack://formello/./assets/icons/radio-buttons.svg","webpack://formello/./assets/icons/radio-field.svg","webpack://formello/./assets/icons/range-field.svg","webpack://formello/./assets/icons/select.svg","webpack://formello/./assets/icons/text-field.svg","webpack://formello/./assets/icons/textarea-field.svg","webpack://formello/./assets/icons/url-field.svg","webpack://formello/./src/blocks/form/edit/templates-modal.js","webpack://formello/./src/blocks/library/edit.js","webpack://formello/./src/icons/icons.js","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"blocks\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"coreData\"]","webpack://formello/external window [\"wp\",\"data\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/./src/blocks/library/index.js"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgAsterisk = function SvgAsterisk(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12.75 6h-1.5v4.19L8.288 7.226l-1.061 1.06 2.962 2.963H6v1.5h4.19l-2.963 2.962 1.06 1.061 2.963-2.962V18h1.5v-4.19l2.962 2.963 1.061-1.06-2.962-2.963H18v-1.5h-4.19l2.963-2.962-1.06-1.061-2.963 2.962V6Z\"\n })));\n};\nexport { SvgAsterisk as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjc1IDZIMTEuMjVWMTAuMTg5M0w4LjI4NzY5IDcuMjI3MDNMNy4yMjcwMyA4LjI4NzY5TDEwLjE4OTMgMTEuMjVINlYxMi43NUgxMC4xODkzTDcuMjI3MDMgMTUuNzEyM0w4LjI4NzY5IDE2Ljc3M0wxMS4yNSAxMy44MTA3VjE4SDEyLjc1VjEzLjgxMDdMMTUuNzEyMyAxNi43NzNMMTYuNzczIDE1LjcxMjNMMTMuODEwNyAxMi43NUgxOFYxMS4yNUgxMy44MTA3TDE2Ljc3MyA4LjI4NzY5TDE1LjcxMjMgNy4yMjcwM0wxMi43NSAxMC4xODkzVjZaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckbox = function SvgCheckbox(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z\"\n })));\n};\nexport { SvgCheckbox as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGc+CiAgICAgICAgPHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIvPgogICAgICAgIDxwYXRoIGQ9Ik00IDNoMTZhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6bTEgMnYxNGgxNFY1SDV6bTYuMDAzIDExTDYuNzYgMTEuNzU3bDEuNDE0LTEuNDE0IDIuODI5IDIuODI5IDUuNjU2LTUuNjU3IDEuNDE1IDEuNDE0TDExLjAwMyAxNnoiIC8+CiAgICA8L2c+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckboxes = function SvgCheckboxes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 24,\n height: 24,\n viewBox: \"0 0 300.396 300.396\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.048 216.749H4.076a3 3 0 0 0-3 3v59.973a3 3 0 0 0 3 3h59.972a3 3 0 0 0 3-3v-59.973c0-1.656-1.344-3-3-3zM64.048 17.675H4.076A4.075 4.075 0 0 0 0 21.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076V21.749a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986V36.809h29.849v29.852H19.138zM64.048 116.675H4.076A4.075 4.075 0 0 0 0 120.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076v-59.973a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986v-29.852h29.849v29.852H19.138zM297.396 231.036h-186.67a3 3 0 0 0-3 3v31.4a3 3 0 0 0 3 3h186.67c1.656 0 3-1.344 3-3v-31.4a3 3 0 0 0-3-3zM110.729 169.438h186.667a3 3 0 0 0 3-3v-31.406c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3zM110.729 70.438h186.667a3 3 0 0 0 3-3V36.032c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3z\"\n })));\n};\nexport { SvgCheckboxes as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiAKCSB2aWV3Qm94PSIwIDAgMzAwLjM5NiAzMDAuMzk2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNNjQuMDQ4LDIxNi43NDlINC4wNzZjLTEuNjU3LDAtMywxLjM0NC0zLDN2NTkuOTczYzAsMS42NTgsMS4zNDMsMywzLDNoNTkuOTcyYzEuNjU2LDAsMy0xLjM0MiwzLTN2LTU5Ljk3MwoJCUM2Ny4wNDgsMjE4LjA5Myw2NS43MDQsMjE2Ljc0OSw2NC4wNDgsMjE2Ljc0OXoiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTcuNjc1SDQuMDc2QzEuODI1LDE3LjY3NSwwLDE5LjQ5OSwwLDIxLjc0OXY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NlYyMS43NDlDNjguMTIzLDE5LjQ5OSw2Ni4yOTksMTcuNjc1LDY0LjA0OCwxNy42NzV6IE0xOS4xMzgsNjYuNjYxVjM2LjgwOWgyOS44NDl2MjkuODUySDE5LjEzOHoKCQkiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTE2LjY3NUg0LjA3NmMtMi4yNTEsMC00LjA3NiwxLjgyNC00LjA3Niw0LjA3NHY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NnYtNTkuOTczQzY4LjEyMywxMTguNDk5LDY2LjI5OSwxMTYuNjc1LDY0LjA0OCwxMTYuNjc1eiBNMTkuMTM4LDE2NS42NjF2LTI5Ljg1MmgyOS44NDl2MjkuODUyCgkJSDE5LjEzOHoiLz4KCTxwYXRoIGQ9Ik0yOTcuMzk2LDIzMS4wMzZoLTE4Ni42N2MtMS42NTcsMC0zLDEuMzQyLTMsM3YzMS40YzAsMS42NTYsMS4zNDMsMywzLDNoMTg2LjY3YzEuNjU2LDAsMy0xLjM0NCwzLTN2LTMxLjQKCQlDMzAwLjM5NiwyMzIuMzc4LDI5OS4wNTMsMjMxLjAzNiwyOTcuMzk2LDIzMS4wMzZ6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSwxNjkuNDM4aDE4Ni42NjdjMS42NTYsMCwzLTEuMzQyLDMtM3YtMzEuNDA2YzAtMS42NTYtMS4zNDQtMy0zLTNIMTEwLjcyOWMtMS42NTcsMC0zLDEuMzQ0LTMsM3YzMS40MDYKCQlDMTA3LjcyOSwxNjguMDk3LDEwOS4wNzEsMTY5LjQzOCwxMTAuNzI5LDE2OS40Mzh6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSw3MC40MzhoMTg2LjY2N2MxLjY1NiwwLDMtMS4zNDIsMy0zVjM2LjAzMmMwLTEuNjU2LTEuMzQ0LTMtMy0zSDExMC43MjljLTEuNjU3LDAtMywxLjM0NC0zLDN2MzEuNDA2CgkJQzEwNy43MjksNjkuMDk3LDEwOS4wNzEsNzAuNDM4LDExMC43MjksNzAuNDM4eiIvPgo8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgClockField = function SvgClockField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 -8 72 72\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 0a28 28 0 1 0 28 28A28 28 0 0 0 36 0Zm0 50a22 22 0 1 1 22-22 22.07 22.07 0 0 1-22 22Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.59 27.14H38V12a2.31 2.31 0 1 0-4.61 0v17.44a2.31 2.31 0 0 0 2.3 2.31h14.9a2.31 2.31 0 1 0 0-4.61Z\"\n })));\n};\nexport { SvgClockField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAtOCA3MiA3MiIgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Y2xvY2stbzwvdGl0bGU+PHBhdGggZD0iTTM2LDBBMjgsMjgsMCwxLDAsNjQsMjgsMjgsMjgsMCwwLDAsMzYsMFptMCw1MEEyMiwyMiwwLDEsMSw1OCwyOCwyMi4wNywyMi4wNywwLDAsMSwzNiw1MFoiLz48cGF0aCBkPSJNNTAuNTksMjcuMTRIMzhWMTJhMi4zMSwyLjMxLDAsMSwwLTQuNjEsMFYyOS40NGEyLjMxLDIuMzEsMCwwLDAsMi4zLDIuMzFINTAuNTlhMi4zMSwyLjMxLDAsMSwwLDAtNC42MVoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgColorField = function SvgColorField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 36 36\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.23 14.89c-2.1-.56-4.93 1.8-6.34.3-1.71-1.82 2.27-5.53 1.86-8.92-.33-2.78-3.51-4.08-6.66-4.1A18.5 18.5 0 0 0 7.74 7.59c-6.64 6.59-8.07 16-1.37 22.48 6.21 6 16.61 4.23 22.67-1.4a17.73 17.73 0 0 0 4.22-6.54c1.08-2.9 1.18-6.64-1.03-7.24ZM9.4 10.57a2.23 2.23 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.81 2.53 2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53ZM5.07 20.82a2.22 2.22 0 0 1 1.82-2.53 2.22 2.22 0 0 1 2.86 1.21A2.23 2.23 0 0 1 7.94 22a2.24 2.24 0 0 1-2.87-1.18Zm7 8.33a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.8-2.53 2.23 2.23 0 0 1 2.87 1.21A2.22 2.22 0 0 1 12 29.15ZM15 8.26a2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.82 2.53A2.21 2.21 0 0 1 15 8.26Zm5.82 22.19a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.85 2.53Zm5-10.46a3.2 3.2 0 0 1-1.69 1.76 3.53 3.53 0 0 1-1.4.3 2.78 2.78 0 0 1-2.56-1.5 2.49 2.49 0 0 1-.07-2 3.2 3.2 0 0 1 1.69-1.76 3 3 0 0 1 4 1.2 2.54 2.54 0 0 1 0 2.01Z\",\n \"data-name\": \"Layer 3\"\n })));\n};\nexport { SvgColorField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDM2IDM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoNPHRpdGxlPmNvbG9yX3BhbGV0dGVfc29saWQ8L3RpdGxlPgoNPGcgaWQ9ImI4OTRlMzJiLTA0MzctNDVhYi1iOGJmLTlmMGM0ZThmNTdjZCIgZGF0YS1uYW1lPSJMYXllciAzIj4KDTxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTguNSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMywwLDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywyLjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEsMS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDateField = function SvgDateField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38 4V0h-4v4H14V0h-4v4H0v44h48V4H38zm6 40H4V19.9h40V44zM4 15.9V8h6v4h4V8h20v4h4V8h6v7.9H4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 24h6v6h-6zM16.667 24h6v6h-6zM25.583 24h6v6h-6zM34.5 24h6v6h-6zM7.5 33h6v6h-6zM16.667 33h6v6h-6zM25.583 33h6v6h-6zM34.5 33h6v6h-6z\"\n })));\n};\nexport { SvgDateField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCFET0NUWVBFIHN2ZyAgUFVCTElDICctLy9XM0MvL0RURCBTVkcgMS4xLy9FTicgICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQnPgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0OCA0OCIgaWQ9IkxheWVyXzMiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08Zz4KDTxwYXRoIGQ9Ik0zOCw0VjBoLTR2NEgxNFYwaC00djRIMHYxMS45djRWNDhoNDhWMTkuOXYtNFY0SDM4eiBNNDQsNDRINFYxOS45aDQwVjQ0eiBNNCwxNS45VjhoNnY0aDRWOGgyMHY0aDRWOGg2djcuOUg0eiIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iNy41IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMTYuNjY3IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMjUuNTgzIiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMzQuNSIgeT0iMjQiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjcuNSIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjE2LjY2NyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjI1LjU4MyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjM0LjUiIHk9IjMzIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmailField = function SvgEmailField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2c5.43 0 9.848 4.327 9.996 9.72L22 12v1c0 2.173-1.523 4-3.5 4-1.173 0-2.186-.643-2.816-1.62a5 5 0 1 1 1.311-3.597L17 12v1c0 1.14.716 2 1.5 2 .745 0 1.428-.775 1.495-1.831L20 13v-1a8 8 0 1 0-4.677 7.28 1 1 0 1 1 .831 1.819A9.966 9.966 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2Zm0 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z\"\n })));\n};\nexport { SvgEmailField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik0xMiwyIEMxNy40MjkyMzk5LDIgMjEuODQ3OTMxNyw2LjMyNjY3MDc5IDIxLjk5NjE1ODIsMTEuNzIwMDk1MiBMMjIsMTIgTDIyLDEzIEMyMiwxNS4xNzI5MjA4IDIwLjQ3NzQzNCwxNyAxOC41LDE3IEMxNy4zMjY5MzkxLDE3IDE2LjMxMzk1MjksMTYuMzU3MDI0NCAxNS42ODM5MzgyLDE1LjM4MDMwMjQgQzE0Ljc3MDU5MywxNi4zNzU3ODIzIDEzLjQ1ODE5MzQsMTcgMTIsMTcgQzkuMjM4NTc2MjUsMTcgNywxNC43NjE0MjM3IDcsMTIgQzcsOS4yMzg1NzYyNSA5LjIzODU3NjI1LDcgMTIsNyBDMTQuNjg4NzU0Nyw3IDE2Ljg4MTgxODEsOS4xMjIzMDY3MSAxNi45OTUzODA1LDExLjc4MzExMDQgTDE3LDEyIEwxNywxMyBDMTcsMTQuMTQwNzg3NyAxNy43MTYwMTAzLDE1IDE4LjUsMTUgQzE5LjI0NDc5MDIsMTUgMTkuOTI4MjI5LDE0LjIyNDU2MDkgMTkuOTk0NzEwOSwxMy4xNjg5MzQxIEwyMCwxMyBMMjAsMTIgQzIwLDcuNTgxNzIyIDE2LjQxODI3OCw0IDEyLDQgQzcuNTgxNzIyLDQgNCw3LjU4MTcyMiA0LDEyIEM0LDE2LjQxODI3OCA3LjU4MTcyMiwyMCAxMiwyMCBDMTMuMTYzMDk0OCwyMCAxNC4yODkyODIyLDE5Ljc1MjI2MTggMTUuMzIyNTE1OSwxOS4yNzk4MzMxIEMxNS44MjQ3ODc2LDE5LjA1MDE3NzcgMTYuNDE4MTMxNywxOS4yNzExNzcgMTYuNjQ3Nzg3LDE5Ljc3MzQ0ODcgQzE2Ljg3NzQ0MjMsMjAuMjc1NzIwNSAxNi42NTY0NDMsMjAuODY5MDY0NiAxNi4xNTQxNzEzLDIxLjA5ODcxOTkgQzE0Ljg2MTIxOCwyMS42ODk5MDEgMTMuNDUxNTQ2MywyMiAxMiwyMiBDNi40NzcxNTI1LDIyIDIsMTcuNTIyODQ3NSAyLDEyIEMyLDYuNDc3MTUyNSA2LjQ3NzE1MjUsMiAxMiwyIFogTTEyLDkgQzEwLjM0MzE0NTgsOSA5LDEwLjM0MzE0NTggOSwxMiBDOSwxMy42NTY4NTQyIDEwLjM0MzE0NTgsMTUgMTIsMTUgQzEzLjY1Njg1NDIsMTUgMTUsMTMuNjU2ODU0MiAxNSwxMiBDMTUsMTAuMzQzMTQ1OCAxMy42NTY4NTQyLDkgMTIsOSBaIi8+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFieldset = function SvgFieldset(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 80,\n height: 80,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 20h1v1H1v-2h1zm20 0h-1v1h2v-2h-1zM1 5h1V4h1V3H1zm1 2H1v2h1zm0 4H1v2h1zm20-2h1V7h-1zm0 4h1v-2h-1zM2 15H1v2h1zm20 2h1v-2h-1zM5 4h2V3H5zm6 0V3H9v1zm2 0h2V3h-2zm6-1h-2v1h2zM5 21h2v-1H5zm4 0h2v-1H9zm4 0h2v-1h-2zm4 0h2v-1h-2zm4-17h1v1h1V3h-2zm-1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1V8a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19V8H5v2h14m1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1v-2a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19v-2H5v2h14\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgFieldset as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MHB4IiBoZWlnaHQ9IjgwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAyMGgxdjFIMXYtMmgxem0yMCAwaC0xdjFoMnYtMmgtMXpNMSA1aDFWNGgxVjNIMXptMSAySDF2Mmgxem0wIDRIMXYyaDF6bTIwLTJoMVY3aC0xem0wIDRoMXYtMmgtMXpNMiAxNUgxdjJoMXptMjAgMmgxdi0yaC0xek01IDRoMlYzSDV6bTYgMFYzSDl2MXptMiAwaDJWM2gtMnptNi0xaC0ydjFoMnpNNSAyMWgydi0xSDV6bTQgMGgydi0xSDl6bTQgMGgydi0xaC0yem00IDBoMnYtMWgtMnptNC0xN2gxdjFoMVYzaC0yem0tMSA0djJhMS4wMDEgMS4wMDEgMCAwIDEtMSAxSDVhMS4wMDEgMS4wMDEgMCAwIDEtMS0xVjhhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOVY4SDV2MmgxNG0xIDR2MmExLjAwMSAxLjAwMSAwIDAgMS0xIDFINWExLjAwMSAxLjAwMSAwIDAgMS0xLTF2LTJhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOXYtMkg1djJoMTQiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgForm = function SvgForm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.2 12.994a.312.312 0 0 1-.188-.191C1 12.76.999 12.113 1 6.982V1.208l.022-.045a.328.328 0 0 1 .14-.14L1.208 1h11.585l.05.025a.31.31 0 0 1 .136.135l.021.039v5.783c0 5.377 0 5.787-.013 5.831a.314.314 0 0 1-.142.162L12.8 13H7.012c-3.457.001-5.8 0-5.817-.01zm11.236-5.992V1.568H1.573v10.857c0 .01 1.099.01 5.436.01h5.432V7.003zM5.574 10.72v-.86h1.712v1.72H5.574v-.86zm1.144 0v-.284h-.576v.568h.576v-.284zm1.145 0v-.284h3.432v.568H7.863v-.284zM5.574 7.572V6.428h5.72v2.288h-5.72V7.572zm5.144 0V7H6.142v.566c0 .311 0 .569.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.289h2.28v.577h-2.28v-.288zM5.575 4.14V2.996h5.72v2.288h-5.72V4.14zm5.144 0v-.572H6.142v.566c0 .31 0 .568.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.284h2.28v.567h-2.28V4.14z\"\n })));\n};\nexport { SvgForm as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAxNCAxNCIgcm9sZT0iaW1nIiBmb2N1c2FibGU9ImZhbHNlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtIDEuMTk5Nzk5NSwxMi45OTM5MTYgYyAtMC4wNzkwMzQsLTAuMDIzIC0wLjE2NDA3MSwtMC4xMDkzIC0wLjE4Nzk4MTMsLTAuMTkxNCAtMC4wMTIwMDUsLTAuMDQyIC0wLjAxMzAwNiwtMC42ODk1IC0wLjAxMTAwNSwtNS44MjEwMDAzIGwgMCwtNS43NzQgMC4wMjIwMSwtMC4wNDUgYyAwLjAyODAxMiwtMC4wNTcgMC4wODMwMzYsLTAuMTExNyAwLjE0MDE2MDYsLTAuMTQwMSBsIDAuMDQ1MDE5LC0wLjAyMiA1Ljc5MjIwNDEsMCA1Ljc5MjMwNDEsMCAwLjA1MTAyLDAuMDI1IGMgMC4wNTYwMiwwLjAyNyAwLjEwMzY0NSwwLjA3NSAwLjEzNTQ1OSwwLjEzNDUgbCAwLjAyMTAxLDAuMDM5IDAsNS43ODMyIGMgMCw1LjM3NjUwMDMgMCw1Ljc4NjYwMDMgLTAuMDEzMDEsNS44MzExMDAzIC0wLjAxOTAxLDAuMDYgLTAuMDc5MDMsMC4xMjkxIC0wLjE0MTc2MSwwLjE2MjEgbCAtMC4wNDYwMiwwLjAyNCAtNS43ODc3MDIzLDAgYyAtMy40NTYyOTQyLDllLTQgLTUuNzk5MjA3LDAgLTUuODE2MDE0MywtMC4wMSB6IG0gMTEuMjM2NjU3NSwtNS45OTE5MDAzIDAsLTUuNDM0MiAtNS40MzE5NDgxLDAgLTUuNDMxODQ4MiwwIDAsNS40MjI5IGMgMCwyLjk4MjYgLTQuMDAyZS00LDUuNDI4MDAwMyAwLDUuNDM0MjAwMyAwLDAuMDEgMS4wOTkwNzUxLDAuMDExIDUuNDM2NTUwMiwwLjAxMSBsIDUuNDMyMTQ4MSwwIDAsLTUuNDM0MjAwMyB6IG0gLTYuODYxOTY2MywzLjcxODEwMDMgMCwtMC44NjAzMDAzIDAuODU1NzY5OSwwIDAuODU1NzcsMCAwLDAuODYwMzAwMyAwLDAuODYwMyAtMC44NTU3NywwIC0wLjg1NTc2OTksMCAwLC0wLjg2MDMgeiBtIDEuMTQzOTk0NSwwIDAsLTAuMjgzOCAtMC4yODgyMjQ2LDAgLTAuMjg4MzI0NiwwIDAsMC4yODM4IDAsMC4yODM3IDAuMjg4MzI0NiwwIDAuMjg4MjI0NiwwIDAsLTAuMjgzNyB6IG0gMS4xNDQwOTQ3LDAgMCwtMC4yODM4IDEuNzE2MDQxOCwwIDEuNzE2MDQxMywwIDAsMC4yODM4IDAsMC4yODM3IC0xLjcxNjA0MTMsMCAtMS43MTYwNDE4LDAgMCwtMC4yODM3IHogbSAtMi4yODgwODkyLC0zLjE0ODMwMDMgMCwtMS4xNDQxIDIuODYwMDM2NCwwIDIuODYwMTM1OSwwIDAsMS4xNDQxIDAsMS4xNDM5IC0yLjg2MDEzNTksMCAtMi44NjAwMzY0LDAgMCwtMS4xNDM5IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEzIDAsMC41Njg3IDAuMDEwMDA0LDAuNTcyIDAsMCAxLjAzMjk0NjYsMC4wMSAyLjI4ODA4OTIsMC4wMSBsIDIuMjgyMDg2OCwwIDAsLTAuNTcyIHogbSAtNy45OTkyNTc4LDAgMCwtMC4yODg0IDEuMTM5NTkyNywwIDEuMTM5NDkyNSwwIDAsMC4yODg0IDAsMC4yODgyIC0xLjEzOTQ5MjUsMCAtMS4xMzk1OTI3LDAgMCwtMC4yODgyIHogbSAyLjg1NTYzNDUsLTMuNDMyMSAwLC0xLjE0NDEgMi44NjAwMzY0LDAgMi44NjAxMzU5LDAgMCwxLjE0NDEgMCwxLjE0NCAtMi44NjAxMzU5LDAgLTIuODYwMDM2NCwwIDAsLTEuMTQ0IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEyIDAsMC41Njg2IDAuMDEwMDA0LDAuNTcxOSAwLDAgMS4wMzI5NDY2LDAuMDEgMi4yODgwODkyLDAuMDEgbCAyLjI4MjA4NjgsMCAwLC0wLjU3MTkgeiBtIC03Ljk5OTI1NzgsMCAwLC0wLjI4MzkgMS4xMzk1OTI3LDAgMS4xMzk0OTI1LDAgMCwwLjI4MzkgMCwwLjI4MzcgLTEuMTM5NDkyNSwwIC0xLjEzOTU5MjcsMCAwLC0wLjI4MzcgeiIvPjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGdprField = function SvgGdprField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2zm0 8h5s1-1 1-5c0 0-5-1-6-2v7H5c1 4 5 7 5 7v-7z\"\n })));\n};\nexport { SvgGdprField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+Cgk8cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KCTxnPgoJCTxwYXRoIGQ9Ik0xMCAyczMgMiA3IDJjMCAxMS03IDE0LTcgMTRTMyAxNSAzIDRjNCAwIDctMiA3LTJ6bTAgOGg1czEtMSAxLTVjMCAwLTUtMS02LTJ2N0g1YzEgNCA1IDcgNSA3di03eiIvPgoJPC9nPgo8L3N2Zz4K\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgHiddenField = function SvgHiddenField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 1000 1000\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M499 270q57 0 104.5 28t75.5 76 28 104q0 39-15 76l122 122q97-81 142-198-36-91-104-162T694 206q-93-40-195-40-86 0-166 29l90 90q38-15 76-15zM83 157l95 94 19 20q-52 40-91.5 93T42 478q36 91 104.5 162T304 750q93 40 195 40 95 0 183-35l139 139 53-53-738-737zm230 230 65 64q-4 15-4 27 0 34 17 62.5t45.5 45.5 62.5 17q14 0 27-3l65 64q-45 22-92 22-56 0-104-28t-76-76-28-104q0-47 22-91zm180-33 131 131v-6q0-34-16.5-63t-45-45.5T500 354h-7z\"\n })));\n};\nexport { SvgHiddenField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00OTkgMjcwcTU3IDAgMTA0LjUgMjh0NzUuNSA3NiAyOCAxMDRxMCAzOS0xNSA3NmwxMjIgMTIycTk3LTgxIDE0Mi0xOTgtMzYtOTEtMTA0LTE2MlQ2OTQgMjA2cS05My00MC0xOTUtNDAtODYgMC0xNjYgMjlsOTAgOTBxMzgtMTUgNzYtMTV6TTgzIDE1N2w5NSA5NCAxOSAyMHEtNTIgNDAtOTEuNSA5M1Q0MiA0NzhxMzYgOTEgMTA0LjUgMTYyVDMwNCA3NTBxOTMgNDAgMTk1IDQwIDk1IDAgMTgzLTM1bDEzOSAxMzkgNTMtNTMtNzM4LTczN3ptMjMwIDIzMGw2NSA2NHEtNCAxNS00IDI3IDAgMzQgMTcgNjIuNXQ0NS41IDQ1LjUgNjIuNSAxN3ExNCAwIDI3LTNsNjUgNjRxLTQ1IDIyLTkyIDIyLTU2IDAtMTA0LTI4dC03Ni03Ni0yOC0xMDRxMC00NyAyMi05MXptMTgwLTMzbDEzMSAxMzF2LTZxMC0zNC0xNi41LTYzdC00NS00NS41VDUwMCAzNTRoLTd6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 341.333,\n height: 341.333,\n viewBox: \"0 0 256 256\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#9b51e0\",\n d: \"M0 128v128h256V0H0v128zm145.6-66.6c2.9.7 7.8 2.8 11.1 4.5 6.7 3.6 18.3 14.6 16.8 16-2.6 2.3-31.9 23.1-32.6 23.1-.5 0-.9-.5-.9-1 0-.6-1.1-2.2-2.5-3.5-3-3.1-8.3-3.3-11.6-.6-2.2 1.8-2.4 2.7-2.7 14l-.4 12.1H136v37h-13v34H82v-44.8c0-35.5.3-46.1 1.5-51.7 3.9-18.6 18.2-34.2 35.6-38.9 6.9-1.9 19.9-2 26.5-.2z\"\n })));\n};\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwoJdmVyc2lvbj0iMS4wIgoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJd2lkdGg9IjI1Ni4wMDAwMDBwdCIKCWhlaWdodD0iMjU2LjAwMDAwMHB0IgoJdmlld0JveD0iMCAwIDI1Ni4wMDAwMDAgMjU2LjAwMDAwMCIKCXByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiCj4KCTxnCgkJdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjU2LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKCQlmaWxsPSIjOWI1MWUwIgoJCXN0cm9rZT0ibm9uZSIKCT4KCQk8cGF0aAoJCQlkPSJNMCAxMjgwIGwwIC0xMjgwIDEyODAgMCAxMjgwIDAgMCAxMjgwIDAgMTI4MCAtMTI4MCAwIC0xMjgwIDAgMAoJCQktMTI4MHogbTE0NTYgNjY2IGMyOSAtNyA3OCAtMjggMTExIC00NSA2NyAtMzYgMTgzIC0xNDYgMTY4IC0xNjAgLTI2IC0yMwoJCQktMzE5IC0yMzEgLTMyNiAtMjMxIC01IDAgLTkgNSAtOSAxMCAwIDYgLTExIDIyIC0yNSAzNSAtMzAgMzEgLTgzIDMzIC0xMTYgNgoJCQktMjIgLTE4IC0yNCAtMjcgLTI3IC0xNDAgbC00IC0xMjEgNjYgMCA2NiAwIDAgLTE4NSAwIC0xODUgLTY1IDAgLTY1IDAgMAoJCQktMTcwIDAgLTE3MCAtMjA1IDAgLTIwNSAwIDAgNDQ4IGMwIDM1NSAzIDQ2MSAxNSA1MTcgMzkgMTg2IDE4MiAzNDIgMzU2IDM4OQoJCQk2OSAxOSAxOTkgMjAgMjY1IDJ6IgoJCS8+Cgk8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgNumberField = function SvgNumberField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 52 52\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.8 49.5H7.2c-2.6 0-4.7-2.1-4.7-4.7V7.2c0-2.6 2.1-4.7 4.7-4.7h37.6c2.6 0 4.7 2.1 4.7 4.7v37.6c0 2.6-2.1 4.7-4.7 4.7zm-36-39.2v31.3c0 .9.7 1.6 1.6 1.6h31.3c.9 0 1.6-.7 1.6-1.6V10.3c0-.9-.7-1.6-1.6-1.6H10.4c-.9.1-1.6.8-1.6 1.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.2 20.3h-2.9l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.2 4.9h-5.8l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.3 4.9H18c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h3L19 28.7h-3.1c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h2.9L17 36.5v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h5.7L26 36.4v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h3.2c.2 0 .3-.1.4-.3l.6-2.2V29c0-.2-.1-.4-.4-.4h-3l1.4-5.6h3.1c.2 0 .3-.1.4-.3l.6-2.2v-.1c-.1.1-.3-.1-.5-.1zm-8.1 8.5h-5.8l1.4-5.6h5.7l-1.3 5.6z\"\n })));\n};\nexport { SvgNumberField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCgkgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNTIgNTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUyIDUyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZD0iTTQ0LjgsNDkuNUg3LjJjLTIuNiwwLTQuNy0yLjEtNC43LTQuN1Y3LjJjMC0yLjYsMi4xLTQuNyw0LjctNC43aDM3LjZjMi42LDAsNC43LDIuMSw0LjcsNC43djM3LjYKCUM0OS41LDQ3LjQsNDcuNCw0OS41LDQ0LjgsNDkuNXogTTguOCwxMC4zdjMxLjNjMCwwLjksMC43LDEuNiwxLjYsMS42aDMxLjNjMC45LDAsMS42LTAuNywxLjYtMS42VjEwLjNjMC0wLjktMC43LTEuNi0xLjYtMS42SDEwLjQKCUM5LjUsOC44LDguOCw5LjUsOC44LDEwLjN6Ii8+CjxwYXRoIGQ9Ik0zNi4yLDIwLjNoLTIuOWwxLjItNC44di0wLjFjMC0wLjItMC4xLTAuNC0wLjQtMC40aC0yLjNjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMS4yLDQuOWgtNS44bDEuMi00LjgKCXYtMC4xYzAtMC4yLTAuMS0wLjQtMC40LTAuNGgtMi4zYy0wLjIsMC0wLjMsMC4xLTAuNCwwLjNsLTEuMyw0LjloLTMuMmMtMC4yLDAtMC4zLDAuMS0wLjQsMC4zbC0wLjYsMi4ydjAuMWMwLDAuMiwwLjEsMC40LDAuNCwwLjQKCWgzbC0xLjQsNS42aC0zLjFjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMC42LDIuMnYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuOWwtMS4yLDQuOHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuMwoJYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wxLjMtNWg1LjdMMjYsMzYuNHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuM2MwLjIsMCwwLjMtMC4xLDAuNC0wLjNsMS4zLTVoMy4yYzAuMiwwLDAuMy0wLjEsMC40LTAuMwoJbDAuNi0yLjJWMjljMC0wLjItMC4xLTAuNC0wLjQtMC40aC0zbDEuNC01LjZoMy4xYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wwLjYtMi4ydi0wLjFDMzYuNiwyMC41LDM2LjQsMjAuMywzNi4yLDIwLjNMMzYuMiwyMC4zegoJIE0yOC4xLDI4LjhoLTUuOGwxLjQtNS42aDUuN0wyOC4xLDI4Ljh6Ii8+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPasswordField = function SvgPasswordField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.988 51.297c.375 0 .961-.14 1.57-.445C42.66 43.469 47.185 40.375 47.185 31.96V14.289c0-2.414-1.055-3.187-3-4.008-2.743-1.125-11.532-4.289-14.25-5.25-.633-.187-1.266-.328-1.946-.328-.656 0-1.289.14-1.922.328-2.718.985-11.507 4.149-14.25 5.25-1.945.797-3 1.594-3 4.008v17.672c0 8.414 4.547 11.484 17.625 18.89.61.305 1.172.446 1.547.446Zm-8.226-15.563v-9.093c0-1.524.586-2.32 1.828-2.508V21.32c0-4.312 2.601-7.218 6.398-7.218 3.82 0 6.399 2.906 6.399 7.218v2.79c1.265.187 1.851.984 1.851 2.53v9.094c0 1.758-.773 2.578-2.414 2.578H22.152c-1.617 0-2.39-.82-2.39-2.578Zm4.289-11.648 7.898-.023v-3c0-2.766-1.57-4.594-3.96-4.594-2.368 0-3.938 1.828-3.938 4.593Z\"\n })));\n};\nexport { SvgPasswordField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMjcuOTg4MyA1MS4yOTY5IEMgMjguMzYzMyA1MS4yOTY5IDI4Ljk0OTIgNTEuMTU2MiAyOS41NTg2IDUwLjg1MTYgQyA0Mi42NjAyIDQzLjQ2ODggNDcuMTgzNiA0MC4zNzUwIDQ3LjE4MzYgMzEuOTYwOSBMIDQ3LjE4MzYgMTQuMjg5MSBDIDQ3LjE4MzYgMTEuODc1MCA0Ni4xMjg5IDExLjEwMTYgNDQuMTgzNiAxMC4yODEzIEMgNDEuNDQxNCA5LjE1NjIgMzIuNjUyNCA1Ljk5MjIgMjkuOTMzNiA1LjAzMTMgQyAyOS4zMDA4IDQuODQzOCAyOC42NjgwIDQuNzAzMSAyNy45ODgzIDQuNzAzMSBDIDI3LjMzMjAgNC43MDMxIDI2LjY5OTIgNC44NDM4IDI2LjA2NjQgNS4wMzEzIEMgMjMuMzQ3NiA2LjAxNTYgMTQuNTU4NiA5LjE3OTcgMTEuODE2NCAxMC4yODEzIEMgOS44NzExIDExLjA3ODEgOC44MTY0IDExLjg3NTAgOC44MTY0IDE0LjI4OTEgTCA4LjgxNjQgMzEuOTYwOSBDIDguODE2NCA0MC4zNzUwIDEzLjM2MzMgNDMuNDQ1MyAyNi40NDE0IDUwLjg1MTYgQyAyNy4wNTA4IDUxLjE1NjIgMjcuNjEzMyA1MS4yOTY5IDI3Ljk4ODMgNTEuMjk2OSBaIE0gMTkuNzYxNyAzNS43MzQ0IEwgMTkuNzYxNyAyNi42NDA2IEMgMTkuNzYxNyAyNS4xMTcyIDIwLjM0NzYgMjQuMzIwMyAyMS41ODk4IDI0LjEzMjggTCAyMS41ODk4IDIxLjMyMDMgQyAyMS41ODk4IDE3LjAwNzggMjQuMTkxNCAxNC4xMDE2IDI3Ljk4ODMgMTQuMTAxNiBDIDMxLjgwODYgMTQuMTAxNiAzNC4zODY3IDE3LjAwNzggMzQuMzg2NyAyMS4zMjAzIEwgMzQuMzg2NyAyNC4xMDk0IEMgMzUuNjUyNCAyNC4yOTY5IDM2LjIzODMgMjUuMDkzOCAzNi4yMzgzIDI2LjY0MDYgTCAzNi4yMzgzIDM1LjczNDQgQyAzNi4yMzgzIDM3LjQ5MjIgMzUuNDY0OSAzOC4zMTI1IDMzLjgyNDIgMzguMzEyNSBMIDIyLjE1MjQgMzguMzEyNSBDIDIwLjUzNTEgMzguMzEyNSAxOS43NjE3IDM3LjQ5MjIgMTkuNzYxNyAzNS43MzQ0IFogTSAyNC4wNTA4IDI0LjA4NjAgTCAzMS45NDkyIDI0LjA2MjUgTCAzMS45NDkyIDIxLjA2MjUgQyAzMS45NDkyIDE4LjI5NjkgMzAuMzc4OSAxNi40Njg3IDI3Ljk4ODMgMTYuNDY4NyBDIDI1LjYyMTEgMTYuNDY4NyAyNC4wNTA4IDE4LjI5NjkgMjQuMDUwOCAyMS4wNjI1IFoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPhoneField = function SvgPhoneField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.156 37.762c6.774 6.773 15.024 12 21.75 12 3.024 0 5.672-1.055 7.805-3.399 1.242-1.383 2.016-3 2.016-4.593 0-1.172-.446-2.297-1.57-3.094l-7.173-5.11c-1.101-.75-2.015-1.125-2.859-1.125-1.078 0-2.016.61-3.094 1.664l-1.664 1.641a1.263 1.263 0 0 1-.89.375c-.375 0-.704-.14-.961-.258-1.43-.773-3.914-2.906-6.235-5.203-2.297-2.297-4.43-4.781-5.18-6.234a1.991 1.991 0 0 1-.257-.938c0-.304.093-.61.351-.867l1.64-1.71c1.056-1.079 1.665-2.017 1.665-3.095 0-.843-.375-1.757-1.148-2.859l-5.04-7.102c-.82-1.125-1.968-1.617-3.234-1.617-1.547 0-3.164.703-4.523 2.04-2.274 2.18-3.282 4.874-3.282 7.85 0 6.727 5.133 14.884 11.883 21.634Z\"\n })));\n};\nexport { SvgPhoneField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMTguMTU2MiAzNy43NjE3IEMgMjQuOTI5NyA0NC41MzUyIDMzLjE3OTcgNDkuNzYxNyAzOS45MDYyIDQ5Ljc2MTcgQyA0Mi45Mjk3IDQ5Ljc2MTcgNDUuNTc4MSA0OC43MDcwIDQ3LjcxMDkgNDYuMzYzMyBDIDQ4Ljk1MjggNDQuOTgwNSA0OS43MjY2IDQzLjM2MzMgNDkuNzI2NiA0MS43Njk1IEMgNDkuNzI2NiA0MC41OTc3IDQ5LjI4MTIgMzkuNDcyNyA0OC4xNTYyIDM4LjY3NTggTCA0MC45ODQzIDMzLjU2NjQgQyAzOS44ODI4IDMyLjgxNjQgMzguOTY4NyAzMi40NDE0IDM4LjEyNTAgMzIuNDQxNCBDIDM3LjA0NjggMzIuNDQxNCAzNi4xMDkzIDMzLjA1MDggMzUuMDMxMiAzNC4xMDU1IEwgMzMuMzY3MSAzNS43NDYxIEMgMzMuMTA5MyAzNi4wMDM5IDMyLjc4MTIgMzYuMTIxMSAzMi40NzY1IDM2LjEyMTEgQyAzMi4xMDE1IDM2LjEyMTEgMzEuNzczNCAzNS45ODA1IDMxLjUxNTYgMzUuODYzMyBDIDMwLjA4NTkgMzUuMDg5OCAyNy42MDE1IDMyLjk1NzEgMjUuMjgxMiAzMC42NjAyIEMgMjIuOTg0MyAyOC4zNjMzIDIwLjg1MTUgMjUuODc4OSAyMC4xMDE1IDI0LjQyNTggQyAxOS45NjA5IDI0LjE2ODAgMTkuODQzNyAyMy44Mzk4IDE5Ljg0MzcgMjMuNDg4MyBDIDE5Ljg0MzcgMjMuMTgzNiAxOS45Mzc1IDIyLjg3ODkgMjAuMTk1MyAyMi42MjExIEwgMjEuODM1OSAyMC45MTAyIEMgMjIuODkwNiAxOS44MzIwIDIzLjQ5OTkgMTguODk0NSAyMy40OTk5IDE3LjgxNjQgQyAyMy40OTk5IDE2Ljk3MjcgMjMuMTI1MCAxNi4wNTg2IDIyLjM1MTUgMTQuOTU3MSBMIDE3LjMxMjQgNy44NTU1IEMgMTYuNDkyMSA2LjczMDUgMTUuMzQzNyA2LjIzODMgMTQuMDc4MSA2LjIzODMgQyAxMi41MzEyIDYuMjM4MyAxMC45MTQwIDYuOTQxNCA5LjU1NDYgOC4yNzc0IEMgNy4yODEyIDEwLjQ1NzEgNi4yNzM0IDEzLjE1MjQgNi4yNzM0IDE2LjEyODkgQyA2LjI3MzQgMjIuODU1NSAxMS40MDYyIDMxLjAxMTcgMTguMTU2MiAzNy43NjE3IFoiLz48L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioButtons = function SvgRadioButtons(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 4h13v1H9zm0 17h13v-1H9zm0-8h13v-1H9zM7 4a3 3 0 1 1-3-3 3 3 0 0 1 3 3zM6 4a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2 2 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm-2-9a1 1 0 1 0 1 1 1 1 0 0 0-1-1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgRadioButtons as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05IDRoMTN2MUg5em0wIDE3aDEzdi0xSDl6bTAtOGgxM3YtMUg5ek03IDRhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzek02IDRhMiAyIDAgMSAwLTIgMiAyLjAwMyAyLjAwMyAwIDAgMCAyLTJ6bTEgOGEzIDMgMCAxIDEtMy0zIDMgMyAwIDAgMSAzIDN6bS0xIDBhMiAyIDAgMSAwLTIgMiAyIDIgMCAwIDAgMi0yem0xIDhhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzem0tMSAwYTIgMiAwIDEgMC0yIDIgMi4wMDMgMi4wMDMgMCAwIDAgMi0yem0tMi05YTEgMSAwIDEgMCAxIDEgMSAxIDAgMCAwLTEtMXoiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioField = function SvgRadioField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 4C5.32 4 4 5.32 4 7s1.32 3 3 3 3-1.32 3-3-1.32-3-3-3Zm0-3C3.7 1 1 3.7 1 7s2.7 6 6 6 6-2.7 6-6-2.7-6-6-6Zm0 10.8c-2.64 0-4.8-2.16-4.8-4.8 0-2.64 2.16-4.8 4.8-4.8 2.64 0 4.8 2.16 4.8 4.8 0 2.64-2.16 4.8-4.8 4.8z\"\n })));\n};\nexport { SvgRadioField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE0IDE0IiByb2xlPSJpbWciIGZvY3VzYWJsZT0iZmFsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gNyw0IEMgNS4zMiw0IDQsNS4zMiA0LDcgNCw4LjY4IDUuMzIsMTAgNywxMCA4LjY4LDEwIDEwLDguNjggMTAsNyAxMCw1LjMyIDguNjgsNCA3LDQgWiBNIDcsMSBDIDMuNywxIDEsMy43IDEsNyBjIDAsMy4zIDIuNyw2IDYsNiAzLjMsMCA2LC0yLjcgNiwtNiBDIDEzLDMuNyAxMC4zLDEgNywxIFogTSA3LDExLjggQyA0LjM2LDExLjggMi4yLDkuNjQgMi4yLDcgMi4yLDQuMzYgNC4zNiwyLjIgNywyLjIgYyAyLjY0LDAgNC44LDIuMTYgNC44LDQuOCAwLDIuNjQgLTIuMTYsNC44IC00LjgsNC44IHoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRangeField = function SvgRangeField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 11h-3.184a2.982 2.982 0 0 0-5.632 0H3a1 1 0 0 0 0 2h9.184a2.982 2.982 0 0 0 5.632 0H21a1 1 0 0 0 0-2Zm-6 2a1 1 0 1 1 1-1 1.001 1.001 0 0 1-1 1Z\"\n })));\n};\nexport { SvgRangeField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggZD0iTTIxLDExSDE3LjgxNTczYTIuOTgyMDgsMi45ODIwOCwwLDAsMC01LjYzMTQ2LDBIM2ExLDEsMCwwLDAsMCwyaDkuMTg0MzNhMi45ODIsMi45ODIsMCwwLDAsNS42MzE0LDBIMjFhMSwxLDAsMCwwLDAtMlptLTYsMmExLDEsMCwxLDEsMS0xQTEuMDAxMywxLjAwMTMsMCwwLDEsMTUsMTNaIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSelect = function SvgSelect(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 4H1c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1zm-5 7H1V5h9v6zm3-2.6L11 7h4l-2 1.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1e72bd\",\n d: \"M2 6h1v4H2V6z\"\n })));\n};\nexport { SvgSelect as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8cGF0aCBkPSJNMTUgNGgtMTRjLTAuNiAwLTEgMC40LTEgMXY2YzAgMC42IDAuNCAxIDEgMWgxNGMwLjYgMCAxLTAuNCAxLTF2LTZjMC0wLjYtMC40LTEtMS0xek0xMCAxMWgtOXYtNmg5djZ6TTEzIDguNGwtMi0xLjRoNGwtMiAxLjR6Ij48L3BhdGg+CjxwYXRoIGZpbGw9IiMxZTcyYmQiIGQ9Ik0yIDZoMXY0aC0xdi00eiI+PC9wYXRoPgo8L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextField = function SvgTextField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 9h2v30H8v3h8v-3h-2V9h2V6H8zM4 16h3.021v-4H0v24h7.042v-4H4zM16.979 12v4H44v16H16.958v4H48V12z\"\n })));\n};\nexport { SvgTextField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjgsOSAxMCw5IDEwLDEyIDEwLDE2IDEwLDM5IDgsMzkgOCw0MiAxNiw0MiAxNiwzOSAxNCwzOSAxNCwxNiAxNCwxMiAxNCw5IDE2LDkgMTYsNiA4LDYgICIvPgoNPHBvbHlnb24gcG9pbnRzPSI0LDE2IDcuMDIxLDE2IDcuMDIxLDEyIDAsMTIgMCwzNiA3LjA0MiwzNiA3LjA0MiwzMiA0LDMyICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTYuOTc5LDEyIDE2Ljk3OSwxNiA0NCwxNiA0NCwzMiAxNi45NTgsMzIgMTYuOTU4LDM2IDQ4LDM2IDQ4LDEyICAiLz4KDTwvZz4KDTwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextareaField = function SvgTextareaField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 33h-2V3h2V0H8v3h2v30H8v3h8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.031 6v4H44v34H4V10h2.938V6H0v42h48V6z\"\n })));\n};\nexport { SvgTextareaField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjE2LDMzIDE0LDMzIDE0LDEwIDE0LDYgMTQsMyAxNiwzIDE2LDAgOCwwIDgsMyAxMCwzIDEwLDYgMTAsMTAgMTAsMzMgOCwzMyA4LDM2IDE2LDM2ICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTcuMDMxLDYgMTcuMDMxLDEwIDQ0LDEwIDQ0LDQ0IDQsNDQgNCwxMCA2LjkzOCwxMCA2LjkzOCw2IDAsNiAwLDQ4IDQ4LDQ4IDQ4LDYgICIvPgoNPC9nPgoNPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgUrlField = function SvgUrlField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.794 12.794c-.478.475-1.113.737-1.794.737s-1.316-.262-1.794-.738a2.54 2.54 0 0 1 0-3.584L5.5 6.916 4.084 5.5 1.791 7.794a4.54 4.54 0 0 0 .003 6.413c.853.855 1.99 1.324 3.206 1.324s2.353-.469 3.206-1.325l2.294-2.294L9.084 10.5l-2.29 2.294zm7.412-11C13.353.938 12.216.469 11 .469S8.647.938 7.794 1.794L5.5 4.084 6.916 5.5 9.21 3.206c.474-.475 1.109-.737 1.79-.737s1.316.263 1.794.737a2.537 2.537 0 0 1 0 3.584L10.5 9.084l1.416 1.416 2.294-2.294a4.54 4.54 0 0 0-.004-6.412zm-2.5 3.912L10.29 4.29l-6 6 1.416 1.416 6-6z\"\n })));\n};\nexport { SvgUrlField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgaWQ9Imljb24tYm91bmQiIGZpbGw9Im5vbmUiIC8+CiAgPHBhdGggZD0iTTYuNzk0LDEyLjc5NEM2LjMxNiwxMy4yNjksNS42ODEsMTMuNTMxLDUsMTMuNTMxcy0xLjMxNi0wLjI2Mi0xLjc5NC0wLjczOGMtMC45ODctMC45ODgtMC45ODctMi41OTcsMC0zLjU4NEw1LjUsNi45MTYgTDQuMDg0LDUuNUwxLjc5MSw3Ljc5NGMtMS43NjYsMS43NjktMS43NjYsNC42NDQsMC4wMDMsNi40MTNDMi42NDcsMTUuMDYyLDMuNzg0LDE1LjUzMSw1LDE1LjUzMXMyLjM1My0wLjQ2OSwzLjIwNi0xLjMyNSBsMi4yOTQtMi4yOTRMOS4wODQsMTAuNUw2Ljc5NCwxMi43OTR6IE0xNC4yMDYsMS43OTRDMTMuMzUzLDAuOTM4LDEyLjIxNiwwLjQ2OSwxMSwwLjQ2OVM4LjY0NywwLjkzOCw3Ljc5NCwxLjc5NEw1LjUsNC4wODQgTDYuOTE2LDUuNWwyLjI5NC0yLjI5NEM5LjY4NCwyLjczMSwxMC4zMTksMi40NjksMTEsMi40NjlzMS4zMTYsMC4yNjMsMS43OTQsMC43MzdjMC45ODgsMC45ODcsMC45ODgsMi41OTcsMCwzLjU4NEwxMC41LDkuMDg0IGwxLjQxNiwxLjQxNmwyLjI5NC0yLjI5NEMxNS45NzUsNi40MzgsMTUuOTc1LDMuNTYyLDE0LjIwNiwxLjc5NHogTTExLjcwNiw1LjcwNmwtMS40MTYtMS40MTZsLTYsNmwxLjQxNiwxLjQxNkwxMS43MDYsNS43MDZ6IiAvPgo8L3N2Zz4=\";","/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tstore as blockEditorStore,\n\t__experimentalBlockPatternsList as BlockPatternsList,\n\tBlockContextProvider,\n} from '@wordpress/block-editor';\nimport { Modal, SearchControl, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\nfunction PatternCategoriesList( {\n\tselectedCategory,\n\tpatternCategories,\n\tonClickCategory,\n} ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__sidebar';\n\treturn (\n\t\t
    \n\t\t\t{ [ ...new Set( patternCategories ) ].map( ( category ) => {\n\t\t\t\treturn (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tonClickCategory( category.slug );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t} ) }\n\t\t
    \n\t);\n}\n\nfunction PatternsExplorerSearch( { searchValue, setSearchValue } ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__search';\n\treturn (\n\t\t
    \n\t\t\t\n\t\t
    \n\t);\n}\n\nfunction PatternExplorerSidebar( {\n\tselectedCategory,\n\tpatternCategories,\n\tonClickCategory,\n\tsearchValue,\n\tsetSearchValue,\n} ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__sidebar';\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t{ ! searchValue && (\n\t\t\t\t\n\t\t\t) }\n\t\t
    \n\t);\n}\n\nexport function TemplatesModal( { clientId, blockName, onRequestClose } ) {\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst onBlockPatternSelect = ( pattern ) => {\n\t\treplaceBlock( clientId, pattern.blocks );\n\t};\n\n\tconst [ searchValue, setSearchValue ] = useState();\n\tconst [ selectedCategory, setSelectedCategory ] = useState( 'all' );\n\n\tconst patterns = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn getPatternsByBlockTypes( blockName, rootClientId );\n\t\t},\n\t\t[ clientId, blockName ]\n\t);\n\n\tconst shownPatterns = patterns.filter( ( p ) => {\n\t\tif ( searchValue ) {\n\t\t\treturn p.title.toLowerCase().includes( searchValue );\n\t\t}\n\t\tif ( 'all' === selectedCategory ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn p.categories.includes( selectedCategory );\n\t} );\n\n\tconst patternCategories = [\n\t\t{\n\t\t\tslug: 'all',\n\t\t\tname: __( 'All', 'popper' ),\n\t\t},\n\t\t{\n\t\t\tslug: 'promo',\n\t\t\tname: __( 'Promo', 'popper' ),\n\t\t},\n\t\t{\n\t\t\tslug: 'top-bar',\n\t\t\tname: __( 'Top bar', 'popper' ),\n\t\t},\n\t\t{\n\t\t\tslug: 'ad-block',\n\t\t\tname: __( 'Ad Block', 'popper' ),\n\t\t},\n\t];\n\n\tconst patternCategories2 = patterns\n\t\t.map( ( p ) => {\n\t\t\treturn p.categories;\n\t\t} )\n\t\t.join( ',' )\n\t\t.split( ',' );\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tuseEntityBlockEditor,\n\tuseEntityRecord,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tButton,\n\tModal,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tToolbarGroup,\n\tToolbarButton,\n\tTextControl,\n\tPanelBody,\n\tSelectControl,\n\tDisabled,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\nimport { useState, useCallback, Fragment } from '@wordpress/element';\nimport { TemplatesModal } from '../form/edit/templates-modal';\n\nexport default function ReusableBlockEdit( {\n\tattributes: { ref },\n\tclientId,\n\tname,\n\tsetAttributes,\n} ) {\n\tconst [ isModalOpen, setModalOpen ] = useState( false );\n\tconst [ isDisabled, setIsDisabled ] = useState( true );\n\tconst [ titleTemp, createTitle ] = useState( '' );\n\n\tconst { onNavigateToEntityRecord } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blocks = getBlocks( clientId );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: blocks,\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, ref ]\n\t);\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'formello_form',\n\t\t} );\n\t};\n\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\tconst { record, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'formello_form',\n\t\tref\n\t);\n\n\tconst isMissing = hasResolved && ! record;\n\n\tconst options = useSelect( ( select ) => {\n\t\tconst forms = select( 'core' ).getEntityRecords(\n\t\t\t'postType',\n\t\t\t'formello_form',\n\t\t\t{\n\t\t\t\tper_page: -1,\n\t\t\t}\n\t\t);\n\t\tconst opts = [\n\t\t\t{ value: '', label: __( 'Select a form', 'formello' ) },\n\t\t];\n\n\t\tforms?.forEach( ( post ) => {\n\t\t\topts.push( {\n\t\t\t\tvalue: post.id,\n\t\t\t\tlabel: post.title.raw || __( 'No title', 'formello' ),\n\t\t\t} );\n\t\t} );\n\n\t\treturn opts;\n\t}, [] );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst create = useCallback(\n\t\tasync ( title = null ) => {\n\t\t\tconst template = {\n\t\t\t\ttitle,\n\t\t\t\tcontent: `\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t`,\n\t\t\t\tstatus: 'publish',\n\t\t\t\texcerpt: '',\n\t\t\t};\n\n\t\t\treturn saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'formello_form',\n\t\t\t\ttemplate\n\t\t\t).then( ( response ) => {\n\t\t\t\tsetAttributes( { ref: response.id } );\n\t\t\t\tsetIsDisabled( true );\n\t\t\t} );\n\t\t},\n\t\t[ saveEntityRecord, setAttributes ]\n\t);\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'formello_form',\n\t\t{ id: ref }\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'block-library-block__reusable-block-container',\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tvalue: blocks,\n\t\tonInput,\n\t\tonChange,\n\t\tallowedBlocks: [ 'formello/form' ],\n\t\trenderAppender: blocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n\n\tif ( ! ref || isMissing ) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetAttributes( { ref: parseInt( val ) } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{ 'widgets' === window.pagenow ? (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetAttributes( { ref: parseInt( val ) } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetModalOpen( 'templates' );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Open Library', 'formello' ) }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetModalOpen( 'create' );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Create a new form', 'formello' ) }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) }\n\t\t\t\t\n\t\t\t\t{ 'create' === isModalOpen && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetModalOpen( false );\n\t\t\t\t\t\t\tcreateTitle( '' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\toverlayClassName=\"reusable-blocks-menu-items__convert-modal\"\n\t\t\t\t\t>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tcreate( titleTemp );\n\t\t\t\t\t\t\t\tsetModalOpen( false );\n\t\t\t\t\t\t\t\tcreateTitle( '' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetModalOpen( false );\n\t\t\t\t\t\t\t\t\t\t\tcreateTitle( '' );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\t{ 'templates' === isModalOpen && (\n\t\t\t\t\t setModalOpen( false ) }\n\t\t\t\t\t\tblockName={ name }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t
    \n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t setAttributes( { ref: '' } ) }\n\t\t\t\t\t\t\tkey=\"create-new\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create a new form' ) }\n\t\t\t\t\t\t,\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Edit form', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { ref: parseInt( val ) } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n}\n","import { ReactComponent as Asterisk } from '../../assets/icons/asterisk.svg';\nimport { ReactComponent as Checkbox } from '../../assets/icons/checkbox.svg';\nimport { ReactComponent as Calendar } from '../../assets/icons/date-field.svg';\nimport { ReactComponent as Checkboxes } from '../../assets/icons/checkboxes.svg';\nimport { ReactComponent as Clock } from '../../assets/icons/clock-field.svg';\nimport { ReactComponent as Color } from '../../assets/icons/color-field.svg';\nimport { ReactComponent as Email } from '../../assets/icons/email-field.svg';\nimport { ReactComponent as Fieldset } from '../../assets/icons/fieldset.svg';\nimport { ReactComponent as Form } from '../../assets/icons/form.svg';\nimport { ReactComponent as GDPR } from '../../assets/icons/gdpr-field.svg';\nimport { ReactComponent as Hidden } from '../../assets/icons/hidden-field.svg';\nimport { ReactComponent as Input } from '../../assets/icons/text-field.svg';\nimport { ReactComponent as Logo } from '../../assets/icons/logo.svg';\nimport { ReactComponent as Number } from '../../assets/icons/number-field.svg';\nimport { ReactComponent as Password } from '../../assets/icons/password-field.svg';\nimport { ReactComponent as Range } from '../../assets/icons/range-field.svg';\nimport { ReactComponent as Radio } from '../../assets/icons/radio-field.svg';\nimport { ReactComponent as Radios } from '../../assets/icons/radio-buttons.svg';\nimport { ReactComponent as Select } from '../../assets/icons/select.svg';\nimport { ReactComponent as Tel } from '../../assets/icons/phone-field.svg';\nimport { ReactComponent as Textarea } from '../../assets/icons/textarea-field.svg';\nimport { ReactComponent as Url } from '../../assets/icons/url-field.svg';\n\nexport {\n\tAsterisk,\n\tCheckbox,\n\tCheckboxes,\n\tClock,\n\tColor,\n\tEmail,\n\tFieldset,\n\tForm,\n\tGDPR,\n\tHidden,\n\tInput,\n\tLogo,\n\tNumber,\n\tPassword,\n\tRadio,\n\tRange,\n\tRadios,\n\tSelect,\n\tTel,\n\tTextarea,\n\tUrl,\n\tCalendar,\n};\n","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"i18n\"];","// 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 { registerBlockType } from '@wordpress/blocks';\nimport metadata from './block.json';\nimport edit from './edit';\nimport { Logo } from '../../icons/icons';\n\n/**\n * Every block starts by registering a new block type definition.\n *\n * @see https://developer.wordpress.org/block-editor/reference-guides/block-api/block-registration/\n */\nregisterBlockType( metadata, {\n\ticon: Logo,\n\n\tedit,\n} );\n"],"names":["useSelect","useDispatch","store","blockEditorStore","__experimentalBlockPatternsList","BlockPatternsList","BlockContextProvider","Modal","SearchControl","Button","__","useState","jsx","_jsx","jsxs","_jsxs","PatternCategoriesList","selectedCategory","patternCategories","onClickCategory","baseClassName","className","children","Set","map","category","label","name","isPressed","slug","onClick","PatternsExplorerSearch","searchValue","setSearchValue","__nextHasNoMarginBottom","onChange","value","placeholder","PatternExplorerSidebar","TemplatesModal","clientId","blockName","onRequestClose","replaceBlock","onBlockPatternSelect","pattern","blocks","setSelectedCategory","patterns","select","getBlockRootClientId","getPatternsByBlockTypes","rootClientId","shownPatterns","filter","p","title","toLowerCase","includes","categories","patternCategories2","join","split","isFullScreen","closeLabel","postType","blockPatterns","onClickPattern","useEntityBlockEditor","useEntityRecord","coreStore","Placeholder","Spinner","__experimentalVStack","VStack","__experimentalHStack","HStack","ToolbarGroup","ToolbarButton","TextControl","PanelBody","SelectControl","Disabled","useInnerBlocksProps","RecursionProvider","useHasRecursion","InnerBlocks","BlockControls","InspectorControls","useBlockProps","Warning","useCallback","Fragment","ReusableBlockEdit","attributes","ref","setAttributes","isModalOpen","setModalOpen","isDisabled","setIsDisabled","titleTemp","createTitle","onNavigateToEntityRecord","canUser","getBlocks","getSettings","getBlockEditingMode","_getBlockEditingMode","canEdit","innerBlocks","userCanEdit","editingMode","handleEditOriginal","postId","hasAlreadyRendered","record","hasResolved","isMissing","options","forms","getEntityRecords","per_page","opts","forEach","post","push","id","raw","saveEntityRecord","create","template","content","status","excerpt","then","response","onInput","blockProps","innerBlocksProps","allowedBlocks","renderAppender","length","undefined","ButtonBlockAppender","initialOpen","val","parseInt","instructions","window","pagenow","isPrimary","icon","variant","overlayClassName","onSubmit","event","preventDefault","spacing","justify","type","actions","uniqueId","ReactComponent","Asterisk","Checkbox","Calendar","Checkboxes","Clock","Color","Email","Fieldset","Form","GDPR","Hidden","Input","Logo","Number","Password","Range","Radio","Radios","Select","Tel","Textarea","Url","registerBlockType","metadata","edit"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"blocks/library/index.js","mappings":"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","sources":["webpack://formello/./assets/icons/asterisk.svg","webpack://formello/./assets/icons/checkbox.svg","webpack://formello/./assets/icons/checkboxes.svg","webpack://formello/./assets/icons/clock-field.svg","webpack://formello/./assets/icons/color-field.svg","webpack://formello/./assets/icons/date-field.svg","webpack://formello/./assets/icons/email-field.svg","webpack://formello/./assets/icons/fieldset.svg","webpack://formello/./assets/icons/form.svg","webpack://formello/./assets/icons/gdpr-field.svg","webpack://formello/./assets/icons/hidden-field.svg","webpack://formello/./assets/icons/logo.svg","webpack://formello/./assets/icons/number-field.svg","webpack://formello/./assets/icons/password-field.svg","webpack://formello/./assets/icons/phone-field.svg","webpack://formello/./assets/icons/radio-buttons.svg","webpack://formello/./assets/icons/radio-field.svg","webpack://formello/./assets/icons/range-field.svg","webpack://formello/./assets/icons/select.svg","webpack://formello/./assets/icons/text-field.svg","webpack://formello/./assets/icons/textarea-field.svg","webpack://formello/./assets/icons/url-field.svg","webpack://formello/./src/blocks/form/edit/templates-modal.js","webpack://formello/./src/blocks/library/edit.js","webpack://formello/./src/icons/icons.js","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"blocks\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"coreData\"]","webpack://formello/external window [\"wp\",\"data\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/./src/blocks/library/index.js"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgAsterisk = function SvgAsterisk(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12.75 6h-1.5v4.19L8.288 7.226l-1.061 1.06 2.962 2.963H6v1.5h4.19l-2.963 2.962 1.06 1.061 2.963-2.962V18h1.5v-4.19l2.962 2.963 1.061-1.06-2.962-2.963H18v-1.5h-4.19l2.963-2.962-1.06-1.061-2.963 2.962V6Z\"\n })));\n};\nexport { SvgAsterisk as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjc1IDZIMTEuMjVWMTAuMTg5M0w4LjI4NzY5IDcuMjI3MDNMNy4yMjcwMyA4LjI4NzY5TDEwLjE4OTMgMTEuMjVINlYxMi43NUgxMC4xODkzTDcuMjI3MDMgMTUuNzEyM0w4LjI4NzY5IDE2Ljc3M0wxMS4yNSAxMy44MTA3VjE4SDEyLjc1VjEzLjgxMDdMMTUuNzEyMyAxNi43NzNMMTYuNzczIDE1LjcxMjNMMTMuODEwNyAxMi43NUgxOFYxMS4yNUgxMy44MTA3TDE2Ljc3MyA4LjI4NzY5TDE1LjcxMjMgNy4yMjcwM0wxMi43NSAxMC4xODkzVjZaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckbox = function SvgCheckbox(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z\"\n })));\n};\nexport { SvgCheckbox as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGc+CiAgICAgICAgPHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIvPgogICAgICAgIDxwYXRoIGQ9Ik00IDNoMTZhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6bTEgMnYxNGgxNFY1SDV6bTYuMDAzIDExTDYuNzYgMTEuNzU3bDEuNDE0LTEuNDE0IDIuODI5IDIuODI5IDUuNjU2LTUuNjU3IDEuNDE1IDEuNDE0TDExLjAwMyAxNnoiIC8+CiAgICA8L2c+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckboxes = function SvgCheckboxes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 24,\n height: 24,\n viewBox: \"0 0 300.396 300.396\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.048 216.749H4.076a3 3 0 0 0-3 3v59.973a3 3 0 0 0 3 3h59.972a3 3 0 0 0 3-3v-59.973c0-1.656-1.344-3-3-3zM64.048 17.675H4.076A4.075 4.075 0 0 0 0 21.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076V21.749a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986V36.809h29.849v29.852H19.138zM64.048 116.675H4.076A4.075 4.075 0 0 0 0 120.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076v-59.973a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986v-29.852h29.849v29.852H19.138zM297.396 231.036h-186.67a3 3 0 0 0-3 3v31.4a3 3 0 0 0 3 3h186.67c1.656 0 3-1.344 3-3v-31.4a3 3 0 0 0-3-3zM110.729 169.438h186.667a3 3 0 0 0 3-3v-31.406c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3zM110.729 70.438h186.667a3 3 0 0 0 3-3V36.032c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3z\"\n })));\n};\nexport { SvgCheckboxes as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiAKCSB2aWV3Qm94PSIwIDAgMzAwLjM5NiAzMDAuMzk2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNNjQuMDQ4LDIxNi43NDlINC4wNzZjLTEuNjU3LDAtMywxLjM0NC0zLDN2NTkuOTczYzAsMS42NTgsMS4zNDMsMywzLDNoNTkuOTcyYzEuNjU2LDAsMy0xLjM0MiwzLTN2LTU5Ljk3MwoJCUM2Ny4wNDgsMjE4LjA5Myw2NS43MDQsMjE2Ljc0OSw2NC4wNDgsMjE2Ljc0OXoiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTcuNjc1SDQuMDc2QzEuODI1LDE3LjY3NSwwLDE5LjQ5OSwwLDIxLjc0OXY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NlYyMS43NDlDNjguMTIzLDE5LjQ5OSw2Ni4yOTksMTcuNjc1LDY0LjA0OCwxNy42NzV6IE0xOS4xMzgsNjYuNjYxVjM2LjgwOWgyOS44NDl2MjkuODUySDE5LjEzOHoKCQkiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTE2LjY3NUg0LjA3NmMtMi4yNTEsMC00LjA3NiwxLjgyNC00LjA3Niw0LjA3NHY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NnYtNTkuOTczQzY4LjEyMywxMTguNDk5LDY2LjI5OSwxMTYuNjc1LDY0LjA0OCwxMTYuNjc1eiBNMTkuMTM4LDE2NS42NjF2LTI5Ljg1MmgyOS44NDl2MjkuODUyCgkJSDE5LjEzOHoiLz4KCTxwYXRoIGQ9Ik0yOTcuMzk2LDIzMS4wMzZoLTE4Ni42N2MtMS42NTcsMC0zLDEuMzQyLTMsM3YzMS40YzAsMS42NTYsMS4zNDMsMywzLDNoMTg2LjY3YzEuNjU2LDAsMy0xLjM0NCwzLTN2LTMxLjQKCQlDMzAwLjM5NiwyMzIuMzc4LDI5OS4wNTMsMjMxLjAzNiwyOTcuMzk2LDIzMS4wMzZ6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSwxNjkuNDM4aDE4Ni42NjdjMS42NTYsMCwzLTEuMzQyLDMtM3YtMzEuNDA2YzAtMS42NTYtMS4zNDQtMy0zLTNIMTEwLjcyOWMtMS42NTcsMC0zLDEuMzQ0LTMsM3YzMS40MDYKCQlDMTA3LjcyOSwxNjguMDk3LDEwOS4wNzEsMTY5LjQzOCwxMTAuNzI5LDE2OS40Mzh6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSw3MC40MzhoMTg2LjY2N2MxLjY1NiwwLDMtMS4zNDIsMy0zVjM2LjAzMmMwLTEuNjU2LTEuMzQ0LTMtMy0zSDExMC43MjljLTEuNjU3LDAtMywxLjM0NC0zLDN2MzEuNDA2CgkJQzEwNy43MjksNjkuMDk3LDEwOS4wNzEsNzAuNDM4LDExMC43MjksNzAuNDM4eiIvPgo8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgClockField = function SvgClockField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 -8 72 72\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 0a28 28 0 1 0 28 28A28 28 0 0 0 36 0Zm0 50a22 22 0 1 1 22-22 22.07 22.07 0 0 1-22 22Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.59 27.14H38V12a2.31 2.31 0 1 0-4.61 0v17.44a2.31 2.31 0 0 0 2.3 2.31h14.9a2.31 2.31 0 1 0 0-4.61Z\"\n })));\n};\nexport { SvgClockField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAtOCA3MiA3MiIgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Y2xvY2stbzwvdGl0bGU+PHBhdGggZD0iTTM2LDBBMjgsMjgsMCwxLDAsNjQsMjgsMjgsMjgsMCwwLDAsMzYsMFptMCw1MEEyMiwyMiwwLDEsMSw1OCwyOCwyMi4wNywyMi4wNywwLDAsMSwzNiw1MFoiLz48cGF0aCBkPSJNNTAuNTksMjcuMTRIMzhWMTJhMi4zMSwyLjMxLDAsMSwwLTQuNjEsMFYyOS40NGEyLjMxLDIuMzEsMCwwLDAsMi4zLDIuMzFINTAuNTlhMi4zMSwyLjMxLDAsMSwwLDAtNC42MVoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgColorField = function SvgColorField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 36 36\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.23 14.89c-2.1-.56-4.93 1.8-6.34.3-1.71-1.82 2.27-5.53 1.86-8.92-.33-2.78-3.51-4.08-6.66-4.1A18.5 18.5 0 0 0 7.74 7.59c-6.64 6.59-8.07 16-1.37 22.48 6.21 6 16.61 4.23 22.67-1.4a17.73 17.73 0 0 0 4.22-6.54c1.08-2.9 1.18-6.64-1.03-7.24ZM9.4 10.57a2.23 2.23 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.81 2.53 2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53ZM5.07 20.82a2.22 2.22 0 0 1 1.82-2.53 2.22 2.22 0 0 1 2.86 1.21A2.23 2.23 0 0 1 7.94 22a2.24 2.24 0 0 1-2.87-1.18Zm7 8.33a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.8-2.53 2.23 2.23 0 0 1 2.87 1.21A2.22 2.22 0 0 1 12 29.15ZM15 8.26a2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.82 2.53A2.21 2.21 0 0 1 15 8.26Zm5.82 22.19a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.85 2.53Zm5-10.46a3.2 3.2 0 0 1-1.69 1.76 3.53 3.53 0 0 1-1.4.3 2.78 2.78 0 0 1-2.56-1.5 2.49 2.49 0 0 1-.07-2 3.2 3.2 0 0 1 1.69-1.76 3 3 0 0 1 4 1.2 2.54 2.54 0 0 1 0 2.01Z\",\n \"data-name\": \"Layer 3\"\n })));\n};\nexport { SvgColorField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDM2IDM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoNPHRpdGxlPmNvbG9yX3BhbGV0dGVfc29saWQ8L3RpdGxlPgoNPGcgaWQ9ImI4OTRlMzJiLTA0MzctNDVhYi1iOGJmLTlmMGM0ZThmNTdjZCIgZGF0YS1uYW1lPSJMYXllciAzIj4KDTxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTguNSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMywwLDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywyLjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEsMS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDateField = function SvgDateField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38 4V0h-4v4H14V0h-4v4H0v44h48V4H38zm6 40H4V19.9h40V44zM4 15.9V8h6v4h4V8h20v4h4V8h6v7.9H4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 24h6v6h-6zM16.667 24h6v6h-6zM25.583 24h6v6h-6zM34.5 24h6v6h-6zM7.5 33h6v6h-6zM16.667 33h6v6h-6zM25.583 33h6v6h-6zM34.5 33h6v6h-6z\"\n })));\n};\nexport { SvgDateField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCFET0NUWVBFIHN2ZyAgUFVCTElDICctLy9XM0MvL0RURCBTVkcgMS4xLy9FTicgICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQnPgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0OCA0OCIgaWQ9IkxheWVyXzMiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08Zz4KDTxwYXRoIGQ9Ik0zOCw0VjBoLTR2NEgxNFYwaC00djRIMHYxMS45djRWNDhoNDhWMTkuOXYtNFY0SDM4eiBNNDQsNDRINFYxOS45aDQwVjQ0eiBNNCwxNS45VjhoNnY0aDRWOGgyMHY0aDRWOGg2djcuOUg0eiIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iNy41IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMTYuNjY3IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMjUuNTgzIiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMzQuNSIgeT0iMjQiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjcuNSIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjE2LjY2NyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjI1LjU4MyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjM0LjUiIHk9IjMzIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmailField = function SvgEmailField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2c5.43 0 9.848 4.327 9.996 9.72L22 12v1c0 2.173-1.523 4-3.5 4-1.173 0-2.186-.643-2.816-1.62a5 5 0 1 1 1.311-3.597L17 12v1c0 1.14.716 2 1.5 2 .745 0 1.428-.775 1.495-1.831L20 13v-1a8 8 0 1 0-4.677 7.28 1 1 0 1 1 .831 1.819A9.966 9.966 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2Zm0 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z\"\n })));\n};\nexport { SvgEmailField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik0xMiwyIEMxNy40MjkyMzk5LDIgMjEuODQ3OTMxNyw2LjMyNjY3MDc5IDIxLjk5NjE1ODIsMTEuNzIwMDk1MiBMMjIsMTIgTDIyLDEzIEMyMiwxNS4xNzI5MjA4IDIwLjQ3NzQzNCwxNyAxOC41LDE3IEMxNy4zMjY5MzkxLDE3IDE2LjMxMzk1MjksMTYuMzU3MDI0NCAxNS42ODM5MzgyLDE1LjM4MDMwMjQgQzE0Ljc3MDU5MywxNi4zNzU3ODIzIDEzLjQ1ODE5MzQsMTcgMTIsMTcgQzkuMjM4NTc2MjUsMTcgNywxNC43NjE0MjM3IDcsMTIgQzcsOS4yMzg1NzYyNSA5LjIzODU3NjI1LDcgMTIsNyBDMTQuNjg4NzU0Nyw3IDE2Ljg4MTgxODEsOS4xMjIzMDY3MSAxNi45OTUzODA1LDExLjc4MzExMDQgTDE3LDEyIEwxNywxMyBDMTcsMTQuMTQwNzg3NyAxNy43MTYwMTAzLDE1IDE4LjUsMTUgQzE5LjI0NDc5MDIsMTUgMTkuOTI4MjI5LDE0LjIyNDU2MDkgMTkuOTk0NzEwOSwxMy4xNjg5MzQxIEwyMCwxMyBMMjAsMTIgQzIwLDcuNTgxNzIyIDE2LjQxODI3OCw0IDEyLDQgQzcuNTgxNzIyLDQgNCw3LjU4MTcyMiA0LDEyIEM0LDE2LjQxODI3OCA3LjU4MTcyMiwyMCAxMiwyMCBDMTMuMTYzMDk0OCwyMCAxNC4yODkyODIyLDE5Ljc1MjI2MTggMTUuMzIyNTE1OSwxOS4yNzk4MzMxIEMxNS44MjQ3ODc2LDE5LjA1MDE3NzcgMTYuNDE4MTMxNywxOS4yNzExNzcgMTYuNjQ3Nzg3LDE5Ljc3MzQ0ODcgQzE2Ljg3NzQ0MjMsMjAuMjc1NzIwNSAxNi42NTY0NDMsMjAuODY5MDY0NiAxNi4xNTQxNzEzLDIxLjA5ODcxOTkgQzE0Ljg2MTIxOCwyMS42ODk5MDEgMTMuNDUxNTQ2MywyMiAxMiwyMiBDNi40NzcxNTI1LDIyIDIsMTcuNTIyODQ3NSAyLDEyIEMyLDYuNDc3MTUyNSA2LjQ3NzE1MjUsMiAxMiwyIFogTTEyLDkgQzEwLjM0MzE0NTgsOSA5LDEwLjM0MzE0NTggOSwxMiBDOSwxMy42NTY4NTQyIDEwLjM0MzE0NTgsMTUgMTIsMTUgQzEzLjY1Njg1NDIsMTUgMTUsMTMuNjU2ODU0MiAxNSwxMiBDMTUsMTAuMzQzMTQ1OCAxMy42NTY4NTQyLDkgMTIsOSBaIi8+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFieldset = function SvgFieldset(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 80,\n height: 80,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 20h1v1H1v-2h1zm20 0h-1v1h2v-2h-1zM1 5h1V4h1V3H1zm1 2H1v2h1zm0 4H1v2h1zm20-2h1V7h-1zm0 4h1v-2h-1zM2 15H1v2h1zm20 2h1v-2h-1zM5 4h2V3H5zm6 0V3H9v1zm2 0h2V3h-2zm6-1h-2v1h2zM5 21h2v-1H5zm4 0h2v-1H9zm4 0h2v-1h-2zm4 0h2v-1h-2zm4-17h1v1h1V3h-2zm-1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1V8a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19V8H5v2h14m1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1v-2a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19v-2H5v2h14\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgFieldset as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MHB4IiBoZWlnaHQ9IjgwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAyMGgxdjFIMXYtMmgxem0yMCAwaC0xdjFoMnYtMmgtMXpNMSA1aDFWNGgxVjNIMXptMSAySDF2Mmgxem0wIDRIMXYyaDF6bTIwLTJoMVY3aC0xem0wIDRoMXYtMmgtMXpNMiAxNUgxdjJoMXptMjAgMmgxdi0yaC0xek01IDRoMlYzSDV6bTYgMFYzSDl2MXptMiAwaDJWM2gtMnptNi0xaC0ydjFoMnpNNSAyMWgydi0xSDV6bTQgMGgydi0xSDl6bTQgMGgydi0xaC0yem00IDBoMnYtMWgtMnptNC0xN2gxdjFoMVYzaC0yem0tMSA0djJhMS4wMDEgMS4wMDEgMCAwIDEtMSAxSDVhMS4wMDEgMS4wMDEgMCAwIDEtMS0xVjhhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOVY4SDV2MmgxNG0xIDR2MmExLjAwMSAxLjAwMSAwIDAgMS0xIDFINWExLjAwMSAxLjAwMSAwIDAgMS0xLTF2LTJhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOXYtMkg1djJoMTQiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgForm = function SvgForm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.2 12.994a.312.312 0 0 1-.188-.191C1 12.76.999 12.113 1 6.982V1.208l.022-.045a.328.328 0 0 1 .14-.14L1.208 1h11.585l.05.025a.31.31 0 0 1 .136.135l.021.039v5.783c0 5.377 0 5.787-.013 5.831a.314.314 0 0 1-.142.162L12.8 13H7.012c-3.457.001-5.8 0-5.817-.01zm11.236-5.992V1.568H1.573v10.857c0 .01 1.099.01 5.436.01h5.432V7.003zM5.574 10.72v-.86h1.712v1.72H5.574v-.86zm1.144 0v-.284h-.576v.568h.576v-.284zm1.145 0v-.284h3.432v.568H7.863v-.284zM5.574 7.572V6.428h5.72v2.288h-5.72V7.572zm5.144 0V7H6.142v.566c0 .311 0 .569.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.289h2.28v.577h-2.28v-.288zM5.575 4.14V2.996h5.72v2.288h-5.72V4.14zm5.144 0v-.572H6.142v.566c0 .31 0 .568.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.284h2.28v.567h-2.28V4.14z\"\n })));\n};\nexport { SvgForm as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAxNCAxNCIgcm9sZT0iaW1nIiBmb2N1c2FibGU9ImZhbHNlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtIDEuMTk5Nzk5NSwxMi45OTM5MTYgYyAtMC4wNzkwMzQsLTAuMDIzIC0wLjE2NDA3MSwtMC4xMDkzIC0wLjE4Nzk4MTMsLTAuMTkxNCAtMC4wMTIwMDUsLTAuMDQyIC0wLjAxMzAwNiwtMC42ODk1IC0wLjAxMTAwNSwtNS44MjEwMDAzIGwgMCwtNS43NzQgMC4wMjIwMSwtMC4wNDUgYyAwLjAyODAxMiwtMC4wNTcgMC4wODMwMzYsLTAuMTExNyAwLjE0MDE2MDYsLTAuMTQwMSBsIDAuMDQ1MDE5LC0wLjAyMiA1Ljc5MjIwNDEsMCA1Ljc5MjMwNDEsMCAwLjA1MTAyLDAuMDI1IGMgMC4wNTYwMiwwLjAyNyAwLjEwMzY0NSwwLjA3NSAwLjEzNTQ1OSwwLjEzNDUgbCAwLjAyMTAxLDAuMDM5IDAsNS43ODMyIGMgMCw1LjM3NjUwMDMgMCw1Ljc4NjYwMDMgLTAuMDEzMDEsNS44MzExMDAzIC0wLjAxOTAxLDAuMDYgLTAuMDc5MDMsMC4xMjkxIC0wLjE0MTc2MSwwLjE2MjEgbCAtMC4wNDYwMiwwLjAyNCAtNS43ODc3MDIzLDAgYyAtMy40NTYyOTQyLDllLTQgLTUuNzk5MjA3LDAgLTUuODE2MDE0MywtMC4wMSB6IG0gMTEuMjM2NjU3NSwtNS45OTE5MDAzIDAsLTUuNDM0MiAtNS40MzE5NDgxLDAgLTUuNDMxODQ4MiwwIDAsNS40MjI5IGMgMCwyLjk4MjYgLTQuMDAyZS00LDUuNDI4MDAwMyAwLDUuNDM0MjAwMyAwLDAuMDEgMS4wOTkwNzUxLDAuMDExIDUuNDM2NTUwMiwwLjAxMSBsIDUuNDMyMTQ4MSwwIDAsLTUuNDM0MjAwMyB6IG0gLTYuODYxOTY2MywzLjcxODEwMDMgMCwtMC44NjAzMDAzIDAuODU1NzY5OSwwIDAuODU1NzcsMCAwLDAuODYwMzAwMyAwLDAuODYwMyAtMC44NTU3NywwIC0wLjg1NTc2OTksMCAwLC0wLjg2MDMgeiBtIDEuMTQzOTk0NSwwIDAsLTAuMjgzOCAtMC4yODgyMjQ2LDAgLTAuMjg4MzI0NiwwIDAsMC4yODM4IDAsMC4yODM3IDAuMjg4MzI0NiwwIDAuMjg4MjI0NiwwIDAsLTAuMjgzNyB6IG0gMS4xNDQwOTQ3LDAgMCwtMC4yODM4IDEuNzE2MDQxOCwwIDEuNzE2MDQxMywwIDAsMC4yODM4IDAsMC4yODM3IC0xLjcxNjA0MTMsMCAtMS43MTYwNDE4LDAgMCwtMC4yODM3IHogbSAtMi4yODgwODkyLC0zLjE0ODMwMDMgMCwtMS4xNDQxIDIuODYwMDM2NCwwIDIuODYwMTM1OSwwIDAsMS4xNDQxIDAsMS4xNDM5IC0yLjg2MDEzNTksMCAtMi44NjAwMzY0LDAgMCwtMS4xNDM5IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEzIDAsMC41Njg3IDAuMDEwMDA0LDAuNTcyIDAsMCAxLjAzMjk0NjYsMC4wMSAyLjI4ODA4OTIsMC4wMSBsIDIuMjgyMDg2OCwwIDAsLTAuNTcyIHogbSAtNy45OTkyNTc4LDAgMCwtMC4yODg0IDEuMTM5NTkyNywwIDEuMTM5NDkyNSwwIDAsMC4yODg0IDAsMC4yODgyIC0xLjEzOTQ5MjUsMCAtMS4xMzk1OTI3LDAgMCwtMC4yODgyIHogbSAyLjg1NTYzNDUsLTMuNDMyMSAwLC0xLjE0NDEgMi44NjAwMzY0LDAgMi44NjAxMzU5LDAgMCwxLjE0NDEgMCwxLjE0NCAtMi44NjAxMzU5LDAgLTIuODYwMDM2NCwwIDAsLTEuMTQ0IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEyIDAsMC41Njg2IDAuMDEwMDA0LDAuNTcxOSAwLDAgMS4wMzI5NDY2LDAuMDEgMi4yODgwODkyLDAuMDEgbCAyLjI4MjA4NjgsMCAwLC0wLjU3MTkgeiBtIC03Ljk5OTI1NzgsMCAwLC0wLjI4MzkgMS4xMzk1OTI3LDAgMS4xMzk0OTI1LDAgMCwwLjI4MzkgMCwwLjI4MzcgLTEuMTM5NDkyNSwwIC0xLjEzOTU5MjcsMCAwLC0wLjI4MzcgeiIvPjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGdprField = function SvgGdprField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2zm0 8h5s1-1 1-5c0 0-5-1-6-2v7H5c1 4 5 7 5 7v-7z\"\n })));\n};\nexport { SvgGdprField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+Cgk8cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KCTxnPgoJCTxwYXRoIGQ9Ik0xMCAyczMgMiA3IDJjMCAxMS03IDE0LTcgMTRTMyAxNSAzIDRjNCAwIDctMiA3LTJ6bTAgOGg1czEtMSAxLTVjMCAwLTUtMS02LTJ2N0g1YzEgNCA1IDcgNSA3di03eiIvPgoJPC9nPgo8L3N2Zz4K\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgHiddenField = function SvgHiddenField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 1000 1000\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M499 270q57 0 104.5 28t75.5 76 28 104q0 39-15 76l122 122q97-81 142-198-36-91-104-162T694 206q-93-40-195-40-86 0-166 29l90 90q38-15 76-15zM83 157l95 94 19 20q-52 40-91.5 93T42 478q36 91 104.5 162T304 750q93 40 195 40 95 0 183-35l139 139 53-53-738-737zm230 230 65 64q-4 15-4 27 0 34 17 62.5t45.5 45.5 62.5 17q14 0 27-3l65 64q-45 22-92 22-56 0-104-28t-76-76-28-104q0-47 22-91zm180-33 131 131v-6q0-34-16.5-63t-45-45.5T500 354h-7z\"\n })));\n};\nexport { SvgHiddenField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00OTkgMjcwcTU3IDAgMTA0LjUgMjh0NzUuNSA3NiAyOCAxMDRxMCAzOS0xNSA3NmwxMjIgMTIycTk3LTgxIDE0Mi0xOTgtMzYtOTEtMTA0LTE2MlQ2OTQgMjA2cS05My00MC0xOTUtNDAtODYgMC0xNjYgMjlsOTAgOTBxMzgtMTUgNzYtMTV6TTgzIDE1N2w5NSA5NCAxOSAyMHEtNTIgNDAtOTEuNSA5M1Q0MiA0NzhxMzYgOTEgMTA0LjUgMTYyVDMwNCA3NTBxOTMgNDAgMTk1IDQwIDk1IDAgMTgzLTM1bDEzOSAxMzkgNTMtNTMtNzM4LTczN3ptMjMwIDIzMGw2NSA2NHEtNCAxNS00IDI3IDAgMzQgMTcgNjIuNXQ0NS41IDQ1LjUgNjIuNSAxN3ExNCAwIDI3LTNsNjUgNjRxLTQ1IDIyLTkyIDIyLTU2IDAtMTA0LTI4dC03Ni03Ni0yOC0xMDRxMC00NyAyMi05MXptMTgwLTMzbDEzMSAxMzF2LTZxMC0zNC0xNi41LTYzdC00NS00NS41VDUwMCAzNTRoLTd6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 341.333,\n height: 341.333,\n viewBox: \"0 0 256 256\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#9b51e0\",\n d: \"M0 128v128h256V0H0v128zm145.6-66.6c2.9.7 7.8 2.8 11.1 4.5 6.7 3.6 18.3 14.6 16.8 16-2.6 2.3-31.9 23.1-32.6 23.1-.5 0-.9-.5-.9-1 0-.6-1.1-2.2-2.5-3.5-3-3.1-8.3-3.3-11.6-.6-2.2 1.8-2.4 2.7-2.7 14l-.4 12.1H136v37h-13v34H82v-44.8c0-35.5.3-46.1 1.5-51.7 3.9-18.6 18.2-34.2 35.6-38.9 6.9-1.9 19.9-2 26.5-.2z\"\n })));\n};\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwoJdmVyc2lvbj0iMS4wIgoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJd2lkdGg9IjI1Ni4wMDAwMDBwdCIKCWhlaWdodD0iMjU2LjAwMDAwMHB0IgoJdmlld0JveD0iMCAwIDI1Ni4wMDAwMDAgMjU2LjAwMDAwMCIKCXByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiCj4KCTxnCgkJdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjU2LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKCQlmaWxsPSIjOWI1MWUwIgoJCXN0cm9rZT0ibm9uZSIKCT4KCQk8cGF0aAoJCQlkPSJNMCAxMjgwIGwwIC0xMjgwIDEyODAgMCAxMjgwIDAgMCAxMjgwIDAgMTI4MCAtMTI4MCAwIC0xMjgwIDAgMAoJCQktMTI4MHogbTE0NTYgNjY2IGMyOSAtNyA3OCAtMjggMTExIC00NSA2NyAtMzYgMTgzIC0xNDYgMTY4IC0xNjAgLTI2IC0yMwoJCQktMzE5IC0yMzEgLTMyNiAtMjMxIC01IDAgLTkgNSAtOSAxMCAwIDYgLTExIDIyIC0yNSAzNSAtMzAgMzEgLTgzIDMzIC0xMTYgNgoJCQktMjIgLTE4IC0yNCAtMjcgLTI3IC0xNDAgbC00IC0xMjEgNjYgMCA2NiAwIDAgLTE4NSAwIC0xODUgLTY1IDAgLTY1IDAgMAoJCQktMTcwIDAgLTE3MCAtMjA1IDAgLTIwNSAwIDAgNDQ4IGMwIDM1NSAzIDQ2MSAxNSA1MTcgMzkgMTg2IDE4MiAzNDIgMzU2IDM4OQoJCQk2OSAxOSAxOTkgMjAgMjY1IDJ6IgoJCS8+Cgk8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgNumberField = function SvgNumberField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 52 52\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.8 49.5H7.2c-2.6 0-4.7-2.1-4.7-4.7V7.2c0-2.6 2.1-4.7 4.7-4.7h37.6c2.6 0 4.7 2.1 4.7 4.7v37.6c0 2.6-2.1 4.7-4.7 4.7zm-36-39.2v31.3c0 .9.7 1.6 1.6 1.6h31.3c.9 0 1.6-.7 1.6-1.6V10.3c0-.9-.7-1.6-1.6-1.6H10.4c-.9.1-1.6.8-1.6 1.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.2 20.3h-2.9l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.2 4.9h-5.8l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.3 4.9H18c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h3L19 28.7h-3.1c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h2.9L17 36.5v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h5.7L26 36.4v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h3.2c.2 0 .3-.1.4-.3l.6-2.2V29c0-.2-.1-.4-.4-.4h-3l1.4-5.6h3.1c.2 0 .3-.1.4-.3l.6-2.2v-.1c-.1.1-.3-.1-.5-.1zm-8.1 8.5h-5.8l1.4-5.6h5.7l-1.3 5.6z\"\n })));\n};\nexport { SvgNumberField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCgkgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNTIgNTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUyIDUyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZD0iTTQ0LjgsNDkuNUg3LjJjLTIuNiwwLTQuNy0yLjEtNC43LTQuN1Y3LjJjMC0yLjYsMi4xLTQuNyw0LjctNC43aDM3LjZjMi42LDAsNC43LDIuMSw0LjcsNC43djM3LjYKCUM0OS41LDQ3LjQsNDcuNCw0OS41LDQ0LjgsNDkuNXogTTguOCwxMC4zdjMxLjNjMCwwLjksMC43LDEuNiwxLjYsMS42aDMxLjNjMC45LDAsMS42LTAuNywxLjYtMS42VjEwLjNjMC0wLjktMC43LTEuNi0xLjYtMS42SDEwLjQKCUM5LjUsOC44LDguOCw5LjUsOC44LDEwLjN6Ii8+CjxwYXRoIGQ9Ik0zNi4yLDIwLjNoLTIuOWwxLjItNC44di0wLjFjMC0wLjItMC4xLTAuNC0wLjQtMC40aC0yLjNjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMS4yLDQuOWgtNS44bDEuMi00LjgKCXYtMC4xYzAtMC4yLTAuMS0wLjQtMC40LTAuNGgtMi4zYy0wLjIsMC0wLjMsMC4xLTAuNCwwLjNsLTEuMyw0LjloLTMuMmMtMC4yLDAtMC4zLDAuMS0wLjQsMC4zbC0wLjYsMi4ydjAuMWMwLDAuMiwwLjEsMC40LDAuNCwwLjQKCWgzbC0xLjQsNS42aC0zLjFjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMC42LDIuMnYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuOWwtMS4yLDQuOHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuMwoJYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wxLjMtNWg1LjdMMjYsMzYuNHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuM2MwLjIsMCwwLjMtMC4xLDAuNC0wLjNsMS4zLTVoMy4yYzAuMiwwLDAuMy0wLjEsMC40LTAuMwoJbDAuNi0yLjJWMjljMC0wLjItMC4xLTAuNC0wLjQtMC40aC0zbDEuNC01LjZoMy4xYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wwLjYtMi4ydi0wLjFDMzYuNiwyMC41LDM2LjQsMjAuMywzNi4yLDIwLjNMMzYuMiwyMC4zegoJIE0yOC4xLDI4LjhoLTUuOGwxLjQtNS42aDUuN0wyOC4xLDI4Ljh6Ii8+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPasswordField = function SvgPasswordField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.988 51.297c.375 0 .961-.14 1.57-.445C42.66 43.469 47.185 40.375 47.185 31.96V14.289c0-2.414-1.055-3.187-3-4.008-2.743-1.125-11.532-4.289-14.25-5.25-.633-.187-1.266-.328-1.946-.328-.656 0-1.289.14-1.922.328-2.718.985-11.507 4.149-14.25 5.25-1.945.797-3 1.594-3 4.008v17.672c0 8.414 4.547 11.484 17.625 18.89.61.305 1.172.446 1.547.446Zm-8.226-15.563v-9.093c0-1.524.586-2.32 1.828-2.508V21.32c0-4.312 2.601-7.218 6.398-7.218 3.82 0 6.399 2.906 6.399 7.218v2.79c1.265.187 1.851.984 1.851 2.53v9.094c0 1.758-.773 2.578-2.414 2.578H22.152c-1.617 0-2.39-.82-2.39-2.578Zm4.289-11.648 7.898-.023v-3c0-2.766-1.57-4.594-3.96-4.594-2.368 0-3.938 1.828-3.938 4.593Z\"\n })));\n};\nexport { SvgPasswordField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMjcuOTg4MyA1MS4yOTY5IEMgMjguMzYzMyA1MS4yOTY5IDI4Ljk0OTIgNTEuMTU2MiAyOS41NTg2IDUwLjg1MTYgQyA0Mi42NjAyIDQzLjQ2ODggNDcuMTgzNiA0MC4zNzUwIDQ3LjE4MzYgMzEuOTYwOSBMIDQ3LjE4MzYgMTQuMjg5MSBDIDQ3LjE4MzYgMTEuODc1MCA0Ni4xMjg5IDExLjEwMTYgNDQuMTgzNiAxMC4yODEzIEMgNDEuNDQxNCA5LjE1NjIgMzIuNjUyNCA1Ljk5MjIgMjkuOTMzNiA1LjAzMTMgQyAyOS4zMDA4IDQuODQzOCAyOC42NjgwIDQuNzAzMSAyNy45ODgzIDQuNzAzMSBDIDI3LjMzMjAgNC43MDMxIDI2LjY5OTIgNC44NDM4IDI2LjA2NjQgNS4wMzEzIEMgMjMuMzQ3NiA2LjAxNTYgMTQuNTU4NiA5LjE3OTcgMTEuODE2NCAxMC4yODEzIEMgOS44NzExIDExLjA3ODEgOC44MTY0IDExLjg3NTAgOC44MTY0IDE0LjI4OTEgTCA4LjgxNjQgMzEuOTYwOSBDIDguODE2NCA0MC4zNzUwIDEzLjM2MzMgNDMuNDQ1MyAyNi40NDE0IDUwLjg1MTYgQyAyNy4wNTA4IDUxLjE1NjIgMjcuNjEzMyA1MS4yOTY5IDI3Ljk4ODMgNTEuMjk2OSBaIE0gMTkuNzYxNyAzNS43MzQ0IEwgMTkuNzYxNyAyNi42NDA2IEMgMTkuNzYxNyAyNS4xMTcyIDIwLjM0NzYgMjQuMzIwMyAyMS41ODk4IDI0LjEzMjggTCAyMS41ODk4IDIxLjMyMDMgQyAyMS41ODk4IDE3LjAwNzggMjQuMTkxNCAxNC4xMDE2IDI3Ljk4ODMgMTQuMTAxNiBDIDMxLjgwODYgMTQuMTAxNiAzNC4zODY3IDE3LjAwNzggMzQuMzg2NyAyMS4zMjAzIEwgMzQuMzg2NyAyNC4xMDk0IEMgMzUuNjUyNCAyNC4yOTY5IDM2LjIzODMgMjUuMDkzOCAzNi4yMzgzIDI2LjY0MDYgTCAzNi4yMzgzIDM1LjczNDQgQyAzNi4yMzgzIDM3LjQ5MjIgMzUuNDY0OSAzOC4zMTI1IDMzLjgyNDIgMzguMzEyNSBMIDIyLjE1MjQgMzguMzEyNSBDIDIwLjUzNTEgMzguMzEyNSAxOS43NjE3IDM3LjQ5MjIgMTkuNzYxNyAzNS43MzQ0IFogTSAyNC4wNTA4IDI0LjA4NjAgTCAzMS45NDkyIDI0LjA2MjUgTCAzMS45NDkyIDIxLjA2MjUgQyAzMS45NDkyIDE4LjI5NjkgMzAuMzc4OSAxNi40Njg3IDI3Ljk4ODMgMTYuNDY4NyBDIDI1LjYyMTEgMTYuNDY4NyAyNC4wNTA4IDE4LjI5NjkgMjQuMDUwOCAyMS4wNjI1IFoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPhoneField = function SvgPhoneField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.156 37.762c6.774 6.773 15.024 12 21.75 12 3.024 0 5.672-1.055 7.805-3.399 1.242-1.383 2.016-3 2.016-4.593 0-1.172-.446-2.297-1.57-3.094l-7.173-5.11c-1.101-.75-2.015-1.125-2.859-1.125-1.078 0-2.016.61-3.094 1.664l-1.664 1.641a1.263 1.263 0 0 1-.89.375c-.375 0-.704-.14-.961-.258-1.43-.773-3.914-2.906-6.235-5.203-2.297-2.297-4.43-4.781-5.18-6.234a1.991 1.991 0 0 1-.257-.938c0-.304.093-.61.351-.867l1.64-1.71c1.056-1.079 1.665-2.017 1.665-3.095 0-.843-.375-1.757-1.148-2.859l-5.04-7.102c-.82-1.125-1.968-1.617-3.234-1.617-1.547 0-3.164.703-4.523 2.04-2.274 2.18-3.282 4.874-3.282 7.85 0 6.727 5.133 14.884 11.883 21.634Z\"\n })));\n};\nexport { SvgPhoneField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMTguMTU2MiAzNy43NjE3IEMgMjQuOTI5NyA0NC41MzUyIDMzLjE3OTcgNDkuNzYxNyAzOS45MDYyIDQ5Ljc2MTcgQyA0Mi45Mjk3IDQ5Ljc2MTcgNDUuNTc4MSA0OC43MDcwIDQ3LjcxMDkgNDYuMzYzMyBDIDQ4Ljk1MjggNDQuOTgwNSA0OS43MjY2IDQzLjM2MzMgNDkuNzI2NiA0MS43Njk1IEMgNDkuNzI2NiA0MC41OTc3IDQ5LjI4MTIgMzkuNDcyNyA0OC4xNTYyIDM4LjY3NTggTCA0MC45ODQzIDMzLjU2NjQgQyAzOS44ODI4IDMyLjgxNjQgMzguOTY4NyAzMi40NDE0IDM4LjEyNTAgMzIuNDQxNCBDIDM3LjA0NjggMzIuNDQxNCAzNi4xMDkzIDMzLjA1MDggMzUuMDMxMiAzNC4xMDU1IEwgMzMuMzY3MSAzNS43NDYxIEMgMzMuMTA5MyAzNi4wMDM5IDMyLjc4MTIgMzYuMTIxMSAzMi40NzY1IDM2LjEyMTEgQyAzMi4xMDE1IDM2LjEyMTEgMzEuNzczNCAzNS45ODA1IDMxLjUxNTYgMzUuODYzMyBDIDMwLjA4NTkgMzUuMDg5OCAyNy42MDE1IDMyLjk1NzEgMjUuMjgxMiAzMC42NjAyIEMgMjIuOTg0MyAyOC4zNjMzIDIwLjg1MTUgMjUuODc4OSAyMC4xMDE1IDI0LjQyNTggQyAxOS45NjA5IDI0LjE2ODAgMTkuODQzNyAyMy44Mzk4IDE5Ljg0MzcgMjMuNDg4MyBDIDE5Ljg0MzcgMjMuMTgzNiAxOS45Mzc1IDIyLjg3ODkgMjAuMTk1MyAyMi42MjExIEwgMjEuODM1OSAyMC45MTAyIEMgMjIuODkwNiAxOS44MzIwIDIzLjQ5OTkgMTguODk0NSAyMy40OTk5IDE3LjgxNjQgQyAyMy40OTk5IDE2Ljk3MjcgMjMuMTI1MCAxNi4wNTg2IDIyLjM1MTUgMTQuOTU3MSBMIDE3LjMxMjQgNy44NTU1IEMgMTYuNDkyMSA2LjczMDUgMTUuMzQzNyA2LjIzODMgMTQuMDc4MSA2LjIzODMgQyAxMi41MzEyIDYuMjM4MyAxMC45MTQwIDYuOTQxNCA5LjU1NDYgOC4yNzc0IEMgNy4yODEyIDEwLjQ1NzEgNi4yNzM0IDEzLjE1MjQgNi4yNzM0IDE2LjEyODkgQyA2LjI3MzQgMjIuODU1NSAxMS40MDYyIDMxLjAxMTcgMTguMTU2MiAzNy43NjE3IFoiLz48L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioButtons = function SvgRadioButtons(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 4h13v1H9zm0 17h13v-1H9zm0-8h13v-1H9zM7 4a3 3 0 1 1-3-3 3 3 0 0 1 3 3zM6 4a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2 2 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm-2-9a1 1 0 1 0 1 1 1 1 0 0 0-1-1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgRadioButtons as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05IDRoMTN2MUg5em0wIDE3aDEzdi0xSDl6bTAtOGgxM3YtMUg5ek03IDRhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzek02IDRhMiAyIDAgMSAwLTIgMiAyLjAwMyAyLjAwMyAwIDAgMCAyLTJ6bTEgOGEzIDMgMCAxIDEtMy0zIDMgMyAwIDAgMSAzIDN6bS0xIDBhMiAyIDAgMSAwLTIgMiAyIDIgMCAwIDAgMi0yem0xIDhhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzem0tMSAwYTIgMiAwIDEgMC0yIDIgMi4wMDMgMi4wMDMgMCAwIDAgMi0yem0tMi05YTEgMSAwIDEgMCAxIDEgMSAxIDAgMCAwLTEtMXoiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioField = function SvgRadioField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 4C5.32 4 4 5.32 4 7s1.32 3 3 3 3-1.32 3-3-1.32-3-3-3Zm0-3C3.7 1 1 3.7 1 7s2.7 6 6 6 6-2.7 6-6-2.7-6-6-6Zm0 10.8c-2.64 0-4.8-2.16-4.8-4.8 0-2.64 2.16-4.8 4.8-4.8 2.64 0 4.8 2.16 4.8 4.8 0 2.64-2.16 4.8-4.8 4.8z\"\n })));\n};\nexport { SvgRadioField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE0IDE0IiByb2xlPSJpbWciIGZvY3VzYWJsZT0iZmFsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gNyw0IEMgNS4zMiw0IDQsNS4zMiA0LDcgNCw4LjY4IDUuMzIsMTAgNywxMCA4LjY4LDEwIDEwLDguNjggMTAsNyAxMCw1LjMyIDguNjgsNCA3LDQgWiBNIDcsMSBDIDMuNywxIDEsMy43IDEsNyBjIDAsMy4zIDIuNyw2IDYsNiAzLjMsMCA2LC0yLjcgNiwtNiBDIDEzLDMuNyAxMC4zLDEgNywxIFogTSA3LDExLjggQyA0LjM2LDExLjggMi4yLDkuNjQgMi4yLDcgMi4yLDQuMzYgNC4zNiwyLjIgNywyLjIgYyAyLjY0LDAgNC44LDIuMTYgNC44LDQuOCAwLDIuNjQgLTIuMTYsNC44IC00LjgsNC44IHoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRangeField = function SvgRangeField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 11h-3.184a2.982 2.982 0 0 0-5.632 0H3a1 1 0 0 0 0 2h9.184a2.982 2.982 0 0 0 5.632 0H21a1 1 0 0 0 0-2Zm-6 2a1 1 0 1 1 1-1 1.001 1.001 0 0 1-1 1Z\"\n })));\n};\nexport { SvgRangeField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggZD0iTTIxLDExSDE3LjgxNTczYTIuOTgyMDgsMi45ODIwOCwwLDAsMC01LjYzMTQ2LDBIM2ExLDEsMCwwLDAsMCwyaDkuMTg0MzNhMi45ODIsMi45ODIsMCwwLDAsNS42MzE0LDBIMjFhMSwxLDAsMCwwLDAtMlptLTYsMmExLDEsMCwxLDEsMS0xQTEuMDAxMywxLjAwMTMsMCwwLDEsMTUsMTNaIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSelect = function SvgSelect(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 4H1c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1zm-5 7H1V5h9v6zm3-2.6L11 7h4l-2 1.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1e72bd\",\n d: \"M2 6h1v4H2V6z\"\n })));\n};\nexport { SvgSelect as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8cGF0aCBkPSJNMTUgNGgtMTRjLTAuNiAwLTEgMC40LTEgMXY2YzAgMC42IDAuNCAxIDEgMWgxNGMwLjYgMCAxLTAuNCAxLTF2LTZjMC0wLjYtMC40LTEtMS0xek0xMCAxMWgtOXYtNmg5djZ6TTEzIDguNGwtMi0xLjRoNGwtMiAxLjR6Ij48L3BhdGg+CjxwYXRoIGZpbGw9IiMxZTcyYmQiIGQ9Ik0yIDZoMXY0aC0xdi00eiI+PC9wYXRoPgo8L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextField = function SvgTextField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 9h2v30H8v3h8v-3h-2V9h2V6H8zM4 16h3.021v-4H0v24h7.042v-4H4zM16.979 12v4H44v16H16.958v4H48V12z\"\n })));\n};\nexport { SvgTextField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjgsOSAxMCw5IDEwLDEyIDEwLDE2IDEwLDM5IDgsMzkgOCw0MiAxNiw0MiAxNiwzOSAxNCwzOSAxNCwxNiAxNCwxMiAxNCw5IDE2LDkgMTYsNiA4LDYgICIvPgoNPHBvbHlnb24gcG9pbnRzPSI0LDE2IDcuMDIxLDE2IDcuMDIxLDEyIDAsMTIgMCwzNiA3LjA0MiwzNiA3LjA0MiwzMiA0LDMyICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTYuOTc5LDEyIDE2Ljk3OSwxNiA0NCwxNiA0NCwzMiAxNi45NTgsMzIgMTYuOTU4LDM2IDQ4LDM2IDQ4LDEyICAiLz4KDTwvZz4KDTwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextareaField = function SvgTextareaField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 33h-2V3h2V0H8v3h2v30H8v3h8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.031 6v4H44v34H4V10h2.938V6H0v42h48V6z\"\n })));\n};\nexport { SvgTextareaField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjE2LDMzIDE0LDMzIDE0LDEwIDE0LDYgMTQsMyAxNiwzIDE2LDAgOCwwIDgsMyAxMCwzIDEwLDYgMTAsMTAgMTAsMzMgOCwzMyA4LDM2IDE2LDM2ICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTcuMDMxLDYgMTcuMDMxLDEwIDQ0LDEwIDQ0LDQ0IDQsNDQgNCwxMCA2LjkzOCwxMCA2LjkzOCw2IDAsNiAwLDQ4IDQ4LDQ4IDQ4LDYgICIvPgoNPC9nPgoNPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgUrlField = function SvgUrlField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.794 12.794c-.478.475-1.113.737-1.794.737s-1.316-.262-1.794-.738a2.54 2.54 0 0 1 0-3.584L5.5 6.916 4.084 5.5 1.791 7.794a4.54 4.54 0 0 0 .003 6.413c.853.855 1.99 1.324 3.206 1.324s2.353-.469 3.206-1.325l2.294-2.294L9.084 10.5l-2.29 2.294zm7.412-11C13.353.938 12.216.469 11 .469S8.647.938 7.794 1.794L5.5 4.084 6.916 5.5 9.21 3.206c.474-.475 1.109-.737 1.79-.737s1.316.263 1.794.737a2.537 2.537 0 0 1 0 3.584L10.5 9.084l1.416 1.416 2.294-2.294a4.54 4.54 0 0 0-.004-6.412zm-2.5 3.912L10.29 4.29l-6 6 1.416 1.416 6-6z\"\n })));\n};\nexport { SvgUrlField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgaWQ9Imljb24tYm91bmQiIGZpbGw9Im5vbmUiIC8+CiAgPHBhdGggZD0iTTYuNzk0LDEyLjc5NEM2LjMxNiwxMy4yNjksNS42ODEsMTMuNTMxLDUsMTMuNTMxcy0xLjMxNi0wLjI2Mi0xLjc5NC0wLjczOGMtMC45ODctMC45ODgtMC45ODctMi41OTcsMC0zLjU4NEw1LjUsNi45MTYgTDQuMDg0LDUuNUwxLjc5MSw3Ljc5NGMtMS43NjYsMS43NjktMS43NjYsNC42NDQsMC4wMDMsNi40MTNDMi42NDcsMTUuMDYyLDMuNzg0LDE1LjUzMSw1LDE1LjUzMXMyLjM1My0wLjQ2OSwzLjIwNi0xLjMyNSBsMi4yOTQtMi4yOTRMOS4wODQsMTAuNUw2Ljc5NCwxMi43OTR6IE0xNC4yMDYsMS43OTRDMTMuMzUzLDAuOTM4LDEyLjIxNiwwLjQ2OSwxMSwwLjQ2OVM4LjY0NywwLjkzOCw3Ljc5NCwxLjc5NEw1LjUsNC4wODQgTDYuOTE2LDUuNWwyLjI5NC0yLjI5NEM5LjY4NCwyLjczMSwxMC4zMTksMi40NjksMTEsMi40NjlzMS4zMTYsMC4yNjMsMS43OTQsMC43MzdjMC45ODgsMC45ODcsMC45ODgsMi41OTcsMCwzLjU4NEwxMC41LDkuMDg0IGwxLjQxNiwxLjQxNmwyLjI5NC0yLjI5NEMxNS45NzUsNi40MzgsMTUuOTc1LDMuNTYyLDE0LjIwNiwxLjc5NHogTTExLjcwNiw1LjcwNmwtMS40MTYtMS40MTZsLTYsNmwxLjQxNiwxLjQxNkwxMS43MDYsNS43MDZ6IiAvPgo8L3N2Zz4=\";","/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tstore as blockEditorStore,\n\t__experimentalBlockPatternsList as BlockPatternsList,\n\tBlockContextProvider,\n} from '@wordpress/block-editor';\nimport { Modal, SearchControl, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\nfunction PatternCategoriesList( {\n\tselectedCategory,\n\tpatternCategories,\n\tonClickCategory,\n} ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__sidebar';\n\treturn (\n\t\t
    \n\t\t\t{ [ ...new Set( patternCategories ) ].map( ( category ) => {\n\t\t\t\treturn (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tonClickCategory( category.slug );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ category.name }\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t} ) }\n\t\t
    \n\t);\n}\n\nfunction PatternsExplorerSearch( { searchValue, setSearchValue } ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__search';\n\treturn (\n\t\t
    \n\t\t\t\n\t\t
    \n\t);\n}\n\nfunction PatternExplorerSidebar( {\n\tselectedCategory,\n\tpatternCategories,\n\tonClickCategory,\n\tsearchValue,\n\tsetSearchValue,\n} ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__sidebar';\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t{ ! searchValue && (\n\t\t\t\t\n\t\t\t) }\n\t\t
    \n\t);\n}\n\nexport function TemplatesModal( { clientId, blockName, onRequestClose } ) {\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst onBlockPatternSelect = ( pattern ) => {\n\t\treplaceBlock( clientId, pattern.blocks );\n\t};\n\n\tconst [ searchValue, setSearchValue ] = useState();\n\tconst [ selectedCategory, setSelectedCategory ] = useState( 'all' );\n\n\tconst patterns = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getPatternsByBlockTypes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\treturn getPatternsByBlockTypes( blockName, rootClientId );\n\t\t},\n\t\t[ clientId, blockName ]\n\t);\n\n\tconst shownPatterns = patterns.filter( ( p ) => {\n\t\tif ( searchValue ) {\n\t\t\treturn p.title.toLowerCase().includes( searchValue );\n\t\t}\n\t\tif ( 'all' === selectedCategory ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn p.categories.includes( selectedCategory );\n\t} );\n\n\tconst patternCategories = [\n\t\t{\n\t\t\tslug: 'all',\n\t\t\tname: __( 'All', 'popper' ),\n\t\t},\n\t\t{\n\t\t\tslug: 'promo',\n\t\t\tname: __( 'Promo', 'popper' ),\n\t\t},\n\t\t{\n\t\t\tslug: 'top-bar',\n\t\t\tname: __( 'Top bar', 'popper' ),\n\t\t},\n\t\t{\n\t\t\tslug: 'ad-block',\n\t\t\tname: __( 'Ad Block', 'popper' ),\n\t\t},\n\t];\n\n\tconst patternCategories2 = patterns\n\t\t.map( ( p ) => {\n\t\t\treturn p.categories;\n\t\t} )\n\t\t.join( ',' )\n\t\t.split( ',' );\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tuseEntityBlockEditor,\n\tuseEntityRecord,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tButton,\n\tModal,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tToolbarGroup,\n\tToolbarButton,\n\tTextControl,\n\tPanelBody,\n\tSelectControl,\n\tDisabled,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tWarning,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\n\nimport { useState, useCallback, Fragment } from '@wordpress/element';\nimport { TemplatesModal } from '../form/edit/templates-modal';\n\nexport default function ReusableBlockEdit( {\n\tattributes: { ref },\n\tclientId,\n\tname,\n\tsetAttributes,\n} ) {\n\tconst [ isModalOpen, setModalOpen ] = useState( false );\n\tconst [ isDisabled, setIsDisabled ] = useState( true );\n\tconst [ titleTemp, createTitle ] = useState( '' );\n\n\tconst { onNavigateToEntityRecord } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blocks = getBlocks( clientId );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: blocks,\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, ref ]\n\t);\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'formello_form',\n\t\t} );\n\t};\n\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\tconst { record, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'formello_form',\n\t\tref\n\t);\n\n\tconst isMissing = hasResolved && ! record;\n\n\tconst options = useSelect( ( select ) => {\n\t\tconst forms = select( 'core' ).getEntityRecords(\n\t\t\t'postType',\n\t\t\t'formello_form',\n\t\t\t{\n\t\t\t\tper_page: -1,\n\t\t\t}\n\t\t);\n\t\tconst opts = [\n\t\t\t{ value: '', label: __( 'Select a form', 'formello' ) },\n\t\t];\n\n\t\tforms?.forEach( ( post ) => {\n\t\t\topts.push( {\n\t\t\t\tvalue: post.id,\n\t\t\t\tlabel: post.title.raw || __( 'No title', 'formello' ),\n\t\t\t} );\n\t\t} );\n\n\t\treturn opts;\n\t}, [] );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst create = useCallback(\n\t\tasync ( title = null ) => {\n\t\t\tconst template = {\n\t\t\t\ttitle,\n\t\t\t\tcontent: `\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t`,\n\t\t\t\tstatus: 'publish',\n\t\t\t\texcerpt: '',\n\t\t\t};\n\n\t\t\treturn saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'formello_form',\n\t\t\t\ttemplate\n\t\t\t).then( ( response ) => {\n\t\t\t\tsetAttributes( { ref: response.id } );\n\t\t\t\tsetIsDisabled( true );\n\t\t\t} );\n\t\t},\n\t\t[ saveEntityRecord, setAttributes ]\n\t);\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'formello_form',\n\t\t{ id: ref }\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'block-library-block__reusable-block-container',\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tvalue: blocks,\n\t\tonInput,\n\t\tonChange,\n\t\tallowedBlocks: [ 'formello/form' ],\n\t\trenderAppender: blocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n\n\tif ( ! ref || isMissing ) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetAttributes( { ref: parseInt( val ) } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{ 'widgets' === window.pagenow ? (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetAttributes( { ref: parseInt( val ) } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetModalOpen( 'templates' );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Open Library', 'formello' ) }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetModalOpen( 'create' );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Create a new form', 'formello' ) }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) }\n\t\t\t\t\n\t\t\t\t{ 'create' === isModalOpen && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetModalOpen( false );\n\t\t\t\t\t\t\tcreateTitle( '' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\toverlayClassName=\"reusable-blocks-menu-items__convert-modal\"\n\t\t\t\t\t>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tcreate( titleTemp );\n\t\t\t\t\t\t\t\tsetModalOpen( false );\n\t\t\t\t\t\t\t\tcreateTitle( '' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetModalOpen( false );\n\t\t\t\t\t\t\t\t\t\t\tcreateTitle( '' );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\t{ 'templates' === isModalOpen && (\n\t\t\t\t\t setModalOpen( false ) }\n\t\t\t\t\t\tblockName={ name }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t
    \n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t setAttributes( { ref: '' } ) }\n\t\t\t\t\t\t\tkey=\"create-new\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create a new form' ) }\n\t\t\t\t\t\t,\n\t\t\t\t\t] }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Edit form', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { ref: parseInt( val ) } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t\n\t);\n}\n","import { ReactComponent as Asterisk } from '../../assets/icons/asterisk.svg';\nimport { ReactComponent as Checkbox } from '../../assets/icons/checkbox.svg';\nimport { ReactComponent as Calendar } from '../../assets/icons/date-field.svg';\nimport { ReactComponent as Checkboxes } from '../../assets/icons/checkboxes.svg';\nimport { ReactComponent as Clock } from '../../assets/icons/clock-field.svg';\nimport { ReactComponent as Color } from '../../assets/icons/color-field.svg';\nimport { ReactComponent as Email } from '../../assets/icons/email-field.svg';\nimport { ReactComponent as Fieldset } from '../../assets/icons/fieldset.svg';\nimport { ReactComponent as Form } from '../../assets/icons/form.svg';\nimport { ReactComponent as GDPR } from '../../assets/icons/gdpr-field.svg';\nimport { ReactComponent as Hidden } from '../../assets/icons/hidden-field.svg';\nimport { ReactComponent as Input } from '../../assets/icons/text-field.svg';\nimport { ReactComponent as Logo } from '../../assets/icons/logo.svg';\nimport { ReactComponent as Number } from '../../assets/icons/number-field.svg';\nimport { ReactComponent as Password } from '../../assets/icons/password-field.svg';\nimport { ReactComponent as Range } from '../../assets/icons/range-field.svg';\nimport { ReactComponent as Radio } from '../../assets/icons/radio-field.svg';\nimport { ReactComponent as Radios } from '../../assets/icons/radio-buttons.svg';\nimport { ReactComponent as Select } from '../../assets/icons/select.svg';\nimport { ReactComponent as Tel } from '../../assets/icons/phone-field.svg';\nimport { ReactComponent as Textarea } from '../../assets/icons/textarea-field.svg';\nimport { ReactComponent as Url } from '../../assets/icons/url-field.svg';\n\nexport {\n\tAsterisk,\n\tCheckbox,\n\tCheckboxes,\n\tClock,\n\tColor,\n\tEmail,\n\tFieldset,\n\tForm,\n\tGDPR,\n\tHidden,\n\tInput,\n\tLogo,\n\tNumber,\n\tPassword,\n\tRadio,\n\tRange,\n\tRadios,\n\tSelect,\n\tTel,\n\tTextarea,\n\tUrl,\n\tCalendar,\n};\n","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"i18n\"];","// 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 { registerBlockType } from '@wordpress/blocks';\nimport metadata from './block.json';\nimport edit from './edit';\nimport { Logo } from '../../icons/icons';\n\n/**\n * Every block starts by registering a new block type definition.\n *\n * @see https://developer.wordpress.org/block-editor/reference-guides/block-api/block-registration/\n */\nregisterBlockType( metadata, {\n\ticon: Logo,\n\n\tedit,\n} );\n"],"names":["useSelect","useDispatch","store","blockEditorStore","__experimentalBlockPatternsList","BlockPatternsList","BlockContextProvider","Modal","SearchControl","Button","__","useState","jsx","_jsx","jsxs","_jsxs","PatternCategoriesList","selectedCategory","patternCategories","onClickCategory","baseClassName","className","children","Set","map","category","label","name","isPressed","slug","onClick","PatternsExplorerSearch","searchValue","setSearchValue","__nextHasNoMarginBottom","onChange","value","placeholder","PatternExplorerSidebar","TemplatesModal","clientId","blockName","onRequestClose","replaceBlock","onBlockPatternSelect","pattern","blocks","setSelectedCategory","patterns","select","getBlockRootClientId","getPatternsByBlockTypes","rootClientId","shownPatterns","filter","p","title","toLowerCase","includes","categories","patternCategories2","join","split","isFullScreen","closeLabel","postType","blockPatterns","onClickPattern","useEntityBlockEditor","useEntityRecord","coreStore","Placeholder","Spinner","__experimentalVStack","VStack","__experimentalHStack","HStack","ToolbarGroup","ToolbarButton","TextControl","PanelBody","SelectControl","Disabled","useInnerBlocksProps","RecursionProvider","useHasRecursion","InnerBlocks","BlockControls","InspectorControls","useBlockProps","Warning","useCallback","Fragment","ReusableBlockEdit","attributes","ref","setAttributes","isModalOpen","setModalOpen","isDisabled","setIsDisabled","titleTemp","createTitle","onNavigateToEntityRecord","canUser","getBlocks","getSettings","getBlockEditingMode","_getBlockEditingMode","canEdit","innerBlocks","userCanEdit","editingMode","handleEditOriginal","postId","hasAlreadyRendered","record","hasResolved","isMissing","options","forms","getEntityRecords","per_page","opts","forEach","post","push","id","raw","saveEntityRecord","create","template","content","status","excerpt","then","response","onInput","blockProps","innerBlocksProps","allowedBlocks","renderAppender","length","undefined","ButtonBlockAppender","initialOpen","val","parseInt","instructions","window","pagenow","isPrimary","icon","variant","overlayClassName","onSubmit","event","preventDefault","spacing","justify","type","actions","uniqueId","ReactComponent","Asterisk","Checkbox","Calendar","Checkboxes","Clock","Color","Email","Fieldset","Form","GDPR","Hidden","Input","Logo","Number","Password","Range","Radio","Radios","Select","Tel","Textarea","Url","registerBlockType","metadata","edit"],"sourceRoot":""} \ No newline at end of file diff --git a/build/blocks/library/view.asset.php b/build/blocks/library/view.asset.php index 091c1c81..f6bb0e40 100644 --- a/build/blocks/library/view.asset.php +++ b/build/blocks/library/view.asset.php @@ -1 +1 @@ - array('@wordpress/interactivity'), 'version' => '4459dcb13948cc3e2ab1', 'type' => 'module'); + array('@wordpress/interactivity'), 'version' => '9385d59b3b567f6cfe35', 'type' => 'module'); diff --git a/build/blocks/library/view.js b/build/blocks/library/view.js index 6b09aeb7..13eb81d9 100644 --- a/build/blocks/library/view.js +++ b/build/blocks/library/view.js @@ -45,7 +45,7 @@ const config = { } }, tinyMce: { - selector: '.formello-rtf', + selector: 'textarea.formello-advanced', setup: editor => { editor.on('change', () => { window.tinymce.triggerSave(); @@ -142,10 +142,10 @@ __webpack_require__.r(__webpack_exports__); */ -const showLoading = e => { +const showLoading = (e, force) => { const btn = e.submitter || e.target.closest('button'); - btn.classList.toggle('wp-block-formello-button--loading'); - btn.toggleAttribute('disabled'); + btn.classList.toggle('wp-block-formello-button--loading', force); + btn.toggleAttribute('disabled', force); }; const formSubmit = async e => { const { @@ -161,23 +161,32 @@ const formSubmit = async e => { formData.append('_formello', config.nonce); formData.append('_formello_id', id); try { - showLoading(e); + showLoading(e, true); const req = await fetch(config.ajax_url, { method: 'POST', body: formData }); const res = await req.json(); context.response = res; - showLoading(e); + showLoading(e, false); response(ref, res); } catch (err) { - showLoading(e); - state.response = { - data: { - message: err - }, - success: false - }; + showLoading(e, false); + if (typeof err === 'string' || err instanceof String) { + context.response = { + data: { + message: err + }, + success: false + }; + } else { + context.response = { + data: { + message: 'An error occurred' + }, + success: false + }; + } } }; const captchaChallenge = async () => { @@ -215,10 +224,6 @@ const response = (ref, res) => { }, '300'); } if (data.debug && res.success) { - // eslint-disable-next-line no-console - const deguagData = ref.querySelector('.formello-debug'); - const position = data.hide ? 'beforebegin' : 'afterend'; - ref.insertAdjacentElement(position, deguagData); // eslint-disable-next-line no-console console.log(data.debug); } @@ -232,6 +237,9 @@ const { state } = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.store)('formello', { state: { + get pattern() { + return 'ciao'; + }, get debugData() { const context = (0,_wordpress_interactivity__WEBPACK_IMPORTED_MODULE_0__.getContext)(); return JSON.stringify(context.response.data.debug, undefined, 2); @@ -319,6 +327,26 @@ const { } window.tinymce?.init(_config__WEBPACK_IMPORTED_MODULE_1__.config.tinyMce); window.flatpickr?.('input.formello-advanced[type=date]'); + document.querySelectorAll('input[type="tel"].formello-advanced').forEach(el => { + window.intlTelInput?.(el, { + loadUtilsOnInit: 'https://cdn.jsdelivr.net/npm/intl-tel-input@24.6.0/build/js/utils.js', + hiddenInput(telInputName) { + return { + phone: telInputName + '_full', + country: telInputName + '_country_code' + }; + } + }); + }); + document.querySelectorAll('select.formello-advanced').forEach(el => { + new window.TomSelect(el, { + create: true, + sortField: { + field: 'text', + direction: 'asc' + } + }); + }); } } }); diff --git a/build/blocks/library/view.js.map b/build/blocks/library/view.js.map index 0bc8e6dd..eeb16c26 100644 --- a/build/blocks/library/view.js.map +++ b/build/blocks/library/view.js.map @@ -1 +1 @@ -{"version":3,"file":"blocks/library/view.js","mappings":";;;;;;;;;;;;;AAAO,MAAMA,MAAM,GAAG;EACrBC,OAAO,EAAE;IACRC,aAAa,EAAE,IAAI;IACnBC,iBAAiB,EAAE;MAClBC,aAAaA,CAAEC,KAAK,EAAG;QACtB;QACA;QACA,MAAMC,QAAQ,GAAGD,KAAK,CAACE,YAAY,CAAE,oBAAqB,CAAC;QAC3D,IAAK,CAAED,QAAQ,EAAG;UACjB,OAAO,KAAK;QACb;;QAEA;QACA,MAAME,UAAU,GAAGH,KAAK,CAACI,IAAI,CAACC,aAAa,CAC1C,QAAQ,GAAGJ,QAAQ,GAAG,GACvB,CAAC;QACD,IAAK,CAAEE,UAAU,EAAG;UACnB,OAAO,KAAK;QACb;;QAEA;QACA;QACA;QACA,OAAOA,UAAU,CAACG,KAAK,KAAKN,KAAK,CAACM,KAAK;MACxC;IACD,CAAC;IACDC,aAAa,EAAE,sBAAsB;IAAE;IACvCC,QAAQ,EAAE;MACTT,aAAaA,CAAEC,KAAK,EAAG;QACtB,MAAMS,aAAa,GAAGT,KAAK,CAACE,YAAY,CACvC,+BACD,CAAC;QACD,OAAOO,aAAa,GACjBA,aAAa,GACb,oCAAoC;MACxC;IACD;EACD,CAAC;EACDC,OAAO,EAAE;IACRT,QAAQ,EAAE,eAAe;IACzBU,KAAK,EAAIC,MAAM,IAAM;MACpBA,MAAM,CAACC,EAAE,CAAE,QAAQ,EAAE,MAAM;QAC1BC,MAAM,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC;MAC7B,CAAE,CAAC;IACJ,CAAC;IACDC,OAAO,EAAE,KAAK;IACdC,OAAO,EAAE,CACR,gEAAgE,EAChE,4CAA4C,EAC5C,sDAAsD,CACtD;IACDC,OAAO,EACN,iBAAiB,GACjB,6CAA6C,GAC7C,yEAAyE;IAC1EC,aAAa,EACZ;EACF;AACD,CAAC;;;;;;;;;;AC1DD,eAAe,YAAY,6BAA6B;AACxD;AACA;;;;;;SCFA;SACA;;SAEA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;SACA;;SAEA;SACA;;SAEA;SACA;SACA;;;;;UCtBA;UACA;UACA;UACA;UACA,yCAAyC,wCAAwC;UACjF;UACA;UACA;;;;;UCPA;;;;;UCAA;UACA;UACA;UACA,uDAAuD,iBAAiB;UACxE;UACA,gDAAgD,aAAa;UAC7D;;;;;;;;;;;;;ACNA;AACA;AACA;AAMkC;AACY;AAE9C,MAAMM,WAAW,GAAKC,CAAC,IAAM;EAC5B,MAAMC,GAAG,GAAGD,CAAC,CAACE,SAAS,IAAIF,CAAC,CAACG,MAAM,CAACC,OAAO,CAAE,QAAS,CAAC;EACvDH,GAAG,CAACI,SAAS,CAACC,MAAM,CAAE,mCAAoC,CAAC;EAC3DL,GAAG,CAACM,eAAe,CAAE,UAAW,CAAC;AAClC,CAAC;AAED,MAAMC,UAAU,GAAG,MAAQR,CAAC,IAAM;EACjC,MAAM;IAAES;EAAI,CAAC,GAAGb,oEAAU,CAAC,CAAC;EAC5B,MAAMc,OAAO,GAAGf,oEAAU,CAAC,CAAC;EAC5B,MAAM3B,MAAM,GAAG6B,mEAAS,CAAC,CAAC;EAC1B,MAAM;IAAEc;EAAG,CAAC,GAAGF,GAAG,CAACG,OAAO;EAC1B,MAAMC,QAAQ,GAAG,IAAIC,QAAQ,CAAEL,GAAI,CAAC;EACpCI,QAAQ,CAACE,MAAM,CAAE,QAAQ,EAAE,UAAW,CAAC;EACvCF,QAAQ,CAACE,MAAM,CAAE,WAAW,EAAE/C,MAAM,CAACgD,KAAM,CAAC;EAC5CH,QAAQ,CAACE,MAAM,CAAE,cAAc,EAAEJ,EAAG,CAAC;EAErC,IAAI;IACHZ,WAAW,CAAEC,CAAE,CAAC;IAChB,MAAMiB,GAAG,GAAG,MAAMC,KAAK,CAAElD,MAAM,CAACmD,QAAQ,EAAE;MACzCC,MAAM,EAAE,MAAM;MACdC,IAAI,EAAER;IACP,CAAE,CAAC;IAEH,MAAMS,GAAG,GAAG,MAAML,GAAG,CAACM,IAAI,CAAC,CAAC;IAC5Bb,OAAO,CAACc,QAAQ,GAAGF,GAAG;IAEtBvB,WAAW,CAAEC,CAAE,CAAC;IAChBwB,QAAQ,CAAEf,GAAG,EAAEa,GAAI,CAAC;EACrB,CAAC,CAAC,OAAQG,GAAG,EAAG;IACf1B,WAAW,CAAEC,CAAE,CAAC;IAChB0B,KAAK,CAACF,QAAQ,GAAG;MAAEG,IAAI,EAAE;QAAEC,OAAO,EAAEH;MAAI,CAAC;MAAEI,OAAO,EAAE;IAAM,CAAC;EAC5D;AACD,CAAC;AAED,MAAMC,gBAAgB,GAAG,MAAAA,CAAA,KAAY;EACpC,MAAM9D,MAAM,GAAG6B,mEAAS,CAAC,CAAC;EAC1B,MAAMa,OAAO,GAAGf,oEAAU,CAAC,CAAC;EAC5B,IACCe,OAAO,CAACqB,cAAc,IACtB,WAAW,KAAKrB,OAAO,CAACsB,WAAW,IACnC,GAAG,KAAKhE,MAAM,CAACiE,QAAQ,CAACC,SAAS,CAACC,OAAO,EACxC;IACD,OAAOhD,MAAM,CAACiD,UAAU,CAACC,OAAO,CAAC,CAAC;EACnC;EACA,IAAK3B,OAAO,CAACqB,cAAc,IAAI,UAAU,KAAKrB,OAAO,CAACsB,WAAW,EAAG;IACnE,MAAM7C,MAAM,CAACmD,QAAQ,CAACD,OAAO,CAAE;MAAEE,KAAK,EAAE;IAAK,CAAE,CAAC;EACjD;AACD,CAAC;AAED,MAAMf,QAAQ,GAAGA,CAAEf,GAAG,EAAEa,GAAG,KAAM;EAChC,MAAM;IAAEK;EAAK,CAAC,GAAGL,GAAG;;EAEpB;EACA,IAAKK,IAAI,CAACa,YAAY,IAAIlB,GAAG,CAACO,OAAO,EAAG;IACvC1C,MAAM,CAACsD,QAAQ,GAAGd,IAAI,CAACa,YAAY;IACnC,OAAO,KAAK;EACb;;EAEA;EACA,IAAKb,IAAI,CAACe,IAAI,IAAIpB,GAAG,CAACO,OAAO,EAAG;IAC/B,MAAMc,GAAG,GAAGlC,GAAG,CAAC/B,aAAa,CAAE,mBAAoB,CAAC;IACpD+B,GAAG,CAACmC,qBAAqB,CAAE,aAAa,EAAED,GAAI,CAAC;IAC/CE,UAAU,CAAE,MAAM;MACjBpC,GAAG,CAACqC,KAAK,CAACC,OAAO,GAAG,MAAM;MAC1BJ,GAAG,CAACK,cAAc,CAAE;QACnBC,QAAQ,EAAE;MACX,CAAE,CAAC;IACJ,CAAC,EAAE,KAAM,CAAC;EACX;EAEA,IAAKtB,IAAI,CAACuB,KAAK,IAAI5B,GAAG,CAACO,OAAO,EAAG;IAChC;IACA,MAAMsB,UAAU,GAAG1C,GAAG,CAAC/B,aAAa,CAAE,iBAAkB,CAAC;IACzD,MAAM0E,QAAQ,GAAGzB,IAAI,CAACe,IAAI,GAAG,aAAa,GAAG,UAAU;IACvDjC,GAAG,CAACmC,qBAAqB,CAAEQ,QAAQ,EAAED,UAAW,CAAC;IACjD;IACAE,OAAO,CAACC,GAAG,CAAE3B,IAAI,CAACuB,KAAM,CAAC;EAC1B;;EAEA;EACA,IAAK5B,GAAG,CAACO,OAAO,EAAG;IAClBpB,GAAG,CAAC8C,KAAK,CAAC,CAAC;EACZ;AACD,CAAC;AAED,MAAM;EAAE7B;AAAM,CAAC,GAAGhC,+DAAK,CAAE,UAAU,EAAE;EACpCgC,KAAK,EAAE;IACN,IAAI8B,SAASA,CAAA,EAAG;MACf,MAAM9C,OAAO,GAAGf,oEAAU,CAAC,CAAC;MAC5B,OAAO8D,IAAI,CAACC,SAAS,CAAEhD,OAAO,CAACc,QAAQ,CAACG,IAAI,CAACuB,KAAK,EAAES,SAAS,EAAE,CAAE,CAAC;IACnE,CAAC;IACD,IAAI/B,OAAOA,CAAA,EAAG;MACb,MAAMlB,OAAO,GAAGf,oEAAU,CAAC,CAAC;MAC5B,OAAOe,OAAO,CAACc,QAAQ,EAAEG,IAAI,EAAEC,OAAO,IAAI,EAAE;IAC7C,CAAC;IACD,IAAIgC,MAAMA,CAAA,EAAG;MACZ,MAAMlD,OAAO,GAAGf,oEAAU,CAAC,CAAC;MAC5B,OAAOe,OAAO,CAACc,QAAQ,EAAEG,IAAI,EAAEiC,MAAM,IAAI,EAAE;IAC5C;EACD,CAAC;EACDC,OAAO,EAAE;IACRC,eAAe,EAAI9D,CAAC,IAAM;MACzB,MAAM;QAAES;MAAI,CAAC,GAAGb,oEAAU,CAAC,CAAC;MAC5B,MAAMc,OAAO,GAAGf,oEAAU,CAAC,CAAC;MAC5BK,CAAC,CAAC+D,cAAc,CAAC,CAAC;MAElB,IAAKrD,OAAO,CAACsD,kBAAkB,EAAG;QACjC,MAAMJ,MAAM,GAAGlD,OAAO,CAACuD,SAAS,CAACC,WAAW,CAC3CzD,GAAG,CAACL,OAAO,CAAE,MAAO,CACrB,CAAC;QACD,IAAKwD,MAAM,CAACO,MAAM,EAAG;UACpBP,MAAM,CAAE,CAAC,CAAE,CAACZ,cAAc,CAAE;YAC3BC,QAAQ,EAAE,QAAQ;YAClBmB,KAAK,EAAE,KAAK;YACZC,MAAM,EAAE;UACT,CAAE,CAAC;UACH;QACD;MACD;MAEAtE,WAAW,CAAEC,CAAE,CAAC;MAEhB8B,gBAAgB,CAAC,CAAC,CAACwC,IAAI,CAAE,MAAM;QAC9BvE,WAAW,CAAEC,CAAE,CAAC;QAChBS,GAAG,CAACL,OAAO,CAAE,MAAO,CAAC,CAACmE,aAAa,CAAE9D,GAAI,CAAC;MAC3C,CAAE,CAAC;IACJ,CAAC;IACD+D,QAAQ,EAAIxE,CAAC,IAAM;MAClBA,CAAC,CAAC+D,cAAc,CAAC,CAAC;MAClB/D,CAAC,CAACyE,eAAe,CAAC,CAAC;MAEnB,MAAM/D,OAAO,GAAGf,oEAAU,CAAC,CAAC;MAC5B,IAAKe,OAAO,CAACsD,kBAAkB,EAAG;QACjC,MAAM;UAAEvD;QAAI,CAAC,GAAGb,oEAAU,CAAC,CAAC;QAC5B,MAAMgE,MAAM,GAAGlD,OAAO,CAACuD,SAAS,CAACC,WAAW,CAAEzD,GAAI,CAAC;QACnD,IAAKmD,MAAM,CAACO,MAAM,EAAG;UACpBP,MAAM,CAAE,CAAC,CAAE,CAACZ,cAAc,CAAE;YAC3BC,QAAQ,EAAE,QAAQ;YAClBmB,KAAK,EAAE,KAAK;YACZC,MAAM,EAAE;UACT,CAAE,CAAC;UACH;QACD;MACD;MAEA7D,UAAU,CAAER,CAAE,CAAC;IAChB,CAAC;IACD0E,SAAS,EAAEA,CAAA,KAAM;MAChB,MAAM;QAAEjE;MAAI,CAAC,GAAGb,oEAAU,CAAC,CAAC;MAC5B,IAAK,QAAQ,KAAKa,GAAG,CAACkE,kBAAkB,EAAEC,QAAQ,EAAG;QACpDnE,GAAG,CAACkE,kBAAkB,CAAChG,KAAK,GAAG8B,GAAG,CAAC9B,KAAK;MACzC;IACD;EACD,CAAC;EACDkG,SAAS,EAAE;IACVC,IAAI,EAAEA,CAAA,KAAM;MACX,MAAMpE,OAAO,GAAGf,oEAAU,CAAC,CAAC;MAE5B,IAAKe,OAAO,CAACsD,kBAAkB,EAAG;QACjC,MAAMhG,MAAM,GAAG6B,mEAAS,CAAC,CAAC;QAC1B,MAAM;UAAEY;QAAI,CAAC,GAAGb,oEAAU,CAAC,CAAC;QAC5B,MAAM;UAAEe;QAAG,CAAC,GAAGF,GAAG,CAACG,OAAO;QAC1BF,OAAO,CAACuD,SAAS,GAAG,IAAI9E,MAAM,CAAC4F,OAAO,CACrC,oCAAqCpE,EAAE,IAAK,EAC5C;UACC,GAAGb,2CAAQ,CAAC7B,OAAO;UACnBY,QAAQ,EAAE;YACT,GAAGiB,2CAAQ,CAAC7B,OAAO,CAACY,QAAQ;YAC5B,GAAGb,MAAM,CAACiE,QAAQ,CAACpD;UACpB;QACD,CACD,CAAC;MACF;MACAM,MAAM,CAACC,OAAO,EAAE0F,IAAI,CAAEhF,2CAAQ,CAACf,OAAQ,CAAC;MACxCI,MAAM,CAAC6F,SAAS,GAAI,oCAAqC,CAAC;IAC3D;EACD;AACD,CAAE,CAAC,C","sources":["webpack://formello/./src/blocks/library/config.js","webpack://formello/external module \"@wordpress/interactivity\"","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/./src/blocks/library/view.js"],"sourcesContent":["export const config = {\n\tbouncer: {\n\t\tdisableSubmit: true,\n\t\tcustomValidations: {\n\t\t\tvalueMismatch( field ) {\n\t\t\t\t// Look for a selector for a field to compare\n\t\t\t\t// If there isn't one, return false (no error)\n\t\t\t\tconst selector = field.getAttribute( 'data-bouncer-match' );\n\t\t\t\tif ( ! selector ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Get the field to compare\n\t\t\t\tconst otherField = field.form.querySelector(\n\t\t\t\t\t'[name=' + selector + ']'\n\t\t\t\t);\n\t\t\t\tif ( ! otherField ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Compare the two field values\n\t\t\t\t// We use a negative comparison here because if they do match, the field validates\n\t\t\t\t// We want to return true for failures, which can be confusing\n\t\t\t\treturn otherField.value !== field.value;\n\t\t\t},\n\t\t},\n\t\tmessageCustom: 'data-bouncer-message', // The data attribute to use for custom error messages\n\t\tmessages: {\n\t\t\tvalueMismatch( field ) {\n\t\t\t\tconst customMessage = field.getAttribute(\n\t\t\t\t\t'data-bouncer-mismatch-message'\n\t\t\t\t);\n\t\t\t\treturn customMessage\n\t\t\t\t\t? customMessage\n\t\t\t\t\t: 'Please make sure the fields match.';\n\t\t\t},\n\t\t},\n\t},\n\ttinyMce: {\n\t\tselector: '.formello-rtf',\n\t\tsetup: ( editor ) => {\n\t\t\teditor.on( 'change', () => {\n\t\t\t\twindow.tinymce.triggerSave();\n\t\t\t} );\n\t\t},\n\t\tmenubar: false,\n\t\tplugins: [\n\t\t\t'advlist autolink lists link image charmap print preview anchor',\n\t\t\t'searchreplace visualblocks code fullscreen',\n\t\t\t'insertdatetime media table paste code help wordcount',\n\t\t],\n\t\ttoolbar:\n\t\t\t'formatselect | ' +\n\t\t\t'bold italic underline | bullist numlist | ' +\n\t\t\t'alignleft aligncenter alignright alignjustify | link unlink | undo redo',\n\t\tcontent_style:\n\t\t\t'body { font-family:Helvetica,Arial,sans-serif; font-size:14px }',\n\t},\n};\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__;","// 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","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","/**\n * WordPress dependencies\n */\nimport {\n\tstore,\n\tgetContext,\n\tgetElement,\n\tgetConfig,\n} from '@wordpress/interactivity';\nimport { config as jsConfig } from './config';\n\nconst showLoading = ( e ) => {\n\tconst btn = e.submitter || e.target.closest( 'button' );\n\tbtn.classList.toggle( 'wp-block-formello-button--loading' );\n\tbtn.toggleAttribute( 'disabled' );\n};\n\nconst formSubmit = async ( e ) => {\n\tconst { ref } = getElement();\n\tconst context = getContext();\n\tconst config = getConfig();\n\tconst { id } = ref.dataset;\n\tconst formData = new FormData( ref );\n\tformData.append( 'action', 'formello' );\n\tformData.append( '_formello', config.nonce );\n\tformData.append( '_formello_id', id );\n\n\ttry {\n\t\tshowLoading( e );\n\t\tconst req = await fetch( config.ajax_url, {\n\t\t\tmethod: 'POST',\n\t\t\tbody: formData,\n\t\t} );\n\n\t\tconst res = await req.json();\n\t\tcontext.response = res;\n\n\t\tshowLoading( e );\n\t\tresponse( ref, res );\n\t} catch ( err ) {\n\t\tshowLoading( e );\n\t\tstate.response = { data: { message: err }, success: false };\n\t}\n};\n\nconst captchaChallenge = async () => {\n\tconst config = getConfig();\n\tconst context = getContext();\n\tif (\n\t\tcontext.captchaEnabled &&\n\t\t'reCaptcha' === context.captchaType &&\n\t\t'3' === config.settings.reCaptcha.version\n\t) {\n\t\treturn window.grecaptcha.execute();\n\t}\n\tif ( context.captchaEnabled && 'hCaptcha' === context.captchaType ) {\n\t\tawait window.hcaptcha.execute( { async: true } );\n\t}\n};\n\nconst response = ( ref, res ) => {\n\tconst { data } = res;\n\n\t// Should we redirect?\n\tif ( data.redirect_url && res.success ) {\n\t\twindow.location = data.redirect_url;\n\t\treturn false;\n\t}\n\n\t// Should we hide form?\n\tif ( data.hide && res.success ) {\n\t\tconst msg = ref.querySelector( '.formello-message' );\n\t\tref.insertAdjacentElement( 'beforebegin', msg );\n\t\tsetTimeout( () => {\n\t\t\tref.style.display = 'none';\n\t\t\tmsg.scrollIntoView( {\n\t\t\t\tbehavior: 'smooth',\n\t\t\t} );\n\t\t}, '300' );\n\t}\n\n\tif ( data.debug && res.success ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconst deguagData = ref.querySelector( '.formello-debug' );\n\t\tconst position = data.hide ? 'beforebegin' : 'afterend';\n\t\tref.insertAdjacentElement( position, deguagData );\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.log( data.debug );\n\t}\n\n\t// clear form\n\tif ( res.success ) {\n\t\tref.reset();\n\t}\n};\n\nconst { state } = store( 'formello', {\n\tstate: {\n\t\tget debugData() {\n\t\t\tconst context = getContext();\n\t\t\treturn JSON.stringify( context.response.data.debug, undefined, 2 );\n\t\t},\n\t\tget message() {\n\t\t\tconst context = getContext();\n\t\t\treturn context.response?.data?.message || '';\n\t\t},\n\t\tget errors() {\n\t\t\tconst context = getContext();\n\t\t\treturn context.response?.data?.errors || [];\n\t\t},\n\t},\n\tactions: {\n\t\tvalidateCaptcha: ( e ) => {\n\t\t\tconst { ref } = getElement();\n\t\t\tconst context = getContext();\n\t\t\te.preventDefault();\n\n\t\t\tif ( context.enableJsValidation ) {\n\t\t\t\tconst errors = context.validator.validateAll(\n\t\t\t\t\tref.closest( 'form' )\n\t\t\t\t);\n\t\t\t\tif ( errors.length ) {\n\t\t\t\t\terrors[ 0 ].scrollIntoView( {\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\tblock: 'end',\n\t\t\t\t\t\tinline: 'nearest',\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tshowLoading( e );\n\n\t\t\tcaptchaChallenge().then( () => {\n\t\t\t\tshowLoading( e );\n\t\t\t\tref.closest( 'form' ).requestSubmit( ref );\n\t\t\t} );\n\t\t},\n\t\tsendForm: ( e ) => {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\n\t\t\tconst context = getContext();\n\t\t\tif ( context.enableJsValidation ) {\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\tconst errors = context.validator.validateAll( ref );\n\t\t\t\tif ( errors.length ) {\n\t\t\t\t\terrors[ 0 ].scrollIntoView( {\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\tblock: 'end',\n\t\t\t\t\t\tinline: 'nearest',\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tformSubmit( e );\n\t\t},\n\t\tsetOutput: () => {\n\t\t\tconst { ref } = getElement();\n\t\t\tif ( 'OUTPUT' === ref.nextElementSibling?.nodeName ) {\n\t\t\t\tref.nextElementSibling.value = ref.value;\n\t\t\t}\n\t\t},\n\t},\n\tcallbacks: {\n\t\tinit: () => {\n\t\t\tconst context = getContext();\n\n\t\t\tif ( context.enableJsValidation ) {\n\t\t\t\tconst config = getConfig();\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\tconst { id } = ref.dataset;\n\t\t\t\tcontext.validator = new window.Bouncer(\n\t\t\t\t\t`.wp-block-formello-form[data-id='${ id }']`,\n\t\t\t\t\t{\n\t\t\t\t\t\t...jsConfig.bouncer,\n\t\t\t\t\t\tmessages: {\n\t\t\t\t\t\t\t...jsConfig.bouncer.messages,\n\t\t\t\t\t\t\t...config.settings.messages,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\twindow.tinymce?.init( jsConfig.tinyMce );\n\t\t\twindow.flatpickr?.( 'input.formello-advanced[type=date]' );\n\t\t},\n\t},\n} );\n"],"names":["config","bouncer","disableSubmit","customValidations","valueMismatch","field","selector","getAttribute","otherField","form","querySelector","value","messageCustom","messages","customMessage","tinyMce","setup","editor","on","window","tinymce","triggerSave","menubar","plugins","toolbar","content_style","store","getContext","getElement","getConfig","jsConfig","showLoading","e","btn","submitter","target","closest","classList","toggle","toggleAttribute","formSubmit","ref","context","id","dataset","formData","FormData","append","nonce","req","fetch","ajax_url","method","body","res","json","response","err","state","data","message","success","captchaChallenge","captchaEnabled","captchaType","settings","reCaptcha","version","grecaptcha","execute","hcaptcha","async","redirect_url","location","hide","msg","insertAdjacentElement","setTimeout","style","display","scrollIntoView","behavior","debug","deguagData","position","console","log","reset","debugData","JSON","stringify","undefined","errors","actions","validateCaptcha","preventDefault","enableJsValidation","validator","validateAll","length","block","inline","then","requestSubmit","sendForm","stopPropagation","setOutput","nextElementSibling","nodeName","callbacks","init","Bouncer","flatpickr"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"blocks/library/view.js","mappings":"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","sources":["webpack://formello/./src/blocks/library/config.js","webpack://formello/external module \"@wordpress/interactivity\"","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/./src/blocks/library/view.js"],"sourcesContent":["export const config = {\n\tbouncer: {\n\t\tdisableSubmit: true,\n\t\tcustomValidations: {\n\t\t\tvalueMismatch( field ) {\n\t\t\t\t// Look for a selector for a field to compare\n\t\t\t\t// If there isn't one, return false (no error)\n\t\t\t\tconst selector = field.getAttribute( 'data-bouncer-match' );\n\t\t\t\tif ( ! selector ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Get the field to compare\n\t\t\t\tconst otherField = field.form.querySelector(\n\t\t\t\t\t'[name=' + selector + ']'\n\t\t\t\t);\n\t\t\t\tif ( ! otherField ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Compare the two field values\n\t\t\t\t// We use a negative comparison here because if they do match, the field validates\n\t\t\t\t// We want to return true for failures, which can be confusing\n\t\t\t\treturn otherField.value !== field.value;\n\t\t\t},\n\t\t},\n\t\tmessageCustom: 'data-bouncer-message', // The data attribute to use for custom error messages\n\t\tmessages: {\n\t\t\tvalueMismatch( field ) {\n\t\t\t\tconst customMessage = field.getAttribute(\n\t\t\t\t\t'data-bouncer-mismatch-message'\n\t\t\t\t);\n\t\t\t\treturn customMessage\n\t\t\t\t\t? customMessage\n\t\t\t\t\t: 'Please make sure the fields match.';\n\t\t\t},\n\t\t},\n\t},\n\ttinyMce: {\n\t\tselector: 'textarea.formello-advanced',\n\t\tsetup: ( editor ) => {\n\t\t\teditor.on( 'change', () => {\n\t\t\t\twindow.tinymce.triggerSave();\n\t\t\t} );\n\t\t},\n\t\tmenubar: false,\n\t\tplugins: [\n\t\t\t'advlist autolink lists link image charmap print preview anchor',\n\t\t\t'searchreplace visualblocks code fullscreen',\n\t\t\t'insertdatetime media table paste code help wordcount',\n\t\t],\n\t\ttoolbar:\n\t\t\t'formatselect | ' +\n\t\t\t'bold italic underline | bullist numlist | ' +\n\t\t\t'alignleft aligncenter alignright alignjustify | link unlink | undo redo',\n\t\tcontent_style:\n\t\t\t'body { font-family:Helvetica,Arial,sans-serif; font-size:14px }',\n\t},\n};\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__;","// 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","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","/**\n * WordPress dependencies\n */\nimport {\n\tstore,\n\tgetContext,\n\tgetElement,\n\tgetConfig,\n} from '@wordpress/interactivity';\nimport { config as jsConfig } from './config';\n\nconst showLoading = ( e, force ) => {\n\tconst btn = e.submitter || e.target.closest( 'button' );\n\tbtn.classList.toggle( 'wp-block-formello-button--loading', force );\n\tbtn.toggleAttribute( 'disabled', force );\n};\n\nconst formSubmit = async ( e ) => {\n\tconst { ref } = getElement();\n\tconst context = getContext();\n\tconst config = getConfig();\n\tconst { id } = ref.dataset;\n\tconst formData = new FormData( ref );\n\tformData.append( 'action', 'formello' );\n\tformData.append( '_formello', config.nonce );\n\tformData.append( '_formello_id', id );\n\n\ttry {\n\t\tshowLoading( e, true );\n\t\tconst req = await fetch( config.ajax_url, {\n\t\t\tmethod: 'POST',\n\t\t\tbody: formData,\n\t\t} );\n\n\t\tconst res = await req.json();\n\t\tcontext.response = res;\n\n\t\tshowLoading( e, false );\n\n\t\tresponse( ref, res );\n\t} catch ( err ) {\n\t\tshowLoading( e, false );\n\t\tif ( typeof err === 'string' || err instanceof String ) {\n\t\t\tcontext.response = { data: { message: err }, success: false };\n\t\t} else {\n\t\t\tcontext.response = {\n\t\t\t\tdata: { message: 'An error occurred' },\n\t\t\t\tsuccess: false,\n\t\t\t};\n\t\t}\n\t}\n};\n\nconst captchaChallenge = async () => {\n\tconst config = getConfig();\n\tconst context = getContext();\n\tif (\n\t\tcontext.captchaEnabled &&\n\t\t'reCaptcha' === context.captchaType &&\n\t\t'3' === config.settings.reCaptcha.version\n\t) {\n\t\treturn window.grecaptcha.execute();\n\t}\n\tif ( context.captchaEnabled && 'hCaptcha' === context.captchaType ) {\n\t\tawait window.hcaptcha.execute( { async: true } );\n\t}\n};\n\nconst response = ( ref, res ) => {\n\tconst { data } = res;\n\n\t// Should we redirect?\n\tif ( data.redirect_url && res.success ) {\n\t\twindow.location = data.redirect_url;\n\t\treturn false;\n\t}\n\n\t// Should we hide form?\n\tif ( data.hide && res.success ) {\n\t\tconst msg = ref.querySelector( '.formello-message' );\n\t\tref.insertAdjacentElement( 'beforebegin', msg );\n\t\tsetTimeout( () => {\n\t\t\tref.style.display = 'none';\n\t\t\tmsg.scrollIntoView( {\n\t\t\t\tbehavior: 'smooth',\n\t\t\t} );\n\t\t}, '300' );\n\t}\n\n\tif ( data.debug && res.success ) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.log( data.debug );\n\t}\n\n\t// clear form\n\tif ( res.success ) {\n\t\tref.reset();\n\t}\n};\n\nconst { state } = store( 'formello', {\n\tstate: {\n\t\tget pattern() {\n\t\t\treturn 'ciao';\n\t\t},\n\t\tget debugData() {\n\t\t\tconst context = getContext();\n\t\t\treturn JSON.stringify( context.response.data.debug, undefined, 2 );\n\t\t},\n\t\tget message() {\n\t\t\tconst context = getContext();\n\t\t\treturn context.response?.data?.message || '';\n\t\t},\n\t\tget errors() {\n\t\t\tconst context = getContext();\n\t\t\treturn context.response?.data?.errors || [];\n\t\t},\n\t},\n\tactions: {\n\t\tvalidateCaptcha: ( e ) => {\n\t\t\tconst { ref } = getElement();\n\t\t\tconst context = getContext();\n\t\t\te.preventDefault();\n\n\t\t\tif ( context.enableJsValidation ) {\n\t\t\t\tconst errors = context.validator.validateAll(\n\t\t\t\t\tref.closest( 'form' )\n\t\t\t\t);\n\t\t\t\tif ( errors.length ) {\n\t\t\t\t\terrors[ 0 ].scrollIntoView( {\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\tblock: 'end',\n\t\t\t\t\t\tinline: 'nearest',\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tshowLoading( e );\n\n\t\t\tcaptchaChallenge().then( () => {\n\t\t\t\tshowLoading( e );\n\t\t\t\tref.closest( 'form' ).requestSubmit( ref );\n\t\t\t} );\n\t\t},\n\t\tsendForm: ( e ) => {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\n\t\t\tconst context = getContext();\n\t\t\tif ( context.enableJsValidation ) {\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\tconst errors = context.validator.validateAll( ref );\n\t\t\t\tif ( errors.length ) {\n\t\t\t\t\terrors[ 0 ].scrollIntoView( {\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\tblock: 'end',\n\t\t\t\t\t\tinline: 'nearest',\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tformSubmit( e );\n\t\t},\n\t\tsetOutput: () => {\n\t\t\tconst { ref } = getElement();\n\t\t\tif ( 'OUTPUT' === ref.nextElementSibling?.nodeName ) {\n\t\t\t\tref.nextElementSibling.value = ref.value;\n\t\t\t}\n\t\t},\n\t},\n\tcallbacks: {\n\t\tinit: () => {\n\t\t\tconst context = getContext();\n\n\t\t\tif ( context.enableJsValidation ) {\n\t\t\t\tconst config = getConfig();\n\t\t\t\tconst { ref } = getElement();\n\t\t\t\tconst { id } = ref.dataset;\n\t\t\t\tcontext.validator = new window.Bouncer(\n\t\t\t\t\t`.wp-block-formello-form[data-id='${ id }']`,\n\t\t\t\t\t{\n\t\t\t\t\t\t...jsConfig.bouncer,\n\t\t\t\t\t\tmessages: {\n\t\t\t\t\t\t\t...jsConfig.bouncer.messages,\n\t\t\t\t\t\t\t...config.settings.messages,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t\twindow.tinymce?.init( jsConfig.tinyMce );\n\t\t\twindow.flatpickr?.( 'input.formello-advanced[type=date]' );\n\n\t\t\tdocument\n\t\t\t\t.querySelectorAll( 'input[type=\"tel\"].formello-advanced' )\n\t\t\t\t.forEach( ( el ) => {\n\t\t\t\t\twindow.intlTelInput?.( el, {\n\t\t\t\t\t\tloadUtilsOnInit:\n\t\t\t\t\t\t\t'https://cdn.jsdelivr.net/npm/intl-tel-input@24.6.0/build/js/utils.js',\n\t\t\t\t\t\thiddenInput( telInputName ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tphone: telInputName + '_full',\n\t\t\t\t\t\t\t\tcountry: telInputName + '_country_code',\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\tdocument\n\t\t\t\t.querySelectorAll( 'select.formello-advanced' )\n\t\t\t\t.forEach( ( el ) => {\n\t\t\t\t\tnew window.TomSelect( el, {\n\t\t\t\t\t\tcreate: true,\n\t\t\t\t\t\tsortField: {\n\t\t\t\t\t\t\tfield: 'text',\n\t\t\t\t\t\t\tdirection: 'asc',\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t},\n\t},\n} );\n"],"names":["config","bouncer","disableSubmit","customValidations","valueMismatch","field","selector","getAttribute","otherField","form","querySelector","value","messageCustom","messages","customMessage","tinyMce","setup","editor","on","window","tinymce","triggerSave","menubar","plugins","toolbar","content_style","store","getContext","getElement","getConfig","jsConfig","showLoading","e","force","btn","submitter","target","closest","classList","toggle","toggleAttribute","formSubmit","ref","context","id","dataset","formData","FormData","append","nonce","req","fetch","ajax_url","method","body","res","json","response","err","String","data","message","success","captchaChallenge","captchaEnabled","captchaType","settings","reCaptcha","version","grecaptcha","execute","hcaptcha","async","redirect_url","location","hide","msg","insertAdjacentElement","setTimeout","style","display","scrollIntoView","behavior","debug","console","log","reset","state","pattern","debugData","JSON","stringify","undefined","errors","actions","validateCaptcha","preventDefault","enableJsValidation","validator","validateAll","length","block","inline","then","requestSubmit","sendForm","stopPropagation","setOutput","nextElementSibling","nodeName","callbacks","init","Bouncer","flatpickr","document","querySelectorAll","forEach","el","intlTelInput","loadUtilsOnInit","hiddenInput","telInputName","phone","country","TomSelect","create","sortField","direction"],"sourceRoot":""} \ No newline at end of file diff --git a/build/blocks/multichoices/block.json b/build/blocks/multichoices/block.json index f16fe74f..32917a0c 100644 --- a/build/blocks/multichoices/block.json +++ b/build/blocks/multichoices/block.json @@ -87,5 +87,20 @@ } } }, + "example": { + "attributes": { + "options": [ + { + "label": "Windows" + }, + { + "label": "MacOS" + }, + { + "label": "Linux" + } + ] + } + }, "editorScript": "file:./index.js" } \ No newline at end of file diff --git a/build/blocks/multichoices/index.asset.php b/build/blocks/multichoices/index.asset.php index f50efe1d..bc75d815 100644 --- a/build/blocks/multichoices/index.asset.php +++ b/build/blocks/multichoices/index.asset.php @@ -1 +1 @@ - array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => '1ea5c3affd642856db74'); + array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n'), 'version' => 'dafcc83525bc2ebec251'); diff --git a/build/blocks/multichoices/index.js b/build/blocks/multichoices/index.js index 89994257..aae575ea 100644 --- a/build/blocks/multichoices/index.js +++ b/build/blocks/multichoices/index.js @@ -736,9 +736,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _select_modal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../select/modal */ "./src/blocks/select/modal.js"); -/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clsx */ "./node_modules/clsx/dist/clsx.mjs"); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var _components_field_options_toolbar__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../components/field-options/toolbar */ "./src/components/field-options/toolbar.js"); +/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! clsx */ "./node_modules/clsx/dist/clsx.mjs"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__); + @@ -758,7 +760,7 @@ function Edit(props) { type } = attributes; const [isModalOpen, setIsModalOpen] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useState)(false); - const containerClass = (0,clsx__WEBPACK_IMPORTED_MODULE_5__["default"])({ + const containerClass = (0,clsx__WEBPACK_IMPORTED_MODULE_6__["default"])({ 'missing-name': !name }); const blockProps = (0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.useBlockProps)({ @@ -771,23 +773,25 @@ function Edit(props) { allowedBlocks: false, templateLock: false }); - return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", { ...innerBlocksProps, - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.InspectorControls, { - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.BlockControls, { - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarGroup, { - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.InspectorControls, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.BlockControls, { + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarGroup, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_components_field_options_toolbar__WEBPACK_IMPORTED_MODULE_5__["default"], { + ...props + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton, { label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Edit options', 'formello'), icon: 'editor-ul', onClick: () => { setIsModalOpen(true); } - }) + })] }) - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.PanelBody, { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.PanelBody, { title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Options', 'formello'), initialOpen: true, - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.TextControl, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.TextControl, { label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Name', 'formello'), value: name, onChange: newval => setAttributes({ @@ -795,14 +799,14 @@ function Edit(props) { }), help: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Affects the "name" attribute of the input element, and is used as a name for the form submission results.', 'formello'), __nextHasNoMarginBottom: true - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Required', 'formello'), checked: required, onChange: () => setAttributes({ required: !required }), __nextHasNoMarginBottom: true - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { variant: 'primary', onClick: () => { setIsModalOpen(true); @@ -810,25 +814,24 @@ function Edit(props) { children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Manage Options', 'formello') })] })] - }), isModalOpen && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_select_modal__WEBPACK_IMPORTED_MODULE_4__.OptionsModal, { + }), isModalOpen && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_select_modal__WEBPACK_IMPORTED_MODULE_4__.OptionsModal, { ...props, onRequestClose: () => { setIsModalOpen(false); } }), options.map((opt, index) => { const id = name + '-' + index; - return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", { + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", { className: 'wp-block-formello-input', - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("label", { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("label", { htmlFor: id, children: opt.label - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("input", { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("input", { value: opt.value || opt.label, name: name, type: type, required: required, checked: opt.selected, - onChange: () => console.log('change'), id: id })] }, index); @@ -1134,24 +1137,36 @@ const OptionsList = props => { onDragEnd: drop, draggable: true, children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.FlexItem, { - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.CheckboxControl, { - checked: obj.selected, - onChange: val => onChange(val, index, 'selected'), - __nextHasNoMarginBottom: true + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Tooltip, { + text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Mark selected', 'formello'), + delay: "200", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.CheckboxControl, { + checked: obj.selected, + onChange: val => onChange(val, index, 'selected'), + __nextHasNoMarginBottom: true + }) }) }), showValue && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.FlexItem, { - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.TextControl, { - placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Value', 'formello'), - value: obj.value, - onChange: val => onChange(val, index, 'value'), - __nextHasNoMarginBottom: true + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Tooltip, { + text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('The value of the option', 'formello'), + delay: "200", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.TextControl, { + placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Value', 'formello'), + value: obj.value, + onChange: val => onChange(val, index, 'value'), + __nextHasNoMarginBottom: true + }) }) }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.FlexItem, { - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.TextControl, { - placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Label', 'formello'), - value: obj.label, - onChange: val => onChange(val, index, 'label'), - __nextHasNoMarginBottom: true + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Tooltip, { + text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('The label of the option', 'formello'), + delay: "200", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.TextControl, { + placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Label', 'formello'), + value: obj.label, + onChange: val => onChange(val, index, 'label'), + __nextHasNoMarginBottom: true + }) }) }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.FlexItem, { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Button, { @@ -1168,6 +1183,101 @@ const OptionsList = props => { /***/ }), +/***/ "./src/components/field-options/toolbar.js": +/*!*************************************************!*\ + !*** ./src/components/field-options/toolbar.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Toolbar) +/* harmony export */ }); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); +/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__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_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); +/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _icons_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../icons/icons */ "./src/icons/icons.js"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__); +/** + * Retrieves the translation of text. + * + * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/ + */ + + + + + +function Toolbar(props) { + const { + attributes, + setAttributes, + name + } = props; + const { + required, + showHelp, + hideLabel, + type + } = attributes; + const toggleLabel = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.SVG, { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 24 24", + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Rect, { + x: "4.75", + y: "17.25", + width: "5.5", + height: "14.5", + transform: "rotate(-90 4.75 17.25)", + stroke: "currentColor", + fill: "none", + strokeWidth: "1.5" + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Rect, { + x: "4", + y: "7", + width: "10", + height: "2", + fill: "currentColor" + })] + }); + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Fragment, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton, { + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Required', 'formello'), + icon: _icons_icons__WEBPACK_IMPORTED_MODULE_3__.Asterisk, + isPressed: required, + onClick: () => { + setAttributes({ + required: !required + }); + } + }), ('checkbox' || 0) !== type && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton, { + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Toggle label visibility', 'formello'), + icon: toggleLabel, + isPressed: !hideLabel, + onClick: () => { + setAttributes({ + hideLabel: !hideLabel + }); + } + }), 'formello/multichoices' !== name && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton, { + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Show help message', 'formello'), + icon: 'editor-help', + isPressed: showHelp, + onClick: () => { + setAttributes({ + showHelp: !showHelp + }); + } + })] + }); +} + +/***/ }), + /***/ "./src/icons/icons.js": /*!****************************!*\ !*** ./src/icons/icons.js ***! @@ -1338,7 +1448,7 @@ function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else i \********************************************/ /***/ ((module) => { -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"formello/multichoices","title":"Multi choices","ancestor":["formello/form"],"category":"formello","textdomain":"formello","attributes":{"name":{"type":"string","default":"my_choice","role":"content"},"type":{"enum":["radio","checkbox"],"default":"checkbox"},"required":{"type":"boolean"},"options":{"type":"array","source":"query","selector":"div.wp-block-formello-input","query":{"value":{"type":"string","selector":"input","source":"attribute","attribute":"value"},"label":{"type":"string","selector":"label","source":"html"},"selected":{"type":"boolean","selector":"input","source":"attribute","attribute":"checked"}},"default":[{"value":"1","label":"One"},{"value":"2","label":"Two"},{"value":"3","label":"Three"}]}},"supports":{"anchor":true,"html":false,"spacing":{"padding":true,"blockGap":true},"inserter":true,"__experimentalBorder":true,"layout":{"allowSwitching":true,"allowInheriting":false,"allowSizingOnChildren":false,"allowEditing":true,"allowCustomContentAndWideSize":false,"allowJustification":false,"default":{"type":"flex","justifyContent":"stretch","orientation":"vertical","flexWrap":"nowrap"}}},"editorScript":"file:./index.js"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"formello/multichoices","title":"Multi choices","ancestor":["formello/form"],"category":"formello","textdomain":"formello","attributes":{"name":{"type":"string","default":"my_choice","role":"content"},"type":{"enum":["radio","checkbox"],"default":"checkbox"},"required":{"type":"boolean"},"options":{"type":"array","source":"query","selector":"div.wp-block-formello-input","query":{"value":{"type":"string","selector":"input","source":"attribute","attribute":"value"},"label":{"type":"string","selector":"label","source":"html"},"selected":{"type":"boolean","selector":"input","source":"attribute","attribute":"checked"}},"default":[{"value":"1","label":"One"},{"value":"2","label":"Two"},{"value":"3","label":"Three"}]}},"supports":{"anchor":true,"html":false,"spacing":{"padding":true,"blockGap":true},"inserter":true,"__experimentalBorder":true,"layout":{"allowSwitching":true,"allowInheriting":false,"allowSizingOnChildren":false,"allowEditing":true,"allowCustomContentAndWideSize":false,"allowJustification":false,"default":{"type":"flex","justifyContent":"stretch","orientation":"vertical","flexWrap":"nowrap"}}},"example":{"attributes":{"options":[{"label":"Windows"},{"label":"MacOS"},{"label":"Linux"}]}},"editorScript":"file:./index.js"}'); /***/ }) diff --git a/build/blocks/multichoices/index.js.map b/build/blocks/multichoices/index.js.map index 55e763bf..582a2a32 100644 --- a/build/blocks/multichoices/index.js.map +++ b/build/blocks/multichoices/index.js.map @@ -1 +1 @@ -{"version":3,"file":"blocks/multichoices/index.js","mappings":"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","sources":["webpack://formello/./assets/icons/asterisk.svg","webpack://formello/./assets/icons/checkbox.svg","webpack://formello/./assets/icons/checkboxes.svg","webpack://formello/./assets/icons/clock-field.svg","webpack://formello/./assets/icons/color-field.svg","webpack://formello/./assets/icons/date-field.svg","webpack://formello/./assets/icons/email-field.svg","webpack://formello/./assets/icons/fieldset.svg","webpack://formello/./assets/icons/form.svg","webpack://formello/./assets/icons/gdpr-field.svg","webpack://formello/./assets/icons/hidden-field.svg","webpack://formello/./assets/icons/logo.svg","webpack://formello/./assets/icons/number-field.svg","webpack://formello/./assets/icons/password-field.svg","webpack://formello/./assets/icons/phone-field.svg","webpack://formello/./assets/icons/radio-buttons.svg","webpack://formello/./assets/icons/radio-field.svg","webpack://formello/./assets/icons/range-field.svg","webpack://formello/./assets/icons/select.svg","webpack://formello/./assets/icons/text-field.svg","webpack://formello/./assets/icons/textarea-field.svg","webpack://formello/./assets/icons/url-field.svg","webpack://formello/./src/blocks/multichoices/edit.js","webpack://formello/./src/blocks/multichoices/save.js","webpack://formello/./src/blocks/multichoices/variations.js","webpack://formello/./src/blocks/select/modal.js","webpack://formello/./src/blocks/select/opts.js","webpack://formello/./src/icons/icons.js","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"blocks\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/./node_modules/clsx/dist/clsx.mjs","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/./src/blocks/multichoices/index.js"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgAsterisk = function SvgAsterisk(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12.75 6h-1.5v4.19L8.288 7.226l-1.061 1.06 2.962 2.963H6v1.5h4.19l-2.963 2.962 1.06 1.061 2.963-2.962V18h1.5v-4.19l2.962 2.963 1.061-1.06-2.962-2.963H18v-1.5h-4.19l2.963-2.962-1.06-1.061-2.963 2.962V6Z\"\n })));\n};\nexport { SvgAsterisk as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjc1IDZIMTEuMjVWMTAuMTg5M0w4LjI4NzY5IDcuMjI3MDNMNy4yMjcwMyA4LjI4NzY5TDEwLjE4OTMgMTEuMjVINlYxMi43NUgxMC4xODkzTDcuMjI3MDMgMTUuNzEyM0w4LjI4NzY5IDE2Ljc3M0wxMS4yNSAxMy44MTA3VjE4SDEyLjc1VjEzLjgxMDdMMTUuNzEyMyAxNi43NzNMMTYuNzczIDE1LjcxMjNMMTMuODEwNyAxMi43NUgxOFYxMS4yNUgxMy44MTA3TDE2Ljc3MyA4LjI4NzY5TDE1LjcxMjMgNy4yMjcwM0wxMi43NSAxMC4xODkzVjZaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckbox = function SvgCheckbox(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z\"\n })));\n};\nexport { SvgCheckbox as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGc+CiAgICAgICAgPHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIvPgogICAgICAgIDxwYXRoIGQ9Ik00IDNoMTZhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6bTEgMnYxNGgxNFY1SDV6bTYuMDAzIDExTDYuNzYgMTEuNzU3bDEuNDE0LTEuNDE0IDIuODI5IDIuODI5IDUuNjU2LTUuNjU3IDEuNDE1IDEuNDE0TDExLjAwMyAxNnoiIC8+CiAgICA8L2c+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckboxes = function SvgCheckboxes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 24,\n height: 24,\n viewBox: \"0 0 300.396 300.396\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.048 216.749H4.076a3 3 0 0 0-3 3v59.973a3 3 0 0 0 3 3h59.972a3 3 0 0 0 3-3v-59.973c0-1.656-1.344-3-3-3zM64.048 17.675H4.076A4.075 4.075 0 0 0 0 21.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076V21.749a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986V36.809h29.849v29.852H19.138zM64.048 116.675H4.076A4.075 4.075 0 0 0 0 120.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076v-59.973a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986v-29.852h29.849v29.852H19.138zM297.396 231.036h-186.67a3 3 0 0 0-3 3v31.4a3 3 0 0 0 3 3h186.67c1.656 0 3-1.344 3-3v-31.4a3 3 0 0 0-3-3zM110.729 169.438h186.667a3 3 0 0 0 3-3v-31.406c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3zM110.729 70.438h186.667a3 3 0 0 0 3-3V36.032c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3z\"\n })));\n};\nexport { SvgCheckboxes as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiAKCSB2aWV3Qm94PSIwIDAgMzAwLjM5NiAzMDAuMzk2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNNjQuMDQ4LDIxNi43NDlINC4wNzZjLTEuNjU3LDAtMywxLjM0NC0zLDN2NTkuOTczYzAsMS42NTgsMS4zNDMsMywzLDNoNTkuOTcyYzEuNjU2LDAsMy0xLjM0MiwzLTN2LTU5Ljk3MwoJCUM2Ny4wNDgsMjE4LjA5Myw2NS43MDQsMjE2Ljc0OSw2NC4wNDgsMjE2Ljc0OXoiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTcuNjc1SDQuMDc2QzEuODI1LDE3LjY3NSwwLDE5LjQ5OSwwLDIxLjc0OXY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NlYyMS43NDlDNjguMTIzLDE5LjQ5OSw2Ni4yOTksMTcuNjc1LDY0LjA0OCwxNy42NzV6IE0xOS4xMzgsNjYuNjYxVjM2LjgwOWgyOS44NDl2MjkuODUySDE5LjEzOHoKCQkiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTE2LjY3NUg0LjA3NmMtMi4yNTEsMC00LjA3NiwxLjgyNC00LjA3Niw0LjA3NHY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NnYtNTkuOTczQzY4LjEyMywxMTguNDk5LDY2LjI5OSwxMTYuNjc1LDY0LjA0OCwxMTYuNjc1eiBNMTkuMTM4LDE2NS42NjF2LTI5Ljg1MmgyOS44NDl2MjkuODUyCgkJSDE5LjEzOHoiLz4KCTxwYXRoIGQ9Ik0yOTcuMzk2LDIzMS4wMzZoLTE4Ni42N2MtMS42NTcsMC0zLDEuMzQyLTMsM3YzMS40YzAsMS42NTYsMS4zNDMsMywzLDNoMTg2LjY3YzEuNjU2LDAsMy0xLjM0NCwzLTN2LTMxLjQKCQlDMzAwLjM5NiwyMzIuMzc4LDI5OS4wNTMsMjMxLjAzNiwyOTcuMzk2LDIzMS4wMzZ6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSwxNjkuNDM4aDE4Ni42NjdjMS42NTYsMCwzLTEuMzQyLDMtM3YtMzEuNDA2YzAtMS42NTYtMS4zNDQtMy0zLTNIMTEwLjcyOWMtMS42NTcsMC0zLDEuMzQ0LTMsM3YzMS40MDYKCQlDMTA3LjcyOSwxNjguMDk3LDEwOS4wNzEsMTY5LjQzOCwxMTAuNzI5LDE2OS40Mzh6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSw3MC40MzhoMTg2LjY2N2MxLjY1NiwwLDMtMS4zNDIsMy0zVjM2LjAzMmMwLTEuNjU2LTEuMzQ0LTMtMy0zSDExMC43MjljLTEuNjU3LDAtMywxLjM0NC0zLDN2MzEuNDA2CgkJQzEwNy43MjksNjkuMDk3LDEwOS4wNzEsNzAuNDM4LDExMC43MjksNzAuNDM4eiIvPgo8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgClockField = function SvgClockField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 -8 72 72\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 0a28 28 0 1 0 28 28A28 28 0 0 0 36 0Zm0 50a22 22 0 1 1 22-22 22.07 22.07 0 0 1-22 22Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.59 27.14H38V12a2.31 2.31 0 1 0-4.61 0v17.44a2.31 2.31 0 0 0 2.3 2.31h14.9a2.31 2.31 0 1 0 0-4.61Z\"\n })));\n};\nexport { SvgClockField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAtOCA3MiA3MiIgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Y2xvY2stbzwvdGl0bGU+PHBhdGggZD0iTTM2LDBBMjgsMjgsMCwxLDAsNjQsMjgsMjgsMjgsMCwwLDAsMzYsMFptMCw1MEEyMiwyMiwwLDEsMSw1OCwyOCwyMi4wNywyMi4wNywwLDAsMSwzNiw1MFoiLz48cGF0aCBkPSJNNTAuNTksMjcuMTRIMzhWMTJhMi4zMSwyLjMxLDAsMSwwLTQuNjEsMFYyOS40NGEyLjMxLDIuMzEsMCwwLDAsMi4zLDIuMzFINTAuNTlhMi4zMSwyLjMxLDAsMSwwLDAtNC42MVoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgColorField = function SvgColorField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 36 36\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.23 14.89c-2.1-.56-4.93 1.8-6.34.3-1.71-1.82 2.27-5.53 1.86-8.92-.33-2.78-3.51-4.08-6.66-4.1A18.5 18.5 0 0 0 7.74 7.59c-6.64 6.59-8.07 16-1.37 22.48 6.21 6 16.61 4.23 22.67-1.4a17.73 17.73 0 0 0 4.22-6.54c1.08-2.9 1.18-6.64-1.03-7.24ZM9.4 10.57a2.23 2.23 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.81 2.53 2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53ZM5.07 20.82a2.22 2.22 0 0 1 1.82-2.53 2.22 2.22 0 0 1 2.86 1.21A2.23 2.23 0 0 1 7.94 22a2.24 2.24 0 0 1-2.87-1.18Zm7 8.33a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.8-2.53 2.23 2.23 0 0 1 2.87 1.21A2.22 2.22 0 0 1 12 29.15ZM15 8.26a2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.82 2.53A2.21 2.21 0 0 1 15 8.26Zm5.82 22.19a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.85 2.53Zm5-10.46a3.2 3.2 0 0 1-1.69 1.76 3.53 3.53 0 0 1-1.4.3 2.78 2.78 0 0 1-2.56-1.5 2.49 2.49 0 0 1-.07-2 3.2 3.2 0 0 1 1.69-1.76 3 3 0 0 1 4 1.2 2.54 2.54 0 0 1 0 2.01Z\",\n \"data-name\": \"Layer 3\"\n })));\n};\nexport { SvgColorField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDM2IDM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoNPHRpdGxlPmNvbG9yX3BhbGV0dGVfc29saWQ8L3RpdGxlPgoNPGcgaWQ9ImI4OTRlMzJiLTA0MzctNDVhYi1iOGJmLTlmMGM0ZThmNTdjZCIgZGF0YS1uYW1lPSJMYXllciAzIj4KDTxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTguNSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMywwLDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywyLjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEsMS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDateField = function SvgDateField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38 4V0h-4v4H14V0h-4v4H0v44h48V4H38zm6 40H4V19.9h40V44zM4 15.9V8h6v4h4V8h20v4h4V8h6v7.9H4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 24h6v6h-6zM16.667 24h6v6h-6zM25.583 24h6v6h-6zM34.5 24h6v6h-6zM7.5 33h6v6h-6zM16.667 33h6v6h-6zM25.583 33h6v6h-6zM34.5 33h6v6h-6z\"\n })));\n};\nexport { SvgDateField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCFET0NUWVBFIHN2ZyAgUFVCTElDICctLy9XM0MvL0RURCBTVkcgMS4xLy9FTicgICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQnPgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0OCA0OCIgaWQ9IkxheWVyXzMiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08Zz4KDTxwYXRoIGQ9Ik0zOCw0VjBoLTR2NEgxNFYwaC00djRIMHYxMS45djRWNDhoNDhWMTkuOXYtNFY0SDM4eiBNNDQsNDRINFYxOS45aDQwVjQ0eiBNNCwxNS45VjhoNnY0aDRWOGgyMHY0aDRWOGg2djcuOUg0eiIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iNy41IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMTYuNjY3IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMjUuNTgzIiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMzQuNSIgeT0iMjQiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjcuNSIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjE2LjY2NyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjI1LjU4MyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjM0LjUiIHk9IjMzIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmailField = function SvgEmailField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2c5.43 0 9.848 4.327 9.996 9.72L22 12v1c0 2.173-1.523 4-3.5 4-1.173 0-2.186-.643-2.816-1.62a5 5 0 1 1 1.311-3.597L17 12v1c0 1.14.716 2 1.5 2 .745 0 1.428-.775 1.495-1.831L20 13v-1a8 8 0 1 0-4.677 7.28 1 1 0 1 1 .831 1.819A9.966 9.966 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2Zm0 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z\"\n })));\n};\nexport { SvgEmailField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik0xMiwyIEMxNy40MjkyMzk5LDIgMjEuODQ3OTMxNyw2LjMyNjY3MDc5IDIxLjk5NjE1ODIsMTEuNzIwMDk1MiBMMjIsMTIgTDIyLDEzIEMyMiwxNS4xNzI5MjA4IDIwLjQ3NzQzNCwxNyAxOC41LDE3IEMxNy4zMjY5MzkxLDE3IDE2LjMxMzk1MjksMTYuMzU3MDI0NCAxNS42ODM5MzgyLDE1LjM4MDMwMjQgQzE0Ljc3MDU5MywxNi4zNzU3ODIzIDEzLjQ1ODE5MzQsMTcgMTIsMTcgQzkuMjM4NTc2MjUsMTcgNywxNC43NjE0MjM3IDcsMTIgQzcsOS4yMzg1NzYyNSA5LjIzODU3NjI1LDcgMTIsNyBDMTQuNjg4NzU0Nyw3IDE2Ljg4MTgxODEsOS4xMjIzMDY3MSAxNi45OTUzODA1LDExLjc4MzExMDQgTDE3LDEyIEwxNywxMyBDMTcsMTQuMTQwNzg3NyAxNy43MTYwMTAzLDE1IDE4LjUsMTUgQzE5LjI0NDc5MDIsMTUgMTkuOTI4MjI5LDE0LjIyNDU2MDkgMTkuOTk0NzEwOSwxMy4xNjg5MzQxIEwyMCwxMyBMMjAsMTIgQzIwLDcuNTgxNzIyIDE2LjQxODI3OCw0IDEyLDQgQzcuNTgxNzIyLDQgNCw3LjU4MTcyMiA0LDEyIEM0LDE2LjQxODI3OCA3LjU4MTcyMiwyMCAxMiwyMCBDMTMuMTYzMDk0OCwyMCAxNC4yODkyODIyLDE5Ljc1MjI2MTggMTUuMzIyNTE1OSwxOS4yNzk4MzMxIEMxNS44MjQ3ODc2LDE5LjA1MDE3NzcgMTYuNDE4MTMxNywxOS4yNzExNzcgMTYuNjQ3Nzg3LDE5Ljc3MzQ0ODcgQzE2Ljg3NzQ0MjMsMjAuMjc1NzIwNSAxNi42NTY0NDMsMjAuODY5MDY0NiAxNi4xNTQxNzEzLDIxLjA5ODcxOTkgQzE0Ljg2MTIxOCwyMS42ODk5MDEgMTMuNDUxNTQ2MywyMiAxMiwyMiBDNi40NzcxNTI1LDIyIDIsMTcuNTIyODQ3NSAyLDEyIEMyLDYuNDc3MTUyNSA2LjQ3NzE1MjUsMiAxMiwyIFogTTEyLDkgQzEwLjM0MzE0NTgsOSA5LDEwLjM0MzE0NTggOSwxMiBDOSwxMy42NTY4NTQyIDEwLjM0MzE0NTgsMTUgMTIsMTUgQzEzLjY1Njg1NDIsMTUgMTUsMTMuNjU2ODU0MiAxNSwxMiBDMTUsMTAuMzQzMTQ1OCAxMy42NTY4NTQyLDkgMTIsOSBaIi8+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFieldset = function SvgFieldset(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 80,\n height: 80,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 20h1v1H1v-2h1zm20 0h-1v1h2v-2h-1zM1 5h1V4h1V3H1zm1 2H1v2h1zm0 4H1v2h1zm20-2h1V7h-1zm0 4h1v-2h-1zM2 15H1v2h1zm20 2h1v-2h-1zM5 4h2V3H5zm6 0V3H9v1zm2 0h2V3h-2zm6-1h-2v1h2zM5 21h2v-1H5zm4 0h2v-1H9zm4 0h2v-1h-2zm4 0h2v-1h-2zm4-17h1v1h1V3h-2zm-1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1V8a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19V8H5v2h14m1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1v-2a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19v-2H5v2h14\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgFieldset as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MHB4IiBoZWlnaHQ9IjgwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAyMGgxdjFIMXYtMmgxem0yMCAwaC0xdjFoMnYtMmgtMXpNMSA1aDFWNGgxVjNIMXptMSAySDF2Mmgxem0wIDRIMXYyaDF6bTIwLTJoMVY3aC0xem0wIDRoMXYtMmgtMXpNMiAxNUgxdjJoMXptMjAgMmgxdi0yaC0xek01IDRoMlYzSDV6bTYgMFYzSDl2MXptMiAwaDJWM2gtMnptNi0xaC0ydjFoMnpNNSAyMWgydi0xSDV6bTQgMGgydi0xSDl6bTQgMGgydi0xaC0yem00IDBoMnYtMWgtMnptNC0xN2gxdjFoMVYzaC0yem0tMSA0djJhMS4wMDEgMS4wMDEgMCAwIDEtMSAxSDVhMS4wMDEgMS4wMDEgMCAwIDEtMS0xVjhhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOVY4SDV2MmgxNG0xIDR2MmExLjAwMSAxLjAwMSAwIDAgMS0xIDFINWExLjAwMSAxLjAwMSAwIDAgMS0xLTF2LTJhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOXYtMkg1djJoMTQiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgForm = function SvgForm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.2 12.994a.312.312 0 0 1-.188-.191C1 12.76.999 12.113 1 6.982V1.208l.022-.045a.328.328 0 0 1 .14-.14L1.208 1h11.585l.05.025a.31.31 0 0 1 .136.135l.021.039v5.783c0 5.377 0 5.787-.013 5.831a.314.314 0 0 1-.142.162L12.8 13H7.012c-3.457.001-5.8 0-5.817-.01zm11.236-5.992V1.568H1.573v10.857c0 .01 1.099.01 5.436.01h5.432V7.003zM5.574 10.72v-.86h1.712v1.72H5.574v-.86zm1.144 0v-.284h-.576v.568h.576v-.284zm1.145 0v-.284h3.432v.568H7.863v-.284zM5.574 7.572V6.428h5.72v2.288h-5.72V7.572zm5.144 0V7H6.142v.566c0 .311 0 .569.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.289h2.28v.577h-2.28v-.288zM5.575 4.14V2.996h5.72v2.288h-5.72V4.14zm5.144 0v-.572H6.142v.566c0 .31 0 .568.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.284h2.28v.567h-2.28V4.14z\"\n })));\n};\nexport { SvgForm as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAxNCAxNCIgcm9sZT0iaW1nIiBmb2N1c2FibGU9ImZhbHNlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtIDEuMTk5Nzk5NSwxMi45OTM5MTYgYyAtMC4wNzkwMzQsLTAuMDIzIC0wLjE2NDA3MSwtMC4xMDkzIC0wLjE4Nzk4MTMsLTAuMTkxNCAtMC4wMTIwMDUsLTAuMDQyIC0wLjAxMzAwNiwtMC42ODk1IC0wLjAxMTAwNSwtNS44MjEwMDAzIGwgMCwtNS43NzQgMC4wMjIwMSwtMC4wNDUgYyAwLjAyODAxMiwtMC4wNTcgMC4wODMwMzYsLTAuMTExNyAwLjE0MDE2MDYsLTAuMTQwMSBsIDAuMDQ1MDE5LC0wLjAyMiA1Ljc5MjIwNDEsMCA1Ljc5MjMwNDEsMCAwLjA1MTAyLDAuMDI1IGMgMC4wNTYwMiwwLjAyNyAwLjEwMzY0NSwwLjA3NSAwLjEzNTQ1OSwwLjEzNDUgbCAwLjAyMTAxLDAuMDM5IDAsNS43ODMyIGMgMCw1LjM3NjUwMDMgMCw1Ljc4NjYwMDMgLTAuMDEzMDEsNS44MzExMDAzIC0wLjAxOTAxLDAuMDYgLTAuMDc5MDMsMC4xMjkxIC0wLjE0MTc2MSwwLjE2MjEgbCAtMC4wNDYwMiwwLjAyNCAtNS43ODc3MDIzLDAgYyAtMy40NTYyOTQyLDllLTQgLTUuNzk5MjA3LDAgLTUuODE2MDE0MywtMC4wMSB6IG0gMTEuMjM2NjU3NSwtNS45OTE5MDAzIDAsLTUuNDM0MiAtNS40MzE5NDgxLDAgLTUuNDMxODQ4MiwwIDAsNS40MjI5IGMgMCwyLjk4MjYgLTQuMDAyZS00LDUuNDI4MDAwMyAwLDUuNDM0MjAwMyAwLDAuMDEgMS4wOTkwNzUxLDAuMDExIDUuNDM2NTUwMiwwLjAxMSBsIDUuNDMyMTQ4MSwwIDAsLTUuNDM0MjAwMyB6IG0gLTYuODYxOTY2MywzLjcxODEwMDMgMCwtMC44NjAzMDAzIDAuODU1NzY5OSwwIDAuODU1NzcsMCAwLDAuODYwMzAwMyAwLDAuODYwMyAtMC44NTU3NywwIC0wLjg1NTc2OTksMCAwLC0wLjg2MDMgeiBtIDEuMTQzOTk0NSwwIDAsLTAuMjgzOCAtMC4yODgyMjQ2LDAgLTAuMjg4MzI0NiwwIDAsMC4yODM4IDAsMC4yODM3IDAuMjg4MzI0NiwwIDAuMjg4MjI0NiwwIDAsLTAuMjgzNyB6IG0gMS4xNDQwOTQ3LDAgMCwtMC4yODM4IDEuNzE2MDQxOCwwIDEuNzE2MDQxMywwIDAsMC4yODM4IDAsMC4yODM3IC0xLjcxNjA0MTMsMCAtMS43MTYwNDE4LDAgMCwtMC4yODM3IHogbSAtMi4yODgwODkyLC0zLjE0ODMwMDMgMCwtMS4xNDQxIDIuODYwMDM2NCwwIDIuODYwMTM1OSwwIDAsMS4xNDQxIDAsMS4xNDM5IC0yLjg2MDEzNTksMCAtMi44NjAwMzY0LDAgMCwtMS4xNDM5IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEzIDAsMC41Njg3IDAuMDEwMDA0LDAuNTcyIDAsMCAxLjAzMjk0NjYsMC4wMSAyLjI4ODA4OTIsMC4wMSBsIDIuMjgyMDg2OCwwIDAsLTAuNTcyIHogbSAtNy45OTkyNTc4LDAgMCwtMC4yODg0IDEuMTM5NTkyNywwIDEuMTM5NDkyNSwwIDAsMC4yODg0IDAsMC4yODgyIC0xLjEzOTQ5MjUsMCAtMS4xMzk1OTI3LDAgMCwtMC4yODgyIHogbSAyLjg1NTYzNDUsLTMuNDMyMSAwLC0xLjE0NDEgMi44NjAwMzY0LDAgMi44NjAxMzU5LDAgMCwxLjE0NDEgMCwxLjE0NCAtMi44NjAxMzU5LDAgLTIuODYwMDM2NCwwIDAsLTEuMTQ0IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEyIDAsMC41Njg2IDAuMDEwMDA0LDAuNTcxOSAwLDAgMS4wMzI5NDY2LDAuMDEgMi4yODgwODkyLDAuMDEgbCAyLjI4MjA4NjgsMCAwLC0wLjU3MTkgeiBtIC03Ljk5OTI1NzgsMCAwLC0wLjI4MzkgMS4xMzk1OTI3LDAgMS4xMzk0OTI1LDAgMCwwLjI4MzkgMCwwLjI4MzcgLTEuMTM5NDkyNSwwIC0xLjEzOTU5MjcsMCAwLC0wLjI4MzcgeiIvPjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGdprField = function SvgGdprField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2zm0 8h5s1-1 1-5c0 0-5-1-6-2v7H5c1 4 5 7 5 7v-7z\"\n })));\n};\nexport { SvgGdprField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+Cgk8cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KCTxnPgoJCTxwYXRoIGQ9Ik0xMCAyczMgMiA3IDJjMCAxMS03IDE0LTcgMTRTMyAxNSAzIDRjNCAwIDctMiA3LTJ6bTAgOGg1czEtMSAxLTVjMCAwLTUtMS02LTJ2N0g1YzEgNCA1IDcgNSA3di03eiIvPgoJPC9nPgo8L3N2Zz4K\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgHiddenField = function SvgHiddenField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 1000 1000\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M499 270q57 0 104.5 28t75.5 76 28 104q0 39-15 76l122 122q97-81 142-198-36-91-104-162T694 206q-93-40-195-40-86 0-166 29l90 90q38-15 76-15zM83 157l95 94 19 20q-52 40-91.5 93T42 478q36 91 104.5 162T304 750q93 40 195 40 95 0 183-35l139 139 53-53-738-737zm230 230 65 64q-4 15-4 27 0 34 17 62.5t45.5 45.5 62.5 17q14 0 27-3l65 64q-45 22-92 22-56 0-104-28t-76-76-28-104q0-47 22-91zm180-33 131 131v-6q0-34-16.5-63t-45-45.5T500 354h-7z\"\n })));\n};\nexport { SvgHiddenField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00OTkgMjcwcTU3IDAgMTA0LjUgMjh0NzUuNSA3NiAyOCAxMDRxMCAzOS0xNSA3NmwxMjIgMTIycTk3LTgxIDE0Mi0xOTgtMzYtOTEtMTA0LTE2MlQ2OTQgMjA2cS05My00MC0xOTUtNDAtODYgMC0xNjYgMjlsOTAgOTBxMzgtMTUgNzYtMTV6TTgzIDE1N2w5NSA5NCAxOSAyMHEtNTIgNDAtOTEuNSA5M1Q0MiA0NzhxMzYgOTEgMTA0LjUgMTYyVDMwNCA3NTBxOTMgNDAgMTk1IDQwIDk1IDAgMTgzLTM1bDEzOSAxMzkgNTMtNTMtNzM4LTczN3ptMjMwIDIzMGw2NSA2NHEtNCAxNS00IDI3IDAgMzQgMTcgNjIuNXQ0NS41IDQ1LjUgNjIuNSAxN3ExNCAwIDI3LTNsNjUgNjRxLTQ1IDIyLTkyIDIyLTU2IDAtMTA0LTI4dC03Ni03Ni0yOC0xMDRxMC00NyAyMi05MXptMTgwLTMzbDEzMSAxMzF2LTZxMC0zNC0xNi41LTYzdC00NS00NS41VDUwMCAzNTRoLTd6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 341.333,\n height: 341.333,\n viewBox: \"0 0 256 256\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#9b51e0\",\n d: \"M0 128v128h256V0H0v128zm145.6-66.6c2.9.7 7.8 2.8 11.1 4.5 6.7 3.6 18.3 14.6 16.8 16-2.6 2.3-31.9 23.1-32.6 23.1-.5 0-.9-.5-.9-1 0-.6-1.1-2.2-2.5-3.5-3-3.1-8.3-3.3-11.6-.6-2.2 1.8-2.4 2.7-2.7 14l-.4 12.1H136v37h-13v34H82v-44.8c0-35.5.3-46.1 1.5-51.7 3.9-18.6 18.2-34.2 35.6-38.9 6.9-1.9 19.9-2 26.5-.2z\"\n })));\n};\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwoJdmVyc2lvbj0iMS4wIgoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJd2lkdGg9IjI1Ni4wMDAwMDBwdCIKCWhlaWdodD0iMjU2LjAwMDAwMHB0IgoJdmlld0JveD0iMCAwIDI1Ni4wMDAwMDAgMjU2LjAwMDAwMCIKCXByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiCj4KCTxnCgkJdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjU2LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKCQlmaWxsPSIjOWI1MWUwIgoJCXN0cm9rZT0ibm9uZSIKCT4KCQk8cGF0aAoJCQlkPSJNMCAxMjgwIGwwIC0xMjgwIDEyODAgMCAxMjgwIDAgMCAxMjgwIDAgMTI4MCAtMTI4MCAwIC0xMjgwIDAgMAoJCQktMTI4MHogbTE0NTYgNjY2IGMyOSAtNyA3OCAtMjggMTExIC00NSA2NyAtMzYgMTgzIC0xNDYgMTY4IC0xNjAgLTI2IC0yMwoJCQktMzE5IC0yMzEgLTMyNiAtMjMxIC01IDAgLTkgNSAtOSAxMCAwIDYgLTExIDIyIC0yNSAzNSAtMzAgMzEgLTgzIDMzIC0xMTYgNgoJCQktMjIgLTE4IC0yNCAtMjcgLTI3IC0xNDAgbC00IC0xMjEgNjYgMCA2NiAwIDAgLTE4NSAwIC0xODUgLTY1IDAgLTY1IDAgMAoJCQktMTcwIDAgLTE3MCAtMjA1IDAgLTIwNSAwIDAgNDQ4IGMwIDM1NSAzIDQ2MSAxNSA1MTcgMzkgMTg2IDE4MiAzNDIgMzU2IDM4OQoJCQk2OSAxOSAxOTkgMjAgMjY1IDJ6IgoJCS8+Cgk8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgNumberField = function SvgNumberField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 52 52\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.8 49.5H7.2c-2.6 0-4.7-2.1-4.7-4.7V7.2c0-2.6 2.1-4.7 4.7-4.7h37.6c2.6 0 4.7 2.1 4.7 4.7v37.6c0 2.6-2.1 4.7-4.7 4.7zm-36-39.2v31.3c0 .9.7 1.6 1.6 1.6h31.3c.9 0 1.6-.7 1.6-1.6V10.3c0-.9-.7-1.6-1.6-1.6H10.4c-.9.1-1.6.8-1.6 1.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.2 20.3h-2.9l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.2 4.9h-5.8l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.3 4.9H18c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h3L19 28.7h-3.1c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h2.9L17 36.5v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h5.7L26 36.4v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h3.2c.2 0 .3-.1.4-.3l.6-2.2V29c0-.2-.1-.4-.4-.4h-3l1.4-5.6h3.1c.2 0 .3-.1.4-.3l.6-2.2v-.1c-.1.1-.3-.1-.5-.1zm-8.1 8.5h-5.8l1.4-5.6h5.7l-1.3 5.6z\"\n })));\n};\nexport { SvgNumberField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCgkgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNTIgNTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUyIDUyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZD0iTTQ0LjgsNDkuNUg3LjJjLTIuNiwwLTQuNy0yLjEtNC43LTQuN1Y3LjJjMC0yLjYsMi4xLTQuNyw0LjctNC43aDM3LjZjMi42LDAsNC43LDIuMSw0LjcsNC43djM3LjYKCUM0OS41LDQ3LjQsNDcuNCw0OS41LDQ0LjgsNDkuNXogTTguOCwxMC4zdjMxLjNjMCwwLjksMC43LDEuNiwxLjYsMS42aDMxLjNjMC45LDAsMS42LTAuNywxLjYtMS42VjEwLjNjMC0wLjktMC43LTEuNi0xLjYtMS42SDEwLjQKCUM5LjUsOC44LDguOCw5LjUsOC44LDEwLjN6Ii8+CjxwYXRoIGQ9Ik0zNi4yLDIwLjNoLTIuOWwxLjItNC44di0wLjFjMC0wLjItMC4xLTAuNC0wLjQtMC40aC0yLjNjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMS4yLDQuOWgtNS44bDEuMi00LjgKCXYtMC4xYzAtMC4yLTAuMS0wLjQtMC40LTAuNGgtMi4zYy0wLjIsMC0wLjMsMC4xLTAuNCwwLjNsLTEuMyw0LjloLTMuMmMtMC4yLDAtMC4zLDAuMS0wLjQsMC4zbC0wLjYsMi4ydjAuMWMwLDAuMiwwLjEsMC40LDAuNCwwLjQKCWgzbC0xLjQsNS42aC0zLjFjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMC42LDIuMnYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuOWwtMS4yLDQuOHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuMwoJYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wxLjMtNWg1LjdMMjYsMzYuNHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuM2MwLjIsMCwwLjMtMC4xLDAuNC0wLjNsMS4zLTVoMy4yYzAuMiwwLDAuMy0wLjEsMC40LTAuMwoJbDAuNi0yLjJWMjljMC0wLjItMC4xLTAuNC0wLjQtMC40aC0zbDEuNC01LjZoMy4xYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wwLjYtMi4ydi0wLjFDMzYuNiwyMC41LDM2LjQsMjAuMywzNi4yLDIwLjNMMzYuMiwyMC4zegoJIE0yOC4xLDI4LjhoLTUuOGwxLjQtNS42aDUuN0wyOC4xLDI4Ljh6Ii8+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPasswordField = function SvgPasswordField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.988 51.297c.375 0 .961-.14 1.57-.445C42.66 43.469 47.185 40.375 47.185 31.96V14.289c0-2.414-1.055-3.187-3-4.008-2.743-1.125-11.532-4.289-14.25-5.25-.633-.187-1.266-.328-1.946-.328-.656 0-1.289.14-1.922.328-2.718.985-11.507 4.149-14.25 5.25-1.945.797-3 1.594-3 4.008v17.672c0 8.414 4.547 11.484 17.625 18.89.61.305 1.172.446 1.547.446Zm-8.226-15.563v-9.093c0-1.524.586-2.32 1.828-2.508V21.32c0-4.312 2.601-7.218 6.398-7.218 3.82 0 6.399 2.906 6.399 7.218v2.79c1.265.187 1.851.984 1.851 2.53v9.094c0 1.758-.773 2.578-2.414 2.578H22.152c-1.617 0-2.39-.82-2.39-2.578Zm4.289-11.648 7.898-.023v-3c0-2.766-1.57-4.594-3.96-4.594-2.368 0-3.938 1.828-3.938 4.593Z\"\n })));\n};\nexport { SvgPasswordField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMjcuOTg4MyA1MS4yOTY5IEMgMjguMzYzMyA1MS4yOTY5IDI4Ljk0OTIgNTEuMTU2MiAyOS41NTg2IDUwLjg1MTYgQyA0Mi42NjAyIDQzLjQ2ODggNDcuMTgzNiA0MC4zNzUwIDQ3LjE4MzYgMzEuOTYwOSBMIDQ3LjE4MzYgMTQuMjg5MSBDIDQ3LjE4MzYgMTEuODc1MCA0Ni4xMjg5IDExLjEwMTYgNDQuMTgzNiAxMC4yODEzIEMgNDEuNDQxNCA5LjE1NjIgMzIuNjUyNCA1Ljk5MjIgMjkuOTMzNiA1LjAzMTMgQyAyOS4zMDA4IDQuODQzOCAyOC42NjgwIDQuNzAzMSAyNy45ODgzIDQuNzAzMSBDIDI3LjMzMjAgNC43MDMxIDI2LjY5OTIgNC44NDM4IDI2LjA2NjQgNS4wMzEzIEMgMjMuMzQ3NiA2LjAxNTYgMTQuNTU4NiA5LjE3OTcgMTEuODE2NCAxMC4yODEzIEMgOS44NzExIDExLjA3ODEgOC44MTY0IDExLjg3NTAgOC44MTY0IDE0LjI4OTEgTCA4LjgxNjQgMzEuOTYwOSBDIDguODE2NCA0MC4zNzUwIDEzLjM2MzMgNDMuNDQ1MyAyNi40NDE0IDUwLjg1MTYgQyAyNy4wNTA4IDUxLjE1NjIgMjcuNjEzMyA1MS4yOTY5IDI3Ljk4ODMgNTEuMjk2OSBaIE0gMTkuNzYxNyAzNS43MzQ0IEwgMTkuNzYxNyAyNi42NDA2IEMgMTkuNzYxNyAyNS4xMTcyIDIwLjM0NzYgMjQuMzIwMyAyMS41ODk4IDI0LjEzMjggTCAyMS41ODk4IDIxLjMyMDMgQyAyMS41ODk4IDE3LjAwNzggMjQuMTkxNCAxNC4xMDE2IDI3Ljk4ODMgMTQuMTAxNiBDIDMxLjgwODYgMTQuMTAxNiAzNC4zODY3IDE3LjAwNzggMzQuMzg2NyAyMS4zMjAzIEwgMzQuMzg2NyAyNC4xMDk0IEMgMzUuNjUyNCAyNC4yOTY5IDM2LjIzODMgMjUuMDkzOCAzNi4yMzgzIDI2LjY0MDYgTCAzNi4yMzgzIDM1LjczNDQgQyAzNi4yMzgzIDM3LjQ5MjIgMzUuNDY0OSAzOC4zMTI1IDMzLjgyNDIgMzguMzEyNSBMIDIyLjE1MjQgMzguMzEyNSBDIDIwLjUzNTEgMzguMzEyNSAxOS43NjE3IDM3LjQ5MjIgMTkuNzYxNyAzNS43MzQ0IFogTSAyNC4wNTA4IDI0LjA4NjAgTCAzMS45NDkyIDI0LjA2MjUgTCAzMS45NDkyIDIxLjA2MjUgQyAzMS45NDkyIDE4LjI5NjkgMzAuMzc4OSAxNi40Njg3IDI3Ljk4ODMgMTYuNDY4NyBDIDI1LjYyMTEgMTYuNDY4NyAyNC4wNTA4IDE4LjI5NjkgMjQuMDUwOCAyMS4wNjI1IFoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPhoneField = function SvgPhoneField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.156 37.762c6.774 6.773 15.024 12 21.75 12 3.024 0 5.672-1.055 7.805-3.399 1.242-1.383 2.016-3 2.016-4.593 0-1.172-.446-2.297-1.57-3.094l-7.173-5.11c-1.101-.75-2.015-1.125-2.859-1.125-1.078 0-2.016.61-3.094 1.664l-1.664 1.641a1.263 1.263 0 0 1-.89.375c-.375 0-.704-.14-.961-.258-1.43-.773-3.914-2.906-6.235-5.203-2.297-2.297-4.43-4.781-5.18-6.234a1.991 1.991 0 0 1-.257-.938c0-.304.093-.61.351-.867l1.64-1.71c1.056-1.079 1.665-2.017 1.665-3.095 0-.843-.375-1.757-1.148-2.859l-5.04-7.102c-.82-1.125-1.968-1.617-3.234-1.617-1.547 0-3.164.703-4.523 2.04-2.274 2.18-3.282 4.874-3.282 7.85 0 6.727 5.133 14.884 11.883 21.634Z\"\n })));\n};\nexport { SvgPhoneField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMTguMTU2MiAzNy43NjE3IEMgMjQuOTI5NyA0NC41MzUyIDMzLjE3OTcgNDkuNzYxNyAzOS45MDYyIDQ5Ljc2MTcgQyA0Mi45Mjk3IDQ5Ljc2MTcgNDUuNTc4MSA0OC43MDcwIDQ3LjcxMDkgNDYuMzYzMyBDIDQ4Ljk1MjggNDQuOTgwNSA0OS43MjY2IDQzLjM2MzMgNDkuNzI2NiA0MS43Njk1IEMgNDkuNzI2NiA0MC41OTc3IDQ5LjI4MTIgMzkuNDcyNyA0OC4xNTYyIDM4LjY3NTggTCA0MC45ODQzIDMzLjU2NjQgQyAzOS44ODI4IDMyLjgxNjQgMzguOTY4NyAzMi40NDE0IDM4LjEyNTAgMzIuNDQxNCBDIDM3LjA0NjggMzIuNDQxNCAzNi4xMDkzIDMzLjA1MDggMzUuMDMxMiAzNC4xMDU1IEwgMzMuMzY3MSAzNS43NDYxIEMgMzMuMTA5MyAzNi4wMDM5IDMyLjc4MTIgMzYuMTIxMSAzMi40NzY1IDM2LjEyMTEgQyAzMi4xMDE1IDM2LjEyMTEgMzEuNzczNCAzNS45ODA1IDMxLjUxNTYgMzUuODYzMyBDIDMwLjA4NTkgMzUuMDg5OCAyNy42MDE1IDMyLjk1NzEgMjUuMjgxMiAzMC42NjAyIEMgMjIuOTg0MyAyOC4zNjMzIDIwLjg1MTUgMjUuODc4OSAyMC4xMDE1IDI0LjQyNTggQyAxOS45NjA5IDI0LjE2ODAgMTkuODQzNyAyMy44Mzk4IDE5Ljg0MzcgMjMuNDg4MyBDIDE5Ljg0MzcgMjMuMTgzNiAxOS45Mzc1IDIyLjg3ODkgMjAuMTk1MyAyMi42MjExIEwgMjEuODM1OSAyMC45MTAyIEMgMjIuODkwNiAxOS44MzIwIDIzLjQ5OTkgMTguODk0NSAyMy40OTk5IDE3LjgxNjQgQyAyMy40OTk5IDE2Ljk3MjcgMjMuMTI1MCAxNi4wNTg2IDIyLjM1MTUgMTQuOTU3MSBMIDE3LjMxMjQgNy44NTU1IEMgMTYuNDkyMSA2LjczMDUgMTUuMzQzNyA2LjIzODMgMTQuMDc4MSA2LjIzODMgQyAxMi41MzEyIDYuMjM4MyAxMC45MTQwIDYuOTQxNCA5LjU1NDYgOC4yNzc0IEMgNy4yODEyIDEwLjQ1NzEgNi4yNzM0IDEzLjE1MjQgNi4yNzM0IDE2LjEyODkgQyA2LjI3MzQgMjIuODU1NSAxMS40MDYyIDMxLjAxMTcgMTguMTU2MiAzNy43NjE3IFoiLz48L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioButtons = function SvgRadioButtons(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 4h13v1H9zm0 17h13v-1H9zm0-8h13v-1H9zM7 4a3 3 0 1 1-3-3 3 3 0 0 1 3 3zM6 4a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2 2 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm-2-9a1 1 0 1 0 1 1 1 1 0 0 0-1-1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgRadioButtons as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05IDRoMTN2MUg5em0wIDE3aDEzdi0xSDl6bTAtOGgxM3YtMUg5ek03IDRhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzek02IDRhMiAyIDAgMSAwLTIgMiAyLjAwMyAyLjAwMyAwIDAgMCAyLTJ6bTEgOGEzIDMgMCAxIDEtMy0zIDMgMyAwIDAgMSAzIDN6bS0xIDBhMiAyIDAgMSAwLTIgMiAyIDIgMCAwIDAgMi0yem0xIDhhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzem0tMSAwYTIgMiAwIDEgMC0yIDIgMi4wMDMgMi4wMDMgMCAwIDAgMi0yem0tMi05YTEgMSAwIDEgMCAxIDEgMSAxIDAgMCAwLTEtMXoiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioField = function SvgRadioField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 4C5.32 4 4 5.32 4 7s1.32 3 3 3 3-1.32 3-3-1.32-3-3-3Zm0-3C3.7 1 1 3.7 1 7s2.7 6 6 6 6-2.7 6-6-2.7-6-6-6Zm0 10.8c-2.64 0-4.8-2.16-4.8-4.8 0-2.64 2.16-4.8 4.8-4.8 2.64 0 4.8 2.16 4.8 4.8 0 2.64-2.16 4.8-4.8 4.8z\"\n })));\n};\nexport { SvgRadioField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE0IDE0IiByb2xlPSJpbWciIGZvY3VzYWJsZT0iZmFsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gNyw0IEMgNS4zMiw0IDQsNS4zMiA0LDcgNCw4LjY4IDUuMzIsMTAgNywxMCA4LjY4LDEwIDEwLDguNjggMTAsNyAxMCw1LjMyIDguNjgsNCA3LDQgWiBNIDcsMSBDIDMuNywxIDEsMy43IDEsNyBjIDAsMy4zIDIuNyw2IDYsNiAzLjMsMCA2LC0yLjcgNiwtNiBDIDEzLDMuNyAxMC4zLDEgNywxIFogTSA3LDExLjggQyA0LjM2LDExLjggMi4yLDkuNjQgMi4yLDcgMi4yLDQuMzYgNC4zNiwyLjIgNywyLjIgYyAyLjY0LDAgNC44LDIuMTYgNC44LDQuOCAwLDIuNjQgLTIuMTYsNC44IC00LjgsNC44IHoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRangeField = function SvgRangeField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 11h-3.184a2.982 2.982 0 0 0-5.632 0H3a1 1 0 0 0 0 2h9.184a2.982 2.982 0 0 0 5.632 0H21a1 1 0 0 0 0-2Zm-6 2a1 1 0 1 1 1-1 1.001 1.001 0 0 1-1 1Z\"\n })));\n};\nexport { SvgRangeField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggZD0iTTIxLDExSDE3LjgxNTczYTIuOTgyMDgsMi45ODIwOCwwLDAsMC01LjYzMTQ2LDBIM2ExLDEsMCwwLDAsMCwyaDkuMTg0MzNhMi45ODIsMi45ODIsMCwwLDAsNS42MzE0LDBIMjFhMSwxLDAsMCwwLDAtMlptLTYsMmExLDEsMCwxLDEsMS0xQTEuMDAxMywxLjAwMTMsMCwwLDEsMTUsMTNaIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSelect = function SvgSelect(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 4H1c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1zm-5 7H1V5h9v6zm3-2.6L11 7h4l-2 1.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1e72bd\",\n d: \"M2 6h1v4H2V6z\"\n })));\n};\nexport { SvgSelect as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8cGF0aCBkPSJNMTUgNGgtMTRjLTAuNiAwLTEgMC40LTEgMXY2YzAgMC42IDAuNCAxIDEgMWgxNGMwLjYgMCAxLTAuNCAxLTF2LTZjMC0wLjYtMC40LTEtMS0xek0xMCAxMWgtOXYtNmg5djZ6TTEzIDguNGwtMi0xLjRoNGwtMiAxLjR6Ij48L3BhdGg+CjxwYXRoIGZpbGw9IiMxZTcyYmQiIGQ9Ik0yIDZoMXY0aC0xdi00eiI+PC9wYXRoPgo8L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextField = function SvgTextField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 9h2v30H8v3h8v-3h-2V9h2V6H8zM4 16h3.021v-4H0v24h7.042v-4H4zM16.979 12v4H44v16H16.958v4H48V12z\"\n })));\n};\nexport { SvgTextField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjgsOSAxMCw5IDEwLDEyIDEwLDE2IDEwLDM5IDgsMzkgOCw0MiAxNiw0MiAxNiwzOSAxNCwzOSAxNCwxNiAxNCwxMiAxNCw5IDE2LDkgMTYsNiA4LDYgICIvPgoNPHBvbHlnb24gcG9pbnRzPSI0LDE2IDcuMDIxLDE2IDcuMDIxLDEyIDAsMTIgMCwzNiA3LjA0MiwzNiA3LjA0MiwzMiA0LDMyICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTYuOTc5LDEyIDE2Ljk3OSwxNiA0NCwxNiA0NCwzMiAxNi45NTgsMzIgMTYuOTU4LDM2IDQ4LDM2IDQ4LDEyICAiLz4KDTwvZz4KDTwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextareaField = function SvgTextareaField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 33h-2V3h2V0H8v3h2v30H8v3h8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.031 6v4H44v34H4V10h2.938V6H0v42h48V6z\"\n })));\n};\nexport { SvgTextareaField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjE2LDMzIDE0LDMzIDE0LDEwIDE0LDYgMTQsMyAxNiwzIDE2LDAgOCwwIDgsMyAxMCwzIDEwLDYgMTAsMTAgMTAsMzMgOCwzMyA4LDM2IDE2LDM2ICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTcuMDMxLDYgMTcuMDMxLDEwIDQ0LDEwIDQ0LDQ0IDQsNDQgNCwxMCA2LjkzOCwxMCA2LjkzOCw2IDAsNiAwLDQ4IDQ4LDQ4IDQ4LDYgICIvPgoNPC9nPgoNPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgUrlField = function SvgUrlField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.794 12.794c-.478.475-1.113.737-1.794.737s-1.316-.262-1.794-.738a2.54 2.54 0 0 1 0-3.584L5.5 6.916 4.084 5.5 1.791 7.794a4.54 4.54 0 0 0 .003 6.413c.853.855 1.99 1.324 3.206 1.324s2.353-.469 3.206-1.325l2.294-2.294L9.084 10.5l-2.29 2.294zm7.412-11C13.353.938 12.216.469 11 .469S8.647.938 7.794 1.794L5.5 4.084 6.916 5.5 9.21 3.206c.474-.475 1.109-.737 1.79-.737s1.316.263 1.794.737a2.537 2.537 0 0 1 0 3.584L10.5 9.084l1.416 1.416 2.294-2.294a4.54 4.54 0 0 0-.004-6.412zm-2.5 3.912L10.29 4.29l-6 6 1.416 1.416 6-6z\"\n })));\n};\nexport { SvgUrlField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgaWQ9Imljb24tYm91bmQiIGZpbGw9Im5vbmUiIC8+CiAgPHBhdGggZD0iTTYuNzk0LDEyLjc5NEM2LjMxNiwxMy4yNjksNS42ODEsMTMuNTMxLDUsMTMuNTMxcy0xLjMxNi0wLjI2Mi0xLjc5NC0wLjczOGMtMC45ODctMC45ODgtMC45ODctMi41OTcsMC0zLjU4NEw1LjUsNi45MTYgTDQuMDg0LDUuNUwxLjc5MSw3Ljc5NGMtMS43NjYsMS43NjktMS43NjYsNC42NDQsMC4wMDMsNi40MTNDMi42NDcsMTUuMDYyLDMuNzg0LDE1LjUzMSw1LDE1LjUzMXMyLjM1My0wLjQ2OSwzLjIwNi0xLjMyNSBsMi4yOTQtMi4yOTRMOS4wODQsMTAuNUw2Ljc5NCwxMi43OTR6IE0xNC4yMDYsMS43OTRDMTMuMzUzLDAuOTM4LDEyLjIxNiwwLjQ2OSwxMSwwLjQ2OVM4LjY0NywwLjkzOCw3Ljc5NCwxLjc5NEw1LjUsNC4wODQgTDYuOTE2LDUuNWwyLjI5NC0yLjI5NEM5LjY4NCwyLjczMSwxMC4zMTksMi40NjksMTEsMi40NjlzMS4zMTYsMC4yNjMsMS43OTQsMC43MzdjMC45ODgsMC45ODcsMC45ODgsMi41OTcsMCwzLjU4NEwxMC41LDkuMDg0IGwxLjQxNiwxLjQxNmwyLjI5NC0yLjI5NEMxNS45NzUsNi40MzgsMTUuOTc1LDMuNTYyLDE0LjIwNiwxLjc5NHogTTExLjcwNiw1LjcwNmwtMS40MTYtMS40MTZsLTYsNmwxLjQxNiwxLjQxNkwxMS43MDYsNS43MDZ6IiAvPgo8L3N2Zz4=\";","import { __ } from '@wordpress/i18n';\n\nimport {\n\tTextControl,\n\tPanelBody,\n\tToggleControl,\n\tButton,\n\tToolbarGroup,\n\tToolbarButton,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport { OptionsModal } from '../select/modal';\nimport clsx from 'clsx';\n\nexport default function Edit( props ) {\n\tconst { attributes, setAttributes } = props;\n\tconst { name, required, options, type } = attributes;\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tconst containerClass = clsx( {\n\t\t'missing-name': ! name,\n\t} );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: containerClass,\n\t} );\n\n\tconst { children, ...innerBlocksProps } = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: false,\n\t\ttemplateLock: false,\n\t} );\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { name: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Affects the \"name\" attribute of the input element, and is used as a name for the form submission results.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { required: ! required } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Manage Options', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{ isModalOpen && (\n\t\t\t\t {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ options.map( ( opt, index ) => {\n\t\t\t\tconst id = name + '-' + index;\n\t\t\t\treturn (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t console.log( 'change' ) }\n\t\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t} ) }\n\t\t
    \n\t);\n}\n","import { useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes, className } ) {\n\tconst { name, options, type, required } = attributes;\n\tconst blockProps = useBlockProps.save( {\n\t\tclassName,\n\t} );\n\n\treturn (\n\t\t
    \n\t\t\t{ options.map( ( opt, index ) => {\n\t\t\t\tconst id = name + '-' + index;\n\t\t\t\treturn (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t} ) }\n\t\t
    \n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Checkboxes, Radios } from '../../icons/icons';\n\nconst variations = [\n\t{\n\t\tname: 'checkboxes',\n\t\ttitle: __( 'Multiple choices (Checkboxes)' ),\n\t\tdescription: __(\n\t\t\t'Offer users a list of choices, and allow them to select multiple option.',\n\t\t\t'formello-pro'\n\t\t),\n\t\ticon: Checkboxes,\n\t\tattributes: {\n\t\t\ttype: 'checkbox',\n\t\t},\n\t\tscope: [ 'inserter', 'block', 'transform' ],\n\t\tisDefault: true,\n\t},\n\t{\n\t\tname: 'radios',\n\t\ttitle: __( 'Single choice (Radio buttons)' ),\n\t\tdescription: __(\n\t\t\t'Offer users a list of choices, and allow them to select a single option.',\n\t\t\t'formello-pro'\n\t\t),\n\t\ticon: Radios,\n\t\tattributes: {\n\t\t\ttype: 'radio',\n\t\t},\n\t\tscope: [ 'inserter', 'block', 'transform' ],\n\t},\n];\n\n/**\n * Add `isActive` function to all `embed` variations, if not defined.\n * `isActive` function is used to find a variation match from a created\n * Block by providing its attributes.\n */\nvariations.forEach( ( variation ) => {\n\tvariation.isActive = ( blockAttributes, variationAttributes ) =>\n\t\tblockAttributes.type === variationAttributes.type;\n} );\n\nexport default variations;\n","import { Fragment, useState } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\n\nimport {\n\tToggleControl,\n\tTextareaControl,\n\tButton,\n\tModal,\n} from '@wordpress/components';\n\nimport OptionsList from './opts';\n\nexport function OptionsModal( props ) {\n\tconst { onRequestClose, attributes, setAttributes } = props;\n\n\tconst [ showRaw, setShowRaw ] = useState( false );\n\tconst [ showValue, setShowValue ] = useState( false );\n\n\tconst addNewRow = () => {\n\t\tsetAttributes( {\n\t\t\toptions: [ ...attributes.options, { label: '', value: '' } ],\n\t\t} );\n\t};\n\n\tconst deleteRow = ( record, index ) => {\n\t\tconst items = [ ...attributes.options ]; // make a separate copy of the array\n\t\titems.splice( index, 1 );\n\t\tsetAttributes( { options: items } );\n\t};\n\n\tconst handleChange = ( value, index, prop ) => {\n\t\t// 1. Make a shallow copy of the items\n\t\tconst items = [ ...attributes.options ];\n\t\t// 2. Make a shallow copy of the item you want to mutate\n\t\tconst item = { ...attributes.options[ index ] };\n\t\t// 3. Replace the property you're intested in\n\t\titem[ prop ] = value;\n\t\t// 4. Put it back into our array. N.B. we *are* mutating the array here, but that's why we made a copy first\n\t\titems[ index ] = item;\n\t\t// 5. Set the state to our new copy\n\t\tsetAttributes( { options: items } );\n\t};\n\n\tconst changeOrder = ( items ) => {\n\t\tsetAttributes( { options: items } );\n\t};\n\n\tconst bulkOpts = ( val ) => {\n\t\tconst opts = val.match( /[^\\r\\n]+/g );\n\t\tconst newSettings = [];\n\t\tfor ( const i in opts ) {\n\t\t\tconst tmp = opts[ i ].split( ',' );\n\t\t\tnewSettings.push( {\n\t\t\t\tvalue: tmp[ 0 ],\n\t\t\t\tlabel: tmp[ 1 ] ? tmp[ 1 ] : tmp[ 0 ],\n\t\t\t} );\n\t\t}\n\t\tsetAttributes( { options: newSettings } );\n\t};\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t setShowRaw( newval ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\n\t\t\t\t{ showRaw && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\t\treturn item.value + ',' + item.label;\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t.join( '\\r\\n' ) }\n\t\t\t\t\t\tonChange={ ( val ) => bulkOpts( val ) }\n\t\t\t\t\t\trows=\"6\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! showRaw && (\n\t\t\t\t\t\n\t\t\t\t\t\t setShowValue( newval ) }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAdd option\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t) }\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n","import {\n\tTextControl,\n\tCheckboxControl,\n\tFlex,\n\tFlexItem,\n\tButton,\n} from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\nconst OptionsList = ( props ) => {\n\tconst { options, onChange, showValue, deleteRow } = props;\n\tconst dragItem = useRef();\n\tconst dragOverItem = useRef();\n\n\tconst dragStart = ( e, position ) => {\n\t\tdragItem.current = position;\n\t};\n\n\tconst dragEnter = ( e, position ) => {\n\t\tdragOverItem.current = position;\n\t};\n\n\tconst drop = () => {\n\t\tconst copyListItems = [ ...options ];\n\t\tconst dragItemContent = copyListItems[ dragItem.current ];\n\t\tcopyListItems.splice( dragItem.current, 1 );\n\t\tcopyListItems.splice( dragOverItem.current, 0, dragItemContent );\n\t\tdragItem.current = null;\n\t\tdragOverItem.current = null;\n\t\tprops.changeOrder( copyListItems );\n\t};\n\n\treturn options.map( ( obj, index ) => {\n\t\treturn (\n\t\t\t dragStart( e, index ) }\n\t\t\t\tonDragEnter={ ( e ) => dragEnter( e, index ) }\n\t\t\t\tonDragEnd={ drop }\n\t\t\t\tdraggable\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tonChange( val, index, 'selected' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t{ showValue && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tonChange( val, index, 'value' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\t\n\t\t\t\t\t onChange( val, index, 'label' ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t deleteRow( obj, index ) }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} );\n};\nexport default OptionsList;\n","import { ReactComponent as Asterisk } from '../../assets/icons/asterisk.svg';\nimport { ReactComponent as Checkbox } from '../../assets/icons/checkbox.svg';\nimport { ReactComponent as Calendar } from '../../assets/icons/date-field.svg';\nimport { ReactComponent as Checkboxes } from '../../assets/icons/checkboxes.svg';\nimport { ReactComponent as Clock } from '../../assets/icons/clock-field.svg';\nimport { ReactComponent as Color } from '../../assets/icons/color-field.svg';\nimport { ReactComponent as Email } from '../../assets/icons/email-field.svg';\nimport { ReactComponent as Fieldset } from '../../assets/icons/fieldset.svg';\nimport { ReactComponent as Form } from '../../assets/icons/form.svg';\nimport { ReactComponent as GDPR } from '../../assets/icons/gdpr-field.svg';\nimport { ReactComponent as Hidden } from '../../assets/icons/hidden-field.svg';\nimport { ReactComponent as Input } from '../../assets/icons/text-field.svg';\nimport { ReactComponent as Logo } from '../../assets/icons/logo.svg';\nimport { ReactComponent as Number } from '../../assets/icons/number-field.svg';\nimport { ReactComponent as Password } from '../../assets/icons/password-field.svg';\nimport { ReactComponent as Range } from '../../assets/icons/range-field.svg';\nimport { ReactComponent as Radio } from '../../assets/icons/radio-field.svg';\nimport { ReactComponent as Radios } from '../../assets/icons/radio-buttons.svg';\nimport { ReactComponent as Select } from '../../assets/icons/select.svg';\nimport { ReactComponent as Tel } from '../../assets/icons/phone-field.svg';\nimport { ReactComponent as Textarea } from '../../assets/icons/textarea-field.svg';\nimport { ReactComponent as Url } from '../../assets/icons/url-field.svg';\n\nexport {\n\tAsterisk,\n\tCheckbox,\n\tCheckboxes,\n\tClock,\n\tColor,\n\tEmail,\n\tFieldset,\n\tForm,\n\tGDPR,\n\tHidden,\n\tInput,\n\tLogo,\n\tNumber,\n\tPassword,\n\tRadio,\n\tRange,\n\tRadios,\n\tSelect,\n\tTel,\n\tTextarea,\n\tUrl,\n\tCalendar,\n};\n","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"i18n\"];","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 { registerBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport Edit from './edit';\nimport save from './save';\nimport variations from './variations';\nimport metadata from './block.json';\nimport { Fieldset } from '../../icons/icons';\n\n/**\n * Every block starts by registering a new block type definition.\n *\n * @see https://developer.wordpress.org/block-editor/developers/block-api/#registering-a-block\n */\nregisterBlockType( metadata, {\n\tvariations,\n\n\t/**\n\t * An icon property should be specified to make it easier to identify a block.\n\t * These can be any of WordPress’ Dashicons, or a custom svg element.\n\t */\n\ticon: Fieldset,\n\n\t/**\n\t * @see ./edit.js\n\t */\n\tedit: Edit,\n\n\t/**\n\t * @see ./save.js\n\t */\n\tsave,\n} );\n"],"names":["__","TextControl","PanelBody","ToggleControl","Button","ToolbarGroup","ToolbarButton","InspectorControls","BlockControls","useBlockProps","useInnerBlocksProps","useState","OptionsModal","clsx","jsx","_jsx","jsxs","_jsxs","Edit","props","attributes","setAttributes","name","required","options","type","isModalOpen","setIsModalOpen","containerClass","blockProps","className","children","innerBlocksProps","allowedBlocks","templateLock","label","icon","onClick","title","initialOpen","value","onChange","newval","help","__nextHasNoMarginBottom","checked","variant","onRequestClose","map","opt","index","id","htmlFor","selected","console","log","save","Checkboxes","Radios","variations","description","scope","isDefault","forEach","variation","isActive","blockAttributes","variationAttributes","Fragment","TextareaControl","Modal","OptionsList","showRaw","setShowRaw","showValue","setShowValue","addNewRow","deleteRow","record","items","splice","handleChange","prop","item","changeOrder","bulkOpts","val","opts","match","newSettings","i","tmp","split","push","size","shouldCloseOnClickOutside","placeholder","defaultValue","join","rows","CheckboxControl","Flex","FlexItem","useRef","dragItem","dragOverItem","dragStart","e","position","current","dragEnter","drop","copyListItems","dragItemContent","obj","justify","onDragStart","onDragEnter","onDragEnd","draggable","isSmall","iconSize","ReactComponent","Asterisk","Checkbox","Calendar","Clock","Color","Email","Fieldset","Form","GDPR","Hidden","Input","Logo","Number","Password","Range","Radio","Select","Tel","Textarea","Url","registerBlockType","metadata","edit"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"blocks/multichoices/index.js","mappings":"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","sources":["webpack://formello/./assets/icons/asterisk.svg","webpack://formello/./assets/icons/checkbox.svg","webpack://formello/./assets/icons/checkboxes.svg","webpack://formello/./assets/icons/clock-field.svg","webpack://formello/./assets/icons/color-field.svg","webpack://formello/./assets/icons/date-field.svg","webpack://formello/./assets/icons/email-field.svg","webpack://formello/./assets/icons/fieldset.svg","webpack://formello/./assets/icons/form.svg","webpack://formello/./assets/icons/gdpr-field.svg","webpack://formello/./assets/icons/hidden-field.svg","webpack://formello/./assets/icons/logo.svg","webpack://formello/./assets/icons/number-field.svg","webpack://formello/./assets/icons/password-field.svg","webpack://formello/./assets/icons/phone-field.svg","webpack://formello/./assets/icons/radio-buttons.svg","webpack://formello/./assets/icons/radio-field.svg","webpack://formello/./assets/icons/range-field.svg","webpack://formello/./assets/icons/select.svg","webpack://formello/./assets/icons/text-field.svg","webpack://formello/./assets/icons/textarea-field.svg","webpack://formello/./assets/icons/url-field.svg","webpack://formello/./src/blocks/multichoices/edit.js","webpack://formello/./src/blocks/multichoices/save.js","webpack://formello/./src/blocks/multichoices/variations.js","webpack://formello/./src/blocks/select/modal.js","webpack://formello/./src/blocks/select/opts.js","webpack://formello/./src/components/field-options/toolbar.js","webpack://formello/./src/icons/icons.js","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"blocks\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/./node_modules/clsx/dist/clsx.mjs","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/./src/blocks/multichoices/index.js"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgAsterisk = function SvgAsterisk(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12.75 6h-1.5v4.19L8.288 7.226l-1.061 1.06 2.962 2.963H6v1.5h4.19l-2.963 2.962 1.06 1.061 2.963-2.962V18h1.5v-4.19l2.962 2.963 1.061-1.06-2.962-2.963H18v-1.5h-4.19l2.963-2.962-1.06-1.061-2.963 2.962V6Z\"\n })));\n};\nexport { SvgAsterisk as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjc1IDZIMTEuMjVWMTAuMTg5M0w4LjI4NzY5IDcuMjI3MDNMNy4yMjcwMyA4LjI4NzY5TDEwLjE4OTMgMTEuMjVINlYxMi43NUgxMC4xODkzTDcuMjI3MDMgMTUuNzEyM0w4LjI4NzY5IDE2Ljc3M0wxMS4yNSAxMy44MTA3VjE4SDEyLjc1VjEzLjgxMDdMMTUuNzEyMyAxNi43NzNMMTYuNzczIDE1LjcxMjNMMTMuODEwNyAxMi43NUgxOFYxMS4yNUgxMy44MTA3TDE2Ljc3MyA4LjI4NzY5TDE1LjcxMjMgNy4yMjcwM0wxMi43NSAxMC4xODkzVjZaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckbox = function SvgCheckbox(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z\"\n })));\n};\nexport { SvgCheckbox as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGc+CiAgICAgICAgPHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIvPgogICAgICAgIDxwYXRoIGQ9Ik00IDNoMTZhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6bTEgMnYxNGgxNFY1SDV6bTYuMDAzIDExTDYuNzYgMTEuNzU3bDEuNDE0LTEuNDE0IDIuODI5IDIuODI5IDUuNjU2LTUuNjU3IDEuNDE1IDEuNDE0TDExLjAwMyAxNnoiIC8+CiAgICA8L2c+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckboxes = function SvgCheckboxes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 24,\n height: 24,\n viewBox: \"0 0 300.396 300.396\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.048 216.749H4.076a3 3 0 0 0-3 3v59.973a3 3 0 0 0 3 3h59.972a3 3 0 0 0 3-3v-59.973c0-1.656-1.344-3-3-3zM64.048 17.675H4.076A4.075 4.075 0 0 0 0 21.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076V21.749a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986V36.809h29.849v29.852H19.138zM64.048 116.675H4.076A4.075 4.075 0 0 0 0 120.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076v-59.973a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986v-29.852h29.849v29.852H19.138zM297.396 231.036h-186.67a3 3 0 0 0-3 3v31.4a3 3 0 0 0 3 3h186.67c1.656 0 3-1.344 3-3v-31.4a3 3 0 0 0-3-3zM110.729 169.438h186.667a3 3 0 0 0 3-3v-31.406c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3zM110.729 70.438h186.667a3 3 0 0 0 3-3V36.032c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3z\"\n })));\n};\nexport { SvgCheckboxes as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiAKCSB2aWV3Qm94PSIwIDAgMzAwLjM5NiAzMDAuMzk2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNNjQuMDQ4LDIxNi43NDlINC4wNzZjLTEuNjU3LDAtMywxLjM0NC0zLDN2NTkuOTczYzAsMS42NTgsMS4zNDMsMywzLDNoNTkuOTcyYzEuNjU2LDAsMy0xLjM0MiwzLTN2LTU5Ljk3MwoJCUM2Ny4wNDgsMjE4LjA5Myw2NS43MDQsMjE2Ljc0OSw2NC4wNDgsMjE2Ljc0OXoiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTcuNjc1SDQuMDc2QzEuODI1LDE3LjY3NSwwLDE5LjQ5OSwwLDIxLjc0OXY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NlYyMS43NDlDNjguMTIzLDE5LjQ5OSw2Ni4yOTksMTcuNjc1LDY0LjA0OCwxNy42NzV6IE0xOS4xMzgsNjYuNjYxVjM2LjgwOWgyOS44NDl2MjkuODUySDE5LjEzOHoKCQkiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTE2LjY3NUg0LjA3NmMtMi4yNTEsMC00LjA3NiwxLjgyNC00LjA3Niw0LjA3NHY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NnYtNTkuOTczQzY4LjEyMywxMTguNDk5LDY2LjI5OSwxMTYuNjc1LDY0LjA0OCwxMTYuNjc1eiBNMTkuMTM4LDE2NS42NjF2LTI5Ljg1MmgyOS44NDl2MjkuODUyCgkJSDE5LjEzOHoiLz4KCTxwYXRoIGQ9Ik0yOTcuMzk2LDIzMS4wMzZoLTE4Ni42N2MtMS42NTcsMC0zLDEuMzQyLTMsM3YzMS40YzAsMS42NTYsMS4zNDMsMywzLDNoMTg2LjY3YzEuNjU2LDAsMy0xLjM0NCwzLTN2LTMxLjQKCQlDMzAwLjM5NiwyMzIuMzc4LDI5OS4wNTMsMjMxLjAzNiwyOTcuMzk2LDIzMS4wMzZ6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSwxNjkuNDM4aDE4Ni42NjdjMS42NTYsMCwzLTEuMzQyLDMtM3YtMzEuNDA2YzAtMS42NTYtMS4zNDQtMy0zLTNIMTEwLjcyOWMtMS42NTcsMC0zLDEuMzQ0LTMsM3YzMS40MDYKCQlDMTA3LjcyOSwxNjguMDk3LDEwOS4wNzEsMTY5LjQzOCwxMTAuNzI5LDE2OS40Mzh6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSw3MC40MzhoMTg2LjY2N2MxLjY1NiwwLDMtMS4zNDIsMy0zVjM2LjAzMmMwLTEuNjU2LTEuMzQ0LTMtMy0zSDExMC43MjljLTEuNjU3LDAtMywxLjM0NC0zLDN2MzEuNDA2CgkJQzEwNy43MjksNjkuMDk3LDEwOS4wNzEsNzAuNDM4LDExMC43MjksNzAuNDM4eiIvPgo8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgClockField = function SvgClockField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 -8 72 72\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 0a28 28 0 1 0 28 28A28 28 0 0 0 36 0Zm0 50a22 22 0 1 1 22-22 22.07 22.07 0 0 1-22 22Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.59 27.14H38V12a2.31 2.31 0 1 0-4.61 0v17.44a2.31 2.31 0 0 0 2.3 2.31h14.9a2.31 2.31 0 1 0 0-4.61Z\"\n })));\n};\nexport { SvgClockField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAtOCA3MiA3MiIgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Y2xvY2stbzwvdGl0bGU+PHBhdGggZD0iTTM2LDBBMjgsMjgsMCwxLDAsNjQsMjgsMjgsMjgsMCwwLDAsMzYsMFptMCw1MEEyMiwyMiwwLDEsMSw1OCwyOCwyMi4wNywyMi4wNywwLDAsMSwzNiw1MFoiLz48cGF0aCBkPSJNNTAuNTksMjcuMTRIMzhWMTJhMi4zMSwyLjMxLDAsMSwwLTQuNjEsMFYyOS40NGEyLjMxLDIuMzEsMCwwLDAsMi4zLDIuMzFINTAuNTlhMi4zMSwyLjMxLDAsMSwwLDAtNC42MVoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgColorField = function SvgColorField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 36 36\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.23 14.89c-2.1-.56-4.93 1.8-6.34.3-1.71-1.82 2.27-5.53 1.86-8.92-.33-2.78-3.51-4.08-6.66-4.1A18.5 18.5 0 0 0 7.74 7.59c-6.64 6.59-8.07 16-1.37 22.48 6.21 6 16.61 4.23 22.67-1.4a17.73 17.73 0 0 0 4.22-6.54c1.08-2.9 1.18-6.64-1.03-7.24ZM9.4 10.57a2.23 2.23 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.81 2.53 2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53ZM5.07 20.82a2.22 2.22 0 0 1 1.82-2.53 2.22 2.22 0 0 1 2.86 1.21A2.23 2.23 0 0 1 7.94 22a2.24 2.24 0 0 1-2.87-1.18Zm7 8.33a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.8-2.53 2.23 2.23 0 0 1 2.87 1.21A2.22 2.22 0 0 1 12 29.15ZM15 8.26a2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.82 2.53A2.21 2.21 0 0 1 15 8.26Zm5.82 22.19a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.85 2.53Zm5-10.46a3.2 3.2 0 0 1-1.69 1.76 3.53 3.53 0 0 1-1.4.3 2.78 2.78 0 0 1-2.56-1.5 2.49 2.49 0 0 1-.07-2 3.2 3.2 0 0 1 1.69-1.76 3 3 0 0 1 4 1.2 2.54 2.54 0 0 1 0 2.01Z\",\n \"data-name\": \"Layer 3\"\n })));\n};\nexport { SvgColorField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDM2IDM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoNPHRpdGxlPmNvbG9yX3BhbGV0dGVfc29saWQ8L3RpdGxlPgoNPGcgaWQ9ImI4OTRlMzJiLTA0MzctNDVhYi1iOGJmLTlmMGM0ZThmNTdjZCIgZGF0YS1uYW1lPSJMYXllciAzIj4KDTxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTguNSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMywwLDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywyLjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEsMS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDateField = function SvgDateField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38 4V0h-4v4H14V0h-4v4H0v44h48V4H38zm6 40H4V19.9h40V44zM4 15.9V8h6v4h4V8h20v4h4V8h6v7.9H4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 24h6v6h-6zM16.667 24h6v6h-6zM25.583 24h6v6h-6zM34.5 24h6v6h-6zM7.5 33h6v6h-6zM16.667 33h6v6h-6zM25.583 33h6v6h-6zM34.5 33h6v6h-6z\"\n })));\n};\nexport { SvgDateField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCFET0NUWVBFIHN2ZyAgUFVCTElDICctLy9XM0MvL0RURCBTVkcgMS4xLy9FTicgICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQnPgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0OCA0OCIgaWQ9IkxheWVyXzMiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08Zz4KDTxwYXRoIGQ9Ik0zOCw0VjBoLTR2NEgxNFYwaC00djRIMHYxMS45djRWNDhoNDhWMTkuOXYtNFY0SDM4eiBNNDQsNDRINFYxOS45aDQwVjQ0eiBNNCwxNS45VjhoNnY0aDRWOGgyMHY0aDRWOGg2djcuOUg0eiIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iNy41IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMTYuNjY3IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMjUuNTgzIiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMzQuNSIgeT0iMjQiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjcuNSIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjE2LjY2NyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjI1LjU4MyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjM0LjUiIHk9IjMzIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmailField = function SvgEmailField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2c5.43 0 9.848 4.327 9.996 9.72L22 12v1c0 2.173-1.523 4-3.5 4-1.173 0-2.186-.643-2.816-1.62a5 5 0 1 1 1.311-3.597L17 12v1c0 1.14.716 2 1.5 2 .745 0 1.428-.775 1.495-1.831L20 13v-1a8 8 0 1 0-4.677 7.28 1 1 0 1 1 .831 1.819A9.966 9.966 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2Zm0 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z\"\n })));\n};\nexport { SvgEmailField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik0xMiwyIEMxNy40MjkyMzk5LDIgMjEuODQ3OTMxNyw2LjMyNjY3MDc5IDIxLjk5NjE1ODIsMTEuNzIwMDk1MiBMMjIsMTIgTDIyLDEzIEMyMiwxNS4xNzI5MjA4IDIwLjQ3NzQzNCwxNyAxOC41LDE3IEMxNy4zMjY5MzkxLDE3IDE2LjMxMzk1MjksMTYuMzU3MDI0NCAxNS42ODM5MzgyLDE1LjM4MDMwMjQgQzE0Ljc3MDU5MywxNi4zNzU3ODIzIDEzLjQ1ODE5MzQsMTcgMTIsMTcgQzkuMjM4NTc2MjUsMTcgNywxNC43NjE0MjM3IDcsMTIgQzcsOS4yMzg1NzYyNSA5LjIzODU3NjI1LDcgMTIsNyBDMTQuNjg4NzU0Nyw3IDE2Ljg4MTgxODEsOS4xMjIzMDY3MSAxNi45OTUzODA1LDExLjc4MzExMDQgTDE3LDEyIEwxNywxMyBDMTcsMTQuMTQwNzg3NyAxNy43MTYwMTAzLDE1IDE4LjUsMTUgQzE5LjI0NDc5MDIsMTUgMTkuOTI4MjI5LDE0LjIyNDU2MDkgMTkuOTk0NzEwOSwxMy4xNjg5MzQxIEwyMCwxMyBMMjAsMTIgQzIwLDcuNTgxNzIyIDE2LjQxODI3OCw0IDEyLDQgQzcuNTgxNzIyLDQgNCw3LjU4MTcyMiA0LDEyIEM0LDE2LjQxODI3OCA3LjU4MTcyMiwyMCAxMiwyMCBDMTMuMTYzMDk0OCwyMCAxNC4yODkyODIyLDE5Ljc1MjI2MTggMTUuMzIyNTE1OSwxOS4yNzk4MzMxIEMxNS44MjQ3ODc2LDE5LjA1MDE3NzcgMTYuNDE4MTMxNywxOS4yNzExNzcgMTYuNjQ3Nzg3LDE5Ljc3MzQ0ODcgQzE2Ljg3NzQ0MjMsMjAuMjc1NzIwNSAxNi42NTY0NDMsMjAuODY5MDY0NiAxNi4xNTQxNzEzLDIxLjA5ODcxOTkgQzE0Ljg2MTIxOCwyMS42ODk5MDEgMTMuNDUxNTQ2MywyMiAxMiwyMiBDNi40NzcxNTI1LDIyIDIsMTcuNTIyODQ3NSAyLDEyIEMyLDYuNDc3MTUyNSA2LjQ3NzE1MjUsMiAxMiwyIFogTTEyLDkgQzEwLjM0MzE0NTgsOSA5LDEwLjM0MzE0NTggOSwxMiBDOSwxMy42NTY4NTQyIDEwLjM0MzE0NTgsMTUgMTIsMTUgQzEzLjY1Njg1NDIsMTUgMTUsMTMuNjU2ODU0MiAxNSwxMiBDMTUsMTAuMzQzMTQ1OCAxMy42NTY4NTQyLDkgMTIsOSBaIi8+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFieldset = function SvgFieldset(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 80,\n height: 80,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 20h1v1H1v-2h1zm20 0h-1v1h2v-2h-1zM1 5h1V4h1V3H1zm1 2H1v2h1zm0 4H1v2h1zm20-2h1V7h-1zm0 4h1v-2h-1zM2 15H1v2h1zm20 2h1v-2h-1zM5 4h2V3H5zm6 0V3H9v1zm2 0h2V3h-2zm6-1h-2v1h2zM5 21h2v-1H5zm4 0h2v-1H9zm4 0h2v-1h-2zm4 0h2v-1h-2zm4-17h1v1h1V3h-2zm-1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1V8a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19V8H5v2h14m1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1v-2a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19v-2H5v2h14\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgFieldset as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MHB4IiBoZWlnaHQ9IjgwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAyMGgxdjFIMXYtMmgxem0yMCAwaC0xdjFoMnYtMmgtMXpNMSA1aDFWNGgxVjNIMXptMSAySDF2Mmgxem0wIDRIMXYyaDF6bTIwLTJoMVY3aC0xem0wIDRoMXYtMmgtMXpNMiAxNUgxdjJoMXptMjAgMmgxdi0yaC0xek01IDRoMlYzSDV6bTYgMFYzSDl2MXptMiAwaDJWM2gtMnptNi0xaC0ydjFoMnpNNSAyMWgydi0xSDV6bTQgMGgydi0xSDl6bTQgMGgydi0xaC0yem00IDBoMnYtMWgtMnptNC0xN2gxdjFoMVYzaC0yem0tMSA0djJhMS4wMDEgMS4wMDEgMCAwIDEtMSAxSDVhMS4wMDEgMS4wMDEgMCAwIDEtMS0xVjhhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOVY4SDV2MmgxNG0xIDR2MmExLjAwMSAxLjAwMSAwIDAgMS0xIDFINWExLjAwMSAxLjAwMSAwIDAgMS0xLTF2LTJhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOXYtMkg1djJoMTQiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgForm = function SvgForm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.2 12.994a.312.312 0 0 1-.188-.191C1 12.76.999 12.113 1 6.982V1.208l.022-.045a.328.328 0 0 1 .14-.14L1.208 1h11.585l.05.025a.31.31 0 0 1 .136.135l.021.039v5.783c0 5.377 0 5.787-.013 5.831a.314.314 0 0 1-.142.162L12.8 13H7.012c-3.457.001-5.8 0-5.817-.01zm11.236-5.992V1.568H1.573v10.857c0 .01 1.099.01 5.436.01h5.432V7.003zM5.574 10.72v-.86h1.712v1.72H5.574v-.86zm1.144 0v-.284h-.576v.568h.576v-.284zm1.145 0v-.284h3.432v.568H7.863v-.284zM5.574 7.572V6.428h5.72v2.288h-5.72V7.572zm5.144 0V7H6.142v.566c0 .311 0 .569.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.289h2.28v.577h-2.28v-.288zM5.575 4.14V2.996h5.72v2.288h-5.72V4.14zm5.144 0v-.572H6.142v.566c0 .31 0 .568.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.284h2.28v.567h-2.28V4.14z\"\n })));\n};\nexport { SvgForm as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAxNCAxNCIgcm9sZT0iaW1nIiBmb2N1c2FibGU9ImZhbHNlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtIDEuMTk5Nzk5NSwxMi45OTM5MTYgYyAtMC4wNzkwMzQsLTAuMDIzIC0wLjE2NDA3MSwtMC4xMDkzIC0wLjE4Nzk4MTMsLTAuMTkxNCAtMC4wMTIwMDUsLTAuMDQyIC0wLjAxMzAwNiwtMC42ODk1IC0wLjAxMTAwNSwtNS44MjEwMDAzIGwgMCwtNS43NzQgMC4wMjIwMSwtMC4wNDUgYyAwLjAyODAxMiwtMC4wNTcgMC4wODMwMzYsLTAuMTExNyAwLjE0MDE2MDYsLTAuMTQwMSBsIDAuMDQ1MDE5LC0wLjAyMiA1Ljc5MjIwNDEsMCA1Ljc5MjMwNDEsMCAwLjA1MTAyLDAuMDI1IGMgMC4wNTYwMiwwLjAyNyAwLjEwMzY0NSwwLjA3NSAwLjEzNTQ1OSwwLjEzNDUgbCAwLjAyMTAxLDAuMDM5IDAsNS43ODMyIGMgMCw1LjM3NjUwMDMgMCw1Ljc4NjYwMDMgLTAuMDEzMDEsNS44MzExMDAzIC0wLjAxOTAxLDAuMDYgLTAuMDc5MDMsMC4xMjkxIC0wLjE0MTc2MSwwLjE2MjEgbCAtMC4wNDYwMiwwLjAyNCAtNS43ODc3MDIzLDAgYyAtMy40NTYyOTQyLDllLTQgLTUuNzk5MjA3LDAgLTUuODE2MDE0MywtMC4wMSB6IG0gMTEuMjM2NjU3NSwtNS45OTE5MDAzIDAsLTUuNDM0MiAtNS40MzE5NDgxLDAgLTUuNDMxODQ4MiwwIDAsNS40MjI5IGMgMCwyLjk4MjYgLTQuMDAyZS00LDUuNDI4MDAwMyAwLDUuNDM0MjAwMyAwLDAuMDEgMS4wOTkwNzUxLDAuMDExIDUuNDM2NTUwMiwwLjAxMSBsIDUuNDMyMTQ4MSwwIDAsLTUuNDM0MjAwMyB6IG0gLTYuODYxOTY2MywzLjcxODEwMDMgMCwtMC44NjAzMDAzIDAuODU1NzY5OSwwIDAuODU1NzcsMCAwLDAuODYwMzAwMyAwLDAuODYwMyAtMC44NTU3NywwIC0wLjg1NTc2OTksMCAwLC0wLjg2MDMgeiBtIDEuMTQzOTk0NSwwIDAsLTAuMjgzOCAtMC4yODgyMjQ2LDAgLTAuMjg4MzI0NiwwIDAsMC4yODM4IDAsMC4yODM3IDAuMjg4MzI0NiwwIDAuMjg4MjI0NiwwIDAsLTAuMjgzNyB6IG0gMS4xNDQwOTQ3LDAgMCwtMC4yODM4IDEuNzE2MDQxOCwwIDEuNzE2MDQxMywwIDAsMC4yODM4IDAsMC4yODM3IC0xLjcxNjA0MTMsMCAtMS43MTYwNDE4LDAgMCwtMC4yODM3IHogbSAtMi4yODgwODkyLC0zLjE0ODMwMDMgMCwtMS4xNDQxIDIuODYwMDM2NCwwIDIuODYwMTM1OSwwIDAsMS4xNDQxIDAsMS4xNDM5IC0yLjg2MDEzNTksMCAtMi44NjAwMzY0LDAgMCwtMS4xNDM5IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEzIDAsMC41Njg3IDAuMDEwMDA0LDAuNTcyIDAsMCAxLjAzMjk0NjYsMC4wMSAyLjI4ODA4OTIsMC4wMSBsIDIuMjgyMDg2OCwwIDAsLTAuNTcyIHogbSAtNy45OTkyNTc4LDAgMCwtMC4yODg0IDEuMTM5NTkyNywwIDEuMTM5NDkyNSwwIDAsMC4yODg0IDAsMC4yODgyIC0xLjEzOTQ5MjUsMCAtMS4xMzk1OTI3LDAgMCwtMC4yODgyIHogbSAyLjg1NTYzNDUsLTMuNDMyMSAwLC0xLjE0NDEgMi44NjAwMzY0LDAgMi44NjAxMzU5LDAgMCwxLjE0NDEgMCwxLjE0NCAtMi44NjAxMzU5LDAgLTIuODYwMDM2NCwwIDAsLTEuMTQ0IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEyIDAsMC41Njg2IDAuMDEwMDA0LDAuNTcxOSAwLDAgMS4wMzI5NDY2LDAuMDEgMi4yODgwODkyLDAuMDEgbCAyLjI4MjA4NjgsMCAwLC0wLjU3MTkgeiBtIC03Ljk5OTI1NzgsMCAwLC0wLjI4MzkgMS4xMzk1OTI3LDAgMS4xMzk0OTI1LDAgMCwwLjI4MzkgMCwwLjI4MzcgLTEuMTM5NDkyNSwwIC0xLjEzOTU5MjcsMCAwLC0wLjI4MzcgeiIvPjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGdprField = function SvgGdprField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2zm0 8h5s1-1 1-5c0 0-5-1-6-2v7H5c1 4 5 7 5 7v-7z\"\n })));\n};\nexport { SvgGdprField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+Cgk8cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KCTxnPgoJCTxwYXRoIGQ9Ik0xMCAyczMgMiA3IDJjMCAxMS03IDE0LTcgMTRTMyAxNSAzIDRjNCAwIDctMiA3LTJ6bTAgOGg1czEtMSAxLTVjMCAwLTUtMS02LTJ2N0g1YzEgNCA1IDcgNSA3di03eiIvPgoJPC9nPgo8L3N2Zz4K\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgHiddenField = function SvgHiddenField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 1000 1000\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M499 270q57 0 104.5 28t75.5 76 28 104q0 39-15 76l122 122q97-81 142-198-36-91-104-162T694 206q-93-40-195-40-86 0-166 29l90 90q38-15 76-15zM83 157l95 94 19 20q-52 40-91.5 93T42 478q36 91 104.5 162T304 750q93 40 195 40 95 0 183-35l139 139 53-53-738-737zm230 230 65 64q-4 15-4 27 0 34 17 62.5t45.5 45.5 62.5 17q14 0 27-3l65 64q-45 22-92 22-56 0-104-28t-76-76-28-104q0-47 22-91zm180-33 131 131v-6q0-34-16.5-63t-45-45.5T500 354h-7z\"\n })));\n};\nexport { SvgHiddenField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00OTkgMjcwcTU3IDAgMTA0LjUgMjh0NzUuNSA3NiAyOCAxMDRxMCAzOS0xNSA3NmwxMjIgMTIycTk3LTgxIDE0Mi0xOTgtMzYtOTEtMTA0LTE2MlQ2OTQgMjA2cS05My00MC0xOTUtNDAtODYgMC0xNjYgMjlsOTAgOTBxMzgtMTUgNzYtMTV6TTgzIDE1N2w5NSA5NCAxOSAyMHEtNTIgNDAtOTEuNSA5M1Q0MiA0NzhxMzYgOTEgMTA0LjUgMTYyVDMwNCA3NTBxOTMgNDAgMTk1IDQwIDk1IDAgMTgzLTM1bDEzOSAxMzkgNTMtNTMtNzM4LTczN3ptMjMwIDIzMGw2NSA2NHEtNCAxNS00IDI3IDAgMzQgMTcgNjIuNXQ0NS41IDQ1LjUgNjIuNSAxN3ExNCAwIDI3LTNsNjUgNjRxLTQ1IDIyLTkyIDIyLTU2IDAtMTA0LTI4dC03Ni03Ni0yOC0xMDRxMC00NyAyMi05MXptMTgwLTMzbDEzMSAxMzF2LTZxMC0zNC0xNi41LTYzdC00NS00NS41VDUwMCAzNTRoLTd6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 341.333,\n height: 341.333,\n viewBox: \"0 0 256 256\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#9b51e0\",\n d: \"M0 128v128h256V0H0v128zm145.6-66.6c2.9.7 7.8 2.8 11.1 4.5 6.7 3.6 18.3 14.6 16.8 16-2.6 2.3-31.9 23.1-32.6 23.1-.5 0-.9-.5-.9-1 0-.6-1.1-2.2-2.5-3.5-3-3.1-8.3-3.3-11.6-.6-2.2 1.8-2.4 2.7-2.7 14l-.4 12.1H136v37h-13v34H82v-44.8c0-35.5.3-46.1 1.5-51.7 3.9-18.6 18.2-34.2 35.6-38.9 6.9-1.9 19.9-2 26.5-.2z\"\n })));\n};\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwoJdmVyc2lvbj0iMS4wIgoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJd2lkdGg9IjI1Ni4wMDAwMDBwdCIKCWhlaWdodD0iMjU2LjAwMDAwMHB0IgoJdmlld0JveD0iMCAwIDI1Ni4wMDAwMDAgMjU2LjAwMDAwMCIKCXByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiCj4KCTxnCgkJdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjU2LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKCQlmaWxsPSIjOWI1MWUwIgoJCXN0cm9rZT0ibm9uZSIKCT4KCQk8cGF0aAoJCQlkPSJNMCAxMjgwIGwwIC0xMjgwIDEyODAgMCAxMjgwIDAgMCAxMjgwIDAgMTI4MCAtMTI4MCAwIC0xMjgwIDAgMAoJCQktMTI4MHogbTE0NTYgNjY2IGMyOSAtNyA3OCAtMjggMTExIC00NSA2NyAtMzYgMTgzIC0xNDYgMTY4IC0xNjAgLTI2IC0yMwoJCQktMzE5IC0yMzEgLTMyNiAtMjMxIC01IDAgLTkgNSAtOSAxMCAwIDYgLTExIDIyIC0yNSAzNSAtMzAgMzEgLTgzIDMzIC0xMTYgNgoJCQktMjIgLTE4IC0yNCAtMjcgLTI3IC0xNDAgbC00IC0xMjEgNjYgMCA2NiAwIDAgLTE4NSAwIC0xODUgLTY1IDAgLTY1IDAgMAoJCQktMTcwIDAgLTE3MCAtMjA1IDAgLTIwNSAwIDAgNDQ4IGMwIDM1NSAzIDQ2MSAxNSA1MTcgMzkgMTg2IDE4MiAzNDIgMzU2IDM4OQoJCQk2OSAxOSAxOTkgMjAgMjY1IDJ6IgoJCS8+Cgk8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgNumberField = function SvgNumberField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 52 52\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.8 49.5H7.2c-2.6 0-4.7-2.1-4.7-4.7V7.2c0-2.6 2.1-4.7 4.7-4.7h37.6c2.6 0 4.7 2.1 4.7 4.7v37.6c0 2.6-2.1 4.7-4.7 4.7zm-36-39.2v31.3c0 .9.7 1.6 1.6 1.6h31.3c.9 0 1.6-.7 1.6-1.6V10.3c0-.9-.7-1.6-1.6-1.6H10.4c-.9.1-1.6.8-1.6 1.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.2 20.3h-2.9l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.2 4.9h-5.8l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.3 4.9H18c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h3L19 28.7h-3.1c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h2.9L17 36.5v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h5.7L26 36.4v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h3.2c.2 0 .3-.1.4-.3l.6-2.2V29c0-.2-.1-.4-.4-.4h-3l1.4-5.6h3.1c.2 0 .3-.1.4-.3l.6-2.2v-.1c-.1.1-.3-.1-.5-.1zm-8.1 8.5h-5.8l1.4-5.6h5.7l-1.3 5.6z\"\n })));\n};\nexport { SvgNumberField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCgkgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNTIgNTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUyIDUyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZD0iTTQ0LjgsNDkuNUg3LjJjLTIuNiwwLTQuNy0yLjEtNC43LTQuN1Y3LjJjMC0yLjYsMi4xLTQuNyw0LjctNC43aDM3LjZjMi42LDAsNC43LDIuMSw0LjcsNC43djM3LjYKCUM0OS41LDQ3LjQsNDcuNCw0OS41LDQ0LjgsNDkuNXogTTguOCwxMC4zdjMxLjNjMCwwLjksMC43LDEuNiwxLjYsMS42aDMxLjNjMC45LDAsMS42LTAuNywxLjYtMS42VjEwLjNjMC0wLjktMC43LTEuNi0xLjYtMS42SDEwLjQKCUM5LjUsOC44LDguOCw5LjUsOC44LDEwLjN6Ii8+CjxwYXRoIGQ9Ik0zNi4yLDIwLjNoLTIuOWwxLjItNC44di0wLjFjMC0wLjItMC4xLTAuNC0wLjQtMC40aC0yLjNjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMS4yLDQuOWgtNS44bDEuMi00LjgKCXYtMC4xYzAtMC4yLTAuMS0wLjQtMC40LTAuNGgtMi4zYy0wLjIsMC0wLjMsMC4xLTAuNCwwLjNsLTEuMyw0LjloLTMuMmMtMC4yLDAtMC4zLDAuMS0wLjQsMC4zbC0wLjYsMi4ydjAuMWMwLDAuMiwwLjEsMC40LDAuNCwwLjQKCWgzbC0xLjQsNS42aC0zLjFjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMC42LDIuMnYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuOWwtMS4yLDQuOHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuMwoJYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wxLjMtNWg1LjdMMjYsMzYuNHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuM2MwLjIsMCwwLjMtMC4xLDAuNC0wLjNsMS4zLTVoMy4yYzAuMiwwLDAuMy0wLjEsMC40LTAuMwoJbDAuNi0yLjJWMjljMC0wLjItMC4xLTAuNC0wLjQtMC40aC0zbDEuNC01LjZoMy4xYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wwLjYtMi4ydi0wLjFDMzYuNiwyMC41LDM2LjQsMjAuMywzNi4yLDIwLjNMMzYuMiwyMC4zegoJIE0yOC4xLDI4LjhoLTUuOGwxLjQtNS42aDUuN0wyOC4xLDI4Ljh6Ii8+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPasswordField = function SvgPasswordField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.988 51.297c.375 0 .961-.14 1.57-.445C42.66 43.469 47.185 40.375 47.185 31.96V14.289c0-2.414-1.055-3.187-3-4.008-2.743-1.125-11.532-4.289-14.25-5.25-.633-.187-1.266-.328-1.946-.328-.656 0-1.289.14-1.922.328-2.718.985-11.507 4.149-14.25 5.25-1.945.797-3 1.594-3 4.008v17.672c0 8.414 4.547 11.484 17.625 18.89.61.305 1.172.446 1.547.446Zm-8.226-15.563v-9.093c0-1.524.586-2.32 1.828-2.508V21.32c0-4.312 2.601-7.218 6.398-7.218 3.82 0 6.399 2.906 6.399 7.218v2.79c1.265.187 1.851.984 1.851 2.53v9.094c0 1.758-.773 2.578-2.414 2.578H22.152c-1.617 0-2.39-.82-2.39-2.578Zm4.289-11.648 7.898-.023v-3c0-2.766-1.57-4.594-3.96-4.594-2.368 0-3.938 1.828-3.938 4.593Z\"\n })));\n};\nexport { SvgPasswordField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMjcuOTg4MyA1MS4yOTY5IEMgMjguMzYzMyA1MS4yOTY5IDI4Ljk0OTIgNTEuMTU2MiAyOS41NTg2IDUwLjg1MTYgQyA0Mi42NjAyIDQzLjQ2ODggNDcuMTgzNiA0MC4zNzUwIDQ3LjE4MzYgMzEuOTYwOSBMIDQ3LjE4MzYgMTQuMjg5MSBDIDQ3LjE4MzYgMTEuODc1MCA0Ni4xMjg5IDExLjEwMTYgNDQuMTgzNiAxMC4yODEzIEMgNDEuNDQxNCA5LjE1NjIgMzIuNjUyNCA1Ljk5MjIgMjkuOTMzNiA1LjAzMTMgQyAyOS4zMDA4IDQuODQzOCAyOC42NjgwIDQuNzAzMSAyNy45ODgzIDQuNzAzMSBDIDI3LjMzMjAgNC43MDMxIDI2LjY5OTIgNC44NDM4IDI2LjA2NjQgNS4wMzEzIEMgMjMuMzQ3NiA2LjAxNTYgMTQuNTU4NiA5LjE3OTcgMTEuODE2NCAxMC4yODEzIEMgOS44NzExIDExLjA3ODEgOC44MTY0IDExLjg3NTAgOC44MTY0IDE0LjI4OTEgTCA4LjgxNjQgMzEuOTYwOSBDIDguODE2NCA0MC4zNzUwIDEzLjM2MzMgNDMuNDQ1MyAyNi40NDE0IDUwLjg1MTYgQyAyNy4wNTA4IDUxLjE1NjIgMjcuNjEzMyA1MS4yOTY5IDI3Ljk4ODMgNTEuMjk2OSBaIE0gMTkuNzYxNyAzNS43MzQ0IEwgMTkuNzYxNyAyNi42NDA2IEMgMTkuNzYxNyAyNS4xMTcyIDIwLjM0NzYgMjQuMzIwMyAyMS41ODk4IDI0LjEzMjggTCAyMS41ODk4IDIxLjMyMDMgQyAyMS41ODk4IDE3LjAwNzggMjQuMTkxNCAxNC4xMDE2IDI3Ljk4ODMgMTQuMTAxNiBDIDMxLjgwODYgMTQuMTAxNiAzNC4zODY3IDE3LjAwNzggMzQuMzg2NyAyMS4zMjAzIEwgMzQuMzg2NyAyNC4xMDk0IEMgMzUuNjUyNCAyNC4yOTY5IDM2LjIzODMgMjUuMDkzOCAzNi4yMzgzIDI2LjY0MDYgTCAzNi4yMzgzIDM1LjczNDQgQyAzNi4yMzgzIDM3LjQ5MjIgMzUuNDY0OSAzOC4zMTI1IDMzLjgyNDIgMzguMzEyNSBMIDIyLjE1MjQgMzguMzEyNSBDIDIwLjUzNTEgMzguMzEyNSAxOS43NjE3IDM3LjQ5MjIgMTkuNzYxNyAzNS43MzQ0IFogTSAyNC4wNTA4IDI0LjA4NjAgTCAzMS45NDkyIDI0LjA2MjUgTCAzMS45NDkyIDIxLjA2MjUgQyAzMS45NDkyIDE4LjI5NjkgMzAuMzc4OSAxNi40Njg3IDI3Ljk4ODMgMTYuNDY4NyBDIDI1LjYyMTEgMTYuNDY4NyAyNC4wNTA4IDE4LjI5NjkgMjQuMDUwOCAyMS4wNjI1IFoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPhoneField = function SvgPhoneField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.156 37.762c6.774 6.773 15.024 12 21.75 12 3.024 0 5.672-1.055 7.805-3.399 1.242-1.383 2.016-3 2.016-4.593 0-1.172-.446-2.297-1.57-3.094l-7.173-5.11c-1.101-.75-2.015-1.125-2.859-1.125-1.078 0-2.016.61-3.094 1.664l-1.664 1.641a1.263 1.263 0 0 1-.89.375c-.375 0-.704-.14-.961-.258-1.43-.773-3.914-2.906-6.235-5.203-2.297-2.297-4.43-4.781-5.18-6.234a1.991 1.991 0 0 1-.257-.938c0-.304.093-.61.351-.867l1.64-1.71c1.056-1.079 1.665-2.017 1.665-3.095 0-.843-.375-1.757-1.148-2.859l-5.04-7.102c-.82-1.125-1.968-1.617-3.234-1.617-1.547 0-3.164.703-4.523 2.04-2.274 2.18-3.282 4.874-3.282 7.85 0 6.727 5.133 14.884 11.883 21.634Z\"\n })));\n};\nexport { SvgPhoneField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMTguMTU2MiAzNy43NjE3IEMgMjQuOTI5NyA0NC41MzUyIDMzLjE3OTcgNDkuNzYxNyAzOS45MDYyIDQ5Ljc2MTcgQyA0Mi45Mjk3IDQ5Ljc2MTcgNDUuNTc4MSA0OC43MDcwIDQ3LjcxMDkgNDYuMzYzMyBDIDQ4Ljk1MjggNDQuOTgwNSA0OS43MjY2IDQzLjM2MzMgNDkuNzI2NiA0MS43Njk1IEMgNDkuNzI2NiA0MC41OTc3IDQ5LjI4MTIgMzkuNDcyNyA0OC4xNTYyIDM4LjY3NTggTCA0MC45ODQzIDMzLjU2NjQgQyAzOS44ODI4IDMyLjgxNjQgMzguOTY4NyAzMi40NDE0IDM4LjEyNTAgMzIuNDQxNCBDIDM3LjA0NjggMzIuNDQxNCAzNi4xMDkzIDMzLjA1MDggMzUuMDMxMiAzNC4xMDU1IEwgMzMuMzY3MSAzNS43NDYxIEMgMzMuMTA5MyAzNi4wMDM5IDMyLjc4MTIgMzYuMTIxMSAzMi40NzY1IDM2LjEyMTEgQyAzMi4xMDE1IDM2LjEyMTEgMzEuNzczNCAzNS45ODA1IDMxLjUxNTYgMzUuODYzMyBDIDMwLjA4NTkgMzUuMDg5OCAyNy42MDE1IDMyLjk1NzEgMjUuMjgxMiAzMC42NjAyIEMgMjIuOTg0MyAyOC4zNjMzIDIwLjg1MTUgMjUuODc4OSAyMC4xMDE1IDI0LjQyNTggQyAxOS45NjA5IDI0LjE2ODAgMTkuODQzNyAyMy44Mzk4IDE5Ljg0MzcgMjMuNDg4MyBDIDE5Ljg0MzcgMjMuMTgzNiAxOS45Mzc1IDIyLjg3ODkgMjAuMTk1MyAyMi42MjExIEwgMjEuODM1OSAyMC45MTAyIEMgMjIuODkwNiAxOS44MzIwIDIzLjQ5OTkgMTguODk0NSAyMy40OTk5IDE3LjgxNjQgQyAyMy40OTk5IDE2Ljk3MjcgMjMuMTI1MCAxNi4wNTg2IDIyLjM1MTUgMTQuOTU3MSBMIDE3LjMxMjQgNy44NTU1IEMgMTYuNDkyMSA2LjczMDUgMTUuMzQzNyA2LjIzODMgMTQuMDc4MSA2LjIzODMgQyAxMi41MzEyIDYuMjM4MyAxMC45MTQwIDYuOTQxNCA5LjU1NDYgOC4yNzc0IEMgNy4yODEyIDEwLjQ1NzEgNi4yNzM0IDEzLjE1MjQgNi4yNzM0IDE2LjEyODkgQyA2LjI3MzQgMjIuODU1NSAxMS40MDYyIDMxLjAxMTcgMTguMTU2MiAzNy43NjE3IFoiLz48L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioButtons = function SvgRadioButtons(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 4h13v1H9zm0 17h13v-1H9zm0-8h13v-1H9zM7 4a3 3 0 1 1-3-3 3 3 0 0 1 3 3zM6 4a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2 2 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm-2-9a1 1 0 1 0 1 1 1 1 0 0 0-1-1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgRadioButtons as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05IDRoMTN2MUg5em0wIDE3aDEzdi0xSDl6bTAtOGgxM3YtMUg5ek03IDRhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzek02IDRhMiAyIDAgMSAwLTIgMiAyLjAwMyAyLjAwMyAwIDAgMCAyLTJ6bTEgOGEzIDMgMCAxIDEtMy0zIDMgMyAwIDAgMSAzIDN6bS0xIDBhMiAyIDAgMSAwLTIgMiAyIDIgMCAwIDAgMi0yem0xIDhhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzem0tMSAwYTIgMiAwIDEgMC0yIDIgMi4wMDMgMi4wMDMgMCAwIDAgMi0yem0tMi05YTEgMSAwIDEgMCAxIDEgMSAxIDAgMCAwLTEtMXoiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioField = function SvgRadioField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 4C5.32 4 4 5.32 4 7s1.32 3 3 3 3-1.32 3-3-1.32-3-3-3Zm0-3C3.7 1 1 3.7 1 7s2.7 6 6 6 6-2.7 6-6-2.7-6-6-6Zm0 10.8c-2.64 0-4.8-2.16-4.8-4.8 0-2.64 2.16-4.8 4.8-4.8 2.64 0 4.8 2.16 4.8 4.8 0 2.64-2.16 4.8-4.8 4.8z\"\n })));\n};\nexport { SvgRadioField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE0IDE0IiByb2xlPSJpbWciIGZvY3VzYWJsZT0iZmFsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gNyw0IEMgNS4zMiw0IDQsNS4zMiA0LDcgNCw4LjY4IDUuMzIsMTAgNywxMCA4LjY4LDEwIDEwLDguNjggMTAsNyAxMCw1LjMyIDguNjgsNCA3LDQgWiBNIDcsMSBDIDMuNywxIDEsMy43IDEsNyBjIDAsMy4zIDIuNyw2IDYsNiAzLjMsMCA2LC0yLjcgNiwtNiBDIDEzLDMuNyAxMC4zLDEgNywxIFogTSA3LDExLjggQyA0LjM2LDExLjggMi4yLDkuNjQgMi4yLDcgMi4yLDQuMzYgNC4zNiwyLjIgNywyLjIgYyAyLjY0LDAgNC44LDIuMTYgNC44LDQuOCAwLDIuNjQgLTIuMTYsNC44IC00LjgsNC44IHoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRangeField = function SvgRangeField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 11h-3.184a2.982 2.982 0 0 0-5.632 0H3a1 1 0 0 0 0 2h9.184a2.982 2.982 0 0 0 5.632 0H21a1 1 0 0 0 0-2Zm-6 2a1 1 0 1 1 1-1 1.001 1.001 0 0 1-1 1Z\"\n })));\n};\nexport { SvgRangeField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggZD0iTTIxLDExSDE3LjgxNTczYTIuOTgyMDgsMi45ODIwOCwwLDAsMC01LjYzMTQ2LDBIM2ExLDEsMCwwLDAsMCwyaDkuMTg0MzNhMi45ODIsMi45ODIsMCwwLDAsNS42MzE0LDBIMjFhMSwxLDAsMCwwLDAtMlptLTYsMmExLDEsMCwxLDEsMS0xQTEuMDAxMywxLjAwMTMsMCwwLDEsMTUsMTNaIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSelect = function SvgSelect(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 4H1c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1zm-5 7H1V5h9v6zm3-2.6L11 7h4l-2 1.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1e72bd\",\n d: \"M2 6h1v4H2V6z\"\n })));\n};\nexport { SvgSelect as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8cGF0aCBkPSJNMTUgNGgtMTRjLTAuNiAwLTEgMC40LTEgMXY2YzAgMC42IDAuNCAxIDEgMWgxNGMwLjYgMCAxLTAuNCAxLTF2LTZjMC0wLjYtMC40LTEtMS0xek0xMCAxMWgtOXYtNmg5djZ6TTEzIDguNGwtMi0xLjRoNGwtMiAxLjR6Ij48L3BhdGg+CjxwYXRoIGZpbGw9IiMxZTcyYmQiIGQ9Ik0yIDZoMXY0aC0xdi00eiI+PC9wYXRoPgo8L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextField = function SvgTextField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 9h2v30H8v3h8v-3h-2V9h2V6H8zM4 16h3.021v-4H0v24h7.042v-4H4zM16.979 12v4H44v16H16.958v4H48V12z\"\n })));\n};\nexport { SvgTextField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjgsOSAxMCw5IDEwLDEyIDEwLDE2IDEwLDM5IDgsMzkgOCw0MiAxNiw0MiAxNiwzOSAxNCwzOSAxNCwxNiAxNCwxMiAxNCw5IDE2LDkgMTYsNiA4LDYgICIvPgoNPHBvbHlnb24gcG9pbnRzPSI0LDE2IDcuMDIxLDE2IDcuMDIxLDEyIDAsMTIgMCwzNiA3LjA0MiwzNiA3LjA0MiwzMiA0LDMyICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTYuOTc5LDEyIDE2Ljk3OSwxNiA0NCwxNiA0NCwzMiAxNi45NTgsMzIgMTYuOTU4LDM2IDQ4LDM2IDQ4LDEyICAiLz4KDTwvZz4KDTwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextareaField = function SvgTextareaField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 33h-2V3h2V0H8v3h2v30H8v3h8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.031 6v4H44v34H4V10h2.938V6H0v42h48V6z\"\n })));\n};\nexport { SvgTextareaField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjE2LDMzIDE0LDMzIDE0LDEwIDE0LDYgMTQsMyAxNiwzIDE2LDAgOCwwIDgsMyAxMCwzIDEwLDYgMTAsMTAgMTAsMzMgOCwzMyA4LDM2IDE2LDM2ICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTcuMDMxLDYgMTcuMDMxLDEwIDQ0LDEwIDQ0LDQ0IDQsNDQgNCwxMCA2LjkzOCwxMCA2LjkzOCw2IDAsNiAwLDQ4IDQ4LDQ4IDQ4LDYgICIvPgoNPC9nPgoNPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgUrlField = function SvgUrlField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.794 12.794c-.478.475-1.113.737-1.794.737s-1.316-.262-1.794-.738a2.54 2.54 0 0 1 0-3.584L5.5 6.916 4.084 5.5 1.791 7.794a4.54 4.54 0 0 0 .003 6.413c.853.855 1.99 1.324 3.206 1.324s2.353-.469 3.206-1.325l2.294-2.294L9.084 10.5l-2.29 2.294zm7.412-11C13.353.938 12.216.469 11 .469S8.647.938 7.794 1.794L5.5 4.084 6.916 5.5 9.21 3.206c.474-.475 1.109-.737 1.79-.737s1.316.263 1.794.737a2.537 2.537 0 0 1 0 3.584L10.5 9.084l1.416 1.416 2.294-2.294a4.54 4.54 0 0 0-.004-6.412zm-2.5 3.912L10.29 4.29l-6 6 1.416 1.416 6-6z\"\n })));\n};\nexport { SvgUrlField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgaWQ9Imljb24tYm91bmQiIGZpbGw9Im5vbmUiIC8+CiAgPHBhdGggZD0iTTYuNzk0LDEyLjc5NEM2LjMxNiwxMy4yNjksNS42ODEsMTMuNTMxLDUsMTMuNTMxcy0xLjMxNi0wLjI2Mi0xLjc5NC0wLjczOGMtMC45ODctMC45ODgtMC45ODctMi41OTcsMC0zLjU4NEw1LjUsNi45MTYgTDQuMDg0LDUuNUwxLjc5MSw3Ljc5NGMtMS43NjYsMS43NjktMS43NjYsNC42NDQsMC4wMDMsNi40MTNDMi42NDcsMTUuMDYyLDMuNzg0LDE1LjUzMSw1LDE1LjUzMXMyLjM1My0wLjQ2OSwzLjIwNi0xLjMyNSBsMi4yOTQtMi4yOTRMOS4wODQsMTAuNUw2Ljc5NCwxMi43OTR6IE0xNC4yMDYsMS43OTRDMTMuMzUzLDAuOTM4LDEyLjIxNiwwLjQ2OSwxMSwwLjQ2OVM4LjY0NywwLjkzOCw3Ljc5NCwxLjc5NEw1LjUsNC4wODQgTDYuOTE2LDUuNWwyLjI5NC0yLjI5NEM5LjY4NCwyLjczMSwxMC4zMTksMi40NjksMTEsMi40NjlzMS4zMTYsMC4yNjMsMS43OTQsMC43MzdjMC45ODgsMC45ODcsMC45ODgsMi41OTcsMCwzLjU4NEwxMC41LDkuMDg0IGwxLjQxNiwxLjQxNmwyLjI5NC0yLjI5NEMxNS45NzUsNi40MzgsMTUuOTc1LDMuNTYyLDE0LjIwNiwxLjc5NHogTTExLjcwNiw1LjcwNmwtMS40MTYtMS40MTZsLTYsNmwxLjQxNiwxLjQxNkwxMS43MDYsNS43MDZ6IiAvPgo8L3N2Zz4=\";","import { __ } from '@wordpress/i18n';\n\nimport {\n\tTextControl,\n\tPanelBody,\n\tToggleControl,\n\tButton,\n\tToolbarGroup,\n\tToolbarButton,\n} from '@wordpress/components';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\nimport { useState } from '@wordpress/element';\nimport { OptionsModal } from '../select/modal';\nimport Toolbar from '../../components/field-options/toolbar';\nimport clsx from 'clsx';\n\nexport default function Edit( props ) {\n\tconst { attributes, setAttributes } = props;\n\tconst { name, required, options, type } = attributes;\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\n\tconst containerClass = clsx( {\n\t\t'missing-name': ! name,\n\t} );\n\tconst blockProps = useBlockProps( {\n\t\tclassName: containerClass,\n\t} );\n\n\tconst { children, ...innerBlocksProps } = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: false,\n\t\ttemplateLock: false,\n\t} );\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { name: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Affects the \"name\" attribute of the input element, and is used as a name for the form submission results.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { required: ! required } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetIsModalOpen( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Manage Options', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{ isModalOpen && (\n\t\t\t\t {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ options.map( ( opt, index ) => {\n\t\t\t\tconst id = name + '-' + index;\n\t\t\t\treturn (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t} ) }\n\t\t
    \n\t);\n}\n","import { useBlockProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes, className } ) {\n\tconst { name, options, type, required } = attributes;\n\tconst blockProps = useBlockProps.save( {\n\t\tclassName,\n\t} );\n\n\treturn (\n\t\t
    \n\t\t\t{ options.map( ( opt, index ) => {\n\t\t\t\tconst id = name + '-' + index;\n\t\t\t\treturn (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t} ) }\n\t\t
    \n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Checkboxes, Radios } from '../../icons/icons';\n\nconst variations = [\n\t{\n\t\tname: 'checkboxes',\n\t\ttitle: __( 'Multiple choices (Checkboxes)' ),\n\t\tdescription: __(\n\t\t\t'Offer users a list of choices, and allow them to select multiple option.',\n\t\t\t'formello-pro'\n\t\t),\n\t\ticon: Checkboxes,\n\t\tattributes: {\n\t\t\ttype: 'checkbox',\n\t\t},\n\t\tscope: [ 'inserter', 'block', 'transform' ],\n\t\tisDefault: true,\n\t},\n\t{\n\t\tname: 'radios',\n\t\ttitle: __( 'Single choice (Radio buttons)' ),\n\t\tdescription: __(\n\t\t\t'Offer users a list of choices, and allow them to select a single option.',\n\t\t\t'formello-pro'\n\t\t),\n\t\ticon: Radios,\n\t\tattributes: {\n\t\t\ttype: 'radio',\n\t\t},\n\t\tscope: [ 'inserter', 'block', 'transform' ],\n\t},\n];\n\n/**\n * Add `isActive` function to all `embed` variations, if not defined.\n * `isActive` function is used to find a variation match from a created\n * Block by providing its attributes.\n */\nvariations.forEach( ( variation ) => {\n\tvariation.isActive = ( blockAttributes, variationAttributes ) =>\n\t\tblockAttributes.type === variationAttributes.type;\n} );\n\nexport default variations;\n","import { Fragment, useState } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\n\nimport {\n\tToggleControl,\n\tTextareaControl,\n\tButton,\n\tModal,\n} from '@wordpress/components';\n\nimport OptionsList from './opts';\n\nexport function OptionsModal( props ) {\n\tconst { onRequestClose, attributes, setAttributes } = props;\n\n\tconst [ showRaw, setShowRaw ] = useState( false );\n\tconst [ showValue, setShowValue ] = useState( false );\n\n\tconst addNewRow = () => {\n\t\tsetAttributes( {\n\t\t\toptions: [ ...attributes.options, { label: '', value: '' } ],\n\t\t} );\n\t};\n\n\tconst deleteRow = ( record, index ) => {\n\t\tconst items = [ ...attributes.options ]; // make a separate copy of the array\n\t\titems.splice( index, 1 );\n\t\tsetAttributes( { options: items } );\n\t};\n\n\tconst handleChange = ( value, index, prop ) => {\n\t\t// 1. Make a shallow copy of the items\n\t\tconst items = [ ...attributes.options ];\n\t\t// 2. Make a shallow copy of the item you want to mutate\n\t\tconst item = { ...attributes.options[ index ] };\n\t\t// 3. Replace the property you're intested in\n\t\titem[ prop ] = value;\n\t\t// 4. Put it back into our array. N.B. we *are* mutating the array here, but that's why we made a copy first\n\t\titems[ index ] = item;\n\t\t// 5. Set the state to our new copy\n\t\tsetAttributes( { options: items } );\n\t};\n\n\tconst changeOrder = ( items ) => {\n\t\tsetAttributes( { options: items } );\n\t};\n\n\tconst bulkOpts = ( val ) => {\n\t\tconst opts = val.match( /[^\\r\\n]+/g );\n\t\tconst newSettings = [];\n\t\tfor ( const i in opts ) {\n\t\t\tconst tmp = opts[ i ].split( ',' );\n\t\t\tnewSettings.push( {\n\t\t\t\tvalue: tmp[ 0 ],\n\t\t\t\tlabel: tmp[ 1 ] ? tmp[ 1 ] : tmp[ 0 ],\n\t\t\t} );\n\t\t}\n\t\tsetAttributes( { options: newSettings } );\n\t};\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t setShowRaw( newval ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\n\t\t\t\t{ showRaw && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\t\treturn item.value + ',' + item.label;\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t.join( '\\r\\n' ) }\n\t\t\t\t\t\tonChange={ ( val ) => bulkOpts( val ) }\n\t\t\t\t\t\trows=\"6\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! showRaw && (\n\t\t\t\t\t\n\t\t\t\t\t\t setShowValue( newval ) }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAdd option\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t) }\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n","import {\n\tTextControl,\n\tCheckboxControl,\n\tFlex,\n\tFlexItem,\n\tButton,\n\tTooltip,\n} from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\nconst OptionsList = ( props ) => {\n\tconst { options, onChange, showValue, deleteRow } = props;\n\tconst dragItem = useRef();\n\tconst dragOverItem = useRef();\n\n\tconst dragStart = ( e, position ) => {\n\t\tdragItem.current = position;\n\t};\n\n\tconst dragEnter = ( e, position ) => {\n\t\tdragOverItem.current = position;\n\t};\n\n\tconst drop = () => {\n\t\tconst copyListItems = [ ...options ];\n\t\tconst dragItemContent = copyListItems[ dragItem.current ];\n\t\tcopyListItems.splice( dragItem.current, 1 );\n\t\tcopyListItems.splice( dragOverItem.current, 0, dragItemContent );\n\t\tdragItem.current = null;\n\t\tdragOverItem.current = null;\n\t\tprops.changeOrder( copyListItems );\n\t};\n\n\treturn options.map( ( obj, index ) => {\n\t\treturn (\n\t\t\t dragStart( e, index ) }\n\t\t\t\tonDragEnter={ ( e ) => dragEnter( e, index ) }\n\t\t\t\tonDragEnd={ drop }\n\t\t\t\tdraggable\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tonChange( val, index, 'selected' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{ showValue && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tonChange( val, index, 'value' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tonChange( val, index, 'label' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t deleteRow( obj, index ) }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} );\n};\nexport default OptionsList;\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { __ } from '@wordpress/i18n';\nimport { SVG, Rect, ToolbarButton } from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport { Asterisk } from '../../icons/icons';\n\nexport default function Toolbar( props ) {\n\tconst { attributes, setAttributes, name } = props;\n\tconst { required, showHelp, hideLabel, type } = attributes;\n\n\tconst toggleLabel = (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\tsetAttributes( { required: ! required } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ ( 'checkbox' || 'radio' ) !== type && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { hideLabel: ! hideLabel } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'formello/multichoices' !== name && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { showHelp: ! showHelp } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\n\t);\n}\n","import { ReactComponent as Asterisk } from '../../assets/icons/asterisk.svg';\nimport { ReactComponent as Checkbox } from '../../assets/icons/checkbox.svg';\nimport { ReactComponent as Calendar } from '../../assets/icons/date-field.svg';\nimport { ReactComponent as Checkboxes } from '../../assets/icons/checkboxes.svg';\nimport { ReactComponent as Clock } from '../../assets/icons/clock-field.svg';\nimport { ReactComponent as Color } from '../../assets/icons/color-field.svg';\nimport { ReactComponent as Email } from '../../assets/icons/email-field.svg';\nimport { ReactComponent as Fieldset } from '../../assets/icons/fieldset.svg';\nimport { ReactComponent as Form } from '../../assets/icons/form.svg';\nimport { ReactComponent as GDPR } from '../../assets/icons/gdpr-field.svg';\nimport { ReactComponent as Hidden } from '../../assets/icons/hidden-field.svg';\nimport { ReactComponent as Input } from '../../assets/icons/text-field.svg';\nimport { ReactComponent as Logo } from '../../assets/icons/logo.svg';\nimport { ReactComponent as Number } from '../../assets/icons/number-field.svg';\nimport { ReactComponent as Password } from '../../assets/icons/password-field.svg';\nimport { ReactComponent as Range } from '../../assets/icons/range-field.svg';\nimport { ReactComponent as Radio } from '../../assets/icons/radio-field.svg';\nimport { ReactComponent as Radios } from '../../assets/icons/radio-buttons.svg';\nimport { ReactComponent as Select } from '../../assets/icons/select.svg';\nimport { ReactComponent as Tel } from '../../assets/icons/phone-field.svg';\nimport { ReactComponent as Textarea } from '../../assets/icons/textarea-field.svg';\nimport { ReactComponent as Url } from '../../assets/icons/url-field.svg';\n\nexport {\n\tAsterisk,\n\tCheckbox,\n\tCheckboxes,\n\tClock,\n\tColor,\n\tEmail,\n\tFieldset,\n\tForm,\n\tGDPR,\n\tHidden,\n\tInput,\n\tLogo,\n\tNumber,\n\tPassword,\n\tRadio,\n\tRange,\n\tRadios,\n\tSelect,\n\tTel,\n\tTextarea,\n\tUrl,\n\tCalendar,\n};\n","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"i18n\"];","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 { registerBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport Edit from './edit';\nimport save from './save';\nimport variations from './variations';\nimport metadata from './block.json';\nimport { Fieldset } from '../../icons/icons';\n\n/**\n * Every block starts by registering a new block type definition.\n *\n * @see https://developer.wordpress.org/block-editor/developers/block-api/#registering-a-block\n */\nregisterBlockType( metadata, {\n\tvariations,\n\n\t/**\n\t * An icon property should be specified to make it easier to identify a block.\n\t * These can be any of WordPress’ Dashicons, or a custom svg element.\n\t */\n\ticon: Fieldset,\n\n\t/**\n\t * @see ./edit.js\n\t */\n\tedit: Edit,\n\n\t/**\n\t * @see ./save.js\n\t */\n\tsave,\n} );\n"],"names":["__","TextControl","PanelBody","ToggleControl","Button","ToolbarGroup","ToolbarButton","InspectorControls","BlockControls","useBlockProps","useInnerBlocksProps","useState","OptionsModal","Toolbar","clsx","jsx","_jsx","jsxs","_jsxs","Edit","props","attributes","setAttributes","name","required","options","type","isModalOpen","setIsModalOpen","containerClass","blockProps","className","children","innerBlocksProps","allowedBlocks","templateLock","label","icon","onClick","title","initialOpen","value","onChange","newval","help","__nextHasNoMarginBottom","checked","variant","onRequestClose","map","opt","index","id","htmlFor","selected","save","Checkboxes","Radios","variations","description","scope","isDefault","forEach","variation","isActive","blockAttributes","variationAttributes","Fragment","TextareaControl","Modal","OptionsList","showRaw","setShowRaw","showValue","setShowValue","addNewRow","deleteRow","record","items","splice","handleChange","prop","item","changeOrder","bulkOpts","val","opts","match","newSettings","i","tmp","split","push","size","shouldCloseOnClickOutside","placeholder","defaultValue","join","rows","CheckboxControl","Flex","FlexItem","Tooltip","useRef","dragItem","dragOverItem","dragStart","e","position","current","dragEnter","drop","copyListItems","dragItemContent","obj","justify","onDragStart","onDragEnter","onDragEnd","draggable","text","delay","isSmall","iconSize","SVG","Rect","Asterisk","showHelp","hideLabel","toggleLabel","xmlns","viewBox","x","y","width","height","transform","stroke","fill","strokeWidth","isPressed","ReactComponent","Checkbox","Calendar","Clock","Color","Email","Fieldset","Form","GDPR","Hidden","Input","Logo","Number","Password","Range","Radio","Select","Tel","Textarea","Url","registerBlockType","metadata","edit"],"sourceRoot":""} \ No newline at end of file diff --git a/build/blocks/output/block.json b/build/blocks/output/block.json index 39fa5f2b..5088ef77 100644 --- a/build/blocks/output/block.json +++ b/build/blocks/output/block.json @@ -5,6 +5,9 @@ "title": "Output", "description": "A block to display number output.", "category": "formello", + "ancestor": [ + "formello/form" + ], "icon": "number", "textdomain": "formello", "attributes": { diff --git a/build/blocks/output/index.asset.php b/build/blocks/output/index.asset.php index 08ec564e..7d9be404 100644 --- a/build/blocks/output/index.asset.php +++ b/build/blocks/output/index.asset.php @@ -1 +1 @@ - array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks'), 'version' => '5cc76f595a657e3715ab'); + array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks'), 'version' => '8a0249b62ef69f368a6e'); diff --git a/build/blocks/output/index.js b/build/blocks/output/index.js index e38f71ca..099d7fa6 100644 --- a/build/blocks/output/index.js +++ b/build/blocks/output/index.js @@ -151,7 +151,7 @@ module.exports = window["wp"]["blocks"]; \**************************************/ /***/ ((module) => { -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"formello/output","title":"Output","description":"A block to display number output.","category":"formello","icon":"number","textdomain":"formello","attributes":{"text":{"type":"string","source":"text","selector":"span","default":""}},"supports":{"html":false,"lock":false,"reusable":false,"inserter":true,"color":{"background":true,"text":true},"spacing":{"padding":["left","right"],"margin":["left","right"]},"__experimentalBorder":{"radius":true,"width":true,"color":true,"style":true},"typography":{"fontSize":true}},"editorScript":"file:./index.js","style":"file:./style-index.css"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"formello/output","title":"Output","description":"A block to display number output.","category":"formello","ancestor":["formello/form"],"icon":"number","textdomain":"formello","attributes":{"text":{"type":"string","source":"text","selector":"span","default":""}},"supports":{"html":false,"lock":false,"reusable":false,"inserter":true,"color":{"background":true,"text":true},"spacing":{"padding":["left","right"],"margin":["left","right"]},"__experimentalBorder":{"radius":true,"width":true,"color":true,"style":true},"typography":{"fontSize":true}},"editorScript":"file:./index.js","style":"file:./style-index.css"}'); /***/ }) diff --git a/build/blocks/select/block.json b/build/blocks/select/block.json index 9e4819f1..898587d0 100644 --- a/build/blocks/select/block.json +++ b/build/blocks/select/block.json @@ -6,6 +6,9 @@ "ancestor": [ "formello/form" ], + "usesContext": [ + "formello/requiredText" + ], "description": "Dropdown select.", "category": "formello", "textdomain": "formello", @@ -111,6 +114,9 @@ "source": "html", "selector": "small", "default": "" + }, + "advanced": { + "type": "boolean" } }, "supports": { @@ -153,6 +159,22 @@ "root": ".wp-block-formello-select > select" } }, + "example": { + "attributes": { + "label": "Your OS", + "options": [ + { + "label": "Windows" + }, + { + "label": "MacOS" + }, + { + "label": "Linux" + } + ] + } + }, "style": "file:./style-index.css", "editorScript": "file:./index.js", "render": "file:./render.php" diff --git a/build/blocks/select/index.asset.php b/build/blocks/select/index.asset.php index 44787372..9b98ae52 100644 --- a/build/blocks/select/index.asset.php +++ b/build/blocks/select/index.asset.php @@ -1 +1 @@ - array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => '21b6ee9957ff67632caf'); + array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => 'ab5f8954662d574a5808'); diff --git a/build/blocks/select/index.js b/build/blocks/select/index.js index 297516e1..f2d2944b 100644 --- a/build/blocks/select/index.js +++ b/build/blocks/select/index.js @@ -781,8 +781,7 @@ function getInputClassesAndStyles(attributes) { 'textarea-label': 'textarea' === type }); const inputClass = (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])(borderProps.className, spacingProps.className, colorProps.className, { - 'formello-advanced': advanced, - 'formello-rtf': advanced && 'textarea' === type + 'formello-advanced': advanced }); const inputStyle = { ...borderProps.style, @@ -908,7 +907,7 @@ function Edit(props) { tagName: "small", value: help, onChange: val => setAttributes({ - val + help: val }), placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Enter help message…', 'formello'), allowedFormats: ['core/bold', 'core/italic', 'core/link'] @@ -1154,24 +1153,36 @@ const OptionsList = props => { onDragEnd: drop, draggable: true, children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.FlexItem, { - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.CheckboxControl, { - checked: obj.selected, - onChange: val => onChange(val, index, 'selected'), - __nextHasNoMarginBottom: true + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Tooltip, { + text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Mark selected', 'formello'), + delay: "200", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.CheckboxControl, { + checked: obj.selected, + onChange: val => onChange(val, index, 'selected'), + __nextHasNoMarginBottom: true + }) }) }), showValue && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.FlexItem, { - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.TextControl, { - placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Value', 'formello'), - value: obj.value, - onChange: val => onChange(val, index, 'value'), - __nextHasNoMarginBottom: true + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Tooltip, { + text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('The value of the option', 'formello'), + delay: "200", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.TextControl, { + placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Value', 'formello'), + value: obj.value, + onChange: val => onChange(val, index, 'value'), + __nextHasNoMarginBottom: true + }) }) }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.FlexItem, { - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.TextControl, { - placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Label', 'formello'), - value: obj.label, - onChange: val => onChange(val, index, 'label'), - __nextHasNoMarginBottom: true + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Tooltip, { + text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('The label of the option', 'formello'), + delay: "200", + children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.TextControl, { + placeholder: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Label', 'formello'), + value: obj.label, + onChange: val => onChange(val, index, 'label'), + __nextHasNoMarginBottom: true + }) }) }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.FlexItem, { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.Button, { @@ -1244,7 +1255,7 @@ function save({ className: fieldProps.inputClass, children: options.map((opt, index) => { return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("option", { - value: opt.value || opt.label, + value: opt.value || index > 0 ? opt.label : '', selected: opt.selected, children: opt.label }, index); @@ -1477,7 +1488,8 @@ function Options(props) { required, multiple, checked, - showHelp + showHelp, + advanced } = attributes; const supported = _constants__WEBPACK_IMPORTED_MODULE_4__.SUPPORTED_ATTRIBUTES[fieldType]; return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Fragment, { @@ -1538,14 +1550,23 @@ function Options(props) { showHelp: newval }), __nextHasNoMarginBottom: true - }), 'select' === fieldType && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Fragment, { - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { + }), 'select' === fieldType && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Fragment, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Advanced', 'formello'), + checked: advanced, + onChange: val => { + setAttributes({ + advanced: val + }); + }, + __nextHasNoMarginBottom: true + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { variant: 'primary', onClick: () => { setModalOpen(true); }, children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Manage Options', 'formello') - }) + })] })] }) }); @@ -1585,7 +1606,8 @@ __webpack_require__.r(__webpack_exports__); function Toolbar(props) { const { attributes, - setAttributes + setAttributes, + name } = props; const { required, @@ -1632,7 +1654,7 @@ function Toolbar(props) { hideLabel: !hideLabel }); } - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton, { + }), 'formello/multichoices' !== name && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton, { label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Show help message', 'formello'), icon: 'editor-help', isPressed: showHelp, @@ -1814,7 +1836,7 @@ function getFieldsType() { type = b.attributes.type; } fields[b.attributes.name] = type; - if (b.attributes.enableRtf) { + if (b.attributes.advanced && 'textarea' === 'textarea') { fields[b.attributes.name] = 'richtext'; } if (b.attributes.multiple && 'select' === type) { @@ -2157,7 +2179,8 @@ function TabContent({ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.SearchControl, { value: searchInput, - onChange: setSearchInput + onChange: setSearchInput, + __nextHasNoMarginBottom: true }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.TabPanel, { tabs: tabs, children: tab => tab.data.filter(element => { @@ -2428,7 +2451,7 @@ function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else i \**************************************/ /***/ ((module) => { -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"formello/select","title":"Select","ancestor":["formello/form"],"description":"Dropdown select.","category":"formello","textdomain":"formello","attributes":{"id":{"type":"string","source":"attribute","selector":"select","attribute":"id"},"name":{"type":"string","source":"attribute","selector":"select","attribute":"name"},"label":{"type":"string","source":"html","selector":"label span:not(.required)","default":"My input"},"hideLabel":{"type":"boolean","selector":"label.hide","default":false},"options":{"type":"array","source":"query","selector":"option","query":{"value":{"type":"string","source":"attribute","attribute":"value"},"label":{"type":"string","source":"text"},"selected":{"type":"boolean","source":"attribute","attribute":"selected"}},"default":[{"value":"","label":"Select an option"},{"value":"1","label":"One"},{"value":"2","label":"Two"},{"value":"3","label":"Three"}]},"multiple":{"type":"boolean","source":"attribute","selector":"select","attribute":"multiple"},"required":{"type":"boolean","source":"attribute","selector":"select","attribute":"required"},"requiredText":{"type":"string","source":"text","selector":"label span.required","default":"*"},"disabled":{"type":"boolean","source":"attribute","selector":"select","attribute":"disabled"},"readonly":{"type":"boolean","source":"attribute","selector":"select","attribute":"readonly"},"showHelp":{"type":"boolean","default":false},"help":{"type":"string","source":"html","selector":"small","default":""}},"supports":{"html":false,"reusable":false,"color":{"background":true,"text":true,"__experimentalSkipSerialization":true},"spacing":{"padding":true,"__experimentalSkipSerialization":true},"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true,"__experimentalSkipSerialization":true,"__experimentalDefaultControls":{"color":true,"radius":true,"style":true,"width":true}}},"selectors":{"root":".wp-block-formello-select","color":{"background":".wp-block-formello-select > select","text":".wp-block-formello-select"},"spacing":{"root":".wp-block-formello-select","padding":".wp-block-formello-select > select"},"border":{"root":".wp-block-formello-select > select"}},"style":"file:./style-index.css","editorScript":"file:./index.js","render":"file:./render.php"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"formello/select","title":"Select","ancestor":["formello/form"],"usesContext":["formello/requiredText"],"description":"Dropdown select.","category":"formello","textdomain":"formello","attributes":{"id":{"type":"string","source":"attribute","selector":"select","attribute":"id"},"name":{"type":"string","source":"attribute","selector":"select","attribute":"name"},"label":{"type":"string","source":"html","selector":"label span:not(.required)","default":"My input"},"hideLabel":{"type":"boolean","selector":"label.hide","default":false},"options":{"type":"array","source":"query","selector":"option","query":{"value":{"type":"string","source":"attribute","attribute":"value"},"label":{"type":"string","source":"text"},"selected":{"type":"boolean","source":"attribute","attribute":"selected"}},"default":[{"value":"","label":"Select an option"},{"value":"1","label":"One"},{"value":"2","label":"Two"},{"value":"3","label":"Three"}]},"multiple":{"type":"boolean","source":"attribute","selector":"select","attribute":"multiple"},"required":{"type":"boolean","source":"attribute","selector":"select","attribute":"required"},"requiredText":{"type":"string","source":"text","selector":"label span.required","default":"*"},"disabled":{"type":"boolean","source":"attribute","selector":"select","attribute":"disabled"},"readonly":{"type":"boolean","source":"attribute","selector":"select","attribute":"readonly"},"showHelp":{"type":"boolean","default":false},"help":{"type":"string","source":"html","selector":"small","default":""},"advanced":{"type":"boolean"}},"supports":{"html":false,"reusable":false,"color":{"background":true,"text":true,"__experimentalSkipSerialization":true},"spacing":{"padding":true,"__experimentalSkipSerialization":true},"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true,"__experimentalSkipSerialization":true,"__experimentalDefaultControls":{"color":true,"radius":true,"style":true,"width":true}}},"selectors":{"root":".wp-block-formello-select","color":{"background":".wp-block-formello-select > select","text":".wp-block-formello-select"},"spacing":{"root":".wp-block-formello-select","padding":".wp-block-formello-select > select"},"border":{"root":".wp-block-formello-select > select"}},"example":{"attributes":{"label":"Your OS","options":[{"label":"Windows"},{"label":"MacOS"},{"label":"Linux"}]}},"style":"file:./style-index.css","editorScript":"file:./index.js","render":"file:./render.php"}'); /***/ }) diff --git a/build/blocks/select/index.js.map b/build/blocks/select/index.js.map index 7fae9884..e2f20aba 100644 --- a/build/blocks/select/index.js.map +++ b/build/blocks/select/index.js.map @@ -1 +1 @@ -{"version":3,"file":"blocks/select/index.js","mappings":"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ACA;AACA;AACR;AACM;AACI;AACH;AACP;AACU;AACI;AACN;AACA;AACG;AACP;AACE;AACQ;AACV;;;;;;;;;;;;ACrBzE;;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;;;;;;ACAA,cAAc,aAAa,+CAA+C,gDAAgD,eAAe,QAAQ,IAAI,0CAA0C,yCAAyC,SAAgB,gBAAgB,wCAAwC,IAAI,mDAAmD,SAAS,iEAAe,IAAI;;;;;;;;;;;;;;;;UCAnY;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC7BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEnDA;UACA;UACA;UACA;UACA","sources":["webpack://formello/./assets/icons/asterisk.svg","webpack://formello/./assets/icons/checkbox.svg","webpack://formello/./assets/icons/checkboxes.svg","webpack://formello/./assets/icons/clock-field.svg","webpack://formello/./assets/icons/color-field.svg","webpack://formello/./assets/icons/date-field.svg","webpack://formello/./assets/icons/email-field.svg","webpack://formello/./assets/icons/fieldset.svg","webpack://formello/./assets/icons/form.svg","webpack://formello/./assets/icons/gdpr-field.svg","webpack://formello/./assets/icons/hidden-field.svg","webpack://formello/./assets/icons/logo.svg","webpack://formello/./assets/icons/number-field.svg","webpack://formello/./assets/icons/password-field.svg","webpack://formello/./assets/icons/phone-field.svg","webpack://formello/./assets/icons/radio-buttons.svg","webpack://formello/./assets/icons/radio-field.svg","webpack://formello/./assets/icons/range-field.svg","webpack://formello/./assets/icons/select.svg","webpack://formello/./assets/icons/text-field.svg","webpack://formello/./assets/icons/textarea-field.svg","webpack://formello/./assets/icons/url-field.svg","webpack://formello/./node_modules/@wordpress/icons/build-module/library/more-vertical.js","webpack://formello/./src/blocks/input/use-field-props.js","webpack://formello/./src/blocks/select/edit.js","webpack://formello/./src/blocks/select/index.js","webpack://formello/./src/blocks/select/modal.js","webpack://formello/./src/blocks/select/opts.js","webpack://formello/./src/blocks/select/save.js","webpack://formello/./src/components/field-options/advanced.js","webpack://formello/./src/components/field-options/constants.js","webpack://formello/./src/components/field-options/index.js","webpack://formello/./src/components/field-options/toolbar.js","webpack://formello/./src/components/label.js","webpack://formello/./src/components/merge-tags/functions.js","webpack://formello/./src/components/merge-tags/index.js","webpack://formello/./src/components/merge-tags/tab-content.js","webpack://formello/./src/components/merge-tags/use-tabs.js","webpack://formello/./src/icons/icons.js","webpack://formello/./src/blocks/select/style.scss?679b","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"blocks\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"coreData\"]","webpack://formello/external window [\"wp\",\"data\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"hooks\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/external window [\"wp\",\"primitives\"]","webpack://formello/./node_modules/clsx/dist/clsx.mjs","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/chunk loaded","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/webpack/runtime/jsonp chunk loading","webpack://formello/webpack/before-startup","webpack://formello/webpack/startup","webpack://formello/webpack/after-startup"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgAsterisk = function SvgAsterisk(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12.75 6h-1.5v4.19L8.288 7.226l-1.061 1.06 2.962 2.963H6v1.5h4.19l-2.963 2.962 1.06 1.061 2.963-2.962V18h1.5v-4.19l2.962 2.963 1.061-1.06-2.962-2.963H18v-1.5h-4.19l2.963-2.962-1.06-1.061-2.963 2.962V6Z\"\n })));\n};\nexport { SvgAsterisk as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjc1IDZIMTEuMjVWMTAuMTg5M0w4LjI4NzY5IDcuMjI3MDNMNy4yMjcwMyA4LjI4NzY5TDEwLjE4OTMgMTEuMjVINlYxMi43NUgxMC4xODkzTDcuMjI3MDMgMTUuNzEyM0w4LjI4NzY5IDE2Ljc3M0wxMS4yNSAxMy44MTA3VjE4SDEyLjc1VjEzLjgxMDdMMTUuNzEyMyAxNi43NzNMMTYuNzczIDE1LjcxMjNMMTMuODEwNyAxMi43NUgxOFYxMS4yNUgxMy44MTA3TDE2Ljc3MyA4LjI4NzY5TDE1LjcxMjMgNy4yMjcwM0wxMi43NSAxMC4xODkzVjZaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckbox = function SvgCheckbox(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z\"\n })));\n};\nexport { SvgCheckbox as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGc+CiAgICAgICAgPHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIvPgogICAgICAgIDxwYXRoIGQ9Ik00IDNoMTZhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6bTEgMnYxNGgxNFY1SDV6bTYuMDAzIDExTDYuNzYgMTEuNzU3bDEuNDE0LTEuNDE0IDIuODI5IDIuODI5IDUuNjU2LTUuNjU3IDEuNDE1IDEuNDE0TDExLjAwMyAxNnoiIC8+CiAgICA8L2c+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckboxes = function SvgCheckboxes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 24,\n height: 24,\n viewBox: \"0 0 300.396 300.396\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.048 216.749H4.076a3 3 0 0 0-3 3v59.973a3 3 0 0 0 3 3h59.972a3 3 0 0 0 3-3v-59.973c0-1.656-1.344-3-3-3zM64.048 17.675H4.076A4.075 4.075 0 0 0 0 21.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076V21.749a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986V36.809h29.849v29.852H19.138zM64.048 116.675H4.076A4.075 4.075 0 0 0 0 120.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076v-59.973a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986v-29.852h29.849v29.852H19.138zM297.396 231.036h-186.67a3 3 0 0 0-3 3v31.4a3 3 0 0 0 3 3h186.67c1.656 0 3-1.344 3-3v-31.4a3 3 0 0 0-3-3zM110.729 169.438h186.667a3 3 0 0 0 3-3v-31.406c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3zM110.729 70.438h186.667a3 3 0 0 0 3-3V36.032c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3z\"\n })));\n};\nexport { SvgCheckboxes as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiAKCSB2aWV3Qm94PSIwIDAgMzAwLjM5NiAzMDAuMzk2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNNjQuMDQ4LDIxNi43NDlINC4wNzZjLTEuNjU3LDAtMywxLjM0NC0zLDN2NTkuOTczYzAsMS42NTgsMS4zNDMsMywzLDNoNTkuOTcyYzEuNjU2LDAsMy0xLjM0MiwzLTN2LTU5Ljk3MwoJCUM2Ny4wNDgsMjE4LjA5Myw2NS43MDQsMjE2Ljc0OSw2NC4wNDgsMjE2Ljc0OXoiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTcuNjc1SDQuMDc2QzEuODI1LDE3LjY3NSwwLDE5LjQ5OSwwLDIxLjc0OXY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NlYyMS43NDlDNjguMTIzLDE5LjQ5OSw2Ni4yOTksMTcuNjc1LDY0LjA0OCwxNy42NzV6IE0xOS4xMzgsNjYuNjYxVjM2LjgwOWgyOS44NDl2MjkuODUySDE5LjEzOHoKCQkiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTE2LjY3NUg0LjA3NmMtMi4yNTEsMC00LjA3NiwxLjgyNC00LjA3Niw0LjA3NHY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NnYtNTkuOTczQzY4LjEyMywxMTguNDk5LDY2LjI5OSwxMTYuNjc1LDY0LjA0OCwxMTYuNjc1eiBNMTkuMTM4LDE2NS42NjF2LTI5Ljg1MmgyOS44NDl2MjkuODUyCgkJSDE5LjEzOHoiLz4KCTxwYXRoIGQ9Ik0yOTcuMzk2LDIzMS4wMzZoLTE4Ni42N2MtMS42NTcsMC0zLDEuMzQyLTMsM3YzMS40YzAsMS42NTYsMS4zNDMsMywzLDNoMTg2LjY3YzEuNjU2LDAsMy0xLjM0NCwzLTN2LTMxLjQKCQlDMzAwLjM5NiwyMzIuMzc4LDI5OS4wNTMsMjMxLjAzNiwyOTcuMzk2LDIzMS4wMzZ6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSwxNjkuNDM4aDE4Ni42NjdjMS42NTYsMCwzLTEuMzQyLDMtM3YtMzEuNDA2YzAtMS42NTYtMS4zNDQtMy0zLTNIMTEwLjcyOWMtMS42NTcsMC0zLDEuMzQ0LTMsM3YzMS40MDYKCQlDMTA3LjcyOSwxNjguMDk3LDEwOS4wNzEsMTY5LjQzOCwxMTAuNzI5LDE2OS40Mzh6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSw3MC40MzhoMTg2LjY2N2MxLjY1NiwwLDMtMS4zNDIsMy0zVjM2LjAzMmMwLTEuNjU2LTEuMzQ0LTMtMy0zSDExMC43MjljLTEuNjU3LDAtMywxLjM0NC0zLDN2MzEuNDA2CgkJQzEwNy43MjksNjkuMDk3LDEwOS4wNzEsNzAuNDM4LDExMC43MjksNzAuNDM4eiIvPgo8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgClockField = function SvgClockField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 -8 72 72\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 0a28 28 0 1 0 28 28A28 28 0 0 0 36 0Zm0 50a22 22 0 1 1 22-22 22.07 22.07 0 0 1-22 22Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.59 27.14H38V12a2.31 2.31 0 1 0-4.61 0v17.44a2.31 2.31 0 0 0 2.3 2.31h14.9a2.31 2.31 0 1 0 0-4.61Z\"\n })));\n};\nexport { SvgClockField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAtOCA3MiA3MiIgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Y2xvY2stbzwvdGl0bGU+PHBhdGggZD0iTTM2LDBBMjgsMjgsMCwxLDAsNjQsMjgsMjgsMjgsMCwwLDAsMzYsMFptMCw1MEEyMiwyMiwwLDEsMSw1OCwyOCwyMi4wNywyMi4wNywwLDAsMSwzNiw1MFoiLz48cGF0aCBkPSJNNTAuNTksMjcuMTRIMzhWMTJhMi4zMSwyLjMxLDAsMSwwLTQuNjEsMFYyOS40NGEyLjMxLDIuMzEsMCwwLDAsMi4zLDIuMzFINTAuNTlhMi4zMSwyLjMxLDAsMSwwLDAtNC42MVoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgColorField = function SvgColorField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 36 36\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.23 14.89c-2.1-.56-4.93 1.8-6.34.3-1.71-1.82 2.27-5.53 1.86-8.92-.33-2.78-3.51-4.08-6.66-4.1A18.5 18.5 0 0 0 7.74 7.59c-6.64 6.59-8.07 16-1.37 22.48 6.21 6 16.61 4.23 22.67-1.4a17.73 17.73 0 0 0 4.22-6.54c1.08-2.9 1.18-6.64-1.03-7.24ZM9.4 10.57a2.23 2.23 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.81 2.53 2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53ZM5.07 20.82a2.22 2.22 0 0 1 1.82-2.53 2.22 2.22 0 0 1 2.86 1.21A2.23 2.23 0 0 1 7.94 22a2.24 2.24 0 0 1-2.87-1.18Zm7 8.33a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.8-2.53 2.23 2.23 0 0 1 2.87 1.21A2.22 2.22 0 0 1 12 29.15ZM15 8.26a2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.82 2.53A2.21 2.21 0 0 1 15 8.26Zm5.82 22.19a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.85 2.53Zm5-10.46a3.2 3.2 0 0 1-1.69 1.76 3.53 3.53 0 0 1-1.4.3 2.78 2.78 0 0 1-2.56-1.5 2.49 2.49 0 0 1-.07-2 3.2 3.2 0 0 1 1.69-1.76 3 3 0 0 1 4 1.2 2.54 2.54 0 0 1 0 2.01Z\",\n \"data-name\": \"Layer 3\"\n })));\n};\nexport { SvgColorField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDM2IDM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoNPHRpdGxlPmNvbG9yX3BhbGV0dGVfc29saWQ8L3RpdGxlPgoNPGcgaWQ9ImI4OTRlMzJiLTA0MzctNDVhYi1iOGJmLTlmMGM0ZThmNTdjZCIgZGF0YS1uYW1lPSJMYXllciAzIj4KDTxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTguNSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMywwLDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywyLjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEsMS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDateField = function SvgDateField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38 4V0h-4v4H14V0h-4v4H0v44h48V4H38zm6 40H4V19.9h40V44zM4 15.9V8h6v4h4V8h20v4h4V8h6v7.9H4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 24h6v6h-6zM16.667 24h6v6h-6zM25.583 24h6v6h-6zM34.5 24h6v6h-6zM7.5 33h6v6h-6zM16.667 33h6v6h-6zM25.583 33h6v6h-6zM34.5 33h6v6h-6z\"\n })));\n};\nexport { SvgDateField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCFET0NUWVBFIHN2ZyAgUFVCTElDICctLy9XM0MvL0RURCBTVkcgMS4xLy9FTicgICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQnPgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0OCA0OCIgaWQ9IkxheWVyXzMiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08Zz4KDTxwYXRoIGQ9Ik0zOCw0VjBoLTR2NEgxNFYwaC00djRIMHYxMS45djRWNDhoNDhWMTkuOXYtNFY0SDM4eiBNNDQsNDRINFYxOS45aDQwVjQ0eiBNNCwxNS45VjhoNnY0aDRWOGgyMHY0aDRWOGg2djcuOUg0eiIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iNy41IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMTYuNjY3IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMjUuNTgzIiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMzQuNSIgeT0iMjQiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjcuNSIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjE2LjY2NyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjI1LjU4MyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjM0LjUiIHk9IjMzIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmailField = function SvgEmailField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2c5.43 0 9.848 4.327 9.996 9.72L22 12v1c0 2.173-1.523 4-3.5 4-1.173 0-2.186-.643-2.816-1.62a5 5 0 1 1 1.311-3.597L17 12v1c0 1.14.716 2 1.5 2 .745 0 1.428-.775 1.495-1.831L20 13v-1a8 8 0 1 0-4.677 7.28 1 1 0 1 1 .831 1.819A9.966 9.966 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2Zm0 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z\"\n })));\n};\nexport { SvgEmailField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik0xMiwyIEMxNy40MjkyMzk5LDIgMjEuODQ3OTMxNyw2LjMyNjY3MDc5IDIxLjk5NjE1ODIsMTEuNzIwMDk1MiBMMjIsMTIgTDIyLDEzIEMyMiwxNS4xNzI5MjA4IDIwLjQ3NzQzNCwxNyAxOC41LDE3IEMxNy4zMjY5MzkxLDE3IDE2LjMxMzk1MjksMTYuMzU3MDI0NCAxNS42ODM5MzgyLDE1LjM4MDMwMjQgQzE0Ljc3MDU5MywxNi4zNzU3ODIzIDEzLjQ1ODE5MzQsMTcgMTIsMTcgQzkuMjM4NTc2MjUsMTcgNywxNC43NjE0MjM3IDcsMTIgQzcsOS4yMzg1NzYyNSA5LjIzODU3NjI1LDcgMTIsNyBDMTQuNjg4NzU0Nyw3IDE2Ljg4MTgxODEsOS4xMjIzMDY3MSAxNi45OTUzODA1LDExLjc4MzExMDQgTDE3LDEyIEwxNywxMyBDMTcsMTQuMTQwNzg3NyAxNy43MTYwMTAzLDE1IDE4LjUsMTUgQzE5LjI0NDc5MDIsMTUgMTkuOTI4MjI5LDE0LjIyNDU2MDkgMTkuOTk0NzEwOSwxMy4xNjg5MzQxIEwyMCwxMyBMMjAsMTIgQzIwLDcuNTgxNzIyIDE2LjQxODI3OCw0IDEyLDQgQzcuNTgxNzIyLDQgNCw3LjU4MTcyMiA0LDEyIEM0LDE2LjQxODI3OCA3LjU4MTcyMiwyMCAxMiwyMCBDMTMuMTYzMDk0OCwyMCAxNC4yODkyODIyLDE5Ljc1MjI2MTggMTUuMzIyNTE1OSwxOS4yNzk4MzMxIEMxNS44MjQ3ODc2LDE5LjA1MDE3NzcgMTYuNDE4MTMxNywxOS4yNzExNzcgMTYuNjQ3Nzg3LDE5Ljc3MzQ0ODcgQzE2Ljg3NzQ0MjMsMjAuMjc1NzIwNSAxNi42NTY0NDMsMjAuODY5MDY0NiAxNi4xNTQxNzEzLDIxLjA5ODcxOTkgQzE0Ljg2MTIxOCwyMS42ODk5MDEgMTMuNDUxNTQ2MywyMiAxMiwyMiBDNi40NzcxNTI1LDIyIDIsMTcuNTIyODQ3NSAyLDEyIEMyLDYuNDc3MTUyNSA2LjQ3NzE1MjUsMiAxMiwyIFogTTEyLDkgQzEwLjM0MzE0NTgsOSA5LDEwLjM0MzE0NTggOSwxMiBDOSwxMy42NTY4NTQyIDEwLjM0MzE0NTgsMTUgMTIsMTUgQzEzLjY1Njg1NDIsMTUgMTUsMTMuNjU2ODU0MiAxNSwxMiBDMTUsMTAuMzQzMTQ1OCAxMy42NTY4NTQyLDkgMTIsOSBaIi8+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFieldset = function SvgFieldset(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 80,\n height: 80,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 20h1v1H1v-2h1zm20 0h-1v1h2v-2h-1zM1 5h1V4h1V3H1zm1 2H1v2h1zm0 4H1v2h1zm20-2h1V7h-1zm0 4h1v-2h-1zM2 15H1v2h1zm20 2h1v-2h-1zM5 4h2V3H5zm6 0V3H9v1zm2 0h2V3h-2zm6-1h-2v1h2zM5 21h2v-1H5zm4 0h2v-1H9zm4 0h2v-1h-2zm4 0h2v-1h-2zm4-17h1v1h1V3h-2zm-1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1V8a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19V8H5v2h14m1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1v-2a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19v-2H5v2h14\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgFieldset as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MHB4IiBoZWlnaHQ9IjgwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAyMGgxdjFIMXYtMmgxem0yMCAwaC0xdjFoMnYtMmgtMXpNMSA1aDFWNGgxVjNIMXptMSAySDF2Mmgxem0wIDRIMXYyaDF6bTIwLTJoMVY3aC0xem0wIDRoMXYtMmgtMXpNMiAxNUgxdjJoMXptMjAgMmgxdi0yaC0xek01IDRoMlYzSDV6bTYgMFYzSDl2MXptMiAwaDJWM2gtMnptNi0xaC0ydjFoMnpNNSAyMWgydi0xSDV6bTQgMGgydi0xSDl6bTQgMGgydi0xaC0yem00IDBoMnYtMWgtMnptNC0xN2gxdjFoMVYzaC0yem0tMSA0djJhMS4wMDEgMS4wMDEgMCAwIDEtMSAxSDVhMS4wMDEgMS4wMDEgMCAwIDEtMS0xVjhhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOVY4SDV2MmgxNG0xIDR2MmExLjAwMSAxLjAwMSAwIDAgMS0xIDFINWExLjAwMSAxLjAwMSAwIDAgMS0xLTF2LTJhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOXYtMkg1djJoMTQiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgForm = function SvgForm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.2 12.994a.312.312 0 0 1-.188-.191C1 12.76.999 12.113 1 6.982V1.208l.022-.045a.328.328 0 0 1 .14-.14L1.208 1h11.585l.05.025a.31.31 0 0 1 .136.135l.021.039v5.783c0 5.377 0 5.787-.013 5.831a.314.314 0 0 1-.142.162L12.8 13H7.012c-3.457.001-5.8 0-5.817-.01zm11.236-5.992V1.568H1.573v10.857c0 .01 1.099.01 5.436.01h5.432V7.003zM5.574 10.72v-.86h1.712v1.72H5.574v-.86zm1.144 0v-.284h-.576v.568h.576v-.284zm1.145 0v-.284h3.432v.568H7.863v-.284zM5.574 7.572V6.428h5.72v2.288h-5.72V7.572zm5.144 0V7H6.142v.566c0 .311 0 .569.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.289h2.28v.577h-2.28v-.288zM5.575 4.14V2.996h5.72v2.288h-5.72V4.14zm5.144 0v-.572H6.142v.566c0 .31 0 .568.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.284h2.28v.567h-2.28V4.14z\"\n })));\n};\nexport { SvgForm as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAxNCAxNCIgcm9sZT0iaW1nIiBmb2N1c2FibGU9ImZhbHNlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtIDEuMTk5Nzk5NSwxMi45OTM5MTYgYyAtMC4wNzkwMzQsLTAuMDIzIC0wLjE2NDA3MSwtMC4xMDkzIC0wLjE4Nzk4MTMsLTAuMTkxNCAtMC4wMTIwMDUsLTAuMDQyIC0wLjAxMzAwNiwtMC42ODk1IC0wLjAxMTAwNSwtNS44MjEwMDAzIGwgMCwtNS43NzQgMC4wMjIwMSwtMC4wNDUgYyAwLjAyODAxMiwtMC4wNTcgMC4wODMwMzYsLTAuMTExNyAwLjE0MDE2MDYsLTAuMTQwMSBsIDAuMDQ1MDE5LC0wLjAyMiA1Ljc5MjIwNDEsMCA1Ljc5MjMwNDEsMCAwLjA1MTAyLDAuMDI1IGMgMC4wNTYwMiwwLjAyNyAwLjEwMzY0NSwwLjA3NSAwLjEzNTQ1OSwwLjEzNDUgbCAwLjAyMTAxLDAuMDM5IDAsNS43ODMyIGMgMCw1LjM3NjUwMDMgMCw1Ljc4NjYwMDMgLTAuMDEzMDEsNS44MzExMDAzIC0wLjAxOTAxLDAuMDYgLTAuMDc5MDMsMC4xMjkxIC0wLjE0MTc2MSwwLjE2MjEgbCAtMC4wNDYwMiwwLjAyNCAtNS43ODc3MDIzLDAgYyAtMy40NTYyOTQyLDllLTQgLTUuNzk5MjA3LDAgLTUuODE2MDE0MywtMC4wMSB6IG0gMTEuMjM2NjU3NSwtNS45OTE5MDAzIDAsLTUuNDM0MiAtNS40MzE5NDgxLDAgLTUuNDMxODQ4MiwwIDAsNS40MjI5IGMgMCwyLjk4MjYgLTQuMDAyZS00LDUuNDI4MDAwMyAwLDUuNDM0MjAwMyAwLDAuMDEgMS4wOTkwNzUxLDAuMDExIDUuNDM2NTUwMiwwLjAxMSBsIDUuNDMyMTQ4MSwwIDAsLTUuNDM0MjAwMyB6IG0gLTYuODYxOTY2MywzLjcxODEwMDMgMCwtMC44NjAzMDAzIDAuODU1NzY5OSwwIDAuODU1NzcsMCAwLDAuODYwMzAwMyAwLDAuODYwMyAtMC44NTU3NywwIC0wLjg1NTc2OTksMCAwLC0wLjg2MDMgeiBtIDEuMTQzOTk0NSwwIDAsLTAuMjgzOCAtMC4yODgyMjQ2LDAgLTAuMjg4MzI0NiwwIDAsMC4yODM4IDAsMC4yODM3IDAuMjg4MzI0NiwwIDAuMjg4MjI0NiwwIDAsLTAuMjgzNyB6IG0gMS4xNDQwOTQ3LDAgMCwtMC4yODM4IDEuNzE2MDQxOCwwIDEuNzE2MDQxMywwIDAsMC4yODM4IDAsMC4yODM3IC0xLjcxNjA0MTMsMCAtMS43MTYwNDE4LDAgMCwtMC4yODM3IHogbSAtMi4yODgwODkyLC0zLjE0ODMwMDMgMCwtMS4xNDQxIDIuODYwMDM2NCwwIDIuODYwMTM1OSwwIDAsMS4xNDQxIDAsMS4xNDM5IC0yLjg2MDEzNTksMCAtMi44NjAwMzY0LDAgMCwtMS4xNDM5IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEzIDAsMC41Njg3IDAuMDEwMDA0LDAuNTcyIDAsMCAxLjAzMjk0NjYsMC4wMSAyLjI4ODA4OTIsMC4wMSBsIDIuMjgyMDg2OCwwIDAsLTAuNTcyIHogbSAtNy45OTkyNTc4LDAgMCwtMC4yODg0IDEuMTM5NTkyNywwIDEuMTM5NDkyNSwwIDAsMC4yODg0IDAsMC4yODgyIC0xLjEzOTQ5MjUsMCAtMS4xMzk1OTI3LDAgMCwtMC4yODgyIHogbSAyLjg1NTYzNDUsLTMuNDMyMSAwLC0xLjE0NDEgMi44NjAwMzY0LDAgMi44NjAxMzU5LDAgMCwxLjE0NDEgMCwxLjE0NCAtMi44NjAxMzU5LDAgLTIuODYwMDM2NCwwIDAsLTEuMTQ0IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEyIDAsMC41Njg2IDAuMDEwMDA0LDAuNTcxOSAwLDAgMS4wMzI5NDY2LDAuMDEgMi4yODgwODkyLDAuMDEgbCAyLjI4MjA4NjgsMCAwLC0wLjU3MTkgeiBtIC03Ljk5OTI1NzgsMCAwLC0wLjI4MzkgMS4xMzk1OTI3LDAgMS4xMzk0OTI1LDAgMCwwLjI4MzkgMCwwLjI4MzcgLTEuMTM5NDkyNSwwIC0xLjEzOTU5MjcsMCAwLC0wLjI4MzcgeiIvPjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGdprField = function SvgGdprField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2zm0 8h5s1-1 1-5c0 0-5-1-6-2v7H5c1 4 5 7 5 7v-7z\"\n })));\n};\nexport { SvgGdprField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+Cgk8cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KCTxnPgoJCTxwYXRoIGQ9Ik0xMCAyczMgMiA3IDJjMCAxMS03IDE0LTcgMTRTMyAxNSAzIDRjNCAwIDctMiA3LTJ6bTAgOGg1czEtMSAxLTVjMCAwLTUtMS02LTJ2N0g1YzEgNCA1IDcgNSA3di03eiIvPgoJPC9nPgo8L3N2Zz4K\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgHiddenField = function SvgHiddenField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 1000 1000\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M499 270q57 0 104.5 28t75.5 76 28 104q0 39-15 76l122 122q97-81 142-198-36-91-104-162T694 206q-93-40-195-40-86 0-166 29l90 90q38-15 76-15zM83 157l95 94 19 20q-52 40-91.5 93T42 478q36 91 104.5 162T304 750q93 40 195 40 95 0 183-35l139 139 53-53-738-737zm230 230 65 64q-4 15-4 27 0 34 17 62.5t45.5 45.5 62.5 17q14 0 27-3l65 64q-45 22-92 22-56 0-104-28t-76-76-28-104q0-47 22-91zm180-33 131 131v-6q0-34-16.5-63t-45-45.5T500 354h-7z\"\n })));\n};\nexport { SvgHiddenField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00OTkgMjcwcTU3IDAgMTA0LjUgMjh0NzUuNSA3NiAyOCAxMDRxMCAzOS0xNSA3NmwxMjIgMTIycTk3LTgxIDE0Mi0xOTgtMzYtOTEtMTA0LTE2MlQ2OTQgMjA2cS05My00MC0xOTUtNDAtODYgMC0xNjYgMjlsOTAgOTBxMzgtMTUgNzYtMTV6TTgzIDE1N2w5NSA5NCAxOSAyMHEtNTIgNDAtOTEuNSA5M1Q0MiA0NzhxMzYgOTEgMTA0LjUgMTYyVDMwNCA3NTBxOTMgNDAgMTk1IDQwIDk1IDAgMTgzLTM1bDEzOSAxMzkgNTMtNTMtNzM4LTczN3ptMjMwIDIzMGw2NSA2NHEtNCAxNS00IDI3IDAgMzQgMTcgNjIuNXQ0NS41IDQ1LjUgNjIuNSAxN3ExNCAwIDI3LTNsNjUgNjRxLTQ1IDIyLTkyIDIyLTU2IDAtMTA0LTI4dC03Ni03Ni0yOC0xMDRxMC00NyAyMi05MXptMTgwLTMzbDEzMSAxMzF2LTZxMC0zNC0xNi41LTYzdC00NS00NS41VDUwMCAzNTRoLTd6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 341.333,\n height: 341.333,\n viewBox: \"0 0 256 256\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#9b51e0\",\n d: \"M0 128v128h256V0H0v128zm145.6-66.6c2.9.7 7.8 2.8 11.1 4.5 6.7 3.6 18.3 14.6 16.8 16-2.6 2.3-31.9 23.1-32.6 23.1-.5 0-.9-.5-.9-1 0-.6-1.1-2.2-2.5-3.5-3-3.1-8.3-3.3-11.6-.6-2.2 1.8-2.4 2.7-2.7 14l-.4 12.1H136v37h-13v34H82v-44.8c0-35.5.3-46.1 1.5-51.7 3.9-18.6 18.2-34.2 35.6-38.9 6.9-1.9 19.9-2 26.5-.2z\"\n })));\n};\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwoJdmVyc2lvbj0iMS4wIgoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJd2lkdGg9IjI1Ni4wMDAwMDBwdCIKCWhlaWdodD0iMjU2LjAwMDAwMHB0IgoJdmlld0JveD0iMCAwIDI1Ni4wMDAwMDAgMjU2LjAwMDAwMCIKCXByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiCj4KCTxnCgkJdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjU2LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKCQlmaWxsPSIjOWI1MWUwIgoJCXN0cm9rZT0ibm9uZSIKCT4KCQk8cGF0aAoJCQlkPSJNMCAxMjgwIGwwIC0xMjgwIDEyODAgMCAxMjgwIDAgMCAxMjgwIDAgMTI4MCAtMTI4MCAwIC0xMjgwIDAgMAoJCQktMTI4MHogbTE0NTYgNjY2IGMyOSAtNyA3OCAtMjggMTExIC00NSA2NyAtMzYgMTgzIC0xNDYgMTY4IC0xNjAgLTI2IC0yMwoJCQktMzE5IC0yMzEgLTMyNiAtMjMxIC01IDAgLTkgNSAtOSAxMCAwIDYgLTExIDIyIC0yNSAzNSAtMzAgMzEgLTgzIDMzIC0xMTYgNgoJCQktMjIgLTE4IC0yNCAtMjcgLTI3IC0xNDAgbC00IC0xMjEgNjYgMCA2NiAwIDAgLTE4NSAwIC0xODUgLTY1IDAgLTY1IDAgMAoJCQktMTcwIDAgLTE3MCAtMjA1IDAgLTIwNSAwIDAgNDQ4IGMwIDM1NSAzIDQ2MSAxNSA1MTcgMzkgMTg2IDE4MiAzNDIgMzU2IDM4OQoJCQk2OSAxOSAxOTkgMjAgMjY1IDJ6IgoJCS8+Cgk8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgNumberField = function SvgNumberField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 52 52\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.8 49.5H7.2c-2.6 0-4.7-2.1-4.7-4.7V7.2c0-2.6 2.1-4.7 4.7-4.7h37.6c2.6 0 4.7 2.1 4.7 4.7v37.6c0 2.6-2.1 4.7-4.7 4.7zm-36-39.2v31.3c0 .9.7 1.6 1.6 1.6h31.3c.9 0 1.6-.7 1.6-1.6V10.3c0-.9-.7-1.6-1.6-1.6H10.4c-.9.1-1.6.8-1.6 1.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.2 20.3h-2.9l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.2 4.9h-5.8l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.3 4.9H18c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h3L19 28.7h-3.1c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h2.9L17 36.5v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h5.7L26 36.4v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h3.2c.2 0 .3-.1.4-.3l.6-2.2V29c0-.2-.1-.4-.4-.4h-3l1.4-5.6h3.1c.2 0 .3-.1.4-.3l.6-2.2v-.1c-.1.1-.3-.1-.5-.1zm-8.1 8.5h-5.8l1.4-5.6h5.7l-1.3 5.6z\"\n })));\n};\nexport { SvgNumberField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCgkgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNTIgNTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUyIDUyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZD0iTTQ0LjgsNDkuNUg3LjJjLTIuNiwwLTQuNy0yLjEtNC43LTQuN1Y3LjJjMC0yLjYsMi4xLTQuNyw0LjctNC43aDM3LjZjMi42LDAsNC43LDIuMSw0LjcsNC43djM3LjYKCUM0OS41LDQ3LjQsNDcuNCw0OS41LDQ0LjgsNDkuNXogTTguOCwxMC4zdjMxLjNjMCwwLjksMC43LDEuNiwxLjYsMS42aDMxLjNjMC45LDAsMS42LTAuNywxLjYtMS42VjEwLjNjMC0wLjktMC43LTEuNi0xLjYtMS42SDEwLjQKCUM5LjUsOC44LDguOCw5LjUsOC44LDEwLjN6Ii8+CjxwYXRoIGQ9Ik0zNi4yLDIwLjNoLTIuOWwxLjItNC44di0wLjFjMC0wLjItMC4xLTAuNC0wLjQtMC40aC0yLjNjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMS4yLDQuOWgtNS44bDEuMi00LjgKCXYtMC4xYzAtMC4yLTAuMS0wLjQtMC40LTAuNGgtMi4zYy0wLjIsMC0wLjMsMC4xLTAuNCwwLjNsLTEuMyw0LjloLTMuMmMtMC4yLDAtMC4zLDAuMS0wLjQsMC4zbC0wLjYsMi4ydjAuMWMwLDAuMiwwLjEsMC40LDAuNCwwLjQKCWgzbC0xLjQsNS42aC0zLjFjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMC42LDIuMnYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuOWwtMS4yLDQuOHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuMwoJYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wxLjMtNWg1LjdMMjYsMzYuNHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuM2MwLjIsMCwwLjMtMC4xLDAuNC0wLjNsMS4zLTVoMy4yYzAuMiwwLDAuMy0wLjEsMC40LTAuMwoJbDAuNi0yLjJWMjljMC0wLjItMC4xLTAuNC0wLjQtMC40aC0zbDEuNC01LjZoMy4xYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wwLjYtMi4ydi0wLjFDMzYuNiwyMC41LDM2LjQsMjAuMywzNi4yLDIwLjNMMzYuMiwyMC4zegoJIE0yOC4xLDI4LjhoLTUuOGwxLjQtNS42aDUuN0wyOC4xLDI4Ljh6Ii8+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPasswordField = function SvgPasswordField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.988 51.297c.375 0 .961-.14 1.57-.445C42.66 43.469 47.185 40.375 47.185 31.96V14.289c0-2.414-1.055-3.187-3-4.008-2.743-1.125-11.532-4.289-14.25-5.25-.633-.187-1.266-.328-1.946-.328-.656 0-1.289.14-1.922.328-2.718.985-11.507 4.149-14.25 5.25-1.945.797-3 1.594-3 4.008v17.672c0 8.414 4.547 11.484 17.625 18.89.61.305 1.172.446 1.547.446Zm-8.226-15.563v-9.093c0-1.524.586-2.32 1.828-2.508V21.32c0-4.312 2.601-7.218 6.398-7.218 3.82 0 6.399 2.906 6.399 7.218v2.79c1.265.187 1.851.984 1.851 2.53v9.094c0 1.758-.773 2.578-2.414 2.578H22.152c-1.617 0-2.39-.82-2.39-2.578Zm4.289-11.648 7.898-.023v-3c0-2.766-1.57-4.594-3.96-4.594-2.368 0-3.938 1.828-3.938 4.593Z\"\n })));\n};\nexport { SvgPasswordField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMjcuOTg4MyA1MS4yOTY5IEMgMjguMzYzMyA1MS4yOTY5IDI4Ljk0OTIgNTEuMTU2MiAyOS41NTg2IDUwLjg1MTYgQyA0Mi42NjAyIDQzLjQ2ODggNDcuMTgzNiA0MC4zNzUwIDQ3LjE4MzYgMzEuOTYwOSBMIDQ3LjE4MzYgMTQuMjg5MSBDIDQ3LjE4MzYgMTEuODc1MCA0Ni4xMjg5IDExLjEwMTYgNDQuMTgzNiAxMC4yODEzIEMgNDEuNDQxNCA5LjE1NjIgMzIuNjUyNCA1Ljk5MjIgMjkuOTMzNiA1LjAzMTMgQyAyOS4zMDA4IDQuODQzOCAyOC42NjgwIDQuNzAzMSAyNy45ODgzIDQuNzAzMSBDIDI3LjMzMjAgNC43MDMxIDI2LjY5OTIgNC44NDM4IDI2LjA2NjQgNS4wMzEzIEMgMjMuMzQ3NiA2LjAxNTYgMTQuNTU4NiA5LjE3OTcgMTEuODE2NCAxMC4yODEzIEMgOS44NzExIDExLjA3ODEgOC44MTY0IDExLjg3NTAgOC44MTY0IDE0LjI4OTEgTCA4LjgxNjQgMzEuOTYwOSBDIDguODE2NCA0MC4zNzUwIDEzLjM2MzMgNDMuNDQ1MyAyNi40NDE0IDUwLjg1MTYgQyAyNy4wNTA4IDUxLjE1NjIgMjcuNjEzMyA1MS4yOTY5IDI3Ljk4ODMgNTEuMjk2OSBaIE0gMTkuNzYxNyAzNS43MzQ0IEwgMTkuNzYxNyAyNi42NDA2IEMgMTkuNzYxNyAyNS4xMTcyIDIwLjM0NzYgMjQuMzIwMyAyMS41ODk4IDI0LjEzMjggTCAyMS41ODk4IDIxLjMyMDMgQyAyMS41ODk4IDE3LjAwNzggMjQuMTkxNCAxNC4xMDE2IDI3Ljk4ODMgMTQuMTAxNiBDIDMxLjgwODYgMTQuMTAxNiAzNC4zODY3IDE3LjAwNzggMzQuMzg2NyAyMS4zMjAzIEwgMzQuMzg2NyAyNC4xMDk0IEMgMzUuNjUyNCAyNC4yOTY5IDM2LjIzODMgMjUuMDkzOCAzNi4yMzgzIDI2LjY0MDYgTCAzNi4yMzgzIDM1LjczNDQgQyAzNi4yMzgzIDM3LjQ5MjIgMzUuNDY0OSAzOC4zMTI1IDMzLjgyNDIgMzguMzEyNSBMIDIyLjE1MjQgMzguMzEyNSBDIDIwLjUzNTEgMzguMzEyNSAxOS43NjE3IDM3LjQ5MjIgMTkuNzYxNyAzNS43MzQ0IFogTSAyNC4wNTA4IDI0LjA4NjAgTCAzMS45NDkyIDI0LjA2MjUgTCAzMS45NDkyIDIxLjA2MjUgQyAzMS45NDkyIDE4LjI5NjkgMzAuMzc4OSAxNi40Njg3IDI3Ljk4ODMgMTYuNDY4NyBDIDI1LjYyMTEgMTYuNDY4NyAyNC4wNTA4IDE4LjI5NjkgMjQuMDUwOCAyMS4wNjI1IFoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPhoneField = function SvgPhoneField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.156 37.762c6.774 6.773 15.024 12 21.75 12 3.024 0 5.672-1.055 7.805-3.399 1.242-1.383 2.016-3 2.016-4.593 0-1.172-.446-2.297-1.57-3.094l-7.173-5.11c-1.101-.75-2.015-1.125-2.859-1.125-1.078 0-2.016.61-3.094 1.664l-1.664 1.641a1.263 1.263 0 0 1-.89.375c-.375 0-.704-.14-.961-.258-1.43-.773-3.914-2.906-6.235-5.203-2.297-2.297-4.43-4.781-5.18-6.234a1.991 1.991 0 0 1-.257-.938c0-.304.093-.61.351-.867l1.64-1.71c1.056-1.079 1.665-2.017 1.665-3.095 0-.843-.375-1.757-1.148-2.859l-5.04-7.102c-.82-1.125-1.968-1.617-3.234-1.617-1.547 0-3.164.703-4.523 2.04-2.274 2.18-3.282 4.874-3.282 7.85 0 6.727 5.133 14.884 11.883 21.634Z\"\n })));\n};\nexport { SvgPhoneField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMTguMTU2MiAzNy43NjE3IEMgMjQuOTI5NyA0NC41MzUyIDMzLjE3OTcgNDkuNzYxNyAzOS45MDYyIDQ5Ljc2MTcgQyA0Mi45Mjk3IDQ5Ljc2MTcgNDUuNTc4MSA0OC43MDcwIDQ3LjcxMDkgNDYuMzYzMyBDIDQ4Ljk1MjggNDQuOTgwNSA0OS43MjY2IDQzLjM2MzMgNDkuNzI2NiA0MS43Njk1IEMgNDkuNzI2NiA0MC41OTc3IDQ5LjI4MTIgMzkuNDcyNyA0OC4xNTYyIDM4LjY3NTggTCA0MC45ODQzIDMzLjU2NjQgQyAzOS44ODI4IDMyLjgxNjQgMzguOTY4NyAzMi40NDE0IDM4LjEyNTAgMzIuNDQxNCBDIDM3LjA0NjggMzIuNDQxNCAzNi4xMDkzIDMzLjA1MDggMzUuMDMxMiAzNC4xMDU1IEwgMzMuMzY3MSAzNS43NDYxIEMgMzMuMTA5MyAzNi4wMDM5IDMyLjc4MTIgMzYuMTIxMSAzMi40NzY1IDM2LjEyMTEgQyAzMi4xMDE1IDM2LjEyMTEgMzEuNzczNCAzNS45ODA1IDMxLjUxNTYgMzUuODYzMyBDIDMwLjA4NTkgMzUuMDg5OCAyNy42MDE1IDMyLjk1NzEgMjUuMjgxMiAzMC42NjAyIEMgMjIuOTg0MyAyOC4zNjMzIDIwLjg1MTUgMjUuODc4OSAyMC4xMDE1IDI0LjQyNTggQyAxOS45NjA5IDI0LjE2ODAgMTkuODQzNyAyMy44Mzk4IDE5Ljg0MzcgMjMuNDg4MyBDIDE5Ljg0MzcgMjMuMTgzNiAxOS45Mzc1IDIyLjg3ODkgMjAuMTk1MyAyMi42MjExIEwgMjEuODM1OSAyMC45MTAyIEMgMjIuODkwNiAxOS44MzIwIDIzLjQ5OTkgMTguODk0NSAyMy40OTk5IDE3LjgxNjQgQyAyMy40OTk5IDE2Ljk3MjcgMjMuMTI1MCAxNi4wNTg2IDIyLjM1MTUgMTQuOTU3MSBMIDE3LjMxMjQgNy44NTU1IEMgMTYuNDkyMSA2LjczMDUgMTUuMzQzNyA2LjIzODMgMTQuMDc4MSA2LjIzODMgQyAxMi41MzEyIDYuMjM4MyAxMC45MTQwIDYuOTQxNCA5LjU1NDYgOC4yNzc0IEMgNy4yODEyIDEwLjQ1NzEgNi4yNzM0IDEzLjE1MjQgNi4yNzM0IDE2LjEyODkgQyA2LjI3MzQgMjIuODU1NSAxMS40MDYyIDMxLjAxMTcgMTguMTU2MiAzNy43NjE3IFoiLz48L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioButtons = function SvgRadioButtons(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 4h13v1H9zm0 17h13v-1H9zm0-8h13v-1H9zM7 4a3 3 0 1 1-3-3 3 3 0 0 1 3 3zM6 4a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2 2 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm-2-9a1 1 0 1 0 1 1 1 1 0 0 0-1-1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgRadioButtons as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05IDRoMTN2MUg5em0wIDE3aDEzdi0xSDl6bTAtOGgxM3YtMUg5ek03IDRhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzek02IDRhMiAyIDAgMSAwLTIgMiAyLjAwMyAyLjAwMyAwIDAgMCAyLTJ6bTEgOGEzIDMgMCAxIDEtMy0zIDMgMyAwIDAgMSAzIDN6bS0xIDBhMiAyIDAgMSAwLTIgMiAyIDIgMCAwIDAgMi0yem0xIDhhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzem0tMSAwYTIgMiAwIDEgMC0yIDIgMi4wMDMgMi4wMDMgMCAwIDAgMi0yem0tMi05YTEgMSAwIDEgMCAxIDEgMSAxIDAgMCAwLTEtMXoiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioField = function SvgRadioField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 4C5.32 4 4 5.32 4 7s1.32 3 3 3 3-1.32 3-3-1.32-3-3-3Zm0-3C3.7 1 1 3.7 1 7s2.7 6 6 6 6-2.7 6-6-2.7-6-6-6Zm0 10.8c-2.64 0-4.8-2.16-4.8-4.8 0-2.64 2.16-4.8 4.8-4.8 2.64 0 4.8 2.16 4.8 4.8 0 2.64-2.16 4.8-4.8 4.8z\"\n })));\n};\nexport { SvgRadioField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE0IDE0IiByb2xlPSJpbWciIGZvY3VzYWJsZT0iZmFsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gNyw0IEMgNS4zMiw0IDQsNS4zMiA0LDcgNCw4LjY4IDUuMzIsMTAgNywxMCA4LjY4LDEwIDEwLDguNjggMTAsNyAxMCw1LjMyIDguNjgsNCA3LDQgWiBNIDcsMSBDIDMuNywxIDEsMy43IDEsNyBjIDAsMy4zIDIuNyw2IDYsNiAzLjMsMCA2LC0yLjcgNiwtNiBDIDEzLDMuNyAxMC4zLDEgNywxIFogTSA3LDExLjggQyA0LjM2LDExLjggMi4yLDkuNjQgMi4yLDcgMi4yLDQuMzYgNC4zNiwyLjIgNywyLjIgYyAyLjY0LDAgNC44LDIuMTYgNC44LDQuOCAwLDIuNjQgLTIuMTYsNC44IC00LjgsNC44IHoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRangeField = function SvgRangeField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 11h-3.184a2.982 2.982 0 0 0-5.632 0H3a1 1 0 0 0 0 2h9.184a2.982 2.982 0 0 0 5.632 0H21a1 1 0 0 0 0-2Zm-6 2a1 1 0 1 1 1-1 1.001 1.001 0 0 1-1 1Z\"\n })));\n};\nexport { SvgRangeField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggZD0iTTIxLDExSDE3LjgxNTczYTIuOTgyMDgsMi45ODIwOCwwLDAsMC01LjYzMTQ2LDBIM2ExLDEsMCwwLDAsMCwyaDkuMTg0MzNhMi45ODIsMi45ODIsMCwwLDAsNS42MzE0LDBIMjFhMSwxLDAsMCwwLDAtMlptLTYsMmExLDEsMCwxLDEsMS0xQTEuMDAxMywxLjAwMTMsMCwwLDEsMTUsMTNaIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSelect = function SvgSelect(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 4H1c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1zm-5 7H1V5h9v6zm3-2.6L11 7h4l-2 1.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1e72bd\",\n d: \"M2 6h1v4H2V6z\"\n })));\n};\nexport { SvgSelect as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8cGF0aCBkPSJNMTUgNGgtMTRjLTAuNiAwLTEgMC40LTEgMXY2YzAgMC42IDAuNCAxIDEgMWgxNGMwLjYgMCAxLTAuNCAxLTF2LTZjMC0wLjYtMC40LTEtMS0xek0xMCAxMWgtOXYtNmg5djZ6TTEzIDguNGwtMi0xLjRoNGwtMiAxLjR6Ij48L3BhdGg+CjxwYXRoIGZpbGw9IiMxZTcyYmQiIGQ9Ik0yIDZoMXY0aC0xdi00eiI+PC9wYXRoPgo8L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextField = function SvgTextField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 9h2v30H8v3h8v-3h-2V9h2V6H8zM4 16h3.021v-4H0v24h7.042v-4H4zM16.979 12v4H44v16H16.958v4H48V12z\"\n })));\n};\nexport { SvgTextField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjgsOSAxMCw5IDEwLDEyIDEwLDE2IDEwLDM5IDgsMzkgOCw0MiAxNiw0MiAxNiwzOSAxNCwzOSAxNCwxNiAxNCwxMiAxNCw5IDE2LDkgMTYsNiA4LDYgICIvPgoNPHBvbHlnb24gcG9pbnRzPSI0LDE2IDcuMDIxLDE2IDcuMDIxLDEyIDAsMTIgMCwzNiA3LjA0MiwzNiA3LjA0MiwzMiA0LDMyICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTYuOTc5LDEyIDE2Ljk3OSwxNiA0NCwxNiA0NCwzMiAxNi45NTgsMzIgMTYuOTU4LDM2IDQ4LDM2IDQ4LDEyICAiLz4KDTwvZz4KDTwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextareaField = function SvgTextareaField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 33h-2V3h2V0H8v3h2v30H8v3h8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.031 6v4H44v34H4V10h2.938V6H0v42h48V6z\"\n })));\n};\nexport { SvgTextareaField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjE2LDMzIDE0LDMzIDE0LDEwIDE0LDYgMTQsMyAxNiwzIDE2LDAgOCwwIDgsMyAxMCwzIDEwLDYgMTAsMTAgMTAsMzMgOCwzMyA4LDM2IDE2LDM2ICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTcuMDMxLDYgMTcuMDMxLDEwIDQ0LDEwIDQ0LDQ0IDQsNDQgNCwxMCA2LjkzOCwxMCA2LjkzOCw2IDAsNiAwLDQ4IDQ4LDQ4IDQ4LDYgICIvPgoNPC9nPgoNPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgUrlField = function SvgUrlField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.794 12.794c-.478.475-1.113.737-1.794.737s-1.316-.262-1.794-.738a2.54 2.54 0 0 1 0-3.584L5.5 6.916 4.084 5.5 1.791 7.794a4.54 4.54 0 0 0 .003 6.413c.853.855 1.99 1.324 3.206 1.324s2.353-.469 3.206-1.325l2.294-2.294L9.084 10.5l-2.29 2.294zm7.412-11C13.353.938 12.216.469 11 .469S8.647.938 7.794 1.794L5.5 4.084 6.916 5.5 9.21 3.206c.474-.475 1.109-.737 1.79-.737s1.316.263 1.794.737a2.537 2.537 0 0 1 0 3.584L10.5 9.084l1.416 1.416 2.294-2.294a4.54 4.54 0 0 0-.004-6.412zm-2.5 3.912L10.29 4.29l-6 6 1.416 1.416 6-6z\"\n })));\n};\nexport { SvgUrlField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgaWQ9Imljb24tYm91bmQiIGZpbGw9Im5vbmUiIC8+CiAgPHBhdGggZD0iTTYuNzk0LDEyLjc5NEM2LjMxNiwxMy4yNjksNS42ODEsMTMuNTMxLDUsMTMuNTMxcy0xLjMxNi0wLjI2Mi0xLjc5NC0wLjczOGMtMC45ODctMC45ODgtMC45ODctMi41OTcsMC0zLjU4NEw1LjUsNi45MTYgTDQuMDg0LDUuNUwxLjc5MSw3Ljc5NGMtMS43NjYsMS43NjktMS43NjYsNC42NDQsMC4wMDMsNi40MTNDMi42NDcsMTUuMDYyLDMuNzg0LDE1LjUzMSw1LDE1LjUzMXMyLjM1My0wLjQ2OSwzLjIwNi0xLjMyNSBsMi4yOTQtMi4yOTRMOS4wODQsMTAuNUw2Ljc5NCwxMi43OTR6IE0xNC4yMDYsMS43OTRDMTMuMzUzLDAuOTM4LDEyLjIxNiwwLjQ2OSwxMSwwLjQ2OVM4LjY0NywwLjkzOCw3Ljc5NCwxLjc5NEw1LjUsNC4wODQgTDYuOTE2LDUuNWwyLjI5NC0yLjI5NEM5LjY4NCwyLjczMSwxMC4zMTksMi40NjksMTEsMi40NjlzMS4zMTYsMC4yNjMsMS43OTQsMC43MzdjMC45ODgsMC45ODcsMC45ODgsMi41OTcsMCwzLjU4NEwxMC41LDkuMDg0IGwxLjQxNiwxLjQxNmwyLjI5NC0yLjI5NEMxNS45NzUsNi40MzgsMTUuOTc1LDMuNTYyLDE0LjIwNiwxLjc5NHogTTExLjcwNiw1LjcwNmwtMS40MTYtMS40MTZsLTYsNmwxLjQxNiwxLjQxNkwxMS43MDYsNS43MDZ6IiAvPgo8L3N2Zz4=\";","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst moreVertical = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\"\n })\n});\nexport default moreVertical;\n//# sourceMappingURL=more-vertical.js.map","import {\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport clsx from 'clsx';\n\nexport function getInputClassesAndStyles( attributes ) {\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst { name, type, advanced, hideLabel } = attributes;\n\n\tconst containerClass = clsx( {\n\t\t'missing-name': ! name,\n\t} );\n\n\tconst labelClass = clsx( {\n\t\thide: hideLabel,\n\t\t'textarea-label': 'textarea' === type,\n\t} );\n\n\tconst inputClass = clsx(\n\t\tborderProps.className,\n\t\tspacingProps.className,\n\t\tcolorProps.className,\n\t\t{\n\t\t\t'formello-advanced': advanced,\n\t\t\t'formello-rtf': advanced && 'textarea' === type,\n\t\t}\n\t);\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...spacingProps.style,\n\t\t...colorProps.style,\n\t};\n\n\treturn {\n\t\tcontainerClass,\n\t\tlabelClass,\n\t\tinputClass,\n\t\tinputStyle,\n\t};\n}\n","import { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tInspectorAdvancedControls,\n\tBlockControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\n\nimport { useState, Fragment } from '@wordpress/element';\n\nimport { OptionsModal } from './modal';\nimport Label from '../../components/label';\nimport Toolbar from '../../components/field-options/toolbar';\nimport Options from '../../components/field-options';\nimport AdvancedOptions from '../../components/field-options/advanced';\nimport { getInputClassesAndStyles } from '../input/use-field-props';\n\nexport default function Edit( props ) {\n\tconst { attributes, setAttributes } = props;\n\tconst { name, options, showHelp, help, readonly, multiple, disabled } =\n\t\tattributes;\n\n\tconst [ isModalOpen, setModalOpen ] = useState( false );\n\n\tconst fieldProps = getInputClassesAndStyles( attributes );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: fieldProps.containerClass,\n\t} );\n\n\tconst selectedOpts = () => {\n\t\tconst selection = options\n\t\t\t.filter( ( x ) => true === x.selected )\n\t\t\t.map( ( x ) => x.value );\n\t\tif ( ! multiple ) {\n\t\t\treturn selection[ 0 ];\n\t\t}\n\t\treturn selection;\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetModalOpen( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t{ isModalOpen && (\n\t\t\t\t {\n\t\t\t\t\t\tsetModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t
    \n\t);\n}\n","import { registerBlockType } from '@wordpress/blocks';\nimport Edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport { ReactComponent as Icon } from '../../../assets/icons/select.svg';\n\nimport './style.scss';\n\nregisterBlockType( metadata, {\n\t/**\n\t * An icon property should be specified to make it easier to identify a block.\n\t * These can be any of WordPress’ Dashicons, or a custom svg element.\n\t */\n\ticon: Icon,\n\n\t/**\n\t * @see ./edit.js\n\t */\n\tedit: Edit,\n\n\t/**\n\t * @see ./save.js\n\t */\n\tsave,\n} );\n","import { Fragment, useState } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\n\nimport {\n\tToggleControl,\n\tTextareaControl,\n\tButton,\n\tModal,\n} from '@wordpress/components';\n\nimport OptionsList from './opts';\n\nexport function OptionsModal( props ) {\n\tconst { onRequestClose, attributes, setAttributes } = props;\n\n\tconst [ showRaw, setShowRaw ] = useState( false );\n\tconst [ showValue, setShowValue ] = useState( false );\n\n\tconst addNewRow = () => {\n\t\tsetAttributes( {\n\t\t\toptions: [ ...attributes.options, { label: '', value: '' } ],\n\t\t} );\n\t};\n\n\tconst deleteRow = ( record, index ) => {\n\t\tconst items = [ ...attributes.options ]; // make a separate copy of the array\n\t\titems.splice( index, 1 );\n\t\tsetAttributes( { options: items } );\n\t};\n\n\tconst handleChange = ( value, index, prop ) => {\n\t\t// 1. Make a shallow copy of the items\n\t\tconst items = [ ...attributes.options ];\n\t\t// 2. Make a shallow copy of the item you want to mutate\n\t\tconst item = { ...attributes.options[ index ] };\n\t\t// 3. Replace the property you're intested in\n\t\titem[ prop ] = value;\n\t\t// 4. Put it back into our array. N.B. we *are* mutating the array here, but that's why we made a copy first\n\t\titems[ index ] = item;\n\t\t// 5. Set the state to our new copy\n\t\tsetAttributes( { options: items } );\n\t};\n\n\tconst changeOrder = ( items ) => {\n\t\tsetAttributes( { options: items } );\n\t};\n\n\tconst bulkOpts = ( val ) => {\n\t\tconst opts = val.match( /[^\\r\\n]+/g );\n\t\tconst newSettings = [];\n\t\tfor ( const i in opts ) {\n\t\t\tconst tmp = opts[ i ].split( ',' );\n\t\t\tnewSettings.push( {\n\t\t\t\tvalue: tmp[ 0 ],\n\t\t\t\tlabel: tmp[ 1 ] ? tmp[ 1 ] : tmp[ 0 ],\n\t\t\t} );\n\t\t}\n\t\tsetAttributes( { options: newSettings } );\n\t};\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t setShowRaw( newval ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\n\t\t\t\t{ showRaw && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\t\treturn item.value + ',' + item.label;\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t.join( '\\r\\n' ) }\n\t\t\t\t\t\tonChange={ ( val ) => bulkOpts( val ) }\n\t\t\t\t\t\trows=\"6\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! showRaw && (\n\t\t\t\t\t\n\t\t\t\t\t\t setShowValue( newval ) }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAdd option\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t) }\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n","import {\n\tTextControl,\n\tCheckboxControl,\n\tFlex,\n\tFlexItem,\n\tButton,\n} from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\nconst OptionsList = ( props ) => {\n\tconst { options, onChange, showValue, deleteRow } = props;\n\tconst dragItem = useRef();\n\tconst dragOverItem = useRef();\n\n\tconst dragStart = ( e, position ) => {\n\t\tdragItem.current = position;\n\t};\n\n\tconst dragEnter = ( e, position ) => {\n\t\tdragOverItem.current = position;\n\t};\n\n\tconst drop = () => {\n\t\tconst copyListItems = [ ...options ];\n\t\tconst dragItemContent = copyListItems[ dragItem.current ];\n\t\tcopyListItems.splice( dragItem.current, 1 );\n\t\tcopyListItems.splice( dragOverItem.current, 0, dragItemContent );\n\t\tdragItem.current = null;\n\t\tdragOverItem.current = null;\n\t\tprops.changeOrder( copyListItems );\n\t};\n\n\treturn options.map( ( obj, index ) => {\n\t\treturn (\n\t\t\t dragStart( e, index ) }\n\t\t\t\tonDragEnter={ ( e ) => dragEnter( e, index ) }\n\t\t\t\tonDragEnd={ drop }\n\t\t\t\tdraggable\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tonChange( val, index, 'selected' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t{ showValue && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tonChange( val, index, 'value' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\t\n\t\t\t\t\t onChange( val, index, 'label' ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t deleteRow( obj, index ) }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} );\n};\nexport default OptionsList;\n","/* eslint-disable jsx-a11y/label-has-associated-control */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\nimport { SUPPORTED_ATTRIBUTES } from '../../components/field-options/constants';\nimport { getInputClassesAndStyles } from '../input/use-field-props';\n\nexport default function save( { attributes } ) {\n\tconst { label, options, required, requiredText, showHelp, help } =\n\t\tattributes;\n\n\tconst fieldProps = getInputClassesAndStyles( attributes );\n\n\tconst blockProps = useBlockProps.save();\n\n\t// include only supported attributes\n\tconst htmlAttrs = Object.fromEntries(\n\t\tSUPPORTED_ATTRIBUTES.select.map( ( col ) => [ col, attributes[ col ] ] )\n\t);\n\n\tconst selectedOpts = options\n\t\t.filter( ( x ) => true === x.selected )\n\t\t.map( ( x ) => x.value );\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\t{ options.map( ( opt, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ opt.label }\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\n\t\t\t{ showHelp && }\n\t\t
    \n\t);\n}\n","import { __ } from '@wordpress/i18n';\n\nimport { ToggleControl, TextControl, withFilters } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nimport { createBlocksFromInnerBlocksTemplate } from '@wordpress/blocks';\n\nimport { Fragment } from '@wordpress/element';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\n\nfunction AdvancedOptions( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\ttype,\n\t\t\tdisabled,\n\t\t\tenableAutoComplete,\n\t\t\tautocomplete,\n\t\t\treadonly,\n\t\t\tadvanced,\n\t\t},\n\t\tsetAttributes,\n\t\tfieldType,\n\t\tclientId,\n\t} = props;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ fieldType ];\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn !! ( block && block.innerBlocks.length );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\tconst addOutput = () => {\n\t\tlet child = 'formello/button';\n\t\tif ( 'range' === type ) {\n\t\t\tchild = 'formello/output';\n\t\t}\n\t\treplaceInnerBlocks(\n\t\t\tprops.clientId,\n\t\t\tcreateBlocksFromInnerBlocksTemplate( [ [ child ] ] ),\n\t\t\ttrue\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t{ supported.includes( 'cols' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { advanced: newval } )\n\t\t\t\t\t}\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ supported.includes( 'autocomplete' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { enableAutoComplete: newval } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __( 'Hint for form autofill feature.', 'formello' ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ enableAutoComplete && supported.includes( 'autocomplete' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { autocomplete: newval } )\n\t\t\t\t\t}\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'range' === type && (\n\t\t\t\t {\n\t\t\t\t\t\tif ( newval ) {\n\t\t\t\t\t\t\tsetAttributes( { withOutput: true } );\n\t\t\t\t\t\t\taddOutput();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetAttributes( { withOutput: false } );\n\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [], true );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { disabled: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Make the control not accept clicks.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { readonly: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __( 'Make value not editable.', 'formello' ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t);\n}\n\nexport default withFilters( 'formello.advancedOptions' )( AdvancedOptions );\n","export const SUPPORTED_ATTRIBUTES = {\n\thidden: [ 'name', 'id', 'type', 'value' ],\n\ttext: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\ttel: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\turl: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\temail: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'autocomplete',\n\t],\n\tpassword: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'pattern',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'autocomplete',\n\t],\n\tnumber: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\tdate: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\ttime: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\trange: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\tcheckbox: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'checked',\n\t],\n\tradio: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'checked',\n\t],\n\tfile: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'required',\n\t\t'disabled',\n\t\t'accept',\n\t\t'capture',\n\t\t'multiple',\n\t],\n\tcolor: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t],\n\ttextarea: [\n\t\t'name',\n\t\t'id',\n\t\t'required',\n\t\t'value',\n\t\t'type', // hack to use one component\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'cols',\n\t\t'rows',\n\t],\n\tselect: [ 'name', 'id', 'required', 'readonly', 'disabled', 'multiple' ],\n};\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tButton,\n} from '@wordpress/components';\n\nimport { Fragment } from '@wordpress/element';\nimport MergeTags from '../merge-tags';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\n\nconst sanitizedName = ( content ) => {\n\treturn (\n\t\tcontent\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '_' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function Options( props ) {\n\tconst { attributes, setAttributes, clientId, setModalOpen, fieldType } =\n\t\tprops;\n\n\tconst {\n\t\ttype,\n\t\tname,\n\t\tvalue,\n\t\tplaceholder,\n\t\trequired,\n\t\tmultiple,\n\t\tchecked,\n\t\tshowHelp,\n\t} = attributes;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ fieldType ];\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { name: sanitizedName( val ) } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" attribute of the input element, and is used as a name for the form submission results.',\n\t\t\t\t\t\t'formello'\n\t\t\t\t\t) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t\t{ supported.includes( 'value' ) && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { value: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The initial value of the control field.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'placeholder' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { placeholder: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Text that appears in the form control when it has no value set.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'required' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { required: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'multiple' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { multiple: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'checked' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { checked: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! ( 'hidden' === type ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { showHelp: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ 'select' === fieldType && (\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetModalOpen( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage Options', 'formello' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { __ } from '@wordpress/i18n';\nimport { SVG, Rect, ToolbarButton } from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport { Asterisk } from '../../icons/icons';\n\nexport default function Toolbar( props ) {\n\tconst { attributes, setAttributes } = props;\n\tconst { required, showHelp, hideLabel, type } = attributes;\n\n\tconst toggleLabel = (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\tsetAttributes( { required: ! required } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ ( 'checkbox' || 'radio' ) !== type && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { hideLabel: ! hideLabel } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t {\n\t\t\t\t\tsetAttributes( { showHelp: ! showHelp } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { RichText, store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nimport clsx from 'clsx';\n\nexport default function Label( { attributes, setAttributes, context } ) {\n\tconst {\n\t\tlabelClass,\n\t\tlabelAlign,\n\t\tlabelVAlign,\n\t\thideLabel,\n\t\trequired,\n\t\tmultiple,\n\t\ttype,\n\t\tlabel,\n\t} = attributes;\n\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t\tisPreview: getSettings().__unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\n\tconst [ meta ] = useEntityProp(\n\t\t'postType',\n\t\t'formello_form',\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tconst labelClassName = clsx(\n\t\t'label-div',\n\t\tlabelClass,\n\t\tlabelAlign,\n\t\tlabelVAlign,\n\t\t{\n\t\t\thide: hideLabel,\n\t\t\trequired,\n\t\t\t'textarea-label': multiple || 'textarea' === type,\n\t\t}\n\t);\n\n\treturn (\n\t\t
    \n\t\t\t {\n\t\t\t\t\tsetAttributes( { label: val } );\n\t\t\t\t} }\n\t\t\t\tplaceholder={ __( 'Enter label…', 'formello' ) }\n\t\t\t\tallowedFormats={ [ 'core/bold', 'core/italic', 'core/link' ] }\n\t\t\t/>\n\n\t\t\t{ required && (\n\t\t\t\t\n\t\t\t\t\t{ context[ 'formello/requiredText' ] || '*' }\n\t\t\t\t\n\t\t\t) }\n\t\t
    \n\t);\n}\n","import { applyFilters } from '@wordpress/hooks';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nconst allowed = [\n\t'formello/input',\n\t'formello/select',\n\t'formello/textarea',\n\t'formello/multichoices',\n];\n\n/**\n * Find the input fields blocks IDS.\n */\nexport function getFieldsBlock() {\n\tconst fields = [];\n\tconst inputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/input' );\n\tconst textareas =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/textarea' );\n\tconst selects =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/select' );\n\tconst outputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/output' );\n\tconst multichoices = select( blockEditorStore ).getBlocksByName(\n\t\t'formello/multichoices'\n\t);\n\n\tconst fieldsId = inputs.concat( textareas, selects, outputs, multichoices );\n\n\tfieldsId.forEach( ( b ) => {\n\t\tconst block = select( blockEditorStore ).getBlock( b );\n\t\tif ( allowed.includes( block.name ) ) {\n\t\t\tfields.push( block );\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Validate form before saving\n */\nexport function validate() {\n\tconst fields = {\n\t\tnames: [],\n\t\tbuttons:\n\t\t\tselect( blockEditorStore ).getBlocksByName( 'formello/button' ),\n\t};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.names.push( b.attributes.name );\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Get fields type.\n */\nexport function getFieldsType() {\n\tconst fields = {};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\t// get block type by name\n\t\tlet type = b.name.split( '/' )[ 1 ];\n\t\tif ( 'input' === type ) {\n\t\t\ttype = b.attributes.type;\n\t\t}\n\n\t\tfields[ b.attributes.name ] = type;\n\t\tif ( b.attributes.enableRtf ) {\n\t\t\tfields[ b.attributes.name ] = 'richtext';\n\t\t}\n\t\tif ( b.attributes.multiple && 'select' === type ) {\n\t\t\tfields[ b.attributes.name ] = type + '-multiple';\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFields() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\ttitle: b.attributes.name,\n\t\t\ttag: '{{fields.' + b.attributes.name + '}}',\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFieldsName() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\tlabel: b.attributes.name,\n\t\t\tvalue: b.attributes.name,\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function getFieldsTags() {\n\tconst fields = serializeFields();\n\n\treturn [\n\t\t{\n\t\t\ttitle: 'All Data',\n\t\t\ttag: '{{fields.all_data}}',\n\t\t},\n\t\t...fields,\n\t];\n}\n\nexport function getConstraints() {\n\tconst constraints = {};\n\tconst fields = getFieldsBlock();\n\n\tif ( fields ) {\n\t\tfields.forEach( ( b ) => {\n\t\t\tconst constraint = getFieldConstraint( b );\n\t\t\tlet name = b.attributes.name;\n\n\t\t\tif ( b.attributes.multiple ) {\n\t\t\t\tname += '.*';\n\t\t\t}\n\t\t\tif ( constraint ) {\n\t\t\t\tconstraints[ name ] = constraint;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn constraints;\n}\n\nexport function getFieldConstraint( field ) {\n\tlet constraints = [];\n\n\tif ( field.attributes.type === 'url' ) {\n\t\tconstraints.push( 'url' );\n\t}\n\n\tif ( field.attributes.required ) {\n\t\tconstraints.push( 'required' );\n\t}\n\n\tif ( field.attributes.minlength ) {\n\t\tconstraints.push( 'minlength:' + field.attributes.minlength );\n\t}\n\n\tif ( field.attributes.maxlength ) {\n\t\tconstraints.push( 'maxlength:' + field.attributes.maxlength );\n\t}\n\n\tif ( field.attributes.min && 'date' !== field.attributes.type ) {\n\t\tconstraints.push( 'min:' + field.attributes.min );\n\t}\n\n\tif (\n\t\tfield.attributes.max &&\n\t\t'date' !== field.attributes.type &&\n\t\t'file' !== field.attributes.type\n\t) {\n\t\tconstraints.push( 'max:' + field.attributes.max );\n\t}\n\n\tif ( field.attributes.type === 'email' ) {\n\t\tconstraints.push( 'email' );\n\t}\n\n\tif (\n\t\tfield.attributes.type === 'number' ||\n\t\tfield.attributes.type === 'range'\n\t) {\n\t\tconstraints.push( 'numeric' );\n\t}\n\n\tif ( 'date' === field.attributes.type && ! field.attributes.advanced ) {\n\t\tconstraints.push( 'date' );\n\t}\n\n\tif ( field.attributes.pattern ) {\n\t\tconst regEx = new RegExp( field.attributes.pattern );\n\t\tconstraints.push( 'regex:' + regEx );\n\t}\n\n\tif ( field.attributes.enableMismatch && '' !== field.attributes.match ) {\n\t\tconstraints.push( 'same:' + field.attributes.match );\n\t}\n\n\tapplyFilters( 'formello.constraints', constraints, field );\n\n\tif ( constraints.length ) {\n\t\tconstraints = constraints.join( '|' );\n\t}\n\n\treturn constraints.length ? constraints : undefined;\n}\n\nexport function getMetaTags() {\n\tconst postType = select( 'core/editor' ).getCurrentPostType();\n\tconst postId = select( 'core/editor' ).getCurrentPostId();\n\n\tconst [ meta ] = useEntityProp( 'postType', postType, 'meta', postId );\n\tconst metaTags = [];\n\n\tfor ( const key in meta ) {\n\t\tif ( meta[ key ] !== Object( key ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst tag = {\n\t\t\ttitle: key,\n\t\t\ttag: `{{meta.${ key }}}`,\n\t\t};\n\t\tmetaTags.push( tag );\n\t}\n\n\treturn metaTags;\n}\n\nexport function getWordpressTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Post ID',\n\t\t\ttag: `{{wp.post_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Title',\n\t\t\ttag: `{{wp.post_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post URL',\n\t\t\ttag: `{{wp.post_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author',\n\t\t\ttag: `{{wp.post_author}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author Email',\n\t\t\ttag: `{{wp.post_author_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User ID',\n\t\t\ttag: `{{wp.user_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User First Name',\n\t\t\ttag: `{{wp.user_first_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Last Name',\n\t\t\ttag: `{{wp.user_last_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Display Name',\n\t\t\ttag: `{{wp.user_display_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Username',\n\t\t\ttag: `{{wp.user_username}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Email',\n\t\t\ttag: `{{wp.user_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User URL',\n\t\t\ttag: `{{wp.user_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site Title',\n\t\t\ttag: `{{wp.site_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site URL',\n\t\t\ttag: `{{wp.site_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Admin Email',\n\t\t\ttag: `{{wp.admin_email}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getFormTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Form ID',\n\t\t\ttag: `{{form.form_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Form Label',\n\t\t\ttag: `{{form.form_name}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getOtherTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Date',\n\t\t\ttag: `{{other.system_date}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Time',\n\t\t\ttag: `{{other.system_time}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Referrer URL',\n\t\t\ttag: `{{other.referrer}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User IP',\n\t\t\ttag: `{{other.user_ip}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getPatternTabs() {\n\tconst passwords = [\n\t\t{\n\t\t\ttitle: 'Password',\n\t\t\ttag: `^(?=.*[A-Za-z])(?=.*\\\\d)[A-Za-z\\\\d]{8,}$`,\n\t\t\tdescription: 'One uppercase, one number, at least 8 chars',\n\t\t},\n\t\t{\n\t\t\ttitle: 'Password with special characters',\n\t\t\ttag: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$`,\n\t\t\tdescription:\n\t\t\t\t'One uppercase, one number, one special chars, at least 8 chars',\n\t\t},\n\t];\n\n\tconst dates = [\n\t\t{\n\t\t\ttitle: 'dd/mm/yyyy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{4}$',\n\t\t},\n\t\t{\n\t\t\ttitle: 'dd/mm/yy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{2}$',\n\t\t},\n\t];\n\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'passwords',\n\t\t\ttitle: 'Passwords',\n\t\t\tdata: passwords,\n\t\t},\n\t\t{\n\t\t\tname: 'dates',\n\t\t\ttitle: 'Dates',\n\t\t\tdata: dates,\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport {\n\tBaseControl,\n\tDropdownMenu,\n\t__experimentalInputControl as InputControl,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { defaultTabs } from './use-tabs';\nimport TabContent from './tab-content';\n\nexport default function MergeTags( props ) {\n\tconst {\n\t\tlabel,\n\t\tvalue,\n\t\tplaceholder,\n\t\thelp,\n\t\tonChange,\n\t\ticon = moreVertical,\n\t\tclientId,\n\t\ttabs = defaultTabs( clientId ),\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) }\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t\n\t);\n}\n\nexport function MergeTagsMenu( props ) {\n\tconst { label, onChange, icon = moreVertical, clientId } = props;\n\n\tconst tabs = defaultTabs( clientId );\n\n\treturn (\n\t\t\n\t\t\t{ () => }\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { SearchControl, TabPanel, MenuItem } from '@wordpress/components';\nimport { useState, Fragment } from '@wordpress/element';\n\nexport default function TabContent( { tabs, onChange } ) {\n\tconst [ searchInput, setSearchInput ] = useState( '' );\n\n\tconst filterAddon = ( element ) => {\n\t\tif ( '' === searchInput ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn (\n\t\t\telement.title.toLowerCase().search( searchInput.toLowerCase() ) !==\n\t\t\t-1\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ ( tab ) =>\n\t\t\t\t\ttab.data\n\t\t\t\t\t\t.filter( ( element ) => {\n\t\t\t\t\t\t\treturn filterAddon( element );\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.map( ( data ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t onChange( data.tag ) }\n\t\t\t\t\t\t\t\t\tinfo={ data.description }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ data.title }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n}\n","import {\n\tgetFieldsTags,\n\tgetWordpressTags,\n\tgetOtherTags,\n\tgetMetaTags,\n} from './functions';\n\nexport function defaultTabs( clientId ) {\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'fields',\n\t\t\ttitle: 'Fields',\n\t\t\tdata: getFieldsTags( clientId ),\n\t\t},\n\t\t{\n\t\t\tname: 'wordpress',\n\t\t\ttitle: 'WordPress',\n\t\t\tdata: getWordpressTags(),\n\t\t},\n\t\t{\n\t\t\tname: 'other',\n\t\t\ttitle: 'Other',\n\t\t\tdata: getOtherTags(),\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","import { ReactComponent as Asterisk } from '../../assets/icons/asterisk.svg';\nimport { ReactComponent as Checkbox } from '../../assets/icons/checkbox.svg';\nimport { ReactComponent as Calendar } from '../../assets/icons/date-field.svg';\nimport { ReactComponent as Checkboxes } from '../../assets/icons/checkboxes.svg';\nimport { ReactComponent as Clock } from '../../assets/icons/clock-field.svg';\nimport { ReactComponent as Color } from '../../assets/icons/color-field.svg';\nimport { ReactComponent as Email } from '../../assets/icons/email-field.svg';\nimport { ReactComponent as Fieldset } from '../../assets/icons/fieldset.svg';\nimport { ReactComponent as Form } from '../../assets/icons/form.svg';\nimport { ReactComponent as GDPR } from '../../assets/icons/gdpr-field.svg';\nimport { ReactComponent as Hidden } from '../../assets/icons/hidden-field.svg';\nimport { ReactComponent as Input } from '../../assets/icons/text-field.svg';\nimport { ReactComponent as Logo } from '../../assets/icons/logo.svg';\nimport { ReactComponent as Number } from '../../assets/icons/number-field.svg';\nimport { ReactComponent as Password } from '../../assets/icons/password-field.svg';\nimport { ReactComponent as Range } from '../../assets/icons/range-field.svg';\nimport { ReactComponent as Radio } from '../../assets/icons/radio-field.svg';\nimport { ReactComponent as Radios } from '../../assets/icons/radio-buttons.svg';\nimport { ReactComponent as Select } from '../../assets/icons/select.svg';\nimport { ReactComponent as Tel } from '../../assets/icons/phone-field.svg';\nimport { ReactComponent as Textarea } from '../../assets/icons/textarea-field.svg';\nimport { ReactComponent as Url } from '../../assets/icons/url-field.svg';\n\nexport {\n\tAsterisk,\n\tCheckbox,\n\tCheckboxes,\n\tClock,\n\tColor,\n\tEmail,\n\tFieldset,\n\tForm,\n\tGDPR,\n\tHidden,\n\tInput,\n\tLogo,\n\tNumber,\n\tPassword,\n\tRadio,\n\tRange,\n\tRadios,\n\tSelect,\n\tTel,\n\tTextarea,\n\tUrl,\n\tCalendar,\n};\n","// extracted by mini-css-extract-plugin\nexport {};","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"hooks\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"primitives\"];","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"blocks/select/index\": 0,\n\t\"blocks/select/style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkformello\"] = self[\"webpackChunkformello\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"blocks/select/style-index\"], () => (__webpack_require__(\"./src/blocks/select/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetSpacingClassesAndStyles","getSpacingClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","clsx","getInputClassesAndStyles","attributes","borderProps","spacingProps","colorProps","name","type","advanced","hideLabel","containerClass","labelClass","hide","inputClass","className","inputStyle","style","__","InspectorControls","InspectorAdvancedControls","BlockControls","RichText","useBlockProps","ToolbarButton","ToolbarGroup","useState","Fragment","OptionsModal","Label","Toolbar","Options","AdvancedOptions","jsx","_jsx","jsxs","_jsxs","Edit","props","setAttributes","options","showHelp","help","readonly","multiple","disabled","isModalOpen","setModalOpen","fieldProps","blockProps","selectedOpts","selection","filter","x","selected","map","value","children","label","icon","onClick","fieldType","readOnly","defaultValue","opt","index","tagName","onChange","val","placeholder","allowedFormats","onRequestClose","registerBlockType","save","metadata","ReactComponent","Icon","edit","ToggleControl","TextareaControl","Button","Modal","OptionsList","showRaw","setShowRaw","showValue","setShowValue","addNewRow","deleteRow","record","items","splice","handleChange","prop","item","changeOrder","bulkOpts","opts","match","newSettings","i","tmp","split","push","title","size","shouldCloseOnClickOutside","checked","newval","__nextHasNoMarginBottom","join","rows","variant","TextControl","CheckboxControl","Flex","FlexItem","useRef","dragItem","dragOverItem","dragStart","e","position","current","dragEnter","drop","copyListItems","dragItemContent","obj","justify","onDragStart","onDragEnter","onDragEnd","draggable","isSmall","iconSize","SUPPORTED_ATTRIBUTES","required","requiredText","htmlAttrs","Object","fromEntries","select","col","Content","withFilters","useSelect","useDispatch","store","blockEditorStore","createBlocksFromInnerBlocksTemplate","enableAutoComplete","autocomplete","clientId","supported","hasInnerBlocks","getBlock","block","innerBlocks","length","replaceInnerBlocks","addOutput","child","includes","withOutput","hidden","text","tel","url","email","password","number","date","time","range","checkbox","radio","file","color","textarea","PanelBody","MergeTags","sanitizedName","content","replace","toLowerCase","initialOpen","SVG","Rect","Asterisk","toggleLabel","xmlns","viewBox","y","width","height","transform","stroke","fill","strokeWidth","isPressed","useEntityProp","context","labelAlign","labelVAlign","postType","postId","getSettings","getCurrentPostType","getCurrentPostId","isPreview","__unstableIsPreviewMode","meta","labelClassName","htmlFor","applyFilters","allowed","getFieldsBlock","fields","inputs","getBlocksByName","textareas","selects","outputs","multichoices","fieldsId","concat","forEach","b","validate","names","buttons","fieldsBlock","getFieldsType","enableRtf","serializeFields","tag","serializeFieldsName","getFieldsTags","getConstraints","constraints","constraint","getFieldConstraint","field","minlength","maxlength","min","max","pattern","regEx","RegExp","enableMismatch","undefined","getMetaTags","metaTags","key","getWordpressTags","tags","getFormTags","getOtherTags","getPatternTabs","passwords","description","dates","tabs","data","BaseControl","DropdownMenu","__experimentalInputControl","InputControl","moreVertical","defaultTabs","TabContent","suffix","toggleProps","MergeTagsMenu","SearchControl","TabPanel","MenuItem","searchInput","setSearchInput","filterAddon","element","search","tab","info","Checkbox","Calendar","Checkboxes","Clock","Color","Email","Fieldset","Form","GDPR","Hidden","Input","Logo","Number","Password","Range","Radio","Radios","Select","Tel","Textarea","Url"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"blocks/select/index.js","mappings":";;;;;;;;;;;;;;;;;AAAA;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG;AACH;AACyC;AACzC,iEAAe,oBAAoB,gpBAAgpB;;;;;;;;;;;;;;;;;ACdnrB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AACyC;AACzC,iEAAe,oBAAoB,4kBAA4kB;;;;;;;;;;;;;;;;;ACjB/mB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,onEAAonE;;;;;;;;;;;;;;;;;ACfvpE;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,wnBAAwnB;;;;;;;;;;;;;;;;;ACjB3pB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,gtDAAgtD;;;;;;;;;;;;;;;;;ACfnvD;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AAC0C;AAC1C,iEAAe,oBAAoB,owCAAowC;;;;;;;;;;;;;;;;;ACjBvyC;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,ojDAAojD;;;;;;;;;;;;;;;;;ACdvlD;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG;AACH;AACyC;AACzC,iEAAe,oBAAoB,4+BAA4+B;;;;;;;;;;;;;;;;;ACjB/gC;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AACqC;AACrC,iEAAe,oBAAoB,wkFAAwkF;;;;;;;;;;;;;;;;;ACb3mF;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AAC0C;AAC1C,iEAAe,oBAAoB,wUAAwU;;;;;;;;;;;;;;;;;ACf3W;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG;AACH;AAC4C;AAC5C,iEAAe,oBAAoB,g2BAAg2B;;;;;;;;;;;;;;;;;ACfn4B;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG;AACH;AACqC;AACrC,iEAAe,oBAAoB,g8BAAg8B;;;;;;;;;;;;;;;;;ACfn+B;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AAC4C;AAC5C,iEAAe,oBAAoB,wiDAAwiD;;;;;;;;;;;;;;;;;ACjB3kD;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AAC8C;AAC9C,iEAAe,oBAAoB,guDAAguD;;;;;;;;;;;;;;;;;ACdnwD;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,wjDAAwjD;;;;;;;;;;;;;;;;;ACd3lD;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG;AACH;AAC6C;AAC7C,iEAAe,oBAAoB,guBAAguB;;;;;;;;;;;;;;;;;AChBnwB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,wtBAAwtB;;;;;;;;;;;;;;;;;ACf3vB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,4fAA4f;;;;;;;;;;;;;;;;;ACf/hB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG;AACH;AACuC;AACvC,iEAAe,oBAAoB,4nBAA4nB;;;;;;;;;;;;;;;;;ACjB/pB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AAC0C;AAC1C,iEAAe,oBAAoB,o0BAAo0B;;;;;;;;;;;;;;;;;ACfv2B;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AAC8C;AAC9C,iEAAe,oBAAoB,wuBAAwuB;;;;;;;;;;;;;;;;;ACjB3wB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AACyC;AACzC,iEAAe,oBAAoB,wwCAAwwC;;;;;;;;;;;;;;;;;;ACjB3yC;AACA;AACA;AACkD;AACF;AAChD,kCAAkC,sDAAI,CAAC,sDAAG;AAC1C;AACA;AACA,yBAAyB,sDAAI,CAAC,uDAAI;AAClC;AACA,GAAG;AACH,CAAC;AACD,iEAAe,YAAY,EAAC;AAC5B;;;;;;;;;;;;;;;;;ACTiC;AACT;AAEjB,SAASO,wBAAwBA,CAAEC,UAAU,EAAG;EACtD,MAAMC,WAAW,GAAGR,gGAAyB,CAAEO,UAAW,CAAC;EAC3D,MAAME,YAAY,GAAGP,iGAA0B,CAAEK,UAAW,CAAC;EAC7D,MAAMG,UAAU,GAAGN,+FAAwB,CAAEG,UAAW,CAAC;EAEzD,MAAM;IAAEI,IAAI;IAAEC,IAAI;IAAEC,QAAQ;IAAEC;EAAU,CAAC,GAAGP,UAAU;EAEtD,MAAMQ,cAAc,GAAGV,gDAAI,CAAE;IAC5B,cAAc,EAAE,CAAEM;EACnB,CAAE,CAAC;EAEH,MAAMK,UAAU,GAAGX,gDAAI,CAAE;IACxBY,IAAI,EAAEH,SAAS;IACf,gBAAgB,EAAE,UAAU,KAAKF;EAClC,CAAE,CAAC;EAEH,MAAMM,UAAU,GAAGb,gDAAI,CACtBG,WAAW,CAACW,SAAS,EACrBV,YAAY,CAACU,SAAS,EACtBT,UAAU,CAACS,SAAS,EACpB;IACC,mBAAmB,EAAEN;EACtB,CACD,CAAC;EAED,MAAMO,UAAU,GAAG;IAClB,GAAGZ,WAAW,CAACa,KAAK;IACpB,GAAGZ,YAAY,CAACY,KAAK;IACrB,GAAGX,UAAU,CAACW;EACf,CAAC;EAED,OAAO;IACNN,cAAc;IACdC,UAAU;IACVE,UAAU;IACVE;EACD,CAAC;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5CqC;AAUJ;AACmC;AAEZ;AAEjB;AACI;AACkB;AACR;AACiB;AACF;AAAA;AAErD,SAASqB,IAAIA,CAAEC,KAAK,EAAG;EACrC,MAAM;IAAEnC,UAAU;IAAEoC;EAAc,CAAC,GAAGD,KAAK;EAC3C,MAAM;IAAE/B,IAAI;IAAEiC,OAAO;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC;EAAS,CAAC,GACpE1C,UAAU;EAEX,MAAM,CAAE2C,WAAW,EAAEC,YAAY,CAAE,GAAGrB,4DAAQ,CAAE,KAAM,CAAC;EAEvD,MAAMsB,UAAU,GAAG9C,gFAAwB,CAAEC,UAAW,CAAC;EAEzD,MAAM8C,UAAU,GAAG1B,sEAAa,CAAE;IACjCR,SAAS,EAAEiC,UAAU,CAACrC;EACvB,CAAE,CAAC;EAEH,MAAMuC,YAAY,GAAGA,CAAA,KAAM;IAC1B,MAAMC,SAAS,GAAGX,OAAO,CACvBY,MAAM,CAAIC,CAAC,IAAM,IAAI,KAAKA,CAAC,CAACC,QAAS,CAAC,CACtCC,GAAG,CAAIF,CAAC,IAAMA,CAAC,CAACG,KAAM,CAAC;IACzB,IAAK,CAAEZ,QAAQ,EAAG;MACjB,OAAOO,SAAS,CAAE,CAAC,CAAE;IACtB;IACA,OAAOA,SAAS;EACjB,CAAC;EAED,oBACCf,wDAAA;IAAA,GAAUa,UAAU;IAAAQ,QAAA,gBACnBrB,wDAAA,CAACjB,sEAAiB;MAAAsC,QAAA,gBACjBvB,uDAAA,CAACb,kEAAa;QAAAoC,QAAA,eACbrB,wDAAA,CAACX,+DAAY;UAAAgC,QAAA,gBACZvB,uDAAA,CAACJ,yEAAO;YAAA,GAAMQ;UAAK,CAAI,CAAC,eACxBJ,uDAAA,CAACV,gEAAa;YACbkC,KAAK,EAAGxC,mDAAE,CAAE,aAAa,EAAE,UAAW,CAAG;YACzCyC,IAAI,EAAG,WAAa;YACpBC,OAAO,EAAGA,CAAA,KAAM;cACfb,YAAY,CAAE,IAAK,CAAC;YACrB;UAAG,CACH,CAAC;QAAA,CACW;MAAC,CACD,CAAC,eAChBb,uDAAA,CAACH,iEAAO;QAAA,GACFO,KAAK;QACVS,YAAY,EAAGA,YAAc;QAC7Bc,SAAS,EAAC;MAAQ,CAClB,CAAC;IAAA,CACgB,CAAC,eACpB3B,uDAAA,CAACd,8EAAyB;MAAAqC,QAAA,eACzBvB,uDAAA,CAACF,0EAAe;QAAA,GAAMM,KAAK;QAAGuB,SAAS,EAAC;MAAQ,CAAE;IAAC,CACzB,CAAC,eAC5BzB,wDAAA,CAACT,wDAAQ;MAAA8B,QAAA,gBACRvB,uDAAA,CAACL,yDAAK;QAAA,GAAMS;MAAK,CAAI,CAAC,eAEtBJ,uDAAA;QACC3B,IAAI,EAAGA,IAAM;QACbqC,QAAQ,EAAGA,QAAU;QACrBkB,QAAQ,EAAGnB,QAAU;QACrBE,QAAQ,EAAGA,QAAU;QACrBkB,YAAY,EAAGb,YAAY,CAAC,CAAG;QAC/BjC,KAAK,EAAG+B,UAAU,CAAChC,UAAY;QAC/BD,SAAS,EAAGiC,UAAU,CAAClC,UAAY;QAAA2C,QAAA,EAEjCjB,OAAO,CAACe,GAAG,CAAE,CAAES,GAAG,EAAEC,KAAK,KAAM;UAChC,oBACC/B,uDAAA;YACCsB,KAAK,EAAGQ,GAAG,CAACR,KAAK,IAAIQ,GAAG,CAACN,KAAO;YAAAD,QAAA,EAI9BO,GAAG,CAACN;UAAK,GAHLO,KAIC,CAAC;QAEX,CAAE;MAAC,CACI,CAAC,EACPxB,QAAQ,iBACTP,uDAAA,CAACZ,6DAAQ;QACR4C,OAAO,EAAC,OAAO;QACfV,KAAK,EAAGd,IAAM;QACdyB,QAAQ,EAAKC,GAAG,IAAM7B,aAAa,CAAE;UAAEG,IAAI,EAAE0B;QAAI,CAAE,CAAG;QACtDC,WAAW,EAAGnD,mDAAE,CAAE,qBAAqB,EAAE,UAAW,CAAG;QACvDoD,cAAc,EAAG,CAChB,WAAW,EACX,aAAa,EACb,WAAW;MACT,CACH,CACD;IAAA,CACQ,CAAC,EACTxB,WAAW,iBACZZ,uDAAA,CAACN,gDAAY;MAAA,GACPU,KAAK;MACViC,cAAc,EAAGA,CAAA,KAAM;QACtBxB,YAAY,CAAE,KAAM,CAAC;MACtB;IAAG,CACH,CACD;EAAA,CACG,CAAC;AAER;;;;;;;;;;;;;;;;;;ACrHsD;AAC5B;AACA;AACU;AACsC;AAEpD;AAEtByB,oEAAiB,CAAEE,wCAAQ,EAAE;EAC5B;AACD;AACA;AACA;EACCf,IAAI,EAAEiB,oEAAI;EAEV;AACD;AACA;EACCC,IAAI,EAAExC,6CAAI;EAEV;AACD;AACA;EACCoC,IAAIA,+CAAAA;AACL,CAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACxBqD;AAEnB;AAON;AAEE;AAAA;AAE1B,SAAS7C,YAAYA,CAAEU,KAAK,EAAG;EACrC,MAAM;IAAEiC,cAAc;IAAEpE,UAAU;IAAEoC;EAAc,CAAC,GAAGD,KAAK;EAE3D,MAAM,CAAE6C,OAAO,EAAEC,UAAU,CAAE,GAAG1D,4DAAQ,CAAE,KAAM,CAAC;EACjD,MAAM,CAAE2D,SAAS,EAAEC,YAAY,CAAE,GAAG5D,4DAAQ,CAAE,KAAM,CAAC;EAErD,MAAM6D,SAAS,GAAGA,CAAA,KAAM;IACvBhD,aAAa,CAAE;MACdC,OAAO,EAAE,CAAE,GAAGrC,UAAU,CAACqC,OAAO,EAAE;QAAEkB,KAAK,EAAE,EAAE;QAAEF,KAAK,EAAE;MAAG,CAAC;IAC3D,CAAE,CAAC;EACJ,CAAC;EAED,MAAMgC,SAAS,GAAGA,CAAEC,MAAM,EAAExB,KAAK,KAAM;IACtC,MAAMyB,KAAK,GAAG,CAAE,GAAGvF,UAAU,CAACqC,OAAO,CAAE,CAAC,CAAC;IACzCkD,KAAK,CAACC,MAAM,CAAE1B,KAAK,EAAE,CAAE,CAAC;IACxB1B,aAAa,CAAE;MAAEC,OAAO,EAAEkD;IAAM,CAAE,CAAC;EACpC,CAAC;EAED,MAAME,YAAY,GAAGA,CAAEpC,KAAK,EAAES,KAAK,EAAE4B,IAAI,KAAM;IAC9C;IACA,MAAMH,KAAK,GAAG,CAAE,GAAGvF,UAAU,CAACqC,OAAO,CAAE;IACvC;IACA,MAAMsD,IAAI,GAAG;MAAE,GAAG3F,UAAU,CAACqC,OAAO,CAAEyB,KAAK;IAAG,CAAC;IAC/C;IACA6B,IAAI,CAAED,IAAI,CAAE,GAAGrC,KAAK;IACpB;IACAkC,KAAK,CAAEzB,KAAK,CAAE,GAAG6B,IAAI;IACrB;IACAvD,aAAa,CAAE;MAAEC,OAAO,EAAEkD;IAAM,CAAE,CAAC;EACpC,CAAC;EAED,MAAMK,WAAW,GAAKL,KAAK,IAAM;IAChCnD,aAAa,CAAE;MAAEC,OAAO,EAAEkD;IAAM,CAAE,CAAC;EACpC,CAAC;EAED,MAAMM,QAAQ,GAAK5B,GAAG,IAAM;IAC3B,MAAM6B,IAAI,GAAG7B,GAAG,CAAC8B,KAAK,CAAE,WAAY,CAAC;IACrC,MAAMC,WAAW,GAAG,EAAE;IACtB,KAAM,MAAMC,CAAC,IAAIH,IAAI,EAAG;MACvB,MAAMI,GAAG,GAAGJ,IAAI,CAAEG,CAAC,CAAE,CAACE,KAAK,CAAE,GAAI,CAAC;MAClCH,WAAW,CAACI,IAAI,CAAE;QACjB/C,KAAK,EAAE6C,GAAG,CAAE,CAAC,CAAE;QACf3C,KAAK,EAAE2C,GAAG,CAAE,CAAC,CAAE,GAAGA,GAAG,CAAE,CAAC,CAAE,GAAGA,GAAG,CAAE,CAAC;MACpC,CAAE,CAAC;IACJ;IACA9D,aAAa,CAAE;MAAEC,OAAO,EAAE2D;IAAY,CAAE,CAAC;EAC1C,CAAC;EAED,oBACCjE,sDAAA,CAAC+C,wDAAK;IACLuB,KAAK,EAAGtF,mDAAE,CAAE,SAAS,EAAE,UAAW,CAAG;IACrCqD,cAAc,EAAGA,cAAgB;IACjCkC,IAAI,EAAC,QAAQ;IACbC,yBAAyB,EAAG,KAAO;IAAAjD,QAAA,eAEnCrB,uDAAA;MAAKrB,SAAS,EAAC,uBAAuB;MAAA0C,QAAA,gBACrCvB,sDAAA,CAAC4C,gEAAa;QACbpB,KAAK,EAAGxC,mDAAE,CAAE,UAAU,EAAE,UAAW,CAAG;QACtCyF,OAAO,EAAGxB,OAAS;QACnBhB,QAAQ,EAAKyC,MAAM,IAAMxB,UAAU,CAAEwB,MAAO,CAAG;QAC/CC,uBAAuB;MAAA,CACvB,CAAC,EAEA1B,OAAO,iBACRjD,sDAAA,CAAC6C,kEAAe;QACfrB,KAAK,EAAGxC,mDAAE,CAAE,SAAS,EAAE,UAAW,CAAG;QACrCwB,IAAI,EAAGxB,mDAAE,CACR,kFAAkF,EAClF,UACD,CAAG;QACHmD,WAAW,EAAGnD,mDAAE,CACf,8EAA8E,EAC9E,UACD,CAAG;QACH6C,YAAY,EAAG5D,UAAU,CAACqC,OAAO,CAC/Be,GAAG,CAAIuC,IAAI,IAAM;UACjB,OAAOA,IAAI,CAACtC,KAAK,GAAG,GAAG,GAAGsC,IAAI,CAACpC,KAAK;QACrC,CAAE,CAAC,CACFoD,IAAI,CAAE,MAAO,CAAG;QAClB3C,QAAQ,EAAKC,GAAG,IAAM4B,QAAQ,CAAE5B,GAAI,CAAG;QACvC2C,IAAI,EAAC;MAAG,CACR,CACD,EACC,CAAE5B,OAAO,iBACV/C,uDAAA,CAACT,wDAAQ;QAAA8B,QAAA,gBACRvB,sDAAA,CAAC4C,gEAAa;UACbpB,KAAK,EAAGxC,mDAAE,CAAE,YAAY,EAAE,UAAW,CAAG;UACxCyF,OAAO,EAAGtB,SAAW;UACrBlB,QAAQ,EAAKyC,MAAM,IAAMtB,YAAY,CAAEsB,MAAO,CAAG;UACjDC,uBAAuB;QAAA,CACvB,CAAC,eACF3E,sDAAA,CAACgD,6CAAW;UACXM,SAAS,EAAGA,SAAW;UACvBrB,QAAQ,EAAGyB,YAAc;UACzBG,WAAW,EAAGA,WAAa;UAC3BvD,OAAO,EAAGrC,UAAU,CAACqC,OAAS;UAC9B6C,SAAS,EAAGA;QAAW,CACvB,CAAC,eACFnD,sDAAA;UAAAuB,QAAA,eACCvB,sDAAA,CAAC8C,yDAAM;YACNgC,OAAO,EAAC,SAAS;YACjBP,IAAI,EAAC,OAAO;YACZ7C,OAAO,EAAG2B,SAAW;YAAA9B,QAAA,EACrB;UAED,CAAQ;QAAC,CACL,CAAC;MAAA,CACG,CACV,eACDvB,sDAAA;QAAKnB,SAAS,EAAC,wBAAwB;QAAA0C,QAAA,eACtCvB,sDAAA,CAAC8C,yDAAM;UAACgC,OAAO,EAAC,SAAS;UAACpD,OAAO,EAAGW,cAAgB;UAAAd,QAAA,EAAC;QAErD,CAAQ;MAAC,CACL,CAAC;IAAA,CACF;EAAC,CACA,CAAC;AAEV;;;;;;;;;;;;;;;;;;;;;;AC3H+B;AAEa;AACP;AAAA;AAErC,MAAMyB,WAAW,GAAK5C,KAAK,IAAM;EAChC,MAAM;IAAEE,OAAO;IAAE2B,QAAQ;IAAEkB,SAAS;IAAEG;EAAU,CAAC,GAAGlD,KAAK;EACzD,MAAMiF,QAAQ,GAAGD,0DAAM,CAAC,CAAC;EACzB,MAAME,YAAY,GAAGF,0DAAM,CAAC,CAAC;EAE7B,MAAMG,SAAS,GAAGA,CAAEC,CAAC,EAAEC,QAAQ,KAAM;IACpCJ,QAAQ,CAACK,OAAO,GAAGD,QAAQ;EAC5B,CAAC;EAED,MAAME,SAAS,GAAGA,CAAEH,CAAC,EAAEC,QAAQ,KAAM;IACpCH,YAAY,CAACI,OAAO,GAAGD,QAAQ;EAChC,CAAC;EAED,MAAMG,IAAI,GAAGA,CAAA,KAAM;IAClB,MAAMC,aAAa,GAAG,CAAE,GAAGvF,OAAO,CAAE;IACpC,MAAMwF,eAAe,GAAGD,aAAa,CAAER,QAAQ,CAACK,OAAO,CAAE;IACzDG,aAAa,CAACpC,MAAM,CAAE4B,QAAQ,CAACK,OAAO,EAAE,CAAE,CAAC;IAC3CG,aAAa,CAACpC,MAAM,CAAE6B,YAAY,CAACI,OAAO,EAAE,CAAC,EAAEI,eAAgB,CAAC;IAChET,QAAQ,CAACK,OAAO,GAAG,IAAI;IACvBJ,YAAY,CAACI,OAAO,GAAG,IAAI;IAC3BtF,KAAK,CAACyD,WAAW,CAAEgC,aAAc,CAAC;EACnC,CAAC;EAED,OAAOvF,OAAO,CAACe,GAAG,CAAE,CAAE0E,GAAG,EAAEhE,KAAK,KAAM;IACrC,oBACC7B,uDAAA,CAAC+E,uDAAI;MAEJe,OAAO,EAAC,YAAY;MACpBnH,SAAS,EAAG,qBAAuB;MACnCoH,WAAW,EAAKT,CAAC,IAAMD,SAAS,CAAEC,CAAC,EAAEzD,KAAM,CAAG;MAC9CmE,WAAW,EAAKV,CAAC,IAAMG,SAAS,CAAEH,CAAC,EAAEzD,KAAM,CAAG;MAC9CoE,SAAS,EAAGP,IAAM;MAClBQ,SAAS;MAAA7E,QAAA,gBAETvB,sDAAA,CAACkF,2DAAQ;QAAA3D,QAAA,eACRvB,sDAAA,CAACmF,0DAAO;UACPkB,IAAI,EAAGrH,mDAAE,CAAE,eAAe,EAAE,UAAW,CAAG;UAC1CsH,KAAK,EAAC,KAAK;UAAA/E,QAAA,eAEXvB,sDAAA,CAACgF,kEAAe;YACfP,OAAO,EAAGsB,GAAG,CAAC3E,QAAU;YACxBa,QAAQ,EAAKC,GAAG,IACfD,QAAQ,CAAEC,GAAG,EAAEH,KAAK,EAAE,UAAW,CACjC;YACD4C,uBAAuB;UAAA,CACvB;QAAC,CACM;MAAC,CACD,CAAC,EACTxB,SAAS,iBACVnD,sDAAA,CAACkF,2DAAQ;QAAA3D,QAAA,eACRvB,sDAAA,CAACmF,0DAAO;UACPkB,IAAI,EAAGrH,mDAAE,CAAE,yBAAyB,EAAE,UAAW,CAAG;UACpDsH,KAAK,EAAC,KAAK;UAAA/E,QAAA,eAEXvB,sDAAA,CAAC+E,8DAAW;YACX5C,WAAW,EAAGnD,mDAAE,CAAE,OAAO,EAAE,UAAW,CAAG;YACzCsC,KAAK,EAAGyE,GAAG,CAACzE,KAAO;YACnBW,QAAQ,EAAKC,GAAG,IACfD,QAAQ,CAAEC,GAAG,EAAEH,KAAK,EAAE,OAAQ,CAC9B;YACD4C,uBAAuB;UAAA,CACvB;QAAC,CACM;MAAC,CACD,CACV,eACD3E,sDAAA,CAACkF,2DAAQ;QAAA3D,QAAA,eACRvB,sDAAA,CAACmF,0DAAO;UACPkB,IAAI,EAAGrH,mDAAE,CAAE,yBAAyB,EAAE,UAAW,CAAG;UACpDsH,KAAK,EAAC,KAAK;UAAA/E,QAAA,eAEXvB,sDAAA,CAAC+E,8DAAW;YACX5C,WAAW,EAAGnD,mDAAE,CAAE,OAAO,EAAE,UAAW,CAAG;YACzCsC,KAAK,EAAGyE,GAAG,CAACvE,KAAO;YACnBS,QAAQ,EAAKC,GAAG,IACfD,QAAQ,CAAEC,GAAG,EAAEH,KAAK,EAAE,OAAQ,CAC9B;YACD4C,uBAAuB;UAAA,CACvB;QAAC,CACM;MAAC,CACD,CAAC,eACX3E,sDAAA,CAACkF,2DAAQ;QAAA3D,QAAA,eACRvB,sDAAA,CAAC8C,yDAAM;UACNyD,OAAO;UACP9E,IAAI,EAAG,IAAM;UACb+E,QAAQ,EAAG,EAAI;UACf9E,OAAO,EAAGA,CAAA,KAAM4B,SAAS,CAAEyC,GAAG,EAAEhE,KAAM;QAAG,CACzC;MAAC,CACO,CAAC;IAAA,GA7DLA,KA8DD,CAAC;EAET,CAAE,CAAC;AACJ,CAAC;AACD,iEAAeiB,WAAW;;;;;;;;;;;;;;;;;;;;ACxG1B;AACkE;AACc;AACZ;AAAA;AAErD,SAAST,IAAIA,CAAE;EAAEtE;AAAW,CAAC,EAAG;EAC9C,MAAM;IAAEuD,KAAK;IAAElB,OAAO;IAAEoG,QAAQ;IAAEC,YAAY;IAAEpG,QAAQ;IAAEC;EAAK,CAAC,GAC/DvC,UAAU;EAEX,MAAM6C,UAAU,GAAG9C,gFAAwB,CAAEC,UAAW,CAAC;EAEzD,MAAM8C,UAAU,GAAG1B,kEAAa,CAACkD,IAAI,CAAC,CAAC;;EAEvC;EACA,MAAMqE,SAAS,GAAGC,MAAM,CAACC,WAAW,CACnCL,qFAAoB,CAACM,MAAM,CAAC1F,GAAG,CAAI2F,GAAG,IAAM,CAAEA,GAAG,EAAE/I,UAAU,CAAE+I,GAAG,CAAE,CAAG,CACxE,CAAC;EAED,MAAMhG,YAAY,GAAGV,OAAO,CAC1BY,MAAM,CAAIC,CAAC,IAAM,IAAI,KAAKA,CAAC,CAACC,QAAS,CAAC,CACtCC,GAAG,CAAIF,CAAC,IAAMA,CAAC,CAACG,KAAM,CAAC;EAEzB,oBACCpB,uDAAA;IAAA,GAAUa,UAAU;IAAAQ,QAAA,gBACnBrB,uDAAA;MAAOrB,SAAS,EAAGiC,UAAU,CAACpC,UAAY;MAAA6C,QAAA,gBACzCvB,sDAAA,CAACZ,6DAAQ,CAAC6H,OAAO;QAACjF,OAAO,EAAC,MAAM;QAACV,KAAK,EAAGE;MAAO,CAAE,CAAC,EACjDkF,QAAQ,iBACT1G,sDAAA;QAAMnB,SAAS,EAAC,UAAU;QAAA0C,QAAA,EAAGoF;MAAY,CAAQ,CACjD;IAAA,CACK,CAAC,eACR3G,sDAAA;MAAA,GACM4G,SAAS;MACd/E,YAAY,EAAGb,YAAc;MAC7BjC,KAAK,EAAG+B,UAAU,CAAChC,UAAY;MAC/BD,SAAS,EAAGiC,UAAU,CAAClC,UAAY;MAAA2C,QAAA,EAEjCjB,OAAO,CAACe,GAAG,CAAE,CAAES,GAAG,EAAEC,KAAK,KAAM;QAChC,oBACC/B,sDAAA;UACCsB,KAAK,EAAGQ,GAAG,CAACR,KAAK,IAAIS,KAAK,GAAG,CAAC,GAAGD,GAAG,CAACN,KAAK,GAAG,EAAI;UAEjDJ,QAAQ,EAAGU,GAAG,CAACV,QAAU;UAAAG,QAAA,EAEvBO,GAAG,CAACN;QAAK,GAHLO,KAIC,CAAC;MAEX,CAAE;IAAC,CACI,CAAC,EACPxB,QAAQ,iBAAIP,sDAAA,CAACZ,6DAAQ,CAAC6H,OAAO;MAACjF,OAAO,EAAC,OAAO;MAACV,KAAK,EAAGd;IAAM,CAAE,CAAC;EAAA,CAC7D,CAAC;AAER;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDqC;AAE2C;AACvB;AACW;AAEI;AAE1B;AAEK;AAAA;AAEnD,SAASV,eAAeA,CAAEM,KAAK,EAAG;EACjC,MAAM;IACLnC,UAAU,EAAE;MACXK,IAAI;MACJqC,QAAQ;MACR6G,kBAAkB;MAClBC,YAAY;MACZhH,QAAQ;MACRlC;IACD,CAAC;IACD8B,aAAa;IACbsB,SAAS;IACT+F;EACD,CAAC,GAAGtH,KAAK;EAET,MAAMuH,SAAS,GAAGlB,4DAAoB,CAAE9E,SAAS,CAAE;EAEnD,MAAMiG,cAAc,GAAGT,0DAAS,CAC7BJ,MAAM,IAAM;IACb,MAAM;MAAEc;IAAS,CAAC,GAAGd,MAAM,CAAEO,0DAAiB,CAAC;IAC/C,MAAMQ,KAAK,GAAGD,QAAQ,CAAEH,QAAS,CAAC;IAClC,OAAO,CAAC,EAAII,KAAK,IAAIA,KAAK,CAACC,WAAW,CAACC,MAAM,CAAE;EAChD,CAAC,EACD,CAAEN,QAAQ,CACX,CAAC;EAED,MAAM;IAAEO;EAAmB,CAAC,GAAGb,4DAAW,CAAEE,0DAAiB,CAAC;EAE9D,MAAMY,SAAS,GAAGA,CAAA,KAAM;IACvB,IAAIC,KAAK,GAAG,iBAAiB;IAC7B,IAAK,OAAO,KAAK7J,IAAI,EAAG;MACvB6J,KAAK,GAAG,iBAAiB;IAC1B;IACAF,kBAAkB,CACjB7H,KAAK,CAACsH,QAAQ,EACdH,sFAAmC,CAAE,CAAE,CAAEY,KAAK,CAAE,CAAG,CAAC,EACpD,IACD,CAAC;EACF,CAAC;EAED,oBACCjI,uDAAA,CAACT,wDAAQ;IAAA8B,QAAA,GACNoG,SAAS,CAACS,QAAQ,CAAE,MAAO,CAAC,iBAC7BpI,sDAAA,CAAC4C,gEAAa;MACbpB,KAAK,EAAGxC,mDAAE,CAAE,kBAAkB,EAAE,UAAW,CAAG;MAC9CyF,OAAO,EAAGlG,QAAU;MACpB0D,QAAQ,EAAKyC,MAAM,IAClBrE,aAAa,CAAE;QAAE9B,QAAQ,EAAEmG;MAAO,CAAE,CACpC;MACDC,uBAAuB;IAAA,CACvB,CACD,EACCgD,SAAS,CAACS,QAAQ,CAAE,cAAe,CAAC,iBACrCpI,sDAAA,CAAC4C,gEAAa;MACbpB,KAAK,EAAGxC,mDAAE,CAAE,cAAc,EAAE,UAAW,CAAG;MAC1CyF,OAAO,EAAG+C,kBAAoB;MAC9BvF,QAAQ,EAAKyC,MAAM,IAClBrE,aAAa,CAAE;QAAEmH,kBAAkB,EAAE9C;MAAO,CAAE,CAC9C;MACDlE,IAAI,EAAGxB,mDAAE,CAAE,iCAAiC,EAAE,UAAW,CAAG;MAC5D2F,uBAAuB;IAAA,CACvB,CACD,EACC6C,kBAAkB,IAAIG,SAAS,CAACS,QAAQ,CAAE,cAAe,CAAC,iBAC3DpI,sDAAA,CAAC+E,8DAAW;MACXvD,KAAK,EAAGxC,mDAAE,CAAE,wBAAwB,EAAE,UAAW,CAAG;MACpDsC,KAAK,EAAGmG,YAAc;MACtBxF,QAAQ,EAAKyC,MAAM,IAClBrE,aAAa,CAAE;QAAEoH,YAAY,EAAE/C;MAAO,CAAE,CACxC;MACDC,uBAAuB;IAAA,CACvB,CACD,EACC,OAAO,KAAKrG,IAAI,iBACjB0B,sDAAA,CAAC4C,gEAAa;MACbpB,KAAK,EAAGxC,mDAAE,CAAE,aAAa,EAAE,UAAW,CAAG;MACzCyF,OAAO,EAAGmD,cAAgB;MAC1B3F,QAAQ,EAAKyC,MAAM,IAAM;QACxB,IAAKA,MAAM,EAAG;UACbrE,aAAa,CAAE;YAAEgI,UAAU,EAAE;UAAK,CAAE,CAAC;UACrCH,SAAS,CAAC,CAAC;QACZ,CAAC,MAAM;UACN7H,aAAa,CAAE;YAAEgI,UAAU,EAAE;UAAM,CAAE,CAAC;UACtCJ,kBAAkB,CAAEP,QAAQ,EAAE,EAAE,EAAE,IAAK,CAAC;QACzC;MACD,CAAG;MACH/C,uBAAuB;IAAA,CACvB,CACD,EACC,QAAQ,KAAKrG,IAAI,iBAClB4B,uDAAA,CAACT,wDAAQ;MAAA8B,QAAA,gBACRvB,sDAAA,CAAC4C,gEAAa;QACbpB,KAAK,EAAGxC,mDAAE,CAAE,UAAU,EAAE,UAAW,CAAG;QACtCyF,OAAO,EAAG9D,QAAU;QACpBsB,QAAQ,EAAKyC,MAAM,IAClBrE,aAAa,CAAE;UAAEM,QAAQ,EAAE+D;QAAO,CAAE,CACpC;QACDlE,IAAI,EAAGxB,mDAAE,CACR,qCAAqC,EACrC,UACD,CAAG;QACH2F,uBAAuB;MAAA,CACvB,CAAC,eACF3E,sDAAA,CAAC4C,gEAAa;QACbpB,KAAK,EAAGxC,mDAAE,CAAE,WAAW,EAAE,UAAW,CAAG;QACvCyF,OAAO,EAAGhE,QAAU;QACpBwB,QAAQ,EAAKyC,MAAM,IAClBrE,aAAa,CAAE;UAAEI,QAAQ,EAAEiE;QAAO,CAAE,CACpC;QACDlE,IAAI,EAAGxB,mDAAE,CAAE,0BAA0B,EAAE,UAAW,CAAG;QACrD2F,uBAAuB;MAAA,CACvB,CAAC;IAAA,CACO,CACV;EAAA,CACQ,CAAC;AAEb;AAEA,iEAAeuC,kEAAW,CAAE,0BAA2B,CAAC,CAAEpH,eAAgB,CAAC;;;;;;;;;;;;;;AClIpE,MAAM2G,oBAAoB,GAAG;EACnC6B,MAAM,EAAE,CAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAE;EACzCjC,IAAI,EAAE,CACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACT,cAAc,CACd;EACDkC,GAAG,EAAE,CACJ,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACT,cAAc,CACd;EACDC,GAAG,EAAE,CACJ,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACT,cAAc,CACd;EACDC,KAAK,EAAE,CACN,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,cAAc,CACd;EACDC,QAAQ,EAAE,CACT,MAAM,EACN,IAAI,EACJ,MAAM,EACN,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,cAAc,CACd;EACDC,MAAM,EAAE,CACP,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,MAAM,EACN,KAAK,EACL,KAAK,CACL;EACDC,IAAI,EAAE,CACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,CACL;EACDC,IAAI,EAAE,CACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,CACL;EACDC,KAAK,EAAE,CACN,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,CACL;EACDC,QAAQ,EAAE,CACT,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,CACT;EACDC,KAAK,EAAE,CACN,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,CACT;EACDC,IAAI,EAAE,CACL,MAAM,EACN,IAAI,EACJ,MAAM,EACN,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,CACV;EACDC,KAAK,EAAE,CACN,MAAM,EACN,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,CACV;EACDC,QAAQ,EAAE,CACT,MAAM,EACN,IAAI,EACJ,UAAU,EACV,OAAO,EACP,MAAM;EAAE;EACR,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,MAAM,EACN,MAAM,CACN;EACDpC,MAAM,EAAE,CAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AACvE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC1KD;AACA;AACA;AACA;AACA;AACqC;AAMN;AAEe;AACR;AAEa;AAAA;AAEnD,MAAMuC,aAAa,GAAKC,OAAO,IAAM;EACpC,OACCA;EACC;EAAA,CACCC,OAAO,CAAE,kBAAkB,EAAE,GAAI;EAClC;EAAA,CACCC,WAAW,CAAC;EACb;EAAA,CACCD,OAAO,CAAE,cAAc,EAAE,EAAG,CAAC;AAEjC,CAAC;AAEc,SAAS3J,OAAOA,CAAEO,KAAK,EAAG;EACxC,MAAM;IAAEnC,UAAU;IAAEoC,aAAa;IAAEqH,QAAQ;IAAE7G,YAAY;IAAEc;EAAU,CAAC,GACrEvB,KAAK;EAEN,MAAM;IACL9B,IAAI;IACJD,IAAI;IACJiD,KAAK;IACLa,WAAW;IACXuE,QAAQ;IACRhG,QAAQ;IACR+D,OAAO;IACPlE,QAAQ;IACRhC;EACD,CAAC,GAAGN,UAAU;EAEd,MAAM0J,SAAS,GAAGlB,4DAAoB,CAAE9E,SAAS,CAAE;EAEnD,oBACC3B,sDAAA,CAACP,wDAAQ;IAAA8B,QAAA,eACRrB,uDAAA,CAACkJ,4DAAS;MACT9E,KAAK,EAAGtF,mDAAE,CAAE,SAAS,EAAE,UAAW,CAAG;MACrC0K,WAAW,EAAG,IAAM;MAAAnI,QAAA,gBAEpBvB,sDAAA,CAAC+E,8DAAW;QACXvD,KAAK,EAAGxC,mDAAE,CAAE,MAAM,EAAE,UAAW,CAAG;QAClCsC,KAAK,EAAGjD,IAAM;QACd4D,QAAQ,EAAKC,GAAG,IACf7B,aAAa,CAAE;UAAEhC,IAAI,EAAEiL,aAAa,CAAEpH,GAAI;QAAE,CAAE,CAC9C;QACD1B,IAAI,EAAGxB,mDAAE,CACR,2GAA2G,EAC3G,UACD,CAAG;QACH2F,uBAAuB;MAAA,CACvB,CAAC,EACAgD,SAAS,CAACS,QAAQ,CAAE,OAAQ,CAAC,iBAC9BpI,sDAAA,CAACqJ,mDAAS;QACT3B,QAAQ,EAAGA,QAAU;QACrBlG,KAAK,EAAGxC,mDAAE,CAAE,OAAO,EAAE,UAAW,CAAG;QACnCsC,KAAK,EAAGA,KAAO;QACfW,QAAQ,EAAKC,GAAG,IAAM;UACrB7B,aAAa,CAAE;YAAEiB,KAAK,EAAEY;UAAI,CAAE,CAAC;QAChC,CAAG;QACH1B,IAAI,EAAGxB,mDAAE,CACR,yCAAyC,EACzC,UACD;MAAG,CACH,CACD,EACC2I,SAAS,CAACS,QAAQ,CAAE,aAAc,CAAC,iBACpCpI,sDAAA,CAAC+E,8DAAW;QACXvD,KAAK,EAAGxC,mDAAE,CAAE,aAAa,EAAE,UAAW,CAAG;QACzCsC,KAAK,EAAGa,WAAa;QACrBF,QAAQ,EAAKC,GAAG,IACf7B,aAAa,CAAE;UAAE8B,WAAW,EAAED;QAAI,CAAE,CACpC;QACD1B,IAAI,EAAGxB,mDAAE,CACR,iEAAiE,EACjE,UACD,CAAG;QACH2F,uBAAuB;MAAA,CACvB,CACD,EACCgD,SAAS,CAACS,QAAQ,CAAE,UAAW,CAAC,iBACjCpI,sDAAA,CAAC4C,gEAAa;QACbpB,KAAK,EAAGxC,mDAAE,CAAE,UAAU,EAAE,UAAW,CAAG;QACtCyF,OAAO,EAAGiC,QAAU;QACpBzE,QAAQ,EAAKC,GAAG,IACf7B,aAAa,CAAE;UAAEqG,QAAQ,EAAExE;QAAI,CAAE,CACjC;QACDyC,uBAAuB;MAAA,CACvB,CACD,EACCgD,SAAS,CAACS,QAAQ,CAAE,UAAW,CAAC,iBACjCpI,sDAAA,CAAC4C,gEAAa;QACbpB,KAAK,EAAGxC,mDAAE,CAAE,UAAU,EAAE,UAAW,CAAG;QACtCyF,OAAO,EAAG/D,QAAU;QACpBuB,QAAQ,EAAKC,GAAG,IACf7B,aAAa,CAAE;UAAEK,QAAQ,EAAEwB;QAAI,CAAE,CACjC;QACDyC,uBAAuB;MAAA,CACvB,CACD,EACCgD,SAAS,CAACS,QAAQ,CAAE,SAAU,CAAC,iBAChCpI,sDAAA,CAAC4C,gEAAa;QACbpB,KAAK,EAAGxC,mDAAE,CAAE,SAAS,EAAE,UAAW,CAAG;QACrCyF,OAAO,EAAGA,OAAS;QACnBxC,QAAQ,EAAKyC,MAAM,IAClBrE,aAAa,CAAE;UAAEoE,OAAO,EAAEC;QAAO,CAAE,CACnC;QACDC,uBAAuB;MAAA,CACvB,CACD,EACC,EAAI,QAAQ,KAAKrG,IAAI,CAAE,iBACxB0B,sDAAA,CAAC4C,gEAAa;QACbpB,KAAK,EAAGxC,mDAAE,CAAE,mBAAmB,EAAE,UAAW,CAAG;QAC/CyF,OAAO,EAAGlE,QAAU;QACpB0B,QAAQ,EAAKyC,MAAM,IAClBrE,aAAa,CAAE;UAAEE,QAAQ,EAAEmE;QAAO,CAAE,CACpC;QACDC,uBAAuB;MAAA,CACvB,CACD,EACC,QAAQ,KAAKhD,SAAS,iBACvBzB,uDAAA,CAACT,wDAAQ;QAAA8B,QAAA,gBACRvB,sDAAA,CAAC4C,gEAAa;UACbpB,KAAK,EAAGxC,mDAAE,CAAE,UAAU,EAAE,UAAW,CAAG;UACtCyF,OAAO,EAAGlG,QAAU;UACpB0D,QAAQ,EAAKC,GAAG,IAAM;YACrB7B,aAAa,CAAE;cAAE9B,QAAQ,EAAE2D;YAAI,CAAE,CAAC;UACnC,CAAG;UACHyC,uBAAuB;QAAA,CACvB,CAAC,eACF3E,sDAAA,CAAC8C,yDAAM;UACNgC,OAAO,EAAG,SAAW;UACrBpD,OAAO,EAAGA,CAAA,KAAM;YACfb,YAAY,CAAE,IAAK,CAAC;UACrB,CAAG;UAAAU,QAAA,EAEDvC,mDAAE,CAAE,gBAAgB,EAAE,UAAW;QAAC,CAC7B,CAAC;MAAA,CACA,CACV;IAAA,CACS;EAAC,CACH,CAAC;AAEb;;;;;;;;;;;;;;;;;;;;;;;AC7JA;AACA;AACA;AACA;AACA;AACqC;AAC4B;AACnB;AACD;AAAA;AAE9B,SAASY,OAAOA,CAAEQ,KAAK,EAAG;EACxC,MAAM;IAAEnC,UAAU;IAAEoC,aAAa;IAAEhC;EAAK,CAAC,GAAG+B,KAAK;EACjD,MAAM;IAAEsG,QAAQ;IAAEnG,QAAQ;IAAE/B,SAAS;IAAEF;EAAK,CAAC,GAAGL,UAAU;EAE1D,MAAM6L,WAAW,gBAChB5J,uDAAA,CAACyJ,sDAAG;IAACI,KAAK,EAAC,4BAA4B;IAACC,OAAO,EAAC,WAAW;IAAAzI,QAAA,gBAC1DvB,sDAAA,CAAC4J,uDAAI;MACJzI,CAAC,EAAC,MAAM;MACR8I,CAAC,EAAC,OAAO;MACTC,KAAK,EAAC,KAAK;MACXC,MAAM,EAAC,MAAM;MACbC,SAAS,EAAC,wBAAwB;MAClCC,MAAM,EAAC,cAAc;MACrBC,IAAI,EAAC,MAAM;MACXC,WAAW,EAAC;IAAK,CACjB,CAAC,eACFvK,sDAAA,CAAC4J,uDAAI;MAACzI,CAAC,EAAC,GAAG;MAAC8I,CAAC,EAAC,GAAG;MAACC,KAAK,EAAC,IAAI;MAACC,MAAM,EAAC,GAAG;MAACG,IAAI,EAAC;IAAc,CAAE,CAAC;EAAA,CAC1D,CACL;EAED,oBACCpK,uDAAA,CAACT,wDAAQ;IAAA8B,QAAA,gBACRvB,sDAAA,CAACV,gEAAa;MACbkC,KAAK,EAAGxC,mDAAE,CAAE,UAAU,EAAE,UAAW,CAAG;MACtCyC,IAAI,EAAGoI,kDAAU;MACjBW,SAAS,EAAG9D,QAAU;MACtBhF,OAAO,EAAGA,CAAA,KAAM;QACfrB,aAAa,CAAE;UAAEqG,QAAQ,EAAE,CAAEA;QAAS,CAAE,CAAC;MAC1C;IAAG,CACH,CAAC,EACA,CAAE,UAAU,IAAI,CAAO,MAAOpI,IAAI,iBACnC0B,sDAAA,CAACV,gEAAa;MACbkC,KAAK,EAAGxC,mDAAE,CAAE,yBAAyB,EAAE,UAAW,CAAG;MACrDyC,IAAI,EAAGqI,WAAa;MACpBU,SAAS,EAAG,CAAEhM,SAAW;MACzBkD,OAAO,EAAGA,CAAA,KAAM;QACfrB,aAAa,CAAE;UAAE7B,SAAS,EAAE,CAAEA;QAAU,CAAE,CAAC;MAC5C;IAAG,CACH,CACD,EACC,uBAAuB,KAAKH,IAAI,iBACjC2B,sDAAA,CAACV,gEAAa;MACbkC,KAAK,EAAGxC,mDAAE,CAAE,mBAAmB,EAAE,UAAW,CAAG;MAC/CyC,IAAI,EAAG,aAAe;MACtB+I,SAAS,EAAGjK,QAAU;MACtBmB,OAAO,EAAGA,CAAA,KAAM;QACfrB,aAAa,CAAE;UAAEE,QAAQ,EAAE,CAAEA;QAAS,CAAE,CAAC;MAC1C;IAAG,CACH,CACD;EAAA,CACQ,CAAC;AAEb;;;;;;;;;;;;;;;;;;;;;;;;;AC9DqC;AACyC;AACzB;AACT;AAEpB;AAAA;AAET,SAASZ,KAAKA,CAAE;EAAE1B,UAAU;EAAEoC,aAAa;EAAEqK;AAAQ,CAAC,EAAG;EACvE,MAAM;IACLhM,UAAU;IACViM,UAAU;IACVC,WAAW;IACXpM,SAAS;IACTkI,QAAQ;IACRhG,QAAQ;IACRpC,IAAI;IACJkD;EACD,CAAC,GAAGvD,UAAU;EAEd,MAAM;IAAE4M,QAAQ;IAAEC;EAAO,CAAC,GAAG3D,0DAAS,CAAIJ,MAAM,IAAM;IACrD,MAAM;MAAEgE;IAAY,CAAC,GAAGhE,MAAM,CAAEO,0DAAiB,CAAC;IAClD,OAAO;MACNuD,QAAQ,EAAE9D,MAAM,CAAE,aAAc,CAAC,CAACiE,kBAAkB,CAAC,CAAC;MACtDF,MAAM,EAAE/D,MAAM,CAAE,aAAc,CAAC,CAACkE,gBAAgB,CAAC,CAAC;MAClDC,SAAS,EAAEH,WAAW,CAAC,CAAC,CAACI;IAC1B,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAM,CAAEC,IAAI,CAAE,GAAGX,mEAAa,CAC7B,UAAU,EACV,eAAe,EACf,MAAM,EACNK,MACD,CAAC;EAED,MAAMO,cAAc,GAAGtN,gDAAI,CAC1B,WAAW,EACXW,UAAU,EACViM,UAAU,EACVC,WAAW,EACX;IACCjM,IAAI,EAAEH,SAAS;IACfkI,QAAQ;IACR,gBAAgB,EAAEhG,QAAQ,IAAI,UAAU,KAAKpC;EAC9C,CACD,CAAC;EAED,oBACC4B,uDAAA;IAAKrB,SAAS,EAAGwM,cAAgB;IAACC,OAAO,EAAC,OAAO;IAAA/J,QAAA,gBAChDvB,sDAAA,CAACZ,6DAAQ;MACR4C,OAAO,EAAC,MAAM;MACdV,KAAK,EAAGE,KAAO;MACfS,QAAQ,EAAKC,GAAG,IAAM;QACrB7B,aAAa,CAAE;UAAEmB,KAAK,EAAEU;QAAI,CAAE,CAAC;MAChC,CAAG;MACHC,WAAW,EAAGnD,mDAAE,CAAE,cAAc,EAAE,UAAW,CAAG;MAChDoD,cAAc,EAAG,CAAE,WAAW,EAAE,aAAa,EAAE,WAAW;IAAI,CAC9D,CAAC,EAEAsE,QAAQ,iBACT1G,sDAAA;MAAMnB,SAAS,EAAC,UAAU;MAAA0C,QAAA,EACvBmJ,OAAO,CAAE,uBAAuB,CAAE,IAAI;IAAG,CACtC,CACN;EAAA,CACG,CAAC;AAER;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClEgD;AACK;AACZ;AAC2B;AAEpE,MAAMc,OAAO,GAAG,CACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,CACvB;;AAED;AACA;AACA;AACO,SAASC,cAAcA,CAAA,EAAG;EAChC,MAAMC,MAAM,GAAG,EAAE;EACjB,MAAMC,MAAM,GACX5E,uDAAM,CAAEO,0DAAiB,CAAC,CAACsE,eAAe,CAAE,gBAAiB,CAAC;EAC/D,MAAMC,SAAS,GACd9E,uDAAM,CAAEO,0DAAiB,CAAC,CAACsE,eAAe,CAAE,mBAAoB,CAAC;EAClE,MAAME,OAAO,GACZ/E,uDAAM,CAAEO,0DAAiB,CAAC,CAACsE,eAAe,CAAE,iBAAkB,CAAC;EAChE,MAAMG,OAAO,GACZhF,uDAAM,CAAEO,0DAAiB,CAAC,CAACsE,eAAe,CAAE,iBAAkB,CAAC;EAChE,MAAMI,YAAY,GAAGjF,uDAAM,CAAEO,0DAAiB,CAAC,CAACsE,eAAe,CAC9D,uBACD,CAAC;EAED,MAAMK,QAAQ,GAAGN,MAAM,CAACO,MAAM,CAAEL,SAAS,EAAEC,OAAO,EAAEC,OAAO,EAAEC,YAAa,CAAC;EAE3EC,QAAQ,CAACE,OAAO,CAAIC,CAAC,IAAM;IAC1B,MAAMtE,KAAK,GAAGf,uDAAM,CAAEO,0DAAiB,CAAC,CAACO,QAAQ,CAAEuE,CAAE,CAAC;IACtD,IAAKZ,OAAO,CAACpD,QAAQ,CAAEN,KAAK,CAACzJ,IAAK,CAAC,EAAG;MACrCqN,MAAM,CAACrH,IAAI,CAAEyD,KAAM,CAAC;IACrB;EACD,CAAE,CAAC;EAEH,OAAO4D,MAAM;AACd;;AAEA;AACA;AACA;AACO,SAASW,QAAQA,CAAA,EAAG;EAC1B,MAAMX,MAAM,GAAG;IACdY,KAAK,EAAE,EAAE;IACTC,OAAO,EACNxF,uDAAM,CAAEO,0DAAiB,CAAC,CAACsE,eAAe,CAAE,iBAAkB;EAChE,CAAC;EACD,MAAMY,WAAW,GAAGf,cAAc,CAAC,CAAC;EAEpCe,WAAW,CAACL,OAAO,CAAIC,CAAC,IAAM;IAC7BV,MAAM,CAACY,KAAK,CAACjI,IAAI,CAAE+H,CAAC,CAACnO,UAAU,CAACI,IAAK,CAAC;EACvC,CAAE,CAAC;EAEH,OAAOqN,MAAM;AACd;;AAEA;AACA;AACA;AACO,SAASe,aAAaA,CAAA,EAAG;EAC/B,MAAMf,MAAM,GAAG,CAAC,CAAC;EACjB,MAAMc,WAAW,GAAGf,cAAc,CAAC,CAAC;EAEpCe,WAAW,CAACL,OAAO,CAAIC,CAAC,IAAM;IAC7B;IACA,IAAI9N,IAAI,GAAG8N,CAAC,CAAC/N,IAAI,CAAC+F,KAAK,CAAE,GAAI,CAAC,CAAE,CAAC,CAAE;IACnC,IAAK,OAAO,KAAK9F,IAAI,EAAG;MACvBA,IAAI,GAAG8N,CAAC,CAACnO,UAAU,CAACK,IAAI;IACzB;IAEAoN,MAAM,CAAEU,CAAC,CAACnO,UAAU,CAACI,IAAI,CAAE,GAAGC,IAAI;IAClC,IAAK8N,CAAC,CAACnO,UAAU,CAACM,QAAQ,IAAI,UAAU,KAAK,UAAU,EAAG;MACzDmN,MAAM,CAAEU,CAAC,CAACnO,UAAU,CAACI,IAAI,CAAE,GAAG,UAAU;IACzC;IACA,IAAK+N,CAAC,CAACnO,UAAU,CAACyC,QAAQ,IAAI,QAAQ,KAAKpC,IAAI,EAAG;MACjDoN,MAAM,CAAEU,CAAC,CAACnO,UAAU,CAACI,IAAI,CAAE,GAAGC,IAAI,GAAG,WAAW;IACjD;EACD,CAAE,CAAC;EAEH,OAAOoN,MAAM;AACd;AAEO,SAASgB,eAAeA,CAAA,EAAG;EACjC,MAAMhB,MAAM,GAAG,EAAE;EACjB,MAAMc,WAAW,GAAGf,cAAc,CAAC,CAAC;EAEpCe,WAAW,CAACL,OAAO,CAAIC,CAAC,IAAM;IAC7BV,MAAM,CAACrH,IAAI,CAAE;MACZC,KAAK,EAAE8H,CAAC,CAACnO,UAAU,CAACI,IAAI;MACxBsO,GAAG,EAAE,WAAW,GAAGP,CAAC,CAACnO,UAAU,CAACI,IAAI,GAAG;IACxC,CAAE,CAAC;EACJ,CAAE,CAAC;EAEH,OAAOqN,MAAM;AACd;AAEO,SAASkB,mBAAmBA,CAAA,EAAG;EACrC,MAAMlB,MAAM,GAAG,EAAE;EACjB,MAAMc,WAAW,GAAGf,cAAc,CAAC,CAAC;EAEpCe,WAAW,CAACL,OAAO,CAAIC,CAAC,IAAM;IAC7BV,MAAM,CAACrH,IAAI,CAAE;MACZ7C,KAAK,EAAE4K,CAAC,CAACnO,UAAU,CAACI,IAAI;MACxBiD,KAAK,EAAE8K,CAAC,CAACnO,UAAU,CAACI;IACrB,CAAE,CAAC;EACJ,CAAE,CAAC;EAEH,OAAOqN,MAAM;AACd;AAEO,SAASmB,aAAaA,CAAA,EAAG;EAC/B,MAAMnB,MAAM,GAAGgB,eAAe,CAAC,CAAC;EAEhC,OAAO,CACN;IACCpI,KAAK,EAAE,UAAU;IACjBqI,GAAG,EAAE;EACN,CAAC,EACD,GAAGjB,MAAM,CACT;AACF;AAEO,SAASoB,cAAcA,CAAA,EAAG;EAChC,MAAMC,WAAW,GAAG,CAAC,CAAC;EACtB,MAAMrB,MAAM,GAAGD,cAAc,CAAC,CAAC;EAE/B,IAAKC,MAAM,EAAG;IACbA,MAAM,CAACS,OAAO,CAAIC,CAAC,IAAM;MACxB,MAAMY,UAAU,GAAGC,kBAAkB,CAAEb,CAAE,CAAC;MAC1C,IAAI/N,IAAI,GAAG+N,CAAC,CAACnO,UAAU,CAACI,IAAI;MAE5B,IAAK+N,CAAC,CAACnO,UAAU,CAACyC,QAAQ,EAAG;QAC5BrC,IAAI,IAAI,IAAI;MACb;MACA,IAAK2O,UAAU,EAAG;QACjBD,WAAW,CAAE1O,IAAI,CAAE,GAAG2O,UAAU;MACjC;IACD,CAAE,CAAC;EACJ;EAEA,OAAOD,WAAW;AACnB;AAEO,SAASE,kBAAkBA,CAAEC,KAAK,EAAG;EAC3C,IAAIH,WAAW,GAAG,EAAE;EAEpB,IAAKG,KAAK,CAACjP,UAAU,CAACK,IAAI,KAAK,KAAK,EAAG;IACtCyO,WAAW,CAAC1I,IAAI,CAAE,KAAM,CAAC;EAC1B;EAEA,IAAK6I,KAAK,CAACjP,UAAU,CAACyI,QAAQ,EAAG;IAChCqG,WAAW,CAAC1I,IAAI,CAAE,UAAW,CAAC;EAC/B;EAEA,IAAK6I,KAAK,CAACjP,UAAU,CAACkP,SAAS,EAAG;IACjCJ,WAAW,CAAC1I,IAAI,CAAE,YAAY,GAAG6I,KAAK,CAACjP,UAAU,CAACkP,SAAU,CAAC;EAC9D;EAEA,IAAKD,KAAK,CAACjP,UAAU,CAACmP,SAAS,EAAG;IACjCL,WAAW,CAAC1I,IAAI,CAAE,YAAY,GAAG6I,KAAK,CAACjP,UAAU,CAACmP,SAAU,CAAC;EAC9D;EAEA,IAAKF,KAAK,CAACjP,UAAU,CAACoP,GAAG,IAAI,MAAM,KAAKH,KAAK,CAACjP,UAAU,CAACK,IAAI,EAAG;IAC/DyO,WAAW,CAAC1I,IAAI,CAAE,MAAM,GAAG6I,KAAK,CAACjP,UAAU,CAACoP,GAAI,CAAC;EAClD;EAEA,IACCH,KAAK,CAACjP,UAAU,CAACqP,GAAG,IACpB,MAAM,KAAKJ,KAAK,CAACjP,UAAU,CAACK,IAAI,IAChC,MAAM,KAAK4O,KAAK,CAACjP,UAAU,CAACK,IAAI,EAC/B;IACDyO,WAAW,CAAC1I,IAAI,CAAE,MAAM,GAAG6I,KAAK,CAACjP,UAAU,CAACqP,GAAI,CAAC;EAClD;EAEA,IAAKJ,KAAK,CAACjP,UAAU,CAACK,IAAI,KAAK,OAAO,EAAG;IACxCyO,WAAW,CAAC1I,IAAI,CAAE,OAAQ,CAAC;EAC5B;EAEA,IACC6I,KAAK,CAACjP,UAAU,CAACK,IAAI,KAAK,QAAQ,IAClC4O,KAAK,CAACjP,UAAU,CAACK,IAAI,KAAK,OAAO,EAChC;IACDyO,WAAW,CAAC1I,IAAI,CAAE,SAAU,CAAC;EAC9B;EAEA,IAAK,MAAM,KAAK6I,KAAK,CAACjP,UAAU,CAACK,IAAI,IAAI,CAAE4O,KAAK,CAACjP,UAAU,CAACM,QAAQ,EAAG;IACtEwO,WAAW,CAAC1I,IAAI,CAAE,MAAO,CAAC;EAC3B;EAEA,IAAK6I,KAAK,CAACjP,UAAU,CAACsP,OAAO,EAAG;IAC/B,MAAMC,KAAK,GAAG,IAAIC,MAAM,CAAEP,KAAK,CAACjP,UAAU,CAACsP,OAAQ,CAAC;IACpDR,WAAW,CAAC1I,IAAI,CAAE,QAAQ,GAAGmJ,KAAM,CAAC;EACrC;EAEA,IAAKN,KAAK,CAACjP,UAAU,CAACyP,cAAc,IAAI,EAAE,KAAKR,KAAK,CAACjP,UAAU,CAAC+F,KAAK,EAAG;IACvE+I,WAAW,CAAC1I,IAAI,CAAE,OAAO,GAAG6I,KAAK,CAACjP,UAAU,CAAC+F,KAAM,CAAC;EACrD;EAEAuH,8DAAY,CAAE,sBAAsB,EAAEwB,WAAW,EAAEG,KAAM,CAAC;EAE1D,IAAKH,WAAW,CAAC/E,MAAM,EAAG;IACzB+E,WAAW,GAAGA,WAAW,CAACnI,IAAI,CAAE,GAAI,CAAC;EACtC;EAEA,OAAOmI,WAAW,CAAC/E,MAAM,GAAG+E,WAAW,GAAGY,SAAS;AACpD;AAEO,SAASC,WAAWA,CAAA,EAAG;EAC7B,MAAM/C,QAAQ,GAAG9D,uDAAM,CAAE,aAAc,CAAC,CAACiE,kBAAkB,CAAC,CAAC;EAC7D,MAAMF,MAAM,GAAG/D,uDAAM,CAAE,aAAc,CAAC,CAACkE,gBAAgB,CAAC,CAAC;EAEzD,MAAM,CAAEG,IAAI,CAAE,GAAGX,mEAAa,CAAE,UAAU,EAAEI,QAAQ,EAAE,MAAM,EAAEC,MAAO,CAAC;EACtE,MAAM+C,QAAQ,GAAG,EAAE;EAEnB,KAAM,MAAMC,GAAG,IAAI1C,IAAI,EAAG;IACzB,IAAKA,IAAI,CAAE0C,GAAG,CAAE,KAAKjH,MAAM,CAAEiH,GAAI,CAAC,EAAG;MACpC;IACD;IACA,MAAMnB,GAAG,GAAG;MACXrI,KAAK,EAAEwJ,GAAG;MACVnB,GAAG,EAAE,UAAWmB,GAAG;IACpB,CAAC;IACDD,QAAQ,CAACxJ,IAAI,CAAEsI,GAAI,CAAC;EACrB;EAEA,OAAOkB,QAAQ;AAChB;AAEO,SAASE,gBAAgBA,CAAA,EAAG;EAClC,MAAMC,IAAI,GAAG,CACZ;IACC1J,KAAK,EAAE,SAAS;IAChBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,YAAY;IACnBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,UAAU;IACjBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,aAAa;IACpBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,mBAAmB;IAC1BqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,SAAS;IAChBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,iBAAiB;IACxBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,gBAAgB;IACvBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,mBAAmB;IAC1BqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,eAAe;IACtBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,YAAY;IACnBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,UAAU;IACjBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,YAAY;IACnBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,UAAU;IACjBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,aAAa;IACpBqI,GAAG,EAAE;EACN,CAAC,CACD;EAED,OAAOqB,IAAI;AACZ;AAEO,SAASC,WAAWA,CAAA,EAAG;EAC7B,MAAMD,IAAI,GAAG,CACZ;IACC1J,KAAK,EAAE,SAAS;IAChBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,YAAY;IACnBqI,GAAG,EAAE;EACN,CAAC,CACD;EAED,OAAOqB,IAAI;AACZ;AAEO,SAASE,YAAYA,CAAA,EAAG;EAC9B,MAAMF,IAAI,GAAG,CACZ;IACC1J,KAAK,EAAE,MAAM;IACbqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,MAAM;IACbqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,cAAc;IACrBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,SAAS;IAChBqI,GAAG,EAAE;EACN,CAAC,CACD;EAED,OAAOqB,IAAI;AACZ;AAEO,SAASG,cAAcA,CAAA,EAAG;EAChC,MAAMC,SAAS,GAAG,CACjB;IACC9J,KAAK,EAAE,UAAU;IACjBqI,GAAG,EAAE,0CAA0C;IAC/C0B,WAAW,EAAE;EACd,CAAC,EACD;IACC/J,KAAK,EAAE,kCAAkC;IACzCqI,GAAG,EAAE,wEAAwE;IAC7E0B,WAAW,EACV;EACF,CAAC,CACD;EAED,MAAMC,KAAK,GAAG,CACb;IACChK,KAAK,EAAE,YAAY;IACnBqI,GAAG,EAAE;EACN,CAAC,EACD;IACCrI,KAAK,EAAE,UAAU;IACjBqI,GAAG,EAAE;EACN,CAAC,CACD;EAED,MAAM4B,IAAI,GAAG,CACZ;IACClQ,IAAI,EAAE,WAAW;IACjBiG,KAAK,EAAE,WAAW;IAClBkK,IAAI,EAAEJ;EACP,CAAC,EACD;IACC/P,IAAI,EAAE,OAAO;IACbiG,KAAK,EAAE,OAAO;IACdkK,IAAI,EAAEF;EACP,CAAC,CACD;EAED,OAAOC,IAAI;AACZ;;;;;;;;;;;;;;;;;;;;;;ACxXA;AACA;AACA;AACA;AACA;AAK+B;AACiB;AACP;AACF;AAAA;AAExB,SAASlF,SAASA,CAAEjJ,KAAK,EAAG;EAC1C,MAAM;IACLoB,KAAK;IACLF,KAAK;IACLa,WAAW;IACX3B,IAAI;IACJyB,QAAQ;IACRR,IAAI,GAAGoN,wDAAY;IACnBnH,QAAQ;IACR6G,IAAI,GAAGO,sDAAW,CAAEpH,QAAS;EAC9B,CAAC,GAAGtH,KAAK;EAET,oBACCJ,sDAAA,CAACyO,8DAAW;IAAC9J,uBAAuB;IAAApD,QAAA,eACnCvB,sDAAA,CAAC4O,6EAAY;MACZtN,KAAK,EAAGA,KAAO;MACfE,KAAK,EAAGA,KAAO;MACfS,QAAQ,EAAGA,QAAU;MACrBE,WAAW,EAAGA,WAAa;MAC3B3B,IAAI,EAAGA,IAAM;MACbwO,MAAM,eACLhP,sDAAA,CAAC0O,+DAAY;QACZjN,IAAI,EAAGA,IAAM;QACbD,KAAK,EAAGA,KAAO;QACfyN,WAAW,EAAG;UAAE1I,OAAO,EAAE;QAAK,CAAG;QACjChC,IAAI,EAAC,OAAO;QAAAhD,QAAA,EAEVA,CAAA,kBACDvB,sDAAA,CAAC+O,oDAAU;UAACR,IAAI,EAAGA,IAAM;UAACtM,QAAQ,EAAGA;QAAU,CAAE;MACjD,CACY;IACd,CACD;EAAC,CACU,CAAC;AAEhB;AAEO,SAASiN,aAAaA,CAAE9O,KAAK,EAAG;EACtC,MAAM;IAAEoB,KAAK;IAAES,QAAQ;IAAER,IAAI,GAAGoN,wDAAY;IAAEnH;EAAS,CAAC,GAAGtH,KAAK;EAEhE,MAAMmO,IAAI,GAAGO,sDAAW,CAAEpH,QAAS,CAAC;EAEpC,oBACC1H,sDAAA,CAAC0O,+DAAY;IACZjN,IAAI,EAAGA,IAAM;IACbD,KAAK,EAAGA,KAAO;IACfyN,WAAW,EAAG;MAAE1I,OAAO,EAAE;IAAK,CAAG;IAAAhF,QAAA,EAE/BA,CAAA,kBAAMvB,sDAAA,CAAC+O,oDAAU;MAACR,IAAI,EAAGA,IAAM;MAACtM,QAAQ,EAAGA;IAAU,CAAE;EAAC,CAC7C,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AAC0E;AAClB;AAAA;AAEzC,SAAS8M,UAAUA,CAAE;EAAER,IAAI;EAAEtM;AAAS,CAAC,EAAG;EACxD,MAAM,CAAEqN,WAAW,EAAEC,cAAc,CAAE,GAAG/P,4DAAQ,CAAE,EAAG,CAAC;EAEtD,MAAMgQ,WAAW,GAAKC,OAAO,IAAM;IAClC,IAAK,EAAE,KAAKH,WAAW,EAAG;MACzB,OAAO,IAAI;IACZ;IACA,OACCG,OAAO,CAACnL,KAAK,CAACmF,WAAW,CAAC,CAAC,CAACiG,MAAM,CAAEJ,WAAW,CAAC7F,WAAW,CAAC,CAAE,CAAC,KAC/D,CAAC,CAAC;EAEJ,CAAC;EAED,oBACCvJ,uDAAA,CAACT,wDAAQ;IAAA8B,QAAA,gBACRvB,sDAAA,CAACmP,gEAAa;MACb7N,KAAK,EAAGgO,WAAa;MACrBrN,QAAQ,EAAGsN,cAAgB;MAC3B5K,uBAAuB;IAAA,CACvB,CAAC,eACF3E,sDAAA,CAACoP,2DAAQ;MAACb,IAAI,EAAGA,IAAM;MAAAhN,QAAA,EAClBoO,GAAG,IACNA,GAAG,CAACnB,IAAI,CACNtN,MAAM,CAAIuO,OAAO,IAAM;QACvB,OAAOD,WAAW,CAAEC,OAAQ,CAAC;MAC9B,CAAE,CAAC,CACFpO,GAAG,CAAImN,IAAI,IAAM;QACjB,oBACCxO,sDAAA,CAACqP,2DAAQ;UAER3N,OAAO,EAAGA,CAAA,KAAMO,QAAQ,CAAEuM,IAAI,CAAC7B,GAAI,CAAG;UACtCiD,IAAI,EAAGpB,IAAI,CAACH,WAAa;UAAA9M,QAAA,EAEvBiN,IAAI,CAAClK;QAAK,GAJNkK,IAAI,CAAClK,KAKF,CAAC;MAEb,CAAE;IAAC,CAEI,CAAC;EAAA,CACF,CAAC;AAEb;;;;;;;;;;;;;;;AC5CqB;AAEd,SAASwK,WAAWA,CAAEpH,QAAQ,EAAG;EACvC,MAAM6G,IAAI,GAAG,CACZ;IACClQ,IAAI,EAAE,QAAQ;IACdiG,KAAK,EAAE,QAAQ;IACfkK,IAAI,EAAE3B,yDAAa,CAAEnF,QAAS;EAC/B,CAAC,EACD;IACCrJ,IAAI,EAAE,WAAW;IACjBiG,KAAK,EAAE,WAAW;IAClBkK,IAAI,EAAET,4DAAgB,CAAC;EACxB,CAAC,EACD;IACC1P,IAAI,EAAE,OAAO;IACbiG,KAAK,EAAE,OAAO;IACdkK,IAAI,EAAEN,wDAAY,CAAC;EACpB,CAAC,CACD;EAED,OAAOK,IAAI;AACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3B6E;AACA;AACE;AACE;AACJ;AACA;AACA;AACA;AACR;AACM;AACI;AACH;AACP;AACU;AACI;AACN;AACA;AACG;AACP;AACE;AACQ;AACV;;;;;;;;;;;;ACrBzE;;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;;;;;;ACAA,cAAc,aAAa,+CAA+C,gDAAgD,eAAe,QAAQ,IAAI,0CAA0C,yCAAyC,SAAgB,gBAAgB,wCAAwC,IAAI,mDAAmD,SAAS,iEAAe,IAAI;;;;;;;;;;;;;;;;UCAnY;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC7BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEnDA;UACA;UACA;UACA;UACA","sources":["webpack://formello/./assets/icons/asterisk.svg","webpack://formello/./assets/icons/checkbox.svg","webpack://formello/./assets/icons/checkboxes.svg","webpack://formello/./assets/icons/clock-field.svg","webpack://formello/./assets/icons/color-field.svg","webpack://formello/./assets/icons/date-field.svg","webpack://formello/./assets/icons/email-field.svg","webpack://formello/./assets/icons/fieldset.svg","webpack://formello/./assets/icons/form.svg","webpack://formello/./assets/icons/gdpr-field.svg","webpack://formello/./assets/icons/hidden-field.svg","webpack://formello/./assets/icons/logo.svg","webpack://formello/./assets/icons/number-field.svg","webpack://formello/./assets/icons/password-field.svg","webpack://formello/./assets/icons/phone-field.svg","webpack://formello/./assets/icons/radio-buttons.svg","webpack://formello/./assets/icons/radio-field.svg","webpack://formello/./assets/icons/range-field.svg","webpack://formello/./assets/icons/select.svg","webpack://formello/./assets/icons/text-field.svg","webpack://formello/./assets/icons/textarea-field.svg","webpack://formello/./assets/icons/url-field.svg","webpack://formello/./node_modules/@wordpress/icons/build-module/library/more-vertical.js","webpack://formello/./src/blocks/input/use-field-props.js","webpack://formello/./src/blocks/select/edit.js","webpack://formello/./src/blocks/select/index.js","webpack://formello/./src/blocks/select/modal.js","webpack://formello/./src/blocks/select/opts.js","webpack://formello/./src/blocks/select/save.js","webpack://formello/./src/components/field-options/advanced.js","webpack://formello/./src/components/field-options/constants.js","webpack://formello/./src/components/field-options/index.js","webpack://formello/./src/components/field-options/toolbar.js","webpack://formello/./src/components/label.js","webpack://formello/./src/components/merge-tags/functions.js","webpack://formello/./src/components/merge-tags/index.js","webpack://formello/./src/components/merge-tags/tab-content.js","webpack://formello/./src/components/merge-tags/use-tabs.js","webpack://formello/./src/icons/icons.js","webpack://formello/./src/blocks/select/style.scss","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"blocks\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"coreData\"]","webpack://formello/external window [\"wp\",\"data\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"hooks\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/external window [\"wp\",\"primitives\"]","webpack://formello/./node_modules/clsx/dist/clsx.mjs","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/chunk loaded","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/webpack/runtime/jsonp chunk loading","webpack://formello/webpack/before-startup","webpack://formello/webpack/startup","webpack://formello/webpack/after-startup"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgAsterisk = function SvgAsterisk(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12.75 6h-1.5v4.19L8.288 7.226l-1.061 1.06 2.962 2.963H6v1.5h4.19l-2.963 2.962 1.06 1.061 2.963-2.962V18h1.5v-4.19l2.962 2.963 1.061-1.06-2.962-2.963H18v-1.5h-4.19l2.963-2.962-1.06-1.061-2.963 2.962V6Z\"\n })));\n};\nexport { SvgAsterisk as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjc1IDZIMTEuMjVWMTAuMTg5M0w4LjI4NzY5IDcuMjI3MDNMNy4yMjcwMyA4LjI4NzY5TDEwLjE4OTMgMTEuMjVINlYxMi43NUgxMC4xODkzTDcuMjI3MDMgMTUuNzEyM0w4LjI4NzY5IDE2Ljc3M0wxMS4yNSAxMy44MTA3VjE4SDEyLjc1VjEzLjgxMDdMMTUuNzEyMyAxNi43NzNMMTYuNzczIDE1LjcxMjNMMTMuODEwNyAxMi43NUgxOFYxMS4yNUgxMy44MTA3TDE2Ljc3MyA4LjI4NzY5TDE1LjcxMjMgNy4yMjcwM0wxMi43NSAxMC4xODkzVjZaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckbox = function SvgCheckbox(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z\"\n })));\n};\nexport { SvgCheckbox as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGc+CiAgICAgICAgPHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIvPgogICAgICAgIDxwYXRoIGQ9Ik00IDNoMTZhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6bTEgMnYxNGgxNFY1SDV6bTYuMDAzIDExTDYuNzYgMTEuNzU3bDEuNDE0LTEuNDE0IDIuODI5IDIuODI5IDUuNjU2LTUuNjU3IDEuNDE1IDEuNDE0TDExLjAwMyAxNnoiIC8+CiAgICA8L2c+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckboxes = function SvgCheckboxes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 24,\n height: 24,\n viewBox: \"0 0 300.396 300.396\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.048 216.749H4.076a3 3 0 0 0-3 3v59.973a3 3 0 0 0 3 3h59.972a3 3 0 0 0 3-3v-59.973c0-1.656-1.344-3-3-3zM64.048 17.675H4.076A4.075 4.075 0 0 0 0 21.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076V21.749a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986V36.809h29.849v29.852H19.138zM64.048 116.675H4.076A4.075 4.075 0 0 0 0 120.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076v-59.973a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986v-29.852h29.849v29.852H19.138zM297.396 231.036h-186.67a3 3 0 0 0-3 3v31.4a3 3 0 0 0 3 3h186.67c1.656 0 3-1.344 3-3v-31.4a3 3 0 0 0-3-3zM110.729 169.438h186.667a3 3 0 0 0 3-3v-31.406c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3zM110.729 70.438h186.667a3 3 0 0 0 3-3V36.032c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3z\"\n })));\n};\nexport { SvgCheckboxes as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiAKCSB2aWV3Qm94PSIwIDAgMzAwLjM5NiAzMDAuMzk2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNNjQuMDQ4LDIxNi43NDlINC4wNzZjLTEuNjU3LDAtMywxLjM0NC0zLDN2NTkuOTczYzAsMS42NTgsMS4zNDMsMywzLDNoNTkuOTcyYzEuNjU2LDAsMy0xLjM0MiwzLTN2LTU5Ljk3MwoJCUM2Ny4wNDgsMjE4LjA5Myw2NS43MDQsMjE2Ljc0OSw2NC4wNDgsMjE2Ljc0OXoiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTcuNjc1SDQuMDc2QzEuODI1LDE3LjY3NSwwLDE5LjQ5OSwwLDIxLjc0OXY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NlYyMS43NDlDNjguMTIzLDE5LjQ5OSw2Ni4yOTksMTcuNjc1LDY0LjA0OCwxNy42NzV6IE0xOS4xMzgsNjYuNjYxVjM2LjgwOWgyOS44NDl2MjkuODUySDE5LjEzOHoKCQkiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTE2LjY3NUg0LjA3NmMtMi4yNTEsMC00LjA3NiwxLjgyNC00LjA3Niw0LjA3NHY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NnYtNTkuOTczQzY4LjEyMywxMTguNDk5LDY2LjI5OSwxMTYuNjc1LDY0LjA0OCwxMTYuNjc1eiBNMTkuMTM4LDE2NS42NjF2LTI5Ljg1MmgyOS44NDl2MjkuODUyCgkJSDE5LjEzOHoiLz4KCTxwYXRoIGQ9Ik0yOTcuMzk2LDIzMS4wMzZoLTE4Ni42N2MtMS42NTcsMC0zLDEuMzQyLTMsM3YzMS40YzAsMS42NTYsMS4zNDMsMywzLDNoMTg2LjY3YzEuNjU2LDAsMy0xLjM0NCwzLTN2LTMxLjQKCQlDMzAwLjM5NiwyMzIuMzc4LDI5OS4wNTMsMjMxLjAzNiwyOTcuMzk2LDIzMS4wMzZ6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSwxNjkuNDM4aDE4Ni42NjdjMS42NTYsMCwzLTEuMzQyLDMtM3YtMzEuNDA2YzAtMS42NTYtMS4zNDQtMy0zLTNIMTEwLjcyOWMtMS42NTcsMC0zLDEuMzQ0LTMsM3YzMS40MDYKCQlDMTA3LjcyOSwxNjguMDk3LDEwOS4wNzEsMTY5LjQzOCwxMTAuNzI5LDE2OS40Mzh6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSw3MC40MzhoMTg2LjY2N2MxLjY1NiwwLDMtMS4zNDIsMy0zVjM2LjAzMmMwLTEuNjU2LTEuMzQ0LTMtMy0zSDExMC43MjljLTEuNjU3LDAtMywxLjM0NC0zLDN2MzEuNDA2CgkJQzEwNy43MjksNjkuMDk3LDEwOS4wNzEsNzAuNDM4LDExMC43MjksNzAuNDM4eiIvPgo8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgClockField = function SvgClockField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 -8 72 72\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 0a28 28 0 1 0 28 28A28 28 0 0 0 36 0Zm0 50a22 22 0 1 1 22-22 22.07 22.07 0 0 1-22 22Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.59 27.14H38V12a2.31 2.31 0 1 0-4.61 0v17.44a2.31 2.31 0 0 0 2.3 2.31h14.9a2.31 2.31 0 1 0 0-4.61Z\"\n })));\n};\nexport { SvgClockField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAtOCA3MiA3MiIgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Y2xvY2stbzwvdGl0bGU+PHBhdGggZD0iTTM2LDBBMjgsMjgsMCwxLDAsNjQsMjgsMjgsMjgsMCwwLDAsMzYsMFptMCw1MEEyMiwyMiwwLDEsMSw1OCwyOCwyMi4wNywyMi4wNywwLDAsMSwzNiw1MFoiLz48cGF0aCBkPSJNNTAuNTksMjcuMTRIMzhWMTJhMi4zMSwyLjMxLDAsMSwwLTQuNjEsMFYyOS40NGEyLjMxLDIuMzEsMCwwLDAsMi4zLDIuMzFINTAuNTlhMi4zMSwyLjMxLDAsMSwwLDAtNC42MVoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgColorField = function SvgColorField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 36 36\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.23 14.89c-2.1-.56-4.93 1.8-6.34.3-1.71-1.82 2.27-5.53 1.86-8.92-.33-2.78-3.51-4.08-6.66-4.1A18.5 18.5 0 0 0 7.74 7.59c-6.64 6.59-8.07 16-1.37 22.48 6.21 6 16.61 4.23 22.67-1.4a17.73 17.73 0 0 0 4.22-6.54c1.08-2.9 1.18-6.64-1.03-7.24ZM9.4 10.57a2.23 2.23 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.81 2.53 2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53ZM5.07 20.82a2.22 2.22 0 0 1 1.82-2.53 2.22 2.22 0 0 1 2.86 1.21A2.23 2.23 0 0 1 7.94 22a2.24 2.24 0 0 1-2.87-1.18Zm7 8.33a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.8-2.53 2.23 2.23 0 0 1 2.87 1.21A2.22 2.22 0 0 1 12 29.15ZM15 8.26a2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.82 2.53A2.21 2.21 0 0 1 15 8.26Zm5.82 22.19a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.85 2.53Zm5-10.46a3.2 3.2 0 0 1-1.69 1.76 3.53 3.53 0 0 1-1.4.3 2.78 2.78 0 0 1-2.56-1.5 2.49 2.49 0 0 1-.07-2 3.2 3.2 0 0 1 1.69-1.76 3 3 0 0 1 4 1.2 2.54 2.54 0 0 1 0 2.01Z\",\n \"data-name\": \"Layer 3\"\n })));\n};\nexport { SvgColorField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDM2IDM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoNPHRpdGxlPmNvbG9yX3BhbGV0dGVfc29saWQ8L3RpdGxlPgoNPGcgaWQ9ImI4OTRlMzJiLTA0MzctNDVhYi1iOGJmLTlmMGM0ZThmNTdjZCIgZGF0YS1uYW1lPSJMYXllciAzIj4KDTxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTguNSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMywwLDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywyLjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEsMS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDateField = function SvgDateField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38 4V0h-4v4H14V0h-4v4H0v44h48V4H38zm6 40H4V19.9h40V44zM4 15.9V8h6v4h4V8h20v4h4V8h6v7.9H4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 24h6v6h-6zM16.667 24h6v6h-6zM25.583 24h6v6h-6zM34.5 24h6v6h-6zM7.5 33h6v6h-6zM16.667 33h6v6h-6zM25.583 33h6v6h-6zM34.5 33h6v6h-6z\"\n })));\n};\nexport { SvgDateField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCFET0NUWVBFIHN2ZyAgUFVCTElDICctLy9XM0MvL0RURCBTVkcgMS4xLy9FTicgICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQnPgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0OCA0OCIgaWQ9IkxheWVyXzMiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08Zz4KDTxwYXRoIGQ9Ik0zOCw0VjBoLTR2NEgxNFYwaC00djRIMHYxMS45djRWNDhoNDhWMTkuOXYtNFY0SDM4eiBNNDQsNDRINFYxOS45aDQwVjQ0eiBNNCwxNS45VjhoNnY0aDRWOGgyMHY0aDRWOGg2djcuOUg0eiIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iNy41IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMTYuNjY3IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMjUuNTgzIiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMzQuNSIgeT0iMjQiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjcuNSIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjE2LjY2NyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjI1LjU4MyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjM0LjUiIHk9IjMzIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmailField = function SvgEmailField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2c5.43 0 9.848 4.327 9.996 9.72L22 12v1c0 2.173-1.523 4-3.5 4-1.173 0-2.186-.643-2.816-1.62a5 5 0 1 1 1.311-3.597L17 12v1c0 1.14.716 2 1.5 2 .745 0 1.428-.775 1.495-1.831L20 13v-1a8 8 0 1 0-4.677 7.28 1 1 0 1 1 .831 1.819A9.966 9.966 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2Zm0 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z\"\n })));\n};\nexport { SvgEmailField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik0xMiwyIEMxNy40MjkyMzk5LDIgMjEuODQ3OTMxNyw2LjMyNjY3MDc5IDIxLjk5NjE1ODIsMTEuNzIwMDk1MiBMMjIsMTIgTDIyLDEzIEMyMiwxNS4xNzI5MjA4IDIwLjQ3NzQzNCwxNyAxOC41LDE3IEMxNy4zMjY5MzkxLDE3IDE2LjMxMzk1MjksMTYuMzU3MDI0NCAxNS42ODM5MzgyLDE1LjM4MDMwMjQgQzE0Ljc3MDU5MywxNi4zNzU3ODIzIDEzLjQ1ODE5MzQsMTcgMTIsMTcgQzkuMjM4NTc2MjUsMTcgNywxNC43NjE0MjM3IDcsMTIgQzcsOS4yMzg1NzYyNSA5LjIzODU3NjI1LDcgMTIsNyBDMTQuNjg4NzU0Nyw3IDE2Ljg4MTgxODEsOS4xMjIzMDY3MSAxNi45OTUzODA1LDExLjc4MzExMDQgTDE3LDEyIEwxNywxMyBDMTcsMTQuMTQwNzg3NyAxNy43MTYwMTAzLDE1IDE4LjUsMTUgQzE5LjI0NDc5MDIsMTUgMTkuOTI4MjI5LDE0LjIyNDU2MDkgMTkuOTk0NzEwOSwxMy4xNjg5MzQxIEwyMCwxMyBMMjAsMTIgQzIwLDcuNTgxNzIyIDE2LjQxODI3OCw0IDEyLDQgQzcuNTgxNzIyLDQgNCw3LjU4MTcyMiA0LDEyIEM0LDE2LjQxODI3OCA3LjU4MTcyMiwyMCAxMiwyMCBDMTMuMTYzMDk0OCwyMCAxNC4yODkyODIyLDE5Ljc1MjI2MTggMTUuMzIyNTE1OSwxOS4yNzk4MzMxIEMxNS44MjQ3ODc2LDE5LjA1MDE3NzcgMTYuNDE4MTMxNywxOS4yNzExNzcgMTYuNjQ3Nzg3LDE5Ljc3MzQ0ODcgQzE2Ljg3NzQ0MjMsMjAuMjc1NzIwNSAxNi42NTY0NDMsMjAuODY5MDY0NiAxNi4xNTQxNzEzLDIxLjA5ODcxOTkgQzE0Ljg2MTIxOCwyMS42ODk5MDEgMTMuNDUxNTQ2MywyMiAxMiwyMiBDNi40NzcxNTI1LDIyIDIsMTcuNTIyODQ3NSAyLDEyIEMyLDYuNDc3MTUyNSA2LjQ3NzE1MjUsMiAxMiwyIFogTTEyLDkgQzEwLjM0MzE0NTgsOSA5LDEwLjM0MzE0NTggOSwxMiBDOSwxMy42NTY4NTQyIDEwLjM0MzE0NTgsMTUgMTIsMTUgQzEzLjY1Njg1NDIsMTUgMTUsMTMuNjU2ODU0MiAxNSwxMiBDMTUsMTAuMzQzMTQ1OCAxMy42NTY4NTQyLDkgMTIsOSBaIi8+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFieldset = function SvgFieldset(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 80,\n height: 80,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 20h1v1H1v-2h1zm20 0h-1v1h2v-2h-1zM1 5h1V4h1V3H1zm1 2H1v2h1zm0 4H1v2h1zm20-2h1V7h-1zm0 4h1v-2h-1zM2 15H1v2h1zm20 2h1v-2h-1zM5 4h2V3H5zm6 0V3H9v1zm2 0h2V3h-2zm6-1h-2v1h2zM5 21h2v-1H5zm4 0h2v-1H9zm4 0h2v-1h-2zm4 0h2v-1h-2zm4-17h1v1h1V3h-2zm-1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1V8a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19V8H5v2h14m1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1v-2a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19v-2H5v2h14\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgFieldset as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MHB4IiBoZWlnaHQ9IjgwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAyMGgxdjFIMXYtMmgxem0yMCAwaC0xdjFoMnYtMmgtMXpNMSA1aDFWNGgxVjNIMXptMSAySDF2Mmgxem0wIDRIMXYyaDF6bTIwLTJoMVY3aC0xem0wIDRoMXYtMmgtMXpNMiAxNUgxdjJoMXptMjAgMmgxdi0yaC0xek01IDRoMlYzSDV6bTYgMFYzSDl2MXptMiAwaDJWM2gtMnptNi0xaC0ydjFoMnpNNSAyMWgydi0xSDV6bTQgMGgydi0xSDl6bTQgMGgydi0xaC0yem00IDBoMnYtMWgtMnptNC0xN2gxdjFoMVYzaC0yem0tMSA0djJhMS4wMDEgMS4wMDEgMCAwIDEtMSAxSDVhMS4wMDEgMS4wMDEgMCAwIDEtMS0xVjhhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOVY4SDV2MmgxNG0xIDR2MmExLjAwMSAxLjAwMSAwIDAgMS0xIDFINWExLjAwMSAxLjAwMSAwIDAgMS0xLTF2LTJhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOXYtMkg1djJoMTQiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgForm = function SvgForm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.2 12.994a.312.312 0 0 1-.188-.191C1 12.76.999 12.113 1 6.982V1.208l.022-.045a.328.328 0 0 1 .14-.14L1.208 1h11.585l.05.025a.31.31 0 0 1 .136.135l.021.039v5.783c0 5.377 0 5.787-.013 5.831a.314.314 0 0 1-.142.162L12.8 13H7.012c-3.457.001-5.8 0-5.817-.01zm11.236-5.992V1.568H1.573v10.857c0 .01 1.099.01 5.436.01h5.432V7.003zM5.574 10.72v-.86h1.712v1.72H5.574v-.86zm1.144 0v-.284h-.576v.568h.576v-.284zm1.145 0v-.284h3.432v.568H7.863v-.284zM5.574 7.572V6.428h5.72v2.288h-5.72V7.572zm5.144 0V7H6.142v.566c0 .311 0 .569.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.289h2.28v.577h-2.28v-.288zM5.575 4.14V2.996h5.72v2.288h-5.72V4.14zm5.144 0v-.572H6.142v.566c0 .31 0 .568.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.284h2.28v.567h-2.28V4.14z\"\n })));\n};\nexport { SvgForm as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAxNCAxNCIgcm9sZT0iaW1nIiBmb2N1c2FibGU9ImZhbHNlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtIDEuMTk5Nzk5NSwxMi45OTM5MTYgYyAtMC4wNzkwMzQsLTAuMDIzIC0wLjE2NDA3MSwtMC4xMDkzIC0wLjE4Nzk4MTMsLTAuMTkxNCAtMC4wMTIwMDUsLTAuMDQyIC0wLjAxMzAwNiwtMC42ODk1IC0wLjAxMTAwNSwtNS44MjEwMDAzIGwgMCwtNS43NzQgMC4wMjIwMSwtMC4wNDUgYyAwLjAyODAxMiwtMC4wNTcgMC4wODMwMzYsLTAuMTExNyAwLjE0MDE2MDYsLTAuMTQwMSBsIDAuMDQ1MDE5LC0wLjAyMiA1Ljc5MjIwNDEsMCA1Ljc5MjMwNDEsMCAwLjA1MTAyLDAuMDI1IGMgMC4wNTYwMiwwLjAyNyAwLjEwMzY0NSwwLjA3NSAwLjEzNTQ1OSwwLjEzNDUgbCAwLjAyMTAxLDAuMDM5IDAsNS43ODMyIGMgMCw1LjM3NjUwMDMgMCw1Ljc4NjYwMDMgLTAuMDEzMDEsNS44MzExMDAzIC0wLjAxOTAxLDAuMDYgLTAuMDc5MDMsMC4xMjkxIC0wLjE0MTc2MSwwLjE2MjEgbCAtMC4wNDYwMiwwLjAyNCAtNS43ODc3MDIzLDAgYyAtMy40NTYyOTQyLDllLTQgLTUuNzk5MjA3LDAgLTUuODE2MDE0MywtMC4wMSB6IG0gMTEuMjM2NjU3NSwtNS45OTE5MDAzIDAsLTUuNDM0MiAtNS40MzE5NDgxLDAgLTUuNDMxODQ4MiwwIDAsNS40MjI5IGMgMCwyLjk4MjYgLTQuMDAyZS00LDUuNDI4MDAwMyAwLDUuNDM0MjAwMyAwLDAuMDEgMS4wOTkwNzUxLDAuMDExIDUuNDM2NTUwMiwwLjAxMSBsIDUuNDMyMTQ4MSwwIDAsLTUuNDM0MjAwMyB6IG0gLTYuODYxOTY2MywzLjcxODEwMDMgMCwtMC44NjAzMDAzIDAuODU1NzY5OSwwIDAuODU1NzcsMCAwLDAuODYwMzAwMyAwLDAuODYwMyAtMC44NTU3NywwIC0wLjg1NTc2OTksMCAwLC0wLjg2MDMgeiBtIDEuMTQzOTk0NSwwIDAsLTAuMjgzOCAtMC4yODgyMjQ2LDAgLTAuMjg4MzI0NiwwIDAsMC4yODM4IDAsMC4yODM3IDAuMjg4MzI0NiwwIDAuMjg4MjI0NiwwIDAsLTAuMjgzNyB6IG0gMS4xNDQwOTQ3LDAgMCwtMC4yODM4IDEuNzE2MDQxOCwwIDEuNzE2MDQxMywwIDAsMC4yODM4IDAsMC4yODM3IC0xLjcxNjA0MTMsMCAtMS43MTYwNDE4LDAgMCwtMC4yODM3IHogbSAtMi4yODgwODkyLC0zLjE0ODMwMDMgMCwtMS4xNDQxIDIuODYwMDM2NCwwIDIuODYwMTM1OSwwIDAsMS4xNDQxIDAsMS4xNDM5IC0yLjg2MDEzNTksMCAtMi44NjAwMzY0LDAgMCwtMS4xNDM5IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEzIDAsMC41Njg3IDAuMDEwMDA0LDAuNTcyIDAsMCAxLjAzMjk0NjYsMC4wMSAyLjI4ODA4OTIsMC4wMSBsIDIuMjgyMDg2OCwwIDAsLTAuNTcyIHogbSAtNy45OTkyNTc4LDAgMCwtMC4yODg0IDEuMTM5NTkyNywwIDEuMTM5NDkyNSwwIDAsMC4yODg0IDAsMC4yODgyIC0xLjEzOTQ5MjUsMCAtMS4xMzk1OTI3LDAgMCwtMC4yODgyIHogbSAyLjg1NTYzNDUsLTMuNDMyMSAwLC0xLjE0NDEgMi44NjAwMzY0LDAgMi44NjAxMzU5LDAgMCwxLjE0NDEgMCwxLjE0NCAtMi44NjAxMzU5LDAgLTIuODYwMDM2NCwwIDAsLTEuMTQ0IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEyIDAsMC41Njg2IDAuMDEwMDA0LDAuNTcxOSAwLDAgMS4wMzI5NDY2LDAuMDEgMi4yODgwODkyLDAuMDEgbCAyLjI4MjA4NjgsMCAwLC0wLjU3MTkgeiBtIC03Ljk5OTI1NzgsMCAwLC0wLjI4MzkgMS4xMzk1OTI3LDAgMS4xMzk0OTI1LDAgMCwwLjI4MzkgMCwwLjI4MzcgLTEuMTM5NDkyNSwwIC0xLjEzOTU5MjcsMCAwLC0wLjI4MzcgeiIvPjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGdprField = function SvgGdprField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2zm0 8h5s1-1 1-5c0 0-5-1-6-2v7H5c1 4 5 7 5 7v-7z\"\n })));\n};\nexport { SvgGdprField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+Cgk8cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KCTxnPgoJCTxwYXRoIGQ9Ik0xMCAyczMgMiA3IDJjMCAxMS03IDE0LTcgMTRTMyAxNSAzIDRjNCAwIDctMiA3LTJ6bTAgOGg1czEtMSAxLTVjMCAwLTUtMS02LTJ2N0g1YzEgNCA1IDcgNSA3di03eiIvPgoJPC9nPgo8L3N2Zz4K\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgHiddenField = function SvgHiddenField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 1000 1000\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M499 270q57 0 104.5 28t75.5 76 28 104q0 39-15 76l122 122q97-81 142-198-36-91-104-162T694 206q-93-40-195-40-86 0-166 29l90 90q38-15 76-15zM83 157l95 94 19 20q-52 40-91.5 93T42 478q36 91 104.5 162T304 750q93 40 195 40 95 0 183-35l139 139 53-53-738-737zm230 230 65 64q-4 15-4 27 0 34 17 62.5t45.5 45.5 62.5 17q14 0 27-3l65 64q-45 22-92 22-56 0-104-28t-76-76-28-104q0-47 22-91zm180-33 131 131v-6q0-34-16.5-63t-45-45.5T500 354h-7z\"\n })));\n};\nexport { SvgHiddenField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00OTkgMjcwcTU3IDAgMTA0LjUgMjh0NzUuNSA3NiAyOCAxMDRxMCAzOS0xNSA3NmwxMjIgMTIycTk3LTgxIDE0Mi0xOTgtMzYtOTEtMTA0LTE2MlQ2OTQgMjA2cS05My00MC0xOTUtNDAtODYgMC0xNjYgMjlsOTAgOTBxMzgtMTUgNzYtMTV6TTgzIDE1N2w5NSA5NCAxOSAyMHEtNTIgNDAtOTEuNSA5M1Q0MiA0NzhxMzYgOTEgMTA0LjUgMTYyVDMwNCA3NTBxOTMgNDAgMTk1IDQwIDk1IDAgMTgzLTM1bDEzOSAxMzkgNTMtNTMtNzM4LTczN3ptMjMwIDIzMGw2NSA2NHEtNCAxNS00IDI3IDAgMzQgMTcgNjIuNXQ0NS41IDQ1LjUgNjIuNSAxN3ExNCAwIDI3LTNsNjUgNjRxLTQ1IDIyLTkyIDIyLTU2IDAtMTA0LTI4dC03Ni03Ni0yOC0xMDRxMC00NyAyMi05MXptMTgwLTMzbDEzMSAxMzF2LTZxMC0zNC0xNi41LTYzdC00NS00NS41VDUwMCAzNTRoLTd6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 341.333,\n height: 341.333,\n viewBox: \"0 0 256 256\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#9b51e0\",\n d: \"M0 128v128h256V0H0v128zm145.6-66.6c2.9.7 7.8 2.8 11.1 4.5 6.7 3.6 18.3 14.6 16.8 16-2.6 2.3-31.9 23.1-32.6 23.1-.5 0-.9-.5-.9-1 0-.6-1.1-2.2-2.5-3.5-3-3.1-8.3-3.3-11.6-.6-2.2 1.8-2.4 2.7-2.7 14l-.4 12.1H136v37h-13v34H82v-44.8c0-35.5.3-46.1 1.5-51.7 3.9-18.6 18.2-34.2 35.6-38.9 6.9-1.9 19.9-2 26.5-.2z\"\n })));\n};\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwoJdmVyc2lvbj0iMS4wIgoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJd2lkdGg9IjI1Ni4wMDAwMDBwdCIKCWhlaWdodD0iMjU2LjAwMDAwMHB0IgoJdmlld0JveD0iMCAwIDI1Ni4wMDAwMDAgMjU2LjAwMDAwMCIKCXByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiCj4KCTxnCgkJdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjU2LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKCQlmaWxsPSIjOWI1MWUwIgoJCXN0cm9rZT0ibm9uZSIKCT4KCQk8cGF0aAoJCQlkPSJNMCAxMjgwIGwwIC0xMjgwIDEyODAgMCAxMjgwIDAgMCAxMjgwIDAgMTI4MCAtMTI4MCAwIC0xMjgwIDAgMAoJCQktMTI4MHogbTE0NTYgNjY2IGMyOSAtNyA3OCAtMjggMTExIC00NSA2NyAtMzYgMTgzIC0xNDYgMTY4IC0xNjAgLTI2IC0yMwoJCQktMzE5IC0yMzEgLTMyNiAtMjMxIC01IDAgLTkgNSAtOSAxMCAwIDYgLTExIDIyIC0yNSAzNSAtMzAgMzEgLTgzIDMzIC0xMTYgNgoJCQktMjIgLTE4IC0yNCAtMjcgLTI3IC0xNDAgbC00IC0xMjEgNjYgMCA2NiAwIDAgLTE4NSAwIC0xODUgLTY1IDAgLTY1IDAgMAoJCQktMTcwIDAgLTE3MCAtMjA1IDAgLTIwNSAwIDAgNDQ4IGMwIDM1NSAzIDQ2MSAxNSA1MTcgMzkgMTg2IDE4MiAzNDIgMzU2IDM4OQoJCQk2OSAxOSAxOTkgMjAgMjY1IDJ6IgoJCS8+Cgk8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgNumberField = function SvgNumberField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 52 52\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.8 49.5H7.2c-2.6 0-4.7-2.1-4.7-4.7V7.2c0-2.6 2.1-4.7 4.7-4.7h37.6c2.6 0 4.7 2.1 4.7 4.7v37.6c0 2.6-2.1 4.7-4.7 4.7zm-36-39.2v31.3c0 .9.7 1.6 1.6 1.6h31.3c.9 0 1.6-.7 1.6-1.6V10.3c0-.9-.7-1.6-1.6-1.6H10.4c-.9.1-1.6.8-1.6 1.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.2 20.3h-2.9l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.2 4.9h-5.8l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.3 4.9H18c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h3L19 28.7h-3.1c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h2.9L17 36.5v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h5.7L26 36.4v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h3.2c.2 0 .3-.1.4-.3l.6-2.2V29c0-.2-.1-.4-.4-.4h-3l1.4-5.6h3.1c.2 0 .3-.1.4-.3l.6-2.2v-.1c-.1.1-.3-.1-.5-.1zm-8.1 8.5h-5.8l1.4-5.6h5.7l-1.3 5.6z\"\n })));\n};\nexport { SvgNumberField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCgkgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNTIgNTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUyIDUyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZD0iTTQ0LjgsNDkuNUg3LjJjLTIuNiwwLTQuNy0yLjEtNC43LTQuN1Y3LjJjMC0yLjYsMi4xLTQuNyw0LjctNC43aDM3LjZjMi42LDAsNC43LDIuMSw0LjcsNC43djM3LjYKCUM0OS41LDQ3LjQsNDcuNCw0OS41LDQ0LjgsNDkuNXogTTguOCwxMC4zdjMxLjNjMCwwLjksMC43LDEuNiwxLjYsMS42aDMxLjNjMC45LDAsMS42LTAuNywxLjYtMS42VjEwLjNjMC0wLjktMC43LTEuNi0xLjYtMS42SDEwLjQKCUM5LjUsOC44LDguOCw5LjUsOC44LDEwLjN6Ii8+CjxwYXRoIGQ9Ik0zNi4yLDIwLjNoLTIuOWwxLjItNC44di0wLjFjMC0wLjItMC4xLTAuNC0wLjQtMC40aC0yLjNjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMS4yLDQuOWgtNS44bDEuMi00LjgKCXYtMC4xYzAtMC4yLTAuMS0wLjQtMC40LTAuNGgtMi4zYy0wLjIsMC0wLjMsMC4xLTAuNCwwLjNsLTEuMyw0LjloLTMuMmMtMC4yLDAtMC4zLDAuMS0wLjQsMC4zbC0wLjYsMi4ydjAuMWMwLDAuMiwwLjEsMC40LDAuNCwwLjQKCWgzbC0xLjQsNS42aC0zLjFjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMC42LDIuMnYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuOWwtMS4yLDQuOHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuMwoJYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wxLjMtNWg1LjdMMjYsMzYuNHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuM2MwLjIsMCwwLjMtMC4xLDAuNC0wLjNsMS4zLTVoMy4yYzAuMiwwLDAuMy0wLjEsMC40LTAuMwoJbDAuNi0yLjJWMjljMC0wLjItMC4xLTAuNC0wLjQtMC40aC0zbDEuNC01LjZoMy4xYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wwLjYtMi4ydi0wLjFDMzYuNiwyMC41LDM2LjQsMjAuMywzNi4yLDIwLjNMMzYuMiwyMC4zegoJIE0yOC4xLDI4LjhoLTUuOGwxLjQtNS42aDUuN0wyOC4xLDI4Ljh6Ii8+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPasswordField = function SvgPasswordField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.988 51.297c.375 0 .961-.14 1.57-.445C42.66 43.469 47.185 40.375 47.185 31.96V14.289c0-2.414-1.055-3.187-3-4.008-2.743-1.125-11.532-4.289-14.25-5.25-.633-.187-1.266-.328-1.946-.328-.656 0-1.289.14-1.922.328-2.718.985-11.507 4.149-14.25 5.25-1.945.797-3 1.594-3 4.008v17.672c0 8.414 4.547 11.484 17.625 18.89.61.305 1.172.446 1.547.446Zm-8.226-15.563v-9.093c0-1.524.586-2.32 1.828-2.508V21.32c0-4.312 2.601-7.218 6.398-7.218 3.82 0 6.399 2.906 6.399 7.218v2.79c1.265.187 1.851.984 1.851 2.53v9.094c0 1.758-.773 2.578-2.414 2.578H22.152c-1.617 0-2.39-.82-2.39-2.578Zm4.289-11.648 7.898-.023v-3c0-2.766-1.57-4.594-3.96-4.594-2.368 0-3.938 1.828-3.938 4.593Z\"\n })));\n};\nexport { SvgPasswordField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMjcuOTg4MyA1MS4yOTY5IEMgMjguMzYzMyA1MS4yOTY5IDI4Ljk0OTIgNTEuMTU2MiAyOS41NTg2IDUwLjg1MTYgQyA0Mi42NjAyIDQzLjQ2ODggNDcuMTgzNiA0MC4zNzUwIDQ3LjE4MzYgMzEuOTYwOSBMIDQ3LjE4MzYgMTQuMjg5MSBDIDQ3LjE4MzYgMTEuODc1MCA0Ni4xMjg5IDExLjEwMTYgNDQuMTgzNiAxMC4yODEzIEMgNDEuNDQxNCA5LjE1NjIgMzIuNjUyNCA1Ljk5MjIgMjkuOTMzNiA1LjAzMTMgQyAyOS4zMDA4IDQuODQzOCAyOC42NjgwIDQuNzAzMSAyNy45ODgzIDQuNzAzMSBDIDI3LjMzMjAgNC43MDMxIDI2LjY5OTIgNC44NDM4IDI2LjA2NjQgNS4wMzEzIEMgMjMuMzQ3NiA2LjAxNTYgMTQuNTU4NiA5LjE3OTcgMTEuODE2NCAxMC4yODEzIEMgOS44NzExIDExLjA3ODEgOC44MTY0IDExLjg3NTAgOC44MTY0IDE0LjI4OTEgTCA4LjgxNjQgMzEuOTYwOSBDIDguODE2NCA0MC4zNzUwIDEzLjM2MzMgNDMuNDQ1MyAyNi40NDE0IDUwLjg1MTYgQyAyNy4wNTA4IDUxLjE1NjIgMjcuNjEzMyA1MS4yOTY5IDI3Ljk4ODMgNTEuMjk2OSBaIE0gMTkuNzYxNyAzNS43MzQ0IEwgMTkuNzYxNyAyNi42NDA2IEMgMTkuNzYxNyAyNS4xMTcyIDIwLjM0NzYgMjQuMzIwMyAyMS41ODk4IDI0LjEzMjggTCAyMS41ODk4IDIxLjMyMDMgQyAyMS41ODk4IDE3LjAwNzggMjQuMTkxNCAxNC4xMDE2IDI3Ljk4ODMgMTQuMTAxNiBDIDMxLjgwODYgMTQuMTAxNiAzNC4zODY3IDE3LjAwNzggMzQuMzg2NyAyMS4zMjAzIEwgMzQuMzg2NyAyNC4xMDk0IEMgMzUuNjUyNCAyNC4yOTY5IDM2LjIzODMgMjUuMDkzOCAzNi4yMzgzIDI2LjY0MDYgTCAzNi4yMzgzIDM1LjczNDQgQyAzNi4yMzgzIDM3LjQ5MjIgMzUuNDY0OSAzOC4zMTI1IDMzLjgyNDIgMzguMzEyNSBMIDIyLjE1MjQgMzguMzEyNSBDIDIwLjUzNTEgMzguMzEyNSAxOS43NjE3IDM3LjQ5MjIgMTkuNzYxNyAzNS43MzQ0IFogTSAyNC4wNTA4IDI0LjA4NjAgTCAzMS45NDkyIDI0LjA2MjUgTCAzMS45NDkyIDIxLjA2MjUgQyAzMS45NDkyIDE4LjI5NjkgMzAuMzc4OSAxNi40Njg3IDI3Ljk4ODMgMTYuNDY4NyBDIDI1LjYyMTEgMTYuNDY4NyAyNC4wNTA4IDE4LjI5NjkgMjQuMDUwOCAyMS4wNjI1IFoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPhoneField = function SvgPhoneField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.156 37.762c6.774 6.773 15.024 12 21.75 12 3.024 0 5.672-1.055 7.805-3.399 1.242-1.383 2.016-3 2.016-4.593 0-1.172-.446-2.297-1.57-3.094l-7.173-5.11c-1.101-.75-2.015-1.125-2.859-1.125-1.078 0-2.016.61-3.094 1.664l-1.664 1.641a1.263 1.263 0 0 1-.89.375c-.375 0-.704-.14-.961-.258-1.43-.773-3.914-2.906-6.235-5.203-2.297-2.297-4.43-4.781-5.18-6.234a1.991 1.991 0 0 1-.257-.938c0-.304.093-.61.351-.867l1.64-1.71c1.056-1.079 1.665-2.017 1.665-3.095 0-.843-.375-1.757-1.148-2.859l-5.04-7.102c-.82-1.125-1.968-1.617-3.234-1.617-1.547 0-3.164.703-4.523 2.04-2.274 2.18-3.282 4.874-3.282 7.85 0 6.727 5.133 14.884 11.883 21.634Z\"\n })));\n};\nexport { SvgPhoneField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMTguMTU2MiAzNy43NjE3IEMgMjQuOTI5NyA0NC41MzUyIDMzLjE3OTcgNDkuNzYxNyAzOS45MDYyIDQ5Ljc2MTcgQyA0Mi45Mjk3IDQ5Ljc2MTcgNDUuNTc4MSA0OC43MDcwIDQ3LjcxMDkgNDYuMzYzMyBDIDQ4Ljk1MjggNDQuOTgwNSA0OS43MjY2IDQzLjM2MzMgNDkuNzI2NiA0MS43Njk1IEMgNDkuNzI2NiA0MC41OTc3IDQ5LjI4MTIgMzkuNDcyNyA0OC4xNTYyIDM4LjY3NTggTCA0MC45ODQzIDMzLjU2NjQgQyAzOS44ODI4IDMyLjgxNjQgMzguOTY4NyAzMi40NDE0IDM4LjEyNTAgMzIuNDQxNCBDIDM3LjA0NjggMzIuNDQxNCAzNi4xMDkzIDMzLjA1MDggMzUuMDMxMiAzNC4xMDU1IEwgMzMuMzY3MSAzNS43NDYxIEMgMzMuMTA5MyAzNi4wMDM5IDMyLjc4MTIgMzYuMTIxMSAzMi40NzY1IDM2LjEyMTEgQyAzMi4xMDE1IDM2LjEyMTEgMzEuNzczNCAzNS45ODA1IDMxLjUxNTYgMzUuODYzMyBDIDMwLjA4NTkgMzUuMDg5OCAyNy42MDE1IDMyLjk1NzEgMjUuMjgxMiAzMC42NjAyIEMgMjIuOTg0MyAyOC4zNjMzIDIwLjg1MTUgMjUuODc4OSAyMC4xMDE1IDI0LjQyNTggQyAxOS45NjA5IDI0LjE2ODAgMTkuODQzNyAyMy44Mzk4IDE5Ljg0MzcgMjMuNDg4MyBDIDE5Ljg0MzcgMjMuMTgzNiAxOS45Mzc1IDIyLjg3ODkgMjAuMTk1MyAyMi42MjExIEwgMjEuODM1OSAyMC45MTAyIEMgMjIuODkwNiAxOS44MzIwIDIzLjQ5OTkgMTguODk0NSAyMy40OTk5IDE3LjgxNjQgQyAyMy40OTk5IDE2Ljk3MjcgMjMuMTI1MCAxNi4wNTg2IDIyLjM1MTUgMTQuOTU3MSBMIDE3LjMxMjQgNy44NTU1IEMgMTYuNDkyMSA2LjczMDUgMTUuMzQzNyA2LjIzODMgMTQuMDc4MSA2LjIzODMgQyAxMi41MzEyIDYuMjM4MyAxMC45MTQwIDYuOTQxNCA5LjU1NDYgOC4yNzc0IEMgNy4yODEyIDEwLjQ1NzEgNi4yNzM0IDEzLjE1MjQgNi4yNzM0IDE2LjEyODkgQyA2LjI3MzQgMjIuODU1NSAxMS40MDYyIDMxLjAxMTcgMTguMTU2MiAzNy43NjE3IFoiLz48L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioButtons = function SvgRadioButtons(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 4h13v1H9zm0 17h13v-1H9zm0-8h13v-1H9zM7 4a3 3 0 1 1-3-3 3 3 0 0 1 3 3zM6 4a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2 2 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm-2-9a1 1 0 1 0 1 1 1 1 0 0 0-1-1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgRadioButtons as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05IDRoMTN2MUg5em0wIDE3aDEzdi0xSDl6bTAtOGgxM3YtMUg5ek03IDRhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzek02IDRhMiAyIDAgMSAwLTIgMiAyLjAwMyAyLjAwMyAwIDAgMCAyLTJ6bTEgOGEzIDMgMCAxIDEtMy0zIDMgMyAwIDAgMSAzIDN6bS0xIDBhMiAyIDAgMSAwLTIgMiAyIDIgMCAwIDAgMi0yem0xIDhhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzem0tMSAwYTIgMiAwIDEgMC0yIDIgMi4wMDMgMi4wMDMgMCAwIDAgMi0yem0tMi05YTEgMSAwIDEgMCAxIDEgMSAxIDAgMCAwLTEtMXoiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioField = function SvgRadioField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 4C5.32 4 4 5.32 4 7s1.32 3 3 3 3-1.32 3-3-1.32-3-3-3Zm0-3C3.7 1 1 3.7 1 7s2.7 6 6 6 6-2.7 6-6-2.7-6-6-6Zm0 10.8c-2.64 0-4.8-2.16-4.8-4.8 0-2.64 2.16-4.8 4.8-4.8 2.64 0 4.8 2.16 4.8 4.8 0 2.64-2.16 4.8-4.8 4.8z\"\n })));\n};\nexport { SvgRadioField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE0IDE0IiByb2xlPSJpbWciIGZvY3VzYWJsZT0iZmFsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gNyw0IEMgNS4zMiw0IDQsNS4zMiA0LDcgNCw4LjY4IDUuMzIsMTAgNywxMCA4LjY4LDEwIDEwLDguNjggMTAsNyAxMCw1LjMyIDguNjgsNCA3LDQgWiBNIDcsMSBDIDMuNywxIDEsMy43IDEsNyBjIDAsMy4zIDIuNyw2IDYsNiAzLjMsMCA2LC0yLjcgNiwtNiBDIDEzLDMuNyAxMC4zLDEgNywxIFogTSA3LDExLjggQyA0LjM2LDExLjggMi4yLDkuNjQgMi4yLDcgMi4yLDQuMzYgNC4zNiwyLjIgNywyLjIgYyAyLjY0LDAgNC44LDIuMTYgNC44LDQuOCAwLDIuNjQgLTIuMTYsNC44IC00LjgsNC44IHoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRangeField = function SvgRangeField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 11h-3.184a2.982 2.982 0 0 0-5.632 0H3a1 1 0 0 0 0 2h9.184a2.982 2.982 0 0 0 5.632 0H21a1 1 0 0 0 0-2Zm-6 2a1 1 0 1 1 1-1 1.001 1.001 0 0 1-1 1Z\"\n })));\n};\nexport { SvgRangeField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggZD0iTTIxLDExSDE3LjgxNTczYTIuOTgyMDgsMi45ODIwOCwwLDAsMC01LjYzMTQ2LDBIM2ExLDEsMCwwLDAsMCwyaDkuMTg0MzNhMi45ODIsMi45ODIsMCwwLDAsNS42MzE0LDBIMjFhMSwxLDAsMCwwLDAtMlptLTYsMmExLDEsMCwxLDEsMS0xQTEuMDAxMywxLjAwMTMsMCwwLDEsMTUsMTNaIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSelect = function SvgSelect(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 4H1c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1zm-5 7H1V5h9v6zm3-2.6L11 7h4l-2 1.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1e72bd\",\n d: \"M2 6h1v4H2V6z\"\n })));\n};\nexport { SvgSelect as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8cGF0aCBkPSJNMTUgNGgtMTRjLTAuNiAwLTEgMC40LTEgMXY2YzAgMC42IDAuNCAxIDEgMWgxNGMwLjYgMCAxLTAuNCAxLTF2LTZjMC0wLjYtMC40LTEtMS0xek0xMCAxMWgtOXYtNmg5djZ6TTEzIDguNGwtMi0xLjRoNGwtMiAxLjR6Ij48L3BhdGg+CjxwYXRoIGZpbGw9IiMxZTcyYmQiIGQ9Ik0yIDZoMXY0aC0xdi00eiI+PC9wYXRoPgo8L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextField = function SvgTextField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 9h2v30H8v3h8v-3h-2V9h2V6H8zM4 16h3.021v-4H0v24h7.042v-4H4zM16.979 12v4H44v16H16.958v4H48V12z\"\n })));\n};\nexport { SvgTextField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjgsOSAxMCw5IDEwLDEyIDEwLDE2IDEwLDM5IDgsMzkgOCw0MiAxNiw0MiAxNiwzOSAxNCwzOSAxNCwxNiAxNCwxMiAxNCw5IDE2LDkgMTYsNiA4LDYgICIvPgoNPHBvbHlnb24gcG9pbnRzPSI0LDE2IDcuMDIxLDE2IDcuMDIxLDEyIDAsMTIgMCwzNiA3LjA0MiwzNiA3LjA0MiwzMiA0LDMyICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTYuOTc5LDEyIDE2Ljk3OSwxNiA0NCwxNiA0NCwzMiAxNi45NTgsMzIgMTYuOTU4LDM2IDQ4LDM2IDQ4LDEyICAiLz4KDTwvZz4KDTwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextareaField = function SvgTextareaField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 33h-2V3h2V0H8v3h2v30H8v3h8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.031 6v4H44v34H4V10h2.938V6H0v42h48V6z\"\n })));\n};\nexport { SvgTextareaField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjE2LDMzIDE0LDMzIDE0LDEwIDE0LDYgMTQsMyAxNiwzIDE2LDAgOCwwIDgsMyAxMCwzIDEwLDYgMTAsMTAgMTAsMzMgOCwzMyA4LDM2IDE2LDM2ICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTcuMDMxLDYgMTcuMDMxLDEwIDQ0LDEwIDQ0LDQ0IDQsNDQgNCwxMCA2LjkzOCwxMCA2LjkzOCw2IDAsNiAwLDQ4IDQ4LDQ4IDQ4LDYgICIvPgoNPC9nPgoNPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgUrlField = function SvgUrlField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.794 12.794c-.478.475-1.113.737-1.794.737s-1.316-.262-1.794-.738a2.54 2.54 0 0 1 0-3.584L5.5 6.916 4.084 5.5 1.791 7.794a4.54 4.54 0 0 0 .003 6.413c.853.855 1.99 1.324 3.206 1.324s2.353-.469 3.206-1.325l2.294-2.294L9.084 10.5l-2.29 2.294zm7.412-11C13.353.938 12.216.469 11 .469S8.647.938 7.794 1.794L5.5 4.084 6.916 5.5 9.21 3.206c.474-.475 1.109-.737 1.79-.737s1.316.263 1.794.737a2.537 2.537 0 0 1 0 3.584L10.5 9.084l1.416 1.416 2.294-2.294a4.54 4.54 0 0 0-.004-6.412zm-2.5 3.912L10.29 4.29l-6 6 1.416 1.416 6-6z\"\n })));\n};\nexport { SvgUrlField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgaWQ9Imljb24tYm91bmQiIGZpbGw9Im5vbmUiIC8+CiAgPHBhdGggZD0iTTYuNzk0LDEyLjc5NEM2LjMxNiwxMy4yNjksNS42ODEsMTMuNTMxLDUsMTMuNTMxcy0xLjMxNi0wLjI2Mi0xLjc5NC0wLjczOGMtMC45ODctMC45ODgtMC45ODctMi41OTcsMC0zLjU4NEw1LjUsNi45MTYgTDQuMDg0LDUuNUwxLjc5MSw3Ljc5NGMtMS43NjYsMS43NjktMS43NjYsNC42NDQsMC4wMDMsNi40MTNDMi42NDcsMTUuMDYyLDMuNzg0LDE1LjUzMSw1LDE1LjUzMXMyLjM1My0wLjQ2OSwzLjIwNi0xLjMyNSBsMi4yOTQtMi4yOTRMOS4wODQsMTAuNUw2Ljc5NCwxMi43OTR6IE0xNC4yMDYsMS43OTRDMTMuMzUzLDAuOTM4LDEyLjIxNiwwLjQ2OSwxMSwwLjQ2OVM4LjY0NywwLjkzOCw3Ljc5NCwxLjc5NEw1LjUsNC4wODQgTDYuOTE2LDUuNWwyLjI5NC0yLjI5NEM5LjY4NCwyLjczMSwxMC4zMTksMi40NjksMTEsMi40NjlzMS4zMTYsMC4yNjMsMS43OTQsMC43MzdjMC45ODgsMC45ODcsMC45ODgsMi41OTcsMCwzLjU4NEwxMC41LDkuMDg0IGwxLjQxNiwxLjQxNmwyLjI5NC0yLjI5NEMxNS45NzUsNi40MzgsMTUuOTc1LDMuNTYyLDE0LjIwNiwxLjc5NHogTTExLjcwNiw1LjcwNmwtMS40MTYtMS40MTZsLTYsNmwxLjQxNiwxLjQxNkwxMS43MDYsNS43MDZ6IiAvPgo8L3N2Zz4=\";","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst moreVertical = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\"\n })\n});\nexport default moreVertical;\n//# sourceMappingURL=more-vertical.js.map","import {\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport clsx from 'clsx';\n\nexport function getInputClassesAndStyles( attributes ) {\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst { name, type, advanced, hideLabel } = attributes;\n\n\tconst containerClass = clsx( {\n\t\t'missing-name': ! name,\n\t} );\n\n\tconst labelClass = clsx( {\n\t\thide: hideLabel,\n\t\t'textarea-label': 'textarea' === type,\n\t} );\n\n\tconst inputClass = clsx(\n\t\tborderProps.className,\n\t\tspacingProps.className,\n\t\tcolorProps.className,\n\t\t{\n\t\t\t'formello-advanced': advanced,\n\t\t}\n\t);\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...spacingProps.style,\n\t\t...colorProps.style,\n\t};\n\n\treturn {\n\t\tcontainerClass,\n\t\tlabelClass,\n\t\tinputClass,\n\t\tinputStyle,\n\t};\n}\n","import { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tInspectorAdvancedControls,\n\tBlockControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\n\nimport { useState, Fragment } from '@wordpress/element';\n\nimport { OptionsModal } from './modal';\nimport Label from '../../components/label';\nimport Toolbar from '../../components/field-options/toolbar';\nimport Options from '../../components/field-options';\nimport AdvancedOptions from '../../components/field-options/advanced';\nimport { getInputClassesAndStyles } from '../input/use-field-props';\n\nexport default function Edit( props ) {\n\tconst { attributes, setAttributes } = props;\n\tconst { name, options, showHelp, help, readonly, multiple, disabled } =\n\t\tattributes;\n\n\tconst [ isModalOpen, setModalOpen ] = useState( false );\n\n\tconst fieldProps = getInputClassesAndStyles( attributes );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: fieldProps.containerClass,\n\t} );\n\n\tconst selectedOpts = () => {\n\t\tconst selection = options\n\t\t\t.filter( ( x ) => true === x.selected )\n\t\t\t.map( ( x ) => x.value );\n\t\tif ( ! multiple ) {\n\t\t\treturn selection[ 0 ];\n\t\t}\n\t\treturn selection;\n\t};\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetModalOpen( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t{ isModalOpen && (\n\t\t\t\t {\n\t\t\t\t\t\tsetModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t
    \n\t);\n}\n","import { registerBlockType } from '@wordpress/blocks';\nimport Edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport { ReactComponent as Icon } from '../../../assets/icons/select.svg';\n\nimport './style.scss';\n\nregisterBlockType( metadata, {\n\t/**\n\t * An icon property should be specified to make it easier to identify a block.\n\t * These can be any of WordPress’ Dashicons, or a custom svg element.\n\t */\n\ticon: Icon,\n\n\t/**\n\t * @see ./edit.js\n\t */\n\tedit: Edit,\n\n\t/**\n\t * @see ./save.js\n\t */\n\tsave,\n} );\n","import { Fragment, useState } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\n\nimport {\n\tToggleControl,\n\tTextareaControl,\n\tButton,\n\tModal,\n} from '@wordpress/components';\n\nimport OptionsList from './opts';\n\nexport function OptionsModal( props ) {\n\tconst { onRequestClose, attributes, setAttributes } = props;\n\n\tconst [ showRaw, setShowRaw ] = useState( false );\n\tconst [ showValue, setShowValue ] = useState( false );\n\n\tconst addNewRow = () => {\n\t\tsetAttributes( {\n\t\t\toptions: [ ...attributes.options, { label: '', value: '' } ],\n\t\t} );\n\t};\n\n\tconst deleteRow = ( record, index ) => {\n\t\tconst items = [ ...attributes.options ]; // make a separate copy of the array\n\t\titems.splice( index, 1 );\n\t\tsetAttributes( { options: items } );\n\t};\n\n\tconst handleChange = ( value, index, prop ) => {\n\t\t// 1. Make a shallow copy of the items\n\t\tconst items = [ ...attributes.options ];\n\t\t// 2. Make a shallow copy of the item you want to mutate\n\t\tconst item = { ...attributes.options[ index ] };\n\t\t// 3. Replace the property you're intested in\n\t\titem[ prop ] = value;\n\t\t// 4. Put it back into our array. N.B. we *are* mutating the array here, but that's why we made a copy first\n\t\titems[ index ] = item;\n\t\t// 5. Set the state to our new copy\n\t\tsetAttributes( { options: items } );\n\t};\n\n\tconst changeOrder = ( items ) => {\n\t\tsetAttributes( { options: items } );\n\t};\n\n\tconst bulkOpts = ( val ) => {\n\t\tconst opts = val.match( /[^\\r\\n]+/g );\n\t\tconst newSettings = [];\n\t\tfor ( const i in opts ) {\n\t\t\tconst tmp = opts[ i ].split( ',' );\n\t\t\tnewSettings.push( {\n\t\t\t\tvalue: tmp[ 0 ],\n\t\t\t\tlabel: tmp[ 1 ] ? tmp[ 1 ] : tmp[ 0 ],\n\t\t\t} );\n\t\t}\n\t\tsetAttributes( { options: newSettings } );\n\t};\n\n\treturn (\n\t\t\n\t\t\t
    \n\t\t\t\t setShowRaw( newval ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\n\t\t\t\t{ showRaw && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\t\treturn item.value + ',' + item.label;\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t.join( '\\r\\n' ) }\n\t\t\t\t\t\tonChange={ ( val ) => bulkOpts( val ) }\n\t\t\t\t\t\trows=\"6\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! showRaw && (\n\t\t\t\t\t\n\t\t\t\t\t\t setShowValue( newval ) }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAdd option\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t) }\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n","import {\n\tTextControl,\n\tCheckboxControl,\n\tFlex,\n\tFlexItem,\n\tButton,\n\tTooltip,\n} from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\nconst OptionsList = ( props ) => {\n\tconst { options, onChange, showValue, deleteRow } = props;\n\tconst dragItem = useRef();\n\tconst dragOverItem = useRef();\n\n\tconst dragStart = ( e, position ) => {\n\t\tdragItem.current = position;\n\t};\n\n\tconst dragEnter = ( e, position ) => {\n\t\tdragOverItem.current = position;\n\t};\n\n\tconst drop = () => {\n\t\tconst copyListItems = [ ...options ];\n\t\tconst dragItemContent = copyListItems[ dragItem.current ];\n\t\tcopyListItems.splice( dragItem.current, 1 );\n\t\tcopyListItems.splice( dragOverItem.current, 0, dragItemContent );\n\t\tdragItem.current = null;\n\t\tdragOverItem.current = null;\n\t\tprops.changeOrder( copyListItems );\n\t};\n\n\treturn options.map( ( obj, index ) => {\n\t\treturn (\n\t\t\t dragStart( e, index ) }\n\t\t\t\tonDragEnter={ ( e ) => dragEnter( e, index ) }\n\t\t\t\tonDragEnd={ drop }\n\t\t\t\tdraggable\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tonChange( val, index, 'selected' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{ showValue && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tonChange( val, index, 'value' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tonChange( val, index, 'label' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t deleteRow( obj, index ) }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} );\n};\nexport default OptionsList;\n","/* eslint-disable jsx-a11y/label-has-associated-control */\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\nimport { SUPPORTED_ATTRIBUTES } from '../../components/field-options/constants';\nimport { getInputClassesAndStyles } from '../input/use-field-props';\n\nexport default function save( { attributes } ) {\n\tconst { label, options, required, requiredText, showHelp, help } =\n\t\tattributes;\n\n\tconst fieldProps = getInputClassesAndStyles( attributes );\n\n\tconst blockProps = useBlockProps.save();\n\n\t// include only supported attributes\n\tconst htmlAttrs = Object.fromEntries(\n\t\tSUPPORTED_ATTRIBUTES.select.map( ( col ) => [ col, attributes[ col ] ] )\n\t);\n\n\tconst selectedOpts = options\n\t\t.filter( ( x ) => true === x.selected )\n\t\t.map( ( x ) => x.value );\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\t{ options.map( ( opt, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t 0 ? opt.label : '' }\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tselected={ opt.selected }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ opt.label }\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\n\t\t\t{ showHelp && }\n\t\t
    \n\t);\n}\n","import { __ } from '@wordpress/i18n';\n\nimport { ToggleControl, TextControl, withFilters } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nimport { createBlocksFromInnerBlocksTemplate } from '@wordpress/blocks';\n\nimport { Fragment } from '@wordpress/element';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\n\nfunction AdvancedOptions( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\ttype,\n\t\t\tdisabled,\n\t\t\tenableAutoComplete,\n\t\t\tautocomplete,\n\t\t\treadonly,\n\t\t\tadvanced,\n\t\t},\n\t\tsetAttributes,\n\t\tfieldType,\n\t\tclientId,\n\t} = props;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ fieldType ];\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn !! ( block && block.innerBlocks.length );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\tconst addOutput = () => {\n\t\tlet child = 'formello/button';\n\t\tif ( 'range' === type ) {\n\t\t\tchild = 'formello/output';\n\t\t}\n\t\treplaceInnerBlocks(\n\t\t\tprops.clientId,\n\t\t\tcreateBlocksFromInnerBlocksTemplate( [ [ child ] ] ),\n\t\t\ttrue\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t{ supported.includes( 'cols' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { advanced: newval } )\n\t\t\t\t\t}\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ supported.includes( 'autocomplete' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { enableAutoComplete: newval } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __( 'Hint for form autofill feature.', 'formello' ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ enableAutoComplete && supported.includes( 'autocomplete' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { autocomplete: newval } )\n\t\t\t\t\t}\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'range' === type && (\n\t\t\t\t {\n\t\t\t\t\t\tif ( newval ) {\n\t\t\t\t\t\t\tsetAttributes( { withOutput: true } );\n\t\t\t\t\t\t\taddOutput();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetAttributes( { withOutput: false } );\n\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [], true );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { disabled: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Make the control not accept clicks.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { readonly: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __( 'Make value not editable.', 'formello' ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t);\n}\n\nexport default withFilters( 'formello.advancedOptions' )( AdvancedOptions );\n","export const SUPPORTED_ATTRIBUTES = {\n\thidden: [ 'name', 'id', 'type', 'value' ],\n\ttext: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\ttel: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\turl: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\temail: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'autocomplete',\n\t],\n\tpassword: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'pattern',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'autocomplete',\n\t],\n\tnumber: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\tdate: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\ttime: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\trange: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\tcheckbox: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'checked',\n\t],\n\tradio: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'checked',\n\t],\n\tfile: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'required',\n\t\t'disabled',\n\t\t'accept',\n\t\t'capture',\n\t\t'multiple',\n\t],\n\tcolor: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t],\n\ttextarea: [\n\t\t'name',\n\t\t'id',\n\t\t'required',\n\t\t'value',\n\t\t'type', // hack to use one component\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'cols',\n\t\t'rows',\n\t],\n\tselect: [ 'name', 'id', 'required', 'readonly', 'disabled', 'multiple' ],\n};\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tButton,\n} from '@wordpress/components';\n\nimport { Fragment } from '@wordpress/element';\nimport MergeTags from '../merge-tags';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\n\nconst sanitizedName = ( content ) => {\n\treturn (\n\t\tcontent\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '_' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function Options( props ) {\n\tconst { attributes, setAttributes, clientId, setModalOpen, fieldType } =\n\t\tprops;\n\n\tconst {\n\t\ttype,\n\t\tname,\n\t\tvalue,\n\t\tplaceholder,\n\t\trequired,\n\t\tmultiple,\n\t\tchecked,\n\t\tshowHelp,\n\t\tadvanced,\n\t} = attributes;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ fieldType ];\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { name: sanitizedName( val ) } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" attribute of the input element, and is used as a name for the form submission results.',\n\t\t\t\t\t\t'formello'\n\t\t\t\t\t) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t\t{ supported.includes( 'value' ) && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { value: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The initial value of the control field.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'placeholder' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { placeholder: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Text that appears in the form control when it has no value set.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'required' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { required: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'multiple' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { multiple: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'checked' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { checked: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! ( 'hidden' === type ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { showHelp: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ 'select' === fieldType && (\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetAttributes( { advanced: val } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetModalOpen( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage Options', 'formello' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { __ } from '@wordpress/i18n';\nimport { SVG, Rect, ToolbarButton } from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport { Asterisk } from '../../icons/icons';\n\nexport default function Toolbar( props ) {\n\tconst { attributes, setAttributes, name } = props;\n\tconst { required, showHelp, hideLabel, type } = attributes;\n\n\tconst toggleLabel = (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\tsetAttributes( { required: ! required } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ ( 'checkbox' || 'radio' ) !== type && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { hideLabel: ! hideLabel } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'formello/multichoices' !== name && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { showHelp: ! showHelp } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { RichText, store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nimport clsx from 'clsx';\n\nexport default function Label( { attributes, setAttributes, context } ) {\n\tconst {\n\t\tlabelClass,\n\t\tlabelAlign,\n\t\tlabelVAlign,\n\t\thideLabel,\n\t\trequired,\n\t\tmultiple,\n\t\ttype,\n\t\tlabel,\n\t} = attributes;\n\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t\tisPreview: getSettings().__unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\n\tconst [ meta ] = useEntityProp(\n\t\t'postType',\n\t\t'formello_form',\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tconst labelClassName = clsx(\n\t\t'label-div',\n\t\tlabelClass,\n\t\tlabelAlign,\n\t\tlabelVAlign,\n\t\t{\n\t\t\thide: hideLabel,\n\t\t\trequired,\n\t\t\t'textarea-label': multiple || 'textarea' === type,\n\t\t}\n\t);\n\n\treturn (\n\t\t
    \n\t\t\t {\n\t\t\t\t\tsetAttributes( { label: val } );\n\t\t\t\t} }\n\t\t\t\tplaceholder={ __( 'Enter label…', 'formello' ) }\n\t\t\t\tallowedFormats={ [ 'core/bold', 'core/italic', 'core/link' ] }\n\t\t\t/>\n\n\t\t\t{ required && (\n\t\t\t\t\n\t\t\t\t\t{ context[ 'formello/requiredText' ] || '*' }\n\t\t\t\t\n\t\t\t) }\n\t\t
    \n\t);\n}\n","import { applyFilters } from '@wordpress/hooks';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nconst allowed = [\n\t'formello/input',\n\t'formello/select',\n\t'formello/textarea',\n\t'formello/multichoices',\n];\n\n/**\n * Find the input fields blocks IDS.\n */\nexport function getFieldsBlock() {\n\tconst fields = [];\n\tconst inputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/input' );\n\tconst textareas =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/textarea' );\n\tconst selects =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/select' );\n\tconst outputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/output' );\n\tconst multichoices = select( blockEditorStore ).getBlocksByName(\n\t\t'formello/multichoices'\n\t);\n\n\tconst fieldsId = inputs.concat( textareas, selects, outputs, multichoices );\n\n\tfieldsId.forEach( ( b ) => {\n\t\tconst block = select( blockEditorStore ).getBlock( b );\n\t\tif ( allowed.includes( block.name ) ) {\n\t\t\tfields.push( block );\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Validate form before saving\n */\nexport function validate() {\n\tconst fields = {\n\t\tnames: [],\n\t\tbuttons:\n\t\t\tselect( blockEditorStore ).getBlocksByName( 'formello/button' ),\n\t};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.names.push( b.attributes.name );\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Get fields type.\n */\nexport function getFieldsType() {\n\tconst fields = {};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\t// get block type by name\n\t\tlet type = b.name.split( '/' )[ 1 ];\n\t\tif ( 'input' === type ) {\n\t\t\ttype = b.attributes.type;\n\t\t}\n\n\t\tfields[ b.attributes.name ] = type;\n\t\tif ( b.attributes.advanced && 'textarea' === 'textarea' ) {\n\t\t\tfields[ b.attributes.name ] = 'richtext';\n\t\t}\n\t\tif ( b.attributes.multiple && 'select' === type ) {\n\t\t\tfields[ b.attributes.name ] = type + '-multiple';\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFields() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\ttitle: b.attributes.name,\n\t\t\ttag: '{{fields.' + b.attributes.name + '}}',\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFieldsName() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\tlabel: b.attributes.name,\n\t\t\tvalue: b.attributes.name,\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function getFieldsTags() {\n\tconst fields = serializeFields();\n\n\treturn [\n\t\t{\n\t\t\ttitle: 'All Data',\n\t\t\ttag: '{{fields.all_data}}',\n\t\t},\n\t\t...fields,\n\t];\n}\n\nexport function getConstraints() {\n\tconst constraints = {};\n\tconst fields = getFieldsBlock();\n\n\tif ( fields ) {\n\t\tfields.forEach( ( b ) => {\n\t\t\tconst constraint = getFieldConstraint( b );\n\t\t\tlet name = b.attributes.name;\n\n\t\t\tif ( b.attributes.multiple ) {\n\t\t\t\tname += '.*';\n\t\t\t}\n\t\t\tif ( constraint ) {\n\t\t\t\tconstraints[ name ] = constraint;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn constraints;\n}\n\nexport function getFieldConstraint( field ) {\n\tlet constraints = [];\n\n\tif ( field.attributes.type === 'url' ) {\n\t\tconstraints.push( 'url' );\n\t}\n\n\tif ( field.attributes.required ) {\n\t\tconstraints.push( 'required' );\n\t}\n\n\tif ( field.attributes.minlength ) {\n\t\tconstraints.push( 'minlength:' + field.attributes.minlength );\n\t}\n\n\tif ( field.attributes.maxlength ) {\n\t\tconstraints.push( 'maxlength:' + field.attributes.maxlength );\n\t}\n\n\tif ( field.attributes.min && 'date' !== field.attributes.type ) {\n\t\tconstraints.push( 'min:' + field.attributes.min );\n\t}\n\n\tif (\n\t\tfield.attributes.max &&\n\t\t'date' !== field.attributes.type &&\n\t\t'file' !== field.attributes.type\n\t) {\n\t\tconstraints.push( 'max:' + field.attributes.max );\n\t}\n\n\tif ( field.attributes.type === 'email' ) {\n\t\tconstraints.push( 'email' );\n\t}\n\n\tif (\n\t\tfield.attributes.type === 'number' ||\n\t\tfield.attributes.type === 'range'\n\t) {\n\t\tconstraints.push( 'numeric' );\n\t}\n\n\tif ( 'date' === field.attributes.type && ! field.attributes.advanced ) {\n\t\tconstraints.push( 'date' );\n\t}\n\n\tif ( field.attributes.pattern ) {\n\t\tconst regEx = new RegExp( field.attributes.pattern );\n\t\tconstraints.push( 'regex:' + regEx );\n\t}\n\n\tif ( field.attributes.enableMismatch && '' !== field.attributes.match ) {\n\t\tconstraints.push( 'same:' + field.attributes.match );\n\t}\n\n\tapplyFilters( 'formello.constraints', constraints, field );\n\n\tif ( constraints.length ) {\n\t\tconstraints = constraints.join( '|' );\n\t}\n\n\treturn constraints.length ? constraints : undefined;\n}\n\nexport function getMetaTags() {\n\tconst postType = select( 'core/editor' ).getCurrentPostType();\n\tconst postId = select( 'core/editor' ).getCurrentPostId();\n\n\tconst [ meta ] = useEntityProp( 'postType', postType, 'meta', postId );\n\tconst metaTags = [];\n\n\tfor ( const key in meta ) {\n\t\tif ( meta[ key ] !== Object( key ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst tag = {\n\t\t\ttitle: key,\n\t\t\ttag: `{{meta.${ key }}}`,\n\t\t};\n\t\tmetaTags.push( tag );\n\t}\n\n\treturn metaTags;\n}\n\nexport function getWordpressTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Post ID',\n\t\t\ttag: `{{wp.post_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Title',\n\t\t\ttag: `{{wp.post_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post URL',\n\t\t\ttag: `{{wp.post_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author',\n\t\t\ttag: `{{wp.post_author}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author Email',\n\t\t\ttag: `{{wp.post_author_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User ID',\n\t\t\ttag: `{{wp.user_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User First Name',\n\t\t\ttag: `{{wp.user_first_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Last Name',\n\t\t\ttag: `{{wp.user_last_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Display Name',\n\t\t\ttag: `{{wp.user_display_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Username',\n\t\t\ttag: `{{wp.user_username}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Email',\n\t\t\ttag: `{{wp.user_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User URL',\n\t\t\ttag: `{{wp.user_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site Title',\n\t\t\ttag: `{{wp.site_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site URL',\n\t\t\ttag: `{{wp.site_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Admin Email',\n\t\t\ttag: `{{wp.admin_email}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getFormTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Form ID',\n\t\t\ttag: `{{form.form_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Form Label',\n\t\t\ttag: `{{form.form_name}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getOtherTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Date',\n\t\t\ttag: `{{other.system_date}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Time',\n\t\t\ttag: `{{other.system_time}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Referrer URL',\n\t\t\ttag: `{{other.referrer}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User IP',\n\t\t\ttag: `{{other.user_ip}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getPatternTabs() {\n\tconst passwords = [\n\t\t{\n\t\t\ttitle: 'Password',\n\t\t\ttag: `^(?=.*[A-Za-z])(?=.*\\\\d)[A-Za-z\\\\d]{8,}$`,\n\t\t\tdescription: 'One uppercase, one number, at least 8 chars',\n\t\t},\n\t\t{\n\t\t\ttitle: 'Password with special characters',\n\t\t\ttag: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$`,\n\t\t\tdescription:\n\t\t\t\t'One uppercase, one number, one special chars, at least 8 chars',\n\t\t},\n\t];\n\n\tconst dates = [\n\t\t{\n\t\t\ttitle: 'dd/mm/yyyy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{4}$',\n\t\t},\n\t\t{\n\t\t\ttitle: 'dd/mm/yy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{2}$',\n\t\t},\n\t];\n\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'passwords',\n\t\t\ttitle: 'Passwords',\n\t\t\tdata: passwords,\n\t\t},\n\t\t{\n\t\t\tname: 'dates',\n\t\t\ttitle: 'Dates',\n\t\t\tdata: dates,\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport {\n\tBaseControl,\n\tDropdownMenu,\n\t__experimentalInputControl as InputControl,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { defaultTabs } from './use-tabs';\nimport TabContent from './tab-content';\n\nexport default function MergeTags( props ) {\n\tconst {\n\t\tlabel,\n\t\tvalue,\n\t\tplaceholder,\n\t\thelp,\n\t\tonChange,\n\t\ticon = moreVertical,\n\t\tclientId,\n\t\ttabs = defaultTabs( clientId ),\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) }\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t\n\t);\n}\n\nexport function MergeTagsMenu( props ) {\n\tconst { label, onChange, icon = moreVertical, clientId } = props;\n\n\tconst tabs = defaultTabs( clientId );\n\n\treturn (\n\t\t\n\t\t\t{ () => }\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { SearchControl, TabPanel, MenuItem } from '@wordpress/components';\nimport { useState, Fragment } from '@wordpress/element';\n\nexport default function TabContent( { tabs, onChange } ) {\n\tconst [ searchInput, setSearchInput ] = useState( '' );\n\n\tconst filterAddon = ( element ) => {\n\t\tif ( '' === searchInput ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn (\n\t\t\telement.title.toLowerCase().search( searchInput.toLowerCase() ) !==\n\t\t\t-1\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ ( tab ) =>\n\t\t\t\t\ttab.data\n\t\t\t\t\t\t.filter( ( element ) => {\n\t\t\t\t\t\t\treturn filterAddon( element );\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.map( ( data ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t onChange( data.tag ) }\n\t\t\t\t\t\t\t\t\tinfo={ data.description }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ data.title }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n}\n","import {\n\tgetFieldsTags,\n\tgetWordpressTags,\n\tgetOtherTags,\n\tgetMetaTags,\n} from './functions';\n\nexport function defaultTabs( clientId ) {\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'fields',\n\t\t\ttitle: 'Fields',\n\t\t\tdata: getFieldsTags( clientId ),\n\t\t},\n\t\t{\n\t\t\tname: 'wordpress',\n\t\t\ttitle: 'WordPress',\n\t\t\tdata: getWordpressTags(),\n\t\t},\n\t\t{\n\t\t\tname: 'other',\n\t\t\ttitle: 'Other',\n\t\t\tdata: getOtherTags(),\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","import { ReactComponent as Asterisk } from '../../assets/icons/asterisk.svg';\nimport { ReactComponent as Checkbox } from '../../assets/icons/checkbox.svg';\nimport { ReactComponent as Calendar } from '../../assets/icons/date-field.svg';\nimport { ReactComponent as Checkboxes } from '../../assets/icons/checkboxes.svg';\nimport { ReactComponent as Clock } from '../../assets/icons/clock-field.svg';\nimport { ReactComponent as Color } from '../../assets/icons/color-field.svg';\nimport { ReactComponent as Email } from '../../assets/icons/email-field.svg';\nimport { ReactComponent as Fieldset } from '../../assets/icons/fieldset.svg';\nimport { ReactComponent as Form } from '../../assets/icons/form.svg';\nimport { ReactComponent as GDPR } from '../../assets/icons/gdpr-field.svg';\nimport { ReactComponent as Hidden } from '../../assets/icons/hidden-field.svg';\nimport { ReactComponent as Input } from '../../assets/icons/text-field.svg';\nimport { ReactComponent as Logo } from '../../assets/icons/logo.svg';\nimport { ReactComponent as Number } from '../../assets/icons/number-field.svg';\nimport { ReactComponent as Password } from '../../assets/icons/password-field.svg';\nimport { ReactComponent as Range } from '../../assets/icons/range-field.svg';\nimport { ReactComponent as Radio } from '../../assets/icons/radio-field.svg';\nimport { ReactComponent as Radios } from '../../assets/icons/radio-buttons.svg';\nimport { ReactComponent as Select } from '../../assets/icons/select.svg';\nimport { ReactComponent as Tel } from '../../assets/icons/phone-field.svg';\nimport { ReactComponent as Textarea } from '../../assets/icons/textarea-field.svg';\nimport { ReactComponent as Url } from '../../assets/icons/url-field.svg';\n\nexport {\n\tAsterisk,\n\tCheckbox,\n\tCheckboxes,\n\tClock,\n\tColor,\n\tEmail,\n\tFieldset,\n\tForm,\n\tGDPR,\n\tHidden,\n\tInput,\n\tLogo,\n\tNumber,\n\tPassword,\n\tRadio,\n\tRange,\n\tRadios,\n\tSelect,\n\tTel,\n\tTextarea,\n\tUrl,\n\tCalendar,\n};\n","// extracted by mini-css-extract-plugin\nexport {};","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"hooks\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"primitives\"];","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"blocks/select/index\": 0,\n\t\"blocks/select/style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkformello\"] = self[\"webpackChunkformello\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"blocks/select/style-index\"], () => (__webpack_require__(\"./src/blocks/select/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetSpacingClassesAndStyles","getSpacingClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","clsx","getInputClassesAndStyles","attributes","borderProps","spacingProps","colorProps","name","type","advanced","hideLabel","containerClass","labelClass","hide","inputClass","className","inputStyle","style","__","InspectorControls","InspectorAdvancedControls","BlockControls","RichText","useBlockProps","ToolbarButton","ToolbarGroup","useState","Fragment","OptionsModal","Label","Toolbar","Options","AdvancedOptions","jsx","_jsx","jsxs","_jsxs","Edit","props","setAttributes","options","showHelp","help","readonly","multiple","disabled","isModalOpen","setModalOpen","fieldProps","blockProps","selectedOpts","selection","filter","x","selected","map","value","children","label","icon","onClick","fieldType","readOnly","defaultValue","opt","index","tagName","onChange","val","placeholder","allowedFormats","onRequestClose","registerBlockType","save","metadata","ReactComponent","Icon","edit","ToggleControl","TextareaControl","Button","Modal","OptionsList","showRaw","setShowRaw","showValue","setShowValue","addNewRow","deleteRow","record","items","splice","handleChange","prop","item","changeOrder","bulkOpts","opts","match","newSettings","i","tmp","split","push","title","size","shouldCloseOnClickOutside","checked","newval","__nextHasNoMarginBottom","join","rows","variant","TextControl","CheckboxControl","Flex","FlexItem","Tooltip","useRef","dragItem","dragOverItem","dragStart","e","position","current","dragEnter","drop","copyListItems","dragItemContent","obj","justify","onDragStart","onDragEnter","onDragEnd","draggable","text","delay","isSmall","iconSize","SUPPORTED_ATTRIBUTES","required","requiredText","htmlAttrs","Object","fromEntries","select","col","Content","withFilters","useSelect","useDispatch","store","blockEditorStore","createBlocksFromInnerBlocksTemplate","enableAutoComplete","autocomplete","clientId","supported","hasInnerBlocks","getBlock","block","innerBlocks","length","replaceInnerBlocks","addOutput","child","includes","withOutput","hidden","tel","url","email","password","number","date","time","range","checkbox","radio","file","color","textarea","PanelBody","MergeTags","sanitizedName","content","replace","toLowerCase","initialOpen","SVG","Rect","Asterisk","toggleLabel","xmlns","viewBox","y","width","height","transform","stroke","fill","strokeWidth","isPressed","useEntityProp","context","labelAlign","labelVAlign","postType","postId","getSettings","getCurrentPostType","getCurrentPostId","isPreview","__unstableIsPreviewMode","meta","labelClassName","htmlFor","applyFilters","allowed","getFieldsBlock","fields","inputs","getBlocksByName","textareas","selects","outputs","multichoices","fieldsId","concat","forEach","b","validate","names","buttons","fieldsBlock","getFieldsType","serializeFields","tag","serializeFieldsName","getFieldsTags","getConstraints","constraints","constraint","getFieldConstraint","field","minlength","maxlength","min","max","pattern","regEx","RegExp","enableMismatch","undefined","getMetaTags","metaTags","key","getWordpressTags","tags","getFormTags","getOtherTags","getPatternTabs","passwords","description","dates","tabs","data","BaseControl","DropdownMenu","__experimentalInputControl","InputControl","moreVertical","defaultTabs","TabContent","suffix","toggleProps","MergeTagsMenu","SearchControl","TabPanel","MenuItem","searchInput","setSearchInput","filterAddon","element","search","tab","info","Checkbox","Calendar","Checkboxes","Clock","Color","Email","Fieldset","Form","GDPR","Hidden","Input","Logo","Number","Password","Range","Radio","Radios","Select","Tel","Textarea","Url"],"sourceRoot":""} \ No newline at end of file diff --git a/build/blocks/select/render.php b/build/blocks/select/render.php index 7031d4c5..2ddb3270 100644 --- a/build/blocks/select/render.php +++ b/build/blocks/select/render.php @@ -8,6 +8,11 @@ * $block (WP_Block): The block instance. * * @see https://github.com/WordPress/gutenberg/blob/trunk/docs/reference-guides/block-api/block-metadata.md#render + * @link https://www.francescopepe.com + * @since 1.0.0 + * + * @package Formello + * @subpackage Formello/includes */ $p = new \WP_HTML_Tag_Processor( $content ); @@ -20,6 +25,23 @@ if ( $p->next_tag( array( 'tag_name' => 'select' ) ) ) { $p->set_attribute( 'id', $unique_id ); + if ( $p->get_attribute( 'multiple' ) ) { + $p->set_attribute( 'name', $p->get_attribute( 'name' ) . '[]' ); + } + if ( $p->has_class( 'formello-advanced' ) ) { + $p->set_attribute( 'autocomplete', 'off' ); + wp_enqueue_script( + 'tom-select', + 'https://cdn.jsdelivr.net/npm/tom-select@2.3.1/dist/js/tom-select.complete.min.js', + array(), + false, // phpcs:ignore + array( + 'strategy' => 'defer', + ) + ); + // phpcs:ignore + wp_enqueue_style( 'tom-select', 'https://cdn.jsdelivr.net/npm/tom-select@2.3.1/dist/css/tom-select.css' ); + } } echo $p->get_updated_html(); diff --git a/build/blocks/textarea/block.json b/build/blocks/textarea/block.json index 5d1d6f3b..4e7a728a 100644 --- a/build/blocks/textarea/block.json +++ b/build/blocks/textarea/block.json @@ -6,6 +6,9 @@ "ancestor": [ "formello/form" ], + "usesContext": [ + "formello/requiredText" + ], "description": "Textarea field.", "category": "formello", "textdomain": "formello", diff --git a/build/blocks/textarea/index.asset.php b/build/blocks/textarea/index.asset.php index 437fdf0e..8bbb76ff 100644 --- a/build/blocks/textarea/index.asset.php +++ b/build/blocks/textarea/index.asset.php @@ -1 +1 @@ - array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => 'a345ffdfc7278c32884d'); + array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-primitives'), 'version' => 'c723a54ac8336669bec7'); diff --git a/build/blocks/textarea/index.js b/build/blocks/textarea/index.js index 6ac6acd0..66ab6d03 100644 --- a/build/blocks/textarea/index.js +++ b/build/blocks/textarea/index.js @@ -781,8 +781,7 @@ function getInputClassesAndStyles(attributes) { 'textarea-label': 'textarea' === type }); const inputClass = (0,clsx__WEBPACK_IMPORTED_MODULE_1__["default"])(borderProps.className, spacingProps.className, colorProps.className, { - 'formello-advanced': advanced, - 'formello-rtf': advanced && 'textarea' === type + 'formello-advanced': advanced }); const inputStyle = { ...borderProps.style, @@ -848,9 +847,7 @@ function Edit(props) { value, placeholder, showHelp, - help, - advanced, - name + help } = attributes; const supported = _components_field_options_constants__WEBPACK_IMPORTED_MODULE_9__.SUPPORTED_ATTRIBUTES.textarea; const fieldProps = (0,_input_use_field_props__WEBPACK_IMPORTED_MODULE_10__.getInputClassesAndStyles)(attributes); @@ -1348,7 +1345,8 @@ function Options(props) { required, multiple, checked, - showHelp + showHelp, + advanced } = attributes; const supported = _constants__WEBPACK_IMPORTED_MODULE_4__.SUPPORTED_ATTRIBUTES[fieldType]; return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Fragment, { @@ -1409,14 +1407,23 @@ function Options(props) { showHelp: newval }), __nextHasNoMarginBottom: true - }), 'select' === fieldType && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Fragment, { - children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { + }), 'select' === fieldType && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Fragment, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToggleControl, { + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Advanced', 'formello'), + checked: advanced, + onChange: val => { + setAttributes({ + advanced: val + }); + }, + __nextHasNoMarginBottom: true + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Button, { variant: 'primary', onClick: () => { setModalOpen(true); }, children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Manage Options', 'formello') - }) + })] })] }) }); @@ -1456,7 +1463,8 @@ __webpack_require__.r(__webpack_exports__); function Toolbar(props) { const { attributes, - setAttributes + setAttributes, + name } = props; const { required, @@ -1503,7 +1511,7 @@ function Toolbar(props) { hideLabel: !hideLabel }); } - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton, { + }), 'formello/multichoices' !== name && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton, { label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Show help message', 'formello'), icon: 'editor-help', isPressed: showHelp, @@ -1579,8 +1587,8 @@ function ValidationOptions(props) { return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.PanelBody, { title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Validation', 'formello'), initialOpen: false, - children: ['date' === type && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.ToggleControl, { - label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Advanced Date', 'formello'), + children: [('date' === type || 'tel' === type) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.ToggleControl, { + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Advanced', 'formello'), checked: advanced, onChange: val => { setAttributes({ @@ -1869,7 +1877,7 @@ function getFieldsType() { type = b.attributes.type; } fields[b.attributes.name] = type; - if (b.attributes.enableRtf) { + if (b.attributes.advanced && 'textarea' === 'textarea') { fields[b.attributes.name] = 'richtext'; } if (b.attributes.multiple && 'select' === type) { @@ -2212,7 +2220,8 @@ function TabContent({ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.SearchControl, { value: searchInput, - onChange: setSearchInput + onChange: setSearchInput, + __nextHasNoMarginBottom: true }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.TabPanel, { tabs: tabs, children: tab => tab.data.filter(element => { @@ -2483,7 +2492,7 @@ function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else i \****************************************/ /***/ ((module) => { -module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"formello/textarea","title":"Textarea","ancestor":["formello/form"],"description":"Textarea field.","category":"formello","textdomain":"formello","attributes":{"id":{"type":"string","source":"attribute","selector":"textarea","attribute":"id"},"name":{"type":"string","source":"attribute","selector":"textarea","attribute":"name"},"label":{"type":"string","source":"html","selector":"label span:not(.required)","default":"My textarea"},"hideLabel":{"type":"boolean","selector":"label.hide","default":false},"placeholder":{"type":"string","source":"attribute","selector":"textarea","attribute":"placeholder","default":""},"value":{"type":"string","source":"text","selector":"textarea","default":""},"validation":{"type":"string","source":"attribute","selector":"textarea","attribute":"data-bouncer-message","default":""},"enableMismatch":{"type":"boolean","default":false},"mismatchMessage":{"type":"string","source":"attribute","selector":"textarea","attribute":"data-bouncer-mismatch-message","default":""},"match":{"type":"string","source":"attribute","selector":"textarea","attribute":"data-bouncer-match","default":""},"required":{"type":"boolean","source":"attribute","selector":"textarea","attribute":"required","default":false},"autocomplete":{"enum":["on","off"],"source":"attribute","selector":"textarea","attribute":"autocomplete","default":"off"},"requiredText":{"type":"string","source":"text","selector":"label span.required","default":"*"},"disabled":{"type":"boolean","source":"attribute","selector":"textarea","attribute":"disabled","default":false},"readonly":{"type":"boolean","source":"attribute","selector":"textarea","attribute":"readonly","default":false},"showHelp":{"type":"boolean","default":false},"help":{"type":"string","source":"html","selector":"small","default":""},"cols":{"type":"string","source":"attribute","selector":"textarea","attribute":"cols"},"rows":{"type":"string","source":"attribute","selector":"textarea","attribute":"rows"},"minlength":{"type":"string","source":"attribute","selector":"textarea","attribute":"minlength"},"maxlength":{"type":"string","source":"attribute","selector":"textarea","attribute":"maxlength"},"pattern":{"type":"string","source":"attribute","selector":"textarea","attribute":"pattern"},"advanced":{"type":"boolean","selector":"textarea.formello-rft"}},"supports":{"html":false,"inserter":true,"reusable":false,"color":{"background":true,"text":true,"__experimentalSkipSerialization":true},"spacing":{"padding":true,"__experimentalSkipSerialization":true},"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true,"__experimentalSkipSerialization":true,"__experimentalDefaultControls":{"color":true,"radius":true,"style":true,"width":true}}},"selectors":{"root":".wp-block-formello-textarea","color":{"background":".wp-block-formello-textarea > textarea","text":".wp-block-formello-textarea"},"spacing":{"root":".wp-block-formello-textarea","padding":".wp-block-formello-textarea > textarea"},"border":{"root":".wp-block-formello-textarea > textarea"}},"editorScript":"file:./index.js","style":"file:./style-index.css","render":"file:./render.php"}'); +module.exports = JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"formello/textarea","title":"Textarea","ancestor":["formello/form"],"usesContext":["formello/requiredText"],"description":"Textarea field.","category":"formello","textdomain":"formello","attributes":{"id":{"type":"string","source":"attribute","selector":"textarea","attribute":"id"},"name":{"type":"string","source":"attribute","selector":"textarea","attribute":"name"},"label":{"type":"string","source":"html","selector":"label span:not(.required)","default":"My textarea"},"hideLabel":{"type":"boolean","selector":"label.hide","default":false},"placeholder":{"type":"string","source":"attribute","selector":"textarea","attribute":"placeholder","default":""},"value":{"type":"string","source":"text","selector":"textarea","default":""},"validation":{"type":"string","source":"attribute","selector":"textarea","attribute":"data-bouncer-message","default":""},"enableMismatch":{"type":"boolean","default":false},"mismatchMessage":{"type":"string","source":"attribute","selector":"textarea","attribute":"data-bouncer-mismatch-message","default":""},"match":{"type":"string","source":"attribute","selector":"textarea","attribute":"data-bouncer-match","default":""},"required":{"type":"boolean","source":"attribute","selector":"textarea","attribute":"required","default":false},"autocomplete":{"enum":["on","off"],"source":"attribute","selector":"textarea","attribute":"autocomplete","default":"off"},"requiredText":{"type":"string","source":"text","selector":"label span.required","default":"*"},"disabled":{"type":"boolean","source":"attribute","selector":"textarea","attribute":"disabled","default":false},"readonly":{"type":"boolean","source":"attribute","selector":"textarea","attribute":"readonly","default":false},"showHelp":{"type":"boolean","default":false},"help":{"type":"string","source":"html","selector":"small","default":""},"cols":{"type":"string","source":"attribute","selector":"textarea","attribute":"cols"},"rows":{"type":"string","source":"attribute","selector":"textarea","attribute":"rows"},"minlength":{"type":"string","source":"attribute","selector":"textarea","attribute":"minlength"},"maxlength":{"type":"string","source":"attribute","selector":"textarea","attribute":"maxlength"},"pattern":{"type":"string","source":"attribute","selector":"textarea","attribute":"pattern"},"advanced":{"type":"boolean","selector":"textarea.formello-rft"}},"supports":{"html":false,"inserter":true,"reusable":false,"color":{"background":true,"text":true,"__experimentalSkipSerialization":true},"spacing":{"padding":true,"__experimentalSkipSerialization":true},"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true,"__experimentalSkipSerialization":true,"__experimentalDefaultControls":{"color":true,"radius":true,"style":true,"width":true}}},"selectors":{"root":".wp-block-formello-textarea","color":{"background":".wp-block-formello-textarea > textarea","text":".wp-block-formello-textarea"},"spacing":{"root":".wp-block-formello-textarea","padding":".wp-block-formello-textarea > textarea"},"border":{"root":".wp-block-formello-textarea > textarea"}},"editorScript":"file:./index.js","style":"file:./style-index.css","render":"file:./render.php"}'); /***/ }) diff --git a/build/blocks/textarea/index.js.map b/build/blocks/textarea/index.js.map index 7273108a..82fe82c9 100644 --- a/build/blocks/textarea/index.js.map +++ b/build/blocks/textarea/index.js.map @@ -1 +1 @@ -{"version":3,"file":"blocks/textarea/index.js","mappings":"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AAI,EAAEJ,wDAAY,CAAC;EACpB,CAAC,CACD;EAED,OAAOrD,IAAI;AACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3B6E;AACA;AACE;AACE;AACJ;AACA;AACA;AACA;AACR;AACM;AACI;AACH;AACP;AACU;AACI;AACN;AACA;AACG;AACP;AACE;AACQ;AACV;;;;;;;;;;;;ACrBzE;;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;;;;;;ACAA,cAAc,aAAa,+CAA+C,gDAAgD,eAAe,QAAQ,IAAI,0CAA0C,yCAAyC,SAAgB,gBAAgB,wCAAwC,IAAI,mDAAmD,SAAS,iEAAe,IAAI;;;;;;;;;;;;;;;;UCAnY;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC7BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEnDA;UACA;UACA;UACA;UACA","sources":["webpack://formello/./assets/icons/asterisk.svg","webpack://formello/./assets/icons/checkbox.svg","webpack://formello/./assets/icons/checkboxes.svg","webpack://formello/./assets/icons/clock-field.svg","webpack://formello/./assets/icons/color-field.svg","webpack://formello/./assets/icons/date-field.svg","webpack://formello/./assets/icons/email-field.svg","webpack://formello/./assets/icons/fieldset.svg","webpack://formello/./assets/icons/form.svg","webpack://formello/./assets/icons/gdpr-field.svg","webpack://formello/./assets/icons/hidden-field.svg","webpack://formello/./assets/icons/logo.svg","webpack://formello/./assets/icons/number-field.svg","webpack://formello/./assets/icons/password-field.svg","webpack://formello/./assets/icons/phone-field.svg","webpack://formello/./assets/icons/radio-buttons.svg","webpack://formello/./assets/icons/radio-field.svg","webpack://formello/./assets/icons/range-field.svg","webpack://formello/./assets/icons/select.svg","webpack://formello/./assets/icons/text-field.svg","webpack://formello/./assets/icons/textarea-field.svg","webpack://formello/./assets/icons/url-field.svg","webpack://formello/./node_modules/@wordpress/icons/build-module/library/more-vertical.js","webpack://formello/./src/blocks/input/use-field-props.js","webpack://formello/./src/blocks/textarea/edit.js","webpack://formello/./src/blocks/textarea/index.js","webpack://formello/./src/blocks/textarea/save.js","webpack://formello/./src/components/field-options/advanced.js","webpack://formello/./src/components/field-options/constants.js","webpack://formello/./src/components/field-options/date.js","webpack://formello/./src/components/field-options/index.js","webpack://formello/./src/components/field-options/toolbar.js","webpack://formello/./src/components/field-options/validation.js","webpack://formello/./src/components/label.js","webpack://formello/./src/components/merge-tags/functions.js","webpack://formello/./src/components/merge-tags/index.js","webpack://formello/./src/components/merge-tags/tab-content.js","webpack://formello/./src/components/merge-tags/use-tabs.js","webpack://formello/./src/icons/icons.js","webpack://formello/./src/blocks/textarea/style.scss?ec8f","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"blocks\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"coreData\"]","webpack://formello/external window [\"wp\",\"data\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"hooks\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/external window [\"wp\",\"primitives\"]","webpack://formello/./node_modules/clsx/dist/clsx.mjs","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/chunk loaded","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/webpack/runtime/jsonp chunk loading","webpack://formello/webpack/before-startup","webpack://formello/webpack/startup","webpack://formello/webpack/after-startup"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgAsterisk = function SvgAsterisk(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12.75 6h-1.5v4.19L8.288 7.226l-1.061 1.06 2.962 2.963H6v1.5h4.19l-2.963 2.962 1.06 1.061 2.963-2.962V18h1.5v-4.19l2.962 2.963 1.061-1.06-2.962-2.963H18v-1.5h-4.19l2.963-2.962-1.06-1.061-2.963 2.962V6Z\"\n })));\n};\nexport { SvgAsterisk as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjc1IDZIMTEuMjVWMTAuMTg5M0w4LjI4NzY5IDcuMjI3MDNMNy4yMjcwMyA4LjI4NzY5TDEwLjE4OTMgMTEuMjVINlYxMi43NUgxMC4xODkzTDcuMjI3MDMgMTUuNzEyM0w4LjI4NzY5IDE2Ljc3M0wxMS4yNSAxMy44MTA3VjE4SDEyLjc1VjEzLjgxMDdMMTUuNzEyMyAxNi43NzNMMTYuNzczIDE1LjcxMjNMMTMuODEwNyAxMi43NUgxOFYxMS4yNUgxMy44MTA3TDE2Ljc3MyA4LjI4NzY5TDE1LjcxMjMgNy4yMjcwM0wxMi43NSAxMC4xODkzVjZaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckbox = function SvgCheckbox(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z\"\n })));\n};\nexport { SvgCheckbox as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGc+CiAgICAgICAgPHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIvPgogICAgICAgIDxwYXRoIGQ9Ik00IDNoMTZhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6bTEgMnYxNGgxNFY1SDV6bTYuMDAzIDExTDYuNzYgMTEuNzU3bDEuNDE0LTEuNDE0IDIuODI5IDIuODI5IDUuNjU2LTUuNjU3IDEuNDE1IDEuNDE0TDExLjAwMyAxNnoiIC8+CiAgICA8L2c+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckboxes = function SvgCheckboxes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 24,\n height: 24,\n viewBox: \"0 0 300.396 300.396\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.048 216.749H4.076a3 3 0 0 0-3 3v59.973a3 3 0 0 0 3 3h59.972a3 3 0 0 0 3-3v-59.973c0-1.656-1.344-3-3-3zM64.048 17.675H4.076A4.075 4.075 0 0 0 0 21.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076V21.749a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986V36.809h29.849v29.852H19.138zM64.048 116.675H4.076A4.075 4.075 0 0 0 0 120.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076v-59.973a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986v-29.852h29.849v29.852H19.138zM297.396 231.036h-186.67a3 3 0 0 0-3 3v31.4a3 3 0 0 0 3 3h186.67c1.656 0 3-1.344 3-3v-31.4a3 3 0 0 0-3-3zM110.729 169.438h186.667a3 3 0 0 0 3-3v-31.406c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3zM110.729 70.438h186.667a3 3 0 0 0 3-3V36.032c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3z\"\n })));\n};\nexport { SvgCheckboxes as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiAKCSB2aWV3Qm94PSIwIDAgMzAwLjM5NiAzMDAuMzk2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNNjQuMDQ4LDIxNi43NDlINC4wNzZjLTEuNjU3LDAtMywxLjM0NC0zLDN2NTkuOTczYzAsMS42NTgsMS4zNDMsMywzLDNoNTkuOTcyYzEuNjU2LDAsMy0xLjM0MiwzLTN2LTU5Ljk3MwoJCUM2Ny4wNDgsMjE4LjA5Myw2NS43MDQsMjE2Ljc0OSw2NC4wNDgsMjE2Ljc0OXoiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTcuNjc1SDQuMDc2QzEuODI1LDE3LjY3NSwwLDE5LjQ5OSwwLDIxLjc0OXY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NlYyMS43NDlDNjguMTIzLDE5LjQ5OSw2Ni4yOTksMTcuNjc1LDY0LjA0OCwxNy42NzV6IE0xOS4xMzgsNjYuNjYxVjM2LjgwOWgyOS44NDl2MjkuODUySDE5LjEzOHoKCQkiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTE2LjY3NUg0LjA3NmMtMi4yNTEsMC00LjA3NiwxLjgyNC00LjA3Niw0LjA3NHY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NnYtNTkuOTczQzY4LjEyMywxMTguNDk5LDY2LjI5OSwxMTYuNjc1LDY0LjA0OCwxMTYuNjc1eiBNMTkuMTM4LDE2NS42NjF2LTI5Ljg1MmgyOS44NDl2MjkuODUyCgkJSDE5LjEzOHoiLz4KCTxwYXRoIGQ9Ik0yOTcuMzk2LDIzMS4wMzZoLTE4Ni42N2MtMS42NTcsMC0zLDEuMzQyLTMsM3YzMS40YzAsMS42NTYsMS4zNDMsMywzLDNoMTg2LjY3YzEuNjU2LDAsMy0xLjM0NCwzLTN2LTMxLjQKCQlDMzAwLjM5NiwyMzIuMzc4LDI5OS4wNTMsMjMxLjAzNiwyOTcuMzk2LDIzMS4wMzZ6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSwxNjkuNDM4aDE4Ni42NjdjMS42NTYsMCwzLTEuMzQyLDMtM3YtMzEuNDA2YzAtMS42NTYtMS4zNDQtMy0zLTNIMTEwLjcyOWMtMS42NTcsMC0zLDEuMzQ0LTMsM3YzMS40MDYKCQlDMTA3LjcyOSwxNjguMDk3LDEwOS4wNzEsMTY5LjQzOCwxMTAuNzI5LDE2OS40Mzh6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSw3MC40MzhoMTg2LjY2N2MxLjY1NiwwLDMtMS4zNDIsMy0zVjM2LjAzMmMwLTEuNjU2LTEuMzQ0LTMtMy0zSDExMC43MjljLTEuNjU3LDAtMywxLjM0NC0zLDN2MzEuNDA2CgkJQzEwNy43MjksNjkuMDk3LDEwOS4wNzEsNzAuNDM4LDExMC43MjksNzAuNDM4eiIvPgo8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgClockField = function SvgClockField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 -8 72 72\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 0a28 28 0 1 0 28 28A28 28 0 0 0 36 0Zm0 50a22 22 0 1 1 22-22 22.07 22.07 0 0 1-22 22Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.59 27.14H38V12a2.31 2.31 0 1 0-4.61 0v17.44a2.31 2.31 0 0 0 2.3 2.31h14.9a2.31 2.31 0 1 0 0-4.61Z\"\n })));\n};\nexport { SvgClockField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAtOCA3MiA3MiIgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Y2xvY2stbzwvdGl0bGU+PHBhdGggZD0iTTM2LDBBMjgsMjgsMCwxLDAsNjQsMjgsMjgsMjgsMCwwLDAsMzYsMFptMCw1MEEyMiwyMiwwLDEsMSw1OCwyOCwyMi4wNywyMi4wNywwLDAsMSwzNiw1MFoiLz48cGF0aCBkPSJNNTAuNTksMjcuMTRIMzhWMTJhMi4zMSwyLjMxLDAsMSwwLTQuNjEsMFYyOS40NGEyLjMxLDIuMzEsMCwwLDAsMi4zLDIuMzFINTAuNTlhMi4zMSwyLjMxLDAsMSwwLDAtNC42MVoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgColorField = function SvgColorField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 36 36\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.23 14.89c-2.1-.56-4.93 1.8-6.34.3-1.71-1.82 2.27-5.53 1.86-8.92-.33-2.78-3.51-4.08-6.66-4.1A18.5 18.5 0 0 0 7.74 7.59c-6.64 6.59-8.07 16-1.37 22.48 6.21 6 16.61 4.23 22.67-1.4a17.73 17.73 0 0 0 4.22-6.54c1.08-2.9 1.18-6.64-1.03-7.24ZM9.4 10.57a2.23 2.23 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.81 2.53 2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53ZM5.07 20.82a2.22 2.22 0 0 1 1.82-2.53 2.22 2.22 0 0 1 2.86 1.21A2.23 2.23 0 0 1 7.94 22a2.24 2.24 0 0 1-2.87-1.18Zm7 8.33a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.8-2.53 2.23 2.23 0 0 1 2.87 1.21A2.22 2.22 0 0 1 12 29.15ZM15 8.26a2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.82 2.53A2.21 2.21 0 0 1 15 8.26Zm5.82 22.19a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.85 2.53Zm5-10.46a3.2 3.2 0 0 1-1.69 1.76 3.53 3.53 0 0 1-1.4.3 2.78 2.78 0 0 1-2.56-1.5 2.49 2.49 0 0 1-.07-2 3.2 3.2 0 0 1 1.69-1.76 3 3 0 0 1 4 1.2 2.54 2.54 0 0 1 0 2.01Z\",\n \"data-name\": \"Layer 3\"\n })));\n};\nexport { SvgColorField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDM2IDM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoNPHRpdGxlPmNvbG9yX3BhbGV0dGVfc29saWQ8L3RpdGxlPgoNPGcgaWQ9ImI4OTRlMzJiLTA0MzctNDVhYi1iOGJmLTlmMGM0ZThmNTdjZCIgZGF0YS1uYW1lPSJMYXllciAzIj4KDTxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTguNSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMywwLDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywyLjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEsMS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDateField = function SvgDateField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38 4V0h-4v4H14V0h-4v4H0v44h48V4H38zm6 40H4V19.9h40V44zM4 15.9V8h6v4h4V8h20v4h4V8h6v7.9H4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 24h6v6h-6zM16.667 24h6v6h-6zM25.583 24h6v6h-6zM34.5 24h6v6h-6zM7.5 33h6v6h-6zM16.667 33h6v6h-6zM25.583 33h6v6h-6zM34.5 33h6v6h-6z\"\n })));\n};\nexport { SvgDateField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCFET0NUWVBFIHN2ZyAgUFVCTElDICctLy9XM0MvL0RURCBTVkcgMS4xLy9FTicgICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQnPgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0OCA0OCIgaWQ9IkxheWVyXzMiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08Zz4KDTxwYXRoIGQ9Ik0zOCw0VjBoLTR2NEgxNFYwaC00djRIMHYxMS45djRWNDhoNDhWMTkuOXYtNFY0SDM4eiBNNDQsNDRINFYxOS45aDQwVjQ0eiBNNCwxNS45VjhoNnY0aDRWOGgyMHY0aDRWOGg2djcuOUg0eiIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iNy41IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMTYuNjY3IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMjUuNTgzIiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMzQuNSIgeT0iMjQiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjcuNSIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjE2LjY2NyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjI1LjU4MyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjM0LjUiIHk9IjMzIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmailField = function SvgEmailField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2c5.43 0 9.848 4.327 9.996 9.72L22 12v1c0 2.173-1.523 4-3.5 4-1.173 0-2.186-.643-2.816-1.62a5 5 0 1 1 1.311-3.597L17 12v1c0 1.14.716 2 1.5 2 .745 0 1.428-.775 1.495-1.831L20 13v-1a8 8 0 1 0-4.677 7.28 1 1 0 1 1 .831 1.819A9.966 9.966 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2Zm0 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z\"\n })));\n};\nexport { SvgEmailField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik0xMiwyIEMxNy40MjkyMzk5LDIgMjEuODQ3OTMxNyw2LjMyNjY3MDc5IDIxLjk5NjE1ODIsMTEuNzIwMDk1MiBMMjIsMTIgTDIyLDEzIEMyMiwxNS4xNzI5MjA4IDIwLjQ3NzQzNCwxNyAxOC41LDE3IEMxNy4zMjY5MzkxLDE3IDE2LjMxMzk1MjksMTYuMzU3MDI0NCAxNS42ODM5MzgyLDE1LjM4MDMwMjQgQzE0Ljc3MDU5MywxNi4zNzU3ODIzIDEzLjQ1ODE5MzQsMTcgMTIsMTcgQzkuMjM4NTc2MjUsMTcgNywxNC43NjE0MjM3IDcsMTIgQzcsOS4yMzg1NzYyNSA5LjIzODU3NjI1LDcgMTIsNyBDMTQuNjg4NzU0Nyw3IDE2Ljg4MTgxODEsOS4xMjIzMDY3MSAxNi45OTUzODA1LDExLjc4MzExMDQgTDE3LDEyIEwxNywxMyBDMTcsMTQuMTQwNzg3NyAxNy43MTYwMTAzLDE1IDE4LjUsMTUgQzE5LjI0NDc5MDIsMTUgMTkuOTI4MjI5LDE0LjIyNDU2MDkgMTkuOTk0NzEwOSwxMy4xNjg5MzQxIEwyMCwxMyBMMjAsMTIgQzIwLDcuNTgxNzIyIDE2LjQxODI3OCw0IDEyLDQgQzcuNTgxNzIyLDQgNCw3LjU4MTcyMiA0LDEyIEM0LDE2LjQxODI3OCA3LjU4MTcyMiwyMCAxMiwyMCBDMTMuMTYzMDk0OCwyMCAxNC4yODkyODIyLDE5Ljc1MjI2MTggMTUuMzIyNTE1OSwxOS4yNzk4MzMxIEMxNS44MjQ3ODc2LDE5LjA1MDE3NzcgMTYuNDE4MTMxNywxOS4yNzExNzcgMTYuNjQ3Nzg3LDE5Ljc3MzQ0ODcgQzE2Ljg3NzQ0MjMsMjAuMjc1NzIwNSAxNi42NTY0NDMsMjAuODY5MDY0NiAxNi4xNTQxNzEzLDIxLjA5ODcxOTkgQzE0Ljg2MTIxOCwyMS42ODk5MDEgMTMuNDUxNTQ2MywyMiAxMiwyMiBDNi40NzcxNTI1LDIyIDIsMTcuNTIyODQ3NSAyLDEyIEMyLDYuNDc3MTUyNSA2LjQ3NzE1MjUsMiAxMiwyIFogTTEyLDkgQzEwLjM0MzE0NTgsOSA5LDEwLjM0MzE0NTggOSwxMiBDOSwxMy42NTY4NTQyIDEwLjM0MzE0NTgsMTUgMTIsMTUgQzEzLjY1Njg1NDIsMTUgMTUsMTMuNjU2ODU0MiAxNSwxMiBDMTUsMTAuMzQzMTQ1OCAxMy42NTY4NTQyLDkgMTIsOSBaIi8+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFieldset = function SvgFieldset(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 80,\n height: 80,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 20h1v1H1v-2h1zm20 0h-1v1h2v-2h-1zM1 5h1V4h1V3H1zm1 2H1v2h1zm0 4H1v2h1zm20-2h1V7h-1zm0 4h1v-2h-1zM2 15H1v2h1zm20 2h1v-2h-1zM5 4h2V3H5zm6 0V3H9v1zm2 0h2V3h-2zm6-1h-2v1h2zM5 21h2v-1H5zm4 0h2v-1H9zm4 0h2v-1h-2zm4 0h2v-1h-2zm4-17h1v1h1V3h-2zm-1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1V8a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19V8H5v2h14m1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1v-2a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19v-2H5v2h14\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgFieldset as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MHB4IiBoZWlnaHQ9IjgwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAyMGgxdjFIMXYtMmgxem0yMCAwaC0xdjFoMnYtMmgtMXpNMSA1aDFWNGgxVjNIMXptMSAySDF2Mmgxem0wIDRIMXYyaDF6bTIwLTJoMVY3aC0xem0wIDRoMXYtMmgtMXpNMiAxNUgxdjJoMXptMjAgMmgxdi0yaC0xek01IDRoMlYzSDV6bTYgMFYzSDl2MXptMiAwaDJWM2gtMnptNi0xaC0ydjFoMnpNNSAyMWgydi0xSDV6bTQgMGgydi0xSDl6bTQgMGgydi0xaC0yem00IDBoMnYtMWgtMnptNC0xN2gxdjFoMVYzaC0yem0tMSA0djJhMS4wMDEgMS4wMDEgMCAwIDEtMSAxSDVhMS4wMDEgMS4wMDEgMCAwIDEtMS0xVjhhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOVY4SDV2MmgxNG0xIDR2MmExLjAwMSAxLjAwMSAwIDAgMS0xIDFINWExLjAwMSAxLjAwMSAwIDAgMS0xLTF2LTJhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOXYtMkg1djJoMTQiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgForm = function SvgForm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.2 12.994a.312.312 0 0 1-.188-.191C1 12.76.999 12.113 1 6.982V1.208l.022-.045a.328.328 0 0 1 .14-.14L1.208 1h11.585l.05.025a.31.31 0 0 1 .136.135l.021.039v5.783c0 5.377 0 5.787-.013 5.831a.314.314 0 0 1-.142.162L12.8 13H7.012c-3.457.001-5.8 0-5.817-.01zm11.236-5.992V1.568H1.573v10.857c0 .01 1.099.01 5.436.01h5.432V7.003zM5.574 10.72v-.86h1.712v1.72H5.574v-.86zm1.144 0v-.284h-.576v.568h.576v-.284zm1.145 0v-.284h3.432v.568H7.863v-.284zM5.574 7.572V6.428h5.72v2.288h-5.72V7.572zm5.144 0V7H6.142v.566c0 .311 0 .569.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.289h2.28v.577h-2.28v-.288zM5.575 4.14V2.996h5.72v2.288h-5.72V4.14zm5.144 0v-.572H6.142v.566c0 .31 0 .568.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.284h2.28v.567h-2.28V4.14z\"\n })));\n};\nexport { SvgForm as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAxNCAxNCIgcm9sZT0iaW1nIiBmb2N1c2FibGU9ImZhbHNlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtIDEuMTk5Nzk5NSwxMi45OTM5MTYgYyAtMC4wNzkwMzQsLTAuMDIzIC0wLjE2NDA3MSwtMC4xMDkzIC0wLjE4Nzk4MTMsLTAuMTkxNCAtMC4wMTIwMDUsLTAuMDQyIC0wLjAxMzAwNiwtMC42ODk1IC0wLjAxMTAwNSwtNS44MjEwMDAzIGwgMCwtNS43NzQgMC4wMjIwMSwtMC4wNDUgYyAwLjAyODAxMiwtMC4wNTcgMC4wODMwMzYsLTAuMTExNyAwLjE0MDE2MDYsLTAuMTQwMSBsIDAuMDQ1MDE5LC0wLjAyMiA1Ljc5MjIwNDEsMCA1Ljc5MjMwNDEsMCAwLjA1MTAyLDAuMDI1IGMgMC4wNTYwMiwwLjAyNyAwLjEwMzY0NSwwLjA3NSAwLjEzNTQ1OSwwLjEzNDUgbCAwLjAyMTAxLDAuMDM5IDAsNS43ODMyIGMgMCw1LjM3NjUwMDMgMCw1Ljc4NjYwMDMgLTAuMDEzMDEsNS44MzExMDAzIC0wLjAxOTAxLDAuMDYgLTAuMDc5MDMsMC4xMjkxIC0wLjE0MTc2MSwwLjE2MjEgbCAtMC4wNDYwMiwwLjAyNCAtNS43ODc3MDIzLDAgYyAtMy40NTYyOTQyLDllLTQgLTUuNzk5MjA3LDAgLTUuODE2MDE0MywtMC4wMSB6IG0gMTEuMjM2NjU3NSwtNS45OTE5MDAzIDAsLTUuNDM0MiAtNS40MzE5NDgxLDAgLTUuNDMxODQ4MiwwIDAsNS40MjI5IGMgMCwyLjk4MjYgLTQuMDAyZS00LDUuNDI4MDAwMyAwLDUuNDM0MjAwMyAwLDAuMDEgMS4wOTkwNzUxLDAuMDExIDUuNDM2NTUwMiwwLjAxMSBsIDUuNDMyMTQ4MSwwIDAsLTUuNDM0MjAwMyB6IG0gLTYuODYxOTY2MywzLjcxODEwMDMgMCwtMC44NjAzMDAzIDAuODU1NzY5OSwwIDAuODU1NzcsMCAwLDAuODYwMzAwMyAwLDAuODYwMyAtMC44NTU3NywwIC0wLjg1NTc2OTksMCAwLC0wLjg2MDMgeiBtIDEuMTQzOTk0NSwwIDAsLTAuMjgzOCAtMC4yODgyMjQ2LDAgLTAuMjg4MzI0NiwwIDAsMC4yODM4IDAsMC4yODM3IDAuMjg4MzI0NiwwIDAuMjg4MjI0NiwwIDAsLTAuMjgzNyB6IG0gMS4xNDQwOTQ3LDAgMCwtMC4yODM4IDEuNzE2MDQxOCwwIDEuNzE2MDQxMywwIDAsMC4yODM4IDAsMC4yODM3IC0xLjcxNjA0MTMsMCAtMS43MTYwNDE4LDAgMCwtMC4yODM3IHogbSAtMi4yODgwODkyLC0zLjE0ODMwMDMgMCwtMS4xNDQxIDIuODYwMDM2NCwwIDIuODYwMTM1OSwwIDAsMS4xNDQxIDAsMS4xNDM5IC0yLjg2MDEzNTksMCAtMi44NjAwMzY0LDAgMCwtMS4xNDM5IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEzIDAsMC41Njg3IDAuMDEwMDA0LDAuNTcyIDAsMCAxLjAzMjk0NjYsMC4wMSAyLjI4ODA4OTIsMC4wMSBsIDIuMjgyMDg2OCwwIDAsLTAuNTcyIHogbSAtNy45OTkyNTc4LDAgMCwtMC4yODg0IDEuMTM5NTkyNywwIDEuMTM5NDkyNSwwIDAsMC4yODg0IDAsMC4yODgyIC0xLjEzOTQ5MjUsMCAtMS4xMzk1OTI3LDAgMCwtMC4yODgyIHogbSAyLjg1NTYzNDUsLTMuNDMyMSAwLC0xLjE0NDEgMi44NjAwMzY0LDAgMi44NjAxMzU5LDAgMCwxLjE0NDEgMCwxLjE0NCAtMi44NjAxMzU5LDAgLTIuODYwMDM2NCwwIDAsLTEuMTQ0IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEyIDAsMC41Njg2IDAuMDEwMDA0LDAuNTcxOSAwLDAgMS4wMzI5NDY2LDAuMDEgMi4yODgwODkyLDAuMDEgbCAyLjI4MjA4NjgsMCAwLC0wLjU3MTkgeiBtIC03Ljk5OTI1NzgsMCAwLC0wLjI4MzkgMS4xMzk1OTI3LDAgMS4xMzk0OTI1LDAgMCwwLjI4MzkgMCwwLjI4MzcgLTEuMTM5NDkyNSwwIC0xLjEzOTU5MjcsMCAwLC0wLjI4MzcgeiIvPjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGdprField = function SvgGdprField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2zm0 8h5s1-1 1-5c0 0-5-1-6-2v7H5c1 4 5 7 5 7v-7z\"\n })));\n};\nexport { SvgGdprField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+Cgk8cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KCTxnPgoJCTxwYXRoIGQ9Ik0xMCAyczMgMiA3IDJjMCAxMS03IDE0LTcgMTRTMyAxNSAzIDRjNCAwIDctMiA3LTJ6bTAgOGg1czEtMSAxLTVjMCAwLTUtMS02LTJ2N0g1YzEgNCA1IDcgNSA3di03eiIvPgoJPC9nPgo8L3N2Zz4K\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgHiddenField = function SvgHiddenField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 1000 1000\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M499 270q57 0 104.5 28t75.5 76 28 104q0 39-15 76l122 122q97-81 142-198-36-91-104-162T694 206q-93-40-195-40-86 0-166 29l90 90q38-15 76-15zM83 157l95 94 19 20q-52 40-91.5 93T42 478q36 91 104.5 162T304 750q93 40 195 40 95 0 183-35l139 139 53-53-738-737zm230 230 65 64q-4 15-4 27 0 34 17 62.5t45.5 45.5 62.5 17q14 0 27-3l65 64q-45 22-92 22-56 0-104-28t-76-76-28-104q0-47 22-91zm180-33 131 131v-6q0-34-16.5-63t-45-45.5T500 354h-7z\"\n })));\n};\nexport { SvgHiddenField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00OTkgMjcwcTU3IDAgMTA0LjUgMjh0NzUuNSA3NiAyOCAxMDRxMCAzOS0xNSA3NmwxMjIgMTIycTk3LTgxIDE0Mi0xOTgtMzYtOTEtMTA0LTE2MlQ2OTQgMjA2cS05My00MC0xOTUtNDAtODYgMC0xNjYgMjlsOTAgOTBxMzgtMTUgNzYtMTV6TTgzIDE1N2w5NSA5NCAxOSAyMHEtNTIgNDAtOTEuNSA5M1Q0MiA0NzhxMzYgOTEgMTA0LjUgMTYyVDMwNCA3NTBxOTMgNDAgMTk1IDQwIDk1IDAgMTgzLTM1bDEzOSAxMzkgNTMtNTMtNzM4LTczN3ptMjMwIDIzMGw2NSA2NHEtNCAxNS00IDI3IDAgMzQgMTcgNjIuNXQ0NS41IDQ1LjUgNjIuNSAxN3ExNCAwIDI3LTNsNjUgNjRxLTQ1IDIyLTkyIDIyLTU2IDAtMTA0LTI4dC03Ni03Ni0yOC0xMDRxMC00NyAyMi05MXptMTgwLTMzbDEzMSAxMzF2LTZxMC0zNC0xNi41LTYzdC00NS00NS41VDUwMCAzNTRoLTd6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 341.333,\n height: 341.333,\n viewBox: \"0 0 256 256\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#9b51e0\",\n d: \"M0 128v128h256V0H0v128zm145.6-66.6c2.9.7 7.8 2.8 11.1 4.5 6.7 3.6 18.3 14.6 16.8 16-2.6 2.3-31.9 23.1-32.6 23.1-.5 0-.9-.5-.9-1 0-.6-1.1-2.2-2.5-3.5-3-3.1-8.3-3.3-11.6-.6-2.2 1.8-2.4 2.7-2.7 14l-.4 12.1H136v37h-13v34H82v-44.8c0-35.5.3-46.1 1.5-51.7 3.9-18.6 18.2-34.2 35.6-38.9 6.9-1.9 19.9-2 26.5-.2z\"\n })));\n};\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwoJdmVyc2lvbj0iMS4wIgoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJd2lkdGg9IjI1Ni4wMDAwMDBwdCIKCWhlaWdodD0iMjU2LjAwMDAwMHB0IgoJdmlld0JveD0iMCAwIDI1Ni4wMDAwMDAgMjU2LjAwMDAwMCIKCXByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiCj4KCTxnCgkJdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjU2LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKCQlmaWxsPSIjOWI1MWUwIgoJCXN0cm9rZT0ibm9uZSIKCT4KCQk8cGF0aAoJCQlkPSJNMCAxMjgwIGwwIC0xMjgwIDEyODAgMCAxMjgwIDAgMCAxMjgwIDAgMTI4MCAtMTI4MCAwIC0xMjgwIDAgMAoJCQktMTI4MHogbTE0NTYgNjY2IGMyOSAtNyA3OCAtMjggMTExIC00NSA2NyAtMzYgMTgzIC0xNDYgMTY4IC0xNjAgLTI2IC0yMwoJCQktMzE5IC0yMzEgLTMyNiAtMjMxIC01IDAgLTkgNSAtOSAxMCAwIDYgLTExIDIyIC0yNSAzNSAtMzAgMzEgLTgzIDMzIC0xMTYgNgoJCQktMjIgLTE4IC0yNCAtMjcgLTI3IC0xNDAgbC00IC0xMjEgNjYgMCA2NiAwIDAgLTE4NSAwIC0xODUgLTY1IDAgLTY1IDAgMAoJCQktMTcwIDAgLTE3MCAtMjA1IDAgLTIwNSAwIDAgNDQ4IGMwIDM1NSAzIDQ2MSAxNSA1MTcgMzkgMTg2IDE4MiAzNDIgMzU2IDM4OQoJCQk2OSAxOSAxOTkgMjAgMjY1IDJ6IgoJCS8+Cgk8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgNumberField = function SvgNumberField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 52 52\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.8 49.5H7.2c-2.6 0-4.7-2.1-4.7-4.7V7.2c0-2.6 2.1-4.7 4.7-4.7h37.6c2.6 0 4.7 2.1 4.7 4.7v37.6c0 2.6-2.1 4.7-4.7 4.7zm-36-39.2v31.3c0 .9.7 1.6 1.6 1.6h31.3c.9 0 1.6-.7 1.6-1.6V10.3c0-.9-.7-1.6-1.6-1.6H10.4c-.9.1-1.6.8-1.6 1.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.2 20.3h-2.9l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.2 4.9h-5.8l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.3 4.9H18c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h3L19 28.7h-3.1c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h2.9L17 36.5v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h5.7L26 36.4v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h3.2c.2 0 .3-.1.4-.3l.6-2.2V29c0-.2-.1-.4-.4-.4h-3l1.4-5.6h3.1c.2 0 .3-.1.4-.3l.6-2.2v-.1c-.1.1-.3-.1-.5-.1zm-8.1 8.5h-5.8l1.4-5.6h5.7l-1.3 5.6z\"\n })));\n};\nexport { SvgNumberField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCgkgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNTIgNTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUyIDUyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZD0iTTQ0LjgsNDkuNUg3LjJjLTIuNiwwLTQuNy0yLjEtNC43LTQuN1Y3LjJjMC0yLjYsMi4xLTQuNyw0LjctNC43aDM3LjZjMi42LDAsNC43LDIuMSw0LjcsNC43djM3LjYKCUM0OS41LDQ3LjQsNDcuNCw0OS41LDQ0LjgsNDkuNXogTTguOCwxMC4zdjMxLjNjMCwwLjksMC43LDEuNiwxLjYsMS42aDMxLjNjMC45LDAsMS42LTAuNywxLjYtMS42VjEwLjNjMC0wLjktMC43LTEuNi0xLjYtMS42SDEwLjQKCUM5LjUsOC44LDguOCw5LjUsOC44LDEwLjN6Ii8+CjxwYXRoIGQ9Ik0zNi4yLDIwLjNoLTIuOWwxLjItNC44di0wLjFjMC0wLjItMC4xLTAuNC0wLjQtMC40aC0yLjNjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMS4yLDQuOWgtNS44bDEuMi00LjgKCXYtMC4xYzAtMC4yLTAuMS0wLjQtMC40LTAuNGgtMi4zYy0wLjIsMC0wLjMsMC4xLTAuNCwwLjNsLTEuMyw0LjloLTMuMmMtMC4yLDAtMC4zLDAuMS0wLjQsMC4zbC0wLjYsMi4ydjAuMWMwLDAuMiwwLjEsMC40LDAuNCwwLjQKCWgzbC0xLjQsNS42aC0zLjFjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMC42LDIuMnYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuOWwtMS4yLDQuOHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuMwoJYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wxLjMtNWg1LjdMMjYsMzYuNHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuM2MwLjIsMCwwLjMtMC4xLDAuNC0wLjNsMS4zLTVoMy4yYzAuMiwwLDAuMy0wLjEsMC40LTAuMwoJbDAuNi0yLjJWMjljMC0wLjItMC4xLTAuNC0wLjQtMC40aC0zbDEuNC01LjZoMy4xYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wwLjYtMi4ydi0wLjFDMzYuNiwyMC41LDM2LjQsMjAuMywzNi4yLDIwLjNMMzYuMiwyMC4zegoJIE0yOC4xLDI4LjhoLTUuOGwxLjQtNS42aDUuN0wyOC4xLDI4Ljh6Ii8+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPasswordField = function SvgPasswordField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.988 51.297c.375 0 .961-.14 1.57-.445C42.66 43.469 47.185 40.375 47.185 31.96V14.289c0-2.414-1.055-3.187-3-4.008-2.743-1.125-11.532-4.289-14.25-5.25-.633-.187-1.266-.328-1.946-.328-.656 0-1.289.14-1.922.328-2.718.985-11.507 4.149-14.25 5.25-1.945.797-3 1.594-3 4.008v17.672c0 8.414 4.547 11.484 17.625 18.89.61.305 1.172.446 1.547.446Zm-8.226-15.563v-9.093c0-1.524.586-2.32 1.828-2.508V21.32c0-4.312 2.601-7.218 6.398-7.218 3.82 0 6.399 2.906 6.399 7.218v2.79c1.265.187 1.851.984 1.851 2.53v9.094c0 1.758-.773 2.578-2.414 2.578H22.152c-1.617 0-2.39-.82-2.39-2.578Zm4.289-11.648 7.898-.023v-3c0-2.766-1.57-4.594-3.96-4.594-2.368 0-3.938 1.828-3.938 4.593Z\"\n })));\n};\nexport { SvgPasswordField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMjcuOTg4MyA1MS4yOTY5IEMgMjguMzYzMyA1MS4yOTY5IDI4Ljk0OTIgNTEuMTU2MiAyOS41NTg2IDUwLjg1MTYgQyA0Mi42NjAyIDQzLjQ2ODggNDcuMTgzNiA0MC4zNzUwIDQ3LjE4MzYgMzEuOTYwOSBMIDQ3LjE4MzYgMTQuMjg5MSBDIDQ3LjE4MzYgMTEuODc1MCA0Ni4xMjg5IDExLjEwMTYgNDQuMTgzNiAxMC4yODEzIEMgNDEuNDQxNCA5LjE1NjIgMzIuNjUyNCA1Ljk5MjIgMjkuOTMzNiA1LjAzMTMgQyAyOS4zMDA4IDQuODQzOCAyOC42NjgwIDQuNzAzMSAyNy45ODgzIDQuNzAzMSBDIDI3LjMzMjAgNC43MDMxIDI2LjY5OTIgNC44NDM4IDI2LjA2NjQgNS4wMzEzIEMgMjMuMzQ3NiA2LjAxNTYgMTQuNTU4NiA5LjE3OTcgMTEuODE2NCAxMC4yODEzIEMgOS44NzExIDExLjA3ODEgOC44MTY0IDExLjg3NTAgOC44MTY0IDE0LjI4OTEgTCA4LjgxNjQgMzEuOTYwOSBDIDguODE2NCA0MC4zNzUwIDEzLjM2MzMgNDMuNDQ1MyAyNi40NDE0IDUwLjg1MTYgQyAyNy4wNTA4IDUxLjE1NjIgMjcuNjEzMyA1MS4yOTY5IDI3Ljk4ODMgNTEuMjk2OSBaIE0gMTkuNzYxNyAzNS43MzQ0IEwgMTkuNzYxNyAyNi42NDA2IEMgMTkuNzYxNyAyNS4xMTcyIDIwLjM0NzYgMjQuMzIwMyAyMS41ODk4IDI0LjEzMjggTCAyMS41ODk4IDIxLjMyMDMgQyAyMS41ODk4IDE3LjAwNzggMjQuMTkxNCAxNC4xMDE2IDI3Ljk4ODMgMTQuMTAxNiBDIDMxLjgwODYgMTQuMTAxNiAzNC4zODY3IDE3LjAwNzggMzQuMzg2NyAyMS4zMjAzIEwgMzQuMzg2NyAyNC4xMDk0IEMgMzUuNjUyNCAyNC4yOTY5IDM2LjIzODMgMjUuMDkzOCAzNi4yMzgzIDI2LjY0MDYgTCAzNi4yMzgzIDM1LjczNDQgQyAzNi4yMzgzIDM3LjQ5MjIgMzUuNDY0OSAzOC4zMTI1IDMzLjgyNDIgMzguMzEyNSBMIDIyLjE1MjQgMzguMzEyNSBDIDIwLjUzNTEgMzguMzEyNSAxOS43NjE3IDM3LjQ5MjIgMTkuNzYxNyAzNS43MzQ0IFogTSAyNC4wNTA4IDI0LjA4NjAgTCAzMS45NDkyIDI0LjA2MjUgTCAzMS45NDkyIDIxLjA2MjUgQyAzMS45NDkyIDE4LjI5NjkgMzAuMzc4OSAxNi40Njg3IDI3Ljk4ODMgMTYuNDY4NyBDIDI1LjYyMTEgMTYuNDY4NyAyNC4wNTA4IDE4LjI5NjkgMjQuMDUwOCAyMS4wNjI1IFoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPhoneField = function SvgPhoneField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.156 37.762c6.774 6.773 15.024 12 21.75 12 3.024 0 5.672-1.055 7.805-3.399 1.242-1.383 2.016-3 2.016-4.593 0-1.172-.446-2.297-1.57-3.094l-7.173-5.11c-1.101-.75-2.015-1.125-2.859-1.125-1.078 0-2.016.61-3.094 1.664l-1.664 1.641a1.263 1.263 0 0 1-.89.375c-.375 0-.704-.14-.961-.258-1.43-.773-3.914-2.906-6.235-5.203-2.297-2.297-4.43-4.781-5.18-6.234a1.991 1.991 0 0 1-.257-.938c0-.304.093-.61.351-.867l1.64-1.71c1.056-1.079 1.665-2.017 1.665-3.095 0-.843-.375-1.757-1.148-2.859l-5.04-7.102c-.82-1.125-1.968-1.617-3.234-1.617-1.547 0-3.164.703-4.523 2.04-2.274 2.18-3.282 4.874-3.282 7.85 0 6.727 5.133 14.884 11.883 21.634Z\"\n })));\n};\nexport { SvgPhoneField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMTguMTU2MiAzNy43NjE3IEMgMjQuOTI5NyA0NC41MzUyIDMzLjE3OTcgNDkuNzYxNyAzOS45MDYyIDQ5Ljc2MTcgQyA0Mi45Mjk3IDQ5Ljc2MTcgNDUuNTc4MSA0OC43MDcwIDQ3LjcxMDkgNDYuMzYzMyBDIDQ4Ljk1MjggNDQuOTgwNSA0OS43MjY2IDQzLjM2MzMgNDkuNzI2NiA0MS43Njk1IEMgNDkuNzI2NiA0MC41OTc3IDQ5LjI4MTIgMzkuNDcyNyA0OC4xNTYyIDM4LjY3NTggTCA0MC45ODQzIDMzLjU2NjQgQyAzOS44ODI4IDMyLjgxNjQgMzguOTY4NyAzMi40NDE0IDM4LjEyNTAgMzIuNDQxNCBDIDM3LjA0NjggMzIuNDQxNCAzNi4xMDkzIDMzLjA1MDggMzUuMDMxMiAzNC4xMDU1IEwgMzMuMzY3MSAzNS43NDYxIEMgMzMuMTA5MyAzNi4wMDM5IDMyLjc4MTIgMzYuMTIxMSAzMi40NzY1IDM2LjEyMTEgQyAzMi4xMDE1IDM2LjEyMTEgMzEuNzczNCAzNS45ODA1IDMxLjUxNTYgMzUuODYzMyBDIDMwLjA4NTkgMzUuMDg5OCAyNy42MDE1IDMyLjk1NzEgMjUuMjgxMiAzMC42NjAyIEMgMjIuOTg0MyAyOC4zNjMzIDIwLjg1MTUgMjUuODc4OSAyMC4xMDE1IDI0LjQyNTggQyAxOS45NjA5IDI0LjE2ODAgMTkuODQzNyAyMy44Mzk4IDE5Ljg0MzcgMjMuNDg4MyBDIDE5Ljg0MzcgMjMuMTgzNiAxOS45Mzc1IDIyLjg3ODkgMjAuMTk1MyAyMi42MjExIEwgMjEuODM1OSAyMC45MTAyIEMgMjIuODkwNiAxOS44MzIwIDIzLjQ5OTkgMTguODk0NSAyMy40OTk5IDE3LjgxNjQgQyAyMy40OTk5IDE2Ljk3MjcgMjMuMTI1MCAxNi4wNTg2IDIyLjM1MTUgMTQuOTU3MSBMIDE3LjMxMjQgNy44NTU1IEMgMTYuNDkyMSA2LjczMDUgMTUuMzQzNyA2LjIzODMgMTQuMDc4MSA2LjIzODMgQyAxMi41MzEyIDYuMjM4MyAxMC45MTQwIDYuOTQxNCA5LjU1NDYgOC4yNzc0IEMgNy4yODEyIDEwLjQ1NzEgNi4yNzM0IDEzLjE1MjQgNi4yNzM0IDE2LjEyODkgQyA2LjI3MzQgMjIuODU1NSAxMS40MDYyIDMxLjAxMTcgMTguMTU2MiAzNy43NjE3IFoiLz48L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioButtons = function SvgRadioButtons(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 4h13v1H9zm0 17h13v-1H9zm0-8h13v-1H9zM7 4a3 3 0 1 1-3-3 3 3 0 0 1 3 3zM6 4a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2 2 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm-2-9a1 1 0 1 0 1 1 1 1 0 0 0-1-1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgRadioButtons as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05IDRoMTN2MUg5em0wIDE3aDEzdi0xSDl6bTAtOGgxM3YtMUg5ek03IDRhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzek02IDRhMiAyIDAgMSAwLTIgMiAyLjAwMyAyLjAwMyAwIDAgMCAyLTJ6bTEgOGEzIDMgMCAxIDEtMy0zIDMgMyAwIDAgMSAzIDN6bS0xIDBhMiAyIDAgMSAwLTIgMiAyIDIgMCAwIDAgMi0yem0xIDhhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzem0tMSAwYTIgMiAwIDEgMC0yIDIgMi4wMDMgMi4wMDMgMCAwIDAgMi0yem0tMi05YTEgMSAwIDEgMCAxIDEgMSAxIDAgMCAwLTEtMXoiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioField = function SvgRadioField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 4C5.32 4 4 5.32 4 7s1.32 3 3 3 3-1.32 3-3-1.32-3-3-3Zm0-3C3.7 1 1 3.7 1 7s2.7 6 6 6 6-2.7 6-6-2.7-6-6-6Zm0 10.8c-2.64 0-4.8-2.16-4.8-4.8 0-2.64 2.16-4.8 4.8-4.8 2.64 0 4.8 2.16 4.8 4.8 0 2.64-2.16 4.8-4.8 4.8z\"\n })));\n};\nexport { SvgRadioField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE0IDE0IiByb2xlPSJpbWciIGZvY3VzYWJsZT0iZmFsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gNyw0IEMgNS4zMiw0IDQsNS4zMiA0LDcgNCw4LjY4IDUuMzIsMTAgNywxMCA4LjY4LDEwIDEwLDguNjggMTAsNyAxMCw1LjMyIDguNjgsNCA3LDQgWiBNIDcsMSBDIDMuNywxIDEsMy43IDEsNyBjIDAsMy4zIDIuNyw2IDYsNiAzLjMsMCA2LC0yLjcgNiwtNiBDIDEzLDMuNyAxMC4zLDEgNywxIFogTSA3LDExLjggQyA0LjM2LDExLjggMi4yLDkuNjQgMi4yLDcgMi4yLDQuMzYgNC4zNiwyLjIgNywyLjIgYyAyLjY0LDAgNC44LDIuMTYgNC44LDQuOCAwLDIuNjQgLTIuMTYsNC44IC00LjgsNC44IHoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRangeField = function SvgRangeField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 11h-3.184a2.982 2.982 0 0 0-5.632 0H3a1 1 0 0 0 0 2h9.184a2.982 2.982 0 0 0 5.632 0H21a1 1 0 0 0 0-2Zm-6 2a1 1 0 1 1 1-1 1.001 1.001 0 0 1-1 1Z\"\n })));\n};\nexport { SvgRangeField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggZD0iTTIxLDExSDE3LjgxNTczYTIuOTgyMDgsMi45ODIwOCwwLDAsMC01LjYzMTQ2LDBIM2ExLDEsMCwwLDAsMCwyaDkuMTg0MzNhMi45ODIsMi45ODIsMCwwLDAsNS42MzE0LDBIMjFhMSwxLDAsMCwwLDAtMlptLTYsMmExLDEsMCwxLDEsMS0xQTEuMDAxMywxLjAwMTMsMCwwLDEsMTUsMTNaIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSelect = function SvgSelect(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 4H1c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1zm-5 7H1V5h9v6zm3-2.6L11 7h4l-2 1.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1e72bd\",\n d: \"M2 6h1v4H2V6z\"\n })));\n};\nexport { SvgSelect as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8cGF0aCBkPSJNMTUgNGgtMTRjLTAuNiAwLTEgMC40LTEgMXY2YzAgMC42IDAuNCAxIDEgMWgxNGMwLjYgMCAxLTAuNCAxLTF2LTZjMC0wLjYtMC40LTEtMS0xek0xMCAxMWgtOXYtNmg5djZ6TTEzIDguNGwtMi0xLjRoNGwtMiAxLjR6Ij48L3BhdGg+CjxwYXRoIGZpbGw9IiMxZTcyYmQiIGQ9Ik0yIDZoMXY0aC0xdi00eiI+PC9wYXRoPgo8L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextField = function SvgTextField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 9h2v30H8v3h8v-3h-2V9h2V6H8zM4 16h3.021v-4H0v24h7.042v-4H4zM16.979 12v4H44v16H16.958v4H48V12z\"\n })));\n};\nexport { SvgTextField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjgsOSAxMCw5IDEwLDEyIDEwLDE2IDEwLDM5IDgsMzkgOCw0MiAxNiw0MiAxNiwzOSAxNCwzOSAxNCwxNiAxNCwxMiAxNCw5IDE2LDkgMTYsNiA4LDYgICIvPgoNPHBvbHlnb24gcG9pbnRzPSI0LDE2IDcuMDIxLDE2IDcuMDIxLDEyIDAsMTIgMCwzNiA3LjA0MiwzNiA3LjA0MiwzMiA0LDMyICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTYuOTc5LDEyIDE2Ljk3OSwxNiA0NCwxNiA0NCwzMiAxNi45NTgsMzIgMTYuOTU4LDM2IDQ4LDM2IDQ4LDEyICAiLz4KDTwvZz4KDTwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextareaField = function SvgTextareaField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 33h-2V3h2V0H8v3h2v30H8v3h8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.031 6v4H44v34H4V10h2.938V6H0v42h48V6z\"\n })));\n};\nexport { SvgTextareaField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjE2LDMzIDE0LDMzIDE0LDEwIDE0LDYgMTQsMyAxNiwzIDE2LDAgOCwwIDgsMyAxMCwzIDEwLDYgMTAsMTAgMTAsMzMgOCwzMyA4LDM2IDE2LDM2ICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTcuMDMxLDYgMTcuMDMxLDEwIDQ0LDEwIDQ0LDQ0IDQsNDQgNCwxMCA2LjkzOCwxMCA2LjkzOCw2IDAsNiAwLDQ4IDQ4LDQ4IDQ4LDYgICIvPgoNPC9nPgoNPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgUrlField = function SvgUrlField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.794 12.794c-.478.475-1.113.737-1.794.737s-1.316-.262-1.794-.738a2.54 2.54 0 0 1 0-3.584L5.5 6.916 4.084 5.5 1.791 7.794a4.54 4.54 0 0 0 .003 6.413c.853.855 1.99 1.324 3.206 1.324s2.353-.469 3.206-1.325l2.294-2.294L9.084 10.5l-2.29 2.294zm7.412-11C13.353.938 12.216.469 11 .469S8.647.938 7.794 1.794L5.5 4.084 6.916 5.5 9.21 3.206c.474-.475 1.109-.737 1.79-.737s1.316.263 1.794.737a2.537 2.537 0 0 1 0 3.584L10.5 9.084l1.416 1.416 2.294-2.294a4.54 4.54 0 0 0-.004-6.412zm-2.5 3.912L10.29 4.29l-6 6 1.416 1.416 6-6z\"\n })));\n};\nexport { SvgUrlField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgaWQ9Imljb24tYm91bmQiIGZpbGw9Im5vbmUiIC8+CiAgPHBhdGggZD0iTTYuNzk0LDEyLjc5NEM2LjMxNiwxMy4yNjksNS42ODEsMTMuNTMxLDUsMTMuNTMxcy0xLjMxNi0wLjI2Mi0xLjc5NC0wLjczOGMtMC45ODctMC45ODgtMC45ODctMi41OTcsMC0zLjU4NEw1LjUsNi45MTYgTDQuMDg0LDUuNUwxLjc5MSw3Ljc5NGMtMS43NjYsMS43NjktMS43NjYsNC42NDQsMC4wMDMsNi40MTNDMi42NDcsMTUuMDYyLDMuNzg0LDE1LjUzMSw1LDE1LjUzMXMyLjM1My0wLjQ2OSwzLjIwNi0xLjMyNSBsMi4yOTQtMi4yOTRMOS4wODQsMTAuNUw2Ljc5NCwxMi43OTR6IE0xNC4yMDYsMS43OTRDMTMuMzUzLDAuOTM4LDEyLjIxNiwwLjQ2OSwxMSwwLjQ2OVM4LjY0NywwLjkzOCw3Ljc5NCwxLjc5NEw1LjUsNC4wODQgTDYuOTE2LDUuNWwyLjI5NC0yLjI5NEM5LjY4NCwyLjczMSwxMC4zMTksMi40NjksMTEsMi40NjlzMS4zMTYsMC4yNjMsMS43OTQsMC43MzdjMC45ODgsMC45ODcsMC45ODgsMi41OTcsMCwzLjU4NEwxMC41LDkuMDg0IGwxLjQxNiwxLjQxNmwyLjI5NC0yLjI5NEMxNS45NzUsNi40MzgsMTUuOTc1LDMuNTYyLDE0LjIwNiwxLjc5NHogTTExLjcwNiw1LjcwNmwtMS40MTYtMS40MTZsLTYsNmwxLjQxNiwxLjQxNkwxMS43MDYsNS43MDZ6IiAvPgo8L3N2Zz4=\";","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst moreVertical = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\"\n })\n});\nexport default moreVertical;\n//# sourceMappingURL=more-vertical.js.map","import {\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport clsx from 'clsx';\n\nexport function getInputClassesAndStyles( attributes ) {\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst { name, type, advanced, hideLabel } = attributes;\n\n\tconst containerClass = clsx( {\n\t\t'missing-name': ! name,\n\t} );\n\n\tconst labelClass = clsx( {\n\t\thide: hideLabel,\n\t\t'textarea-label': 'textarea' === type,\n\t} );\n\n\tconst inputClass = clsx(\n\t\tborderProps.className,\n\t\tspacingProps.className,\n\t\tcolorProps.className,\n\t\t{\n\t\t\t'formello-advanced': advanced,\n\t\t\t'formello-rtf': advanced && 'textarea' === type,\n\t\t}\n\t);\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...spacingProps.style,\n\t\t...colorProps.style,\n\t};\n\n\treturn {\n\t\tcontainerClass,\n\t\tlabelClass,\n\t\tinputClass,\n\t\tinputStyle,\n\t};\n}\n","import { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tInspectorAdvancedControls,\n\tBlockControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport { ToolbarGroup } from '@wordpress/components';\nimport clsx from 'clsx';\n\nimport Label from '../../components/label';\nimport Options from '../../components/field-options';\nimport ValidationOptions from '../../components/field-options/validation';\nimport AdvancedOptions from '../../components/field-options/advanced';\nimport Toolbar from '../../components/field-options/toolbar';\n\nimport { SUPPORTED_ATTRIBUTES } from '../../components/field-options/constants';\nimport { getInputClassesAndStyles } from '../input/use-field-props';\n\nexport default function Edit( props ) {\n\tconst { attributes, setAttributes } = props;\n\tconst { cols, rows, value, placeholder, showHelp, help, advanced, name } =\n\t\tattributes;\n\n\tconst supported = SUPPORTED_ATTRIBUTES.textarea;\n\n\tconst fieldProps = getInputClassesAndStyles( attributes );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: fieldProps.containerClass,\n\t} );\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{ supported.includes( 'required' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t
    \n\t);\n}\n","import Edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport { registerBlockType, createBlock } from '@wordpress/blocks';\nimport { Textarea } from '../../icons/icons';\n\nimport './style.scss';\n\n/**\n * Every block starts by registering a new block type definition.\n *\n * @see https://developer.wordpress.org/block-editor/developers/block-api/#registering-a-block\n */\nregisterBlockType( metadata, {\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'formello/input' ],\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'formello/textarea', attributes );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\t/**\n\t * An icon property should be specified to make it easier to identify a block.\n\t * These can be any of WordPress’ Dashicons, or a custom svg element.\n\t */\n\ticon: Textarea,\n\n\t/**\n\t * @see ./edit.js\n\t */\n\tedit: Edit,\n\n\t/**\n\t * @see ./save.js\n\t */\n\tsave,\n} );\n","import { RichText, useBlockProps } from '@wordpress/block-editor';\nimport { SUPPORTED_ATTRIBUTES } from '../../components/field-options/constants';\nimport { getInputClassesAndStyles } from '../input/use-field-props';\n\nexport default function save( { attributes } ) {\n\tconst { id, validation, help, value, label, required, requiredText } =\n\t\tattributes;\n\n\tconst fieldProps = getInputClassesAndStyles( attributes );\n\n\t// include only supported attributes\n\tconst htmlAttrs = Object.fromEntries(\n\t\tSUPPORTED_ATTRIBUTES.textarea.map( ( col ) => [\n\t\t\tcol,\n\t\t\tattributes[ col ],\n\t\t] )\n\t);\n\n\tif ( validation ) {\n\t\thtmlAttrs[ 'data-bouncer-message' ] = validation;\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\t{ value }\n\t\t\t\n\t\t\t{ help.length > 0 && (\n\t\t\t\t\n\t\t\t) }\n\t\t
    \n\t);\n}\n","import { __ } from '@wordpress/i18n';\n\nimport { ToggleControl, TextControl, withFilters } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nimport { createBlocksFromInnerBlocksTemplate } from '@wordpress/blocks';\n\nimport { Fragment } from '@wordpress/element';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\n\nfunction AdvancedOptions( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\ttype,\n\t\t\tdisabled,\n\t\t\tenableAutoComplete,\n\t\t\tautocomplete,\n\t\t\treadonly,\n\t\t\tadvanced,\n\t\t},\n\t\tsetAttributes,\n\t\tfieldType,\n\t\tclientId,\n\t} = props;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ fieldType ];\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn !! ( block && block.innerBlocks.length );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\tconst addOutput = () => {\n\t\tlet child = 'formello/button';\n\t\tif ( 'range' === type ) {\n\t\t\tchild = 'formello/output';\n\t\t}\n\t\treplaceInnerBlocks(\n\t\t\tprops.clientId,\n\t\t\tcreateBlocksFromInnerBlocksTemplate( [ [ child ] ] ),\n\t\t\ttrue\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t{ supported.includes( 'cols' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { advanced: newval } )\n\t\t\t\t\t}\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ supported.includes( 'autocomplete' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { enableAutoComplete: newval } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __( 'Hint for form autofill feature.', 'formello' ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ enableAutoComplete && supported.includes( 'autocomplete' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { autocomplete: newval } )\n\t\t\t\t\t}\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'range' === type && (\n\t\t\t\t {\n\t\t\t\t\t\tif ( newval ) {\n\t\t\t\t\t\t\tsetAttributes( { withOutput: true } );\n\t\t\t\t\t\t\taddOutput();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetAttributes( { withOutput: false } );\n\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [], true );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { disabled: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Make the control not accept clicks.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { readonly: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __( 'Make value not editable.', 'formello' ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t);\n}\n\nexport default withFilters( 'formello.advancedOptions' )( AdvancedOptions );\n","export const SUPPORTED_ATTRIBUTES = {\n\thidden: [ 'name', 'id', 'type', 'value' ],\n\ttext: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\ttel: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\turl: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\temail: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'autocomplete',\n\t],\n\tpassword: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'pattern',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'autocomplete',\n\t],\n\tnumber: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\tdate: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\ttime: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\trange: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\tcheckbox: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'checked',\n\t],\n\tradio: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'checked',\n\t],\n\tfile: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'required',\n\t\t'disabled',\n\t\t'accept',\n\t\t'capture',\n\t\t'multiple',\n\t],\n\tcolor: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t],\n\ttextarea: [\n\t\t'name',\n\t\t'id',\n\t\t'required',\n\t\t'value',\n\t\t'type', // hack to use one component\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'cols',\n\t\t'rows',\n\t],\n\tselect: [ 'name', 'id', 'required', 'readonly', 'disabled', 'multiple' ],\n};\n","import { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { SelectControl, ToggleControl } from '@wordpress/components';\n\nexport default function DatepickerSettings( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\tadvanced,\n\t\t\ttype,\n\t\t\tdateFormat,\n\t\t\ttimeFormat,\n\t\t\tenableTime,\n\t\t\tinlineCalendar,\n\t\t\tmode,\n\t\t\tminDate,\n\t\t},\n\t\tsetAttributes,\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t{ advanced && 'date' === type && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { minDate: val ? 'today' : false } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { dateFormat: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { enableTime: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t setAttributes( { mode: val } ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { inlineCalendar: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tButton,\n} from '@wordpress/components';\n\nimport { Fragment } from '@wordpress/element';\nimport MergeTags from '../merge-tags';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\n\nconst sanitizedName = ( content ) => {\n\treturn (\n\t\tcontent\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '_' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function Options( props ) {\n\tconst { attributes, setAttributes, clientId, setModalOpen, fieldType } =\n\t\tprops;\n\n\tconst {\n\t\ttype,\n\t\tname,\n\t\tvalue,\n\t\tplaceholder,\n\t\trequired,\n\t\tmultiple,\n\t\tchecked,\n\t\tshowHelp,\n\t} = attributes;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ fieldType ];\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { name: sanitizedName( val ) } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" attribute of the input element, and is used as a name for the form submission results.',\n\t\t\t\t\t\t'formello'\n\t\t\t\t\t) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t\t{ supported.includes( 'value' ) && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { value: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The initial value of the control field.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'placeholder' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { placeholder: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Text that appears in the form control when it has no value set.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'required' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { required: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'multiple' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { multiple: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'checked' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { checked: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! ( 'hidden' === type ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { showHelp: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ 'select' === fieldType && (\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetModalOpen( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage Options', 'formello' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { __ } from '@wordpress/i18n';\nimport { SVG, Rect, ToolbarButton } from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport { Asterisk } from '../../icons/icons';\n\nexport default function Toolbar( props ) {\n\tconst { attributes, setAttributes } = props;\n\tconst { required, showHelp, hideLabel, type } = attributes;\n\n\tconst toggleLabel = (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\tsetAttributes( { required: ! required } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ ( 'checkbox' || 'radio' ) !== type && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { hideLabel: ! hideLabel } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t {\n\t\t\t\t\tsetAttributes( { showHelp: ! showHelp } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\n\nimport {\n\tToggleControl,\n\tTextControl,\n\tSelectControl,\n\tPanelBody,\n} from '@wordpress/components';\n\nimport { Fragment } from '@wordpress/element';\nimport MergeTags from '../merge-tags';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\nimport DatepickerSettings from './date';\n\nimport { getPatternTabs, serializeFieldsName } from '../merge-tags/functions';\n\nfunction ValidationOptions( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\ttype,\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tadvanced,\n\t\t\tstep,\n\t\t\tminlength,\n\t\t\tmaxlength,\n\t\t\tvalidation,\n\t\t\tenableMismatch,\n\t\t\tpattern,\n\t\t\tmatch,\n\t\t\tmismatchMessage,\n\t\t},\n\t\tsetAttributes,\n\t\tclientId,\n\t} = props;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ type ?? 'textarea' ];\n\n\tif ( 'checkbox' === type || 'email' === type ) {\n\t\treturn null;\n\t}\n\n\tconst fields = serializeFieldsName();\n\n\tconst tabs = getPatternTabs();\n\n\treturn (\n\t\t\n\t\t\t{ 'date' === type && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { advanced: val } );\n\t\t\t\t\t} }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ( 'date' === type || 'time' === type ) && (\n\t\t\t\t\n\t\t\t) }\n\n\t\t\t{ applyFilters( 'formello.Validation', '', props ) }\n\n\t\t\t{ supported.includes( 'step' ) && ! advanced && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { min: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { max: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { step: Number( val ) } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\t{ supported.includes( 'minlength' ) && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { minlength: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Minimum length (number of characters) of value.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { maxlength: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Maximum length (number of characters) of value.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\t{ supported.includes( 'pattern' ) && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { pattern: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Pattern the value must match to be valid.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\t{ supported.includes( 'pattern' ) && (\n\t\t\t\t setAttributes( { validation: val } ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ supported.includes( 'mismatch' ) && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { enableMismatch: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t{ enableMismatch && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tsetAttributes( { match: val } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Select the field to match.',\n\t\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tsetAttributes( { mismatchMessage: val } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t) }\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t);\n}\n\nexport default ValidationOptions;\n","import { __ } from '@wordpress/i18n';\nimport { RichText, store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nimport clsx from 'clsx';\n\nexport default function Label( { attributes, setAttributes, context } ) {\n\tconst {\n\t\tlabelClass,\n\t\tlabelAlign,\n\t\tlabelVAlign,\n\t\thideLabel,\n\t\trequired,\n\t\tmultiple,\n\t\ttype,\n\t\tlabel,\n\t} = attributes;\n\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t\tisPreview: getSettings().__unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\n\tconst [ meta ] = useEntityProp(\n\t\t'postType',\n\t\t'formello_form',\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tconst labelClassName = clsx(\n\t\t'label-div',\n\t\tlabelClass,\n\t\tlabelAlign,\n\t\tlabelVAlign,\n\t\t{\n\t\t\thide: hideLabel,\n\t\t\trequired,\n\t\t\t'textarea-label': multiple || 'textarea' === type,\n\t\t}\n\t);\n\n\treturn (\n\t\t
    \n\t\t\t {\n\t\t\t\t\tsetAttributes( { label: val } );\n\t\t\t\t} }\n\t\t\t\tplaceholder={ __( 'Enter label…', 'formello' ) }\n\t\t\t\tallowedFormats={ [ 'core/bold', 'core/italic', 'core/link' ] }\n\t\t\t/>\n\n\t\t\t{ required && (\n\t\t\t\t\n\t\t\t\t\t{ context[ 'formello/requiredText' ] || '*' }\n\t\t\t\t\n\t\t\t) }\n\t\t
    \n\t);\n}\n","import { applyFilters } from '@wordpress/hooks';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nconst allowed = [\n\t'formello/input',\n\t'formello/select',\n\t'formello/textarea',\n\t'formello/multichoices',\n];\n\n/**\n * Find the input fields blocks IDS.\n */\nexport function getFieldsBlock() {\n\tconst fields = [];\n\tconst inputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/input' );\n\tconst textareas =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/textarea' );\n\tconst selects =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/select' );\n\tconst outputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/output' );\n\tconst multichoices = select( blockEditorStore ).getBlocksByName(\n\t\t'formello/multichoices'\n\t);\n\n\tconst fieldsId = inputs.concat( textareas, selects, outputs, multichoices );\n\n\tfieldsId.forEach( ( b ) => {\n\t\tconst block = select( blockEditorStore ).getBlock( b );\n\t\tif ( allowed.includes( block.name ) ) {\n\t\t\tfields.push( block );\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Validate form before saving\n */\nexport function validate() {\n\tconst fields = {\n\t\tnames: [],\n\t\tbuttons:\n\t\t\tselect( blockEditorStore ).getBlocksByName( 'formello/button' ),\n\t};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.names.push( b.attributes.name );\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Get fields type.\n */\nexport function getFieldsType() {\n\tconst fields = {};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\t// get block type by name\n\t\tlet type = b.name.split( '/' )[ 1 ];\n\t\tif ( 'input' === type ) {\n\t\t\ttype = b.attributes.type;\n\t\t}\n\n\t\tfields[ b.attributes.name ] = type;\n\t\tif ( b.attributes.enableRtf ) {\n\t\t\tfields[ b.attributes.name ] = 'richtext';\n\t\t}\n\t\tif ( b.attributes.multiple && 'select' === type ) {\n\t\t\tfields[ b.attributes.name ] = type + '-multiple';\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFields() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\ttitle: b.attributes.name,\n\t\t\ttag: '{{fields.' + b.attributes.name + '}}',\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFieldsName() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\tlabel: b.attributes.name,\n\t\t\tvalue: b.attributes.name,\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function getFieldsTags() {\n\tconst fields = serializeFields();\n\n\treturn [\n\t\t{\n\t\t\ttitle: 'All Data',\n\t\t\ttag: '{{fields.all_data}}',\n\t\t},\n\t\t...fields,\n\t];\n}\n\nexport function getConstraints() {\n\tconst constraints = {};\n\tconst fields = getFieldsBlock();\n\n\tif ( fields ) {\n\t\tfields.forEach( ( b ) => {\n\t\t\tconst constraint = getFieldConstraint( b );\n\t\t\tlet name = b.attributes.name;\n\n\t\t\tif ( b.attributes.multiple ) {\n\t\t\t\tname += '.*';\n\t\t\t}\n\t\t\tif ( constraint ) {\n\t\t\t\tconstraints[ name ] = constraint;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn constraints;\n}\n\nexport function getFieldConstraint( field ) {\n\tlet constraints = [];\n\n\tif ( field.attributes.type === 'url' ) {\n\t\tconstraints.push( 'url' );\n\t}\n\n\tif ( field.attributes.required ) {\n\t\tconstraints.push( 'required' );\n\t}\n\n\tif ( field.attributes.minlength ) {\n\t\tconstraints.push( 'minlength:' + field.attributes.minlength );\n\t}\n\n\tif ( field.attributes.maxlength ) {\n\t\tconstraints.push( 'maxlength:' + field.attributes.maxlength );\n\t}\n\n\tif ( field.attributes.min && 'date' !== field.attributes.type ) {\n\t\tconstraints.push( 'min:' + field.attributes.min );\n\t}\n\n\tif (\n\t\tfield.attributes.max &&\n\t\t'date' !== field.attributes.type &&\n\t\t'file' !== field.attributes.type\n\t) {\n\t\tconstraints.push( 'max:' + field.attributes.max );\n\t}\n\n\tif ( field.attributes.type === 'email' ) {\n\t\tconstraints.push( 'email' );\n\t}\n\n\tif (\n\t\tfield.attributes.type === 'number' ||\n\t\tfield.attributes.type === 'range'\n\t) {\n\t\tconstraints.push( 'numeric' );\n\t}\n\n\tif ( 'date' === field.attributes.type && ! field.attributes.advanced ) {\n\t\tconstraints.push( 'date' );\n\t}\n\n\tif ( field.attributes.pattern ) {\n\t\tconst regEx = new RegExp( field.attributes.pattern );\n\t\tconstraints.push( 'regex:' + regEx );\n\t}\n\n\tif ( field.attributes.enableMismatch && '' !== field.attributes.match ) {\n\t\tconstraints.push( 'same:' + field.attributes.match );\n\t}\n\n\tapplyFilters( 'formello.constraints', constraints, field );\n\n\tif ( constraints.length ) {\n\t\tconstraints = constraints.join( '|' );\n\t}\n\n\treturn constraints.length ? constraints : undefined;\n}\n\nexport function getMetaTags() {\n\tconst postType = select( 'core/editor' ).getCurrentPostType();\n\tconst postId = select( 'core/editor' ).getCurrentPostId();\n\n\tconst [ meta ] = useEntityProp( 'postType', postType, 'meta', postId );\n\tconst metaTags = [];\n\n\tfor ( const key in meta ) {\n\t\tif ( meta[ key ] !== Object( key ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst tag = {\n\t\t\ttitle: key,\n\t\t\ttag: `{{meta.${ key }}}`,\n\t\t};\n\t\tmetaTags.push( tag );\n\t}\n\n\treturn metaTags;\n}\n\nexport function getWordpressTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Post ID',\n\t\t\ttag: `{{wp.post_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Title',\n\t\t\ttag: `{{wp.post_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post URL',\n\t\t\ttag: `{{wp.post_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author',\n\t\t\ttag: `{{wp.post_author}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author Email',\n\t\t\ttag: `{{wp.post_author_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User ID',\n\t\t\ttag: `{{wp.user_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User First Name',\n\t\t\ttag: `{{wp.user_first_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Last Name',\n\t\t\ttag: `{{wp.user_last_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Display Name',\n\t\t\ttag: `{{wp.user_display_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Username',\n\t\t\ttag: `{{wp.user_username}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Email',\n\t\t\ttag: `{{wp.user_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User URL',\n\t\t\ttag: `{{wp.user_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site Title',\n\t\t\ttag: `{{wp.site_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site URL',\n\t\t\ttag: `{{wp.site_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Admin Email',\n\t\t\ttag: `{{wp.admin_email}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getFormTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Form ID',\n\t\t\ttag: `{{form.form_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Form Label',\n\t\t\ttag: `{{form.form_name}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getOtherTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Date',\n\t\t\ttag: `{{other.system_date}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Time',\n\t\t\ttag: `{{other.system_time}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Referrer URL',\n\t\t\ttag: `{{other.referrer}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User IP',\n\t\t\ttag: `{{other.user_ip}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getPatternTabs() {\n\tconst passwords = [\n\t\t{\n\t\t\ttitle: 'Password',\n\t\t\ttag: `^(?=.*[A-Za-z])(?=.*\\\\d)[A-Za-z\\\\d]{8,}$`,\n\t\t\tdescription: 'One uppercase, one number, at least 8 chars',\n\t\t},\n\t\t{\n\t\t\ttitle: 'Password with special characters',\n\t\t\ttag: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$`,\n\t\t\tdescription:\n\t\t\t\t'One uppercase, one number, one special chars, at least 8 chars',\n\t\t},\n\t];\n\n\tconst dates = [\n\t\t{\n\t\t\ttitle: 'dd/mm/yyyy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{4}$',\n\t\t},\n\t\t{\n\t\t\ttitle: 'dd/mm/yy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{2}$',\n\t\t},\n\t];\n\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'passwords',\n\t\t\ttitle: 'Passwords',\n\t\t\tdata: passwords,\n\t\t},\n\t\t{\n\t\t\tname: 'dates',\n\t\t\ttitle: 'Dates',\n\t\t\tdata: dates,\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport {\n\tBaseControl,\n\tDropdownMenu,\n\t__experimentalInputControl as InputControl,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { defaultTabs } from './use-tabs';\nimport TabContent from './tab-content';\n\nexport default function MergeTags( props ) {\n\tconst {\n\t\tlabel,\n\t\tvalue,\n\t\tplaceholder,\n\t\thelp,\n\t\tonChange,\n\t\ticon = moreVertical,\n\t\tclientId,\n\t\ttabs = defaultTabs( clientId ),\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) }\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t\n\t);\n}\n\nexport function MergeTagsMenu( props ) {\n\tconst { label, onChange, icon = moreVertical, clientId } = props;\n\n\tconst tabs = defaultTabs( clientId );\n\n\treturn (\n\t\t\n\t\t\t{ () => }\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { SearchControl, TabPanel, MenuItem } from '@wordpress/components';\nimport { useState, Fragment } from '@wordpress/element';\n\nexport default function TabContent( { tabs, onChange } ) {\n\tconst [ searchInput, setSearchInput ] = useState( '' );\n\n\tconst filterAddon = ( element ) => {\n\t\tif ( '' === searchInput ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn (\n\t\t\telement.title.toLowerCase().search( searchInput.toLowerCase() ) !==\n\t\t\t-1\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ ( tab ) =>\n\t\t\t\t\ttab.data\n\t\t\t\t\t\t.filter( ( element ) => {\n\t\t\t\t\t\t\treturn filterAddon( element );\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.map( ( data ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t onChange( data.tag ) }\n\t\t\t\t\t\t\t\t\tinfo={ data.description }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ data.title }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n}\n","import {\n\tgetFieldsTags,\n\tgetWordpressTags,\n\tgetOtherTags,\n\tgetMetaTags,\n} from './functions';\n\nexport function defaultTabs( clientId ) {\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'fields',\n\t\t\ttitle: 'Fields',\n\t\t\tdata: getFieldsTags( clientId ),\n\t\t},\n\t\t{\n\t\t\tname: 'wordpress',\n\t\t\ttitle: 'WordPress',\n\t\t\tdata: getWordpressTags(),\n\t\t},\n\t\t{\n\t\t\tname: 'other',\n\t\t\ttitle: 'Other',\n\t\t\tdata: getOtherTags(),\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","import { ReactComponent as Asterisk } from '../../assets/icons/asterisk.svg';\nimport { ReactComponent as Checkbox } from '../../assets/icons/checkbox.svg';\nimport { ReactComponent as Calendar } from '../../assets/icons/date-field.svg';\nimport { ReactComponent as Checkboxes } from '../../assets/icons/checkboxes.svg';\nimport { ReactComponent as Clock } from '../../assets/icons/clock-field.svg';\nimport { ReactComponent as Color } from '../../assets/icons/color-field.svg';\nimport { ReactComponent as Email } from '../../assets/icons/email-field.svg';\nimport { ReactComponent as Fieldset } from '../../assets/icons/fieldset.svg';\nimport { ReactComponent as Form } from '../../assets/icons/form.svg';\nimport { ReactComponent as GDPR } from '../../assets/icons/gdpr-field.svg';\nimport { ReactComponent as Hidden } from '../../assets/icons/hidden-field.svg';\nimport { ReactComponent as Input } from '../../assets/icons/text-field.svg';\nimport { ReactComponent as Logo } from '../../assets/icons/logo.svg';\nimport { ReactComponent as Number } from '../../assets/icons/number-field.svg';\nimport { ReactComponent as Password } from '../../assets/icons/password-field.svg';\nimport { ReactComponent as Range } from '../../assets/icons/range-field.svg';\nimport { ReactComponent as Radio } from '../../assets/icons/radio-field.svg';\nimport { ReactComponent as Radios } from '../../assets/icons/radio-buttons.svg';\nimport { ReactComponent as Select } from '../../assets/icons/select.svg';\nimport { ReactComponent as Tel } from '../../assets/icons/phone-field.svg';\nimport { ReactComponent as Textarea } from '../../assets/icons/textarea-field.svg';\nimport { ReactComponent as Url } from '../../assets/icons/url-field.svg';\n\nexport {\n\tAsterisk,\n\tCheckbox,\n\tCheckboxes,\n\tClock,\n\tColor,\n\tEmail,\n\tFieldset,\n\tForm,\n\tGDPR,\n\tHidden,\n\tInput,\n\tLogo,\n\tNumber,\n\tPassword,\n\tRadio,\n\tRange,\n\tRadios,\n\tSelect,\n\tTel,\n\tTextarea,\n\tUrl,\n\tCalendar,\n};\n","// extracted by mini-css-extract-plugin\nexport {};","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"hooks\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"primitives\"];","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"blocks/textarea/index\": 0,\n\t\"blocks/textarea/style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkformello\"] = self[\"webpackChunkformello\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"blocks/textarea/style-index\"], () => (__webpack_require__(\"./src/blocks/textarea/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetSpacingClassesAndStyles","getSpacingClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","clsx","getInputClassesAndStyles","attributes","borderProps","spacingProps","colorProps","name","type","advanced","hideLabel","containerClass","labelClass","hide","inputClass","className","inputStyle","style","__","InspectorControls","InspectorAdvancedControls","BlockControls","RichText","useBlockProps","__experimentalUseBorderProps","useBorderProps","ToolbarGroup","Label","Options","ValidationOptions","AdvancedOptions","Toolbar","SUPPORTED_ATTRIBUTES","jsx","_jsx","jsxs","_jsxs","Edit","props","setAttributes","cols","rows","value","placeholder","showHelp","help","supported","textarea","fieldProps","blockProps","children","includes","fieldType","onChange","event","target","tagName","val","allowedFormats","multiline","save","metadata","registerBlockType","createBlock","Textarea","transforms","from","blocks","transform","icon","edit","id","validation","label","required","requiredText","htmlAttrs","Object","fromEntries","map","col","htmlFor","Content","length","ToggleControl","TextControl","withFilters","useSelect","useDispatch","store","blockEditorStore","createBlocksFromInnerBlocksTemplate","Fragment","disabled","enableAutoComplete","autocomplete","readonly","clientId","hasInnerBlocks","select","getBlock","block","innerBlocks","replaceInnerBlocks","addOutput","child","checked","newval","__nextHasNoMarginBottom","withOutput","hidden","text","tel","url","email","password","number","date","time","range","checkbox","radio","file","color","SelectControl","DatepickerSettings","dateFormat","timeFormat","enableTime","inlineCalendar","mode","minDate","options","PanelBody","Button","MergeTags","sanitizedName","content","replace","toLowerCase","setModalOpen","multiple","title","initialOpen","variant","onClick","SVG","Rect","ToolbarButton","Asterisk","toggleLabel","xmlns","viewBox","x","y","width","height","stroke","fill","strokeWidth","isPressed","applyFilters","getPatternTabs","serializeFieldsName","min","max","step","minlength","maxlength","enableMismatch","pattern","match","mismatchMessage","fields","tabs","Number","useEntityProp","context","labelAlign","labelVAlign","postType","postId","getSettings","getCurrentPostType","getCurrentPostId","isPreview","__unstableIsPreviewMode","meta","labelClassName","allowed","getFieldsBlock","inputs","getBlocksByName","textareas","selects","outputs","multichoices","fieldsId","concat","forEach","b","push","validate","names","buttons","fieldsBlock","getFieldsType","split","enableRtf","serializeFields","tag","getFieldsTags","getConstraints","constraints","constraint","getFieldConstraint","field","regEx","RegExp","join","undefined","getMetaTags","metaTags","key","getWordpressTags","tags","getFormTags","getOtherTags","passwords","description","dates","data","BaseControl","DropdownMenu","__experimentalInputControl","InputControl","moreVertical","defaultTabs","TabContent","suffix","toggleProps","isSmall","size","MergeTagsMenu","SearchControl","TabPanel","MenuItem","useState","searchInput","setSearchInput","filterAddon","element","search","tab","filter","info","ReactComponent","Checkbox","Calendar","Checkboxes","Clock","Color","Email","Fieldset","Form","GDPR","Hidden","Input","Logo","Password","Range","Radio","Radios","Select","Tel","Url"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"blocks/textarea/index.js","mappings":"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","sources":["webpack://formello/./assets/icons/asterisk.svg","webpack://formello/./assets/icons/checkbox.svg","webpack://formello/./assets/icons/checkboxes.svg","webpack://formello/./assets/icons/clock-field.svg","webpack://formello/./assets/icons/color-field.svg","webpack://formello/./assets/icons/date-field.svg","webpack://formello/./assets/icons/email-field.svg","webpack://formello/./assets/icons/fieldset.svg","webpack://formello/./assets/icons/form.svg","webpack://formello/./assets/icons/gdpr-field.svg","webpack://formello/./assets/icons/hidden-field.svg","webpack://formello/./assets/icons/logo.svg","webpack://formello/./assets/icons/number-field.svg","webpack://formello/./assets/icons/password-field.svg","webpack://formello/./assets/icons/phone-field.svg","webpack://formello/./assets/icons/radio-buttons.svg","webpack://formello/./assets/icons/radio-field.svg","webpack://formello/./assets/icons/range-field.svg","webpack://formello/./assets/icons/select.svg","webpack://formello/./assets/icons/text-field.svg","webpack://formello/./assets/icons/textarea-field.svg","webpack://formello/./assets/icons/url-field.svg","webpack://formello/./node_modules/@wordpress/icons/build-module/library/more-vertical.js","webpack://formello/./src/blocks/input/use-field-props.js","webpack://formello/./src/blocks/textarea/edit.js","webpack://formello/./src/blocks/textarea/index.js","webpack://formello/./src/blocks/textarea/save.js","webpack://formello/./src/components/field-options/advanced.js","webpack://formello/./src/components/field-options/constants.js","webpack://formello/./src/components/field-options/date.js","webpack://formello/./src/components/field-options/index.js","webpack://formello/./src/components/field-options/toolbar.js","webpack://formello/./src/components/field-options/validation.js","webpack://formello/./src/components/label.js","webpack://formello/./src/components/merge-tags/functions.js","webpack://formello/./src/components/merge-tags/index.js","webpack://formello/./src/components/merge-tags/tab-content.js","webpack://formello/./src/components/merge-tags/use-tabs.js","webpack://formello/./src/icons/icons.js","webpack://formello/./src/blocks/textarea/style.scss","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"blocks\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"coreData\"]","webpack://formello/external window [\"wp\",\"data\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"hooks\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/external window [\"wp\",\"primitives\"]","webpack://formello/./node_modules/clsx/dist/clsx.mjs","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/chunk loaded","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/webpack/runtime/jsonp chunk loading","webpack://formello/webpack/before-startup","webpack://formello/webpack/startup","webpack://formello/webpack/after-startup"],"sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgAsterisk = function SvgAsterisk(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M12.75 6h-1.5v4.19L8.288 7.226l-1.061 1.06 2.962 2.963H6v1.5h4.19l-2.963 2.962 1.06 1.061 2.963-2.962V18h1.5v-4.19l2.962 2.963 1.061-1.06-2.962-2.963H18v-1.5h-4.19l2.963-2.962-1.06-1.061-2.963 2.962V6Z\"\n })));\n};\nexport { SvgAsterisk as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjc1IDZIMTEuMjVWMTAuMTg5M0w4LjI4NzY5IDcuMjI3MDNMNy4yMjcwMyA4LjI4NzY5TDEwLjE4OTMgMTEuMjVINlYxMi43NUgxMC4xODkzTDcuMjI3MDMgMTUuNzEyM0w4LjI4NzY5IDE2Ljc3M0wxMS4yNSAxMy44MTA3VjE4SDEyLjc1VjEzLjgxMDdMMTUuNzEyMyAxNi43NzNMMTYuNzczIDE1LjcxMjNMMTMuODEwNyAxMi43NUgxOFYxMS4yNUgxMy44MTA3TDE2Ljc3MyA4LjI4NzY5TDE1LjcxMjMgNy4yMjcwM0wxMi43NSAxMC4xODkzVjZaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz4KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckbox = function SvgCheckbox(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zm1 2v14h14V5H5zm6.003 11L6.76 11.757l1.414-1.414 2.829 2.829 5.656-5.657 1.415 1.414L11.003 16z\"\n })));\n};\nexport { SvgCheckbox as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPGc+CiAgICAgICAgPHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIvPgogICAgICAgIDxwYXRoIGQ9Ik00IDNoMTZhMSAxIDAgMCAxIDEgMXYxNmExIDEgMCAwIDEtMSAxSDRhMSAxIDAgMCAxLTEtMVY0YTEgMSAwIDAgMSAxLTF6bTEgMnYxNGgxNFY1SDV6bTYuMDAzIDExTDYuNzYgMTEuNzU3bDEuNDE0LTEuNDE0IDIuODI5IDIuODI5IDUuNjU2LTUuNjU3IDEuNDE1IDEuNDE0TDExLjAwMyAxNnoiIC8+CiAgICA8L2c+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgCheckboxes = function SvgCheckboxes(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 24,\n height: 24,\n viewBox: \"0 0 300.396 300.396\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.048 216.749H4.076a3 3 0 0 0-3 3v59.973a3 3 0 0 0 3 3h59.972a3 3 0 0 0 3-3v-59.973c0-1.656-1.344-3-3-3zM64.048 17.675H4.076A4.075 4.075 0 0 0 0 21.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076V21.749a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986V36.809h29.849v29.852H19.138zM64.048 116.675H4.076A4.075 4.075 0 0 0 0 120.749v59.973a4.076 4.076 0 0 0 4.076 4.076h59.972a4.075 4.075 0 0 0 4.075-4.076v-59.973a4.074 4.074 0 0 0-4.075-4.074zm-44.91 48.986v-29.852h29.849v29.852H19.138zM297.396 231.036h-186.67a3 3 0 0 0-3 3v31.4a3 3 0 0 0 3 3h186.67c1.656 0 3-1.344 3-3v-31.4a3 3 0 0 0-3-3zM110.729 169.438h186.667a3 3 0 0 0 3-3v-31.406c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3zM110.729 70.438h186.667a3 3 0 0 0 3-3V36.032c0-1.656-1.344-3-3-3H110.729a3 3 0 0 0-3 3v31.406c0 1.659 1.342 3 3 3z\"\n })));\n};\nexport { SvgCheckboxes as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiAKCSB2aWV3Qm94PSIwIDAgMzAwLjM5NiAzMDAuMzk2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8cGF0aCBkPSJNNjQuMDQ4LDIxNi43NDlINC4wNzZjLTEuNjU3LDAtMywxLjM0NC0zLDN2NTkuOTczYzAsMS42NTgsMS4zNDMsMywzLDNoNTkuOTcyYzEuNjU2LDAsMy0xLjM0MiwzLTN2LTU5Ljk3MwoJCUM2Ny4wNDgsMjE4LjA5Myw2NS43MDQsMjE2Ljc0OSw2NC4wNDgsMjE2Ljc0OXoiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTcuNjc1SDQuMDc2QzEuODI1LDE3LjY3NSwwLDE5LjQ5OSwwLDIxLjc0OXY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NlYyMS43NDlDNjguMTIzLDE5LjQ5OSw2Ni4yOTksMTcuNjc1LDY0LjA0OCwxNy42NzV6IE0xOS4xMzgsNjYuNjYxVjM2LjgwOWgyOS44NDl2MjkuODUySDE5LjEzOHoKCQkiLz4KCTxwYXRoIGQ9Ik02NC4wNDgsMTE2LjY3NUg0LjA3NmMtMi4yNTEsMC00LjA3NiwxLjgyNC00LjA3Niw0LjA3NHY1OS45NzNjMCwyLjI1MiwxLjgyNSw0LjA3Niw0LjA3Niw0LjA3Nmg1OS45NzIKCQljMi4yNTEsMCw0LjA3NS0xLjgyNCw0LjA3NS00LjA3NnYtNTkuOTczQzY4LjEyMywxMTguNDk5LDY2LjI5OSwxMTYuNjc1LDY0LjA0OCwxMTYuNjc1eiBNMTkuMTM4LDE2NS42NjF2LTI5Ljg1MmgyOS44NDl2MjkuODUyCgkJSDE5LjEzOHoiLz4KCTxwYXRoIGQ9Ik0yOTcuMzk2LDIzMS4wMzZoLTE4Ni42N2MtMS42NTcsMC0zLDEuMzQyLTMsM3YzMS40YzAsMS42NTYsMS4zNDMsMywzLDNoMTg2LjY3YzEuNjU2LDAsMy0xLjM0NCwzLTN2LTMxLjQKCQlDMzAwLjM5NiwyMzIuMzc4LDI5OS4wNTMsMjMxLjAzNiwyOTcuMzk2LDIzMS4wMzZ6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSwxNjkuNDM4aDE4Ni42NjdjMS42NTYsMCwzLTEuMzQyLDMtM3YtMzEuNDA2YzAtMS42NTYtMS4zNDQtMy0zLTNIMTEwLjcyOWMtMS42NTcsMC0zLDEuMzQ0LTMsM3YzMS40MDYKCQlDMTA3LjcyOSwxNjguMDk3LDEwOS4wNzEsMTY5LjQzOCwxMTAuNzI5LDE2OS40Mzh6Ii8+Cgk8cGF0aCBkPSJNMTEwLjcyOSw3MC40MzhoMTg2LjY2N2MxLjY1NiwwLDMtMS4zNDIsMy0zVjM2LjAzMmMwLTEuNjU2LTEuMzQ0LTMtMy0zSDExMC43MjljLTEuNjU3LDAtMywxLjM0NC0zLDN2MzEuNDA2CgkJQzEwNy43MjksNjkuMDk3LDEwOS4wNzEsNzAuNDM4LDExMC43MjksNzAuNDM4eiIvPgo8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgClockField = function SvgClockField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 -8 72 72\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36 0a28 28 0 1 0 28 28A28 28 0 0 0 36 0Zm0 50a22 22 0 1 1 22-22 22.07 22.07 0 0 1-22 22Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.59 27.14H38V12a2.31 2.31 0 1 0-4.61 0v17.44a2.31 2.31 0 0 0 2.3 2.31h14.9a2.31 2.31 0 1 0 0-4.61Z\"\n })));\n};\nexport { SvgClockField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAtOCA3MiA3MiIgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+Y2xvY2stbzwvdGl0bGU+PHBhdGggZD0iTTM2LDBBMjgsMjgsMCwxLDAsNjQsMjgsMjgsMjgsMCwwLDAsMzYsMFptMCw1MEEyMiwyMiwwLDEsMSw1OCwyOCwyMi4wNywyMi4wNywwLDAsMSwzNiw1MFoiLz48cGF0aCBkPSJNNTAuNTksMjcuMTRIMzhWMTJhMi4zMSwyLjMxLDAsMSwwLTQuNjEsMFYyOS40NGEyLjMxLDIuMzEsMCwwLDAsMi4zLDIuMzFINTAuNTlhMi4zMSwyLjMxLDAsMSwwLDAtNC42MVoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgColorField = function SvgColorField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 36 36\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.23 14.89c-2.1-.56-4.93 1.8-6.34.3-1.71-1.82 2.27-5.53 1.86-8.92-.33-2.78-3.51-4.08-6.66-4.1A18.5 18.5 0 0 0 7.74 7.59c-6.64 6.59-8.07 16-1.37 22.48 6.21 6 16.61 4.23 22.67-1.4a17.73 17.73 0 0 0 4.22-6.54c1.08-2.9 1.18-6.64-1.03-7.24ZM9.4 10.57a2.23 2.23 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.81 2.53 2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53ZM5.07 20.82a2.22 2.22 0 0 1 1.82-2.53 2.22 2.22 0 0 1 2.86 1.21A2.23 2.23 0 0 1 7.94 22a2.24 2.24 0 0 1-2.87-1.18Zm7 8.33a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.8-2.53 2.23 2.23 0 0 1 2.87 1.21A2.22 2.22 0 0 1 12 29.15ZM15 8.26a2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.82 2.53A2.21 2.21 0 0 1 15 8.26Zm5.82 22.19a2.22 2.22 0 0 1-2.87-1.21 2.23 2.23 0 0 1 1.81-2.53 2.24 2.24 0 0 1 2.87 1.21 2.22 2.22 0 0 1-1.85 2.53Zm5-10.46a3.2 3.2 0 0 1-1.69 1.76 3.53 3.53 0 0 1-1.4.3 2.78 2.78 0 0 1-2.56-1.5 2.49 2.49 0 0 1-.07-2 3.2 3.2 0 0 1 1.69-1.76 3 3 0 0 1 4 1.2 2.54 2.54 0 0 1 0 2.01Z\",\n \"data-name\": \"Layer 3\"\n })));\n};\nexport { SvgColorField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDM2IDM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgoNPHRpdGxlPmNvbG9yX3BhbGV0dGVfc29saWQ8L3RpdGxlPgoNPGcgaWQ9ImI4OTRlMzJiLTA0MzctNDVhYi1iOGJmLTlmMGM0ZThmNTdjZCIgZGF0YS1uYW1lPSJMYXllciAzIj4KDTxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTguNSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMywwLDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywyLjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEsMS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgDateField = function SvgDateField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38 4V0h-4v4H14V0h-4v4H0v44h48V4H38zm6 40H4V19.9h40V44zM4 15.9V8h6v4h4V8h20v4h4V8h6v7.9H4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.5 24h6v6h-6zM16.667 24h6v6h-6zM25.583 24h6v6h-6zM34.5 24h6v6h-6zM7.5 33h6v6h-6zM16.667 33h6v6h-6zM25.583 33h6v6h-6zM34.5 33h6v6h-6z\"\n })));\n};\nexport { SvgDateField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCFET0NUWVBFIHN2ZyAgUFVCTElDICctLy9XM0MvL0RURCBTVkcgMS4xLy9FTicgICdodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQnPgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA0OCA0OCIgaWQ9IkxheWVyXzMiIHZlcnNpb249IjEuMSIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cg08Zz4KDTxwYXRoIGQ9Ik0zOCw0VjBoLTR2NEgxNFYwaC00djRIMHYxMS45djRWNDhoNDhWMTkuOXYtNFY0SDM4eiBNNDQsNDRINFYxOS45aDQwVjQ0eiBNNCwxNS45VjhoNnY0aDRWOGgyMHY0aDRWOGg2djcuOUg0eiIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iNy41IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMTYuNjY3IiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMjUuNTgzIiB5PSIyNCIvPgoNPHJlY3QgaGVpZ2h0PSI2IiB3aWR0aD0iNiIgeD0iMzQuNSIgeT0iMjQiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjcuNSIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjE2LjY2NyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjI1LjU4MyIgeT0iMzMiLz4KDTxyZWN0IGhlaWdodD0iNiIgd2lkdGg9IjYiIHg9IjM0LjUiIHk9IjMzIi8+Cg08L2c+Cg08L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmailField = function SvgEmailField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2c5.43 0 9.848 4.327 9.996 9.72L22 12v1c0 2.173-1.523 4-3.5 4-1.173 0-2.186-.643-2.816-1.62a5 5 0 1 1 1.311-3.597L17 12v1c0 1.14.716 2 1.5 2 .745 0 1.428-.775 1.495-1.831L20 13v-1a8 8 0 1 0-4.677 7.28 1 1 0 1 1 .831 1.819A9.966 9.966 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2Zm0 7a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z\"\n })));\n};\nexport { SvgEmailField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwYXRoIGQ9Ik0xMiwyIEMxNy40MjkyMzk5LDIgMjEuODQ3OTMxNyw2LjMyNjY3MDc5IDIxLjk5NjE1ODIsMTEuNzIwMDk1MiBMMjIsMTIgTDIyLDEzIEMyMiwxNS4xNzI5MjA4IDIwLjQ3NzQzNCwxNyAxOC41LDE3IEMxNy4zMjY5MzkxLDE3IDE2LjMxMzk1MjksMTYuMzU3MDI0NCAxNS42ODM5MzgyLDE1LjM4MDMwMjQgQzE0Ljc3MDU5MywxNi4zNzU3ODIzIDEzLjQ1ODE5MzQsMTcgMTIsMTcgQzkuMjM4NTc2MjUsMTcgNywxNC43NjE0MjM3IDcsMTIgQzcsOS4yMzg1NzYyNSA5LjIzODU3NjI1LDcgMTIsNyBDMTQuNjg4NzU0Nyw3IDE2Ljg4MTgxODEsOS4xMjIzMDY3MSAxNi45OTUzODA1LDExLjc4MzExMDQgTDE3LDEyIEwxNywxMyBDMTcsMTQuMTQwNzg3NyAxNy43MTYwMTAzLDE1IDE4LjUsMTUgQzE5LjI0NDc5MDIsMTUgMTkuOTI4MjI5LDE0LjIyNDU2MDkgMTkuOTk0NzEwOSwxMy4xNjg5MzQxIEwyMCwxMyBMMjAsMTIgQzIwLDcuNTgxNzIyIDE2LjQxODI3OCw0IDEyLDQgQzcuNTgxNzIyLDQgNCw3LjU4MTcyMiA0LDEyIEM0LDE2LjQxODI3OCA3LjU4MTcyMiwyMCAxMiwyMCBDMTMuMTYzMDk0OCwyMCAxNC4yODkyODIyLDE5Ljc1MjI2MTggMTUuMzIyNTE1OSwxOS4yNzk4MzMxIEMxNS44MjQ3ODc2LDE5LjA1MDE3NzcgMTYuNDE4MTMxNywxOS4yNzExNzcgMTYuNjQ3Nzg3LDE5Ljc3MzQ0ODcgQzE2Ljg3NzQ0MjMsMjAuMjc1NzIwNSAxNi42NTY0NDMsMjAuODY5MDY0NiAxNi4xNTQxNzEzLDIxLjA5ODcxOTkgQzE0Ljg2MTIxOCwyMS42ODk5MDEgMTMuNDUxNTQ2MywyMiAxMiwyMiBDNi40NzcxNTI1LDIyIDIsMTcuNTIyODQ3NSAyLDEyIEMyLDYuNDc3MTUyNSA2LjQ3NzE1MjUsMiAxMiwyIFogTTEyLDkgQzEwLjM0MzE0NTgsOSA5LDEwLjM0MzE0NTggOSwxMiBDOSwxMy42NTY4NTQyIDEwLjM0MzE0NTgsMTUgMTIsMTUgQzEzLjY1Njg1NDIsMTUgMTUsMTMuNjU2ODU0MiAxNSwxMiBDMTUsMTAuMzQzMTQ1OCAxMy42NTY4NTQyLDkgMTIsOSBaIi8+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgFieldset = function SvgFieldset(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 80,\n height: 80,\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 20h1v1H1v-2h1zm20 0h-1v1h2v-2h-1zM1 5h1V4h1V3H1zm1 2H1v2h1zm0 4H1v2h1zm20-2h1V7h-1zm0 4h1v-2h-1zM2 15H1v2h1zm20 2h1v-2h-1zM5 4h2V3H5zm6 0V3H9v1zm2 0h2V3h-2zm6-1h-2v1h2zM5 21h2v-1H5zm4 0h2v-1H9zm4 0h2v-1h-2zm4 0h2v-1h-2zm4-17h1v1h1V3h-2zm-1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1V8a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19V8H5v2h14m1 4v2a1.001 1.001 0 0 1-1 1H5a1.001 1.001 0 0 1-1-1v-2a1.001 1.001 0 0 1 1-1h14a1.001 1.001 0 0 1 1 1zm-.999 2H19v-2H5v2h14\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgFieldset as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MHB4IiBoZWlnaHQ9IjgwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMiAyMGgxdjFIMXYtMmgxem0yMCAwaC0xdjFoMnYtMmgtMXpNMSA1aDFWNGgxVjNIMXptMSAySDF2Mmgxem0wIDRIMXYyaDF6bTIwLTJoMVY3aC0xem0wIDRoMXYtMmgtMXpNMiAxNUgxdjJoMXptMjAgMmgxdi0yaC0xek01IDRoMlYzSDV6bTYgMFYzSDl2MXptMiAwaDJWM2gtMnptNi0xaC0ydjFoMnpNNSAyMWgydi0xSDV6bTQgMGgydi0xSDl6bTQgMGgydi0xaC0yem00IDBoMnYtMWgtMnptNC0xN2gxdjFoMVYzaC0yem0tMSA0djJhMS4wMDEgMS4wMDEgMCAwIDEtMSAxSDVhMS4wMDEgMS4wMDEgMCAwIDEtMS0xVjhhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOVY4SDV2MmgxNG0xIDR2MmExLjAwMSAxLjAwMSAwIDAgMS0xIDFINWExLjAwMSAxLjAwMSAwIDAgMS0xLTF2LTJhMS4wMDEgMS4wMDEgMCAwIDEgMS0xaDE0YTEuMDAxIDEuMDAxIDAgMCAxIDEgMXptLS45OTkgMkgxOXYtMkg1djJoMTQiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgForm = function SvgForm(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.2 12.994a.312.312 0 0 1-.188-.191C1 12.76.999 12.113 1 6.982V1.208l.022-.045a.328.328 0 0 1 .14-.14L1.208 1h11.585l.05.025a.31.31 0 0 1 .136.135l.021.039v5.783c0 5.377 0 5.787-.013 5.831a.314.314 0 0 1-.142.162L12.8 13H7.012c-3.457.001-5.8 0-5.817-.01zm11.236-5.992V1.568H1.573v10.857c0 .01 1.099.01 5.436.01h5.432V7.003zM5.574 10.72v-.86h1.712v1.72H5.574v-.86zm1.144 0v-.284h-.576v.568h.576v-.284zm1.145 0v-.284h3.432v.568H7.863v-.284zM5.574 7.572V6.428h5.72v2.288h-5.72V7.572zm5.144 0V7H6.142v.566c0 .311 0 .569.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.289h2.28v.577h-2.28v-.288zM5.575 4.14V2.996h5.72v2.288h-5.72V4.14zm5.144 0v-.572H6.142v.566c0 .31 0 .568.01.572 0 0 1.033.01 2.288.01h2.282v-.572zm-8 0v-.284h2.28v.567h-2.28V4.14z\"\n })));\n};\nexport { SvgForm as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHZpZXdCb3g9IjAgMCAxNCAxNCIgcm9sZT0iaW1nIiBmb2N1c2FibGU9ImZhbHNlIiBhcmlhLWhpZGRlbj0idHJ1ZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtIDEuMTk5Nzk5NSwxMi45OTM5MTYgYyAtMC4wNzkwMzQsLTAuMDIzIC0wLjE2NDA3MSwtMC4xMDkzIC0wLjE4Nzk4MTMsLTAuMTkxNCAtMC4wMTIwMDUsLTAuMDQyIC0wLjAxMzAwNiwtMC42ODk1IC0wLjAxMTAwNSwtNS44MjEwMDAzIGwgMCwtNS43NzQgMC4wMjIwMSwtMC4wNDUgYyAwLjAyODAxMiwtMC4wNTcgMC4wODMwMzYsLTAuMTExNyAwLjE0MDE2MDYsLTAuMTQwMSBsIDAuMDQ1MDE5LC0wLjAyMiA1Ljc5MjIwNDEsMCA1Ljc5MjMwNDEsMCAwLjA1MTAyLDAuMDI1IGMgMC4wNTYwMiwwLjAyNyAwLjEwMzY0NSwwLjA3NSAwLjEzNTQ1OSwwLjEzNDUgbCAwLjAyMTAxLDAuMDM5IDAsNS43ODMyIGMgMCw1LjM3NjUwMDMgMCw1Ljc4NjYwMDMgLTAuMDEzMDEsNS44MzExMDAzIC0wLjAxOTAxLDAuMDYgLTAuMDc5MDMsMC4xMjkxIC0wLjE0MTc2MSwwLjE2MjEgbCAtMC4wNDYwMiwwLjAyNCAtNS43ODc3MDIzLDAgYyAtMy40NTYyOTQyLDllLTQgLTUuNzk5MjA3LDAgLTUuODE2MDE0MywtMC4wMSB6IG0gMTEuMjM2NjU3NSwtNS45OTE5MDAzIDAsLTUuNDM0MiAtNS40MzE5NDgxLDAgLTUuNDMxODQ4MiwwIDAsNS40MjI5IGMgMCwyLjk4MjYgLTQuMDAyZS00LDUuNDI4MDAwMyAwLDUuNDM0MjAwMyAwLDAuMDEgMS4wOTkwNzUxLDAuMDExIDUuNDM2NTUwMiwwLjAxMSBsIDUuNDMyMTQ4MSwwIDAsLTUuNDM0MjAwMyB6IG0gLTYuODYxOTY2MywzLjcxODEwMDMgMCwtMC44NjAzMDAzIDAuODU1NzY5OSwwIDAuODU1NzcsMCAwLDAuODYwMzAwMyAwLDAuODYwMyAtMC44NTU3NywwIC0wLjg1NTc2OTksMCAwLC0wLjg2MDMgeiBtIDEuMTQzOTk0NSwwIDAsLTAuMjgzOCAtMC4yODgyMjQ2LDAgLTAuMjg4MzI0NiwwIDAsMC4yODM4IDAsMC4yODM3IDAuMjg4MzI0NiwwIDAuMjg4MjI0NiwwIDAsLTAuMjgzNyB6IG0gMS4xNDQwOTQ3LDAgMCwtMC4yODM4IDEuNzE2MDQxOCwwIDEuNzE2MDQxMywwIDAsMC4yODM4IDAsMC4yODM3IC0xLjcxNjA0MTMsMCAtMS43MTYwNDE4LDAgMCwtMC4yODM3IHogbSAtMi4yODgwODkyLC0zLjE0ODMwMDMgMCwtMS4xNDQxIDIuODYwMDM2NCwwIDIuODYwMTM1OSwwIDAsMS4xNDQxIDAsMS4xNDM5IC0yLjg2MDEzNTksMCAtMi44NjAwMzY0LDAgMCwtMS4xNDM5IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEzIDAsMC41Njg3IDAuMDEwMDA0LDAuNTcyIDAsMCAxLjAzMjk0NjYsMC4wMSAyLjI4ODA4OTIsMC4wMSBsIDIuMjgyMDg2OCwwIDAsLTAuNTcyIHogbSAtNy45OTkyNTc4LDAgMCwtMC4yODg0IDEuMTM5NTkyNywwIDEuMTM5NDkyNSwwIDAsMC4yODg0IDAsMC4yODgyIC0xLjEzOTQ5MjUsMCAtMS4xMzk1OTI3LDAgMCwtMC4yODgyIHogbSAyLjg1NTYzNDUsLTMuNDMyMSAwLC0xLjE0NDEgMi44NjAwMzY0LDAgMi44NjAxMzU5LDAgMCwxLjE0NDEgMCwxLjE0NCAtMi44NjAxMzU5LDAgLTIuODYwMDM2NCwwIDAsLTEuMTQ0IHogbSA1LjE0MzYyMzMsMCAwLC0wLjU3MjEgLTIuMjg4MDg4OCwwIC0yLjI4ODA4OTIsMCAwLDAuNTY2MSBjIDAsMC4zMTEyIDAsMC41Njg2IDAuMDEwMDA0LDAuNTcxOSAwLDAgMS4wMzI5NDY2LDAuMDEgMi4yODgwODkyLDAuMDEgbCAyLjI4MjA4NjgsMCAwLC0wLjU3MTkgeiBtIC03Ljk5OTI1NzgsMCAwLC0wLjI4MzkgMS4xMzk1OTI3LDAgMS4xMzk0OTI1LDAgMCwwLjI4MzkgMCwwLjI4MzcgLTEuMTM5NDkyNSwwIC0xLjEzOTU5MjcsMCAwLC0wLjI4MzcgeiIvPjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGdprField = function SvgGdprField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h20v20H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 2s3 2 7 2c0 11-7 14-7 14S3 15 3 4c4 0 7-2 7-2zm0 8h5s1-1 1-5c0 0-5-1-6-2v7H5c1 4 5 7 5 7v-7z\"\n })));\n};\nexport { SvgGdprField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+Cgk8cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KCTxnPgoJCTxwYXRoIGQ9Ik0xMCAyczMgMiA3IDJjMCAxMS03IDE0LTcgMTRTMyAxNSAzIDRjNCAwIDctMiA3LTJ6bTAgOGg1czEtMSAxLTVjMCAwLTUtMS02LTJ2N0g1YzEgNCA1IDcgNSA3di03eiIvPgoJPC9nPgo8L3N2Zz4K\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgHiddenField = function SvgHiddenField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 1000 1000\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M499 270q57 0 104.5 28t75.5 76 28 104q0 39-15 76l122 122q97-81 142-198-36-91-104-162T694 206q-93-40-195-40-86 0-166 29l90 90q38-15 76-15zM83 157l95 94 19 20q-52 40-91.5 93T42 478q36 91 104.5 162T304 750q93 40 195 40 95 0 183-35l139 139 53-53-738-737zm230 230 65 64q-4 15-4 27 0 34 17 62.5t45.5 45.5 62.5 17q14 0 27-3l65 64q-45 22-92 22-56 0-104-28t-76-76-28-104q0-47 22-91zm180-33 131 131v-6q0-34-16.5-63t-45-45.5T500 354h-7z\"\n })));\n};\nexport { SvgHiddenField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwMDAgMTAwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik00OTkgMjcwcTU3IDAgMTA0LjUgMjh0NzUuNSA3NiAyOCAxMDRxMCAzOS0xNSA3NmwxMjIgMTIycTk3LTgxIDE0Mi0xOTgtMzYtOTEtMTA0LTE2MlQ2OTQgMjA2cS05My00MC0xOTUtNDAtODYgMC0xNjYgMjlsOTAgOTBxMzgtMTUgNzYtMTV6TTgzIDE1N2w5NSA5NCAxOSAyMHEtNTIgNDAtOTEuNSA5M1Q0MiA0NzhxMzYgOTEgMTA0LjUgMTYyVDMwNCA3NTBxOTMgNDAgMTk1IDQwIDk1IDAgMTgzLTM1bDEzOSAxMzkgNTMtNTMtNzM4LTczN3ptMjMwIDIzMGw2NSA2NHEtNCAxNS00IDI3IDAgMzQgMTcgNjIuNXQ0NS41IDQ1LjUgNjIuNSAxN3ExNCAwIDI3LTNsNjUgNjRxLTQ1IDIyLTkyIDIyLTU2IDAtMTA0LTI4dC03Ni03Ni0yOC0xMDRxMC00NyAyMi05MXptMTgwLTMzbDEzMSAxMzF2LTZxMC0zNC0xNi41LTYzdC00NS00NS41VDUwMCAzNTRoLTd6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgLogo = function SvgLogo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 341.333,\n height: 341.333,\n viewBox: \"0 0 256 256\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#9b51e0\",\n d: \"M0 128v128h256V0H0v128zm145.6-66.6c2.9.7 7.8 2.8 11.1 4.5 6.7 3.6 18.3 14.6 16.8 16-2.6 2.3-31.9 23.1-32.6 23.1-.5 0-.9-.5-.9-1 0-.6-1.1-2.2-2.5-3.5-3-3.1-8.3-3.3-11.6-.6-2.2 1.8-2.4 2.7-2.7 14l-.4 12.1H136v37h-13v34H82v-44.8c0-35.5.3-46.1 1.5-51.7 3.9-18.6 18.2-34.2 35.6-38.9 6.9-1.9 19.9-2 26.5-.2z\"\n })));\n};\nexport { SvgLogo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwoJdmVyc2lvbj0iMS4wIgoJeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgoJd2lkdGg9IjI1Ni4wMDAwMDBwdCIKCWhlaWdodD0iMjU2LjAwMDAwMHB0IgoJdmlld0JveD0iMCAwIDI1Ni4wMDAwMDAgMjU2LjAwMDAwMCIKCXByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiCj4KCTxnCgkJdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjU2LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKCQlmaWxsPSIjOWI1MWUwIgoJCXN0cm9rZT0ibm9uZSIKCT4KCQk8cGF0aAoJCQlkPSJNMCAxMjgwIGwwIC0xMjgwIDEyODAgMCAxMjgwIDAgMCAxMjgwIDAgMTI4MCAtMTI4MCAwIC0xMjgwIDAgMAoJCQktMTI4MHogbTE0NTYgNjY2IGMyOSAtNyA3OCAtMjggMTExIC00NSA2NyAtMzYgMTgzIC0xNDYgMTY4IC0xNjAgLTI2IC0yMwoJCQktMzE5IC0yMzEgLTMyNiAtMjMxIC01IDAgLTkgNSAtOSAxMCAwIDYgLTExIDIyIC0yNSAzNSAtMzAgMzEgLTgzIDMzIC0xMTYgNgoJCQktMjIgLTE4IC0yNCAtMjcgLTI3IC0xNDAgbC00IC0xMjEgNjYgMCA2NiAwIDAgLTE4NSAwIC0xODUgLTY1IDAgLTY1IDAgMAoJCQktMTcwIDAgLTE3MCAtMjA1IDAgLTIwNSAwIDAgNDQ4IGMwIDM1NSAzIDQ2MSAxNSA1MTcgMzkgMTg2IDE4MiAzNDIgMzU2IDM4OQoJCQk2OSAxOSAxOTkgMjAgMjY1IDJ6IgoJCS8+Cgk8L2c+Cjwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgNumberField = function SvgNumberField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 52 52\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.8 49.5H7.2c-2.6 0-4.7-2.1-4.7-4.7V7.2c0-2.6 2.1-4.7 4.7-4.7h37.6c2.6 0 4.7 2.1 4.7 4.7v37.6c0 2.6-2.1 4.7-4.7 4.7zm-36-39.2v31.3c0 .9.7 1.6 1.6 1.6h31.3c.9 0 1.6-.7 1.6-1.6V10.3c0-.9-.7-1.6-1.6-1.6H10.4c-.9.1-1.6.8-1.6 1.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M36.2 20.3h-2.9l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.2 4.9h-5.8l1.2-4.8v-.1c0-.2-.1-.4-.4-.4h-2.3c-.2 0-.3.1-.4.3l-1.3 4.9H18c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h3L19 28.7h-3.1c-.2 0-.3.1-.4.3l-.6 2.2v.1c0 .2.1.4.4.4h2.9L17 36.5v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h5.7L26 36.4v.1c0 .2.1.4.4.4h2.3c.2 0 .3-.1.4-.3l1.3-5h3.2c.2 0 .3-.1.4-.3l.6-2.2V29c0-.2-.1-.4-.4-.4h-3l1.4-5.6h3.1c.2 0 .3-.1.4-.3l.6-2.2v-.1c-.1.1-.3-.1-.5-.1zm-8.1 8.5h-5.8l1.4-5.6h5.7l-1.3 5.6z\"\n })));\n};\nexport { SvgNumberField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgCgkgd2lkdGg9IjgwMHB4IiBoZWlnaHQ9IjgwMHB4IiB2aWV3Qm94PSIwIDAgNTIgNTIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUyIDUyIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggZD0iTTQ0LjgsNDkuNUg3LjJjLTIuNiwwLTQuNy0yLjEtNC43LTQuN1Y3LjJjMC0yLjYsMi4xLTQuNyw0LjctNC43aDM3LjZjMi42LDAsNC43LDIuMSw0LjcsNC43djM3LjYKCUM0OS41LDQ3LjQsNDcuNCw0OS41LDQ0LjgsNDkuNXogTTguOCwxMC4zdjMxLjNjMCwwLjksMC43LDEuNiwxLjYsMS42aDMxLjNjMC45LDAsMS42LTAuNywxLjYtMS42VjEwLjNjMC0wLjktMC43LTEuNi0xLjYtMS42SDEwLjQKCUM5LjUsOC44LDguOCw5LjUsOC44LDEwLjN6Ii8+CjxwYXRoIGQ9Ik0zNi4yLDIwLjNoLTIuOWwxLjItNC44di0wLjFjMC0wLjItMC4xLTAuNC0wLjQtMC40aC0yLjNjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMS4yLDQuOWgtNS44bDEuMi00LjgKCXYtMC4xYzAtMC4yLTAuMS0wLjQtMC40LTAuNGgtMi4zYy0wLjIsMC0wLjMsMC4xLTAuNCwwLjNsLTEuMyw0LjloLTMuMmMtMC4yLDAtMC4zLDAuMS0wLjQsMC4zbC0wLjYsMi4ydjAuMWMwLDAuMiwwLjEsMC40LDAuNCwwLjQKCWgzbC0xLjQsNS42aC0zLjFjLTAuMiwwLTAuMywwLjEtMC40LDAuM2wtMC42LDIuMnYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuOWwtMS4yLDQuOHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuMwoJYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wxLjMtNWg1LjdMMjYsMzYuNHYwLjFjMCwwLjIsMC4xLDAuNCwwLjQsMC40aDIuM2MwLjIsMCwwLjMtMC4xLDAuNC0wLjNsMS4zLTVoMy4yYzAuMiwwLDAuMy0wLjEsMC40LTAuMwoJbDAuNi0yLjJWMjljMC0wLjItMC4xLTAuNC0wLjQtMC40aC0zbDEuNC01LjZoMy4xYzAuMiwwLDAuMy0wLjEsMC40LTAuM2wwLjYtMi4ydi0wLjFDMzYuNiwyMC41LDM2LjQsMjAuMywzNi4yLDIwLjNMMzYuMiwyMC4zegoJIE0yOC4xLDI4LjhoLTUuOGwxLjQtNS42aDUuN0wyOC4xLDI4Ljh6Ii8+Cjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPasswordField = function SvgPasswordField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.988 51.297c.375 0 .961-.14 1.57-.445C42.66 43.469 47.185 40.375 47.185 31.96V14.289c0-2.414-1.055-3.187-3-4.008-2.743-1.125-11.532-4.289-14.25-5.25-.633-.187-1.266-.328-1.946-.328-.656 0-1.289.14-1.922.328-2.718.985-11.507 4.149-14.25 5.25-1.945.797-3 1.594-3 4.008v17.672c0 8.414 4.547 11.484 17.625 18.89.61.305 1.172.446 1.547.446Zm-8.226-15.563v-9.093c0-1.524.586-2.32 1.828-2.508V21.32c0-4.312 2.601-7.218 6.398-7.218 3.82 0 6.399 2.906 6.399 7.218v2.79c1.265.187 1.851.984 1.851 2.53v9.094c0 1.758-.773 2.578-2.414 2.578H22.152c-1.617 0-2.39-.82-2.39-2.578Zm4.289-11.648 7.898-.023v-3c0-2.766-1.57-4.594-3.96-4.594-2.368 0-3.938 1.828-3.938 4.593Z\"\n })));\n};\nexport { SvgPasswordField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMjcuOTg4MyA1MS4yOTY5IEMgMjguMzYzMyA1MS4yOTY5IDI4Ljk0OTIgNTEuMTU2MiAyOS41NTg2IDUwLjg1MTYgQyA0Mi42NjAyIDQzLjQ2ODggNDcuMTgzNiA0MC4zNzUwIDQ3LjE4MzYgMzEuOTYwOSBMIDQ3LjE4MzYgMTQuMjg5MSBDIDQ3LjE4MzYgMTEuODc1MCA0Ni4xMjg5IDExLjEwMTYgNDQuMTgzNiAxMC4yODEzIEMgNDEuNDQxNCA5LjE1NjIgMzIuNjUyNCA1Ljk5MjIgMjkuOTMzNiA1LjAzMTMgQyAyOS4zMDA4IDQuODQzOCAyOC42NjgwIDQuNzAzMSAyNy45ODgzIDQuNzAzMSBDIDI3LjMzMjAgNC43MDMxIDI2LjY5OTIgNC44NDM4IDI2LjA2NjQgNS4wMzEzIEMgMjMuMzQ3NiA2LjAxNTYgMTQuNTU4NiA5LjE3OTcgMTEuODE2NCAxMC4yODEzIEMgOS44NzExIDExLjA3ODEgOC44MTY0IDExLjg3NTAgOC44MTY0IDE0LjI4OTEgTCA4LjgxNjQgMzEuOTYwOSBDIDguODE2NCA0MC4zNzUwIDEzLjM2MzMgNDMuNDQ1MyAyNi40NDE0IDUwLjg1MTYgQyAyNy4wNTA4IDUxLjE1NjIgMjcuNjEzMyA1MS4yOTY5IDI3Ljk4ODMgNTEuMjk2OSBaIE0gMTkuNzYxNyAzNS43MzQ0IEwgMTkuNzYxNyAyNi42NDA2IEMgMTkuNzYxNyAyNS4xMTcyIDIwLjM0NzYgMjQuMzIwMyAyMS41ODk4IDI0LjEzMjggTCAyMS41ODk4IDIxLjMyMDMgQyAyMS41ODk4IDE3LjAwNzggMjQuMTkxNCAxNC4xMDE2IDI3Ljk4ODMgMTQuMTAxNiBDIDMxLjgwODYgMTQuMTAxNiAzNC4zODY3IDE3LjAwNzggMzQuMzg2NyAyMS4zMjAzIEwgMzQuMzg2NyAyNC4xMDk0IEMgMzUuNjUyNCAyNC4yOTY5IDM2LjIzODMgMjUuMDkzOCAzNi4yMzgzIDI2LjY0MDYgTCAzNi4yMzgzIDM1LjczNDQgQyAzNi4yMzgzIDM3LjQ5MjIgMzUuNDY0OSAzOC4zMTI1IDMzLjgyNDIgMzguMzEyNSBMIDIyLjE1MjQgMzguMzEyNSBDIDIwLjUzNTEgMzguMzEyNSAxOS43NjE3IDM3LjQ5MjIgMTkuNzYxNyAzNS43MzQ0IFogTSAyNC4wNTA4IDI0LjA4NjAgTCAzMS45NDkyIDI0LjA2MjUgTCAzMS45NDkyIDIxLjA2MjUgQyAzMS45NDkyIDE4LjI5NjkgMzAuMzc4OSAxNi40Njg3IDI3Ljk4ODMgMTYuNDY4NyBDIDI1LjYyMTEgMTYuNDY4NyAyNC4wNTA4IDE4LjI5NjkgMjQuMDUwOCAyMS4wNjI1IFoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgPhoneField = function SvgPhoneField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 56 56\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.156 37.762c6.774 6.773 15.024 12 21.75 12 3.024 0 5.672-1.055 7.805-3.399 1.242-1.383 2.016-3 2.016-4.593 0-1.172-.446-2.297-1.57-3.094l-7.173-5.11c-1.101-.75-2.015-1.125-2.859-1.125-1.078 0-2.016.61-3.094 1.664l-1.664 1.641a1.263 1.263 0 0 1-.89.375c-.375 0-.704-.14-.961-.258-1.43-.773-3.914-2.906-6.235-5.203-2.297-2.297-4.43-4.781-5.18-6.234a1.991 1.991 0 0 1-.257-.938c0-.304.093-.61.351-.867l1.64-1.71c1.056-1.079 1.665-2.017 1.665-3.095 0-.843-.375-1.757-1.148-2.859l-5.04-7.102c-.82-1.125-1.968-1.617-3.234-1.617-1.547 0-3.164.703-4.523 2.04-2.274 2.18-3.282 4.874-3.282 7.85 0 6.727 5.133 14.884 11.883 21.634Z\"\n })));\n};\nexport { SvgPhoneField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDU2IDU2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gMTguMTU2MiAzNy43NjE3IEMgMjQuOTI5NyA0NC41MzUyIDMzLjE3OTcgNDkuNzYxNyAzOS45MDYyIDQ5Ljc2MTcgQyA0Mi45Mjk3IDQ5Ljc2MTcgNDUuNTc4MSA0OC43MDcwIDQ3LjcxMDkgNDYuMzYzMyBDIDQ4Ljk1MjggNDQuOTgwNSA0OS43MjY2IDQzLjM2MzMgNDkuNzI2NiA0MS43Njk1IEMgNDkuNzI2NiA0MC41OTc3IDQ5LjI4MTIgMzkuNDcyNyA0OC4xNTYyIDM4LjY3NTggTCA0MC45ODQzIDMzLjU2NjQgQyAzOS44ODI4IDMyLjgxNjQgMzguOTY4NyAzMi40NDE0IDM4LjEyNTAgMzIuNDQxNCBDIDM3LjA0NjggMzIuNDQxNCAzNi4xMDkzIDMzLjA1MDggMzUuMDMxMiAzNC4xMDU1IEwgMzMuMzY3MSAzNS43NDYxIEMgMzMuMTA5MyAzNi4wMDM5IDMyLjc4MTIgMzYuMTIxMSAzMi40NzY1IDM2LjEyMTEgQyAzMi4xMDE1IDM2LjEyMTEgMzEuNzczNCAzNS45ODA1IDMxLjUxNTYgMzUuODYzMyBDIDMwLjA4NTkgMzUuMDg5OCAyNy42MDE1IDMyLjk1NzEgMjUuMjgxMiAzMC42NjAyIEMgMjIuOTg0MyAyOC4zNjMzIDIwLjg1MTUgMjUuODc4OSAyMC4xMDE1IDI0LjQyNTggQyAxOS45NjA5IDI0LjE2ODAgMTkuODQzNyAyMy44Mzk4IDE5Ljg0MzcgMjMuNDg4MyBDIDE5Ljg0MzcgMjMuMTgzNiAxOS45Mzc1IDIyLjg3ODkgMjAuMTk1MyAyMi42MjExIEwgMjEuODM1OSAyMC45MTAyIEMgMjIuODkwNiAxOS44MzIwIDIzLjQ5OTkgMTguODk0NSAyMy40OTk5IDE3LjgxNjQgQyAyMy40OTk5IDE2Ljk3MjcgMjMuMTI1MCAxNi4wNTg2IDIyLjM1MTUgMTQuOTU3MSBMIDE3LjMxMjQgNy44NTU1IEMgMTYuNDkyMSA2LjczMDUgMTUuMzQzNyA2LjIzODMgMTQuMDc4MSA2LjIzODMgQyAxMi41MzEyIDYuMjM4MyAxMC45MTQwIDYuOTQxNCA5LjU1NDYgOC4yNzc0IEMgNy4yODEyIDEwLjQ1NzEgNi4yNzM0IDEzLjE1MjQgNi4yNzM0IDE2LjEyODkgQyA2LjI3MzQgMjIuODU1NSAxMS40MDYyIDMxLjAxMTcgMTguMTU2MiAzNy43NjE3IFoiLz48L3N2Zz4=\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioButtons = function SvgRadioButtons(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9 4h13v1H9zm0 17h13v-1H9zm0-8h13v-1H9zM7 4a3 3 0 1 1-3-3 3 3 0 0 1 3 3zM6 4a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2 2 0 0 0 2-2zm1 8a3 3 0 1 1-3-3 3 3 0 0 1 3 3zm-1 0a2 2 0 1 0-2 2 2.003 2.003 0 0 0 2-2zm-2-9a1 1 0 1 0 1 1 1 1 0 0 0-1-1z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h24v24H0z\"\n })));\n};\nexport { SvgRadioButtons as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik05IDRoMTN2MUg5em0wIDE3aDEzdi0xSDl6bTAtOGgxM3YtMUg5ek03IDRhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzek02IDRhMiAyIDAgMSAwLTIgMiAyLjAwMyAyLjAwMyAwIDAgMCAyLTJ6bTEgOGEzIDMgMCAxIDEtMy0zIDMgMyAwIDAgMSAzIDN6bS0xIDBhMiAyIDAgMSAwLTIgMiAyIDIgMCAwIDAgMi0yem0xIDhhMyAzIDAgMSAxLTMtMyAzIDMgMCAwIDEgMyAzem0tMSAwYTIgMiAwIDEgMC0yIDIgMi4wMDMgMi4wMDMgMCAwIDAgMi0yem0tMi05YTEgMSAwIDEgMCAxIDEgMSAxIDAgMCAwLTEtMXoiLz48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PC9zdmc+\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRadioField = function SvgRadioField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"aria-hidden\": \"true\",\n viewBox: \"0 0 14 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 4C5.32 4 4 5.32 4 7s1.32 3 3 3 3-1.32 3-3-1.32-3-3-3Zm0-3C3.7 1 1 3.7 1 7s2.7 6 6 6 6-2.7 6-6-2.7-6-6-6Zm0 10.8c-2.64 0-4.8-2.16-4.8-4.8 0-2.64 2.16-4.8 4.8-4.8 2.64 0 4.8 2.16 4.8 4.8 0 2.64-2.16 4.8-4.8 4.8z\"\n })));\n};\nexport { SvgRadioField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE0IDE0IiByb2xlPSJpbWciIGZvY3VzYWJsZT0iZmFsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0gNyw0IEMgNS4zMiw0IDQsNS4zMiA0LDcgNCw4LjY4IDUuMzIsMTAgNywxMCA4LjY4LDEwIDEwLDguNjggMTAsNyAxMCw1LjMyIDguNjgsNCA3LDQgWiBNIDcsMSBDIDMuNywxIDEsMy43IDEsNyBjIDAsMy4zIDIuNyw2IDYsNiAzLjMsMCA2LC0yLjcgNiwtNiBDIDEzLDMuNyAxMC4zLDEgNywxIFogTSA3LDExLjggQyA0LjM2LDExLjggMi4yLDkuNjQgMi4yLDcgMi4yLDQuMzYgNC4zNiwyLjIgNywyLjIgYyAyLjY0LDAgNC44LDIuMTYgNC44LDQuOCAwLDIuNjQgLTIuMTYsNC44IC00LjgsNC44IHoiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgRangeField = function SvgRangeField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n \"data-name\": \"Layer 1\",\n viewBox: \"0 0 24 24\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 11h-3.184a2.982 2.982 0 0 0-5.632 0H3a1 1 0 0 0 0 2h9.184a2.982 2.982 0 0 0 5.632 0H21a1 1 0 0 0 0-2Zm-6 2a1 1 0 1 1 1-1 1.001 1.001 0 0 1-1 1Z\"\n })));\n};\nexport { SvgRangeField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDI0IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggZD0iTTIxLDExSDE3LjgxNTczYTIuOTgyMDgsMi45ODIwOCwwLDAsMC01LjYzMTQ2LDBIM2ExLDEsMCwwLDAsMCwyaDkuMTg0MzNhMi45ODIsMi45ODIsMCwwLDAsNS42MzE0LDBIMjFhMSwxLDAsMCwwLDAtMlptLTYsMmExLDEsMCwxLDEsMS0xQTEuMDAxMywxLjAwMTMsMCwwLDEsMTUsMTNaIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgSelect = function SvgSelect(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 4H1c-.6 0-1 .4-1 1v6c0 .6.4 1 1 1h14c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1zm-5 7H1V5h9v6zm3-2.6L11 7h4l-2 1.4z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#1e72bd\",\n d: \"M2 6h1v4H2V6z\"\n })));\n};\nexport { SvgSelect as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8cGF0aCBkPSJNMTUgNGgtMTRjLTAuNiAwLTEgMC40LTEgMXY2YzAgMC42IDAuNCAxIDEgMWgxNGMwLjYgMCAxLTAuNCAxLTF2LTZjMC0wLjYtMC40LTEtMS0xek0xMCAxMWgtOXYtNmg5djZ6TTEzIDguNGwtMi0xLjRoNGwtMiAxLjR6Ij48L3BhdGg+CjxwYXRoIGZpbGw9IiMxZTcyYmQiIGQ9Ik0yIDZoMXY0aC0xdi00eiI+PC9wYXRoPgo8L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextField = function SvgTextField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 9h2v30H8v3h8v-3h-2V9h2V6H8zM4 16h3.021v-4H0v24h7.042v-4H4zM16.979 12v4H44v16H16.958v4H48V12z\"\n })));\n};\nexport { SvgTextField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjgsOSAxMCw5IDEwLDEyIDEwLDE2IDEwLDM5IDgsMzkgOCw0MiAxNiw0MiAxNiwzOSAxNCwzOSAxNCwxNiAxNCwxMiAxNCw5IDE2LDkgMTYsNiA4LDYgICIvPgoNPHBvbHlnb24gcG9pbnRzPSI0LDE2IDcuMDIxLDE2IDcuMDIxLDEyIDAsMTIgMCwzNiA3LjA0MiwzNiA3LjA0MiwzMiA0LDMyICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTYuOTc5LDEyIDE2Ljk3OSwxNiA0NCwxNiA0NCwzMiAxNi45NTgsMzIgMTYuOTU4LDM2IDQ4LDM2IDQ4LDEyICAiLz4KDTwvZz4KDTwvc3ZnPg==\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgTextareaField = function SvgTextareaField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n width: 800,\n height: 800,\n viewBox: \"0 0 48 48\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 33h-2V3h2V0H8v3h2v30H8v3h8z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.031 6v4H44v34H4V10h2.938V6H0v42h48V6z\"\n })));\n};\nexport { SvgTextareaField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PgoNPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgoNPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgNDggNDgiIGlkPSJMYXllcl8zIiB2ZXJzaW9uPSIxLjEiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoNPGc+Cg08cG9seWdvbiBwb2ludHM9IjE2LDMzIDE0LDMzIDE0LDEwIDE0LDYgMTQsMyAxNiwzIDE2LDAgOCwwIDgsMyAxMCwzIDEwLDYgMTAsMTAgMTAsMzMgOCwzMyA4LDM2IDE2LDM2ICAiLz4KDTxwb2x5Z29uIHBvaW50cz0iMTcuMDMxLDYgMTcuMDMxLDEwIDQ0LDEwIDQ0LDQ0IDQsNDQgNCwxMCA2LjkzOCwxMCA2LjkzOCw2IDAsNiAwLDQ4IDQ4LDQ4IDQ4LDYgICIvPgoNPC9nPgoNPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgUrlField = function SvgUrlField(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 800,\n height: 800,\n viewBox: \"0 0 16 16\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n d: \"M0 0h16v16H0z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.794 12.794c-.478.475-1.113.737-1.794.737s-1.316-.262-1.794-.738a2.54 2.54 0 0 1 0-3.584L5.5 6.916 4.084 5.5 1.791 7.794a4.54 4.54 0 0 0 .003 6.413c.853.855 1.99 1.324 3.206 1.324s2.353-.469 3.206-1.325l2.294-2.294L9.084 10.5l-2.29 2.294zm7.412-11C13.353.938 12.216.469 11 .469S8.647.938 7.794 1.794L5.5 4.084 6.916 5.5 9.21 3.206c.474-.475 1.109-.737 1.79-.737s1.316.263 1.794.737a2.537 2.537 0 0 1 0 3.584L10.5 9.084l1.416 1.416 2.294-2.294a4.54 4.54 0 0 0-.004-6.412zm-2.5 3.912L10.29 4.29l-6 6 1.416 1.416 6-6z\"\n })));\n};\nexport { SvgUrlField as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgVHJhbnNmb3JtZWQgYnk6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogIDxyZWN0IHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgaWQ9Imljb24tYm91bmQiIGZpbGw9Im5vbmUiIC8+CiAgPHBhdGggZD0iTTYuNzk0LDEyLjc5NEM2LjMxNiwxMy4yNjksNS42ODEsMTMuNTMxLDUsMTMuNTMxcy0xLjMxNi0wLjI2Mi0xLjc5NC0wLjczOGMtMC45ODctMC45ODgtMC45ODctMi41OTcsMC0zLjU4NEw1LjUsNi45MTYgTDQuMDg0LDUuNUwxLjc5MSw3Ljc5NGMtMS43NjYsMS43NjktMS43NjYsNC42NDQsMC4wMDMsNi40MTNDMi42NDcsMTUuMDYyLDMuNzg0LDE1LjUzMSw1LDE1LjUzMXMyLjM1My0wLjQ2OSwzLjIwNi0xLjMyNSBsMi4yOTQtMi4yOTRMOS4wODQsMTAuNUw2Ljc5NCwxMi43OTR6IE0xNC4yMDYsMS43OTRDMTMuMzUzLDAuOTM4LDEyLjIxNiwwLjQ2OSwxMSwwLjQ2OVM4LjY0NywwLjkzOCw3Ljc5NCwxLjc5NEw1LjUsNC4wODQgTDYuOTE2LDUuNWwyLjI5NC0yLjI5NEM5LjY4NCwyLjczMSwxMC4zMTksMi40NjksMTEsMi40NjlzMS4zMTYsMC4yNjMsMS43OTQsMC43MzdjMC45ODgsMC45ODcsMC45ODgsMi41OTcsMCwzLjU4NEwxMC41LDkuMDg0IGwxLjQxNiwxLjQxNmwyLjI5NC0yLjI5NEMxNS45NzUsNi40MzgsMTUuOTc1LDMuNTYyLDE0LjIwNiwxLjc5NHogTTExLjcwNiw1LjcwNmwtMS40MTYtMS40MTZsLTYsNmwxLjQxNiwxLjQxNkwxMS43MDYsNS43MDZ6IiAvPgo8L3N2Zz4=\";","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst moreVertical = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\"\n })\n});\nexport default moreVertical;\n//# sourceMappingURL=more-vertical.js.map","import {\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport clsx from 'clsx';\n\nexport function getInputClassesAndStyles( attributes ) {\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst { name, type, advanced, hideLabel } = attributes;\n\n\tconst containerClass = clsx( {\n\t\t'missing-name': ! name,\n\t} );\n\n\tconst labelClass = clsx( {\n\t\thide: hideLabel,\n\t\t'textarea-label': 'textarea' === type,\n\t} );\n\n\tconst inputClass = clsx(\n\t\tborderProps.className,\n\t\tspacingProps.className,\n\t\tcolorProps.className,\n\t\t{\n\t\t\t'formello-advanced': advanced,\n\t\t}\n\t);\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...spacingProps.style,\n\t\t...colorProps.style,\n\t};\n\n\treturn {\n\t\tcontainerClass,\n\t\tlabelClass,\n\t\tinputClass,\n\t\tinputStyle,\n\t};\n}\n","import { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tInspectorAdvancedControls,\n\tBlockControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport { ToolbarGroup } from '@wordpress/components';\nimport clsx from 'clsx';\n\nimport Label from '../../components/label';\nimport Options from '../../components/field-options';\nimport ValidationOptions from '../../components/field-options/validation';\nimport AdvancedOptions from '../../components/field-options/advanced';\nimport Toolbar from '../../components/field-options/toolbar';\n\nimport { SUPPORTED_ATTRIBUTES } from '../../components/field-options/constants';\nimport { getInputClassesAndStyles } from '../input/use-field-props';\n\nexport default function Edit( props ) {\n\tconst { attributes, setAttributes } = props;\n\tconst { cols, rows, value, placeholder, showHelp, help } = attributes;\n\n\tconst supported = SUPPORTED_ATTRIBUTES.textarea;\n\n\tconst fieldProps = getInputClassesAndStyles( attributes );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: fieldProps.containerClass,\n\t} );\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\t{ supported.includes( 'required' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t
    \n\t);\n}\n","import Edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\nimport { registerBlockType, createBlock } from '@wordpress/blocks';\nimport { Textarea } from '../../icons/icons';\n\nimport './style.scss';\n\n/**\n * Every block starts by registering a new block type definition.\n *\n * @see https://developer.wordpress.org/block-editor/developers/block-api/#registering-a-block\n */\nregisterBlockType( metadata, {\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'formello/input' ],\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'formello/textarea', attributes );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\t/**\n\t * An icon property should be specified to make it easier to identify a block.\n\t * These can be any of WordPress’ Dashicons, or a custom svg element.\n\t */\n\ticon: Textarea,\n\n\t/**\n\t * @see ./edit.js\n\t */\n\tedit: Edit,\n\n\t/**\n\t * @see ./save.js\n\t */\n\tsave,\n} );\n","import { RichText, useBlockProps } from '@wordpress/block-editor';\nimport { SUPPORTED_ATTRIBUTES } from '../../components/field-options/constants';\nimport { getInputClassesAndStyles } from '../input/use-field-props';\n\nexport default function save( { attributes } ) {\n\tconst { id, validation, help, value, label, required, requiredText } =\n\t\tattributes;\n\n\tconst fieldProps = getInputClassesAndStyles( attributes );\n\n\t// include only supported attributes\n\tconst htmlAttrs = Object.fromEntries(\n\t\tSUPPORTED_ATTRIBUTES.textarea.map( ( col ) => [\n\t\t\tcol,\n\t\t\tattributes[ col ],\n\t\t] )\n\t);\n\n\tif ( validation ) {\n\t\thtmlAttrs[ 'data-bouncer-message' ] = validation;\n\t}\n\n\treturn (\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\t{ value }\n\t\t\t\n\t\t\t{ help.length > 0 && (\n\t\t\t\t\n\t\t\t) }\n\t\t
    \n\t);\n}\n","import { __ } from '@wordpress/i18n';\n\nimport { ToggleControl, TextControl, withFilters } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nimport { createBlocksFromInnerBlocksTemplate } from '@wordpress/blocks';\n\nimport { Fragment } from '@wordpress/element';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\n\nfunction AdvancedOptions( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\ttype,\n\t\t\tdisabled,\n\t\t\tenableAutoComplete,\n\t\t\tautocomplete,\n\t\t\treadonly,\n\t\t\tadvanced,\n\t\t},\n\t\tsetAttributes,\n\t\tfieldType,\n\t\tclientId,\n\t} = props;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ fieldType ];\n\n\tconst hasInnerBlocks = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn !! ( block && block.innerBlocks.length );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\tconst addOutput = () => {\n\t\tlet child = 'formello/button';\n\t\tif ( 'range' === type ) {\n\t\t\tchild = 'formello/output';\n\t\t}\n\t\treplaceInnerBlocks(\n\t\t\tprops.clientId,\n\t\t\tcreateBlocksFromInnerBlocksTemplate( [ [ child ] ] ),\n\t\t\ttrue\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t{ supported.includes( 'cols' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { advanced: newval } )\n\t\t\t\t\t}\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ supported.includes( 'autocomplete' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { enableAutoComplete: newval } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __( 'Hint for form autofill feature.', 'formello' ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ enableAutoComplete && supported.includes( 'autocomplete' ) && (\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { autocomplete: newval } )\n\t\t\t\t\t}\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'range' === type && (\n\t\t\t\t {\n\t\t\t\t\t\tif ( newval ) {\n\t\t\t\t\t\t\tsetAttributes( { withOutput: true } );\n\t\t\t\t\t\t\taddOutput();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetAttributes( { withOutput: false } );\n\t\t\t\t\t\t\treplaceInnerBlocks( clientId, [], true );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { disabled: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Make the control not accept clicks.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { readonly: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __( 'Make value not editable.', 'formello' ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t);\n}\n\nexport default withFilters( 'formello.advancedOptions' )( AdvancedOptions );\n","export const SUPPORTED_ATTRIBUTES = {\n\thidden: [ 'name', 'id', 'type', 'value' ],\n\ttext: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\ttel: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\turl: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'pattern',\n\t\t'autocomplete',\n\t],\n\temail: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'autocomplete',\n\t],\n\tpassword: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'pattern',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'autocomplete',\n\t],\n\tnumber: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\tdate: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\ttime: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\trange: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'step',\n\t\t'min',\n\t\t'max',\n\t],\n\tcheckbox: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'checked',\n\t],\n\tradio: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t\t'checked',\n\t],\n\tfile: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'required',\n\t\t'disabled',\n\t\t'accept',\n\t\t'capture',\n\t\t'multiple',\n\t],\n\tcolor: [\n\t\t'name',\n\t\t'id',\n\t\t'type',\n\t\t'value',\n\t\t'required',\n\t\t'readonly',\n\t\t'disabled',\n\t],\n\ttextarea: [\n\t\t'name',\n\t\t'id',\n\t\t'required',\n\t\t'value',\n\t\t'type', // hack to use one component\n\t\t'readonly',\n\t\t'disabled',\n\t\t'placeholder',\n\t\t'maxlength',\n\t\t'minlength',\n\t\t'cols',\n\t\t'rows',\n\t],\n\tselect: [ 'name', 'id', 'required', 'readonly', 'disabled', 'multiple' ],\n};\n","import { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { SelectControl, ToggleControl } from '@wordpress/components';\n\nexport default function DatepickerSettings( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\tadvanced,\n\t\t\ttype,\n\t\t\tdateFormat,\n\t\t\ttimeFormat,\n\t\t\tenableTime,\n\t\t\tinlineCalendar,\n\t\t\tmode,\n\t\t\tminDate,\n\t\t},\n\t\tsetAttributes,\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t{ advanced && 'date' === type && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { minDate: val ? 'today' : false } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { dateFormat: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { enableTime: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t setAttributes( { mode: val } ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { inlineCalendar: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tButton,\n} from '@wordpress/components';\n\nimport { Fragment } from '@wordpress/element';\nimport MergeTags from '../merge-tags';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\n\nconst sanitizedName = ( content ) => {\n\treturn (\n\t\tcontent\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '_' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function Options( props ) {\n\tconst { attributes, setAttributes, clientId, setModalOpen, fieldType } =\n\t\tprops;\n\n\tconst {\n\t\ttype,\n\t\tname,\n\t\tvalue,\n\t\tplaceholder,\n\t\trequired,\n\t\tmultiple,\n\t\tchecked,\n\t\tshowHelp,\n\t\tadvanced,\n\t} = attributes;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ fieldType ];\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tsetAttributes( { name: sanitizedName( val ) } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" attribute of the input element, and is used as a name for the form submission results.',\n\t\t\t\t\t\t'formello'\n\t\t\t\t\t) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t\t{ supported.includes( 'value' ) && (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { value: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The initial value of the control field.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'placeholder' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { placeholder: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Text that appears in the form control when it has no value set.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'required' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { required: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'multiple' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { multiple: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ supported.includes( 'checked' ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { checked: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! ( 'hidden' === type ) && (\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { showHelp: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ 'select' === fieldType && (\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetAttributes( { advanced: val } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetModalOpen( true );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Manage Options', 'formello' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { __ } from '@wordpress/i18n';\nimport { SVG, Rect, ToolbarButton } from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport { Asterisk } from '../../icons/icons';\n\nexport default function Toolbar( props ) {\n\tconst { attributes, setAttributes, name } = props;\n\tconst { required, showHelp, hideLabel, type } = attributes;\n\n\tconst toggleLabel = (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\tsetAttributes( { required: ! required } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ ( 'checkbox' || 'radio' ) !== type && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { hideLabel: ! hideLabel } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ 'formello/multichoices' !== name && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { showHelp: ! showHelp } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\n\nimport {\n\tToggleControl,\n\tTextControl,\n\tSelectControl,\n\tPanelBody,\n} from '@wordpress/components';\n\nimport { Fragment } from '@wordpress/element';\nimport MergeTags from '../merge-tags';\n\nimport { SUPPORTED_ATTRIBUTES } from './constants';\nimport DatepickerSettings from './date';\n\nimport { getPatternTabs, serializeFieldsName } from '../merge-tags/functions';\n\nfunction ValidationOptions( props ) {\n\tconst {\n\t\tattributes: {\n\t\t\ttype,\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tadvanced,\n\t\t\tstep,\n\t\t\tminlength,\n\t\t\tmaxlength,\n\t\t\tvalidation,\n\t\t\tenableMismatch,\n\t\t\tpattern,\n\t\t\tmatch,\n\t\t\tmismatchMessage,\n\t\t},\n\t\tsetAttributes,\n\t\tclientId,\n\t} = props;\n\n\tconst supported = SUPPORTED_ATTRIBUTES[ type ?? 'textarea' ];\n\n\tif ( 'checkbox' === type || 'email' === type ) {\n\t\treturn null;\n\t}\n\n\tconst fields = serializeFieldsName();\n\n\tconst tabs = getPatternTabs();\n\n\treturn (\n\t\t\n\t\t\t{ ( 'date' === type || 'tel' === type ) && (\n\t\t\t\t {\n\t\t\t\t\t\tsetAttributes( { advanced: val } );\n\t\t\t\t\t} }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ( 'date' === type || 'time' === type ) && (\n\t\t\t\t\n\t\t\t) }\n\n\t\t\t{ applyFilters( 'formello.Validation', '', props ) }\n\n\t\t\t{ supported.includes( 'step' ) && ! advanced && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { min: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { max: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { step: Number( val ) } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\t{ supported.includes( 'minlength' ) && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { minlength: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Minimum length (number of characters) of value.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { maxlength: val } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Maximum length (number of characters) of value.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\t{ supported.includes( 'pattern' ) && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetAttributes( { pattern: val } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'Pattern the value must match to be valid.',\n\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\t\t\t{ supported.includes( 'pattern' ) && (\n\t\t\t\t setAttributes( { validation: val } ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ supported.includes( 'mismatch' ) && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tsetAttributes( { enableMismatch: newval } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t\t{ enableMismatch && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tsetAttributes( { match: val } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Select the field to match.',\n\t\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tsetAttributes( { mismatchMessage: val } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\n\t\t\t\t\t) }\n\t\t\t\t\n\t\t\t) }\n\t\t\n\t);\n}\n\nexport default ValidationOptions;\n","import { __ } from '@wordpress/i18n';\nimport { RichText, store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nimport clsx from 'clsx';\n\nexport default function Label( { attributes, setAttributes, context } ) {\n\tconst {\n\t\tlabelClass,\n\t\tlabelAlign,\n\t\tlabelVAlign,\n\t\thideLabel,\n\t\trequired,\n\t\tmultiple,\n\t\ttype,\n\t\tlabel,\n\t} = attributes;\n\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t\tisPreview: getSettings().__unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\n\tconst [ meta ] = useEntityProp(\n\t\t'postType',\n\t\t'formello_form',\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tconst labelClassName = clsx(\n\t\t'label-div',\n\t\tlabelClass,\n\t\tlabelAlign,\n\t\tlabelVAlign,\n\t\t{\n\t\t\thide: hideLabel,\n\t\t\trequired,\n\t\t\t'textarea-label': multiple || 'textarea' === type,\n\t\t}\n\t);\n\n\treturn (\n\t\t
    \n\t\t\t {\n\t\t\t\t\tsetAttributes( { label: val } );\n\t\t\t\t} }\n\t\t\t\tplaceholder={ __( 'Enter label…', 'formello' ) }\n\t\t\t\tallowedFormats={ [ 'core/bold', 'core/italic', 'core/link' ] }\n\t\t\t/>\n\n\t\t\t{ required && (\n\t\t\t\t\n\t\t\t\t\t{ context[ 'formello/requiredText' ] || '*' }\n\t\t\t\t\n\t\t\t) }\n\t\t
    \n\t);\n}\n","import { applyFilters } from '@wordpress/hooks';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nconst allowed = [\n\t'formello/input',\n\t'formello/select',\n\t'formello/textarea',\n\t'formello/multichoices',\n];\n\n/**\n * Find the input fields blocks IDS.\n */\nexport function getFieldsBlock() {\n\tconst fields = [];\n\tconst inputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/input' );\n\tconst textareas =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/textarea' );\n\tconst selects =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/select' );\n\tconst outputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/output' );\n\tconst multichoices = select( blockEditorStore ).getBlocksByName(\n\t\t'formello/multichoices'\n\t);\n\n\tconst fieldsId = inputs.concat( textareas, selects, outputs, multichoices );\n\n\tfieldsId.forEach( ( b ) => {\n\t\tconst block = select( blockEditorStore ).getBlock( b );\n\t\tif ( allowed.includes( block.name ) ) {\n\t\t\tfields.push( block );\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Validate form before saving\n */\nexport function validate() {\n\tconst fields = {\n\t\tnames: [],\n\t\tbuttons:\n\t\t\tselect( blockEditorStore ).getBlocksByName( 'formello/button' ),\n\t};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.names.push( b.attributes.name );\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Get fields type.\n */\nexport function getFieldsType() {\n\tconst fields = {};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\t// get block type by name\n\t\tlet type = b.name.split( '/' )[ 1 ];\n\t\tif ( 'input' === type ) {\n\t\t\ttype = b.attributes.type;\n\t\t}\n\n\t\tfields[ b.attributes.name ] = type;\n\t\tif ( b.attributes.advanced && 'textarea' === 'textarea' ) {\n\t\t\tfields[ b.attributes.name ] = 'richtext';\n\t\t}\n\t\tif ( b.attributes.multiple && 'select' === type ) {\n\t\t\tfields[ b.attributes.name ] = type + '-multiple';\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFields() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\ttitle: b.attributes.name,\n\t\t\ttag: '{{fields.' + b.attributes.name + '}}',\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFieldsName() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\tlabel: b.attributes.name,\n\t\t\tvalue: b.attributes.name,\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function getFieldsTags() {\n\tconst fields = serializeFields();\n\n\treturn [\n\t\t{\n\t\t\ttitle: 'All Data',\n\t\t\ttag: '{{fields.all_data}}',\n\t\t},\n\t\t...fields,\n\t];\n}\n\nexport function getConstraints() {\n\tconst constraints = {};\n\tconst fields = getFieldsBlock();\n\n\tif ( fields ) {\n\t\tfields.forEach( ( b ) => {\n\t\t\tconst constraint = getFieldConstraint( b );\n\t\t\tlet name = b.attributes.name;\n\n\t\t\tif ( b.attributes.multiple ) {\n\t\t\t\tname += '.*';\n\t\t\t}\n\t\t\tif ( constraint ) {\n\t\t\t\tconstraints[ name ] = constraint;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn constraints;\n}\n\nexport function getFieldConstraint( field ) {\n\tlet constraints = [];\n\n\tif ( field.attributes.type === 'url' ) {\n\t\tconstraints.push( 'url' );\n\t}\n\n\tif ( field.attributes.required ) {\n\t\tconstraints.push( 'required' );\n\t}\n\n\tif ( field.attributes.minlength ) {\n\t\tconstraints.push( 'minlength:' + field.attributes.minlength );\n\t}\n\n\tif ( field.attributes.maxlength ) {\n\t\tconstraints.push( 'maxlength:' + field.attributes.maxlength );\n\t}\n\n\tif ( field.attributes.min && 'date' !== field.attributes.type ) {\n\t\tconstraints.push( 'min:' + field.attributes.min );\n\t}\n\n\tif (\n\t\tfield.attributes.max &&\n\t\t'date' !== field.attributes.type &&\n\t\t'file' !== field.attributes.type\n\t) {\n\t\tconstraints.push( 'max:' + field.attributes.max );\n\t}\n\n\tif ( field.attributes.type === 'email' ) {\n\t\tconstraints.push( 'email' );\n\t}\n\n\tif (\n\t\tfield.attributes.type === 'number' ||\n\t\tfield.attributes.type === 'range'\n\t) {\n\t\tconstraints.push( 'numeric' );\n\t}\n\n\tif ( 'date' === field.attributes.type && ! field.attributes.advanced ) {\n\t\tconstraints.push( 'date' );\n\t}\n\n\tif ( field.attributes.pattern ) {\n\t\tconst regEx = new RegExp( field.attributes.pattern );\n\t\tconstraints.push( 'regex:' + regEx );\n\t}\n\n\tif ( field.attributes.enableMismatch && '' !== field.attributes.match ) {\n\t\tconstraints.push( 'same:' + field.attributes.match );\n\t}\n\n\tapplyFilters( 'formello.constraints', constraints, field );\n\n\tif ( constraints.length ) {\n\t\tconstraints = constraints.join( '|' );\n\t}\n\n\treturn constraints.length ? constraints : undefined;\n}\n\nexport function getMetaTags() {\n\tconst postType = select( 'core/editor' ).getCurrentPostType();\n\tconst postId = select( 'core/editor' ).getCurrentPostId();\n\n\tconst [ meta ] = useEntityProp( 'postType', postType, 'meta', postId );\n\tconst metaTags = [];\n\n\tfor ( const key in meta ) {\n\t\tif ( meta[ key ] !== Object( key ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst tag = {\n\t\t\ttitle: key,\n\t\t\ttag: `{{meta.${ key }}}`,\n\t\t};\n\t\tmetaTags.push( tag );\n\t}\n\n\treturn metaTags;\n}\n\nexport function getWordpressTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Post ID',\n\t\t\ttag: `{{wp.post_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Title',\n\t\t\ttag: `{{wp.post_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post URL',\n\t\t\ttag: `{{wp.post_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author',\n\t\t\ttag: `{{wp.post_author}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author Email',\n\t\t\ttag: `{{wp.post_author_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User ID',\n\t\t\ttag: `{{wp.user_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User First Name',\n\t\t\ttag: `{{wp.user_first_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Last Name',\n\t\t\ttag: `{{wp.user_last_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Display Name',\n\t\t\ttag: `{{wp.user_display_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Username',\n\t\t\ttag: `{{wp.user_username}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Email',\n\t\t\ttag: `{{wp.user_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User URL',\n\t\t\ttag: `{{wp.user_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site Title',\n\t\t\ttag: `{{wp.site_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site URL',\n\t\t\ttag: `{{wp.site_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Admin Email',\n\t\t\ttag: `{{wp.admin_email}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getFormTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Form ID',\n\t\t\ttag: `{{form.form_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Form Label',\n\t\t\ttag: `{{form.form_name}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getOtherTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Date',\n\t\t\ttag: `{{other.system_date}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Time',\n\t\t\ttag: `{{other.system_time}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Referrer URL',\n\t\t\ttag: `{{other.referrer}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User IP',\n\t\t\ttag: `{{other.user_ip}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getPatternTabs() {\n\tconst passwords = [\n\t\t{\n\t\t\ttitle: 'Password',\n\t\t\ttag: `^(?=.*[A-Za-z])(?=.*\\\\d)[A-Za-z\\\\d]{8,}$`,\n\t\t\tdescription: 'One uppercase, one number, at least 8 chars',\n\t\t},\n\t\t{\n\t\t\ttitle: 'Password with special characters',\n\t\t\ttag: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$`,\n\t\t\tdescription:\n\t\t\t\t'One uppercase, one number, one special chars, at least 8 chars',\n\t\t},\n\t];\n\n\tconst dates = [\n\t\t{\n\t\t\ttitle: 'dd/mm/yyyy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{4}$',\n\t\t},\n\t\t{\n\t\t\ttitle: 'dd/mm/yy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{2}$',\n\t\t},\n\t];\n\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'passwords',\n\t\t\ttitle: 'Passwords',\n\t\t\tdata: passwords,\n\t\t},\n\t\t{\n\t\t\tname: 'dates',\n\t\t\ttitle: 'Dates',\n\t\t\tdata: dates,\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport {\n\tBaseControl,\n\tDropdownMenu,\n\t__experimentalInputControl as InputControl,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { defaultTabs } from './use-tabs';\nimport TabContent from './tab-content';\n\nexport default function MergeTags( props ) {\n\tconst {\n\t\tlabel,\n\t\tvalue,\n\t\tplaceholder,\n\t\thelp,\n\t\tonChange,\n\t\ticon = moreVertical,\n\t\tclientId,\n\t\ttabs = defaultTabs( clientId ),\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) }\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t\n\t);\n}\n\nexport function MergeTagsMenu( props ) {\n\tconst { label, onChange, icon = moreVertical, clientId } = props;\n\n\tconst tabs = defaultTabs( clientId );\n\n\treturn (\n\t\t\n\t\t\t{ () => }\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { SearchControl, TabPanel, MenuItem } from '@wordpress/components';\nimport { useState, Fragment } from '@wordpress/element';\n\nexport default function TabContent( { tabs, onChange } ) {\n\tconst [ searchInput, setSearchInput ] = useState( '' );\n\n\tconst filterAddon = ( element ) => {\n\t\tif ( '' === searchInput ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn (\n\t\t\telement.title.toLowerCase().search( searchInput.toLowerCase() ) !==\n\t\t\t-1\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ ( tab ) =>\n\t\t\t\t\ttab.data\n\t\t\t\t\t\t.filter( ( element ) => {\n\t\t\t\t\t\t\treturn filterAddon( element );\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.map( ( data ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t onChange( data.tag ) }\n\t\t\t\t\t\t\t\t\tinfo={ data.description }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ data.title }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n}\n","import {\n\tgetFieldsTags,\n\tgetWordpressTags,\n\tgetOtherTags,\n\tgetMetaTags,\n} from './functions';\n\nexport function defaultTabs( clientId ) {\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'fields',\n\t\t\ttitle: 'Fields',\n\t\t\tdata: getFieldsTags( clientId ),\n\t\t},\n\t\t{\n\t\t\tname: 'wordpress',\n\t\t\ttitle: 'WordPress',\n\t\t\tdata: getWordpressTags(),\n\t\t},\n\t\t{\n\t\t\tname: 'other',\n\t\t\ttitle: 'Other',\n\t\t\tdata: getOtherTags(),\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","import { ReactComponent as Asterisk } from '../../assets/icons/asterisk.svg';\nimport { ReactComponent as Checkbox } from '../../assets/icons/checkbox.svg';\nimport { ReactComponent as Calendar } from '../../assets/icons/date-field.svg';\nimport { ReactComponent as Checkboxes } from '../../assets/icons/checkboxes.svg';\nimport { ReactComponent as Clock } from '../../assets/icons/clock-field.svg';\nimport { ReactComponent as Color } from '../../assets/icons/color-field.svg';\nimport { ReactComponent as Email } from '../../assets/icons/email-field.svg';\nimport { ReactComponent as Fieldset } from '../../assets/icons/fieldset.svg';\nimport { ReactComponent as Form } from '../../assets/icons/form.svg';\nimport { ReactComponent as GDPR } from '../../assets/icons/gdpr-field.svg';\nimport { ReactComponent as Hidden } from '../../assets/icons/hidden-field.svg';\nimport { ReactComponent as Input } from '../../assets/icons/text-field.svg';\nimport { ReactComponent as Logo } from '../../assets/icons/logo.svg';\nimport { ReactComponent as Number } from '../../assets/icons/number-field.svg';\nimport { ReactComponent as Password } from '../../assets/icons/password-field.svg';\nimport { ReactComponent as Range } from '../../assets/icons/range-field.svg';\nimport { ReactComponent as Radio } from '../../assets/icons/radio-field.svg';\nimport { ReactComponent as Radios } from '../../assets/icons/radio-buttons.svg';\nimport { ReactComponent as Select } from '../../assets/icons/select.svg';\nimport { ReactComponent as Tel } from '../../assets/icons/phone-field.svg';\nimport { ReactComponent as Textarea } from '../../assets/icons/textarea-field.svg';\nimport { ReactComponent as Url } from '../../assets/icons/url-field.svg';\n\nexport {\n\tAsterisk,\n\tCheckbox,\n\tCheckboxes,\n\tClock,\n\tColor,\n\tEmail,\n\tFieldset,\n\tForm,\n\tGDPR,\n\tHidden,\n\tInput,\n\tLogo,\n\tNumber,\n\tPassword,\n\tRadio,\n\tRange,\n\tRadios,\n\tSelect,\n\tTel,\n\tTextarea,\n\tUrl,\n\tCalendar,\n};\n","// extracted by mini-css-extract-plugin\nexport {};","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"hooks\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"primitives\"];","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"blocks/textarea/index\": 0,\n\t\"blocks/textarea/style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkformello\"] = self[\"webpackChunkformello\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"blocks/textarea/style-index\"], () => (__webpack_require__(\"./src/blocks/textarea/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetSpacingClassesAndStyles","getSpacingClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","clsx","getInputClassesAndStyles","attributes","borderProps","spacingProps","colorProps","name","type","advanced","hideLabel","containerClass","labelClass","hide","inputClass","className","inputStyle","style","__","InspectorControls","InspectorAdvancedControls","BlockControls","RichText","useBlockProps","__experimentalUseBorderProps","useBorderProps","ToolbarGroup","Label","Options","ValidationOptions","AdvancedOptions","Toolbar","SUPPORTED_ATTRIBUTES","jsx","_jsx","jsxs","_jsxs","Edit","props","setAttributes","cols","rows","value","placeholder","showHelp","help","supported","textarea","fieldProps","blockProps","children","includes","fieldType","onChange","event","target","tagName","val","allowedFormats","multiline","save","metadata","registerBlockType","createBlock","Textarea","transforms","from","blocks","transform","icon","edit","id","validation","label","required","requiredText","htmlAttrs","Object","fromEntries","map","col","htmlFor","Content","length","ToggleControl","TextControl","withFilters","useSelect","useDispatch","store","blockEditorStore","createBlocksFromInnerBlocksTemplate","Fragment","disabled","enableAutoComplete","autocomplete","readonly","clientId","hasInnerBlocks","select","getBlock","block","innerBlocks","replaceInnerBlocks","addOutput","child","checked","newval","__nextHasNoMarginBottom","withOutput","hidden","text","tel","url","email","password","number","date","time","range","checkbox","radio","file","color","SelectControl","DatepickerSettings","dateFormat","timeFormat","enableTime","inlineCalendar","mode","minDate","options","PanelBody","Button","MergeTags","sanitizedName","content","replace","toLowerCase","setModalOpen","multiple","title","initialOpen","variant","onClick","SVG","Rect","ToolbarButton","Asterisk","toggleLabel","xmlns","viewBox","x","y","width","height","stroke","fill","strokeWidth","isPressed","applyFilters","getPatternTabs","serializeFieldsName","min","max","step","minlength","maxlength","enableMismatch","pattern","match","mismatchMessage","fields","tabs","Number","useEntityProp","context","labelAlign","labelVAlign","postType","postId","getSettings","getCurrentPostType","getCurrentPostId","isPreview","__unstableIsPreviewMode","meta","labelClassName","allowed","getFieldsBlock","inputs","getBlocksByName","textareas","selects","outputs","multichoices","fieldsId","concat","forEach","b","push","validate","names","buttons","fieldsBlock","getFieldsType","split","serializeFields","tag","getFieldsTags","getConstraints","constraints","constraint","getFieldConstraint","field","regEx","RegExp","join","undefined","getMetaTags","metaTags","key","getWordpressTags","tags","getFormTags","getOtherTags","passwords","description","dates","data","BaseControl","DropdownMenu","__experimentalInputControl","InputControl","moreVertical","defaultTabs","TabContent","suffix","toggleProps","isSmall","size","MergeTagsMenu","SearchControl","TabPanel","MenuItem","useState","searchInput","setSearchInput","filterAddon","element","search","tab","filter","info","ReactComponent","Checkbox","Calendar","Checkboxes","Clock","Color","Email","Fieldset","Form","GDPR","Hidden","Input","Logo","Password","Range","Radio","Radios","Select","Tel","Url"],"sourceRoot":""} \ No newline at end of file diff --git a/build/blocks/textarea/render.php b/build/blocks/textarea/render.php index 696c7e22..33818149 100644 --- a/build/blocks/textarea/render.php +++ b/build/blocks/textarea/render.php @@ -8,6 +8,11 @@ * $block (WP_Block): The block instance. * * @see https://github.com/WordPress/gutenberg/blob/trunk/docs/reference-guides/block-api/block-metadata.md#render + * @link https://www.francescopepe.com + * @since 1.0.0 + * + * @package Formello + * @subpackage Formello/includes */ $replacer = new Formello\TagReplacers\Replacer(); @@ -22,15 +27,15 @@ if ( $p->next_tag( array( 'tag_name' => 'textarea' ) ) ) { $p->set_attribute( 'id', $unique_id ); - if ( 'formello-rtf' === $p->get_attribute( 'class' ) ) { + if ( 'formello-advanced' === $p->get_attribute( 'class' ) ) { wp_enqueue_script( 'tiny-mce', 'https://cdnjs.cloudflare.com/ajax/libs/tinymce/5.10.3/tinymce.min.js', array(), - false, + false, // phpcs:ignore array( 'strategy' => 'defer', - ), + ) ); } } diff --git a/build/form-settings.asset.php b/build/form-settings.asset.php index c403217a..527d13c5 100644 --- a/build/form-settings.asset.php +++ b/build/form-settings.asset.php @@ -1 +1 @@ - array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-components', 'wp-core-data', 'wp-data', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-primitives', 'wp-url'), 'version' => '305ae4183e32337831a8'); + array('react', 'react-jsx-runtime', 'wp-block-editor', 'wp-components', 'wp-core-data', 'wp-data', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-plugins', 'wp-primitives', 'wp-url'), 'version' => '23d4ce7536736a96bd59'); diff --git a/build/form-settings.js b/build/form-settings.js index 60f0db8d..27272c54 100644 --- a/build/form-settings.js +++ b/build/form-settings.js @@ -1370,6 +1370,54 @@ const post = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx) /***/ }), +/***/ "./src/components/inline-edit.js": +/*!***************************************!*\ + !*** ./src/components/inline-edit.js ***! + \***************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ InlineEdit: () => (/* binding */ InlineEdit) +/* harmony export */ }); +/* 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 react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__); + + +const InlineEdit = ({ + value, + setValue +}) => { + const [editingValue, setEditingValue] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(value); + console.log(value); + const onChange = event => setEditingValue(event.target.value); + const onKeyDown = event => { + if (event.key === 'Enter' || event.key === 'Escape') { + event.target.blur(); + } + }; + const onBlur = event => { + if (event.target.value.trim() === '') { + setEditingValue(value); + } else { + setValue(event.target.value); + } + }; + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("input", { + type: "text", + "aria-label": "Field name", + value: editingValue, + onChange: onChange, + onKeyDown: onKeyDown, + onBlur: onBlur + }); +}; + +/***/ }), + /***/ "./src/components/merge-tags/functions.js": /*!************************************************!*\ !*** ./src/components/merge-tags/functions.js ***! @@ -1455,7 +1503,7 @@ function getFieldsType() { type = b.attributes.type; } fields[b.attributes.name] = type; - if (b.attributes.enableRtf) { + if (b.attributes.advanced && 'textarea' === 'textarea') { fields[b.attributes.name] = 'richtext'; } if (b.attributes.multiple && 'select' === type) { @@ -1800,7 +1848,8 @@ function TabContent({ return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.Fragment, { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.SearchControl, { value: searchInput, - onChange: setSearchInput + onChange: setSearchInput, + __nextHasNoMarginBottom: true }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_0__.TabPanel, { tabs: tabs, children: tab => tab.data.filter(element => { @@ -2455,11 +2504,13 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var _actions_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../actions/constants */ "./src/form-settings/actions/constants.js"); -/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/cog.js"); -/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/close.js"); +/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/cog.js"); +/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/close.js"); /* harmony import */ var _actions_modal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../actions/modal */ "./src/form-settings/actions/modal.js"); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__); +/* harmony import */ var _components_inline_edit__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../components/inline-edit */ "./src/components/inline-edit.js"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__); + @@ -2488,7 +2539,7 @@ function ActionsSettings() { const [showModal, setShowModal] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)(false); const [confirm, setConfirm] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)(false); if (!meta._formello_actions) { - return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.Fragment, {}); + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.Fragment, {}); } const remove = item => { const arr = meta._formello_actions.filter(o => { @@ -2500,15 +2551,15 @@ function ActionsSettings() { }); setShowModal(false); }; - return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.Fragment, { - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Dropdown, { + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.Fragment, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Dropdown, { popoverProps: { placement: 'bottom-start' }, renderToggle: ({ isOpen, onToggle - }) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { + }) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { variant: "primary", onClick: onToggle, "aria-expanded": isOpen, @@ -2516,10 +2567,10 @@ function ActionsSettings() { }), renderContent: ({ onToggle - }) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.MenuGroup, { + }) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.MenuGroup, { children: _actions_constants__WEBPACK_IMPORTED_MODULE_6__.integrations.map((a, i) => { - return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.MenuItem, { - icon: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Icon, { + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.MenuItem, { + icon: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Icon, { icon: _actions_constants__WEBPACK_IMPORTED_MODULE_6__.icons[a.name] }), onClick: () => { @@ -2531,42 +2582,42 @@ function ActionsSettings() { }, i); }) }) - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.__experimentalVStack, { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.__experimentalVStack, { className: 'formello-actions-list', children: meta._formello_actions.map((a, i) => { - return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.__experimentalHStack, { + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.__experimentalHStack, { direction: "row", className: 'formello-action-item', - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.__experimentalHStack, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.__experimentalHStack, { justify: 'flex-start', - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Icon, { + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Icon, { icon: _actions_constants__WEBPACK_IMPORTED_MODULE_6__.icons[a.name] - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("b", { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("b", { children: a.name })] - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.__experimentalHStack, { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.__experimentalHStack, { justify: 'flex-end', spacing: "0", - children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { - icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_9__["default"], + children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { + icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_10__["default"], onClick: () => setShowModal(a), size: "small" - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { - icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_10__["default"], + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.Button, { + icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_11__["default"], onClick: () => setConfirm(a), size: "small" })] })] }, i); }) - }), showModal && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_actions_modal__WEBPACK_IMPORTED_MODULE_7__.ActionsModal, { + }), showModal && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_actions_modal__WEBPACK_IMPORTED_MODULE_7__.ActionsModal, { settings: showModal, clientId: '', remove: remove, onRequestClose: () => { setShowModal(false); } - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.__experimentalConfirmDialog, { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_5__.__experimentalConfirmDialog, { isOpen: confirm, onConfirm: () => { remove(confirm); @@ -2754,6 +2805,8 @@ function Settings() { label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Captcha service', 'formello'), value: captchaType, options: [{ + label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Select a captcha type') + }, { label: 'reCaptcha', value: 'reCaptcha' }, { @@ -2770,7 +2823,7 @@ function Settings() { children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: Url of settings page. */ (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Please be sure to add a %1$s API key on %2$s', 'formello'), captchaType, `
    settings page`) }) - }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.ToggleControl, { + }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.__experimentalDivider, {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.ToggleControl, { label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Hide form after submission', 'formello'), checked: hide, onChange: val => { diff --git a/build/form-settings.js.map b/build/form-settings.js.map index 4c110ff7..48ab2897 100644 --- a/build/form-settings.js.map +++ b/build/form-settings.js.map @@ -1 +1 @@ -{"version":3,"file":"form-settings.js","mappings":"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CA;AACA,GAAG,uCAAuC,gDAAmB;AAC7D;AACA;AACA,GAAG,iBAAiB,gDAAmB;AACvC;AACA;AACA;AACA;AACA,GAAG,sCAAsC,gDAAmB;AAC5D;AACA;AACA,GAAG,uCAAuC,gDAAmB;AAC7D;AACA;AACA,GAAG;AACH;AACwC;AACxC,iEAAe,oBAAoB,gsLAAgsL;;;;;;;;;;;;;;;;;;AC9DnuL;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AACwC;AACxC,iEAAe,oBAAoB,wuEAAwuE;;;;;;;;;;;;;;;;ACb3wE,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4CAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iCAAiC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;;;;;;;;;;;;;;AC9IP;AACA;AACA;AACA;AACsB;;;;;;;;;;;;;;;;;;;;;;;;;ACJwC;AACvD,gCAAgC;AACvC,oCAAoC,eAAe,uEAAc;AACjE,iDAAiD;AAC1C;AACP;AACA;AACA,4DAA4D,kCAAkC;AAC9F,0DAA0D,sCAAsC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA,oCAAoC,sBAAsB,QAAQ,yFAAyF;AAC3J;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,0DAA0D;AAC1D,gDAAgD;AAChD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACrEA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+B;AACiB;AACR;AACoG;AACxF;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,wBAAwB;AACxB;AACA,iBAAiB,+CAAO;AACxB;AACA;AACA;AACA;AACA;AACA,6CAA6C,6BAA6B;AAC1E;AACA;AACA;AACA,6CAA6C,wCAAwC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAU;AACpC;AACA;AACA;AACA,gDAAgD,uBAAuB,oGAAoG,oDAAY;AACvL;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yDAAiB;AAC1D;AACA,yEAAyE,iBAAiB;AAC1F,yBAAyB;AACzB;AACA,4CAA4C,kDAAU;AACtD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+CAAO;AAC3B;AACA,4CAA4C,kDAAU;AACtD;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,gBAAgB,yDAAiB;AACjC;AACA;AACA;AACA;AACA,qCAAqC,4CAAI;AACzC,2BAA2B,4CAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,oBAAoB,+CAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,mEAA2B;AAC1C;AACA;AACA;AACA,eAAe,gDAAmB;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,gDAAmB;AAClC;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8DAA8D;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,kBAAkB,8CAA8C;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAc,0EAA0E,0BAA0B;AAC9H;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAe;AACtC;AACA;AACA;AACA;AACA,CAAC,CAAC,4CAAe;AACC;;;;;;;;;;;;;;;;;;;ACvXlB,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACjC;AACP,gBAAgB,4CAAc;AAC9B,eAAe,4CAAc;AAC7B,qBAAqB,4CAAc;AACnC,yBAAyB,4CAAc;AACvC,wBAAwB,4CAAc;AACtC,sBAAsB,4CAAc;AACpC,wBAAwB,4CAAc;AACtC,mBAAmB,4CAAc;AACjC,YAAY,4CAAc;AAC1B,cAAc,4CAAc;AAC5B,kBAAkB,4CAAc;AAChC,aAAa,4CAAc;AAC3B,mBAAmB,4CAAc;AACjC,q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/C5P,KAAK,EAAGiP,cAAgB;MACxB5L,QAAQ,EAAK6F,GAAG,IAAMiF,UAAU,CAAE,gBAAgB,EAAEjF,GAAI,CAAG;MAC3D1F,uBAAuB;IAAA,CACvB,CAAC;EAAA,CACO,CAAC;AAEb;;;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,IAAI,IAAqC;AACzC,6BAA6B,mBAAO,CAAC,yFAA4B;AACjE;AACA,YAAY,mBAAO,CAAC,uDAAW;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAY;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,cAAc,mBAAO,CAAC,0EAAU;AAChC,aAAa,mBAAO,CAAC,4DAAe;;AAEpC,2BAA2B,mBAAO,CAAC,yFAA4B;AAC/D,UAAU,mBAAO,CAAC,uDAAW;AAC7B,qBAAqB,mBAAO,CAAC,qEAAkB;;AAE/C;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,8BAA8B;AAC9B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS,KAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,2BAA2B;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC,4FAA4F,CAAM;AAC7I;AACA;;AAEA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,gCAAgC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iHAAiH;AACjH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACjmBA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,IAAqC;AACzC,gBAAgB,mBAAO,CAAC,0EAAU;;AAElC;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,uFAA2B;AACtD,EAAE,KAAK,EAIN;;;;;;;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;;;;;;;;;;;ACXA;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;;;AAIb,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB,sBAAsB;AACtB,uBAAuB;AACvB,uBAAuB;AACvB,eAAe;AACf,kBAAkB;AAClB,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,gBAAgB;AAChB,mBAAmB;AACnB,wBAAwB;AACxB,yBAAyB;AACzB,yBAAyB;AACzB,iBAAiB;AACjB,oBAAoB;AACpB,kBAAkB;AAClB,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,oBAAoB;AACpB,kBAAkB;AAClB,0BAA0B;AAC1B,cAAc;AACd,GAAG;AACH;;;;;;;;;;;;ACpLa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,wJAAyD;AAC3D;;;;;;;;;;;;ACNA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;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;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNqC;AACS;AACiB;AACX;AACR;AACW;AACF;AACT;AAC1B;AAAA;AAElB,MAAMuM,iCAAiC,GAAGA,CAAA,KAAM;EAC/C,MAAM;IAAEzO;EAAS,CAAC,GAAGyI,0DAAS,CAAInM,MAAM,IAAM;IAC7C,OAAO;MACN0D,QAAQ,EAAE1D,MAAM,CAAE,aAAc,CAAC,CAAC2D,kBAAkB,CAAC;IACtD,CAAC;EACF,CAAE,CAAC;EAEH,IAAK,eAAe,KAAKD,QAAQ,EAAG;IACnC,OAAO,IAAI;EACZ;EAEA,oBACC+C,uDAAA,CAACF,wDAAQ;IAAAV,QAAA,gBACRT,sDAAA,CAAC6M,yEAA0B;MAC1B9Q,IAAI,EAAC,yBAAyB;MAC9Ba,KAAK,EAAGqF,mDAAE,CAAE,UAAW,CAAG;MAC1BmG,SAAS,EAAC,kBAAkB;MAAA3H,QAAA,eAE5BT,sDAAA,CAAC0L,qDAAQ,IAAE;IAAC,CACe,CAAC,eAC7B1L,sDAAA,CAAC6M,yEAA0B;MAC1B9Q,IAAI,EAAC,wBAAwB;MAC7Ba,KAAK,EAAGqF,mDAAE,CAAE,SAAU,CAAG;MACzBmG,SAAS,EAAC,kBAAkB;MAAA3H,QAAA,eAE5BT,sDAAA,CAAC2J,8DAAe,IAAE;IAAC,CACQ,CAAC,eAC7B3J,sDAAA,CAAC6M,yEAA0B;MAC1B9Q,IAAI,EAAC,yBAAyB;MAC9Ba,KAAK,EAAGqF,mDAAE,CAAE,UAAW,CAAG;MAC1BmG,SAAS,EAAC,kBAAkB;MAC5B4E,QAAQ;MAAAvM,QAAA,eAERT,sDAAA,CAACgL,gEAAgB,IAAE;IAAC,CACO,CAAC;EAAA,CACpB,CAAC;AAEb,CAAC;;AAED;AACA8B,kEAAc,CAAE,wBAAwB,EAAE;EACzCG,MAAM,EAAEF;AACT,CAAE,CAAC,C","sources":["webpack://formello/./assets/integrations/brevo.svg","webpack://formello/./assets/integrations/convertkit.svg","webpack://formello/./assets/integrations/email.svg","webpack://formello/./assets/integrations/getresponse.svg","webpack://formello/./assets/integrations/mailchimp.svg","webpack://formello/./assets/integrations/mailerlite.svg","webpack://formello/./assets/integrations/mailpoet.svg","webpack://formello/./assets/integrations/moosend.svg","webpack://formello/./assets/integrations/webhook.svg","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/ScriptLoader2.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/TinyMCE.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/Utils.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/components/Editor.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/components/EditorPropTypes.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/index.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/close.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/cog.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/comment-author-avatar.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/login.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/more-vertical.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/post.js","webpack://formello/./src/components/merge-tags/functions.js","webpack://formello/./src/components/merge-tags/index.js","webpack://formello/./src/components/merge-tags/tab-content.js","webpack://formello/./src/components/merge-tags/use-tabs.js","webpack://formello/./src/components/promo.js","webpack://formello/./src/form-settings/actions/constants.js","webpack://formello/./src/form-settings/actions/email.js","webpack://formello/./src/form-settings/actions/filters.js","webpack://formello/./src/form-settings/actions/modal.js","webpack://formello/./src/form-settings/filter.js","webpack://formello/./src/form-settings/settings/actions.js","webpack://formello/./src/form-settings/settings/advanced.js","webpack://formello/./src/form-settings/settings/basic.js","webpack://formello/./node_modules/object-assign/index.js","webpack://formello/./node_modules/prop-types/checkPropTypes.js","webpack://formello/./node_modules/prop-types/factoryWithTypeCheckers.js","webpack://formello/./node_modules/prop-types/index.js","webpack://formello/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://formello/./node_modules/prop-types/lib/has.js","webpack://formello/./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","webpack://formello/./node_modules/prop-types/node_modules/react-is/index.js","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"coreData\"]","webpack://formello/external window [\"wp\",\"data\"]","webpack://formello/external window [\"wp\",\"editor\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"hooks\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/external window [\"wp\",\"plugins\"]","webpack://formello/external window [\"wp\",\"primitives\"]","webpack://formello/external window [\"wp\",\"url\"]","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/./src/form-settings/index.js"],"sourcesContent":["function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgBrevo = function SvgBrevo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 64 64\"\n }, props), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 32,\n cy: 32,\n r: 32,\n style: {\n fill: \"#0b996e\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.83 28.07c2.05-2.05 3.01-4.41 3.01-7.29 0-5.95-4.29-9.91-10.74-9.91H20.24v42.28h12.79c9.72 0 17.01-6.08 17.01-14.14 0-4.41-2.24-8.38-6.2-10.94ZM25.98 16.36h9.47c3.2 0 5.31 1.85 5.31 4.67 0 3.2-2.75 5.63-8.38 7.48-3.84 1.22-5.56 2.24-6.2 3.45h-.19V16.35Zm6.52 31.28h-6.52v-6.52c0-2.88 2.43-5.69 5.82-6.78 3.01-1.02 5.5-2.05 7.61-3.13 2.81 1.67 4.54 4.54 4.54 7.55 0 5.12-4.86 8.89-11.45 8.89Z\",\n style: {\n fill: \"#fff\"\n }\n }));\n};\nexport { SvgBrevo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48dGl0bGU+QnJldm8gaWNvbiAtIFVuY2FubnkgQXV0b21hdG9yPC90aXRsZT48Y2lyY2xlIGN4PSIzMiIgY3k9IjMyIiByPSIzMiIgc3R5bGU9ImZpbGw6IzBiOTk2ZTsiLz48cGF0aCBkPSJtNDMuODMsMjguMDdjMi4wNS0yLjA1LDMuMDEtNC40MSwzLjAxLTcuMjksMC01Ljk1LTQuMjktOS45MS0xMC43NC05LjkxaC0xNS44NnY0Mi4yOGgxMi43OWM5LjcyLDAsMTcuMDEtNi4wOCwxNy4wMS0xNC4xNCwwLTQuNDEtMi4yNC04LjM4LTYuMi0xMC45NGgwWm0tMTcuODUtMTEuNzFoOS40N2MzLjIsMCw1LjMxLDEuODUsNS4zMSw0LjY3LDAsMy4yLTIuNzUsNS42My04LjM4LDcuNDgtMy44NCwxLjIyLTUuNTYsMi4yNC02LjIsMy40NWgtLjE5di0xNS42MVptNi41MiwzMS4yOGgtNi41MnYtNi41MmMwLTIuODgsMi40My01LjY5LDUuODItNi43OCwzLjAxLTEuMDIsNS41LTIuMDUsNy42MS0zLjEzLDIuODEsMS42Nyw0LjU0LDQuNTQsNC41NCw3LjU1LDAsNS4xMi00Ljg2LDguODktMTEuNDUsOC44OWgwWiIgc3R5bGU9ImZpbGw6I2ZmZjsiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgConvertkit = function SvgConvertkit(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"-0.093 0 174.921 162\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fb6970\",\n d: \"M84.358 127.894c30.359 0 53.824-22.904 53.824-51.157 0-26.47-22.045-42.631-36.646-42.631-20.332 0-36.63 14.248-38.952 35.4-.43 3.917-3.538 7.202-7.482 7.174-6.556-.047-16.089-.103-22.123-.082-2.598.009-4.745-2.096-4.617-4.689.91-18.345 7.053-35.498 18.766-48.674C60.143 8.594 79.097 0 101.536 0c37.701 0 73.292 34.209 73.292 76.737 0 47.089-39.07 85.263-89.668 85.263-36.084 0-72.427-23.549-85.116-56.472a.707.707 0 0 1-.032-.382c.17-.974.505-1.864.835-2.74.48-1.274.95-2.52.882-3.955l-.22-4.586a5.588 5.588 0 0 1 3.243-5.329l1.834-.853a7.077 7.077 0 0 0 3.99-5.138c.615-3.363 3.571-5.808 7.022-5.808 5.39 0 10.076 3.579 11.836 8.667 8.473 24.49 21.943 42.49 54.924 42.49z\"\n })));\n};\nexport { SvgConvertkit as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9Ii0uMDkyNzY5MDggMCAxNzQuOTIwNzY5MDggMTYyIiB3aWR0aD0iMjRweCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtODQuMzU4IDEyNy44OTRjMzAuMzU5IDAgNTMuODI0LTIyLjkwNCA1My44MjQtNTEuMTU3IDAtMjYuNDctMjIuMDQ1LTQyLjYzMS0zNi42NDYtNDIuNjMxLTIwLjMzMiAwLTM2LjYzIDE0LjI0OC0zOC45NTIgMzUuNC0uNDMgMy45MTctMy41MzggNy4yMDItNy40ODIgNy4xNzQtNi41NTYtLjA0Ny0xNi4wODktLjEwMy0yMi4xMjMtLjA4Mi0yLjU5OC4wMDktNC43NDUtMi4wOTYtNC42MTctNC42ODkuOTEtMTguMzQ1IDcuMDUzLTM1LjQ5OCAxOC43NjYtNDguNjc0IDEzLjAxNS0xNC42NDEgMzEuOTY5LTIzLjIzNSA1NC40MDgtMjMuMjM1IDM3LjcwMSAwIDczLjI5MiAzNC4yMDkgNzMuMjkyIDc2LjczNyAwIDQ3LjA4OS0zOS4wNyA4NS4yNjMtODkuNjY4IDg1LjI2My0zNi4wODQgMC03Mi40MjctMjMuNTQ5LTg1LjExNi01Ni40NzJhLjcwNy43MDcgMCAwIDEgLS4wMzItLjM4MmMuMTctLjk3NC41MDUtMS44NjQuODM1LTIuNzQuNDgtMS4yNzQuOTUtMi41Mi44ODItMy45NTVsLS4yMi00LjU4NmE1LjU4OCA1LjU4OCAwIDAgMSAzLjI0My01LjMyOWwxLjgzNC0uODUzYTcuMDc3IDcuMDc3IDAgMCAwIDMuOTktNS4xMzhjLjYxNS0zLjM2MyAzLjU3MS01LjgwOCA3LjAyMi01LjgwOCA1LjM5IDAgMTAuMDc2IDMuNTc5IDExLjgzNiA4LjY2NyA4LjQ3MyAyNC40OSAyMS45NDMgNDIuNDkgNTQuOTI0IDQyLjQ5eiIgZmlsbD0iI2ZiNjk3MCIvPjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmail = function SvgEmail(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n viewBox: \"0 0 114 114\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 7,\n d: \"M7 20h98v72H7zl44 44q5 4 10 0l44-44M7 92l36-36m26 0 36 36\"\n })));\n};\nexport { SvgEmail as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMTQgMTE0IiB3aWR0aD0iMjQiPg0KPHBhdGggc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjciIGZpbGw9Im5vbmUiIGQ9Im03LDIwaDk4djcySDd6bDQ0LDQ0cTUsNCAxMCwwbDQ0LTQ0TTcsOTJsMzYtMzZtMjYsMCAzNiwzNiIvPg0KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGetresponse = function SvgGetresponse(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 0 90 59\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00baff\",\n d: \"M87.6 52c0 2.1-1.7 3.7-3.7 3.7H3.7C1.7 55.8 0 54.1 0 52V3.7C0 1.7 1.7 0 3.7 0h80.1c2.1 0 3.7 1.7 3.7 3.7V52z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M86.8 1.4C76.4 17.5 60.3 32.3 43.7 31.9c-6.1-.1-13.1-1.9-19-6.7C20.3 21.6 15.9 16 14.2 8h-1.8c-2.7 0-4.3 2.4-4 4.6.1.5.2 1.1.3 1.7 1.3 7.8 5.9 16.6 13.6 22.3 6 4.4 13.4 7.3 21.5 7.3 14.6 0 30.2-9.3 43.8-33.2v-7c0-.8-.3-1.7-.8-2.3z\"\n })));\n};\nexport { SvgGetresponse as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDkwIDU5IiB2aWV3Qm94PSIwIDAgOTAgNTkiIGhlaWdodD0iMjRweCI+CjxwYXRoIGQ9Im04Ny42IDUyYzAgMi4xLTEuNyAzLjctMy43IDMuN2gtODAuMmMtMiAuMS0zLjctMS42LTMuNy0zLjd2LTQ4LjNjMC0yIDEuNy0zLjcgMy43LTMuN2g4MC4xYzIuMSAwIDMuNyAxLjcgMy43IDMuN3Y0OC4zeiIgZmlsbD0iIzAwYmFmZiIvPjxwYXRoIGQ9Im04Ni44IDEuNGMtMTAuNCAxNi4xLTI2LjUgMzAuOS00My4xIDMwLjUtNi4xLS4xLTEzLjEtMS45LTE5LTYuNy00LjQtMy42LTguOC05LjItMTAuNS0xNy4yLS43IDAtMS4yIDAtMS44IDAtMi43IDAtNC4zIDIuNC00IDQuNi4xLjUuMiAxLjEuMyAxLjcgMS4zIDcuOCA1LjkgMTYuNiAxMy42IDIyLjMgNiA0LjQgMTMuNCA3LjMgMjEuNSA3LjMgMTQuNiAwIDMwLjItOS4zIDQzLjgtMzMuMnYtN2MwLS44LS4zLTEuNy0uOC0yLjN6IiBmaWxsPSIjZmZmIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailchimp = function SvgMailchimp(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 200 200\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.4 2.4c-8.9 2.9-16.5 7.2-26.2 14.9-23.1 18.3-43 45.8-47.7 65.9-1.7 7.1-1.7 7.7-.1 12.6 1.3 3.8 2.9 6.2 6.1 8.7l4.2 3.5-.5 8.8c-.4 7.4-.1 9.6 1.6 13.4 4.1 9.3 15 17.8 22.8 17.8 3 0 3.6.5 6.6 6.2 2 4 6.5 9.5 11.8 14.9 7.3 7.3 10 9.4 18 13.2 11.3 5.4 19.5 7.5 32.1 8.3 35.8 2.3 67-18.4 74.4-49.3 2.4-9.8 1.6-14.9-2.7-18.8-4.7-4.2-6-8.5-4.1-13.5 3.7-9.4-2.2-17.4-16.2-21.5l-4-1.2-.6-10.4c-.6-10.9-3.1-19-7-22.5-1.8-1.6-1.7-1.8 2.6-7.3 7-9 9.8-16 9.3-23.7-.5-7.3-2.6-10.4-9.3-13.5-7.6-3.5-23.2-2.1-35.8 3.3l-4.7 2.1-5.5-5.2C98 3.9 91.2 0 87.5.1c-1.1 0-5.2 1-9.1 2.3zm18.1 9.7c2.5 2.3 4.5 4.7 4.5 5.3-.1.6-4 3.6-8.8 6.6-25.5 16.1-42.4 34.4-53.3 58-2.2 4.7-4.3 9.1-4.7 9.8-.4.8-2.5 2-4.6 2.7-2.1.8-5.5 2.9-7.5 4.9l-3.6 3.5-3.2-2.5c-4.3-3.3-5.7-8.5-4.2-15.5C17.6 54.1 62.9 8.4 87.3 8.1c4.2-.1 5.2.4 9.2 4zm16 23.9c-1.8 1.9-1.7 2 .1 2 2.6 0 13.7 2.9 14.6 3.8.4.4-5.9.7-14 .7-13.5 0-15.4.2-22.8 2.8-4.5 1.5-10.7 4.3-13.8 6.2-3.1 1.8-5.6 3-5.6 2.5 0-1.9 20.8-18.9 23.3-19 .4 0 .3.9-.3 1.9-1.9 3.6-1 4.2 3.3 2 5.1-2.7 11.4-4.7 14.6-4.8 2.3-.1 2.4 0 .6 1.9zm30.2 25c2.9 2.7 4 6.9 4.7 18.4.4 5.5 1.2 10.6 1.8 11.3s3.2 1.9 5.8 2.7c6.5 1.9 12.6 5.2 13.4 7.1 2.3 6-2.9 12.8-13.8 17.9-10.9 5.2-19.9 7-35.3 6.8l-13.2-.1-2.6 3c-3.2 3.9-3.4 10.4-.4 14.3 3.8 4.8 9.4 6.9 19.6 7.4 15.4.7 31.1-4.1 40.2-12.3 5-4.6 4.7-5.5-.7-2.1-15.8 9.9-40.4 13.5-51.4 7.4-2.4-1.3-4.4-3.1-4.6-4.1-.3-1.4.2-1.6 3-.9 5.6 1.2 24.6.9 26-.5 1-1-.8-1.3-8.7-1.3-8.6 0-13.7-.7-19.2-2.5-.7-.2-1-1.1-.7-2 .5-1.2 2.9-1.5 13.9-1.5 18.8 0 31.1-2.9 42.8-10.1 2.6-1.6 4.9-2.9 5.2-2.9s1 2.1 1.6 4.6c.9 3.4 1.8 4.8 3.7 5.5 2.3.9 2.4 1.3 2 6.8-1.5 21.1-26.4 39.4-51.8 37.8-16.1-.9-27.3-7.5-33.2-19.4-3-6.1-3.3-7.6-3.3-15.3.1-9.1 2-15 7-21.6 1.4-1.8 2.5-3.9 2.5-4.6s-2-3.8-4.5-6.8c-9-10.9-9.6-22.7-1.6-31.3 4.9-5.4 7.5-6.1 20.7-5.8l12 .2 6-4c6.6-4.5 10-5.1 13.1-2.1zm-95.6 41.3c11.7 7.8 13.1 30.3 2.4 37.3-3.5 2.3-11.2 2.1-16.1-.4-7.9-4.1-12.4-11.1-12.4-19.6 0-6.6 1.2-10.1 4.8-14 5.6-5.9 15.2-7.5 21.3-3.3z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136 78c-1.1 2.1.1 9.5 1.9 11.3 1.7 1.7 4.2 1.7 4.8.1.9-2.3-.7-10.2-2.3-11.9-2-2-3.1-1.9-4.4.5zm-34.7 13.4c-3.3 2.8-2.7 4.1 1.1 2.6 3.6-1.3 9.9-1.3 13.1.2 3.7 1.7 4.4 0 1.2-2.8-3.9-3.4-11.5-3.4-15.4 0zm38.4 4.2c-1.2 1.2-.8 4.1.7 5.3 1.7 1.4 3.9-.9 3.4-3.6-.3-1.8-2.9-2.9-4.1-1.7zm-30.6 1.7c-3.4 1.7-4.2 4.2-1 3.1 1.3-.5 4.1-.9 6.2-.8 4.1 0 4.8-1 1.8-2.6-2.5-1.3-4-1.3-7 .3zm20.3 3.2c-.7 1.8 1.3 4.5 3.3 4.5 2.3 0 2.8-3.1.8-4.6-2.4-1.8-3.4-1.8-4.1.1zm-96.9 8.7c-3 2.7-4.7 7.9-3.3 9.9.5.8 1.1 1 1.4.4 2.2-5 3.2-6 6.1-6.3 4.5-.4 6.7 2.9 5.1 8-2 6.6 1.7 12.1 6.5 9.6 2-1 2.3-3 .5-2.7-3.5.4-4-.1-3.3-3.4.3-1.7.9-5.3 1.2-7.8.4-4.2.2-4.8-2.7-7.2-3.9-3.3-8-3.5-11.5-.5z\"\n })));\n};\nexport { SvgMailchimp as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2ZXJzaW9uPSIxIgogIHZpZXdCb3g9IjAgMCAyMDAgMjAwIgo+CiAgICA8cGF0aAogICAgICAgIGQ9Ik03ODQgMTk3NmMtODktMjktMTY1LTcyLTI2Mi0xNDktMjMxLTE4My00MzAtNDU4LTQ3Ny02NTktMTctNzEtMTctNzctMS0xMjYgMTMtMzggMjktNjIgNjEtODdsNDItMzUtNS04OGMtNC03NC0xLTk2IDE2LTEzNCA0MS05MyAxNTAtMTc4IDIyOC0xNzggMzAgMCAzNi01IDY2LTYyIDIwLTQwIDY1LTk1IDExOC0xNDkgNzMtNzMgMTAwLTk0IDE4MC0xMzIgMTEzLTU0IDE5NS03NSAzMjEtODMgMzU4LTIzIDY3MCAxODQgNzQ0IDQ5MyAyNCA5OCAxNiAxNDktMjcgMTg4LTQ3IDQyLTYwIDg1LTQxIDEzNSAzNyA5NC0yMiAxNzQtMTYyIDIxNWwtNDAgMTItNiAxMDRjLTYgMTA5LTMxIDE5MC03MCAyMjUtMTggMTYtMTcgMTggMjYgNzMgNzAgOTAgOTggMTYwIDkzIDIzNy01IDczLTI2IDEwNC05MyAxMzUtNzYgMzUtMjMyIDIxLTM1OC0zM2wtNDctMjEtNTUgNTJjLTU1IDUyLTEyMyA5MS0xNjAgOTAtMTEgMC01Mi0xMC05MS0yM3ptMTgxLTk3YzI1LTIzIDQ1LTQ3IDQ1LTUzLTEtNi00MC0zNi04OC02Ni0yNTUtMTYxLTQyNC0zNDQtNTMzLTU4MC0yMi00Ny00My05MS00Ny05OC00LTgtMjUtMjAtNDYtMjctMjEtOC01NS0yOS03NS00OWwtMzYtMzUtMzIgMjVjLTQzIDMzLTU3IDg1LTQyIDE1NSA2NSAzMDggNTE4IDc2NSA3NjIgNzY4IDQyIDEgNTItNCA5Mi00MHptMTYwLTIzOWMtMTgtMTktMTctMjAgMS0yMCAyNiAwIDEzNy0yOSAxNDYtMzggNC00LTU5LTctMTQwLTctMTM1IDAtMTU0LTItMjI4LTI4LTQ1LTE1LTEwNy00My0xMzgtNjItMzEtMTgtNTYtMzAtNTYtMjUgMCAxOSAyMDggMTg5IDIzMyAxOTAgNCAwIDMtOS0zLTE5LTE5LTM2LTEwLTQyIDMzLTIwIDUxIDI3IDExNCA0NyAxNDYgNDggMjMgMSAyNCAwIDYtMTl6bTMwMi0yNTBjMjktMjcgNDAtNjkgNDctMTg0IDQtNTUgMTItMTA2IDE4LTExM3MzMi0xOSA1OC0yN2M2NS0xOSAxMjYtNTIgMTM0LTcxIDIzLTYwLTI5LTEyOC0xMzgtMTc5LTEwOS01Mi0xOTktNzAtMzUzLTY4bC0xMzIgMS0yNi0zMGMtMzItMzktMzQtMTA0LTQtMTQzIDM4LTQ4IDk0LTY5IDE5Ni03NCAxNTQtNyAzMTEgNDEgNDAyIDEyMyA1MCA0NiA0NyA1NS03IDIxLTE1OC05OS00MDQtMTM1LTUxNC03NC0yNCAxMy00NCAzMS00NiA0MS0zIDE0IDIgMTYgMzAgOSA1Ni0xMiAyNDYtOSAyNjAgNSAxMCAxMC04IDEzLTg3IDEzLTg2IDAtMTM3IDctMTkyIDI1LTcgMi0xMCAxMS03IDIwIDUgMTIgMjkgMTUgMTM5IDE1IDE4OCAwIDMxMSAyOSA0MjggMTAxIDI2IDE2IDQ5IDI5IDUyIDI5czEwLTIxIDE2LTQ2YzktMzQgMTgtNDggMzctNTUgMjMtOSAyNC0xMyAyMC02OC0xNS0yMTEtMjY0LTM5NC01MTgtMzc4LTE2MSA5LTI3MyA3NS0zMzIgMTk0LTMwIDYxLTMzIDc2LTMzIDE1MyAxIDkxIDIwIDE1MCA3MCAyMTYgMTQgMTggMjUgMzkgMjUgNDZzLTIwIDM4LTQ1IDY4Yy05MCAxMDktOTYgMjI3LTE2IDMxMyA0OSA1NCA3NSA2MSAyMDcgNThsMTIwLTIgNjAgNDBjNjYgNDUgMTAwIDUxIDEzMSAyMXpNNDcxIDk3N2MxMTctNzggMTMxLTMwMyAyNC0zNzMtMzUtMjMtMTEyLTIxLTE2MSA0LTc5IDQxLTEyNCAxMTEtMTI0IDE5NiAwIDY2IDEyIDEwMSA0OCAxNDAgNTYgNTkgMTUyIDc1IDIxMyAzM3oiCiAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLjEgMCAwIC0uMSAwIDIwMCkiCiAgICA+PC9wYXRoPgogICAgPHBhdGgKICAgICAgICBkPSJNMTM2MCAxMjIwYy0xMS0yMSAxLTk1IDE5LTExMyAxNy0xNyA0Mi0xNyA0OC0xIDkgMjMtNyAxMDItMjMgMTE5LTIwIDIwLTMxIDE5LTQ0LTV6TTEwMTMgMTA4NmMtMzMtMjgtMjctNDEgMTEtMjYgMzYgMTMgOTkgMTMgMTMxLTIgMzctMTcgNDQgMCAxMiAyOC0zOSAzNC0xMTUgMzQtMTU0IDB6TTEzOTcgMTA0NGMtMTItMTItOC00MSA3LTUzIDE3LTE0IDM5IDkgMzQgMzYtMyAxOC0yOSAyOS00MSAxN3pNMTA5MSAxMDI3Yy0zNC0xNy00Mi00Mi0xMC0zMSAxMyA1IDQxIDkgNjIgOCA0MSAwIDQ4IDEwIDE4IDI2LTI1IDEzLTQwIDEzLTcwLTN6TTEyOTQgOTk1Yy03LTE4IDEzLTQ1IDMzLTQ1IDIzIDAgMjggMzEgOCA0Ni0yNCAxOC0zNCAxOC00MS0xek0zMjUgOTA4Yy0zMC0yNy00Ny03OS0zMy05OSA1LTggMTEtMTAgMTQtNCAyMiA1MCAzMiA2MCA2MSA2MyA0NSA0IDY3LTI5IDUxLTgwLTIwLTY2IDE3LTEyMSA2NS05NiAyMCAxMCAyMyAzMCA1IDI3LTM1LTQtNDAgMS0zMyAzNCAzIDE3IDkgNTMgMTIgNzggNCA0MiAyIDQ4LTI3IDcyLTM5IDMzLTgwIDM1LTExNSA1eiIKICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCguMSAwIDAgLS4xIDAgMjAwKSIKICAgID48L3BhdGg+Cjwvc3ZnPg==\";","var _rect, _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailerlite = function SvgMailerlite(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n fill: \"none\",\n viewBox: \"0 0 256 256\"\n }, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 253.538,\n height: 253.538,\n x: 1.231,\n y: 1.231,\n fill: \"#09C269\",\n stroke: \"#09C269\",\n strokeWidth: 2.462,\n rx: 4.923\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M178.619 73H77.286C69.38 73 63 79.669 63 87.93v94.852l19.714-20.403h96c7.905 0 14.286-6.669 14.286-14.93v-59.52C192.905 79.67 186.524 73 178.619 73Zm-85.238 66.885c0 2.189-1.714 3.981-3.81 3.981-2.095 0-3.81-1.792-3.81-3.981v-42.3c0-2.19 1.715-3.982 3.81-3.982 2.096 0 3.81 1.791 3.81 3.981v42.301Zm17.714 0c0 2.189-1.714 3.981-3.809 3.981-2.096 0-3.81-1.792-3.81-3.981v-27.969c0-2.189 1.714-3.981 3.81-3.981 2.095 0 3.809 1.792 3.809 3.981v27.969Zm.476-40.708c0 2.388-1.809 4.279-4.095 4.279h-.381c-2.285 0-4.095-1.891-4.095-4.28v-.298c0-2.389 1.81-4.28 4.095-4.28h.381c2.286 0 4.095 1.891 4.095 4.28v.299Zm26.858 43.694c-1.715.895-3.619 1.293-5.619 1.293-6.572 0-10.096-3.284-10.096-9.555V115.4h-3.428a2.077 2.077 0 0 1-2.096-2.09v-.1c0-.696.381-1.393.953-1.891l8.476-8.659a2.912 2.912 0 0 1 1.714-.896c1.143 0 2.191.996 2.191 2.19V108.234h6.095c1.905 0 3.429 1.592 3.429 3.583s-1.524 3.583-3.429 3.583h-6.095v18.712c0 2.687 1.333 2.886 3.143 2.886a7.79 7.79 0 0 0 2.19-.298c.476-.199 1.048-.199 1.524-.299 1.714 0 3.143 1.493 3.238 3.384-.19 1.294-1.048 2.588-2.19 3.086Zm23.333-6.171c2.762.099 5.524-.598 8-1.891.476-.299 1.048-.399 1.524-.399 1.904 0 3.428 1.493 3.428 3.484v.1c-.095 1.393-.857 2.687-2.095 3.284-2.667 1.593-5.524 2.986-11.429 2.986-10.666 0-17.142-6.868-17.142-18.314 0-13.436 8.571-18.313 15.809-18.313 10.857 0 15.81 9.057 15.81 17.418.095 2.09-1.524 3.881-3.524 3.981h-20.286c1.048 4.976 4.476 7.664 9.905 7.664Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M160.047 114.703c-4.19-.099-7.714 3.185-8.095 7.565h16.286c-.476-4.38-4-7.664-8.191-7.565Z\"\n })));\n};\nexport { SvgMailerlite as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjU2IDI1NiIgd2lkdGg9IjI0cHgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQo8cmVjdCB4PSIxLjIzMDc3IiB5PSIxLjIzMDc3IiB3aWR0aD0iMjUzLjUzOCIgaGVpZ2h0PSIyNTMuNTM4IiByeD0iNC45MjMwOCIgZmlsbD0iIzA5QzI2OSIgc3Ryb2tlPSIjMDlDMjY5IiBzdHJva2Utd2lkdGg9IjIuNDYxNTQiLz4NCjxwYXRoIGQ9Ik0xNzguNjE5IDczSDc3LjI4NTdDNjkuMzgxIDczIDYzIDc5LjY2ODYgNjMgODcuOTI5NlYxODIuNzgyTDgyLjcxNDMgMTYyLjM3OUgxNzguNzE0QzE4Ni42MTkgMTYyLjM3OSAxOTMgMTU1LjcxIDE5MyAxNDcuNDQ5Vjg3LjkyOTZDMTkyLjkwNSA3OS42Njg2IDE4Ni41MjQgNzMgMTc4LjYxOSA3M1pNOTMuMzgwOSAxMzkuODg1QzkzLjM4MDkgMTQyLjA3NCA5MS42NjY3IDE0My44NjYgODkuNTcxNCAxNDMuODY2Qzg3LjQ3NjIgMTQzLjg2NiA4NS43NjE5IDE0Mi4wNzQgODUuNzYxOSAxMzkuODg1Vjk3LjU4NDFDODUuNzYxOSA5NS4zOTQ0IDg3LjQ3NjIgOTMuNjAyOSA4OS41NzE0IDkzLjYwMjlDOTEuNjY2NyA5My42MDI5IDkzLjM4MDkgOTUuMzk0NCA5My4zODA5IDk3LjU4NDFWMTM5Ljg4NVpNMTExLjA5NSAxMzkuODg1QzExMS4wOTUgMTQyLjA3NCAxMDkuMzgxIDE0My44NjYgMTA3LjI4NiAxNDMuODY2QzEwNS4xOSAxNDMuODY2IDEwMy40NzYgMTQyLjA3NCAxMDMuNDc2IDEzOS44ODVWMTExLjkxNkMxMDMuNDc2IDEwOS43MjcgMTA1LjE5IDEwNy45MzUgMTA3LjI4NiAxMDcuOTM1QzEwOS4zODEgMTA3LjkzNSAxMTEuMDk1IDEwOS43MjcgMTExLjA5NSAxMTEuOTE2VjEzOS44ODVaTTExMS41NzEgOTkuMTc2NkMxMTEuNTcxIDEwMS41NjUgMTA5Ljc2MiAxMDMuNDU2IDEwNy40NzYgMTAzLjQ1NkgxMDcuMDk1QzEwNC44MSAxMDMuNDU2IDEwMyAxMDEuNTY1IDEwMyA5OS4xNzY2Vjk4Ljg3OEMxMDMgOTYuNDg5MiAxMDQuODEgOTQuNTk4MiAxMDcuMDk1IDk0LjU5ODJIMTA3LjQ3NkMxMDkuNzYyIDk0LjU5ODIgMTExLjU3MSA5Ni40ODkyIDExMS41NzEgOTguODc4Vjk5LjE3NjZaTTEzOC40MjkgMTQyLjg3MUMxMzYuNzE0IDE0My43NjYgMTM0LjgxIDE0NC4xNjQgMTMyLjgxIDE0NC4xNjRDMTI2LjIzOCAxNDQuMTY0IDEyMi43MTQgMTQwLjg4IDEyMi43MTQgMTM0LjYwOVYxMTUuNEgxMTkuMjg2QzExOC4xNDMgMTE1LjQgMTE3LjE5IDExNC41MDQgMTE3LjE5IDExMy4zMVYxMTMuMjFDMTE3LjE5IDExMi41MTQgMTE3LjU3MSAxMTEuODE3IDExOC4xNDMgMTExLjMxOUwxMjYuNjE5IDEwMi42NkMxMjcuMDk1IDEwMi4xNjIgMTI3LjY2NyAxMDEuODY0IDEyOC4zMzMgMTAxLjc2NEMxMjkuNDc2IDEwMS43NjQgMTMwLjUyNCAxMDIuNzYgMTMwLjUyNCAxMDMuOTU0QzEzMC41MjQgMTAzLjk1NCAxMzAuNTI0IDEwMy45NTQgMTMwLjUyNCAxMDQuMDU0VjEwOC4yMzRIMTM2LjYxOUMxMzguNTI0IDEwOC4yMzQgMTQwLjA0OCAxMDkuODI2IDE0MC4wNDggMTExLjgxN0MxNDAuMDQ4IDExMy44MDggMTM4LjUyNCAxMTUuNCAxMzYuNjE5IDExNS40SDEzMC41MjRWMTM0LjExMkMxMzAuNTI0IDEzNi43OTkgMTMxLjg1NyAxMzYuOTk4IDEzMy42NjcgMTM2Ljk5OEMxMzQuNDI5IDEzNi45OTggMTM1LjE5IDEzNi44OTkgMTM1Ljg1NyAxMzYuN0MxMzYuMzMzIDEzNi41MDEgMTM2LjkwNSAxMzYuNTAxIDEzNy4zODEgMTM2LjQwMUMxMzkuMDk1IDEzNi40MDEgMTQwLjUyNCAxMzcuODk0IDE0MC42MTkgMTM5Ljc4NUMxNDAuNDI5IDE0MS4wNzkgMTM5LjU3MSAxNDIuMzczIDEzOC40MjkgMTQyLjg3MVpNMTYxLjc2MiAxMzYuN0MxNjQuNTI0IDEzNi43OTkgMTY3LjI4NiAxMzYuMTAyIDE2OS43NjIgMTM0LjgwOUMxNzAuMjM4IDEzNC41MSAxNzAuODEgMTM0LjQxIDE3MS4yODYgMTM0LjQxQzE3My4xOSAxMzQuNDEgMTc0LjcxNCAxMzUuOTAzIDE3NC43MTQgMTM3Ljg5NEMxNzQuNzE0IDEzNy44OTQgMTc0LjcxNCAxMzcuODk0IDE3NC43MTQgMTM3Ljk5NEMxNzQuNjE5IDEzOS4zODcgMTczLjg1NyAxNDAuNjgxIDE3Mi42MTkgMTQxLjI3OEMxNjkuOTUyIDE0Mi44NzEgMTY3LjA5NSAxNDQuMjY0IDE2MS4xOSAxNDQuMjY0QzE1MC41MjQgMTQ0LjI2NCAxNDQuMDQ4IDEzNy4zOTYgMTQ0LjA0OCAxMjUuOTVDMTQ0LjA0OCAxMTIuNTE0IDE1Mi42MTkgMTA3LjYzNyAxNTkuODU3IDEwNy42MzdDMTcwLjcxNCAxMDcuNjM3IDE3NS42NjcgMTE2LjY5NCAxNzUuNjY3IDEyNS4wNTVDMTc1Ljc2MiAxMjcuMTQ1IDE3NC4xNDMgMTI4LjkzNiAxNzIuMTQzIDEyOS4wMzZDMTcyLjA0OCAxMjkuMDM2IDE3MS45NTIgMTI5LjAzNiAxNzEuODU3IDEyOS4wMzZIMTUxLjg1N0MxNTIuOTA1IDEzNC4wMTIgMTU2LjMzMyAxMzYuNyAxNjEuNzYyIDEzNi43WiIgZmlsbD0id2hpdGUiLz4NCjxwYXRoIGQ9Ik0xNjAuMDQ3IDExNC43MDNDMTU1Ljg1NyAxMTQuNjA0IDE1Mi4zMzMgMTE3Ljg4OCAxNTEuOTUyIDEyMi4yNjhIMTY4LjIzOEMxNjcuNzYyIDExNy44ODggMTY0LjIzOCAxMTQuNjA0IDE2MC4wNDcgMTE0LjcwM1oiIGZpbGw9IndoaXRlIi8+DQo8L3N2Zz4=\";","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailpoet = function SvgMailpoet(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n viewBox: \"0 0 152.02 156.4\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FF5301\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.71 89.1c3.5 0 5.9-.8 7.2-2.3a8 8 0 0 0 2-5.4V35.7l17 45.1a12.68 12.68 0 0 0 3.7 5.4c1.6 1.3 4 2 7.2 2a12.54 12.54 0 0 0 5.9-1.4 8.41 8.41 0 0 0 3.9-5l18.1-50V81a8.53 8.53 0 0 0 2.1 6.1c1.4 1.4 3.7 2.2 6.9 2.2 3.5 0 5.9-.8 7.2-2.3a8 8 0 0 0 2-5.4V8.7a7.48 7.48 0 0 0-3.3-6.6c-2.1-1.4-5-2.1-8.6-2.1a19.3 19.3 0 0 0-9.4 2 11.63 11.63 0 0 0-5.1 6.8l-19.6 58.3-20.5-58.7a12.4 12.4 0 0 0-4.5-6.2c-2.1-1.5-5-2.2-8.8-2.2a16.51 16.51 0 0 0-8.9 2.1c-2.3 1.5-3.5 3.9-3.5 7.2v71.5c0 2.8.7 4.8 2 6.2 1.5 1.4 3.7 2.1 7 2.1ZM149 116.6l-2.4-1.9a7.4 7.4 0 0 0-9.4.3 19.65 19.65 0 0 1-12.5 4.6h-21.4A37.08 37.08 0 0 0 77 130.5l-1.1 1.2-1.1-1.1a37.25 37.25 0 0 0-26.3-10.9H27a19.59 19.59 0 0 1-12.4-4.6 7.28 7.28 0 0 0-9.4-.3l-2.4 1.9a7.43 7.43 0 0 0-2.8 5.5 7.14 7.14 0 0 0 2.4 5.7 37.28 37.28 0 0 0 24.6 9.5h21.6a19.59 19.59 0 0 1 18.9 14.4v.2c.1.7 1.2 4.4 8.5 4.4s8.4-3.7 8.5-4.4v-.2a19.59 19.59 0 0 1 18.9-14.4H125a37.28 37.28 0 0 0 24.6-9.5 7.42 7.42 0 0 0 2.4-5.7 7.86 7.86 0 0 0-3-5.6Z\"\n })))));\n};\nexport { SvgMailpoet as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNTIuMDIgMTU2LjQiIHdpZHRoPSIyNHB4Ij48dGl0bGU+c3ltYm9sPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iTGF5ZXJfMS0yIiBkYXRhLW5hbWU9IkxheWVyIDEiPjxwYXRoIGZpbGw9IiNGRjUzMDEiIGQ9Ik0zNy43MSw4OS4xYzMuNSwwLDUuOS0uOCw3LjItMi4zYTgsOCwwLDAsMCwyLTUuNFYzNS43bDE3LDQ1LjFhMTIuNjgsMTIuNjgsMCwwLDAsMy43LDUuNGMxLjYsMS4zLDQsMiw3LjIsMmExMi41NCwxMi41NCwwLDAsMCw1LjktMS40LDguNDEsOC40MSwwLDAsMCwzLjktNWwxOC4xLTUwVjgxYTguNTMsOC41MywwLDAsMCwyLjEsNi4xYzEuNCwxLjQsMy43LDIuMiw2LjksMi4yLDMuNSwwLDUuOS0uOCw3LjItMi4zYTgsOCwwLDAsMCwyLTUuNFY4LjdhNy40OCw3LjQ4LDAsMCwwLTMuMy02LjZjLTIuMS0xLjQtNS0yLjEtOC42LTIuMWExOS4zLDE5LjMsMCwwLDAtOS40LDIsMTEuNjMsMTEuNjMsMCwwLDAtNS4xLDYuOEw3NC45MSw2Ny4xLDU0LjQxLDguNGExMi40LDEyLjQsMCwwLDAtNC41LTYuMmMtMi4xLTEuNS01LTIuMi04LjgtMi4yYTE2LjUxLDE2LjUxLDAsMCwwLTguOSwyLjFjLTIuMywxLjUtMy41LDMuOS0zLjUsNy4yVjgwLjhjMCwyLjguNyw0LjgsMiw2LjJDMzIuMjEsODguNCwzNC40MSw4OS4xLDM3LjcxLDg5LjFaIi8+PHBhdGggZmlsbD0iI0ZGNTMwMSIgZD0iTTE0OSwxMTYuNmwtMi40LTEuOWE3LjQsNy40LDAsMCwwLTkuNC4zLDE5LjY1LDE5LjY1LDAsMCwxLTEyLjUsNC42aC0yMS40QTM3LjA4LDM3LjA4LDAsMCwwLDc3LDEzMC41bC0xLjEsMS4yLTEuMS0xLjFhMzcuMjUsMzcuMjUsMCwwLDAtMjYuMy0xMC45SDI3YTE5LjU5LDE5LjU5LDAsMCwxLTEyLjQtNC42LDcuMjgsNy4yOCwwLDAsMC05LjQtLjNsLTIuNCwxLjlBNy40Myw3LjQzLDAsMCwwLDAsMTIyLjJhNy4xNCw3LjE0LDAsMCwwLDIuNCw1LjdBMzcuMjgsMzcuMjgsMCwwLDAsMjcsMTM3LjRoMjEuNmExOS41OSwxOS41OSwwLDAsMSwxOC45LDE0LjR2LjJjLjEuNywxLjIsNC40LDguNSw0LjRzOC40LTMuNyw4LjUtNC40di0uMmExOS41OSwxOS41OSwwLDAsMSwxOC45LTE0LjRIMTI1YTM3LjI4LDM3LjI4LDAsMCwwLDI0LjYtOS41LDcuNDIsNy40MiwwLDAsMCwyLjQtNS43QTcuODYsNy44NiwwLDAsMCwxNDksMTE2LjZaIi8+PC9nPjwvZz48L3N2Zz4=\";","var _style, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMoosend = function SvgMoosend(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n id: \"moosend_svg__Layer_1\",\n width: 24,\n x: 0,\n y: 0,\n style: {\n enableBackground: \"new 0 0 215.6 200\"\n },\n viewBox: \"0 0 215.6 200\"\n }, props), _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \".moosend_svg__st0{fill:#fff}.moosend_svg__st1{fill:#394257}\")), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M161.8 103.5c0 9.4-7.6 17-17 17H72.3c-9.4 0-17-7.6-17-17V32.8c0-9.4 7.6-17 17-17h72.5c9.4 0 17 7.6 17 17v70.7z\",\n className: \"moosend_svg__st0\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74 13.1s7.1-23.3 16 .3c-15.6-.3-16-.3-16-.3zM126.7 13.1s7.1-23.3 16 .3c-15.6-.3-16-.3-16-.3z\",\n className: \"moosend_svg__st1\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.8 141c.4 1.4-.3 3-1.8 3.4L89.8 160c-1.4.4-3-.3-3.4-1.8l-10.3-32.4c-.5-1.4.3-3 1.8-3.4l49.2-15.6c1.4-.5 3 .3 3.4 1.8l10.3 32.4z\",\n className: \"moosend_svg__st0\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.3 163.2c-2.3 0-4.2-1.4-4.9-3.6l-10.3-32.4c-.9-2.7.6-5.6 3.3-6.5l49.2-15.6c2.6-.8 5.6.7 6.5 3.3l10.3 32.4c.9 2.7-.6 5.6-3.3 6.5l-49.2 15.6c-.6.2-1.1.3-1.6.3zm38.9-53.5-49.3 15.7c-.1 0-.2.2-.2.4L89 158.1c.1.2.3.2.4.2l49.2-15.6c.1 0 .2-.2.2-.4l-10.3-32.4c-.1-.1-.2-.2-.3-.2z\",\n className: \"moosend_svg__st1\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.8 123.2c-1.2.6-1.8 2-1.4 3.3l10.3 32.4c.2.5.5 1 .9 1.3l13.4-26-23.2-11z\",\n className: \"moosend_svg__st0\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m89 162.5-3-.6c-.8-.6-1.3-1.5-1.7-2.4L74 127.1c-.8-2.4.4-5.1 2.7-6.2l1-.5 26.4 12.5L89 162.5zm-10.1-36.1 8.9 27.9 9.8-19.1-18.7-8.8z\",\n className: \"moosend_svg__st1\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141 143.3c.2-.6.3-1.2.1-1.8l-10.2-32.2c-.5-1.4-1.9-2-3.4-1.6l-.3.1-13 21.9 26.8 13.6z\",\n className: \"moosend_svg__st0\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m140.9 146-30.2-15.3 14.8-24.9 1.2-.4c2.8-.9 5.6.6 6.4 3.2l10.2 32.2c.3 1.1.3 2.3-.1 3.4l-2.3 1.8zm-23.3-17.2 20.1 10.2-9.1-28.6-11 18.4z\",\n className: \"moosend_svg__st1\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.3 107.5c-.6-.3-1.3-.3-1.9-.1L78.2 123c-.8.2-1.3.8-1.6 1.5l33.9 17.1 18.8-34.1z\",\n className: \"moosend_svg__st0\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M111.4 144.8 74.1 126l.2-2.5c.6-1.3 1.7-2.3 3.1-2.8l49.2-15.6c1.2-.4 2.5-.3 3.7.2l2.4 1.1-21.3 38.4zm-29.6-20.3 27.6 13.9 15.3-27.5-42.9 13.6z\",\n className: \"moosend_svg__st1\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.1 77.5c-24.8 0-46 6.5-56.6 16.6 0 13.1 10.4 27 23.5 27h66.2c13.1 0 23.3-14.1 23.3-27.3-10.6-10.1-31.6-16.3-56.4-16.3zM153.9 15.5l40.3 23.3s-18 14.4-32.3 4.1c-.8-.6.4-16.9-.3-17.6l-7.7-9.8zM61.7 15.5 21.4 38.8s18 14.4 32.3 4.1c.8-.6-.4-16.9.3-17.6l7.7-9.8z\",\n className: \"moosend_svg__st1\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.1 82.4c-24.8 0-45.3 6.8-55.9 16.2 0 12.3 9.7 22.5 22.8 22.5h66.2c13.1 0 22.9-9.8 23-22.1-10.7-9.4-31.3-16.6-56.1-16.6z\",\n style: {\n fill: \"#e16053\"\n }\n }), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.5 58.4c-.7 2.8-2.7 4.7-4.4 4.3-1.7-.4-2.6-3-1.9-5.8.7-2.8 2.7-4.7 4.4-4.3 1.8.4 2.6 3.1 1.9 5.8zM119.8 56.8c.8 2.8 0 5.4-1.7 5.9s-3.7-1.3-4.5-4.1c-.8-2.8 0-5.4 1.7-5.9 1.6-.5 3.7 1.3 4.5 4.1zM90.3 102.8c2.3 4 2.2 8.4-.3 9.8-2.5 1.5-6.4-.6-8.7-4.6-2.3-4-2.2-8.4.3-9.8 2.5-1.5 6.4.6 8.7 4.6zM128.6 103c-2.3 4-2.2 8.4.3 9.8 2.5 1.5 6.4-.6 8.7-4.6 2.3-4 2.2-8.4-.3-9.8-2.5-1.4-6.3.6-8.7 4.6z\",\n className: \"moosend_svg__st1\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.4 35.2c0-13.2-10.7-23.9-23.9-23.9H75c-13.2 0-23.9 10.5-23.9 23.7v66.2c0 13.2 10.7 24.3 23.9 24.3h66.2c13.2 0 23.9-10.9 23.9-24.1l-.7-66.2zm-4.1 67.5c0 9.8-8 17.8-17.8 17.8H73.8c-9.8 0-17.8-8-17.8-17.8V34.1c0-9.8 8-17.8 17.8-17.8h68.6c9.8 0 17.8 8 17.8 17.8v68.6z\",\n className: \"moosend_svg__st1\"\n })));\n};\nexport { SvgMoosend as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNS4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMTUuNiAyMDAiIHdpZHRoPSIyNHB4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyMTUuNiAyMDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiNGRkZGRkY7fQ0KCS5zdDF7ZmlsbDojMzk0MjU3O30NCgkuc3Qye2ZpbGw6I0UxNjA1Mzt9DQoJLnN0M3tmaWxsOiM5Njk2OTY7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNjEuOCwxMDMuNWMwLDkuNC03LjYsMTctMTcsMTdINzIuM2MtOS40LDAtMTctNy42LTE3LTE3VjMyLjhjMC05LjQsNy42LTE3LDE3LTE3aDcyLjVjOS40LDAsMTcsNy42LDE3LDE3DQoJCQkJTDE2MS44LDEwMy41TDE2MS44LDEwMy41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik03NCwxMy4xYzAsMCw3LjEtMjMuMywxNiwwLjNDNzQuNCwxMy4xLDc0LDEzLjEsNzQsMTMuMXoiLz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTI2LjcsMTMuMWMwLDAsNy4xLTIzLjMsMTYsMC4zQzEyNy4xLDEzLjEsMTI2LjcsMTMuMSwxMjYuNywxMy4xeiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNDAuOCwxNDFjMC40LDEuNC0wLjMsMy0xLjgsMy40bC00OS4yLDE1LjZjLTEuNCwwLjQtMy0wLjMtMy40LTEuOGwtMTAuMy0zMi40Yy0wLjUtMS40LDAuMy0zLDEuOC0zLjQNCgkJCQkJbDQ5LjItMTUuNmMxLjQtMC41LDMsMC4zLDMuNCwxLjhMMTQwLjgsMTQxeiIvPg0KCQkJPC9nPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTg5LjMsMTYzLjJjLTIuMywwLTQuMi0xLjQtNC45LTMuNmwtMTAuMy0zMi40Yy0wLjktMi43LDAuNi01LjYsMy4zLTYuNWw0OS4yLTE1LjYNCgkJCQkJYzIuNi0wLjgsNS42LDAuNyw2LjUsMy4zbDEwLjMsMzIuNGMwLjksMi43LTAuNiw1LjYtMy4zLDYuNWwtNDkuMiwxNS42QzkwLjMsMTYzLjEsODkuOCwxNjMuMiw4OS4zLDE2My4yeiBNMTI4LjIsMTA5LjcNCgkJCQkJbC00OS4zLDE1LjdjLTAuMSwwLTAuMiwwLjItMC4yLDAuNEw4OSwxNTguMWMwLjEsMC4yLDAuMywwLjIsMC40LDAuMmw0OS4yLTE1LjZjMC4xLDAsMC4yLTAuMiwwLjItMC40bC0xMC4zLTMyLjQNCgkJCQkJQzEyOC40LDEwOS44LDEyOC4zLDEwOS43LDEyOC4yLDEwOS43eiIvPg0KCQkJPC9nPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTc3LjgsMTIzLjJjLTEuMiwwLjYtMS44LDItMS40LDMuM2wxMC4zLDMyLjRjMC4yLDAuNSwwLjUsMSwwLjksMS4zbDEzLjQtMjZMNzcuOCwxMjMuMnoiLz4NCgkJCTwvZz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik04OSwxNjIuNWwtMy0wLjZjLTAuOC0wLjYtMS4zLTEuNS0xLjctMi40bC0xMC4zLTMyLjRjLTAuOC0yLjQsMC40LTUuMSwyLjctNi4ybDEtMC41bDI2LjQsMTIuNUw4OSwxNjIuNXoNCgkJCQkJIE03OC45LDEyNi40bDguOSwyNy45bDkuOC0xOS4xTDc4LjksMTI2LjR6Ii8+DQoJCQk8L2c+DQoJCTwvZz4NCgkJPGc+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTQxLDE0My4zYzAuMi0wLjYsMC4zLTEuMiwwLjEtMS44bC0xMC4yLTMyLjJjLTAuNS0xLjQtMS45LTItMy40LTEuNmwtMC4zLDAuMWwtMTMsMjEuOUwxNDEsMTQzLjN6Ii8+DQoJCQk8L2c+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTQwLjksMTQ2bC0zMC4yLTE1LjNsMTQuOC0yNC45bDEuMi0wLjRjMi44LTAuOSw1LjYsMC42LDYuNCwzLjJsMTAuMiwzMi4yYzAuMywxLjEsMC4zLDIuMy0wLjEsMy40DQoJCQkJCUwxNDAuOSwxNDZ6IE0xMTcuNiwxMjguOGwyMC4xLDEwLjJsLTkuMS0yOC42TDExNy42LDEyOC44eiIvPg0KCQkJPC9nPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyOS4zLDEwNy41Yy0wLjYtMC4zLTEuMy0wLjMtMS45LTAuMWwtNDkuMiwxNS42Yy0wLjgsMC4yLTEuMywwLjgtMS42LDEuNWwzMy45LDE3LjFMMTI5LjMsMTA3LjV6Ii8+DQoJCQk8L2c+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTExLjQsMTQ0LjhMNzQuMSwxMjZsMC4yLTIuNWMwLjYtMS4zLDEuNy0yLjMsMy4xLTIuOGw0OS4yLTE1LjZjMS4yLTAuNCwyLjUtMC4zLDMuNywwLjJsMi40LDEuMQ0KCQkJCQlMMTExLjQsMTQ0Ljh6IE04MS44LDEyNC41bDI3LjYsMTMuOWwxNS4zLTI3LjVMODEuOCwxMjQuNXoiLz4NCgkJCTwvZz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTA4LjEsNzcuNWMtMjQuOCwwLTQ2LDYuNS01Ni42LDE2LjZjMCwxMy4xLDEwLjQsMjcsMjMuNSwyN2g2Ni4yYzEzLjEsMCwyMy4zLTE0LjEsMjMuMy0yNy4zDQoJCQkJQzE1My45LDgzLjcsMTMyLjksNzcuNSwxMDguMSw3Ny41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNTMuOSwxNS41bDQwLjMsMjMuM2MwLDAtMTgsMTQuNC0zMi4zLDQuMWMtMC44LTAuNiwwLjQtMTYuOS0wLjMtMTcuNkwxNTMuOSwxNS41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MS43LDE1LjVMMjEuNCwzOC44YzAsMCwxOCwxNC40LDMyLjMsNC4xYzAuOC0wLjYtMC40LTE2LjksMC4zLTE3LjZMNjEuNywxNS41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMDguMSw4Mi40Yy0yNC44LDAtNDUuMyw2LjgtNTUuOSwxNi4yYzAsMTIuMyw5LjcsMjIuNSwyMi44LDIyLjVoNjYuMmMxMy4xLDAsMjIuOS05LjgsMjMtMjIuMQ0KCQkJCUMxNTMuNSw4OS42LDEzMi45LDgyLjQsMTA4LjEsODIuNHoiLz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTAzLjUsNTguNGMtMC43LDIuOC0yLjcsNC43LTQuNCw0LjNjLTEuNy0wLjQtMi42LTMtMS45LTUuOGMwLjctMi44LDIuNy00LjcsNC40LTQuMw0KCQkJCUMxMDMuNCw1MywxMDQuMiw1NS43LDEwMy41LDU4LjR6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTExOS44LDU2LjhjMC44LDIuOCwwLDUuNC0xLjcsNS45Yy0xLjcsMC41LTMuNy0xLjMtNC41LTQuMWMtMC44LTIuOCwwLTUuNCwxLjctNS45DQoJCQkJQzExNi45LDUyLjIsMTE5LDU0LDExOS44LDU2Ljh6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTkwLjMsMTAyLjhjMi4zLDQsMi4yLDguNC0wLjMsOS44Yy0yLjUsMS41LTYuNC0wLjYtOC43LTQuNmMtMi4zLTQtMi4yLTguNCwwLjMtOS44DQoJCQkJQzg0LjEsOTYuNyw4OCw5OC44LDkwLjMsMTAyLjh6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTEyOC42LDEwM2MtMi4zLDQtMi4yLDguNCwwLjMsOS44YzIuNSwxLjUsNi40LTAuNiw4LjctNC42YzIuMy00LDIuMi04LjQtMC4zLTkuOA0KCQkJCUMxMzQuOCw5NywxMzEsOTksMTI4LjYsMTAzeiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNjQuNCwzNS4yYzAtMTMuMi0xMC43LTIzLjktMjMuOS0yMy45SDc1Yy0xMy4yLDAtMjMuOSwxMC41LTIzLjksMjMuN3Y2Ni4yYzAsMTMuMiwxMC43LDI0LjMsMjMuOSwyNC4zDQoJCQkJCWg2Ni4yYzEzLjIsMCwyMy45LTEwLjksMjMuOS0yNC4xTDE2NC40LDM1LjJ6IE0xNjAuMywxMDIuN2MwLDkuOC04LDE3LjgtMTcuOCwxNy44SDczLjhjLTkuOCwwLTE3LjgtOC0xNy44LTE3LjhWMzQuMQ0KCQkJCQljMC05LjgsOC0xNy44LDE3LjgtMTcuOGg2OC42YzkuOCwwLDE3LjgsOCwxNy44LDE3LjhWMTAyLjd6Ii8+DQoJCQk8L2c+DQoJCTwvZz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgWebhook = function SvgWebhook(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.46 19C9 21.07 6.15 21.59 4.09 20.15c-2.05-1.44-2.53-4.31-1.09-6.4a4.585 4.585 0 0 1 3.58-1.98l.05 1.43c-.91.07-1.79.54-2.36 1.36-1 1.44-.69 3.38.68 4.35 1.38.96 3.31.59 4.31-.84.31-.45.49-.94.56-1.44v-1.01l5.58-.04.07-.11c.53-.92 1.68-1.24 2.58-.72a1.9 1.9 0 0 1 .68 2.6c-.53.91-1.69 1.23-2.59.71-.41-.23-.7-.6-.83-1.02l-4.07.02a4.96 4.96 0 0 1-.78 1.94m7.28-7.14c2.53.31 4.33 2.58 4.02 5.07-.31 2.5-2.61 4.27-5.14 3.96a4.629 4.629 0 0 1-3.43-2.21l1.24-.72a3.22 3.22 0 0 0 2.32 1.45c1.75.21 3.3-.98 3.51-2.65.21-1.67-1.03-3.2-2.76-3.41-.54-.06-1.06.01-1.53.18l-.85.44-2.58-4.77h-.22a1.906 1.906 0 0 1-1.85-1.95c.03-1.04.93-1.85 1.98-1.81 1.05.06 1.88.91 1.85 1.95-.02.44-.19.84-.46 1.15l1.9 3.51c.62-.2 1.3-.27 2-.19M8.25 9.14c-1-2.35.06-5.04 2.37-6.02 2.32-.98 5 .13 6 2.48.59 1.37.47 2.87-.2 4.07l-1.24-.72c.42-.81.49-1.8.09-2.73-.68-1.6-2.49-2.37-4.04-1.72-1.56.66-2.26 2.5-1.58 4.1.28.66.75 1.17 1.32 1.51l.39.21-3.07 4.99c.03.05.07.11.1.19.49.91.15 2.06-.77 2.55-.91.49-2.06.13-2.56-.81-.49-.93-.15-2.08.77-2.57.39-.21.82-.26 1.23-.17l2.31-3.77c-.47-.43-.87-.97-1.12-1.59Z\"\n })));\n};\nexport { SvgWebhook as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXdlYmhvb2siIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTAuNDYsMTlDOSwyMS4wNyA2LjE1LDIxLjU5IDQuMDksMjAuMTVDMi4wNCwxOC43MSAxLjU2LDE1Ljg0IDMsMTMuNzVDMy44NywxMi41IDUuMjEsMTEuODMgNi41OCwxMS43N0w2LjYzLDEzLjJDNS43MiwxMy4yNyA0Ljg0LDEzLjc0IDQuMjcsMTQuNTZDMy4yNywxNiAzLjU4LDE3Ljk0IDQuOTUsMTguOTFDNi4zMywxOS44NyA4LjI2LDE5LjUgOS4yNiwxOC4wN0M5LjU3LDE3LjYyIDkuNzUsMTcuMTMgOS44MiwxNi42M1YxNS42MkwxNS40LDE1LjU4TDE1LjQ3LDE1LjQ3QzE2LDE0LjU1IDE3LjE1LDE0LjIzIDE4LjA1LDE0Ljc1QzE4Ljk1LDE1LjI3IDE5LjI2LDE2LjQzIDE4LjczLDE3LjM1QzE4LjIsMTguMjYgMTcuMDQsMTguNTggMTYuMTQsMTguMDZDMTUuNzMsMTcuODMgMTUuNDQsMTcuNDYgMTUuMzEsMTcuMDRMMTEuMjQsMTcuMDZDMTEuMTMsMTcuNzMgMTAuODcsMTguMzggMTAuNDYsMTlNMTcuNzQsMTEuODZDMjAuMjcsMTIuMTcgMjIuMDcsMTQuNDQgMjEuNzYsMTYuOTNDMjEuNDUsMTkuNDMgMTkuMTUsMjEuMiAxNi42MiwyMC44OUMxNS4xMywyMC43MSAxMy45LDE5Ljg2IDEzLjE5LDE4LjY4TDE0LjQzLDE3Ljk2QzE0LjkyLDE4LjczIDE1Ljc1LDE5LjI4IDE2Ljc1LDE5LjQxQzE4LjUsMTkuNjIgMjAuMDUsMTguNDMgMjAuMjYsMTYuNzZDMjAuNDcsMTUuMDkgMTkuMjMsMTMuNTYgMTcuNSwxMy4zNUMxNi45NiwxMy4yOSAxNi40NCwxMy4zNiAxNS45NywxMy41M0wxNS4xMiwxMy45N0wxMi41NCw5LjJIMTIuMzJDMTEuMjYsOS4xNiAxMC40NCw4LjI5IDEwLjQ3LDcuMjVDMTAuNSw2LjIxIDExLjQsNS40IDEyLjQ1LDUuNDRDMTMuNSw1LjUgMTQuMzMsNi4zNSAxNC4zLDcuMzlDMTQuMjgsNy44MyAxNC4xMSw4LjIzIDEzLjg0LDguNTRMMTUuNzQsMTIuMDVDMTYuMzYsMTEuODUgMTcuMDQsMTEuNzggMTcuNzQsMTEuODZNOC4yNSw5LjE0QzcuMjUsNi43OSA4LjMxLDQuMSAxMC42MiwzLjEyQzEyLjk0LDIuMTQgMTUuNjIsMy4yNSAxNi42Miw1LjZDMTcuMjEsNi45NyAxNy4wOSw4LjQ3IDE2LjQyLDkuNjdMMTUuMTgsOC45NUMxNS42LDguMTQgMTUuNjcsNy4xNSAxNS4yNyw2LjIyQzE0LjU5LDQuNjIgMTIuNzgsMy44NSAxMS4yMyw0LjVDOS42Nyw1LjE2IDguOTcsNyA5LjY1LDguNkM5LjkzLDkuMjYgMTAuNCw5Ljc3IDEwLjk3LDEwLjExTDExLjM2LDEwLjMyTDguMjksMTUuMzFDOC4zMiwxNS4zNiA4LjM2LDE1LjQyIDguMzksMTUuNUM4Ljg4LDE2LjQxIDguNTQsMTcuNTYgNy42MiwxOC4wNUM2LjcxLDE4LjU0IDUuNTYsMTguMTggNS4wNiwxNy4yNEM0LjU3LDE2LjMxIDQuOTEsMTUuMTYgNS44MywxNC42N0M2LjIyLDE0LjQ2IDYuNjUsMTQuNDEgNy4wNiwxNC41TDkuMzcsMTAuNzNDOC45LDEwLjMgOC41LDkuNzYgOC4yNSw5LjE0WiIgLz48L3N2Zz4=\";","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { uuid } from './Utils';\nvar injectScriptTag = function (doc, item, handler) {\n var _a, _b;\n var scriptTag = doc.createElement('script');\n scriptTag.referrerPolicy = 'origin';\n scriptTag.type = 'application/javascript';\n scriptTag.id = item.id;\n scriptTag.src = item.src;\n scriptTag.async = (_a = item.async) !== null && _a !== void 0 ? _a : false;\n scriptTag.defer = (_b = item.defer) !== null && _b !== void 0 ? _b : false;\n var loadHandler = function () {\n scriptTag.removeEventListener('load', loadHandler);\n scriptTag.removeEventListener('error', errorHandler);\n handler(item.src);\n };\n var errorHandler = function (err) {\n scriptTag.removeEventListener('load', loadHandler);\n scriptTag.removeEventListener('error', errorHandler);\n handler(item.src, err);\n };\n scriptTag.addEventListener('load', loadHandler);\n scriptTag.addEventListener('error', errorHandler);\n if (doc.head) {\n doc.head.appendChild(scriptTag);\n }\n};\nvar createDocumentScriptLoader = function (doc) {\n var lookup = {};\n var scriptLoadOrErrorHandler = function (src, err) {\n var item = lookup[src];\n item.done = true;\n item.error = err;\n for (var _i = 0, _a = item.handlers; _i < _a.length; _i++) {\n var h = _a[_i];\n h(src, err);\n }\n item.handlers = [];\n };\n var loadScripts = function (items, success, failure) {\n // eslint-disable-next-line no-console\n var failureOrLog = function (err) { return failure !== undefined ? failure(err) : console.error(err); };\n if (items.length === 0) {\n failureOrLog(new Error('At least one script must be provided'));\n return;\n }\n var successCount = 0;\n var failed = false;\n var loaded = function (_src, err) {\n if (failed) {\n return;\n }\n if (err) {\n failed = true;\n failureOrLog(err);\n }\n else if (++successCount === items.length) {\n success();\n }\n };\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var item = items_1[_i];\n var existing = lookup[item.src];\n if (existing) {\n if (existing.done) {\n loaded(item.src, existing.error);\n }\n else {\n existing.handlers.push(loaded);\n }\n }\n else {\n // create a new entry\n var id = uuid('tiny-');\n lookup[item.src] = {\n id: id,\n src: item.src,\n done: false,\n error: null,\n handlers: [loaded],\n };\n injectScriptTag(doc, __assign({ id: id }, item), scriptLoadOrErrorHandler);\n }\n }\n };\n var deleteScripts = function () {\n var _a;\n for (var _i = 0, _b = Object.values(lookup); _i < _b.length; _i++) {\n var item = _b[_i];\n var scriptTag = doc.getElementById(item.id);\n if (scriptTag != null && scriptTag.tagName === 'SCRIPT') {\n (_a = scriptTag.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(scriptTag);\n }\n }\n lookup = {};\n };\n var getDocument = function () { return doc; };\n return {\n loadScripts: loadScripts,\n deleteScripts: deleteScripts,\n getDocument: getDocument\n };\n};\nvar createScriptLoader = function () {\n var cache = [];\n var getDocumentScriptLoader = function (doc) {\n var loader = cache.find(function (l) { return l.getDocument() === doc; });\n if (loader === undefined) {\n loader = createDocumentScriptLoader(doc);\n cache.push(loader);\n }\n return loader;\n };\n var loadList = function (doc, items, delay, success, failure) {\n var doLoad = function () { return getDocumentScriptLoader(doc).loadScripts(items, success, failure); };\n if (delay > 0) {\n setTimeout(doLoad, delay);\n }\n else {\n doLoad();\n }\n };\n var reinitialize = function () {\n for (var loader = cache.pop(); loader != null; loader = cache.pop()) {\n loader.deleteScripts();\n }\n };\n return {\n loadList: loadList,\n reinitialize: reinitialize\n };\n};\nexport var ScriptLoader = createScriptLoader();\n","var getTinymce = function (view) {\n var global = view;\n return global && global.tinymce ? global.tinymce : null;\n};\nexport { getTinymce };\n","import { eventPropTypes } from './components/EditorPropTypes';\nexport var isFunction = function (x) { return typeof x === 'function'; };\nvar isEventProp = function (name) { return name in eventPropTypes; };\nvar eventAttrToEventName = function (attrName) { return attrName.substr(2); };\nexport var configHandlers2 = function (handlerLookup, on, off, adapter, prevProps, props, boundHandlers) {\n var prevEventKeys = Object.keys(prevProps).filter(isEventProp);\n var currEventKeys = Object.keys(props).filter(isEventProp);\n var removedKeys = prevEventKeys.filter(function (key) { return props[key] === undefined; });\n var addedKeys = currEventKeys.filter(function (key) { return prevProps[key] === undefined; });\n removedKeys.forEach(function (key) {\n // remove event handler\n var eventName = eventAttrToEventName(key);\n var wrappedHandler = boundHandlers[eventName];\n off(eventName, wrappedHandler);\n delete boundHandlers[eventName];\n });\n addedKeys.forEach(function (key) {\n var wrappedHandler = adapter(handlerLookup, key);\n var eventName = eventAttrToEventName(key);\n boundHandlers[eventName] = wrappedHandler;\n on(eventName, wrappedHandler);\n });\n};\nexport var configHandlers = function (editor, prevProps, props, boundHandlers, lookup) {\n return configHandlers2(lookup, editor.on.bind(editor), editor.off.bind(editor), \n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n function (handlerLookup, key) { return function (e) { var _a; return (_a = handlerLookup(key)) === null || _a === void 0 ? void 0 : _a(e, editor); }; }, prevProps, props, boundHandlers);\n};\nvar unique = 0;\nexport var uuid = function (prefix) {\n var time = Date.now();\n var random = Math.floor(Math.random() * 1000000000);\n unique++;\n return prefix + '_' + random + unique + String(time);\n};\nexport var isTextareaOrInput = function (element) {\n return element !== null && (element.tagName.toLowerCase() === 'textarea' || element.tagName.toLowerCase() === 'input');\n};\nvar normalizePluginArray = function (plugins) {\n if (typeof plugins === 'undefined' || plugins === '') {\n return [];\n }\n return Array.isArray(plugins) ? plugins : plugins.split(' ');\n};\n// eslint-disable-next-line max-len\nexport var mergePlugins = function (initPlugins, inputPlugins) { return normalizePluginArray(initPlugins).concat(normalizePluginArray(inputPlugins)); };\nexport var isBeforeInputEventAvailable = function () { return window.InputEvent && typeof InputEvent.prototype.getTargetRanges === 'function'; };\nexport var isInDoc = function (elem) {\n if (!('isConnected' in Node.prototype)) {\n // Fallback for IE and old Edge\n var current = elem;\n var parent_1 = elem.parentNode;\n while (parent_1 != null) {\n current = parent_1;\n parent_1 = current.parentNode;\n }\n return current === elem.ownerDocument;\n }\n return elem.isConnected;\n};\nexport var setMode = function (editor, mode) {\n if (editor !== undefined) {\n if (editor.mode != null && typeof editor.mode === 'object' && typeof editor.mode.set === 'function') {\n editor.mode.set(mode);\n }\n else { // support TinyMCE 4\n editor.setMode(mode);\n }\n }\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { ScriptLoader } from '../ScriptLoader2';\nimport { getTinymce } from '../TinyMCE';\nimport { isFunction, isTextareaOrInput, mergePlugins, uuid, configHandlers, isBeforeInputEventAvailable, isInDoc, setMode } from '../Utils';\nimport { EditorPropTypes } from './EditorPropTypes';\nvar Editor = /** @class */ (function (_super) {\n __extends(Editor, _super);\n function Editor(props) {\n var _a, _b, _c;\n var _this = _super.call(this, props) || this;\n _this.rollbackTimer = undefined;\n _this.valueCursor = undefined;\n _this.rollbackChange = function () {\n var editor = _this.editor;\n var value = _this.props.value;\n if (editor && value && value !== _this.currentContent) {\n editor.undoManager.ignore(function () {\n editor.setContent(value);\n // only restore cursor on inline editors when they are focused\n // as otherwise it will cause a focus grab\n if (_this.valueCursor && (!_this.inline || editor.hasFocus())) {\n try {\n editor.selection.moveToBookmark(_this.valueCursor);\n }\n catch (e) { /* ignore */ }\n }\n });\n }\n _this.rollbackTimer = undefined;\n };\n _this.handleBeforeInput = function (_evt) {\n if (_this.props.value !== undefined && _this.props.value === _this.currentContent && _this.editor) {\n if (!_this.inline || _this.editor.hasFocus()) {\n try {\n // getBookmark throws exceptions when the editor has not been focused\n // possibly only in inline mode but I'm not taking chances\n _this.valueCursor = _this.editor.selection.getBookmark(3);\n }\n catch (e) { /* ignore */ }\n }\n }\n };\n _this.handleBeforeInputSpecial = function (evt) {\n if (evt.key === 'Enter' || evt.key === 'Backspace' || evt.key === 'Delete') {\n _this.handleBeforeInput(evt);\n }\n };\n _this.handleEditorChange = function (_evt) {\n var editor = _this.editor;\n if (editor && editor.initialized) {\n var newContent = editor.getContent();\n if (_this.props.value !== undefined && _this.props.value !== newContent && _this.props.rollback !== false) {\n // start a timer and revert to the value if not applied in time\n if (!_this.rollbackTimer) {\n _this.rollbackTimer = window.setTimeout(_this.rollbackChange, typeof _this.props.rollback === 'number' ? _this.props.rollback : 200);\n }\n }\n if (newContent !== _this.currentContent) {\n _this.currentContent = newContent;\n if (isFunction(_this.props.onEditorChange)) {\n _this.props.onEditorChange(newContent, editor);\n }\n }\n }\n };\n _this.handleEditorChangeSpecial = function (evt) {\n if (evt.key === 'Backspace' || evt.key === 'Delete') {\n _this.handleEditorChange(evt);\n }\n };\n _this.initialise = function (attempts) {\n var _a, _b, _c;\n if (attempts === void 0) { attempts = 0; }\n var target = _this.elementRef.current;\n if (!target) {\n return; // Editor has been unmounted\n }\n if (!isInDoc(target)) {\n // this is probably someone trying to help by rendering us offscreen\n // but we can't do that because the editor iframe must be in the document\n // in order to have state\n if (attempts === 0) {\n // we probably just need to wait for the current events to be processed\n setTimeout(function () { return _this.initialise(1); }, 1);\n }\n else if (attempts < 100) {\n // wait for ten seconds, polling every tenth of a second\n setTimeout(function () { return _this.initialise(attempts + 1); }, 100);\n }\n else {\n // give up, at this point it seems that more polling is unlikely to help\n throw new Error('tinymce can only be initialised when in a document');\n }\n return;\n }\n var tinymce = getTinymce(_this.view);\n if (!tinymce) {\n throw new Error('tinymce should have been loaded into global scope');\n }\n var finalInit = __assign(__assign({}, _this.props.init), { selector: undefined, target: target, readonly: _this.props.disabled, inline: _this.inline, plugins: mergePlugins((_a = _this.props.init) === null || _a === void 0 ? void 0 : _a.plugins, _this.props.plugins), toolbar: (_b = _this.props.toolbar) !== null && _b !== void 0 ? _b : (_c = _this.props.init) === null || _c === void 0 ? void 0 : _c.toolbar, setup: function (editor) {\n _this.editor = editor;\n _this.bindHandlers({});\n // When running in inline mode the editor gets the initial value\n // from the innerHTML of the element it is initialized on.\n // However we don't want to take on the responsibility of sanitizing\n // to remove XSS in the react integration so we have a chicken and egg\n // problem... We avoid it by sneaking in a set content before the first\n // \"official\" setContent and using TinyMCE to do the sanitization.\n if (_this.inline && !isTextareaOrInput(target)) {\n editor.once('PostRender', function (_evt) {\n editor.setContent(_this.getInitialValue(), { no_events: true });\n });\n }\n if (_this.props.init && isFunction(_this.props.init.setup)) {\n _this.props.init.setup(editor);\n }\n }, init_instance_callback: function (editor) {\n var _a, _b;\n // check for changes that happened since tinymce.init() was called\n var initialValue = _this.getInitialValue();\n _this.currentContent = (_a = _this.currentContent) !== null && _a !== void 0 ? _a : editor.getContent();\n if (_this.currentContent !== initialValue) {\n _this.currentContent = initialValue;\n // same as resetContent in TinyMCE 5\n editor.setContent(initialValue);\n editor.undoManager.clear();\n editor.undoManager.add();\n editor.setDirty(false);\n }\n var disabled = (_b = _this.props.disabled) !== null && _b !== void 0 ? _b : false;\n setMode(_this.editor, disabled ? 'readonly' : 'design');\n // ensure existing init_instance_callback is called\n if (_this.props.init && isFunction(_this.props.init.init_instance_callback)) {\n _this.props.init.init_instance_callback(editor);\n }\n } });\n if (!_this.inline) {\n target.style.visibility = '';\n }\n if (isTextareaOrInput(target)) {\n target.value = _this.getInitialValue();\n }\n tinymce.init(finalInit);\n };\n _this.id = _this.props.id || uuid('tiny-react');\n _this.elementRef = React.createRef();\n _this.inline = (_c = (_a = _this.props.inline) !== null && _a !== void 0 ? _a : (_b = _this.props.init) === null || _b === void 0 ? void 0 : _b.inline) !== null && _c !== void 0 ? _c : false;\n _this.boundHandlers = {};\n return _this;\n }\n Object.defineProperty(Editor.prototype, \"view\", {\n get: function () {\n var _a, _b;\n return (_b = (_a = this.elementRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument.defaultView) !== null && _b !== void 0 ? _b : window;\n },\n enumerable: false,\n configurable: true\n });\n Editor.prototype.componentDidUpdate = function (prevProps) {\n var _this = this;\n var _a, _b;\n if (this.rollbackTimer) {\n clearTimeout(this.rollbackTimer);\n this.rollbackTimer = undefined;\n }\n if (this.editor) {\n this.bindHandlers(prevProps);\n if (this.editor.initialized) {\n this.currentContent = (_a = this.currentContent) !== null && _a !== void 0 ? _a : this.editor.getContent();\n if (typeof this.props.initialValue === 'string' && this.props.initialValue !== prevProps.initialValue) {\n // same as resetContent in TinyMCE 5\n this.editor.setContent(this.props.initialValue);\n this.editor.undoManager.clear();\n this.editor.undoManager.add();\n this.editor.setDirty(false);\n }\n else if (typeof this.props.value === 'string' && this.props.value !== this.currentContent) {\n var localEditor_1 = this.editor;\n localEditor_1.undoManager.transact(function () {\n // inline editors grab focus when restoring selection\n // so we don't try to keep their selection unless they are currently focused\n var cursor;\n if (!_this.inline || localEditor_1.hasFocus()) {\n try {\n // getBookmark throws exceptions when the editor has not been focused\n // possibly only in inline mode but I'm not taking chances\n cursor = localEditor_1.selection.getBookmark(3);\n }\n catch (e) { /* ignore */ }\n }\n var valueCursor = _this.valueCursor;\n localEditor_1.setContent(_this.props.value);\n if (!_this.inline || localEditor_1.hasFocus()) {\n for (var _i = 0, _a = [cursor, valueCursor]; _i < _a.length; _i++) {\n var bookmark = _a[_i];\n if (bookmark) {\n try {\n localEditor_1.selection.moveToBookmark(bookmark);\n _this.valueCursor = bookmark;\n break;\n }\n catch (e) { /* ignore */ }\n }\n }\n }\n });\n }\n if (this.props.disabled !== prevProps.disabled) {\n var disabled = (_b = this.props.disabled) !== null && _b !== void 0 ? _b : false;\n setMode(this.editor, disabled ? 'readonly' : 'design');\n }\n }\n }\n };\n Editor.prototype.componentDidMount = function () {\n var _this = this;\n var _a, _b, _c, _d, _e;\n if (getTinymce(this.view) !== null) {\n this.initialise();\n }\n else if (Array.isArray(this.props.tinymceScriptSrc) && this.props.tinymceScriptSrc.length === 0) {\n (_b = (_a = this.props).onScriptsLoadError) === null || _b === void 0 ? void 0 : _b.call(_a, new Error('No `tinymce` global is present but the `tinymceScriptSrc` prop was an empty array.'));\n }\n else if ((_c = this.elementRef.current) === null || _c === void 0 ? void 0 : _c.ownerDocument) {\n var successHandler = function () {\n var _a, _b;\n (_b = (_a = _this.props).onScriptsLoad) === null || _b === void 0 ? void 0 : _b.call(_a);\n _this.initialise();\n };\n var errorHandler = function (err) {\n var _a, _b;\n (_b = (_a = _this.props).onScriptsLoadError) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n ScriptLoader.loadList(this.elementRef.current.ownerDocument, this.getScriptSources(), (_e = (_d = this.props.scriptLoading) === null || _d === void 0 ? void 0 : _d.delay) !== null && _e !== void 0 ? _e : 0, successHandler, errorHandler);\n }\n };\n Editor.prototype.componentWillUnmount = function () {\n var _this = this;\n var editor = this.editor;\n if (editor) {\n editor.off(this.changeEvents(), this.handleEditorChange);\n editor.off(this.beforeInputEvent(), this.handleBeforeInput);\n editor.off('keypress', this.handleEditorChangeSpecial);\n editor.off('keydown', this.handleBeforeInputSpecial);\n editor.off('NewBlock', this.handleEditorChange);\n Object.keys(this.boundHandlers).forEach(function (eventName) {\n editor.off(eventName, _this.boundHandlers[eventName]);\n });\n this.boundHandlers = {};\n editor.remove();\n this.editor = undefined;\n }\n };\n Editor.prototype.render = function () {\n return this.inline ? this.renderInline() : this.renderIframe();\n };\n Editor.prototype.changeEvents = function () {\n var _a, _b, _c;\n var isIE = (_c = (_b = (_a = getTinymce(this.view)) === null || _a === void 0 ? void 0 : _a.Env) === null || _b === void 0 ? void 0 : _b.browser) === null || _c === void 0 ? void 0 : _c.isIE();\n return (isIE\n ? 'change keyup compositionend setcontent CommentChange'\n : 'change input compositionend setcontent CommentChange');\n };\n Editor.prototype.beforeInputEvent = function () {\n return isBeforeInputEventAvailable() ? 'beforeinput SelectionChange' : 'SelectionChange';\n };\n Editor.prototype.renderInline = function () {\n var _a = this.props.tagName, tagName = _a === void 0 ? 'div' : _a;\n return React.createElement(tagName, {\n ref: this.elementRef,\n id: this.id\n });\n };\n Editor.prototype.renderIframe = function () {\n return React.createElement('textarea', {\n ref: this.elementRef,\n style: { visibility: 'hidden' },\n name: this.props.textareaName,\n id: this.id\n });\n };\n Editor.prototype.getScriptSources = function () {\n var _a, _b;\n var async = (_a = this.props.scriptLoading) === null || _a === void 0 ? void 0 : _a.async;\n var defer = (_b = this.props.scriptLoading) === null || _b === void 0 ? void 0 : _b.defer;\n if (this.props.tinymceScriptSrc !== undefined) {\n if (typeof this.props.tinymceScriptSrc === 'string') {\n return [{ src: this.props.tinymceScriptSrc, async: async, defer: defer }];\n }\n // multiple scripts can be specified which allows for hybrid mode\n return this.props.tinymceScriptSrc.map(function (item) {\n if (typeof item === 'string') {\n // async does not make sense for multiple items unless\n // they are not dependent (which will be unlikely)\n return { src: item, async: async, defer: defer };\n }\n else {\n return item;\n }\n });\n }\n // fallback to the cloud when the tinymceScriptSrc is not specified\n var channel = this.props.cloudChannel;\n var apiKey = this.props.apiKey ? this.props.apiKey : 'no-api-key';\n var cloudTinyJs = \"https://cdn.tiny.cloud/1/\".concat(apiKey, \"/tinymce/\").concat(channel, \"/tinymce.min.js\");\n return [{ src: cloudTinyJs, async: async, defer: defer }];\n };\n Editor.prototype.getInitialValue = function () {\n if (typeof this.props.initialValue === 'string') {\n return this.props.initialValue;\n }\n else if (typeof this.props.value === 'string') {\n return this.props.value;\n }\n else {\n return '';\n }\n };\n Editor.prototype.bindHandlers = function (prevProps) {\n var _this = this;\n if (this.editor !== undefined) {\n // typescript chokes trying to understand the type of the lookup function\n configHandlers(this.editor, prevProps, this.props, this.boundHandlers, function (key) { return _this.props[key]; });\n // check if we should monitor editor changes\n var isValueControlled = function (p) { return p.onEditorChange !== undefined || p.value !== undefined; };\n var wasControlled = isValueControlled(prevProps);\n var nowControlled = isValueControlled(this.props);\n if (!wasControlled && nowControlled) {\n this.editor.on(this.changeEvents(), this.handleEditorChange);\n this.editor.on(this.beforeInputEvent(), this.handleBeforeInput);\n this.editor.on('keydown', this.handleBeforeInputSpecial);\n this.editor.on('keyup', this.handleEditorChangeSpecial);\n this.editor.on('NewBlock', this.handleEditorChange);\n }\n else if (wasControlled && !nowControlled) {\n this.editor.off(this.changeEvents(), this.handleEditorChange);\n this.editor.off(this.beforeInputEvent(), this.handleBeforeInput);\n this.editor.off('keydown', this.handleBeforeInputSpecial);\n this.editor.off('keyup', this.handleEditorChangeSpecial);\n this.editor.off('NewBlock', this.handleEditorChange);\n }\n }\n };\n Editor.propTypes = EditorPropTypes;\n Editor.defaultProps = {\n cloudChannel: '6'\n };\n return Editor;\n}(React.Component));\nexport { Editor };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as PropTypes from 'prop-types';\nexport var eventPropTypes = {\n onActivate: PropTypes.func,\n onAddUndo: PropTypes.func,\n onBeforeAddUndo: PropTypes.func,\n onBeforeExecCommand: PropTypes.func,\n onBeforeGetContent: PropTypes.func,\n onBeforeRenderUI: PropTypes.func,\n onBeforeSetContent: PropTypes.func,\n onBeforePaste: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onClearUndos: PropTypes.func,\n onClick: PropTypes.func,\n onContextMenu: PropTypes.func,\n onCommentChange: PropTypes.func,\n onCopy: PropTypes.func,\n onCut: PropTypes.func,\n onDblclick: PropTypes.func,\n onDeactivate: PropTypes.func,\n onDirty: PropTypes.func,\n onDrag: PropTypes.func,\n onDragDrop: PropTypes.func,\n onDragEnd: PropTypes.func,\n onDragGesture: PropTypes.func,\n onDragOver: PropTypes.func,\n onDrop: PropTypes.func,\n onExecCommand: PropTypes.func,\n onFocus: PropTypes.func,\n onFocusIn: PropTypes.func,\n onFocusOut: PropTypes.func,\n onGetContent: PropTypes.func,\n onHide: PropTypes.func,\n onInit: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyPress: PropTypes.func,\n onKeyUp: PropTypes.func,\n onLoadContent: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseUp: PropTypes.func,\n onNodeChange: PropTypes.func,\n onObjectResizeStart: PropTypes.func,\n onObjectResized: PropTypes.func,\n onObjectSelected: PropTypes.func,\n onPaste: PropTypes.func,\n onPostProcess: PropTypes.func,\n onPostRender: PropTypes.func,\n onPreProcess: PropTypes.func,\n onProgressState: PropTypes.func,\n onRedo: PropTypes.func,\n onRemove: PropTypes.func,\n onReset: PropTypes.func,\n onSaveContent: PropTypes.func,\n onSelectionChange: PropTypes.func,\n onSetAttrib: PropTypes.func,\n onSetContent: PropTypes.func,\n onShow: PropTypes.func,\n onSubmit: PropTypes.func,\n onUndo: PropTypes.func,\n onVisualAid: PropTypes.func,\n onSkinLoadError: PropTypes.func,\n onThemeLoadError: PropTypes.func,\n onModelLoadError: PropTypes.func,\n onPluginLoadError: PropTypes.func,\n onIconsLoadError: PropTypes.func,\n onLanguageLoadError: PropTypes.func,\n onScriptsLoad: PropTypes.func,\n onScriptsLoadError: PropTypes.func,\n};\nexport var EditorPropTypes = __assign({ apiKey: PropTypes.string, id: PropTypes.string, inline: PropTypes.bool, init: PropTypes.object, initialValue: PropTypes.string, onEditorChange: PropTypes.func, value: PropTypes.string, tagName: PropTypes.string, cloudChannel: PropTypes.string, plugins: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), toolbar: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), disabled: PropTypes.bool, textareaName: PropTypes.string, tinymceScriptSrc: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.shape({\n src: PropTypes.string,\n async: PropTypes.bool,\n defer: PropTypes.bool\n }))\n ]), rollback: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf([false])]), scriptLoading: PropTypes.shape({\n async: PropTypes.bool,\n defer: PropTypes.bool,\n delay: PropTypes.number\n }) }, eventPropTypes);\n","import { Editor } from './components/Editor';\nexport { Editor };\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst close = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z\"\n })\n});\nexport default close;\n//# sourceMappingURL=close.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst cog = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n d: \"M10.289 4.836A1 1 0 0111.275 4h1.306a1 1 0 01.987.836l.244 1.466c.787.26 1.503.679 2.108 1.218l1.393-.522a1 1 0 011.216.437l.653 1.13a1 1 0 01-.23 1.273l-1.148.944a6.025 6.025 0 010 2.435l1.149.946a1 1 0 01.23 1.272l-.653 1.13a1 1 0 01-1.216.437l-1.394-.522c-.605.54-1.32.958-2.108 1.218l-.244 1.466a1 1 0 01-.987.836h-1.306a1 1 0 01-.986-.836l-.244-1.466a5.995 5.995 0 01-2.108-1.218l-1.394.522a1 1 0 01-1.217-.436l-.653-1.131a1 1 0 01.23-1.272l1.149-.946a6.026 6.026 0 010-2.435l-1.148-.944a1 1 0 01-.23-1.272l.653-1.131a1 1 0 011.217-.437l1.393.522a5.994 5.994 0 012.108-1.218l.244-1.466zM14.929 12a3 3 0 11-6 0 3 3 0 016 0z\",\n clipRule: \"evenodd\"\n })\n});\nexport default cog;\n//# sourceMappingURL=cog.js.map","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst commentAuthorAvatar = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n d: \"M7.25 16.437a6.5 6.5 0 1 1 9.5 0V16A2.75 2.75 0 0 0 14 13.25h-4A2.75 2.75 0 0 0 7.25 16v.437Zm1.5 1.193a6.47 6.47 0 0 0 3.25.87 6.47 6.47 0 0 0 3.25-.87V16c0-.69-.56-1.25-1.25-1.25h-4c-.69 0-1.25.56-1.25 1.25v1.63ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm10-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z\",\n clipRule: \"evenodd\"\n })\n});\nexport default commentAuthorAvatar;\n//# sourceMappingURL=comment-author-avatar.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst login = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M11 14.5l1.1 1.1 3-3 .5-.5-.6-.6-3-3-1 1 1.7 1.7H5v1.5h7.7L11 14.5zM16.8 5h-7c-1.1 0-2 .9-2 2v1.5h1.5V7c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v10c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5v-1.5H7.8V17c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2z\"\n })\n});\nexport default login;\n//# sourceMappingURL=login.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst moreVertical = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\"\n })\n});\nexport default moreVertical;\n//# sourceMappingURL=more-vertical.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst post = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"m7.3 9.7 1.4 1.4c.2-.2.3-.3.4-.5 0 0 0-.1.1-.1.3-.5.4-1.1.3-1.6L12 7 9 4 7.2 6.5c-.6-.1-1.1 0-1.6.3 0 0-.1 0-.1.1-.3.1-.4.2-.6.4l1.4 1.4L4 11v1h1l2.3-2.3zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z\"\n })\n});\nexport default post;\n//# sourceMappingURL=post.js.map","import { applyFilters } from '@wordpress/hooks';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nconst allowed = [\n\t'formello/input',\n\t'formello/select',\n\t'formello/textarea',\n\t'formello/multichoices',\n];\n\n/**\n * Find the input fields blocks IDS.\n */\nexport function getFieldsBlock() {\n\tconst fields = [];\n\tconst inputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/input' );\n\tconst textareas =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/textarea' );\n\tconst selects =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/select' );\n\tconst outputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/output' );\n\tconst multichoices = select( blockEditorStore ).getBlocksByName(\n\t\t'formello/multichoices'\n\t);\n\n\tconst fieldsId = inputs.concat( textareas, selects, outputs, multichoices );\n\n\tfieldsId.forEach( ( b ) => {\n\t\tconst block = select( blockEditorStore ).getBlock( b );\n\t\tif ( allowed.includes( block.name ) ) {\n\t\t\tfields.push( block );\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Validate form before saving\n */\nexport function validate() {\n\tconst fields = {\n\t\tnames: [],\n\t\tbuttons:\n\t\t\tselect( blockEditorStore ).getBlocksByName( 'formello/button' ),\n\t};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.names.push( b.attributes.name );\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Get fields type.\n */\nexport function getFieldsType() {\n\tconst fields = {};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\t// get block type by name\n\t\tlet type = b.name.split( '/' )[ 1 ];\n\t\tif ( 'input' === type ) {\n\t\t\ttype = b.attributes.type;\n\t\t}\n\n\t\tfields[ b.attributes.name ] = type;\n\t\tif ( b.attributes.enableRtf ) {\n\t\t\tfields[ b.attributes.name ] = 'richtext';\n\t\t}\n\t\tif ( b.attributes.multiple && 'select' === type ) {\n\t\t\tfields[ b.attributes.name ] = type + '-multiple';\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFields() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\ttitle: b.attributes.name,\n\t\t\ttag: '{{fields.' + b.attributes.name + '}}',\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFieldsName() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\tlabel: b.attributes.name,\n\t\t\tvalue: b.attributes.name,\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function getFieldsTags() {\n\tconst fields = serializeFields();\n\n\treturn [\n\t\t{\n\t\t\ttitle: 'All Data',\n\t\t\ttag: '{{fields.all_data}}',\n\t\t},\n\t\t...fields,\n\t];\n}\n\nexport function getConstraints() {\n\tconst constraints = {};\n\tconst fields = getFieldsBlock();\n\n\tif ( fields ) {\n\t\tfields.forEach( ( b ) => {\n\t\t\tconst constraint = getFieldConstraint( b );\n\t\t\tlet name = b.attributes.name;\n\n\t\t\tif ( b.attributes.multiple ) {\n\t\t\t\tname += '.*';\n\t\t\t}\n\t\t\tif ( constraint ) {\n\t\t\t\tconstraints[ name ] = constraint;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn constraints;\n}\n\nexport function getFieldConstraint( field ) {\n\tlet constraints = [];\n\n\tif ( field.attributes.type === 'url' ) {\n\t\tconstraints.push( 'url' );\n\t}\n\n\tif ( field.attributes.required ) {\n\t\tconstraints.push( 'required' );\n\t}\n\n\tif ( field.attributes.minlength ) {\n\t\tconstraints.push( 'minlength:' + field.attributes.minlength );\n\t}\n\n\tif ( field.attributes.maxlength ) {\n\t\tconstraints.push( 'maxlength:' + field.attributes.maxlength );\n\t}\n\n\tif ( field.attributes.min && 'date' !== field.attributes.type ) {\n\t\tconstraints.push( 'min:' + field.attributes.min );\n\t}\n\n\tif (\n\t\tfield.attributes.max &&\n\t\t'date' !== field.attributes.type &&\n\t\t'file' !== field.attributes.type\n\t) {\n\t\tconstraints.push( 'max:' + field.attributes.max );\n\t}\n\n\tif ( field.attributes.type === 'email' ) {\n\t\tconstraints.push( 'email' );\n\t}\n\n\tif (\n\t\tfield.attributes.type === 'number' ||\n\t\tfield.attributes.type === 'range'\n\t) {\n\t\tconstraints.push( 'numeric' );\n\t}\n\n\tif ( 'date' === field.attributes.type && ! field.attributes.advanced ) {\n\t\tconstraints.push( 'date' );\n\t}\n\n\tif ( field.attributes.pattern ) {\n\t\tconst regEx = new RegExp( field.attributes.pattern );\n\t\tconstraints.push( 'regex:' + regEx );\n\t}\n\n\tif ( field.attributes.enableMismatch && '' !== field.attributes.match ) {\n\t\tconstraints.push( 'same:' + field.attributes.match );\n\t}\n\n\tapplyFilters( 'formello.constraints', constraints, field );\n\n\tif ( constraints.length ) {\n\t\tconstraints = constraints.join( '|' );\n\t}\n\n\treturn constraints.length ? constraints : undefined;\n}\n\nexport function getMetaTags() {\n\tconst postType = select( 'core/editor' ).getCurrentPostType();\n\tconst postId = select( 'core/editor' ).getCurrentPostId();\n\n\tconst [ meta ] = useEntityProp( 'postType', postType, 'meta', postId );\n\tconst metaTags = [];\n\n\tfor ( const key in meta ) {\n\t\tif ( meta[ key ] !== Object( key ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst tag = {\n\t\t\ttitle: key,\n\t\t\ttag: `{{meta.${ key }}}`,\n\t\t};\n\t\tmetaTags.push( tag );\n\t}\n\n\treturn metaTags;\n}\n\nexport function getWordpressTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Post ID',\n\t\t\ttag: `{{wp.post_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Title',\n\t\t\ttag: `{{wp.post_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post URL',\n\t\t\ttag: `{{wp.post_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author',\n\t\t\ttag: `{{wp.post_author}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author Email',\n\t\t\ttag: `{{wp.post_author_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User ID',\n\t\t\ttag: `{{wp.user_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User First Name',\n\t\t\ttag: `{{wp.user_first_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Last Name',\n\t\t\ttag: `{{wp.user_last_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Display Name',\n\t\t\ttag: `{{wp.user_display_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Username',\n\t\t\ttag: `{{wp.user_username}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Email',\n\t\t\ttag: `{{wp.user_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User URL',\n\t\t\ttag: `{{wp.user_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site Title',\n\t\t\ttag: `{{wp.site_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site URL',\n\t\t\ttag: `{{wp.site_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Admin Email',\n\t\t\ttag: `{{wp.admin_email}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getFormTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Form ID',\n\t\t\ttag: `{{form.form_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Form Label',\n\t\t\ttag: `{{form.form_name}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getOtherTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Date',\n\t\t\ttag: `{{other.system_date}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Time',\n\t\t\ttag: `{{other.system_time}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Referrer URL',\n\t\t\ttag: `{{other.referrer}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User IP',\n\t\t\ttag: `{{other.user_ip}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getPatternTabs() {\n\tconst passwords = [\n\t\t{\n\t\t\ttitle: 'Password',\n\t\t\ttag: `^(?=.*[A-Za-z])(?=.*\\\\d)[A-Za-z\\\\d]{8,}$`,\n\t\t\tdescription: 'One uppercase, one number, at least 8 chars',\n\t\t},\n\t\t{\n\t\t\ttitle: 'Password with special characters',\n\t\t\ttag: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$`,\n\t\t\tdescription:\n\t\t\t\t'One uppercase, one number, one special chars, at least 8 chars',\n\t\t},\n\t];\n\n\tconst dates = [\n\t\t{\n\t\t\ttitle: 'dd/mm/yyyy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{4}$',\n\t\t},\n\t\t{\n\t\t\ttitle: 'dd/mm/yy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{2}$',\n\t\t},\n\t];\n\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'passwords',\n\t\t\ttitle: 'Passwords',\n\t\t\tdata: passwords,\n\t\t},\n\t\t{\n\t\t\tname: 'dates',\n\t\t\ttitle: 'Dates',\n\t\t\tdata: dates,\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport {\n\tBaseControl,\n\tDropdownMenu,\n\t__experimentalInputControl as InputControl,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { defaultTabs } from './use-tabs';\nimport TabContent from './tab-content';\n\nexport default function MergeTags( props ) {\n\tconst {\n\t\tlabel,\n\t\tvalue,\n\t\tplaceholder,\n\t\thelp,\n\t\tonChange,\n\t\ticon = moreVertical,\n\t\tclientId,\n\t\ttabs = defaultTabs( clientId ),\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) }\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t\n\t);\n}\n\nexport function MergeTagsMenu( props ) {\n\tconst { label, onChange, icon = moreVertical, clientId } = props;\n\n\tconst tabs = defaultTabs( clientId );\n\n\treturn (\n\t\t\n\t\t\t{ () => }\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { SearchControl, TabPanel, MenuItem } from '@wordpress/components';\nimport { useState, Fragment } from '@wordpress/element';\n\nexport default function TabContent( { tabs, onChange } ) {\n\tconst [ searchInput, setSearchInput ] = useState( '' );\n\n\tconst filterAddon = ( element ) => {\n\t\tif ( '' === searchInput ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn (\n\t\t\telement.title.toLowerCase().search( searchInput.toLowerCase() ) !==\n\t\t\t-1\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ ( tab ) =>\n\t\t\t\t\ttab.data\n\t\t\t\t\t\t.filter( ( element ) => {\n\t\t\t\t\t\t\treturn filterAddon( element );\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.map( ( data ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t onChange( data.tag ) }\n\t\t\t\t\t\t\t\t\tinfo={ data.description }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ data.title }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n}\n","import {\n\tgetFieldsTags,\n\tgetWordpressTags,\n\tgetOtherTags,\n\tgetMetaTags,\n} from './functions';\n\nexport function defaultTabs( clientId ) {\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'fields',\n\t\t\ttitle: 'Fields',\n\t\t\tdata: getFieldsTags( clientId ),\n\t\t},\n\t\t{\n\t\t\tname: 'wordpress',\n\t\t\ttitle: 'WordPress',\n\t\t\tdata: getWordpressTags(),\n\t\t},\n\t\t{\n\t\t\tname: 'other',\n\t\t\ttitle: 'Other',\n\t\t\tdata: getOtherTags(),\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","import { __ } from '@wordpress/i18n';\nimport {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tButton,\n\twithFilters,\n} from '@wordpress/components';\n\nexport const Promo = withFilters( 'formello.modal.promo' )( () => {\n\treturn (\n\t\t
    \n\t\t\t

    \n\t\t\t\t{ __(\n\t\t\t\t\t'This action is available only for pro users. You can try one month free.',\n\t\t\t\t\t'formello'\n\t\t\t\t) }\n\t\t\t

    \n\t\t\t\n\t\t\t\t{ __( 'Try it now free!', 'formello' ) }\n\t\t\t\n\t\t
    \n\t);\n} );\n\nexport const PromoSettings = withFilters( 'formello.settings.promo' )( () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

    { __( 'Go Pro', 'formello' ) }

    \n\t\t\t
    \n\t\t\t\n\t\t\t\t

    { __( 'Empower your forms with our PRO extensions.' ) }

    \n\t\t\t\t
      \n\t\t\t\t\t
    • { __( 'Conditional fields', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'File upload', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Frontend posting', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Login form', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Search autosuggest', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Calculator formula', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Web Hooks', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Mail marketing integration', 'formello' ) }
    • \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n} );\n","import { ReactComponent as MailPoet } from '../../../assets/integrations/mailpoet.svg';\nimport { ReactComponent as Mailchimp } from '../../../assets/integrations/mailchimp.svg';\nimport { ReactComponent as Moosend } from '../../../assets/integrations/moosend.svg';\nimport { ReactComponent as ConvertKit } from '../../../assets/integrations/convertkit.svg';\nimport { ReactComponent as GetResponse } from '../../../assets/integrations/getresponse.svg';\nimport { ReactComponent as Brevo } from '../../../assets/integrations/brevo.svg';\nimport { ReactComponent as MailerLite } from '../../../assets/integrations/mailerlite.svg';\nimport { ReactComponent as Email } from '../../../assets/integrations/email.svg';\nimport { ReactComponent as WebHook } from '../../../assets/integrations/webhook.svg';\nimport {\n\tpost as FrontendPosting,\n\tlogin as Login,\n\tcommentAuthorAvatar as Registration,\n} from '@wordpress/icons';\n\nexport const icons = {\n\tConvertKit,\n\tMailchimp,\n\tMailPoet,\n\tMoosend,\n\tMailerLite,\n\tGetResponse,\n\tBrevo,\n\tEmail,\n\tWebHook,\n\tFrontendPosting,\n\tLogin,\n\tRegistration,\n};\n\nexport const integrations = [\n\t{\n\t\tasync: true,\n\t\ttype: 'email',\n\t\tname: 'Email',\n\t\tto: '',\n\t\tfrom: '',\n\t\tcc: '',\n\t\tbcc: '',\n\t\treplyTo: '',\n\t\tsubject: '',\n\t\tmessage: '',\n\t\tadvanced: false,\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'ConvertKit',\n\t\tname: 'ConvertKit',\n\t\tapiUrl: 'https://www.convertkit.com/help/where-to-find-the-convertkit-api-key-groupid-and-documentation',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'GetResponse',\n\t\tname: 'GetResponse',\n\t\tapiUrl: 'https://www.getresponse.com/help/where-do-i-find-the-api-key.html',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Mailchimp',\n\t\tname: 'Mailchimp',\n\t\tapiUrl: 'https://mailchimp.com/help/about-api-keys/',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'MailerLite',\n\t\tname: 'MailerLite',\n\t\tapiUrl: 'https://www.mailerlite.com/help/where-to-find-the-mailerlite-api-key-groupid-and-documentation',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'MailPoet',\n\t\tname: 'MailPoet',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Moosend',\n\t\tname: 'Moosend',\n\t\tapiUrl: 'https://help.moosend.com/hc/en-us/articles/4403735862674-Find-the-API-key-of-your-account',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Brevo',\n\t\tname: 'Brevo',\n\t\tapiUrl: 'https://developers.brevo.com/docs/getting-started',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'WebHook',\n\t\tname: 'WebHook',\n\t\tapiUrl: '',\n\t\turl: '',\n\t\tmethod: 'POST',\n\t\tadditionalHeaders: false,\n\t\tfields: [],\n\t\theaders: [],\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'frontend-posting',\n\t\tname: 'FrontendPosting',\n\t\tpostarr: {\n\t\t\tpost_type: 'post',\n\t\t\tpost_title: '',\n\t\t\tpost_content: '',\n\t\t\tpost_excerpt: '',\n\t\t\ttax_input: [],\n\t\t\tmeta_input: [],\n\t\t},\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'login',\n\t\tname: 'Login',\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'registration',\n\t\tname: 'Registration',\n\t},\n];\n","import { addFilter } from '@wordpress/hooks';\n\nimport {\n\tToggleControl,\n\tBaseControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\nimport MergeTags, { MergeTagsMenu } from '../../components/merge-tags';\nimport { Editor } from '@tinymce/tinymce-react';\n\nexport default function Email( content, clientId, action, handleUpdate ) {\n\tconst id = `editor-${ clientId }`;\n\n\tconst { settings } = window.wpEditorL10n.tinymce;\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'from', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'to', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'advanced', val );\n\t\t\t\t} }\n\t\t\t\tchecked={ action.advanced }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\n\t\t\t{ action.advanced && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\thandleUpdate( 'cc', val );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\n\t\t\t\t\t {\n\t\t\t\t\t\t\thandleUpdate( 'bcc', val );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'replyTo', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'subject', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Message', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\thandleUpdate( 'message', action.message + val );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t handleUpdate( 'message', val ) }\n\t\t\t\t/>\n\t\t\t\n\t\t\n\t);\n}\n\naddFilter( 'formello.modal.email', 'formello/actions-email', Email );\n\nfunction withComponentAppended( FilteredComponent ) {\n\treturn ( props ) => {\n\t\tconst { settings } = props;\n\t\tif ( 'email' === settings.type ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n}\n\naddFilter(\n\t'formello.modal.test',\n\t'formello/actions-email-promo',\n\twithComponentAppended\n);\n","import { addFilter } from '@wordpress/hooks';\nimport './email';\n\nfunction withComponentAppended( FilteredComponent ) {\n\treturn ( props ) => {\n\t\tconst { settings } = props;\n\t\tif ( 'email' === settings.type ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n}\n\naddFilter(\n\t'formello.modal.test',\n\t'formello/actions-email-promo',\n\twithComponentAppended\n);\n","import { Fragment, useState, useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { useEntityProp } from '@wordpress/core-data';\nimport {\n\tModal,\n\tButton,\n\tIcon,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { applyFilters } from '@wordpress/hooks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { icons } from './constants';\nimport MergeTags from '../../components/merge-tags';\nimport { Promo } from '../../components/promo';\nimport './filters';\n\nexport function ActionsModal( props ) {\n\tconst { onRequestClose, settings, clientId } = props;\n\n\tconst [ action, setAction ] = useState( Object.assign( {}, settings ) );\n\n\tconst updateSettings = ( prop, val ) => {\n\t\tsetAction( { ...action, [ prop ]: val } );\n\t};\n\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t};\n\t}, [] );\n\n\tconst [ meta, setMeta ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tconst setActions = useCallback( ( actions ) => {\n\t\tsetMeta( {\n\t\t\t...meta,\n\t\t\t_formello_actions: actions,\n\t\t} );\n\t}, [] );\n\n\tconst save = ( item ) => {\n\t\tif ( ! item.id ) {\n\t\t\tconst newItem = Object.assign( item, {\n\t\t\t\tid: meta._formello_actions.length + 1,\n\t\t\t} );\n\t\t\tconst actions = [ ...meta._formello_actions, newItem ];\n\t\t\tsetActions( actions );\n\t\t} else {\n\t\t\tconst actions = meta._formello_actions.map( ( el ) =>\n\t\t\t\tel.id === item.id ? { ...el, ...item } : el\n\t\t\t);\n\t\t\tsetActions( actions );\n\t\t}\n\t\tonRequestClose( false );\n\t};\n\n\tconst remove = ( item ) => {\n\t\tconst actions = meta._formello_actions.filter( ( o ) => {\n\t\t\treturn o.id !== item.id;\n\t\t} );\n\t\tsetActions( actions );\n\t\tonRequestClose( false );\n\t};\n\n\treturn (\n\t\t\n\t\t\t\t\t\n\t\t\t\t\t{ settings.name }\n\t\t\t\t\n\t\t\t}\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\tsize=\"large\"\n\t\t>\n\t\t\t
    \n\t\t\t\t{ 'email' !== settings.type && (\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\t\n\t\t\t\t\t{ applyFilters(\n\t\t\t\t\t\t'formello.modal.' + settings.type,\n\t\t\t\t\t\t'',\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\taction,\n\t\t\t\t\t\tupdateSettings,\n\t\t\t\t\t\tMergeTags\n\t\t\t\t\t) }\n\n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsave( action );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t\t{ settings.id && (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\twindow.confirm(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of form action */\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t`Delete action %s?`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tsettings.name\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tremove( action );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Delete', 'formello' ) }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) }\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n","import { select } from '@wordpress/data';\nimport { addFilter } from '@wordpress/hooks';\nimport {\n\tgetConstraints,\n\tgetFieldsType,\n\tvalidate,\n} from '../components/merge-tags/functions';\n\nfunction validateAll() {\n\tconst validation = validate();\n\n\tif ( ! validation.buttons.length ) {\n\t\treturn Promise.reject( {\n\t\t\tmessage: __( 'Missing button', 'formello' ),\n\t\t} );\n\t}\n\n\tif ( validation.buttons.length > 1 ) {\n\t\treturn Promise.reject( {\n\t\t\tmessage: __( 'You have more than one button', 'formello' ),\n\t\t} );\n\t}\n\n\tif ( validation.names.some( ( item ) => item === undefined ) ) {\n\t\treturn Promise.reject( {\n\t\t\tmessage: __( 'One or more fields have no name', 'formello' ),\n\t\t} );\n\t}\n}\n\naddFilter( 'editor.preSavePost', 'editor', ( edits ) => {\n\tconst postType = select( 'core/editor' ).getCurrentPostType();\n\tconst meta = select( 'core/editor' ).getCurrentPostAttribute( 'meta' );\n\n\tif ( 'formello_form' === postType ) {\n\t\tconst fields = getFieldsType();\n\t\tconst constraints = getConstraints();\n\n\t\tlet newEdits;\n\n\t\t// There are already meta edits?\n\t\tif ( edits.meta ) {\n\t\t\tnewEdits = {\n\t\t\t\t...edits,\n\t\t\t\tmeta: {\n\t\t\t\t\t...edits.meta,\n\t\t\t\t\t_formello_settings: {\n\t\t\t\t\t\t...edits.meta._formello_settings,\n\t\t\t\t\t\tconstraints,\n\t\t\t\t\t\tfields,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\t} else {\n\t\t\t// Add our meta if they're not there\n\t\t\tconst newMeta = {\n\t\t\t\t...meta,\n\t\t\t\t_formello_settings: {\n\t\t\t\t\t...meta._formello_settings,\n\t\t\t\t\tconstraints,\n\t\t\t\t\tfields,\n\t\t\t\t},\n\t\t\t};\n\t\t\tnewEdits = {\n\t\t\t\t...edits,\n\t\t\t\tmeta: newMeta,\n\t\t\t};\n\t\t}\n\n\t\treturn Promise.resolve( newEdits );\n\t}\n\n\treturn Promise.resolve( edits );\n} );\n","import { __, sprintf } from '@wordpress/i18n';\nimport { Fragment, useState } from '@wordpress/element';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tDropdown,\n\tButton,\n\tMenuGroup,\n\tMenuItem,\n\tIcon,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { integrations, icons } from '../actions/constants';\nimport { close, cog } from '@wordpress/icons';\nimport { ActionsModal } from '../actions/modal';\n\nexport function ActionsSettings() {\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t\tisPreview: getSettings().__unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\n\tconst [ meta, setMeta ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tconst [ showModal, setShowModal ] = useState( false );\n\tconst [ confirm, setConfirm ] = useState( false );\n\n\tif ( ! meta._formello_actions ) {\n\t\treturn <>;\n\t}\n\n\tconst remove = ( item ) => {\n\t\tconst arr = meta._formello_actions.filter( ( o ) => {\n\t\t\treturn o.id !== item.id;\n\t\t} );\n\t\tsetMeta( { ...meta, _formello_actions: arr } );\n\t\tsetShowModal( false );\n\t};\n\n\treturn (\n\t\t\n\t\t\t (\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Add action', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\trenderContent={ ( { onToggle } ) => (\n\t\t\t\t\t\n\t\t\t\t\t\t{ integrations.map( ( a, i ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetShowModal( a );\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ a.name }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t\n\t\t\t\t{ meta._formello_actions.map( ( a, i ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{ a.name }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t setShowModal( a ) }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t setConfirm( a ) }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\n\t\t\t{ showModal && (\n\t\t\t\t {\n\t\t\t\t\t\tsetShowModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t {\n\t\t\t\t\tremove( confirm );\n\t\t\t\t\tsetConfirm( false );\n\t\t\t\t} }\n\t\t\t\tonCancel={ () => setConfirm( false ) }\n\t\t\t>\n\t\t\t\t{ sprintf(\n\t\t\t\t\t'Are you sure you want delete %s action?',\n\t\t\t\t\tconfirm.name,\n\t\t\t\t\t'formello'\n\t\t\t\t) }\n\t\t\t\n\t\t\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { ToggleControl } from '@wordpress/components';\n\nexport function AdvancedSettings() {\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t\tisPreview: getSettings().__unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\n\tconst [ meta, setMeta ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tif ( ! meta._formello_settings ) {\n\t\treturn <>;\n\t}\n\n\tconst { enableJsValidation, debug } = meta._formello_settings;\n\n\tconst setOptions = ( key, val ) => {\n\t\tsetMeta( {\n\t\t\t...meta,\n\t\t\t_formello_settings: {\n\t\t\t\t...meta._formello_settings,\n\t\t\t\t[ key ]: val,\n\t\t\t},\n\t\t} );\n\t};\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\tsetOptions( 'enableJsValidation', val );\n\t\t\t\t} }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tsetOptions( 'debug', val );\n\t\t\t\t} }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\t\t\n\t);\n}\n","import { __, sprintf } from '@wordpress/i18n';\n\nimport { RawHTML, Fragment } from '@wordpress/element';\nimport { useEntityProp } from '@wordpress/core-data';\n\nimport {\n\tSelectControl,\n\tToggleControl,\n\tNotice,\n\tTextareaControl,\n\tBaseControl,\n} from '@wordpress/components';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useSelect } from '@wordpress/data';\nimport { URLInput, store as blockEditorStore } from '@wordpress/block-editor';\n\nexport function Settings() {\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t};\n\t}, [] );\n\n\tconst [ formello ] = useEntityProp( 'root', 'site', 'formello' );\n\tconst [ meta, setMeta ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tif ( ! meta._formello_settings ) {\n\t\treturn <>;\n\t}\n\n\tconst {\n\t\tstoreSubmissions,\n\t\tcaptchaEnabled,\n\t\tcaptchaType,\n\t\thide,\n\t\tredirectUrl,\n\t\tsuccessMessage,\n\t} = meta._formello_settings;\n\n\tconst settingsUrl = addQueryArgs( 'admin.php', {\n\t\ttab: 'captcha',\n\t\tpage: 'formello-settings',\n\t} );\n\n\tconst setOptions = ( key, val ) => {\n\t\tsetMeta( {\n\t\t\t...meta,\n\t\t\t_formello_settings: {\n\t\t\t\t...meta._formello_settings,\n\t\t\t\t[ key ]: val,\n\t\t\t},\n\t\t} );\n\t};\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\tsetOptions( 'storeSubmissions', val );\n\t\t\t\t} }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tsetOptions( 'captchaEnabled', val );\n\t\t\t\t} }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\t\t\t{ captchaEnabled && (\n\t\t\t\t setOptions( 'captchaType', val ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ ( '' === formello?.[ captchaType ]?.site_key ||\n\t\t\t\t'' === formello?.[ captchaType ]?.secret_key ) &&\n\t\t\t\tcaptchaEnabled && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t/* translators: Url of settings page. */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Please be sure to add a %1$s API key on %2$s',\n\t\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tcaptchaType,\n\t\t\t\t\t\t\t\t`settings page`\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t {\n\t\t\t\t\tsetOptions( 'hide', val );\n\t\t\t\t} }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tsetOptions( 'redirectUrl', newURL )\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ 'formello-urlinput' }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t\n\t\t\t setOptions( 'successMessage', val ) }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\t\t\n\t);\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"editor\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"hooks\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"plugins\"];","module.exports = window[\"wp\"][\"primitives\"];","module.exports = window[\"wp\"][\"url\"];","// 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { PluginDocumentSettingPanel } from '@wordpress/editor';\nimport { registerPlugin } from '@wordpress/plugins';\nimport { Settings } from './settings/basic';\nimport { AdvancedSettings } from './settings/advanced';\nimport { ActionsSettings } from './settings/actions';\nimport { useSelect } from '@wordpress/data';\nimport './filter';\n\nconst PluginDocumentSettingPanelExample = () => {\n\tconst { postType } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t};\n\t} );\n\n\tif ( 'formello_form' !== postType ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\n// Register the plugin.\nregisterPlugin( 'plugin-sidebar-example', {\n\trender: PluginDocumentSettingPanelExample,\n} );\n"],"names":["applyFilters","useEntityProp","select","store","blockEditorStore","allowed","getFieldsBlock","fields","inputs","getBlocksByName","textareas","selects","outputs","multichoices","fieldsId","concat","forEach","b","block","getBlock","includes","name","push","validate","names","buttons","fieldsBlock","attributes","getFieldsType","type","split","enableRtf","multiple","serializeFields","title","tag","serializeFieldsName","label","value","getFieldsTags","getConstraints","constraints","constraint","getFieldConstraint","field","required","minlength","maxlength","min","max","advanced","pattern","regEx","RegExp","enableMismatch","match","length","join","undefined","getMetaTags","postType","getCurrentPostType","postId","getCurrentPostId","meta","metaTags","key","Object","getWordpressTags","tags","getFormTags","getOtherTags","getPatternTabs","passwords","description","dates","tabs","data","BaseControl","DropdownMenu","__experimentalInputControl","InputControl","moreVertical","defaultTabs","TabContent","jsx","_jsx","MergeTags","props","placeholder","help","onChange","icon","clientId","__nextHasNoMarginBottom","children","suffix","toggleProps","isSmall","size","MergeTagsMenu","SearchControl","TabPanel","MenuItem","useState","Fragment","jsxs","_jsxs","searchInput","setSearchInput","filterAddon","element","toLowerCase","search","tab","filter","map","onClick","info","__","Card","CardHeader","CardBody","Button","withFilters","Promo","variant","href","iconPosition","target","PromoSettings","text","ReactComponent","MailPoet","Mailchimp","Moosend","ConvertKit","GetResponse","Brevo","MailerLite","Email","WebHook","post","FrontendPosting","login","Login","commentAuthorAvatar","Registration","icons","integrations","async","to","from","cc","bcc","replyTo","subject","message","apiUrl","url","method","additionalHeaders","headers","postarr","post_type","post_title","post_content","post_excerpt","tax_input","meta_input","addFilter","ToggleControl","__experimentalHStack","HStack","Editor","_Fragment","content","action","handleUpdate","id","settings","window","wpEditorL10n","tinymce","val","checked","VisualLabel","init","menubar","plugins","toolbar","toolbar1","toolbar2","onEditorChange","withComponentAppended","FilteredComponent","useCallback","useSelect","Modal","Icon","sprintf","ActionsModal","onRequestClose","setAction","assign","updateSettings","prop","setMeta","setActions","actions","_formello_actions","save","item","newItem","el","remove","o","shouldCloseOnClickOutside","className","mergeTags","isDestructive","confirm","validateAll","validation","Promise","reject","some","edits","getCurrentPostAttribute","newEdits","_formello_settings","newMeta","resolve","Dropdown","MenuGroup","__experimentalConfirmDialog","ConfirmDialog","__experimentalVStack","VStack","close","cog","ActionsSettings","getSettings","isPreview","__unstableIsPreviewMode","showModal","setShowModal","setConfirm","arr","popoverProps","placement","renderToggle","isOpen","onToggle","renderContent","a","i","direction","justify","spacing","onConfirm","onCancel","AdvancedSettings","enableJsValidation","debug","setOptions","RawHTML","SelectControl","Notice","TextareaControl","addQueryArgs","URLInput","Settings","formello","storeSubmissions","captchaEnabled","captchaType","hide","redirectUrl","successMessage","settingsUrl","page","options","site_key","secret_key","status","isDismissible","newURL","messages","form","success","PluginDocumentSettingPanel","registerPlugin","PluginDocumentSettingPanelExample","isOpened","render"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"form-settings.js","mappings":";;;;;;;;;;;;;;;;;AAAA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,uBAAuB,gDAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,gBAAgB,gDAAmB;AACtC;AACA;AACA;AACA;AACA,GAAG;AACH;AACsC;AACtC,iEAAe,oBAAoB,g4BAAg4B;;;;;;;;;;;;;;;;;;ACvBn6B;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,olCAAolC;;;;;;;;;;;;;;;;;;ACfvnC;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA;AACA;AACA,GAAG;AACH;AACsC;AACtC,iEAAe,oBAAoB,4QAA4Q;;;;;;;;;;;;;;;;;;AChB/S;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG;AACH;AAC4C;AAC5C,iEAAe,oBAAoB,osBAAosB;;;;;;;;;;;;;;;;;;ACjBvuB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AAC0C;AAC1C,iEAAe,oBAAoB,oqGAAoqG;;;;;;;;;;;;;;;;;;AChBvsG;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,mCAAmC,gDAAmB;AACzD;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG;AACH;AAC2C;AAC3C,iEAAe,oBAAoB,g3GAAg3G;;;;;;;;;;;;;;;;;;AC3Bn5G;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,mCAAmC,gDAAmB;AACzD;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA;AACA,GAAG,eAAe,gDAAmB;AACrC;AACA,GAAG;AACH;AACyC;AACzC,iEAAe,oBAAoB,wnDAAwnD;;;;;;;;;;;;;;;;;;AClB3pD;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG,2CAA2C,gDAAmB,mCAAmC,UAAU,kBAAkB,aAAa,oCAAoC,gDAAmB;AACpM;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA;AACA,GAAG,uCAAuC,gDAAmB;AAC7D;AACA;AACA,GAAG,uCAAuC,gDAAmB;AAC7D;AACA;AACA,GAAG,iBAAiB,gDAAmB;AACvC;AACA;AACA;AACA;AACA,GAAG,sCAAsC,gDAAmB;AAC5D;AACA;AACA,GAAG,uCAAuC,gDAAmB;AAC7D;AACA;AACA,GAAG;AACH;AACwC;AACxC,iEAAe,oBAAoB,gsLAAgsL;;;;;;;;;;;;;;;;;;AC9DnuL;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG;AACH;AACwC;AACxC,iEAAe,oBAAoB,wuEAAwuE;;;;;;;;;;;;;;;;ACb3wE,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4CAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iCAAiC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;;;;;;;;;;;;;;AC9IP;AACA;AACA;AACA;AACsB;;;;;;;;;;;;;;;;;;;;;;;;;ACJwC;AACvD,gCAAgC;AACvC,oCAAoC,eAAe,uEAAc;AACjE,iDAAiD;AAC1C;AACP;AACA;AACA,4DAA4D,kCAAkC;AAC9F,0DAA0D,sCAAsC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA,oCAAoC,sBAAsB,QAAQ,yFAAyF;AAC3J;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,0DAA0D;AAC1D,gDAAgD;AAChD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACrEA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+B;AACiB;AACR;AACoG;AACxF;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,wBAAwB;AACxB;AACA,iBAAiB,+CAAO;AACxB;AACA;AACA;AACA;AACA;AACA,6CAA6C,6BAA6B;AAC1E;AACA;AACA;AACA,6CAA6C,wCAAwC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAU;AACpC;AACA;AACA;AACA,gDAAgD,uBAAuB,oGAAoG,oDAAY;AACvL;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yDAAiB;AAC1D;AACA,yEAAyE,iBAAiB;AAC1F,yBAAyB;AACzB;AACA,4CAA4C,kDAAU;AACtD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+CAAO;AAC3B;AACA,4CAA4C,kDAAU;AACtD;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,gBAAgB,yDAAiB;AACjC;AACA;AACA;AACA;AACA,qCAAqC,4CAAI;AACzC,2BAA2B,4CAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,oBAAoB,+CAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,mEAA2B;AAC1C;AACA;AACA;AACA,eAAe,gDAAmB;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,gDAAmB;AAClC;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8DAA8D;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,kBAAkB,8CAA8C;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAc,0EAA0E,0BAA0B;AAC9H;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAe;AACtC;AACA;AACA;AACA;AACA,CAAC,CAAC,4CAAe;AACC;;;;;;;;;;;;;;;;;;;ACvXlB,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACjC;AACP,gBAAgB,4CAAc;AAC9B,eAAe,4CAAc;AAC7B,qBAAqB,4CAAc;AACnC,yBAAyB,4CAAc;AACvC,wBAAwB,4CAAc;AACtC,sBAAsB,4CAAc;AACpC,wBAAwB,4CAAc;AACtC,mBAAmB,4CAAc;AACjC,YAAY,4CAAc;AAC1B,cAAc,4CAAc;AAC5B,kBAAkB,4CAAc;AAChC,aAAa,4CAAc;AAC3B,mBAAmB,4CAAc;AACjC,q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;ACrJA;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,IAAI,IAAqC;AACzC,6BAA6B,mBAAO,CAAC,yFAA4B;AACjE;AACA,YAAY,mBAAO,CAAC,uDAAW;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAY;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;;;;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,cAAc,mBAAO,CAAC,0EAAU;AAChC,aAAa,mBAAO,CAAC,4DAAe;;AAEpC,2BAA2B,mBAAO,CAAC,yFAA4B;AAC/D,UAAU,mBAAO,CAAC,uDAAW;AAC7B,qBAAqB,mBAAO,CAAC,qEAAkB;;AAE/C;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,8BAA8B;AAC9B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS,KAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,2BAA2B;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC,4FAA4F,CAAM;AAC7I;AACA;;AAEA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,gCAAgC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iHAAiH;AACjH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACjmBA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,IAAqC;AACzC,gBAAgB,mBAAO,CAAC,0EAAU;;AAElC;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,uFAA2B;AACtD,EAAE,KAAK,EAIN;;;;;;;;;;;;AClBD;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;;;;;;;;;;;ACXA;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;;;AAIb,IAAI,IAAqC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB,sBAAsB;AACtB,uBAAuB;AACvB,uBAAuB;AACvB,eAAe;AACf,kBAAkB;AAClB,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,gBAAgB;AAChB,mBAAmB;AACnB,wBAAwB;AACxB,yBAAyB;AACzB,yBAAyB;AACzB,iBAAiB;AACjB,oBAAoB;AACpB,kBAAkB;AAClB,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,kBAAkB;AAClB,oBAAoB;AACpB,kBAAkB;AAClB,0BAA0B;AAC1B,cAAc;AACd,GAAG;AACH;;;;;;;;;;;;ACpLa;;AAEb,IAAI,KAAqC,EAAE,EAE1C,CAAC;AACF,EAAE,wJAAyD;AAC3D;;;;;;;;;;;;ACNA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;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;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNqC;AACS;AACiB;AACX;AACR;AACW;AACF;AACT;AAC1B;AAAA;AAElB,MAAMuM,iCAAiC,GAAGA,CAAA,KAAM;EAC/C,MAAM;IAAErO;EAAS,CAAC,GAAGmI,0DAAS,CAAI1L,MAAM,IAAM;IAC7C,OAAO;MACNuD,QAAQ,EAAEvD,MAAM,CAAE,aAAc,CAAC,CAACwD,kBAAkB,CAAC;IACtD,CAAC;EACF,CAAE,CAAC;EAEH,IAAK,eAAe,KAAKD,QAAQ,EAAG;IACnC,OAAO,IAAI;EACZ;EAEA,oBACC0C,uDAAA,CAACF,wDAAQ;IAAAT,QAAA,gBACRzG,sDAAA,CAAC6S,yEAA0B;MAC1BvQ,IAAI,EAAC,yBAAyB;MAC9BY,KAAK,EAAG8E,mDAAE,CAAE,UAAW,CAAG;MAC1BkG,SAAS,EAAC,kBAAkB;MAAAzH,QAAA,eAE5BzG,sDAAA,CAAC0R,qDAAQ,IAAE;IAAC,CACe,CAAC,eAC7B1R,sDAAA,CAAC6S,yEAA0B;MAC1BvQ,IAAI,EAAC,wBAAwB;MAC7BY,KAAK,EAAG8E,mDAAE,CAAE,SAAU,CAAG;MACzBkG,SAAS,EAAC,kBAAkB;MAAAzH,QAAA,eAE5BzG,sDAAA,CAACyP,8DAAe,IAAE;IAAC,CACQ,CAAC,eAC7BzP,sDAAA,CAAC6S,yEAA0B;MAC1BvQ,IAAI,EAAC,yBAAyB;MAC9BY,KAAK,EAAG8E,mDAAE,CAAE,UAAW,CAAG;MAC1BkG,SAAS,EAAC,kBAAkB;MAC5B8E,QAAQ;MAAAvM,QAAA,eAERzG,sDAAA,CAAC8Q,gEAAgB,IAAE;IAAC,CACO,CAAC;EAAA,CACpB,CAAC;AAEb,CAAC;;AAED;AACAgC,kEAAc,CAAE,wBAAwB,EAAE;EACzCG,MAAM,EAAEF;AACT,CAAE,CAAC,C","sources":["webpack://formello/./assets/integrations/brevo.svg","webpack://formello/./assets/integrations/convertkit.svg","webpack://formello/./assets/integrations/email.svg","webpack://formello/./assets/integrations/getresponse.svg","webpack://formello/./assets/integrations/mailchimp.svg","webpack://formello/./assets/integrations/mailerlite.svg","webpack://formello/./assets/integrations/mailpoet.svg","webpack://formello/./assets/integrations/moosend.svg","webpack://formello/./assets/integrations/webhook.svg","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/ScriptLoader2.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/TinyMCE.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/Utils.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/components/Editor.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/components/EditorPropTypes.js","webpack://formello/./node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/index.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/close.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/cog.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/comment-author-avatar.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/login.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/more-vertical.js","webpack://formello/./node_modules/@wordpress/icons/build-module/library/post.js","webpack://formello/./src/components/inline-edit.js","webpack://formello/./src/components/merge-tags/functions.js","webpack://formello/./src/components/merge-tags/index.js","webpack://formello/./src/components/merge-tags/tab-content.js","webpack://formello/./src/components/merge-tags/use-tabs.js","webpack://formello/./src/components/promo.js","webpack://formello/./src/form-settings/actions/constants.js","webpack://formello/./src/form-settings/actions/email.js","webpack://formello/./src/form-settings/actions/filters.js","webpack://formello/./src/form-settings/actions/modal.js","webpack://formello/./src/form-settings/filter.js","webpack://formello/./src/form-settings/settings/actions.js","webpack://formello/./src/form-settings/settings/advanced.js","webpack://formello/./src/form-settings/settings/basic.js","webpack://formello/./node_modules/object-assign/index.js","webpack://formello/./node_modules/prop-types/checkPropTypes.js","webpack://formello/./node_modules/prop-types/factoryWithTypeCheckers.js","webpack://formello/./node_modules/prop-types/index.js","webpack://formello/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://formello/./node_modules/prop-types/lib/has.js","webpack://formello/./node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","webpack://formello/./node_modules/prop-types/node_modules/react-is/index.js","webpack://formello/external window \"React\"","webpack://formello/external window \"ReactJSXRuntime\"","webpack://formello/external window [\"wp\",\"blockEditor\"]","webpack://formello/external window [\"wp\",\"components\"]","webpack://formello/external window [\"wp\",\"coreData\"]","webpack://formello/external window [\"wp\",\"data\"]","webpack://formello/external window [\"wp\",\"editor\"]","webpack://formello/external window [\"wp\",\"element\"]","webpack://formello/external window [\"wp\",\"hooks\"]","webpack://formello/external window [\"wp\",\"i18n\"]","webpack://formello/external window [\"wp\",\"plugins\"]","webpack://formello/external window [\"wp\",\"primitives\"]","webpack://formello/external window [\"wp\",\"url\"]","webpack://formello/webpack/bootstrap","webpack://formello/webpack/runtime/compat get default export","webpack://formello/webpack/runtime/define property getters","webpack://formello/webpack/runtime/hasOwnProperty shorthand","webpack://formello/webpack/runtime/make namespace object","webpack://formello/./src/form-settings/index.js"],"sourcesContent":["function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgBrevo = function SvgBrevo(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 64 64\"\n }, props), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 32,\n cy: 32,\n r: 32,\n style: {\n fill: \"#0b996e\"\n }\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.83 28.07c2.05-2.05 3.01-4.41 3.01-7.29 0-5.95-4.29-9.91-10.74-9.91H20.24v42.28h12.79c9.72 0 17.01-6.08 17.01-14.14 0-4.41-2.24-8.38-6.2-10.94ZM25.98 16.36h9.47c3.2 0 5.31 1.85 5.31 4.67 0 3.2-2.75 5.63-8.38 7.48-3.84 1.22-5.56 2.24-6.2 3.45h-.19V16.35Zm6.52 31.28h-6.52v-6.52c0-2.88 2.43-5.69 5.82-6.78 3.01-1.02 5.5-2.05 7.61-3.13 2.81 1.67 4.54 4.54 4.54 7.55 0 5.12-4.86 8.89-11.45 8.89Z\",\n style: {\n fill: \"#fff\"\n }\n }));\n};\nexport { SvgBrevo as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGlkPSJhIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48dGl0bGU+QnJldm8gaWNvbiAtIFVuY2FubnkgQXV0b21hdG9yPC90aXRsZT48Y2lyY2xlIGN4PSIzMiIgY3k9IjMyIiByPSIzMiIgc3R5bGU9ImZpbGw6IzBiOTk2ZTsiLz48cGF0aCBkPSJtNDMuODMsMjguMDdjMi4wNS0yLjA1LDMuMDEtNC40MSwzLjAxLTcuMjksMC01Ljk1LTQuMjktOS45MS0xMC43NC05LjkxaC0xNS44NnY0Mi4yOGgxMi43OWM5LjcyLDAsMTcuMDEtNi4wOCwxNy4wMS0xNC4xNCwwLTQuNDEtMi4yNC04LjM4LTYuMi0xMC45NGgwWm0tMTcuODUtMTEuNzFoOS40N2MzLjIsMCw1LjMxLDEuODUsNS4zMSw0LjY3LDAsMy4yLTIuNzUsNS42My04LjM4LDcuNDgtMy44NCwxLjIyLTUuNTYsMi4yNC02LjIsMy40NWgtLjE5di0xNS42MVptNi41MiwzMS4yOGgtNi41MnYtNi41MmMwLTIuODgsMi40My01LjY5LDUuODItNi43OCwzLjAxLTEuMDIsNS41LTIuMDUsNy42MS0zLjEzLDIuODEsMS42Nyw0LjU0LDQuNTQsNC41NCw3LjU1LDAsNS4xMi00Ljg2LDguODktMTEuNDUsOC44OWgwWiIgc3R5bGU9ImZpbGw6I2ZmZjsiLz48L3N2Zz4=\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgConvertkit = function SvgConvertkit(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"-0.093 0 174.921 162\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fb6970\",\n d: \"M84.358 127.894c30.359 0 53.824-22.904 53.824-51.157 0-26.47-22.045-42.631-36.646-42.631-20.332 0-36.63 14.248-38.952 35.4-.43 3.917-3.538 7.202-7.482 7.174-6.556-.047-16.089-.103-22.123-.082-2.598.009-4.745-2.096-4.617-4.689.91-18.345 7.053-35.498 18.766-48.674C60.143 8.594 79.097 0 101.536 0c37.701 0 73.292 34.209 73.292 76.737 0 47.089-39.07 85.263-89.668 85.263-36.084 0-72.427-23.549-85.116-56.472a.707.707 0 0 1-.032-.382c.17-.974.505-1.864.835-2.74.48-1.274.95-2.52.882-3.955l-.22-4.586a5.588 5.588 0 0 1 3.243-5.329l1.834-.853a7.077 7.077 0 0 0 3.99-5.138c.615-3.363 3.571-5.808 7.022-5.808 5.39 0 10.076 3.579 11.836 8.667 8.473 24.49 21.943 42.49 54.924 42.49z\"\n })));\n};\nexport { SvgConvertkit as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9Ii0uMDkyNzY5MDggMCAxNzQuOTIwNzY5MDggMTYyIiB3aWR0aD0iMjRweCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtODQuMzU4IDEyNy44OTRjMzAuMzU5IDAgNTMuODI0LTIyLjkwNCA1My44MjQtNTEuMTU3IDAtMjYuNDctMjIuMDQ1LTQyLjYzMS0zNi42NDYtNDIuNjMxLTIwLjMzMiAwLTM2LjYzIDE0LjI0OC0zOC45NTIgMzUuNC0uNDMgMy45MTctMy41MzggNy4yMDItNy40ODIgNy4xNzQtNi41NTYtLjA0Ny0xNi4wODktLjEwMy0yMi4xMjMtLjA4Mi0yLjU5OC4wMDktNC43NDUtMi4wOTYtNC42MTctNC42ODkuOTEtMTguMzQ1IDcuMDUzLTM1LjQ5OCAxOC43NjYtNDguNjc0IDEzLjAxNS0xNC42NDEgMzEuOTY5LTIzLjIzNSA1NC40MDgtMjMuMjM1IDM3LjcwMSAwIDczLjI5MiAzNC4yMDkgNzMuMjkyIDc2LjczNyAwIDQ3LjA4OS0zOS4wNyA4NS4yNjMtODkuNjY4IDg1LjI2My0zNi4wODQgMC03Mi40MjctMjMuNTQ5LTg1LjExNi01Ni40NzJhLjcwNy43MDcgMCAwIDEgLS4wMzItLjM4MmMuMTctLjk3NC41MDUtMS44NjQuODM1LTIuNzQuNDgtMS4yNzQuOTUtMi41Mi44ODItMy45NTVsLS4yMi00LjU4NmE1LjU4OCA1LjU4OCAwIDAgMSAzLjI0My01LjMyOWwxLjgzNC0uODUzYTcuMDc3IDcuMDc3IDAgMCAwIDMuOTktNS4xMzhjLjYxNS0zLjM2MyAzLjU3MS01LjgwOCA3LjAyMi01LjgwOCA1LjM5IDAgMTAuMDc2IDMuNTc5IDExLjgzNiA4LjY2NyA4LjQ3MyAyNC40OSAyMS45NDMgNDIuNDkgNTQuOTI0IDQyLjQ5eiIgZmlsbD0iI2ZiNjk3MCIvPjwvc3ZnPg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgEmail = function SvgEmail(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n viewBox: \"0 0 114 114\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"none\",\n stroke: \"#000\",\n strokeWidth: 7,\n d: \"M7 20h98v72H7zl44 44q5 4 10 0l44-44M7 92l36-36m26 0 36 36\"\n })));\n};\nexport { SvgEmail as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMTQgMTE0IiB3aWR0aD0iMjQiPg0KPHBhdGggc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjciIGZpbGw9Im5vbmUiIGQ9Im03LDIwaDk4djcySDd6bDQ0LDQ0cTUsNCAxMCwwbDQ0LTQ0TTcsOTJsMzYtMzZtMjYsMCAzNiwzNiIvPg0KPC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgGetresponse = function SvgGetresponse(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 0 90 59\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00baff\",\n d: \"M87.6 52c0 2.1-1.7 3.7-3.7 3.7H3.7C1.7 55.8 0 54.1 0 52V3.7C0 1.7 1.7 0 3.7 0h80.1c2.1 0 3.7 1.7 3.7 3.7V52z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M86.8 1.4C76.4 17.5 60.3 32.3 43.7 31.9c-6.1-.1-13.1-1.9-19-6.7C20.3 21.6 15.9 16 14.2 8h-1.8c-2.7 0-4.3 2.4-4 4.6.1.5.2 1.1.3 1.7 1.3 7.8 5.9 16.6 13.6 22.3 6 4.4 13.4 7.3 21.5 7.3 14.6 0 30.2-9.3 43.8-33.2v-7c0-.8-.3-1.7-.8-2.3z\"\n })));\n};\nexport { SvgGetresponse as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDkwIDU5IiB2aWV3Qm94PSIwIDAgOTAgNTkiIGhlaWdodD0iMjRweCI+CjxwYXRoIGQ9Im04Ny42IDUyYzAgMi4xLTEuNyAzLjctMy43IDMuN2gtODAuMmMtMiAuMS0zLjctMS42LTMuNy0zLjd2LTQ4LjNjMC0yIDEuNy0zLjcgMy43LTMuN2g4MC4xYzIuMSAwIDMuNyAxLjcgMy43IDMuN3Y0OC4zeiIgZmlsbD0iIzAwYmFmZiIvPjxwYXRoIGQ9Im04Ni44IDEuNGMtMTAuNCAxNi4xLTI2LjUgMzAuOS00My4xIDMwLjUtNi4xLS4xLTEzLjEtMS45LTE5LTYuNy00LjQtMy42LTguOC05LjItMTAuNS0xNy4yLS43IDAtMS4yIDAtMS44IDAtMi43IDAtNC4zIDIuNC00IDQuNi4xLjUuMiAxLjEuMyAxLjcgMS4zIDcuOCA1LjkgMTYuNiAxMy42IDIyLjMgNiA0LjQgMTMuNCA3LjMgMjEuNSA3LjMgMTQuNiAwIDMwLjItOS4zIDQzLjgtMzMuMnYtN2MwLS44LS4zLTEuNy0uOC0yLjN6IiBmaWxsPSIjZmZmIi8+PC9zdmc+\";","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailchimp = function SvgMailchimp(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 200 200\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.4 2.4c-8.9 2.9-16.5 7.2-26.2 14.9-23.1 18.3-43 45.8-47.7 65.9-1.7 7.1-1.7 7.7-.1 12.6 1.3 3.8 2.9 6.2 6.1 8.7l4.2 3.5-.5 8.8c-.4 7.4-.1 9.6 1.6 13.4 4.1 9.3 15 17.8 22.8 17.8 3 0 3.6.5 6.6 6.2 2 4 6.5 9.5 11.8 14.9 7.3 7.3 10 9.4 18 13.2 11.3 5.4 19.5 7.5 32.1 8.3 35.8 2.3 67-18.4 74.4-49.3 2.4-9.8 1.6-14.9-2.7-18.8-4.7-4.2-6-8.5-4.1-13.5 3.7-9.4-2.2-17.4-16.2-21.5l-4-1.2-.6-10.4c-.6-10.9-3.1-19-7-22.5-1.8-1.6-1.7-1.8 2.6-7.3 7-9 9.8-16 9.3-23.7-.5-7.3-2.6-10.4-9.3-13.5-7.6-3.5-23.2-2.1-35.8 3.3l-4.7 2.1-5.5-5.2C98 3.9 91.2 0 87.5.1c-1.1 0-5.2 1-9.1 2.3zm18.1 9.7c2.5 2.3 4.5 4.7 4.5 5.3-.1.6-4 3.6-8.8 6.6-25.5 16.1-42.4 34.4-53.3 58-2.2 4.7-4.3 9.1-4.7 9.8-.4.8-2.5 2-4.6 2.7-2.1.8-5.5 2.9-7.5 4.9l-3.6 3.5-3.2-2.5c-4.3-3.3-5.7-8.5-4.2-15.5C17.6 54.1 62.9 8.4 87.3 8.1c4.2-.1 5.2.4 9.2 4zm16 23.9c-1.8 1.9-1.7 2 .1 2 2.6 0 13.7 2.9 14.6 3.8.4.4-5.9.7-14 .7-13.5 0-15.4.2-22.8 2.8-4.5 1.5-10.7 4.3-13.8 6.2-3.1 1.8-5.6 3-5.6 2.5 0-1.9 20.8-18.9 23.3-19 .4 0 .3.9-.3 1.9-1.9 3.6-1 4.2 3.3 2 5.1-2.7 11.4-4.7 14.6-4.8 2.3-.1 2.4 0 .6 1.9zm30.2 25c2.9 2.7 4 6.9 4.7 18.4.4 5.5 1.2 10.6 1.8 11.3s3.2 1.9 5.8 2.7c6.5 1.9 12.6 5.2 13.4 7.1 2.3 6-2.9 12.8-13.8 17.9-10.9 5.2-19.9 7-35.3 6.8l-13.2-.1-2.6 3c-3.2 3.9-3.4 10.4-.4 14.3 3.8 4.8 9.4 6.9 19.6 7.4 15.4.7 31.1-4.1 40.2-12.3 5-4.6 4.7-5.5-.7-2.1-15.8 9.9-40.4 13.5-51.4 7.4-2.4-1.3-4.4-3.1-4.6-4.1-.3-1.4.2-1.6 3-.9 5.6 1.2 24.6.9 26-.5 1-1-.8-1.3-8.7-1.3-8.6 0-13.7-.7-19.2-2.5-.7-.2-1-1.1-.7-2 .5-1.2 2.9-1.5 13.9-1.5 18.8 0 31.1-2.9 42.8-10.1 2.6-1.6 4.9-2.9 5.2-2.9s1 2.1 1.6 4.6c.9 3.4 1.8 4.8 3.7 5.5 2.3.9 2.4 1.3 2 6.8-1.5 21.1-26.4 39.4-51.8 37.8-16.1-.9-27.3-7.5-33.2-19.4-3-6.1-3.3-7.6-3.3-15.3.1-9.1 2-15 7-21.6 1.4-1.8 2.5-3.9 2.5-4.6s-2-3.8-4.5-6.8c-9-10.9-9.6-22.7-1.6-31.3 4.9-5.4 7.5-6.1 20.7-5.8l12 .2 6-4c6.6-4.5 10-5.1 13.1-2.1zm-95.6 41.3c11.7 7.8 13.1 30.3 2.4 37.3-3.5 2.3-11.2 2.1-16.1-.4-7.9-4.1-12.4-11.1-12.4-19.6 0-6.6 1.2-10.1 4.8-14 5.6-5.9 15.2-7.5 21.3-3.3z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M136 78c-1.1 2.1.1 9.5 1.9 11.3 1.7 1.7 4.2 1.7 4.8.1.9-2.3-.7-10.2-2.3-11.9-2-2-3.1-1.9-4.4.5zm-34.7 13.4c-3.3 2.8-2.7 4.1 1.1 2.6 3.6-1.3 9.9-1.3 13.1.2 3.7 1.7 4.4 0 1.2-2.8-3.9-3.4-11.5-3.4-15.4 0zm38.4 4.2c-1.2 1.2-.8 4.1.7 5.3 1.7 1.4 3.9-.9 3.4-3.6-.3-1.8-2.9-2.9-4.1-1.7zm-30.6 1.7c-3.4 1.7-4.2 4.2-1 3.1 1.3-.5 4.1-.9 6.2-.8 4.1 0 4.8-1 1.8-2.6-2.5-1.3-4-1.3-7 .3zm20.3 3.2c-.7 1.8 1.3 4.5 3.3 4.5 2.3 0 2.8-3.1.8-4.6-2.4-1.8-3.4-1.8-4.1.1zm-96.9 8.7c-3 2.7-4.7 7.9-3.3 9.9.5.8 1.1 1 1.4.4 2.2-5 3.2-6 6.1-6.3 4.5-.4 6.7 2.9 5.1 8-2 6.6 1.7 12.1 6.5 9.6 2-1 2.3-3 .5-2.7-3.5.4-4-.1-3.3-3.4.3-1.7.9-5.3 1.2-7.8.4-4.2.2-4.8-2.7-7.2-3.9-3.3-8-3.5-11.5-.5z\"\n })));\n};\nexport { SvgMailchimp as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICB3aWR0aD0iMjQiCiAgaGVpZ2h0PSIyNCIKICB2ZXJzaW9uPSIxIgogIHZpZXdCb3g9IjAgMCAyMDAgMjAwIgo+CiAgICA8cGF0aAogICAgICAgIGQ9Ik03ODQgMTk3NmMtODktMjktMTY1LTcyLTI2Mi0xNDktMjMxLTE4My00MzAtNDU4LTQ3Ny02NTktMTctNzEtMTctNzctMS0xMjYgMTMtMzggMjktNjIgNjEtODdsNDItMzUtNS04OGMtNC03NC0xLTk2IDE2LTEzNCA0MS05MyAxNTAtMTc4IDIyOC0xNzggMzAgMCAzNi01IDY2LTYyIDIwLTQwIDY1LTk1IDExOC0xNDkgNzMtNzMgMTAwLTk0IDE4MC0xMzIgMTEzLTU0IDE5NS03NSAzMjEtODMgMzU4LTIzIDY3MCAxODQgNzQ0IDQ5MyAyNCA5OCAxNiAxNDktMjcgMTg4LTQ3IDQyLTYwIDg1LTQxIDEzNSAzNyA5NC0yMiAxNzQtMTYyIDIxNWwtNDAgMTItNiAxMDRjLTYgMTA5LTMxIDE5MC03MCAyMjUtMTggMTYtMTcgMTggMjYgNzMgNzAgOTAgOTggMTYwIDkzIDIzNy01IDczLTI2IDEwNC05MyAxMzUtNzYgMzUtMjMyIDIxLTM1OC0zM2wtNDctMjEtNTUgNTJjLTU1IDUyLTEyMyA5MS0xNjAgOTAtMTEgMC01Mi0xMC05MS0yM3ptMTgxLTk3YzI1LTIzIDQ1LTQ3IDQ1LTUzLTEtNi00MC0zNi04OC02Ni0yNTUtMTYxLTQyNC0zNDQtNTMzLTU4MC0yMi00Ny00My05MS00Ny05OC00LTgtMjUtMjAtNDYtMjctMjEtOC01NS0yOS03NS00OWwtMzYtMzUtMzIgMjVjLTQzIDMzLTU3IDg1LTQyIDE1NSA2NSAzMDggNTE4IDc2NSA3NjIgNzY4IDQyIDEgNTItNCA5Mi00MHptMTYwLTIzOWMtMTgtMTktMTctMjAgMS0yMCAyNiAwIDEzNy0yOSAxNDYtMzggNC00LTU5LTctMTQwLTctMTM1IDAtMTU0LTItMjI4LTI4LTQ1LTE1LTEwNy00My0xMzgtNjItMzEtMTgtNTYtMzAtNTYtMjUgMCAxOSAyMDggMTg5IDIzMyAxOTAgNCAwIDMtOS0zLTE5LTE5LTM2LTEwLTQyIDMzLTIwIDUxIDI3IDExNCA0NyAxNDYgNDggMjMgMSAyNCAwIDYtMTl6bTMwMi0yNTBjMjktMjcgNDAtNjkgNDctMTg0IDQtNTUgMTItMTA2IDE4LTExM3MzMi0xOSA1OC0yN2M2NS0xOSAxMjYtNTIgMTM0LTcxIDIzLTYwLTI5LTEyOC0xMzgtMTc5LTEwOS01Mi0xOTktNzAtMzUzLTY4bC0xMzIgMS0yNi0zMGMtMzItMzktMzQtMTA0LTQtMTQzIDM4LTQ4IDk0LTY5IDE5Ni03NCAxNTQtNyAzMTEgNDEgNDAyIDEyMyA1MCA0NiA0NyA1NS03IDIxLTE1OC05OS00MDQtMTM1LTUxNC03NC0yNCAxMy00NCAzMS00NiA0MS0zIDE0IDIgMTYgMzAgOSA1Ni0xMiAyNDYtOSAyNjAgNSAxMCAxMC04IDEzLTg3IDEzLTg2IDAtMTM3IDctMTkyIDI1LTcgMi0xMCAxMS03IDIwIDUgMTIgMjkgMTUgMTM5IDE1IDE4OCAwIDMxMSAyOSA0MjggMTAxIDI2IDE2IDQ5IDI5IDUyIDI5czEwLTIxIDE2LTQ2YzktMzQgMTgtNDggMzctNTUgMjMtOSAyNC0xMyAyMC02OC0xNS0yMTEtMjY0LTM5NC01MTgtMzc4LTE2MSA5LTI3MyA3NS0zMzIgMTk0LTMwIDYxLTMzIDc2LTMzIDE1MyAxIDkxIDIwIDE1MCA3MCAyMTYgMTQgMTggMjUgMzkgMjUgNDZzLTIwIDM4LTQ1IDY4Yy05MCAxMDktOTYgMjI3LTE2IDMxMyA0OSA1NCA3NSA2MSAyMDcgNThsMTIwLTIgNjAgNDBjNjYgNDUgMTAwIDUxIDEzMSAyMXpNNDcxIDk3N2MxMTctNzggMTMxLTMwMyAyNC0zNzMtMzUtMjMtMTEyLTIxLTE2MSA0LTc5IDQxLTEyNCAxMTEtMTI0IDE5NiAwIDY2IDEyIDEwMSA0OCAxNDAgNTYgNTkgMTUyIDc1IDIxMyAzM3oiCiAgICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoLjEgMCAwIC0uMSAwIDIwMCkiCiAgICA+PC9wYXRoPgogICAgPHBhdGgKICAgICAgICBkPSJNMTM2MCAxMjIwYy0xMS0yMSAxLTk1IDE5LTExMyAxNy0xNyA0Mi0xNyA0OC0xIDkgMjMtNyAxMDItMjMgMTE5LTIwIDIwLTMxIDE5LTQ0LTV6TTEwMTMgMTA4NmMtMzMtMjgtMjctNDEgMTEtMjYgMzYgMTMgOTkgMTMgMTMxLTIgMzctMTcgNDQgMCAxMiAyOC0zOSAzNC0xMTUgMzQtMTU0IDB6TTEzOTcgMTA0NGMtMTItMTItOC00MSA3LTUzIDE3LTE0IDM5IDkgMzQgMzYtMyAxOC0yOSAyOS00MSAxN3pNMTA5MSAxMDI3Yy0zNC0xNy00Mi00Mi0xMC0zMSAxMyA1IDQxIDkgNjIgOCA0MSAwIDQ4IDEwIDE4IDI2LTI1IDEzLTQwIDEzLTcwLTN6TTEyOTQgOTk1Yy03LTE4IDEzLTQ1IDMzLTQ1IDIzIDAgMjggMzEgOCA0Ni0yNCAxOC0zNCAxOC00MS0xek0zMjUgOTA4Yy0zMC0yNy00Ny03OS0zMy05OSA1LTggMTEtMTAgMTQtNCAyMiA1MCAzMiA2MCA2MSA2MyA0NSA0IDY3LTI5IDUxLTgwLTIwLTY2IDE3LTEyMSA2NS05NiAyMCAxMCAyMyAzMCA1IDI3LTM1LTQtNDAgMS0zMyAzNCAzIDE3IDkgNTMgMTIgNzggNCA0MiAyIDQ4LTI3IDcyLTM5IDMzLTgwIDM1LTExNSA1eiIKICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCguMSAwIDAgLS4xIDAgMjAwKSIKICAgID48L3BhdGg+Cjwvc3ZnPg==\";","var _rect, _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailerlite = function SvgMailerlite(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n fill: \"none\",\n viewBox: \"0 0 256 256\"\n }, props), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 253.538,\n height: 253.538,\n x: 1.231,\n y: 1.231,\n fill: \"#09C269\",\n stroke: \"#09C269\",\n strokeWidth: 2.462,\n rx: 4.923\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M178.619 73H77.286C69.38 73 63 79.669 63 87.93v94.852l19.714-20.403h96c7.905 0 14.286-6.669 14.286-14.93v-59.52C192.905 79.67 186.524 73 178.619 73Zm-85.238 66.885c0 2.189-1.714 3.981-3.81 3.981-2.095 0-3.81-1.792-3.81-3.981v-42.3c0-2.19 1.715-3.982 3.81-3.982 2.096 0 3.81 1.791 3.81 3.981v42.301Zm17.714 0c0 2.189-1.714 3.981-3.809 3.981-2.096 0-3.81-1.792-3.81-3.981v-27.969c0-2.189 1.714-3.981 3.81-3.981 2.095 0 3.809 1.792 3.809 3.981v27.969Zm.476-40.708c0 2.388-1.809 4.279-4.095 4.279h-.381c-2.285 0-4.095-1.891-4.095-4.28v-.298c0-2.389 1.81-4.28 4.095-4.28h.381c2.286 0 4.095 1.891 4.095 4.28v.299Zm26.858 43.694c-1.715.895-3.619 1.293-5.619 1.293-6.572 0-10.096-3.284-10.096-9.555V115.4h-3.428a2.077 2.077 0 0 1-2.096-2.09v-.1c0-.696.381-1.393.953-1.891l8.476-8.659a2.912 2.912 0 0 1 1.714-.896c1.143 0 2.191.996 2.191 2.19V108.234h6.095c1.905 0 3.429 1.592 3.429 3.583s-1.524 3.583-3.429 3.583h-6.095v18.712c0 2.687 1.333 2.886 3.143 2.886a7.79 7.79 0 0 0 2.19-.298c.476-.199 1.048-.199 1.524-.299 1.714 0 3.143 1.493 3.238 3.384-.19 1.294-1.048 2.588-2.19 3.086Zm23.333-6.171c2.762.099 5.524-.598 8-1.891.476-.299 1.048-.399 1.524-.399 1.904 0 3.428 1.493 3.428 3.484v.1c-.095 1.393-.857 2.687-2.095 3.284-2.667 1.593-5.524 2.986-11.429 2.986-10.666 0-17.142-6.868-17.142-18.314 0-13.436 8.571-18.313 15.809-18.313 10.857 0 15.81 9.057 15.81 17.418.095 2.09-1.524 3.881-3.524 3.981h-20.286c1.048 4.976 4.476 7.664 9.905 7.664Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M160.047 114.703c-4.19-.099-7.714 3.185-8.095 7.565h16.286c-.476-4.38-4-7.664-8.191-7.565Z\"\n })));\n};\nexport { SvgMailerlite as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjU2IDI1NiIgd2lkdGg9IjI0cHgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQo8cmVjdCB4PSIxLjIzMDc3IiB5PSIxLjIzMDc3IiB3aWR0aD0iMjUzLjUzOCIgaGVpZ2h0PSIyNTMuNTM4IiByeD0iNC45MjMwOCIgZmlsbD0iIzA5QzI2OSIgc3Ryb2tlPSIjMDlDMjY5IiBzdHJva2Utd2lkdGg9IjIuNDYxNTQiLz4NCjxwYXRoIGQ9Ik0xNzguNjE5IDczSDc3LjI4NTdDNjkuMzgxIDczIDYzIDc5LjY2ODYgNjMgODcuOTI5NlYxODIuNzgyTDgyLjcxNDMgMTYyLjM3OUgxNzguNzE0QzE4Ni42MTkgMTYyLjM3OSAxOTMgMTU1LjcxIDE5MyAxNDcuNDQ5Vjg3LjkyOTZDMTkyLjkwNSA3OS42Njg2IDE4Ni41MjQgNzMgMTc4LjYxOSA3M1pNOTMuMzgwOSAxMzkuODg1QzkzLjM4MDkgMTQyLjA3NCA5MS42NjY3IDE0My44NjYgODkuNTcxNCAxNDMuODY2Qzg3LjQ3NjIgMTQzLjg2NiA4NS43NjE5IDE0Mi4wNzQgODUuNzYxOSAxMzkuODg1Vjk3LjU4NDFDODUuNzYxOSA5NS4zOTQ0IDg3LjQ3NjIgOTMuNjAyOSA4OS41NzE0IDkzLjYwMjlDOTEuNjY2NyA5My42MDI5IDkzLjM4MDkgOTUuMzk0NCA5My4zODA5IDk3LjU4NDFWMTM5Ljg4NVpNMTExLjA5NSAxMzkuODg1QzExMS4wOTUgMTQyLjA3NCAxMDkuMzgxIDE0My44NjYgMTA3LjI4NiAxNDMuODY2QzEwNS4xOSAxNDMuODY2IDEwMy40NzYgMTQyLjA3NCAxMDMuNDc2IDEzOS44ODVWMTExLjkxNkMxMDMuNDc2IDEwOS43MjcgMTA1LjE5IDEwNy45MzUgMTA3LjI4NiAxMDcuOTM1QzEwOS4zODEgMTA3LjkzNSAxMTEuMDk1IDEwOS43MjcgMTExLjA5NSAxMTEuOTE2VjEzOS44ODVaTTExMS41NzEgOTkuMTc2NkMxMTEuNTcxIDEwMS41NjUgMTA5Ljc2MiAxMDMuNDU2IDEwNy40NzYgMTAzLjQ1NkgxMDcuMDk1QzEwNC44MSAxMDMuNDU2IDEwMyAxMDEuNTY1IDEwMyA5OS4xNzY2Vjk4Ljg3OEMxMDMgOTYuNDg5MiAxMDQuODEgOTQuNTk4MiAxMDcuMDk1IDk0LjU5ODJIMTA3LjQ3NkMxMDkuNzYyIDk0LjU5ODIgMTExLjU3MSA5Ni40ODkyIDExMS41NzEgOTguODc4Vjk5LjE3NjZaTTEzOC40MjkgMTQyLjg3MUMxMzYuNzE0IDE0My43NjYgMTM0LjgxIDE0NC4xNjQgMTMyLjgxIDE0NC4xNjRDMTI2LjIzOCAxNDQuMTY0IDEyMi43MTQgMTQwLjg4IDEyMi43MTQgMTM0LjYwOVYxMTUuNEgxMTkuMjg2QzExOC4xNDMgMTE1LjQgMTE3LjE5IDExNC41MDQgMTE3LjE5IDExMy4zMVYxMTMuMjFDMTE3LjE5IDExMi41MTQgMTE3LjU3MSAxMTEuODE3IDExOC4xNDMgMTExLjMxOUwxMjYuNjE5IDEwMi42NkMxMjcuMDk1IDEwMi4xNjIgMTI3LjY2NyAxMDEuODY0IDEyOC4zMzMgMTAxLjc2NEMxMjkuNDc2IDEwMS43NjQgMTMwLjUyNCAxMDIuNzYgMTMwLjUyNCAxMDMuOTU0QzEzMC41MjQgMTAzLjk1NCAxMzAuNTI0IDEwMy45NTQgMTMwLjUyNCAxMDQuMDU0VjEwOC4yMzRIMTM2LjYxOUMxMzguNTI0IDEwOC4yMzQgMTQwLjA0OCAxMDkuODI2IDE0MC4wNDggMTExLjgxN0MxNDAuMDQ4IDExMy44MDggMTM4LjUyNCAxMTUuNCAxMzYuNjE5IDExNS40SDEzMC41MjRWMTM0LjExMkMxMzAuNTI0IDEzNi43OTkgMTMxLjg1NyAxMzYuOTk4IDEzMy42NjcgMTM2Ljk5OEMxMzQuNDI5IDEzNi45OTggMTM1LjE5IDEzNi44OTkgMTM1Ljg1NyAxMzYuN0MxMzYuMzMzIDEzNi41MDEgMTM2LjkwNSAxMzYuNTAxIDEzNy4zODEgMTM2LjQwMUMxMzkuMDk1IDEzNi40MDEgMTQwLjUyNCAxMzcuODk0IDE0MC42MTkgMTM5Ljc4NUMxNDAuNDI5IDE0MS4wNzkgMTM5LjU3MSAxNDIuMzczIDEzOC40MjkgMTQyLjg3MVpNMTYxLjc2MiAxMzYuN0MxNjQuNTI0IDEzNi43OTkgMTY3LjI4NiAxMzYuMTAyIDE2OS43NjIgMTM0LjgwOUMxNzAuMjM4IDEzNC41MSAxNzAuODEgMTM0LjQxIDE3MS4yODYgMTM0LjQxQzE3My4xOSAxMzQuNDEgMTc0LjcxNCAxMzUuOTAzIDE3NC43MTQgMTM3Ljg5NEMxNzQuNzE0IDEzNy44OTQgMTc0LjcxNCAxMzcuODk0IDE3NC43MTQgMTM3Ljk5NEMxNzQuNjE5IDEzOS4zODcgMTczLjg1NyAxNDAuNjgxIDE3Mi42MTkgMTQxLjI3OEMxNjkuOTUyIDE0Mi44NzEgMTY3LjA5NSAxNDQuMjY0IDE2MS4xOSAxNDQuMjY0QzE1MC41MjQgMTQ0LjI2NCAxNDQuMDQ4IDEzNy4zOTYgMTQ0LjA0OCAxMjUuOTVDMTQ0LjA0OCAxMTIuNTE0IDE1Mi42MTkgMTA3LjYzNyAxNTkuODU3IDEwNy42MzdDMTcwLjcxNCAxMDcuNjM3IDE3NS42NjcgMTE2LjY5NCAxNzUuNjY3IDEyNS4wNTVDMTc1Ljc2MiAxMjcuMTQ1IDE3NC4xNDMgMTI4LjkzNiAxNzIuMTQzIDEyOS4wMzZDMTcyLjA0OCAxMjkuMDM2IDE3MS45NTIgMTI5LjAzNiAxNzEuODU3IDEyOS4wMzZIMTUxLjg1N0MxNTIuOTA1IDEzNC4wMTIgMTU2LjMzMyAxMzYuNyAxNjEuNzYyIDEzNi43WiIgZmlsbD0id2hpdGUiLz4NCjxwYXRoIGQ9Ik0xNjAuMDQ3IDExNC43MDNDMTU1Ljg1NyAxMTQuNjA0IDE1Mi4zMzMgMTE3Ljg4OCAxNTEuOTUyIDEyMi4yNjhIMTY4LjIzOEMxNjcuNzYyIDExNy44ODggMTY0LjIzOCAxMTQuNjA0IDE2MC4wNDcgMTE0LjcwM1oiIGZpbGw9IndoaXRlIi8+DQo8L3N2Zz4=\";","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMailpoet = function SvgMailpoet(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n viewBox: \"0 0 152.02 156.4\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Layer 2\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#FF5301\",\n \"data-name\": \"Layer 1\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.71 89.1c3.5 0 5.9-.8 7.2-2.3a8 8 0 0 0 2-5.4V35.7l17 45.1a12.68 12.68 0 0 0 3.7 5.4c1.6 1.3 4 2 7.2 2a12.54 12.54 0 0 0 5.9-1.4 8.41 8.41 0 0 0 3.9-5l18.1-50V81a8.53 8.53 0 0 0 2.1 6.1c1.4 1.4 3.7 2.2 6.9 2.2 3.5 0 5.9-.8 7.2-2.3a8 8 0 0 0 2-5.4V8.7a7.48 7.48 0 0 0-3.3-6.6c-2.1-1.4-5-2.1-8.6-2.1a19.3 19.3 0 0 0-9.4 2 11.63 11.63 0 0 0-5.1 6.8l-19.6 58.3-20.5-58.7a12.4 12.4 0 0 0-4.5-6.2c-2.1-1.5-5-2.2-8.8-2.2a16.51 16.51 0 0 0-8.9 2.1c-2.3 1.5-3.5 3.9-3.5 7.2v71.5c0 2.8.7 4.8 2 6.2 1.5 1.4 3.7 2.1 7 2.1ZM149 116.6l-2.4-1.9a7.4 7.4 0 0 0-9.4.3 19.65 19.65 0 0 1-12.5 4.6h-21.4A37.08 37.08 0 0 0 77 130.5l-1.1 1.2-1.1-1.1a37.25 37.25 0 0 0-26.3-10.9H27a19.59 19.59 0 0 1-12.4-4.6 7.28 7.28 0 0 0-9.4-.3l-2.4 1.9a7.43 7.43 0 0 0-2.8 5.5 7.14 7.14 0 0 0 2.4 5.7 37.28 37.28 0 0 0 24.6 9.5h21.6a19.59 19.59 0 0 1 18.9 14.4v.2c.1.7 1.2 4.4 8.5 4.4s8.4-3.7 8.5-4.4v-.2a19.59 19.59 0 0 1 18.9-14.4H125a37.28 37.28 0 0 0 24.6-9.5 7.42 7.42 0 0 0 2.4-5.7 7.86 7.86 0 0 0-3-5.6Z\"\n })))));\n};\nexport { SvgMailpoet as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNTIuMDIgMTU2LjQiIHdpZHRoPSIyNHB4Ij48dGl0bGU+c3ltYm9sPC90aXRsZT48ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIj48ZyBpZD0iTGF5ZXJfMS0yIiBkYXRhLW5hbWU9IkxheWVyIDEiPjxwYXRoIGZpbGw9IiNGRjUzMDEiIGQ9Ik0zNy43MSw4OS4xYzMuNSwwLDUuOS0uOCw3LjItMi4zYTgsOCwwLDAsMCwyLTUuNFYzNS43bDE3LDQ1LjFhMTIuNjgsMTIuNjgsMCwwLDAsMy43LDUuNGMxLjYsMS4zLDQsMiw3LjIsMmExMi41NCwxMi41NCwwLDAsMCw1LjktMS40LDguNDEsOC40MSwwLDAsMCwzLjktNWwxOC4xLTUwVjgxYTguNTMsOC41MywwLDAsMCwyLjEsNi4xYzEuNCwxLjQsMy43LDIuMiw2LjksMi4yLDMuNSwwLDUuOS0uOCw3LjItMi4zYTgsOCwwLDAsMCwyLTUuNFY4LjdhNy40OCw3LjQ4LDAsMCwwLTMuMy02LjZjLTIuMS0xLjQtNS0yLjEtOC42LTIuMWExOS4zLDE5LjMsMCwwLDAtOS40LDIsMTEuNjMsMTEuNjMsMCwwLDAtNS4xLDYuOEw3NC45MSw2Ny4xLDU0LjQxLDguNGExMi40LDEyLjQsMCwwLDAtNC41LTYuMmMtMi4xLTEuNS01LTIuMi04LjgtMi4yYTE2LjUxLDE2LjUxLDAsMCwwLTguOSwyLjFjLTIuMywxLjUtMy41LDMuOS0zLjUsNy4yVjgwLjhjMCwyLjguNyw0LjgsMiw2LjJDMzIuMjEsODguNCwzNC40MSw4OS4xLDM3LjcxLDg5LjFaIi8+PHBhdGggZmlsbD0iI0ZGNTMwMSIgZD0iTTE0OSwxMTYuNmwtMi40LTEuOWE3LjQsNy40LDAsMCwwLTkuNC4zLDE5LjY1LDE5LjY1LDAsMCwxLTEyLjUsNC42aC0yMS40QTM3LjA4LDM3LjA4LDAsMCwwLDc3LDEzMC41bC0xLjEsMS4yLTEuMS0xLjFhMzcuMjUsMzcuMjUsMCwwLDAtMjYuMy0xMC45SDI3YTE5LjU5LDE5LjU5LDAsMCwxLTEyLjQtNC42LDcuMjgsNy4yOCwwLDAsMC05LjQtLjNsLTIuNCwxLjlBNy40Myw3LjQzLDAsMCwwLDAsMTIyLjJhNy4xNCw3LjE0LDAsMCwwLDIuNCw1LjdBMzcuMjgsMzcuMjgsMCwwLDAsMjcsMTM3LjRoMjEuNmExOS41OSwxOS41OSwwLDAsMSwxOC45LDE0LjR2LjJjLjEuNywxLjIsNC40LDguNSw0LjRzOC40LTMuNyw4LjUtNC40di0uMmExOS41OSwxOS41OSwwLDAsMSwxOC45LTE0LjRIMTI1YTM3LjI4LDM3LjI4LDAsMCwwLDI0LjYtOS41LDcuNDIsNy40MiwwLDAsMCwyLjQtNS43QTcuODYsNy44NiwwLDAsMCwxNDksMTE2LjZaIi8+PC9nPjwvZz48L3N2Zz4=\";","var _style, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgMoosend = function SvgMoosend(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlSpace: \"preserve\",\n id: \"moosend_svg__Layer_1\",\n width: 24,\n x: 0,\n y: 0,\n style: {\n enableBackground: \"new 0 0 215.6 200\"\n },\n viewBox: \"0 0 215.6 200\"\n }, props), _style || (_style = /*#__PURE__*/React.createElement(\"style\", null, \".moosend_svg__st0{fill:#fff}.moosend_svg__st1{fill:#394257}\")), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M161.8 103.5c0 9.4-7.6 17-17 17H72.3c-9.4 0-17-7.6-17-17V32.8c0-9.4 7.6-17 17-17h72.5c9.4 0 17 7.6 17 17v70.7z\",\n className: \"moosend_svg__st0\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M74 13.1s7.1-23.3 16 .3c-15.6-.3-16-.3-16-.3zM126.7 13.1s7.1-23.3 16 .3c-15.6-.3-16-.3-16-.3z\",\n className: \"moosend_svg__st1\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.8 141c.4 1.4-.3 3-1.8 3.4L89.8 160c-1.4.4-3-.3-3.4-1.8l-10.3-32.4c-.5-1.4.3-3 1.8-3.4l49.2-15.6c1.4-.5 3 .3 3.4 1.8l10.3 32.4z\",\n className: \"moosend_svg__st0\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.3 163.2c-2.3 0-4.2-1.4-4.9-3.6l-10.3-32.4c-.9-2.7.6-5.6 3.3-6.5l49.2-15.6c2.6-.8 5.6.7 6.5 3.3l10.3 32.4c.9 2.7-.6 5.6-3.3 6.5l-49.2 15.6c-.6.2-1.1.3-1.6.3zm38.9-53.5-49.3 15.7c-.1 0-.2.2-.2.4L89 158.1c.1.2.3.2.4.2l49.2-15.6c.1 0 .2-.2.2-.4l-10.3-32.4c-.1-.1-.2-.2-.3-.2z\",\n className: \"moosend_svg__st1\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.8 123.2c-1.2.6-1.8 2-1.4 3.3l10.3 32.4c.2.5.5 1 .9 1.3l13.4-26-23.2-11z\",\n className: \"moosend_svg__st0\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m89 162.5-3-.6c-.8-.6-1.3-1.5-1.7-2.4L74 127.1c-.8-2.4.4-5.1 2.7-6.2l1-.5 26.4 12.5L89 162.5zm-10.1-36.1 8.9 27.9 9.8-19.1-18.7-8.8z\",\n className: \"moosend_svg__st1\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141 143.3c.2-.6.3-1.2.1-1.8l-10.2-32.2c-.5-1.4-1.9-2-3.4-1.6l-.3.1-13 21.9 26.8 13.6z\",\n className: \"moosend_svg__st0\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"m140.9 146-30.2-15.3 14.8-24.9 1.2-.4c2.8-.9 5.6.6 6.4 3.2l10.2 32.2c.3 1.1.3 2.3-.1 3.4l-2.3 1.8zm-23.3-17.2 20.1 10.2-9.1-28.6-11 18.4z\",\n className: \"moosend_svg__st1\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M129.3 107.5c-.6-.3-1.3-.3-1.9-.1L78.2 123c-.8.2-1.3.8-1.6 1.5l33.9 17.1 18.8-34.1z\",\n className: \"moosend_svg__st0\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M111.4 144.8 74.1 126l.2-2.5c.6-1.3 1.7-2.3 3.1-2.8l49.2-15.6c1.2-.4 2.5-.3 3.7.2l2.4 1.1-21.3 38.4zm-29.6-20.3 27.6 13.9 15.3-27.5-42.9 13.6z\",\n className: \"moosend_svg__st1\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.1 77.5c-24.8 0-46 6.5-56.6 16.6 0 13.1 10.4 27 23.5 27h66.2c13.1 0 23.3-14.1 23.3-27.3-10.6-10.1-31.6-16.3-56.4-16.3zM153.9 15.5l40.3 23.3s-18 14.4-32.3 4.1c-.8-.6.4-16.9-.3-17.6l-7.7-9.8zM61.7 15.5 21.4 38.8s18 14.4 32.3 4.1c.8-.6-.4-16.9.3-17.6l7.7-9.8z\",\n className: \"moosend_svg__st1\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.1 82.4c-24.8 0-45.3 6.8-55.9 16.2 0 12.3 9.7 22.5 22.8 22.5h66.2c13.1 0 22.9-9.8 23-22.1-10.7-9.4-31.3-16.6-56.1-16.6z\",\n style: {\n fill: \"#e16053\"\n }\n }), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.5 58.4c-.7 2.8-2.7 4.7-4.4 4.3-1.7-.4-2.6-3-1.9-5.8.7-2.8 2.7-4.7 4.4-4.3 1.8.4 2.6 3.1 1.9 5.8zM119.8 56.8c.8 2.8 0 5.4-1.7 5.9s-3.7-1.3-4.5-4.1c-.8-2.8 0-5.4 1.7-5.9 1.6-.5 3.7 1.3 4.5 4.1zM90.3 102.8c2.3 4 2.2 8.4-.3 9.8-2.5 1.5-6.4-.6-8.7-4.6-2.3-4-2.2-8.4.3-9.8 2.5-1.5 6.4.6 8.7 4.6zM128.6 103c-2.3 4-2.2 8.4.3 9.8 2.5 1.5 6.4-.6 8.7-4.6 2.3-4 2.2-8.4-.3-9.8-2.5-1.4-6.3.6-8.7 4.6z\",\n className: \"moosend_svg__st1\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M164.4 35.2c0-13.2-10.7-23.9-23.9-23.9H75c-13.2 0-23.9 10.5-23.9 23.7v66.2c0 13.2 10.7 24.3 23.9 24.3h66.2c13.2 0 23.9-10.9 23.9-24.1l-.7-66.2zm-4.1 67.5c0 9.8-8 17.8-17.8 17.8H73.8c-9.8 0-17.8-8-17.8-17.8V34.1c0-9.8 8-17.8 17.8-17.8h68.6c9.8 0 17.8 8 17.8 17.8v68.6z\",\n className: \"moosend_svg__st1\"\n })));\n};\nexport { SvgMoosend as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNS4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyMTUuNiAyMDAiIHdpZHRoPSIyNHB4IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyMTUuNiAyMDA7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJLnN0MHtmaWxsOiNGRkZGRkY7fQ0KCS5zdDF7ZmlsbDojMzk0MjU3O30NCgkuc3Qye2ZpbGw6I0UxNjA1Mzt9DQoJLnN0M3tmaWxsOiM5Njk2OTY7fQ0KPC9zdHlsZT4NCjxnPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNjEuOCwxMDMuNWMwLDkuNC03LjYsMTctMTcsMTdINzIuM2MtOS40LDAtMTctNy42LTE3LTE3VjMyLjhjMC05LjQsNy42LTE3LDE3LTE3aDcyLjVjOS40LDAsMTcsNy42LDE3LDE3DQoJCQkJTDE2MS44LDEwMy41TDE2MS44LDEwMy41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik03NCwxMy4xYzAsMCw3LjEtMjMuMywxNiwwLjNDNzQuNCwxMy4xLDc0LDEzLjEsNzQsMTMuMXoiLz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTI2LjcsMTMuMWMwLDAsNy4xLTIzLjMsMTYsMC4zQzEyNy4xLDEzLjEsMTI2LjcsMTMuMSwxMjYuNywxMy4xeiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNDAuOCwxNDFjMC40LDEuNC0wLjMsMy0xLjgsMy40bC00OS4yLDE1LjZjLTEuNCwwLjQtMy0wLjMtMy40LTEuOGwtMTAuMy0zMi40Yy0wLjUtMS40LDAuMy0zLDEuOC0zLjQNCgkJCQkJbDQ5LjItMTUuNmMxLjQtMC41LDMsMC4zLDMuNCwxLjhMMTQwLjgsMTQxeiIvPg0KCQkJPC9nPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTg5LjMsMTYzLjJjLTIuMywwLTQuMi0xLjQtNC45LTMuNmwtMTAuMy0zMi40Yy0wLjktMi43LDAuNi01LjYsMy4zLTYuNWw0OS4yLTE1LjYNCgkJCQkJYzIuNi0wLjgsNS42LDAuNyw2LjUsMy4zbDEwLjMsMzIuNGMwLjksMi43LTAuNiw1LjYtMy4zLDYuNWwtNDkuMiwxNS42QzkwLjMsMTYzLjEsODkuOCwxNjMuMiw4OS4zLDE2My4yeiBNMTI4LjIsMTA5LjcNCgkJCQkJbC00OS4zLDE1LjdjLTAuMSwwLTAuMiwwLjItMC4yLDAuNEw4OSwxNTguMWMwLjEsMC4yLDAuMywwLjIsMC40LDAuMmw0OS4yLTE1LjZjMC4xLDAsMC4yLTAuMiwwLjItMC40bC0xMC4zLTMyLjQNCgkJCQkJQzEyOC40LDEwOS44LDEyOC4zLDEwOS43LDEyOC4yLDEwOS43eiIvPg0KCQkJPC9nPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTc3LjgsMTIzLjJjLTEuMiwwLjYtMS44LDItMS40LDMuM2wxMC4zLDMyLjRjMC4yLDAuNSwwLjUsMSwwLjksMS4zbDEzLjQtMjZMNzcuOCwxMjMuMnoiLz4NCgkJCTwvZz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik04OSwxNjIuNWwtMy0wLjZjLTAuOC0wLjYtMS4zLTEuNS0xLjctMi40bC0xMC4zLTMyLjRjLTAuOC0yLjQsMC40LTUuMSwyLjctNi4ybDEtMC41bDI2LjQsMTIuNUw4OSwxNjIuNXoNCgkJCQkJIE03OC45LDEyNi40bDguOSwyNy45bDkuOC0xOS4xTDc4LjksMTI2LjR6Ii8+DQoJCQk8L2c+DQoJCTwvZz4NCgkJPGc+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTQxLDE0My4zYzAuMi0wLjYsMC4zLTEuMiwwLjEtMS44bC0xMC4yLTMyLjJjLTAuNS0xLjQtMS45LTItMy40LTEuNmwtMC4zLDAuMWwtMTMsMjEuOUwxNDEsMTQzLjN6Ii8+DQoJCQk8L2c+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTQwLjksMTQ2bC0zMC4yLTE1LjNsMTQuOC0yNC45bDEuMi0wLjRjMi44LTAuOSw1LjYsMC42LDYuNCwzLjJsMTAuMiwzMi4yYzAuMywxLjEsMC4zLDIuMy0wLjEsMy40DQoJCQkJCUwxNDAuOSwxNDZ6IE0xMTcuNiwxMjguOGwyMC4xLDEwLjJsLTkuMS0yOC42TDExNy42LDEyOC44eiIvPg0KCQkJPC9nPg0KCQk8L2c+DQoJCTxnPg0KCQkJPGc+DQoJCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyOS4zLDEwNy41Yy0wLjYtMC4zLTEuMy0wLjMtMS45LTAuMWwtNDkuMiwxNS42Yy0wLjgsMC4yLTEuMywwLjgtMS42LDEuNWwzMy45LDE3LjFMMTI5LjMsMTA3LjV6Ii8+DQoJCQk8L2c+DQoJCQk8Zz4NCgkJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTExLjQsMTQ0LjhMNzQuMSwxMjZsMC4yLTIuNWMwLjYtMS4zLDEuNy0yLjMsMy4xLTIuOGw0OS4yLTE1LjZjMS4yLTAuNCwyLjUtMC4zLDMuNywwLjJsMi40LDEuMQ0KCQkJCQlMMTExLjQsMTQ0Ljh6IE04MS44LDEyNC41bDI3LjYsMTMuOWwxNS4zLTI3LjVMODEuOCwxMjQuNXoiLz4NCgkJCTwvZz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTA4LjEsNzcuNWMtMjQuOCwwLTQ2LDYuNS01Ni42LDE2LjZjMCwxMy4xLDEwLjQsMjcsMjMuNSwyN2g2Ni4yYzEzLjEsMCwyMy4zLTE0LjEsMjMuMy0yNy4zDQoJCQkJQzE1My45LDgzLjcsMTMyLjksNzcuNSwxMDguMSw3Ny41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNTMuOSwxNS41bDQwLjMsMjMuM2MwLDAtMTgsMTQuNC0zMi4zLDQuMWMtMC44LTAuNiwwLjQtMTYuOS0wLjMtMTcuNkwxNTMuOSwxNS41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik02MS43LDE1LjVMMjEuNCwzOC44YzAsMCwxOCwxNC40LDMyLjMsNC4xYzAuOC0wLjYtMC40LTE2LjksMC4zLTE3LjZMNjEuNywxNS41eiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMDguMSw4Mi40Yy0yNC44LDAtNDUuMyw2LjgtNTUuOSwxNi4yYzAsMTIuMyw5LjcsMjIuNSwyMi44LDIyLjVoNjYuMmMxMy4xLDAsMjIuOS05LjgsMjMtMjIuMQ0KCQkJCUMxNTMuNSw4OS42LDEzMi45LDgyLjQsMTA4LjEsODIuNHoiLz4NCgkJPC9nPg0KCTwvZz4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTAzLjUsNTguNGMtMC43LDIuOC0yLjcsNC43LTQuNCw0LjNjLTEuNy0wLjQtMi42LTMtMS45LTUuOGMwLjctMi44LDIuNy00LjcsNC40LTQuMw0KCQkJCUMxMDMuNCw1MywxMDQuMiw1NS43LDEwMy41LDU4LjR6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTExOS44LDU2LjhjMC44LDIuOCwwLDUuNC0xLjcsNS45Yy0xLjcsMC41LTMuNy0xLjMtNC41LTQuMWMtMC44LTIuOCwwLTUuNCwxLjctNS45DQoJCQkJQzExNi45LDUyLjIsMTE5LDU0LDExOS44LDU2Ljh6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTkwLjMsMTAyLjhjMi4zLDQsMi4yLDguNC0wLjMsOS44Yy0yLjUsMS41LTYuNC0wLjYtOC43LTQuNmMtMi4zLTQtMi4yLTguNCwwLjMtOS44DQoJCQkJQzg0LjEsOTYuNyw4OCw5OC44LDkwLjMsMTAyLjh6Ii8+DQoJCTwvZz4NCgk8L2c+DQoJPGc+DQoJCTxnPg0KCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTEyOC42LDEwM2MtMi4zLDQtMi4yLDguNCwwLjMsOS44YzIuNSwxLjUsNi40LTAuNiw4LjctNC42YzIuMy00LDIuMi04LjQtMC4zLTkuOA0KCQkJCUMxMzQuOCw5NywxMzEsOTksMTI4LjYsMTAzeiIvPg0KCQk8L2c+DQoJPC9nPg0KCTxnPg0KCQk8Zz4NCgkJCTxnPg0KCQkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xNjQuNCwzNS4yYzAtMTMuMi0xMC43LTIzLjktMjMuOS0yMy45SDc1Yy0xMy4yLDAtMjMuOSwxMC41LTIzLjksMjMuN3Y2Ni4yYzAsMTMuMiwxMC43LDI0LjMsMjMuOSwyNC4zDQoJCQkJCWg2Ni4yYzEzLjIsMCwyMy45LTEwLjksMjMuOS0yNC4xTDE2NC40LDM1LjJ6IE0xNjAuMywxMDIuN2MwLDkuOC04LDE3LjgtMTcuOCwxNy44SDczLjhjLTkuOCwwLTE3LjgtOC0xNy44LTE3LjhWMzQuMQ0KCQkJCQljMC05LjgsOC0xNy44LDE3LjgtMTcuOGg2OC42YzkuOCwwLDE3LjgsOCwxNy44LDE3LjhWMTAyLjd6Ii8+DQoJCQk8L2c+DQoJCTwvZz4NCgk8L2c+DQo8L2c+DQo8L3N2Zz4NCg==\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgWebhook = function SvgWebhook(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.46 19C9 21.07 6.15 21.59 4.09 20.15c-2.05-1.44-2.53-4.31-1.09-6.4a4.585 4.585 0 0 1 3.58-1.98l.05 1.43c-.91.07-1.79.54-2.36 1.36-1 1.44-.69 3.38.68 4.35 1.38.96 3.31.59 4.31-.84.31-.45.49-.94.56-1.44v-1.01l5.58-.04.07-.11c.53-.92 1.68-1.24 2.58-.72a1.9 1.9 0 0 1 .68 2.6c-.53.91-1.69 1.23-2.59.71-.41-.23-.7-.6-.83-1.02l-4.07.02a4.96 4.96 0 0 1-.78 1.94m7.28-7.14c2.53.31 4.33 2.58 4.02 5.07-.31 2.5-2.61 4.27-5.14 3.96a4.629 4.629 0 0 1-3.43-2.21l1.24-.72a3.22 3.22 0 0 0 2.32 1.45c1.75.21 3.3-.98 3.51-2.65.21-1.67-1.03-3.2-2.76-3.41-.54-.06-1.06.01-1.53.18l-.85.44-2.58-4.77h-.22a1.906 1.906 0 0 1-1.85-1.95c.03-1.04.93-1.85 1.98-1.81 1.05.06 1.88.91 1.85 1.95-.02.44-.19.84-.46 1.15l1.9 3.51c.62-.2 1.3-.27 2-.19M8.25 9.14c-1-2.35.06-5.04 2.37-6.02 2.32-.98 5 .13 6 2.48.59 1.37.47 2.87-.2 4.07l-1.24-.72c.42-.81.49-1.8.09-2.73-.68-1.6-2.49-2.37-4.04-1.72-1.56.66-2.26 2.5-1.58 4.1.28.66.75 1.17 1.32 1.51l.39.21-3.07 4.99c.03.05.07.11.1.19.49.91.15 2.06-.77 2.55-.91.49-2.06.13-2.56-.81-.49-.93-.15-2.08.77-2.57.39-.21.82-.26 1.23-.17l2.31-3.77c-.47-.43-.87-.97-1.12-1.59Z\"\n })));\n};\nexport { SvgWebhook as ReactComponent };\nexport default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0ibWRpLXdlYmhvb2siIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTAuNDYsMTlDOSwyMS4wNyA2LjE1LDIxLjU5IDQuMDksMjAuMTVDMi4wNCwxOC43MSAxLjU2LDE1Ljg0IDMsMTMuNzVDMy44NywxMi41IDUuMjEsMTEuODMgNi41OCwxMS43N0w2LjYzLDEzLjJDNS43MiwxMy4yNyA0Ljg0LDEzLjc0IDQuMjcsMTQuNTZDMy4yNywxNiAzLjU4LDE3Ljk0IDQuOTUsMTguOTFDNi4zMywxOS44NyA4LjI2LDE5LjUgOS4yNiwxOC4wN0M5LjU3LDE3LjYyIDkuNzUsMTcuMTMgOS44MiwxNi42M1YxNS42MkwxNS40LDE1LjU4TDE1LjQ3LDE1LjQ3QzE2LDE0LjU1IDE3LjE1LDE0LjIzIDE4LjA1LDE0Ljc1QzE4Ljk1LDE1LjI3IDE5LjI2LDE2LjQzIDE4LjczLDE3LjM1QzE4LjIsMTguMjYgMTcuMDQsMTguNTggMTYuMTQsMTguMDZDMTUuNzMsMTcuODMgMTUuNDQsMTcuNDYgMTUuMzEsMTcuMDRMMTEuMjQsMTcuMDZDMTEuMTMsMTcuNzMgMTAuODcsMTguMzggMTAuNDYsMTlNMTcuNzQsMTEuODZDMjAuMjcsMTIuMTcgMjIuMDcsMTQuNDQgMjEuNzYsMTYuOTNDMjEuNDUsMTkuNDMgMTkuMTUsMjEuMiAxNi42MiwyMC44OUMxNS4xMywyMC43MSAxMy45LDE5Ljg2IDEzLjE5LDE4LjY4TDE0LjQzLDE3Ljk2QzE0LjkyLDE4LjczIDE1Ljc1LDE5LjI4IDE2Ljc1LDE5LjQxQzE4LjUsMTkuNjIgMjAuMDUsMTguNDMgMjAuMjYsMTYuNzZDMjAuNDcsMTUuMDkgMTkuMjMsMTMuNTYgMTcuNSwxMy4zNUMxNi45NiwxMy4yOSAxNi40NCwxMy4zNiAxNS45NywxMy41M0wxNS4xMiwxMy45N0wxMi41NCw5LjJIMTIuMzJDMTEuMjYsOS4xNiAxMC40NCw4LjI5IDEwLjQ3LDcuMjVDMTAuNSw2LjIxIDExLjQsNS40IDEyLjQ1LDUuNDRDMTMuNSw1LjUgMTQuMzMsNi4zNSAxNC4zLDcuMzlDMTQuMjgsNy44MyAxNC4xMSw4LjIzIDEzLjg0LDguNTRMMTUuNzQsMTIuMDVDMTYuMzYsMTEuODUgMTcuMDQsMTEuNzggMTcuNzQsMTEuODZNOC4yNSw5LjE0QzcuMjUsNi43OSA4LjMxLDQuMSAxMC42MiwzLjEyQzEyLjk0LDIuMTQgMTUuNjIsMy4yNSAxNi42Miw1LjZDMTcuMjEsNi45NyAxNy4wOSw4LjQ3IDE2LjQyLDkuNjdMMTUuMTgsOC45NUMxNS42LDguMTQgMTUuNjcsNy4xNSAxNS4yNyw2LjIyQzE0LjU5LDQuNjIgMTIuNzgsMy44NSAxMS4yMyw0LjVDOS42Nyw1LjE2IDguOTcsNyA5LjY1LDguNkM5LjkzLDkuMjYgMTAuNCw5Ljc3IDEwLjk3LDEwLjExTDExLjM2LDEwLjMyTDguMjksMTUuMzFDOC4zMiwxNS4zNiA4LjM2LDE1LjQyIDguMzksMTUuNUM4Ljg4LDE2LjQxIDguNTQsMTcuNTYgNy42MiwxOC4wNUM2LjcxLDE4LjU0IDUuNTYsMTguMTggNS4wNiwxNy4yNEM0LjU3LDE2LjMxIDQuOTEsMTUuMTYgNS44MywxNC42N0M2LjIyLDE0LjQ2IDYuNjUsMTQuNDEgNy4wNiwxNC41TDkuMzcsMTAuNzNDOC45LDEwLjMgOC41LDkuNzYgOC4yNSw5LjE0WiIgLz48L3N2Zz4=\";","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { uuid } from './Utils';\nvar injectScriptTag = function (doc, item, handler) {\n var _a, _b;\n var scriptTag = doc.createElement('script');\n scriptTag.referrerPolicy = 'origin';\n scriptTag.type = 'application/javascript';\n scriptTag.id = item.id;\n scriptTag.src = item.src;\n scriptTag.async = (_a = item.async) !== null && _a !== void 0 ? _a : false;\n scriptTag.defer = (_b = item.defer) !== null && _b !== void 0 ? _b : false;\n var loadHandler = function () {\n scriptTag.removeEventListener('load', loadHandler);\n scriptTag.removeEventListener('error', errorHandler);\n handler(item.src);\n };\n var errorHandler = function (err) {\n scriptTag.removeEventListener('load', loadHandler);\n scriptTag.removeEventListener('error', errorHandler);\n handler(item.src, err);\n };\n scriptTag.addEventListener('load', loadHandler);\n scriptTag.addEventListener('error', errorHandler);\n if (doc.head) {\n doc.head.appendChild(scriptTag);\n }\n};\nvar createDocumentScriptLoader = function (doc) {\n var lookup = {};\n var scriptLoadOrErrorHandler = function (src, err) {\n var item = lookup[src];\n item.done = true;\n item.error = err;\n for (var _i = 0, _a = item.handlers; _i < _a.length; _i++) {\n var h = _a[_i];\n h(src, err);\n }\n item.handlers = [];\n };\n var loadScripts = function (items, success, failure) {\n // eslint-disable-next-line no-console\n var failureOrLog = function (err) { return failure !== undefined ? failure(err) : console.error(err); };\n if (items.length === 0) {\n failureOrLog(new Error('At least one script must be provided'));\n return;\n }\n var successCount = 0;\n var failed = false;\n var loaded = function (_src, err) {\n if (failed) {\n return;\n }\n if (err) {\n failed = true;\n failureOrLog(err);\n }\n else if (++successCount === items.length) {\n success();\n }\n };\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\n var item = items_1[_i];\n var existing = lookup[item.src];\n if (existing) {\n if (existing.done) {\n loaded(item.src, existing.error);\n }\n else {\n existing.handlers.push(loaded);\n }\n }\n else {\n // create a new entry\n var id = uuid('tiny-');\n lookup[item.src] = {\n id: id,\n src: item.src,\n done: false,\n error: null,\n handlers: [loaded],\n };\n injectScriptTag(doc, __assign({ id: id }, item), scriptLoadOrErrorHandler);\n }\n }\n };\n var deleteScripts = function () {\n var _a;\n for (var _i = 0, _b = Object.values(lookup); _i < _b.length; _i++) {\n var item = _b[_i];\n var scriptTag = doc.getElementById(item.id);\n if (scriptTag != null && scriptTag.tagName === 'SCRIPT') {\n (_a = scriptTag.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(scriptTag);\n }\n }\n lookup = {};\n };\n var getDocument = function () { return doc; };\n return {\n loadScripts: loadScripts,\n deleteScripts: deleteScripts,\n getDocument: getDocument\n };\n};\nvar createScriptLoader = function () {\n var cache = [];\n var getDocumentScriptLoader = function (doc) {\n var loader = cache.find(function (l) { return l.getDocument() === doc; });\n if (loader === undefined) {\n loader = createDocumentScriptLoader(doc);\n cache.push(loader);\n }\n return loader;\n };\n var loadList = function (doc, items, delay, success, failure) {\n var doLoad = function () { return getDocumentScriptLoader(doc).loadScripts(items, success, failure); };\n if (delay > 0) {\n setTimeout(doLoad, delay);\n }\n else {\n doLoad();\n }\n };\n var reinitialize = function () {\n for (var loader = cache.pop(); loader != null; loader = cache.pop()) {\n loader.deleteScripts();\n }\n };\n return {\n loadList: loadList,\n reinitialize: reinitialize\n };\n};\nexport var ScriptLoader = createScriptLoader();\n","var getTinymce = function (view) {\n var global = view;\n return global && global.tinymce ? global.tinymce : null;\n};\nexport { getTinymce };\n","import { eventPropTypes } from './components/EditorPropTypes';\nexport var isFunction = function (x) { return typeof x === 'function'; };\nvar isEventProp = function (name) { return name in eventPropTypes; };\nvar eventAttrToEventName = function (attrName) { return attrName.substr(2); };\nexport var configHandlers2 = function (handlerLookup, on, off, adapter, prevProps, props, boundHandlers) {\n var prevEventKeys = Object.keys(prevProps).filter(isEventProp);\n var currEventKeys = Object.keys(props).filter(isEventProp);\n var removedKeys = prevEventKeys.filter(function (key) { return props[key] === undefined; });\n var addedKeys = currEventKeys.filter(function (key) { return prevProps[key] === undefined; });\n removedKeys.forEach(function (key) {\n // remove event handler\n var eventName = eventAttrToEventName(key);\n var wrappedHandler = boundHandlers[eventName];\n off(eventName, wrappedHandler);\n delete boundHandlers[eventName];\n });\n addedKeys.forEach(function (key) {\n var wrappedHandler = adapter(handlerLookup, key);\n var eventName = eventAttrToEventName(key);\n boundHandlers[eventName] = wrappedHandler;\n on(eventName, wrappedHandler);\n });\n};\nexport var configHandlers = function (editor, prevProps, props, boundHandlers, lookup) {\n return configHandlers2(lookup, editor.on.bind(editor), editor.off.bind(editor), \n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n function (handlerLookup, key) { return function (e) { var _a; return (_a = handlerLookup(key)) === null || _a === void 0 ? void 0 : _a(e, editor); }; }, prevProps, props, boundHandlers);\n};\nvar unique = 0;\nexport var uuid = function (prefix) {\n var time = Date.now();\n var random = Math.floor(Math.random() * 1000000000);\n unique++;\n return prefix + '_' + random + unique + String(time);\n};\nexport var isTextareaOrInput = function (element) {\n return element !== null && (element.tagName.toLowerCase() === 'textarea' || element.tagName.toLowerCase() === 'input');\n};\nvar normalizePluginArray = function (plugins) {\n if (typeof plugins === 'undefined' || plugins === '') {\n return [];\n }\n return Array.isArray(plugins) ? plugins : plugins.split(' ');\n};\n// eslint-disable-next-line max-len\nexport var mergePlugins = function (initPlugins, inputPlugins) { return normalizePluginArray(initPlugins).concat(normalizePluginArray(inputPlugins)); };\nexport var isBeforeInputEventAvailable = function () { return window.InputEvent && typeof InputEvent.prototype.getTargetRanges === 'function'; };\nexport var isInDoc = function (elem) {\n if (!('isConnected' in Node.prototype)) {\n // Fallback for IE and old Edge\n var current = elem;\n var parent_1 = elem.parentNode;\n while (parent_1 != null) {\n current = parent_1;\n parent_1 = current.parentNode;\n }\n return current === elem.ownerDocument;\n }\n return elem.isConnected;\n};\nexport var setMode = function (editor, mode) {\n if (editor !== undefined) {\n if (editor.mode != null && typeof editor.mode === 'object' && typeof editor.mode.set === 'function') {\n editor.mode.set(mode);\n }\n else { // support TinyMCE 4\n editor.setMode(mode);\n }\n }\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { ScriptLoader } from '../ScriptLoader2';\nimport { getTinymce } from '../TinyMCE';\nimport { isFunction, isTextareaOrInput, mergePlugins, uuid, configHandlers, isBeforeInputEventAvailable, isInDoc, setMode } from '../Utils';\nimport { EditorPropTypes } from './EditorPropTypes';\nvar Editor = /** @class */ (function (_super) {\n __extends(Editor, _super);\n function Editor(props) {\n var _a, _b, _c;\n var _this = _super.call(this, props) || this;\n _this.rollbackTimer = undefined;\n _this.valueCursor = undefined;\n _this.rollbackChange = function () {\n var editor = _this.editor;\n var value = _this.props.value;\n if (editor && value && value !== _this.currentContent) {\n editor.undoManager.ignore(function () {\n editor.setContent(value);\n // only restore cursor on inline editors when they are focused\n // as otherwise it will cause a focus grab\n if (_this.valueCursor && (!_this.inline || editor.hasFocus())) {\n try {\n editor.selection.moveToBookmark(_this.valueCursor);\n }\n catch (e) { /* ignore */ }\n }\n });\n }\n _this.rollbackTimer = undefined;\n };\n _this.handleBeforeInput = function (_evt) {\n if (_this.props.value !== undefined && _this.props.value === _this.currentContent && _this.editor) {\n if (!_this.inline || _this.editor.hasFocus()) {\n try {\n // getBookmark throws exceptions when the editor has not been focused\n // possibly only in inline mode but I'm not taking chances\n _this.valueCursor = _this.editor.selection.getBookmark(3);\n }\n catch (e) { /* ignore */ }\n }\n }\n };\n _this.handleBeforeInputSpecial = function (evt) {\n if (evt.key === 'Enter' || evt.key === 'Backspace' || evt.key === 'Delete') {\n _this.handleBeforeInput(evt);\n }\n };\n _this.handleEditorChange = function (_evt) {\n var editor = _this.editor;\n if (editor && editor.initialized) {\n var newContent = editor.getContent();\n if (_this.props.value !== undefined && _this.props.value !== newContent && _this.props.rollback !== false) {\n // start a timer and revert to the value if not applied in time\n if (!_this.rollbackTimer) {\n _this.rollbackTimer = window.setTimeout(_this.rollbackChange, typeof _this.props.rollback === 'number' ? _this.props.rollback : 200);\n }\n }\n if (newContent !== _this.currentContent) {\n _this.currentContent = newContent;\n if (isFunction(_this.props.onEditorChange)) {\n _this.props.onEditorChange(newContent, editor);\n }\n }\n }\n };\n _this.handleEditorChangeSpecial = function (evt) {\n if (evt.key === 'Backspace' || evt.key === 'Delete') {\n _this.handleEditorChange(evt);\n }\n };\n _this.initialise = function (attempts) {\n var _a, _b, _c;\n if (attempts === void 0) { attempts = 0; }\n var target = _this.elementRef.current;\n if (!target) {\n return; // Editor has been unmounted\n }\n if (!isInDoc(target)) {\n // this is probably someone trying to help by rendering us offscreen\n // but we can't do that because the editor iframe must be in the document\n // in order to have state\n if (attempts === 0) {\n // we probably just need to wait for the current events to be processed\n setTimeout(function () { return _this.initialise(1); }, 1);\n }\n else if (attempts < 100) {\n // wait for ten seconds, polling every tenth of a second\n setTimeout(function () { return _this.initialise(attempts + 1); }, 100);\n }\n else {\n // give up, at this point it seems that more polling is unlikely to help\n throw new Error('tinymce can only be initialised when in a document');\n }\n return;\n }\n var tinymce = getTinymce(_this.view);\n if (!tinymce) {\n throw new Error('tinymce should have been loaded into global scope');\n }\n var finalInit = __assign(__assign({}, _this.props.init), { selector: undefined, target: target, readonly: _this.props.disabled, inline: _this.inline, plugins: mergePlugins((_a = _this.props.init) === null || _a === void 0 ? void 0 : _a.plugins, _this.props.plugins), toolbar: (_b = _this.props.toolbar) !== null && _b !== void 0 ? _b : (_c = _this.props.init) === null || _c === void 0 ? void 0 : _c.toolbar, setup: function (editor) {\n _this.editor = editor;\n _this.bindHandlers({});\n // When running in inline mode the editor gets the initial value\n // from the innerHTML of the element it is initialized on.\n // However we don't want to take on the responsibility of sanitizing\n // to remove XSS in the react integration so we have a chicken and egg\n // problem... We avoid it by sneaking in a set content before the first\n // \"official\" setContent and using TinyMCE to do the sanitization.\n if (_this.inline && !isTextareaOrInput(target)) {\n editor.once('PostRender', function (_evt) {\n editor.setContent(_this.getInitialValue(), { no_events: true });\n });\n }\n if (_this.props.init && isFunction(_this.props.init.setup)) {\n _this.props.init.setup(editor);\n }\n }, init_instance_callback: function (editor) {\n var _a, _b;\n // check for changes that happened since tinymce.init() was called\n var initialValue = _this.getInitialValue();\n _this.currentContent = (_a = _this.currentContent) !== null && _a !== void 0 ? _a : editor.getContent();\n if (_this.currentContent !== initialValue) {\n _this.currentContent = initialValue;\n // same as resetContent in TinyMCE 5\n editor.setContent(initialValue);\n editor.undoManager.clear();\n editor.undoManager.add();\n editor.setDirty(false);\n }\n var disabled = (_b = _this.props.disabled) !== null && _b !== void 0 ? _b : false;\n setMode(_this.editor, disabled ? 'readonly' : 'design');\n // ensure existing init_instance_callback is called\n if (_this.props.init && isFunction(_this.props.init.init_instance_callback)) {\n _this.props.init.init_instance_callback(editor);\n }\n } });\n if (!_this.inline) {\n target.style.visibility = '';\n }\n if (isTextareaOrInput(target)) {\n target.value = _this.getInitialValue();\n }\n tinymce.init(finalInit);\n };\n _this.id = _this.props.id || uuid('tiny-react');\n _this.elementRef = React.createRef();\n _this.inline = (_c = (_a = _this.props.inline) !== null && _a !== void 0 ? _a : (_b = _this.props.init) === null || _b === void 0 ? void 0 : _b.inline) !== null && _c !== void 0 ? _c : false;\n _this.boundHandlers = {};\n return _this;\n }\n Object.defineProperty(Editor.prototype, \"view\", {\n get: function () {\n var _a, _b;\n return (_b = (_a = this.elementRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument.defaultView) !== null && _b !== void 0 ? _b : window;\n },\n enumerable: false,\n configurable: true\n });\n Editor.prototype.componentDidUpdate = function (prevProps) {\n var _this = this;\n var _a, _b;\n if (this.rollbackTimer) {\n clearTimeout(this.rollbackTimer);\n this.rollbackTimer = undefined;\n }\n if (this.editor) {\n this.bindHandlers(prevProps);\n if (this.editor.initialized) {\n this.currentContent = (_a = this.currentContent) !== null && _a !== void 0 ? _a : this.editor.getContent();\n if (typeof this.props.initialValue === 'string' && this.props.initialValue !== prevProps.initialValue) {\n // same as resetContent in TinyMCE 5\n this.editor.setContent(this.props.initialValue);\n this.editor.undoManager.clear();\n this.editor.undoManager.add();\n this.editor.setDirty(false);\n }\n else if (typeof this.props.value === 'string' && this.props.value !== this.currentContent) {\n var localEditor_1 = this.editor;\n localEditor_1.undoManager.transact(function () {\n // inline editors grab focus when restoring selection\n // so we don't try to keep their selection unless they are currently focused\n var cursor;\n if (!_this.inline || localEditor_1.hasFocus()) {\n try {\n // getBookmark throws exceptions when the editor has not been focused\n // possibly only in inline mode but I'm not taking chances\n cursor = localEditor_1.selection.getBookmark(3);\n }\n catch (e) { /* ignore */ }\n }\n var valueCursor = _this.valueCursor;\n localEditor_1.setContent(_this.props.value);\n if (!_this.inline || localEditor_1.hasFocus()) {\n for (var _i = 0, _a = [cursor, valueCursor]; _i < _a.length; _i++) {\n var bookmark = _a[_i];\n if (bookmark) {\n try {\n localEditor_1.selection.moveToBookmark(bookmark);\n _this.valueCursor = bookmark;\n break;\n }\n catch (e) { /* ignore */ }\n }\n }\n }\n });\n }\n if (this.props.disabled !== prevProps.disabled) {\n var disabled = (_b = this.props.disabled) !== null && _b !== void 0 ? _b : false;\n setMode(this.editor, disabled ? 'readonly' : 'design');\n }\n }\n }\n };\n Editor.prototype.componentDidMount = function () {\n var _this = this;\n var _a, _b, _c, _d, _e;\n if (getTinymce(this.view) !== null) {\n this.initialise();\n }\n else if (Array.isArray(this.props.tinymceScriptSrc) && this.props.tinymceScriptSrc.length === 0) {\n (_b = (_a = this.props).onScriptsLoadError) === null || _b === void 0 ? void 0 : _b.call(_a, new Error('No `tinymce` global is present but the `tinymceScriptSrc` prop was an empty array.'));\n }\n else if ((_c = this.elementRef.current) === null || _c === void 0 ? void 0 : _c.ownerDocument) {\n var successHandler = function () {\n var _a, _b;\n (_b = (_a = _this.props).onScriptsLoad) === null || _b === void 0 ? void 0 : _b.call(_a);\n _this.initialise();\n };\n var errorHandler = function (err) {\n var _a, _b;\n (_b = (_a = _this.props).onScriptsLoadError) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n ScriptLoader.loadList(this.elementRef.current.ownerDocument, this.getScriptSources(), (_e = (_d = this.props.scriptLoading) === null || _d === void 0 ? void 0 : _d.delay) !== null && _e !== void 0 ? _e : 0, successHandler, errorHandler);\n }\n };\n Editor.prototype.componentWillUnmount = function () {\n var _this = this;\n var editor = this.editor;\n if (editor) {\n editor.off(this.changeEvents(), this.handleEditorChange);\n editor.off(this.beforeInputEvent(), this.handleBeforeInput);\n editor.off('keypress', this.handleEditorChangeSpecial);\n editor.off('keydown', this.handleBeforeInputSpecial);\n editor.off('NewBlock', this.handleEditorChange);\n Object.keys(this.boundHandlers).forEach(function (eventName) {\n editor.off(eventName, _this.boundHandlers[eventName]);\n });\n this.boundHandlers = {};\n editor.remove();\n this.editor = undefined;\n }\n };\n Editor.prototype.render = function () {\n return this.inline ? this.renderInline() : this.renderIframe();\n };\n Editor.prototype.changeEvents = function () {\n var _a, _b, _c;\n var isIE = (_c = (_b = (_a = getTinymce(this.view)) === null || _a === void 0 ? void 0 : _a.Env) === null || _b === void 0 ? void 0 : _b.browser) === null || _c === void 0 ? void 0 : _c.isIE();\n return (isIE\n ? 'change keyup compositionend setcontent CommentChange'\n : 'change input compositionend setcontent CommentChange');\n };\n Editor.prototype.beforeInputEvent = function () {\n return isBeforeInputEventAvailable() ? 'beforeinput SelectionChange' : 'SelectionChange';\n };\n Editor.prototype.renderInline = function () {\n var _a = this.props.tagName, tagName = _a === void 0 ? 'div' : _a;\n return React.createElement(tagName, {\n ref: this.elementRef,\n id: this.id\n });\n };\n Editor.prototype.renderIframe = function () {\n return React.createElement('textarea', {\n ref: this.elementRef,\n style: { visibility: 'hidden' },\n name: this.props.textareaName,\n id: this.id\n });\n };\n Editor.prototype.getScriptSources = function () {\n var _a, _b;\n var async = (_a = this.props.scriptLoading) === null || _a === void 0 ? void 0 : _a.async;\n var defer = (_b = this.props.scriptLoading) === null || _b === void 0 ? void 0 : _b.defer;\n if (this.props.tinymceScriptSrc !== undefined) {\n if (typeof this.props.tinymceScriptSrc === 'string') {\n return [{ src: this.props.tinymceScriptSrc, async: async, defer: defer }];\n }\n // multiple scripts can be specified which allows for hybrid mode\n return this.props.tinymceScriptSrc.map(function (item) {\n if (typeof item === 'string') {\n // async does not make sense for multiple items unless\n // they are not dependent (which will be unlikely)\n return { src: item, async: async, defer: defer };\n }\n else {\n return item;\n }\n });\n }\n // fallback to the cloud when the tinymceScriptSrc is not specified\n var channel = this.props.cloudChannel;\n var apiKey = this.props.apiKey ? this.props.apiKey : 'no-api-key';\n var cloudTinyJs = \"https://cdn.tiny.cloud/1/\".concat(apiKey, \"/tinymce/\").concat(channel, \"/tinymce.min.js\");\n return [{ src: cloudTinyJs, async: async, defer: defer }];\n };\n Editor.prototype.getInitialValue = function () {\n if (typeof this.props.initialValue === 'string') {\n return this.props.initialValue;\n }\n else if (typeof this.props.value === 'string') {\n return this.props.value;\n }\n else {\n return '';\n }\n };\n Editor.prototype.bindHandlers = function (prevProps) {\n var _this = this;\n if (this.editor !== undefined) {\n // typescript chokes trying to understand the type of the lookup function\n configHandlers(this.editor, prevProps, this.props, this.boundHandlers, function (key) { return _this.props[key]; });\n // check if we should monitor editor changes\n var isValueControlled = function (p) { return p.onEditorChange !== undefined || p.value !== undefined; };\n var wasControlled = isValueControlled(prevProps);\n var nowControlled = isValueControlled(this.props);\n if (!wasControlled && nowControlled) {\n this.editor.on(this.changeEvents(), this.handleEditorChange);\n this.editor.on(this.beforeInputEvent(), this.handleBeforeInput);\n this.editor.on('keydown', this.handleBeforeInputSpecial);\n this.editor.on('keyup', this.handleEditorChangeSpecial);\n this.editor.on('NewBlock', this.handleEditorChange);\n }\n else if (wasControlled && !nowControlled) {\n this.editor.off(this.changeEvents(), this.handleEditorChange);\n this.editor.off(this.beforeInputEvent(), this.handleBeforeInput);\n this.editor.off('keydown', this.handleBeforeInputSpecial);\n this.editor.off('keyup', this.handleEditorChangeSpecial);\n this.editor.off('NewBlock', this.handleEditorChange);\n }\n }\n };\n Editor.propTypes = EditorPropTypes;\n Editor.defaultProps = {\n cloudChannel: '6'\n };\n return Editor;\n}(React.Component));\nexport { Editor };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as PropTypes from 'prop-types';\nexport var eventPropTypes = {\n onActivate: PropTypes.func,\n onAddUndo: PropTypes.func,\n onBeforeAddUndo: PropTypes.func,\n onBeforeExecCommand: PropTypes.func,\n onBeforeGetContent: PropTypes.func,\n onBeforeRenderUI: PropTypes.func,\n onBeforeSetContent: PropTypes.func,\n onBeforePaste: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onClearUndos: PropTypes.func,\n onClick: PropTypes.func,\n onContextMenu: PropTypes.func,\n onCommentChange: PropTypes.func,\n onCopy: PropTypes.func,\n onCut: PropTypes.func,\n onDblclick: PropTypes.func,\n onDeactivate: PropTypes.func,\n onDirty: PropTypes.func,\n onDrag: PropTypes.func,\n onDragDrop: PropTypes.func,\n onDragEnd: PropTypes.func,\n onDragGesture: PropTypes.func,\n onDragOver: PropTypes.func,\n onDrop: PropTypes.func,\n onExecCommand: PropTypes.func,\n onFocus: PropTypes.func,\n onFocusIn: PropTypes.func,\n onFocusOut: PropTypes.func,\n onGetContent: PropTypes.func,\n onHide: PropTypes.func,\n onInit: PropTypes.func,\n onKeyDown: PropTypes.func,\n onKeyPress: PropTypes.func,\n onKeyUp: PropTypes.func,\n onLoadContent: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseUp: PropTypes.func,\n onNodeChange: PropTypes.func,\n onObjectResizeStart: PropTypes.func,\n onObjectResized: PropTypes.func,\n onObjectSelected: PropTypes.func,\n onPaste: PropTypes.func,\n onPostProcess: PropTypes.func,\n onPostRender: PropTypes.func,\n onPreProcess: PropTypes.func,\n onProgressState: PropTypes.func,\n onRedo: PropTypes.func,\n onRemove: PropTypes.func,\n onReset: PropTypes.func,\n onSaveContent: PropTypes.func,\n onSelectionChange: PropTypes.func,\n onSetAttrib: PropTypes.func,\n onSetContent: PropTypes.func,\n onShow: PropTypes.func,\n onSubmit: PropTypes.func,\n onUndo: PropTypes.func,\n onVisualAid: PropTypes.func,\n onSkinLoadError: PropTypes.func,\n onThemeLoadError: PropTypes.func,\n onModelLoadError: PropTypes.func,\n onPluginLoadError: PropTypes.func,\n onIconsLoadError: PropTypes.func,\n onLanguageLoadError: PropTypes.func,\n onScriptsLoad: PropTypes.func,\n onScriptsLoadError: PropTypes.func,\n};\nexport var EditorPropTypes = __assign({ apiKey: PropTypes.string, id: PropTypes.string, inline: PropTypes.bool, init: PropTypes.object, initialValue: PropTypes.string, onEditorChange: PropTypes.func, value: PropTypes.string, tagName: PropTypes.string, cloudChannel: PropTypes.string, plugins: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), toolbar: PropTypes.oneOfType([PropTypes.string, PropTypes.array]), disabled: PropTypes.bool, textareaName: PropTypes.string, tinymceScriptSrc: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.arrayOf(PropTypes.shape({\n src: PropTypes.string,\n async: PropTypes.bool,\n defer: PropTypes.bool\n }))\n ]), rollback: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf([false])]), scriptLoading: PropTypes.shape({\n async: PropTypes.bool,\n defer: PropTypes.bool,\n delay: PropTypes.number\n }) }, eventPropTypes);\n","import { Editor } from './components/Editor';\nexport { Editor };\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst close = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z\"\n })\n});\nexport default close;\n//# sourceMappingURL=close.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst cog = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n d: \"M10.289 4.836A1 1 0 0111.275 4h1.306a1 1 0 01.987.836l.244 1.466c.787.26 1.503.679 2.108 1.218l1.393-.522a1 1 0 011.216.437l.653 1.13a1 1 0 01-.23 1.273l-1.148.944a6.025 6.025 0 010 2.435l1.149.946a1 1 0 01.23 1.272l-.653 1.13a1 1 0 01-1.216.437l-1.394-.522c-.605.54-1.32.958-2.108 1.218l-.244 1.466a1 1 0 01-.987.836h-1.306a1 1 0 01-.986-.836l-.244-1.466a5.995 5.995 0 01-2.108-1.218l-1.394.522a1 1 0 01-1.217-.436l-.653-1.131a1 1 0 01.23-1.272l1.149-.946a6.026 6.026 0 010-2.435l-1.148-.944a1 1 0 01-.23-1.272l.653-1.131a1 1 0 011.217-.437l1.393.522a5.994 5.994 0 012.108-1.218l.244-1.466zM14.929 12a3 3 0 11-6 0 3 3 0 016 0z\",\n clipRule: \"evenodd\"\n })\n});\nexport default cog;\n//# sourceMappingURL=cog.js.map","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst commentAuthorAvatar = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n d: \"M7.25 16.437a6.5 6.5 0 1 1 9.5 0V16A2.75 2.75 0 0 0 14 13.25h-4A2.75 2.75 0 0 0 7.25 16v.437Zm1.5 1.193a6.47 6.47 0 0 0 3.25.87 6.47 6.47 0 0 0 3.25-.87V16c0-.69-.56-1.25-1.25-1.25h-4c-.69 0-1.25.56-1.25 1.25v1.63ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm10-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z\",\n clipRule: \"evenodd\"\n })\n});\nexport default commentAuthorAvatar;\n//# sourceMappingURL=comment-author-avatar.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst login = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M11 14.5l1.1 1.1 3-3 .5-.5-.6-.6-3-3-1 1 1.7 1.7H5v1.5h7.7L11 14.5zM16.8 5h-7c-1.1 0-2 .9-2 2v1.5h1.5V7c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v10c0 .3-.2.5-.5.5h-7c-.3 0-.5-.2-.5-.5v-1.5H7.8V17c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2z\"\n })\n});\nexport default login;\n//# sourceMappingURL=login.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst moreVertical = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z\"\n })\n});\nexport default moreVertical;\n//# sourceMappingURL=more-vertical.js.map","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst post = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n d: \"m7.3 9.7 1.4 1.4c.2-.2.3-.3.4-.5 0 0 0-.1.1-.1.3-.5.4-1.1.3-1.6L12 7 9 4 7.2 6.5c-.6-.1-1.1 0-1.6.3 0 0-.1 0-.1.1-.3.1-.4.2-.6.4l1.4 1.4L4 11v1h1l2.3-2.3zM4 20h9v-1.5H4V20zm0-5.5V16h16v-1.5H4z\"\n })\n});\nexport default post;\n//# sourceMappingURL=post.js.map","import { useState } from '@wordpress/element';\n\nexport const InlineEdit = ( { value, setValue } ) => {\n\tconst [ editingValue, setEditingValue ] = useState( value );\nconsole.log(value)\n\tconst onChange = ( event ) => setEditingValue( event.target.value );\n\n\tconst onKeyDown = ( event ) => {\n\t\tif ( event.key === 'Enter' || event.key === 'Escape' ) {\n\t\t\tevent.target.blur();\n\t\t}\n\t};\n\n\tconst onBlur = ( event ) => {\n\t\tif ( event.target.value.trim() === '' ) {\n\t\t\tsetEditingValue( value );\n\t\t} else {\n\t\t\tsetValue( event.target.value );\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t);\n};\n","import { applyFilters } from '@wordpress/hooks';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nconst allowed = [\n\t'formello/input',\n\t'formello/select',\n\t'formello/textarea',\n\t'formello/multichoices',\n];\n\n/**\n * Find the input fields blocks IDS.\n */\nexport function getFieldsBlock() {\n\tconst fields = [];\n\tconst inputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/input' );\n\tconst textareas =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/textarea' );\n\tconst selects =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/select' );\n\tconst outputs =\n\t\tselect( blockEditorStore ).getBlocksByName( 'formello/output' );\n\tconst multichoices = select( blockEditorStore ).getBlocksByName(\n\t\t'formello/multichoices'\n\t);\n\n\tconst fieldsId = inputs.concat( textareas, selects, outputs, multichoices );\n\n\tfieldsId.forEach( ( b ) => {\n\t\tconst block = select( blockEditorStore ).getBlock( b );\n\t\tif ( allowed.includes( block.name ) ) {\n\t\t\tfields.push( block );\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Validate form before saving\n */\nexport function validate() {\n\tconst fields = {\n\t\tnames: [],\n\t\tbuttons:\n\t\t\tselect( blockEditorStore ).getBlocksByName( 'formello/button' ),\n\t};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.names.push( b.attributes.name );\n\t} );\n\n\treturn fields;\n}\n\n/**\n * Get fields type.\n */\nexport function getFieldsType() {\n\tconst fields = {};\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\t// get block type by name\n\t\tlet type = b.name.split( '/' )[ 1 ];\n\t\tif ( 'input' === type ) {\n\t\t\ttype = b.attributes.type;\n\t\t}\n\n\t\tfields[ b.attributes.name ] = type;\n\t\tif ( b.attributes.advanced && 'textarea' === 'textarea' ) {\n\t\t\tfields[ b.attributes.name ] = 'richtext';\n\t\t}\n\t\tif ( b.attributes.multiple && 'select' === type ) {\n\t\t\tfields[ b.attributes.name ] = type + '-multiple';\n\t\t}\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFields() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\ttitle: b.attributes.name,\n\t\t\ttag: '{{fields.' + b.attributes.name + '}}',\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function serializeFieldsName() {\n\tconst fields = [];\n\tconst fieldsBlock = getFieldsBlock();\n\n\tfieldsBlock.forEach( ( b ) => {\n\t\tfields.push( {\n\t\t\tlabel: b.attributes.name,\n\t\t\tvalue: b.attributes.name,\n\t\t} );\n\t} );\n\n\treturn fields;\n}\n\nexport function getFieldsTags() {\n\tconst fields = serializeFields();\n\n\treturn [\n\t\t{\n\t\t\ttitle: 'All Data',\n\t\t\ttag: '{{fields.all_data}}',\n\t\t},\n\t\t...fields,\n\t];\n}\n\nexport function getConstraints() {\n\tconst constraints = {};\n\tconst fields = getFieldsBlock();\n\n\tif ( fields ) {\n\t\tfields.forEach( ( b ) => {\n\t\t\tconst constraint = getFieldConstraint( b );\n\t\t\tlet name = b.attributes.name;\n\n\t\t\tif ( b.attributes.multiple ) {\n\t\t\t\tname += '.*';\n\t\t\t}\n\t\t\tif ( constraint ) {\n\t\t\t\tconstraints[ name ] = constraint;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn constraints;\n}\n\nexport function getFieldConstraint( field ) {\n\tlet constraints = [];\n\n\tif ( field.attributes.type === 'url' ) {\n\t\tconstraints.push( 'url' );\n\t}\n\n\tif ( field.attributes.required ) {\n\t\tconstraints.push( 'required' );\n\t}\n\n\tif ( field.attributes.minlength ) {\n\t\tconstraints.push( 'minlength:' + field.attributes.minlength );\n\t}\n\n\tif ( field.attributes.maxlength ) {\n\t\tconstraints.push( 'maxlength:' + field.attributes.maxlength );\n\t}\n\n\tif ( field.attributes.min && 'date' !== field.attributes.type ) {\n\t\tconstraints.push( 'min:' + field.attributes.min );\n\t}\n\n\tif (\n\t\tfield.attributes.max &&\n\t\t'date' !== field.attributes.type &&\n\t\t'file' !== field.attributes.type\n\t) {\n\t\tconstraints.push( 'max:' + field.attributes.max );\n\t}\n\n\tif ( field.attributes.type === 'email' ) {\n\t\tconstraints.push( 'email' );\n\t}\n\n\tif (\n\t\tfield.attributes.type === 'number' ||\n\t\tfield.attributes.type === 'range'\n\t) {\n\t\tconstraints.push( 'numeric' );\n\t}\n\n\tif ( 'date' === field.attributes.type && ! field.attributes.advanced ) {\n\t\tconstraints.push( 'date' );\n\t}\n\n\tif ( field.attributes.pattern ) {\n\t\tconst regEx = new RegExp( field.attributes.pattern );\n\t\tconstraints.push( 'regex:' + regEx );\n\t}\n\n\tif ( field.attributes.enableMismatch && '' !== field.attributes.match ) {\n\t\tconstraints.push( 'same:' + field.attributes.match );\n\t}\n\n\tapplyFilters( 'formello.constraints', constraints, field );\n\n\tif ( constraints.length ) {\n\t\tconstraints = constraints.join( '|' );\n\t}\n\n\treturn constraints.length ? constraints : undefined;\n}\n\nexport function getMetaTags() {\n\tconst postType = select( 'core/editor' ).getCurrentPostType();\n\tconst postId = select( 'core/editor' ).getCurrentPostId();\n\n\tconst [ meta ] = useEntityProp( 'postType', postType, 'meta', postId );\n\tconst metaTags = [];\n\n\tfor ( const key in meta ) {\n\t\tif ( meta[ key ] !== Object( key ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst tag = {\n\t\t\ttitle: key,\n\t\t\ttag: `{{meta.${ key }}}`,\n\t\t};\n\t\tmetaTags.push( tag );\n\t}\n\n\treturn metaTags;\n}\n\nexport function getWordpressTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Post ID',\n\t\t\ttag: `{{wp.post_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Title',\n\t\t\ttag: `{{wp.post_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post URL',\n\t\t\ttag: `{{wp.post_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author',\n\t\t\ttag: `{{wp.post_author}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Post Author Email',\n\t\t\ttag: `{{wp.post_author_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User ID',\n\t\t\ttag: `{{wp.user_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User First Name',\n\t\t\ttag: `{{wp.user_first_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Last Name',\n\t\t\ttag: `{{wp.user_last_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Display Name',\n\t\t\ttag: `{{wp.user_display_name}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Username',\n\t\t\ttag: `{{wp.user_username}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User Email',\n\t\t\ttag: `{{wp.user_email}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User URL',\n\t\t\ttag: `{{wp.user_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site Title',\n\t\t\ttag: `{{wp.site_title}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Site URL',\n\t\t\ttag: `{{wp.site_url}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Admin Email',\n\t\t\ttag: `{{wp.admin_email}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getFormTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Form ID',\n\t\t\ttag: `{{form.form_id}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Form Label',\n\t\t\ttag: `{{form.form_name}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getOtherTags() {\n\tconst tags = [\n\t\t{\n\t\t\ttitle: 'Date',\n\t\t\ttag: `{{other.system_date}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Time',\n\t\t\ttag: `{{other.system_time}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'Referrer URL',\n\t\t\ttag: `{{other.referrer}}`,\n\t\t},\n\t\t{\n\t\t\ttitle: 'User IP',\n\t\t\ttag: `{{other.user_ip}}`,\n\t\t},\n\t];\n\n\treturn tags;\n}\n\nexport function getPatternTabs() {\n\tconst passwords = [\n\t\t{\n\t\t\ttitle: 'Password',\n\t\t\ttag: `^(?=.*[A-Za-z])(?=.*\\\\d)[A-Za-z\\\\d]{8,}$`,\n\t\t\tdescription: 'One uppercase, one number, at least 8 chars',\n\t\t},\n\t\t{\n\t\t\ttitle: 'Password with special characters',\n\t\t\ttag: `^(?=.*[a-z])(?=.*[A-Z])(?=.*\\\\d)(?=.*[@$!%*?&])[A-Za-z\\\\d@$!%*?&]{8,}$`,\n\t\t\tdescription:\n\t\t\t\t'One uppercase, one number, one special chars, at least 8 chars',\n\t\t},\n\t];\n\n\tconst dates = [\n\t\t{\n\t\t\ttitle: 'dd/mm/yyyy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{4}$',\n\t\t},\n\t\t{\n\t\t\ttitle: 'dd/mm/yy',\n\t\t\ttag: '^\\\\d{2}-\\\\d{2}-\\\\d{2}$',\n\t\t},\n\t];\n\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'passwords',\n\t\t\ttitle: 'Passwords',\n\t\t\tdata: passwords,\n\t\t},\n\t\t{\n\t\t\tname: 'dates',\n\t\t\ttitle: 'Dates',\n\t\t\tdata: dates,\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport {\n\tBaseControl,\n\tDropdownMenu,\n\t__experimentalInputControl as InputControl,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { defaultTabs } from './use-tabs';\nimport TabContent from './tab-content';\n\nexport default function MergeTags( props ) {\n\tconst {\n\t\tlabel,\n\t\tvalue,\n\t\tplaceholder,\n\t\thelp,\n\t\tonChange,\n\t\ticon = moreVertical,\n\t\tclientId,\n\t\ttabs = defaultTabs( clientId ),\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) }\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t\n\t);\n}\n\nexport function MergeTagsMenu( props ) {\n\tconst { label, onChange, icon = moreVertical, clientId } = props;\n\n\tconst tabs = defaultTabs( clientId );\n\n\treturn (\n\t\t\n\t\t\t{ () => }\n\t\t\n\t);\n}\n","/**\n * Retrieves the translation of text.\n *\n * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/\n */\nimport { SearchControl, TabPanel, MenuItem } from '@wordpress/components';\nimport { useState, Fragment } from '@wordpress/element';\n\nexport default function TabContent( { tabs, onChange } ) {\n\tconst [ searchInput, setSearchInput ] = useState( '' );\n\n\tconst filterAddon = ( element ) => {\n\t\tif ( '' === searchInput ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn (\n\t\t\telement.title.toLowerCase().search( searchInput.toLowerCase() ) !==\n\t\t\t-1\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{ ( tab ) =>\n\t\t\t\t\ttab.data\n\t\t\t\t\t\t.filter( ( element ) => {\n\t\t\t\t\t\t\treturn filterAddon( element );\n\t\t\t\t\t\t} )\n\t\t\t\t\t\t.map( ( data ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t onChange( data.tag ) }\n\t\t\t\t\t\t\t\t\tinfo={ data.description }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ data.title }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t\n\t\t\n\t);\n}\n","import {\n\tgetFieldsTags,\n\tgetWordpressTags,\n\tgetOtherTags,\n\tgetMetaTags,\n} from './functions';\n\nexport function defaultTabs( clientId ) {\n\tconst tabs = [\n\t\t{\n\t\t\tname: 'fields',\n\t\t\ttitle: 'Fields',\n\t\t\tdata: getFieldsTags( clientId ),\n\t\t},\n\t\t{\n\t\t\tname: 'wordpress',\n\t\t\ttitle: 'WordPress',\n\t\t\tdata: getWordpressTags(),\n\t\t},\n\t\t{\n\t\t\tname: 'other',\n\t\t\ttitle: 'Other',\n\t\t\tdata: getOtherTags(),\n\t\t},\n\t];\n\n\treturn tabs;\n}\n","import { __ } from '@wordpress/i18n';\nimport {\n\tCard,\n\tCardHeader,\n\tCardBody,\n\tButton,\n\twithFilters,\n} from '@wordpress/components';\n\nexport const Promo = withFilters( 'formello.modal.promo' )( () => {\n\treturn (\n\t\t
    \n\t\t\t

    \n\t\t\t\t{ __(\n\t\t\t\t\t'This action is available only for pro users. You can try one month free.',\n\t\t\t\t\t'formello'\n\t\t\t\t) }\n\t\t\t

    \n\t\t\t\n\t\t\t\t{ __( 'Try it now free!', 'formello' ) }\n\t\t\t\n\t\t
    \n\t);\n} );\n\nexport const PromoSettings = withFilters( 'formello.settings.promo' )( () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

    { __( 'Go Pro', 'formello' ) }

    \n\t\t\t
    \n\t\t\t\n\t\t\t\t

    { __( 'Empower your forms with our PRO extensions.' ) }

    \n\t\t\t\t
      \n\t\t\t\t\t
    • { __( 'Conditional fields', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'File upload', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Frontend posting', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Login form', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Search autosuggest', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Calculator formula', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Web Hooks', 'formello' ) }
    • \n\t\t\t\t\t
    • { __( 'Mail marketing integration', 'formello' ) }
    • \n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n} );\n","import { ReactComponent as MailPoet } from '../../../assets/integrations/mailpoet.svg';\nimport { ReactComponent as Mailchimp } from '../../../assets/integrations/mailchimp.svg';\nimport { ReactComponent as Moosend } from '../../../assets/integrations/moosend.svg';\nimport { ReactComponent as ConvertKit } from '../../../assets/integrations/convertkit.svg';\nimport { ReactComponent as GetResponse } from '../../../assets/integrations/getresponse.svg';\nimport { ReactComponent as Brevo } from '../../../assets/integrations/brevo.svg';\nimport { ReactComponent as MailerLite } from '../../../assets/integrations/mailerlite.svg';\nimport { ReactComponent as Email } from '../../../assets/integrations/email.svg';\nimport { ReactComponent as WebHook } from '../../../assets/integrations/webhook.svg';\nimport {\n\tpost as FrontendPosting,\n\tlogin as Login,\n\tcommentAuthorAvatar as Registration,\n} from '@wordpress/icons';\n\nexport const icons = {\n\tConvertKit,\n\tMailchimp,\n\tMailPoet,\n\tMoosend,\n\tMailerLite,\n\tGetResponse,\n\tBrevo,\n\tEmail,\n\tWebHook,\n\tFrontendPosting,\n\tLogin,\n\tRegistration,\n};\n\nexport const integrations = [\n\t{\n\t\tasync: true,\n\t\ttype: 'email',\n\t\tname: 'Email',\n\t\tto: '',\n\t\tfrom: '',\n\t\tcc: '',\n\t\tbcc: '',\n\t\treplyTo: '',\n\t\tsubject: '',\n\t\tmessage: '',\n\t\tadvanced: false,\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'ConvertKit',\n\t\tname: 'ConvertKit',\n\t\tapiUrl: 'https://www.convertkit.com/help/where-to-find-the-convertkit-api-key-groupid-and-documentation',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'GetResponse',\n\t\tname: 'GetResponse',\n\t\tapiUrl: 'https://www.getresponse.com/help/where-do-i-find-the-api-key.html',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Mailchimp',\n\t\tname: 'Mailchimp',\n\t\tapiUrl: 'https://mailchimp.com/help/about-api-keys/',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'MailerLite',\n\t\tname: 'MailerLite',\n\t\tapiUrl: 'https://www.mailerlite.com/help/where-to-find-the-mailerlite-api-key-groupid-and-documentation',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'MailPoet',\n\t\tname: 'MailPoet',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Moosend',\n\t\tname: 'Moosend',\n\t\tapiUrl: 'https://help.moosend.com/hc/en-us/articles/4403735862674-Find-the-API-key-of-your-account',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'Brevo',\n\t\tname: 'Brevo',\n\t\tapiUrl: 'https://developers.brevo.com/docs/getting-started',\n\t},\n\t{\n\t\tasync: true,\n\t\ttype: 'WebHook',\n\t\tname: 'WebHook',\n\t\tapiUrl: '',\n\t\turl: '',\n\t\tmethod: 'POST',\n\t\tadditionalHeaders: false,\n\t\tfields: [],\n\t\theaders: [],\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'frontend-posting',\n\t\tname: 'FrontendPosting',\n\t\tpostarr: {\n\t\t\tpost_type: 'post',\n\t\t\tpost_title: '',\n\t\t\tpost_content: '',\n\t\t\tpost_excerpt: '',\n\t\t\ttax_input: [],\n\t\t\tmeta_input: [],\n\t\t},\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'login',\n\t\tname: 'Login',\n\t},\n\t{\n\t\tasync: false,\n\t\ttype: 'registration',\n\t\tname: 'Registration',\n\t},\n];\n","import { addFilter } from '@wordpress/hooks';\n\nimport {\n\tToggleControl,\n\tBaseControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\n\nimport { __ } from '@wordpress/i18n';\nimport MergeTags, { MergeTagsMenu } from '../../components/merge-tags';\nimport { Editor } from '@tinymce/tinymce-react';\n\nexport default function Email( content, clientId, action, handleUpdate ) {\n\tconst id = `editor-${ clientId }`;\n\n\tconst { settings } = window.wpEditorL10n.tinymce;\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'from', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'to', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'advanced', val );\n\t\t\t\t} }\n\t\t\t\tchecked={ action.advanced }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\n\t\t\t{ action.advanced && (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\thandleUpdate( 'cc', val );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\n\t\t\t\t\t {\n\t\t\t\t\t\t\thandleUpdate( 'bcc', val );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) }\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'replyTo', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t {\n\t\t\t\t\thandleUpdate( 'subject', val );\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Message', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\thandleUpdate( 'message', action.message + val );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t handleUpdate( 'message', val ) }\n\t\t\t\t/>\n\t\t\t\n\t\t\n\t);\n}\n\naddFilter( 'formello.modal.email', 'formello/actions-email', Email );\n\nfunction withComponentAppended( FilteredComponent ) {\n\treturn ( props ) => {\n\t\tconst { settings } = props;\n\t\tif ( 'email' === settings.type ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n}\n\naddFilter(\n\t'formello.modal.test',\n\t'formello/actions-email-promo',\n\twithComponentAppended\n);\n","import { addFilter } from '@wordpress/hooks';\nimport './email';\n\nfunction withComponentAppended( FilteredComponent ) {\n\treturn ( props ) => {\n\t\tconst { settings } = props;\n\t\tif ( 'email' === settings.type ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n}\n\naddFilter(\n\t'formello.modal.test',\n\t'formello/actions-email-promo',\n\twithComponentAppended\n);\n","import { Fragment, useState, useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { useEntityProp } from '@wordpress/core-data';\nimport {\n\tModal,\n\tButton,\n\tIcon,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { applyFilters } from '@wordpress/hooks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { icons } from './constants';\nimport MergeTags from '../../components/merge-tags';\nimport { Promo } from '../../components/promo';\nimport './filters';\n\nexport function ActionsModal( props ) {\n\tconst { onRequestClose, settings, clientId } = props;\n\n\tconst [ action, setAction ] = useState( Object.assign( {}, settings ) );\n\n\tconst updateSettings = ( prop, val ) => {\n\t\tsetAction( { ...action, [ prop ]: val } );\n\t};\n\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t};\n\t}, [] );\n\n\tconst [ meta, setMeta ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tconst setActions = useCallback( ( actions ) => {\n\t\tsetMeta( {\n\t\t\t...meta,\n\t\t\t_formello_actions: actions,\n\t\t} );\n\t}, [] );\n\n\tconst save = ( item ) => {\n\t\tif ( ! item.id ) {\n\t\t\tconst newItem = Object.assign( item, {\n\t\t\t\tid: meta._formello_actions.length + 1,\n\t\t\t} );\n\t\t\tconst actions = [ ...meta._formello_actions, newItem ];\n\t\t\tsetActions( actions );\n\t\t} else {\n\t\t\tconst actions = meta._formello_actions.map( ( el ) =>\n\t\t\t\tel.id === item.id ? { ...el, ...item } : el\n\t\t\t);\n\t\t\tsetActions( actions );\n\t\t}\n\t\tonRequestClose( false );\n\t};\n\n\tconst remove = ( item ) => {\n\t\tconst actions = meta._formello_actions.filter( ( o ) => {\n\t\t\treturn o.id !== item.id;\n\t\t} );\n\t\tsetActions( actions );\n\t\tonRequestClose( false );\n\t};\n\n\treturn (\n\t\t\n\t\t\t\t\t\n\t\t\t\t\t{ settings.name }\n\t\t\t\t\n\t\t\t}\n\t\t\tonRequestClose={ onRequestClose }\n\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\tsize=\"large\"\n\t\t>\n\t\t\t
    \n\t\t\t\t{ 'email' !== settings.type && (\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\t\n\t\t\t\t\t{ applyFilters(\n\t\t\t\t\t\t'formello.modal.' + settings.type,\n\t\t\t\t\t\t'',\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\taction,\n\t\t\t\t\t\tupdateSettings,\n\t\t\t\t\t\tMergeTags\n\t\t\t\t\t) }\n\n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsave( action );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\n\t\t\t\t\t\t{ settings.id && (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\twindow.confirm(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of form action */\n\t\t\t\t\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t\t`Delete action %s?`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tsettings.name\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\tremove( action );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Delete', 'formello' ) }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) }\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t\n\t);\n}\n","import { select } from '@wordpress/data';\nimport { addFilter } from '@wordpress/hooks';\nimport {\n\tgetConstraints,\n\tgetFieldsType,\n\tvalidate,\n} from '../components/merge-tags/functions';\n\nfunction validateAll() {\n\tconst validation = validate();\n\n\tif ( ! validation.buttons.length ) {\n\t\treturn Promise.reject( {\n\t\t\tmessage: __( 'Missing button', 'formello' ),\n\t\t} );\n\t}\n\n\tif ( validation.buttons.length > 1 ) {\n\t\treturn Promise.reject( {\n\t\t\tmessage: __( 'You have more than one button', 'formello' ),\n\t\t} );\n\t}\n\n\tif ( validation.names.some( ( item ) => item === undefined ) ) {\n\t\treturn Promise.reject( {\n\t\t\tmessage: __( 'One or more fields have no name', 'formello' ),\n\t\t} );\n\t}\n}\n\naddFilter( 'editor.preSavePost', 'editor', ( edits ) => {\n\tconst postType = select( 'core/editor' ).getCurrentPostType();\n\tconst meta = select( 'core/editor' ).getCurrentPostAttribute( 'meta' );\n\n\tif ( 'formello_form' === postType ) {\n\t\tconst fields = getFieldsType();\n\t\tconst constraints = getConstraints();\n\n\t\tlet newEdits;\n\n\t\t// There are already meta edits?\n\t\tif ( edits.meta ) {\n\t\t\tnewEdits = {\n\t\t\t\t...edits,\n\t\t\t\tmeta: {\n\t\t\t\t\t...edits.meta,\n\t\t\t\t\t_formello_settings: {\n\t\t\t\t\t\t...edits.meta._formello_settings,\n\t\t\t\t\t\tconstraints,\n\t\t\t\t\t\tfields,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\t} else {\n\t\t\t// Add our meta if they're not there\n\t\t\tconst newMeta = {\n\t\t\t\t...meta,\n\t\t\t\t_formello_settings: {\n\t\t\t\t\t...meta._formello_settings,\n\t\t\t\t\tconstraints,\n\t\t\t\t\tfields,\n\t\t\t\t},\n\t\t\t};\n\t\t\tnewEdits = {\n\t\t\t\t...edits,\n\t\t\t\tmeta: newMeta,\n\t\t\t};\n\t\t}\n\n\t\treturn Promise.resolve( newEdits );\n\t}\n\n\treturn Promise.resolve( edits );\n} );\n","import { __, sprintf } from '@wordpress/i18n';\nimport { Fragment, useState } from '@wordpress/element';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tDropdown,\n\tButton,\n\tMenuGroup,\n\tMenuItem,\n\tIcon,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { integrations, icons } from '../actions/constants';\nimport { close, cog } from '@wordpress/icons';\nimport { ActionsModal } from '../actions/modal';\nimport { InlineEdit } from '../../components/inline-edit';\n\nexport function ActionsSettings() {\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t\tisPreview: getSettings().__unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\n\tconst [ meta, setMeta ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tconst [ showModal, setShowModal ] = useState( false );\n\tconst [ confirm, setConfirm ] = useState( false );\n\n\tif ( ! meta._formello_actions ) {\n\t\treturn <>;\n\t}\n\n\tconst remove = ( item ) => {\n\t\tconst arr = meta._formello_actions.filter( ( o ) => {\n\t\t\treturn o.id !== item.id;\n\t\t} );\n\t\tsetMeta( { ...meta, _formello_actions: arr } );\n\t\tsetShowModal( false );\n\t};\n\n\treturn (\n\t\t\n\t\t\t (\n\t\t\t\t\t\n\t\t\t\t\t\t{ __( 'Add action', 'formello' ) }\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\trenderContent={ ( { onToggle } ) => (\n\t\t\t\t\t\n\t\t\t\t\t\t{ integrations.map( ( a, i ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tsetShowModal( a );\n\t\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ a.name }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t\n\t\t\t\t{ meta._formello_actions.map( ( a, i ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{ a.name }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t setShowModal( a ) }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t setConfirm( a ) }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\n\t\t\t{ showModal && (\n\t\t\t\t {\n\t\t\t\t\t\tsetShowModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t {\n\t\t\t\t\tremove( confirm );\n\t\t\t\t\tsetConfirm( false );\n\t\t\t\t} }\n\t\t\t\tonCancel={ () => setConfirm( false ) }\n\t\t\t>\n\t\t\t\t{ sprintf(\n\t\t\t\t\t'Are you sure you want delete %s action?',\n\t\t\t\t\tconfirm.name,\n\t\t\t\t\t'formello'\n\t\t\t\t) }\n\t\t\t\n\t\t\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { ToggleControl } from '@wordpress/components';\n\nexport function AdvancedSettings() {\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t\tisPreview: getSettings().__unstableIsPreviewMode,\n\t\t};\n\t}, [] );\n\n\tconst [ meta, setMeta ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tif ( ! meta._formello_settings ) {\n\t\treturn <>;\n\t}\n\n\tconst { enableJsValidation, debug } = meta._formello_settings;\n\n\tconst setOptions = ( key, val ) => {\n\t\tsetMeta( {\n\t\t\t...meta,\n\t\t\t_formello_settings: {\n\t\t\t\t...meta._formello_settings,\n\t\t\t\t[ key ]: val,\n\t\t\t},\n\t\t} );\n\t};\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\tsetOptions( 'enableJsValidation', val );\n\t\t\t\t} }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tsetOptions( 'debug', val );\n\t\t\t\t} }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\t\t\n\t);\n}\n","import { __, sprintf } from '@wordpress/i18n';\n\nimport { RawHTML, Fragment } from '@wordpress/element';\nimport { useEntityProp } from '@wordpress/core-data';\n\nimport {\n\tSelectControl,\n\tToggleControl,\n\tNotice,\n\tTextareaControl,\n\tBaseControl,\n\t__experimentalDivider as Divider,\n} from '@wordpress/components';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useSelect } from '@wordpress/data';\nimport { URLInput } from '@wordpress/block-editor';\n\nexport function Settings() {\n\tconst { postType, postId } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t\tpostId: select( 'core/editor' ).getCurrentPostId(),\n\t\t};\n\t}, [] );\n\n\tconst [ formello ] = useEntityProp( 'root', 'site', 'formello' );\n\tconst [ meta, setMeta ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'meta',\n\t\tpostId\n\t);\n\n\tif ( ! meta._formello_settings ) {\n\t\treturn <>;\n\t}\n\n\tconst {\n\t\tstoreSubmissions,\n\t\tcaptchaEnabled,\n\t\tcaptchaType,\n\t\thide,\n\t\tredirectUrl,\n\t\tsuccessMessage,\n\t} = meta._formello_settings;\n\n\tconst settingsUrl = addQueryArgs( 'admin.php', {\n\t\ttab: 'captcha',\n\t\tpage: 'formello-settings',\n\t} );\n\n\tconst setOptions = ( key, val ) => {\n\t\tsetMeta( {\n\t\t\t...meta,\n\t\t\t_formello_settings: {\n\t\t\t\t...meta._formello_settings,\n\t\t\t\t[ key ]: val,\n\t\t\t},\n\t\t} );\n\t};\n\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\tsetOptions( 'storeSubmissions', val );\n\t\t\t\t} }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\tsetOptions( 'captchaEnabled', val );\n\t\t\t\t} }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\t\t\t{ captchaEnabled && (\n\t\t\t\t setOptions( 'captchaType', val ) }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t{ ( '' === formello?.[ captchaType ]?.site_key ||\n\t\t\t\t'' === formello?.[ captchaType ]?.secret_key ) &&\n\t\t\t\tcaptchaEnabled && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t/* translators: Url of settings page. */\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Please be sure to add a %1$s API key on %2$s',\n\t\t\t\t\t\t\t\t\t'formello'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tcaptchaType,\n\t\t\t\t\t\t\t\t`settings page`\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) }\n\t\t\t\n\t\t\t {\n\t\t\t\t\tsetOptions( 'hide', val );\n\t\t\t\t} }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\tsetOptions( 'redirectUrl', newURL )\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ 'formello-urlinput' }\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t/>\n\t\t\t\n\t\t\t setOptions( 'successMessage', val ) }\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t/>\n\t\t\n\t);\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","module.exports = window[\"React\"];","module.exports = window[\"ReactJSXRuntime\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"editor\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"hooks\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"plugins\"];","module.exports = window[\"wp\"][\"primitives\"];","module.exports = window[\"wp\"][\"url\"];","// 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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { PluginDocumentSettingPanel } from '@wordpress/editor';\nimport { registerPlugin } from '@wordpress/plugins';\nimport { Settings } from './settings/basic';\nimport { AdvancedSettings } from './settings/advanced';\nimport { ActionsSettings } from './settings/actions';\nimport { useSelect } from '@wordpress/data';\nimport './filter';\n\nconst PluginDocumentSettingPanelExample = () => {\n\tconst { postType } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostType: select( 'core/editor' ).getCurrentPostType(),\n\t\t};\n\t} );\n\n\tif ( 'formello_form' !== postType ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\n// Register the plugin.\nregisterPlugin( 'plugin-sidebar-example', {\n\trender: PluginDocumentSettingPanelExample,\n} );\n"],"names":["useState","jsx","_jsx","InlineEdit","value","setValue","editingValue","setEditingValue","console","log","onChange","event","target","onKeyDown","key","blur","onBlur","trim","type","applyFilters","useEntityProp","select","store","blockEditorStore","allowed","getFieldsBlock","fields","inputs","getBlocksByName","textareas","selects","outputs","multichoices","fieldsId","concat","forEach","b","block","getBlock","includes","name","push","validate","names","buttons","fieldsBlock","attributes","getFieldsType","split","advanced","multiple","serializeFields","title","tag","serializeFieldsName","label","getFieldsTags","getConstraints","constraints","constraint","getFieldConstraint","field","required","minlength","maxlength","min","max","pattern","regEx","RegExp","enableMismatch","match","length","join","undefined","getMetaTags","postType","getCurrentPostType","postId","getCurrentPostId","meta","metaTags","Object","getWordpressTags","tags","getFormTags","getOtherTags","getPatternTabs","passwords","description","dates","tabs","data","BaseControl","DropdownMenu","__experimentalInputControl","InputControl","moreVertical","defaultTabs","TabContent","MergeTags","props","placeholder","help","icon","clientId","__nextHasNoMarginBottom","children","suffix","toggleProps","isSmall","size","MergeTagsMenu","SearchControl","TabPanel","MenuItem","Fragment","jsxs","_jsxs","searchInput","setSearchInput","filterAddon","element","toLowerCase","search","tab","filter","map","onClick","info","__","Card","CardHeader","CardBody","Button","withFilters","Promo","variant","href","iconPosition","PromoSettings","text","ReactComponent","MailPoet","Mailchimp","Moosend","ConvertKit","GetResponse","Brevo","MailerLite","Email","WebHook","post","FrontendPosting","login","Login","commentAuthorAvatar","Registration","icons","integrations","async","to","from","cc","bcc","replyTo","subject","message","apiUrl","url","method","additionalHeaders","headers","postarr","post_type","post_title","post_content","post_excerpt","tax_input","meta_input","addFilter","ToggleControl","__experimentalHStack","HStack","Editor","_Fragment","content","action","handleUpdate","id","settings","window","wpEditorL10n","tinymce","val","checked","VisualLabel","init","menubar","plugins","toolbar","toolbar1","toolbar2","onEditorChange","withComponentAppended","FilteredComponent","useCallback","useSelect","Modal","Icon","sprintf","ActionsModal","onRequestClose","setAction","assign","updateSettings","prop","setMeta","setActions","actions","_formello_actions","save","item","newItem","el","remove","o","shouldCloseOnClickOutside","className","mergeTags","isDestructive","confirm","validateAll","validation","Promise","reject","some","edits","getCurrentPostAttribute","newEdits","_formello_settings","newMeta","resolve","Dropdown","MenuGroup","__experimentalConfirmDialog","ConfirmDialog","__experimentalVStack","VStack","close","cog","ActionsSettings","getSettings","isPreview","__unstableIsPreviewMode","showModal","setShowModal","setConfirm","arr","popoverProps","placement","renderToggle","isOpen","onToggle","renderContent","a","i","direction","justify","spacing","onConfirm","onCancel","AdvancedSettings","enableJsValidation","debug","setOptions","RawHTML","SelectControl","Notice","TextareaControl","__experimentalDivider","Divider","addQueryArgs","URLInput","Settings","formello","storeSubmissions","captchaEnabled","captchaType","hide","redirectUrl","successMessage","settingsUrl","page","options","site_key","secret_key","status","isDismissible","newURL","messages","form","success","PluginDocumentSettingPanel","registerPlugin","PluginDocumentSettingPanelExample","isOpened","render"],"sourceRoot":""} \ No newline at end of file diff --git a/build/style-admin-rtl.css b/build/style-admin-rtl.css index 43e69efe..678cc00d 100644 --- a/build/style-admin-rtl.css +++ b/build/style-admin-rtl.css @@ -1570,3 +1570,12 @@ ul.dataviews-view-list { .formello-actions svg { width: 24px; } + +div.field-content { + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + line-clamp: 3; + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; +} diff --git a/build/style-admin.css b/build/style-admin.css index db9a512c..c3f9e448 100644 --- a/build/style-admin.css +++ b/build/style-admin.css @@ -1571,4 +1571,13 @@ ul.dataviews-view-list { width: 24px; } +div.field-content { + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + line-clamp: 3; + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; +} + /*# sourceMappingURL=style-admin.css.map*/ \ No newline at end of file diff --git a/build/style-admin.css.map b/build/style-admin.css.map index d407f2b9..dabc533a 100644 --- a/build/style-admin.css.map +++ b/build/style-admin.css.map @@ -1 +1 @@ -{"version":3,"file":"./style-admin.css","mappings":";;;AAAA;;;;;CAKC;AACD;;EAEE;AACF;;EAEE;AACF;;;;;;EAME;AACF;;;;;CAKC;AACD;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;;EAGE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;;EAGE;AACF;;;;;CAKC;AACD;;;;;EAKE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;;EAGE;AACF;;EAEE;AACF;EACE,+BAA+B;EAC/B,wCAAwC;EACxC,yCAAyC;EACzC,kDAAkD;EAClD,yCAAyC;EACzC,iDAAiD;EACjD,kCAAkC;EAClC,gCAAgC;EAChC,yCAAyC;EACzC,oDAAoD;AACtD;AACA;EACE;IACE,oCAAoC;EACtC;AACF;;AAEA;EACE,YAAY;EACZ,cAAc;EACd,sBAAsB;EACtB,2BAA2B;EAC3B,2FAA2F;EAC3F,wCAAwC;EACxC,aAAa;EACb,sBAAsB;EACtB,eAAe;EACf,gBAAgB;AAClB;;AAEA;;EAEE,sBAAsB;EACtB,kBAAkB;EAClB,cAAc;EACd,gBAAgB;EAChB,OAAO;EACP,iCAAiC;AACnC;AACA;EACE;;IAEE,uBAAuB;IACvB,oBAAoB;EACtB;AACF;;AAEA;;;EAGE,eAAe;EACf,gBAAgB;EAChB,cAAc;EACd,uBAAuB;EACvB,mBAAmB;EACnB,WAAW;AACb;AACA;;;EAGE,qBAAqB;EACrB,uBAAuB;EACvB,mBAAmB;EACnB,gBAAgB;EAChB,cAAc;EACd,YAAY;EACZ,cAAc;AAChB;AACA;;;EAGE,kCAAkC;AACpC;AACA;;;EAGE,uCAAuC;EACvC,yFAAyF;EACzF,kBAAkB;AACpB;AACA;;;EAGE,qBAAqB;EACrB,oBAAoB;EACpB,uBAAuB;EACvB,mBAAmB;EACnB,gBAAgB;EAChB,cAAc;EACd,WAAW;EACX,cAAc;AAChB;AACA;;;EAGE,kCAAkC;AACpC;;AAEA;;EAEE,eAAe;EACf,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,iCAAiC;AACnC;AACA;EACE;;IAEE,uBAAuB;IACvB,oBAAoB;EACtB;AACF;;AAEA,+FAA+F;AAC/F;EACE;;IAEE,kBAAkB;EACpB;;EAEA;;IAEE,kBAAkB;IAClB,mBAAmB;EACrB;AACF;AACA;EACE,cAAc;EACd,gBAAgB;EAChB,eAAe;EACf,yBAAyB;AAC3B;;AAEA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,UAAU;AACZ;AACA;EACE,UAAU;AACZ;;AAEA;EACE,eAAe;EACf,gBAAgB;AAClB;AACA;EACE,YAAY;EACZ,kBAAkB;AACpB;AACA;EACE,UAAU;AACZ;;AAEA;EACE,kBAAkB;AACpB;AACA;EACE,gCAAgC;EAChC,mBAAmB;AACrB;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;;AAEA;EACE,kBAAkB;EAClB,qBAAqB;AACvB;AACA;EACE,mBAAmB;EACnB,6BAA6B;EAC7B,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,mBAAmB;EACnB,cAAc;EACd,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,sBAAsB;AACxB;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,mBAAmB;EACnB,cAAc;AAChB;AACA;EACE,kCAAkC;EAClC,wDAAwD;AAC1D;AACA;EACE,wDAAwD;AAC1D;AACA;EACE,aAAa;EACb,gFAAgF;AAClF;AACA;EACE,gBAAgB;AAClB;AACA;EACE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,kBAAkB;EAClB,UAAU;EACV,QAAQ;EACR,2BAA2B;EAC3B,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,uBAAuB;EACvB,eAAe;AACjB;AACA;EACE,aAAa;AACf;AACA;EACE,mBAAmB;AACrB;AACA;EACE,aAAa;AACf;AACA;EACE,iCAAiC;AACnC;AACA;EACE,wDAAwD;AAC1D;AACA;EACE,aAAa;EACb,gFAAgF;AAClF;;AAEA;EACE,iBAAi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AAU;AACZ;;AAEA;EACE,YAAY;EACZ,UAAU;AACZ;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,mBAAmB;EACnB,+BAA+B;EAC/B,oBAAoB;EACpB,iCAAiC;AACnC;AACA;EACE;IACE,uBAAuB;IACvB,oBAAoB;EACtB;AACF;AACA;EACE,YAAY;EACZ,2BAA2B;EAC3B,kBAAkB;AACpB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,cAAc;AAChB;AACA;EACE,8DAA8D;EAC9D,uDAAuD;AACzD;AACA;EACE,WAAW;EACX,iBAAiB;EACjB,iBAAiB;EACjB,yBAAyB;EACzB,kBAAkB;EAClB,kBAAkB;AACpB;AACA;EACE,oBAAiB;KAAjB,iBAAiB;EACjB,WAAW;EACX,YAAY;AACd;AACA;EACE,WAAW;EACX,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,8CAA8C;EAC9C,kBAAkB;EAClB,oBAAoB;AACtB;AACA;EACE,kBAAkB;EAClB,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,gBAAgB;EAChB,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE,uBAAuB;EACvB,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,mBAAmB;AACrB;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;EACV,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,eAAe;AACjB;AACA;EACE,cAAc;AAChB;AACA;EACE,oBAAoB;AACtB;AACA;EACE,uBAAuB;EACvB,kBAAkB;EAClB,mBAAmB;EACnB,cAAc;EACd,gBAAgB;EAChB,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,eAAe;AACjB;;AAEA;EACE,gDAAgD;AAClD;AACA;EACE;IACE,gDAAgD;EAClD;AACF;AACA;EACE;IACE,gDAAgD;EAClD;AACF;AACA;EACE;IACE,gDAAgD;EAClD;AACF;AACA;EACE;IACE,gDAAgD;EAClD;AACF;;AAEA;;EAEE,aAAa;AACf;;AAEA;EACE,kBAAkB;EAClB,YAAY;EACZ,SAAS;EACT,UAAU;AACZ;;AAEA;;;EAGE,QAAQ;AACV;;AAEA,+FAA+F;AAC/F;EACE;IACE,kBAAkB;IAClB,mBAAmB;EACrB;AACF;AACA;EACE,qBAAqB;AACvB;;AAEA;EACE,gBAAgB;AAClB;AACA;EACE,SAAS;EACT,eAAe;EACf,6BAA6B;AAC/B;AACA;EACE,kBAAkB;EAClB,kBAAkB;AACpB;AACA;EACE,WAAW;AACb;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,QAAQ;AACV;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,QAAQ;EACR,2BAA2B;AAC7B;AACA;EACE,mBAAmB;EACnB,iBAAiB;EACjB,kBAAkB;EAClB,iCAAiC;AACnC;AACA;EACE,UAAU;EACV,gBAAgB;AAClB;AACA;EACE,yBAAyB;EACzB,iCAAiC;AACnC;AACA;EACE,kEAAkE;AACpE;AACA;EACE,kEAAkE;AACpE;AACA;EACE,cAAc;AAChB;AACA;EACE,kCAAkC;EAClC,yBAAyB;AAC3B;AACA;;;;EAIE,kCAAkC;AACpC;AACA;;EAEE,8DAA8D;EAC9D,cAAc;AAChB;AACA;;;;EAIE,kCAAkC;AACpC;AACA;EACE,sBAAsB;EACtB,kBAAkB;EAClB,WAAW;EACX,oBAAoB;AACtB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,uCAAuC;EACvC,yCAAyC;EACzC,0CAA0C;EAC1C,wCAAwC;EACxC,sFAAsF;EACtF,kBAAkB;AACpB;AACA;EACE,gBAAgB;EAChB,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,kBAAkB;EAClB,cAAc;EACd,yBAAyB;EACzB,kBAAkB;AACpB;AACA;EACE,WAAW;EACX,YAAY;EACZ,oBAAiB;KAAjB,iBAAiB;AACnB;AACA;EACE,WAAW;EACX,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,8CAA8C;EAC9C,kBAAkB;AACpB;AACA;EACE,WAAW;EACX,YAAY;EACZ,yBAAyB;AAC3B;AACA;EACE,gBAAgB;AAClB;AACA;EACE,cAAc;EACd,aAAa;EACb,SAAS;EACT,YAAY;EACZ,eAAe;EACf,eAAe;AACjB;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;AACf;AACA;EACE,gBAAgB;EAChB,iBAAiB;EACjB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,8BAA8B;AAChC;;AAEA;EACE,WAAW;EACX,cAAc;EACd,qBAAqB;EACrB,yBAAyB;EACzB,kBAAkB;EAClB,cAAc;EACd,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,cAAc;EACd,mBAAmB;EACnB,eAAe;AACjB;AACA;;EAEE,aAAa;EACb,mBAAmB;AACrB;AACA;;EAEE,iBAAiB;AACnB;AACA;;EAEE,gBAAgB;AAClB;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,QAAQ;AACV;AACA;;EAEE,kBAAkB;AACpB;AACA;;;;EAIE,iBAAiB;AACnB;AACA;;EAEE,mBAAmB;AACrB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;AACZ;AACA;;;;EAIE,UAAU;AACZ;AACA;EACE;;IAEE,UAAU;EACZ;AACF;AACA;EACE,8DAA8D;EAC9D,cAAc;AAChB;AACA;EACE,kEAAkE;AACpE;AACA;EACE,8DAA8D;AAChE;AACA;EACE,gBAAgB;EAChB,oBAAoB;EACpB,UAAU;AACZ;AACA;EACE,SAAS;AACX;AACA;EACE,sBAAsB;EACtB,gBAAgB;EAChB,mBAAmB;EACnB,kBAAkB;EAClB,eAAe;EACf,yBAAyB;EACzB,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,aAAa;AACf;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,yBAAyB;EACzB,gBAAgB;AAClB;AACA;EACE,cAAc;AAChB;AACA;EACE,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,SAAS;AACX;AACA;EACE,UAAU;AACZ;;AAEA,+FAA+F;AAC/F;EACE;;IAEE,kBAAkB;EACpB;;EAEA;;IAEE,mBAAmB;EACrB;AACF;AACA;EACE,2BAA2B;AAC7B;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;;AAEA;EACE,YAAY;EACZ,UAAU;AACZ;;AAEA;EACE,WAAW;EACX,gBAAgB;EAChB,sCAAsC;EACtC,kCAAkC;AACpC;;AAEA;EACE,UAAU;EACV,cAAc;EACd,gBAAgB;EAChB,aAAa;EACb,mBAAmB;EACnB,cAAc;EACd,iBAAiB;EACjB,qBAAqB;UACb,aAAa;AACvB;;AAEA;EACE,YAAY;EACZ,gBAAgB;EAChB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,mBAAmB;EACnB,kBAAkB;EAClB,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE,eAAe;AACjB;;AAEA;EACE,gBAAgB;EAChB,aAAa;AACf;;AAEA;EACE,mBAAmB;AACrB,C;;;;AC1pCA;AACA;EACC;AALD;;AAQA;AAIC;;;EACC;AANF;;AAUA;;EAEC;EA+IA;AArJD;AAQC;EAJD;;IAKE;EAJA;AACF;AAMC;;EACC;AAHF;AAMC;;EACC;EACA;EACA;AAHF;AAKE;;EACC;AAFH;AAMC;;EACC;EACA;EACA;EACA;EACA;AAHF;AAKE;;EACC;EACA;EACA;EACA;EACA;EACA;AAFH;AAKE;;EACC;AAFH;AAKE;;EACC;EACA;EACA;EACA;AAFH;AAIG;;EACC;AADJ;AAKE;;;;EAEC;AADH;AAGG;;;;EACC;AAEJ;AAEE;;EACC;AACH;AAGC;;EACC;EACA;EACA;EACA;EACA;AAAF;AAEE;;EACC;AACH;AAEE;;EACC;EACA;AACH;AAGC;;EACC;EACA;EACA;AAAF;AAEE;;EACC;EACA;EACA;EACA;AACH;AACG;EAND;;IAOE;IACA;EAGF;AACF;AAAE;;EACC;AAGH;AAEG;;EACC;EACA;EACA;EACA;AACJ;AACI;EAND;;IAOE;EAGH;AACF;AAAG;;EACC;EACA;EACA;AAGJ;AAAG;;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAGJ;AAAG;EAjCD;;IAkCE;EAIF;AACF;AAEC;;EACC;EACA;EACA;AACF;AACE;;EACC;EACA;EACA;EACA;AAEH;AAAG;;EACC;AAGJ;AAAG;;EACC;AAGJ;AACE;;EACC;EACA;AAEH;AAGG;EAFD;;IAGE;EACF;AACF;AAGE;;EACC;EACA;EACA;AAAH;AAKG;;EACC;EACA;AAFJ;AAKG;;EACC;AAFJ;AAME;;EACC;AAHH;AAME;;EACC;AAHH;AAME;;EACC;EACA;AAHH;AAME;;EACC;AAHH;AAME;;EACC;AAHH;AAME;;EACC;EACA;EACA;EACA;AAHH;AAKG;;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAFJ;AAKG;;EACC;EACA;AAFJ;AAKG;;EACC;EACA;EACA;EACA;AAFJ;AAKG;;EACC;AAFJ;AAME;;EAEC;EACA;EACA;EACA;AAJH;AAUC;;EACC;EACA;EACA;EACA;AAPF;;AAWA;AACA;EACC;EACA;EACA;AARD;;AAWA;EACC;EACA;EACA;EACA;EACA;AARD;;AAWA;EACC;EACA;AARD;AAUC;EACC;AARF;AAWC;EACC;EACA;EACA;EACA;AATF;;AAaA;EACC;AAVD;;AAaA;EACC;AAVD;;AAaA;AAIC;EACC;EACA;EACA;AAbF;AAkBE;EACC;AAhBH;AAoBC;EACC;AAlBF;AAuBE;EAFD;IAGE;EApBD;AACF;AAwBC;EACC;EACA;EACA;AAtBF;AAyBC;EACC;EACA;EACA;EACA;EACA;AAvBF;AA0BC;;EAEC;EACA;EACA;EACA;AAxBF;AAyBE;;EACC;AAtBH;AA0BC;EACC;EACA;AAxBF;;AA6BA;EACC;AA1BD,C","sources":["webpack://formello/./node_modules/@wordpress/dataviews/build-style/style.css","webpack://formello/./src/admin/style.scss"],"sourcesContent":["/**\n* Converts a hex value into the rgb equivalent.\n*\n* @param {string} hex - the hexadecimal value to convert\n* @return {string} comma separated rgb values\n*/\n/**\n * Colors\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * SCSS Variables.\n *\n * Please use variables from this sheet to ensure consistency across the UI.\n * Don't add to this sheet unless you're pretty sure the value will be reused in many places.\n * For example, don't add rules to this sheet that affect block visuals. It's purely for UI.\n */\n/**\n* Converts a hex value into the rgb equivalent.\n*\n* @param {string} hex - the hexadecimal value to convert\n* @return {string} comma separated rgb values\n*/\n/**\n * Colors\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Typography\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Radius scale.\n */\n/**\n * Elevation scale.\n */\n/**\n * Dimensions.\n */\n/**\n * Mobile specific styles\n */\n/**\n * Editor styles.\n */\n/**\n * Block & Editor UI.\n */\n/**\n * Block paddings.\n */\n/**\n * React Native specific.\n * These variables do not appear to be used anywhere else.\n */\n/**\n* Converts a hex value into the rgb equivalent.\n*\n* @param {string} hex - the hexadecimal value to convert\n* @return {string} comma separated rgb values\n*/\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Typography\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n --wp-admin-theme-color: #007cba;\n --wp-admin-theme-color--rgb: 0, 124, 186;\n --wp-admin-theme-color-darker-10: #006ba1;\n --wp-admin-theme-color-darker-10--rgb: 0, 107, 161;\n --wp-admin-theme-color-darker-20: #005a87;\n --wp-admin-theme-color-darker-20--rgb: 0, 90, 135;\n --wp-admin-border-width-focus: 2px;\n --wp-block-synced-color: #7a00df;\n --wp-block-synced-color--rgb: 122, 0, 223;\n --wp-bound-block-color: var(--wp-block-synced-color);\n}\n@media (min-resolution: 192dpi) {\n :root {\n --wp-admin-border-width-focus: 1.5px;\n }\n}\n\n.dataviews-wrapper {\n height: 100%;\n overflow: auto;\n box-sizing: border-box;\n scroll-padding-bottom: 64px;\n /* stylelint-disable-next-line property-no-unknown -- '@container' not globally permitted */\n container: dataviews-wrapper/inline-size;\n display: flex;\n flex-direction: column;\n font-size: 13px;\n line-height: 1.4;\n}\n\n.dataviews__view-actions,\n.dataviews-filters__container {\n box-sizing: border-box;\n padding: 16px 48px;\n flex-shrink: 0;\n position: sticky;\n left: 0;\n transition: padding ease-out 0.1s;\n}\n@media (prefers-reduced-motion: reduce) {\n .dataviews__view-actions,\n.dataviews-filters__container {\n transition-duration: 0s;\n transition-delay: 0s;\n }\n}\n\n.dataviews-view-list__primary-field,\n.dataviews-view-grid__primary-field,\n.dataviews-view-table__primary-field {\n font-size: 13px;\n font-weight: 500;\n color: #757575;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100%;\n}\n.dataviews-view-list__primary-field a,\n.dataviews-view-grid__primary-field a,\n.dataviews-view-table__primary-field a {\n text-decoration: none;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n display: block;\n flex-grow: 0;\n color: #1e1e1e;\n}\n.dataviews-view-list__primary-field a:hover,\n.dataviews-view-grid__primary-field a:hover,\n.dataviews-view-table__primary-field a:hover {\n color: var(--wp-admin-theme-color);\n}\n.dataviews-view-list__primary-field a:focus,\n.dataviews-view-grid__primary-field a:focus,\n.dataviews-view-table__primary-field a:focus {\n color: var(--wp-admin-theme-color--rgb);\n box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color, #007cba);\n border-radius: 2px;\n}\n.dataviews-view-list__primary-field button.components-button.is-link,\n.dataviews-view-grid__primary-field button.components-button.is-link,\n.dataviews-view-table__primary-field button.components-button.is-link {\n text-decoration: none;\n font-weight: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n display: block;\n width: 100%;\n color: #1e1e1e;\n}\n.dataviews-view-list__primary-field button.components-button.is-link:hover,\n.dataviews-view-grid__primary-field button.components-button.is-link:hover,\n.dataviews-view-table__primary-field button.components-button.is-link:hover {\n color: var(--wp-admin-theme-color);\n}\n\n.dataviews-no-results,\n.dataviews-loading {\n padding: 0 48px;\n flex-grow: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: padding ease-out 0.1s;\n}\n@media (prefers-reduced-motion: reduce) {\n .dataviews-no-results,\n.dataviews-loading {\n transition-duration: 0s;\n transition-delay: 0s;\n }\n}\n\n/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */\n@container (max-width: 430px) {\n .dataviews__view-actions,\n.dataviews-filters__container {\n padding: 12px 24px;\n }\n\n .dataviews-no-results,\n.dataviews-loading {\n padding-left: 24px;\n padding-right: 24px;\n }\n}\n.dataviews-bulk-actions-footer__item-count {\n color: #1e1e1e;\n font-weight: 500;\n font-size: 11px;\n text-transform: uppercase;\n}\n\n.dataviews-bulk-actions-footer__container {\n margin-right: auto;\n min-height: 32px;\n}\n\n.dataviews-filters__button {\n position: relative;\n}\n\n.dataviews-filters__container {\n padding-top: 0;\n}\n\n.dataviews-filters__reset-button.dataviews-filters__reset-button[aria-disabled=true], .dataviews-filters__reset-button.dataviews-filters__reset-button[aria-disabled=true]:hover {\n opacity: 0;\n}\n.dataviews-filters__reset-button.dataviews-filters__reset-button[aria-disabled=true]:focus {\n opacity: 1;\n}\n\n.dataviews-filters__summary-popover {\n font-size: 13px;\n line-height: 1.4;\n}\n.dataviews-filters__summary-popover .components-popover__content {\n width: 230px;\n border-radius: 4px;\n}\n.dataviews-filters__summary-popover.components-dropdown__content .components-popover__content {\n padding: 0;\n}\n\n.dataviews-filters__summary-operators-container {\n padding: 8px 8px 0;\n}\n.dataviews-filters__summary-operators-container:has(+ .dataviews-filters__search-widget-listbox) {\n border-bottom: 1px solid #e0e0e0;\n padding-bottom: 8px;\n}\n.dataviews-filters__summary-operators-container:empty {\n display: none;\n}\n.dataviews-filters__summary-operators-container .dataviews-filters__summary-operators-filter-name {\n color: #757575;\n}\n\n.dataviews-filters__summary-chip-container {\n position: relative;\n white-space: pre-wrap;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip {\n border-radius: 16px;\n border: 1px solid transparent;\n cursor: pointer;\n padding: 4px 12px;\n min-height: 32px;\n background: #f0f0f0;\n color: #2f2f2f;\n position: relative;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip.has-reset {\n padding-inline-end: 28px;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip:hover, .dataviews-filters__summary-chip-container .dataviews-filters__summary-chip:focus-visible, .dataviews-filters__summary-chip-container .dataviews-filters__summary-chip[aria-expanded=true] {\n background: #e0e0e0;\n color: #1e1e1e;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip.has-values {\n color: var(--wp-admin-theme-color);\n background: rgba(var(--wp-admin-theme-color--rgb), 0.04);\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip.has-values:hover, .dataviews-filters__summary-chip-container .dataviews-filters__summary-chip.has-values[aria-expanded=true] {\n background: rgba(var(--wp-admin-theme-color--rgb), 0.12);\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip:focus-visible {\n outline: none;\n box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip .dataviews-filters-__summary-filter-text-name {\n font-weight: 500;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n border: 0;\n padding: 0;\n position: absolute;\n right: 4px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n cursor: pointer;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove svg {\n fill: #757575;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove:hover, .dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove:focus {\n background: #e0e0e0;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove:hover svg, .dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove:focus svg {\n fill: #1e1e1e;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove.has-values svg {\n fill: var(--wp-admin-theme-color);\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove.has-values:hover {\n background: rgba(var(--wp-admin-theme-color--rgb), 0.08);\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove:focus-visible {\n outline: none;\n box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);\n}\n\n.dataviews-filters__search-widget-filter-combobox-list {\n max-height: 184px;\n padding: 4px;\n overflow: auto;\n border-top: 1px solid #e0e0e0;\n}\n.dataviews-filters__search-widget-filter-combobox-list .dataviews-filters__search-widget-filter-combobox-item-value [data-user-value] {\n font-weight: 600;\n}\n\n.dataviews-filters__search-widget-listbox {\n padding: 4px;\n overflow: auto;\n}\n\n.dataviews-filters__search-widget-listitem {\n display: flex;\n align-items: center;\n gap: 8px;\n border-radius: 2px;\n box-sizing: border-box;\n padding: 8px 12px;\n cursor: default;\n margin-block-end: 2px;\n}\n.dataviews-filters__search-widget-listitem:last-child {\n margin-block-end: 0;\n}\n.dataviews-filters__search-widget-listitem:hover, .dataviews-filters__search-widget-listitem[data-active-item], .dataviews-filters__search-widget-listitem:focus {\n background-color: var(--wp-admin-theme-color);\n color: #fff;\n}\n.dataviews-filters__search-widget-listitem:hover .dataviews-filters__search-widget-listitem-check, .dataviews-filters__search-widget-listitem[data-active-item] .dataviews-filters__search-widget-listitem-check, .dataviews-filters__search-widget-listitem:focus .dataviews-filters__search-widget-listitem-check {\n fill: #fff;\n}\n.dataviews-filters__search-widget-listitem:hover .dataviews-filters__search-widget-listitem-description, .dataviews-filters__search-widget-listitem[data-active-item] .dataviews-filters__search-widget-listitem-description, .dataviews-filters__search-widget-listitem:focus .dataviews-filters__search-widget-listitem-description {\n color: #fff;\n}\n.dataviews-filters__search-widget-listitem .dataviews-filters__search-widget-listitem-check {\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n}\n.dataviews-filters__search-widget-listitem .dataviews-filters__search-widget-listitem-description {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 12px;\n line-height: 16px;\n color: #757575;\n}\n\n.dataviews-filters__search-widget-filter-combobox__wrapper {\n position: relative;\n padding: 8px;\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n padding: 6px 8px;\n box-shadow: 0 0 0 transparent;\n transition: box-shadow 0.1s linear;\n border-radius: 2px;\n border: 1px solid #949494;\n /* Fonts smaller than 16px causes mobile safari to zoom. */\n font-size: 16px;\n /* Override core line-height. To be reviewed. */\n line-height: normal;\n display: block;\n padding: 0 32px 0 8px;\n background: #f0f0f0;\n border: none;\n width: 100%;\n height: 32px;\n margin-left: 0;\n margin-right: 0;\n /* Fonts smaller than 16px causes mobile safari to zoom. */\n font-size: 16px;\n}\n@media (prefers-reduced-motion: reduce) {\n .dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input {\n transition-duration: 0s;\n transition-delay: 0s;\n }\n}\n@media (min-width: 600px) {\n .dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input {\n font-size: 13px;\n /* Override core line-height. To be reviewed. */\n line-height: normal;\n }\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input:focus {\n border-color: var(--wp-admin-theme-color);\n box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n outline: 2px solid transparent;\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-webkit-input-placeholder {\n color: rgba(30, 30, 30, 0.62);\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-moz-placeholder {\n opacity: 1;\n color: rgba(30, 30, 30, 0.62);\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input:-ms-input-placeholder {\n color: rgba(30, 30, 30, 0.62);\n}\n@media (min-width: 600px) {\n .dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input {\n font-size: 13px;\n }\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input:focus {\n background: #fff;\n box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::placeholder {\n color: #757575;\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-webkit-search-decoration, .dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-webkit-search-cancel-button, .dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-webkit-search-results-button, .dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-webkit-search-results-decoration {\n -webkit-appearance: none;\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__icon {\n position: absolute;\n right: 12px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n}\n\n.dataviews-filters__container-visibility-toggle {\n position: relative;\n flex-shrink: 0;\n}\n\n.dataviews-filters-toggle__count {\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n background: var(--wp-admin-theme-color, #3858e9);\n height: 16px;\n min-width: 16px;\n line-height: 16px;\n padding: 0 4px;\n text-align: center;\n border-radius: 8px;\n font-size: 11px;\n outline: var(--wp-admin-border-width-focus) solid #fff;\n color: #fff;\n box-sizing: border-box;\n}\n\n.dataviews-search {\n width: -moz-fit-content;\n width: fit-content;\n}\n\n.dataviews-footer {\n position: sticky;\n bottom: 0;\n left: 0;\n background-color: #fff;\n padding: 12px 48px;\n border-top: 1px solid #f0f0f0;\n flex-shrink: 0;\n transition: padding ease-out 0.1s;\n z-index: 2;\n}\n@media (prefers-reduced-motion: reduce) {\n .dataviews-footer {\n transition-duration: 0s;\n transition-delay: 0s;\n }\n}\n\n/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */\n@container (max-width: 430px) {\n .dataviews-footer {\n padding: 12px 24px;\n }\n}\n/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */\n@container (max-width: 560px) {\n .dataviews-footer {\n flex-direction: column !important;\n }\n .dataviews-footer .dataviews-bulk-actions-footer__container {\n width: 100%;\n }\n .dataviews-footer .dataviews-bulk-actions-footer__item-count {\n flex-grow: 1;\n }\n .dataviews-footer .dataviews-pagination {\n width: 100%;\n justify-content: space-between;\n }\n}\n.dataviews-pagination__page-select {\n font-size: 11px;\n font-weight: 500;\n text-transform: uppercase;\n}\n@media (min-width: 600px) {\n .dataviews-pagination__page-select .components-select-control__input {\n font-size: 11px !important;\n font-weight: 500;\n }\n}\n\n.dataviews-action-modal {\n z-index: 1000001;\n}\n\n.dataviews-selection-checkbox {\n --checkbox-input-size: 24px;\n line-height: 0;\n flex-shrink: 0;\n}\n@media (min-width: 600px) {\n .dataviews-selection-checkbox {\n --checkbox-input-size: 16px;\n }\n}\n.dataviews-selection-checkbox .components-checkbox-control__input-container {\n margin: 0;\n}\n\n.dataviews-view-config {\n width: 320px;\n /* stylelint-disable-next-line property-no-unknown -- the linter needs to be updated to accepted the container-type property */\n container-type: inline-size;\n font-size: 13px;\n line-height: 1.4;\n}\n\n.dataviews-view-config__sort-direction .components-toggle-group-control-option-base {\n text-transform: uppercase;\n}\n\n.dataviews-settings-section__title.dataviews-settings-section__title {\n line-height: 24px;\n font-size: 15px;\n}\n\n.dataviews-settings-section__sidebar {\n grid-column: span 4;\n}\n\n.dataviews-settings-section__content,\n.dataviews-settings-section__content > * {\n grid-column: span 8;\n}\n\n.dataviews-settings-section__content .is-divided-in-two {\n display: contents;\n}\n.dataviews-settings-section__content .is-divided-in-two > * {\n grid-column: span 4;\n}\n\n.dataviews-settings-section:has(.dataviews-settings-section__content:empty) {\n display: none;\n}\n\n/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */\n@container (max-width: 500px) {\n .dataviews-settings-section.dataviews-settings-section {\n grid-template-columns: repeat(2, 1fr);\n }\n .dataviews-settings-section.dataviews-settings-section .dataviews-settings-section__sidebar {\n grid-column: span 2;\n }\n .dataviews-settings-section.dataviews-settings-section .dataviews-settings-section__content {\n grid-column: span 2;\n }\n}\n.dataviews-field-control__field {\n height: 32px;\n}\n\n.dataviews-field-control__actions {\n position: absolute;\n top: -9999em;\n}\n\n.dataviews-field-control__actions.dataviews-field-control__actions {\n gap: 4px;\n}\n\n.dataviews-field-control__field:hover .dataviews-field-control__actions,\n.dataviews-field-control__field:focus-within .dataviews-field-control__actions {\n position: unset;\n top: unset;\n}\n\n.dataforms-layouts-panel__field-dropdown .dataforms-combined-edit {\n border: none;\n padding: 0;\n}\n\n.dataforms-combined-edit__field {\n flex: 1 1 auto;\n}\n\n.dataviews-view-grid {\n margin-bottom: auto;\n grid-template-rows: max-content;\n padding: 0 48px 24px;\n transition: padding ease-out 0.1s;\n}\n@media (prefers-reduced-motion: reduce) {\n .dataviews-view-grid {\n transition-duration: 0s;\n transition-delay: 0s;\n }\n}\n.dataviews-view-grid .dataviews-view-grid__card {\n height: 100%;\n justify-content: flex-start;\n position: relative;\n}\n.dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__title-actions {\n padding: 8px 0 4px;\n}\n.dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__primary-field {\n min-height: 32px;\n}\n.dataviews-view-grid .dataviews-view-grid__card.is-selected .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-value {\n color: #1e1e1e;\n}\n.dataviews-view-grid .dataviews-view-grid__card.is-selected .dataviews-view-grid__media::after {\n background-color: rgba(var(--wp-admin-theme-color--rgb), 0.08);\n box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color);\n}\n.dataviews-view-grid .dataviews-view-grid__media {\n width: 100%;\n min-height: 200px;\n aspect-ratio: 1/1;\n background-color: #f0f0f0;\n border-radius: 4px;\n position: relative;\n}\n.dataviews-view-grid .dataviews-view-grid__media img {\n object-fit: cover;\n width: 100%;\n height: 100%;\n}\n.dataviews-view-grid .dataviews-view-grid__media::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n pointer-events: none;\n}\n.dataviews-view-grid .dataviews-view-grid__fields {\n position: relative;\n font-size: 12px;\n line-height: 16px;\n}\n.dataviews-view-grid .dataviews-view-grid__fields:not(:empty) {\n padding: 0 0 12px;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field-value:not(:empty) {\n min-height: 24px;\n line-height: 20px;\n padding-top: 2px;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field {\n align-items: flex-start;\n min-height: 24px;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(:has(.dataviews-view-grid__field-value:not(:empty))) {\n display: none;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) {\n align-items: center;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) .dataviews-view-grid__field-name {\n width: 35%;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) .dataviews-view-grid__field-value {\n width: 65%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field.is-column + .is-row {\n margin-top: 4px;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-name {\n color: #757575;\n}\n.dataviews-view-grid .dataviews-view-grid__badge-fields:not(:empty) {\n padding-bottom: 12px;\n}\n.dataviews-view-grid .dataviews-view-grid__badge-fields .dataviews-view-grid__field-value {\n width: -moz-fit-content;\n width: fit-content;\n background: #f0f0f0;\n padding: 0 8px;\n min-height: 24px;\n border-radius: 2px;\n display: flex;\n align-items: center;\n font-size: 12px;\n}\n\n.dataviews-view-grid.dataviews-view-grid {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n@media (min-width: 480px) {\n .dataviews-view-grid.dataviews-view-grid {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n@media (min-width: 1080px) {\n .dataviews-view-grid.dataviews-view-grid {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n@media (min-width: 1440px) {\n .dataviews-view-grid.dataviews-view-grid {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n}\n@media (min-width: 1920px) {\n .dataviews-view-grid.dataviews-view-grid {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n }\n}\n\n.dataviews-view-grid__field-value:empty,\n.dataviews-view-grid__field:empty {\n display: none;\n}\n\n.dataviews-view-grid__card .dataviews-selection-checkbox {\n position: absolute;\n top: -9999em;\n left: 8px;\n z-index: 1;\n}\n\n.dataviews-view-grid__card:hover .dataviews-selection-checkbox,\n.dataviews-view-grid__card:focus-within .dataviews-selection-checkbox,\n.dataviews-view-grid__card.is-selected .dataviews-selection-checkbox {\n top: 8px;\n}\n\n/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */\n@container (max-width: 430px) {\n .dataviews-view-grid {\n padding-left: 24px;\n padding-right: 24px;\n }\n}\nul.dataviews-view-list {\n list-style-type: none;\n}\n\n.dataviews-view-list {\n margin: 0 0 auto;\n}\n.dataviews-view-list li {\n margin: 0;\n cursor: pointer;\n border-top: 1px solid #f0f0f0;\n}\n.dataviews-view-list li .dataviews-view-list__item-wrapper {\n position: relative;\n border-radius: 4px;\n}\n.dataviews-view-list li .dataviews-view-list__item-wrapper > * {\n width: 100%;\n}\n.dataviews-view-list li .dataviews-view-list__item-actions {\n position: absolute;\n top: 16px;\n right: 0;\n}\n.dataviews-view-list li .dataviews-view-list__item-actions > div {\n height: 24px;\n}\n.dataviews-view-list li .dataviews-view-list__item-actions .components-button {\n opacity: 0;\n}\n.dataviews-view-list li:has(.dataviews-view-list__fields:empty) .dataviews-view-list__item-actions {\n top: 50%;\n transform: translateY(-50%);\n}\n.dataviews-view-list li.is-selected .dataviews-view-list__item-actions, .dataviews-view-list li.is-hovered .dataviews-view-list__item-actions, .dataviews-view-list li:focus-within .dataviews-view-list__item-actions {\n background: #f8f8f8;\n padding-left: 8px;\n margin-right: 24px;\n box-shadow: -12px 0 8px 0 #f8f8f8;\n}\n.dataviews-view-list li.is-selected .dataviews-view-list__item-actions .components-button, .dataviews-view-list li.is-hovered .dataviews-view-list__item-actions .components-button, .dataviews-view-list li:focus-within .dataviews-view-list__item-actions .components-button {\n opacity: 1;\n position: static;\n}\n.dataviews-view-list li.is-selected .dataviews-view-list__item-actions {\n background-color: #f7f8ff;\n box-shadow: -12px 0 8px 0 #f7f8ff;\n}\n.dataviews-view-list li.is-selected.is-selected {\n border-top: 1px solid rgba(var(--wp-admin-theme-color--rgb), 0.12);\n}\n.dataviews-view-list li.is-selected.is-selected + li {\n border-top: 1px solid rgba(var(--wp-admin-theme-color--rgb), 0.12);\n}\n.dataviews-view-list li:not(.is-selected) .dataviews-view-list__primary-field {\n color: #1e1e1e;\n}\n.dataviews-view-list li:not(.is-selected):hover, .dataviews-view-list li:not(.is-selected).is-hovered, .dataviews-view-list li:not(.is-selected):focus-within {\n color: var(--wp-admin-theme-color);\n background-color: #f8f8f8;\n}\n.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__primary-field,\n.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields, .dataviews-view-list li:not(.is-selected).is-hovered .dataviews-view-list__primary-field,\n.dataviews-view-list li:not(.is-selected).is-hovered .dataviews-view-list__fields, .dataviews-view-list li:not(.is-selected):focus-within .dataviews-view-list__primary-field,\n.dataviews-view-list li:not(.is-selected):focus-within .dataviews-view-list__fields {\n color: var(--wp-admin-theme-color);\n}\n.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper,\n.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper {\n background-color: rgba(var(--wp-admin-theme-color--rgb), 0.04);\n color: #1e1e1e;\n}\n.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .dataviews-view-list__primary-field,\n.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .dataviews-view-list__fields,\n.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .dataviews-view-list__primary-field,\n.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .dataviews-view-list__fields {\n color: var(--wp-admin-theme-color);\n}\n.dataviews-view-list .dataviews-view-list__item {\n box-sizing: border-box;\n padding: 16px 24px;\n width: 100%;\n scroll-margin: 8px 0;\n}\n.dataviews-view-list .dataviews-view-list__item:focus-visible::before {\n position: absolute;\n content: \"\";\n top: var(--wp-admin-border-width-focus);\n right: var(--wp-admin-border-width-focus);\n bottom: var(--wp-admin-border-width-focus);\n left: var(--wp-admin-border-width-focus);\n box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);\n border-radius: 2px;\n}\n.dataviews-view-list .dataviews-view-list__item .dataviews-view-list__primary-field {\n min-height: 24px;\n line-height: 24px;\n overflow: hidden;\n}\n.dataviews-view-list .dataviews-view-list__media-wrapper {\n width: 52px;\n height: 52px;\n overflow: hidden;\n position: relative;\n flex-shrink: 0;\n background-color: #f0f0f0;\n border-radius: 4px;\n}\n.dataviews-view-list .dataviews-view-list__media-wrapper img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.dataviews-view-list .dataviews-view-list__media-wrapper::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n}\n.dataviews-view-list .dataviews-view-list__media-placeholder {\n width: 52px;\n height: 52px;\n background-color: #e0e0e0;\n}\n.dataviews-view-list .dataviews-view-list__field-wrapper {\n min-height: 52px;\n}\n.dataviews-view-list .dataviews-view-list__fields {\n color: #757575;\n display: flex;\n gap: 12px;\n row-gap: 4px;\n flex-wrap: wrap;\n font-size: 12px;\n}\n.dataviews-view-list .dataviews-view-list__fields:empty {\n display: none;\n}\n.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:has(.dataviews-view-list__field-value:empty) {\n display: none;\n}\n.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field-value {\n min-height: 24px;\n line-height: 20px;\n display: flex;\n align-items: center;\n}\n.dataviews-view-list + .dataviews-pagination {\n justify-content: space-between;\n}\n\n.dataviews-view-table {\n width: 100%;\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n position: relative;\n color: #757575;\n margin-bottom: auto;\n}\n.dataviews-view-table th {\n text-align: left;\n color: #1e1e1e;\n font-weight: normal;\n font-size: 13px;\n}\n.dataviews-view-table td,\n.dataviews-view-table th {\n padding: 12px;\n white-space: nowrap;\n}\n.dataviews-view-table td.dataviews-view-table__actions-column,\n.dataviews-view-table th.dataviews-view-table__actions-column {\n text-align: right;\n}\n.dataviews-view-table td.dataviews-view-table__checkbox-column,\n.dataviews-view-table th.dataviews-view-table__checkbox-column {\n padding-right: 0;\n}\n.dataviews-view-table tr {\n border-top: 1px solid #f0f0f0;\n}\n.dataviews-view-table tr .dataviews-view-table-header-button {\n gap: 4px;\n}\n.dataviews-view-table tr td:first-child,\n.dataviews-view-table tr th:first-child {\n padding-left: 48px;\n}\n.dataviews-view-table tr td:first-child .dataviews-view-table-header-button,\n.dataviews-view-table tr td:first-child .dataviews-view-table-header,\n.dataviews-view-table tr th:first-child .dataviews-view-table-header-button,\n.dataviews-view-table tr th:first-child .dataviews-view-table-header {\n margin-left: -8px;\n}\n.dataviews-view-table tr td:last-child,\n.dataviews-view-table tr th:last-child {\n padding-right: 48px;\n}\n.dataviews-view-table tr:last-child {\n border-bottom: 0;\n}\n.dataviews-view-table tr.is-hovered {\n background-color: #f8f8f8;\n}\n.dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input {\n opacity: 0;\n}\n.dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input:checked, .dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input:indeterminate, .dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input:focus {\n opacity: 1;\n}\n.dataviews-view-table tr .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) {\n opacity: 0;\n}\n.dataviews-view-table tr:focus-within .components-checkbox-control__input,\n.dataviews-view-table tr:focus-within .dataviews-item-actions .components-button:not(.dataviews-all-actions-button), .dataviews-view-table tr.is-hovered .components-checkbox-control__input,\n.dataviews-view-table tr.is-hovered .dataviews-item-actions .components-button:not(.dataviews-all-actions-button), .dataviews-view-table tr:hover .components-checkbox-control__input,\n.dataviews-view-table tr:hover .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) {\n opacity: 1;\n}\n@media (hover: none) {\n .dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input,\n.dataviews-view-table tr .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) {\n opacity: 1;\n }\n}\n.dataviews-view-table tr.is-selected {\n background-color: rgba(var(--wp-admin-theme-color--rgb), 0.04);\n color: #757575;\n}\n.dataviews-view-table tr.is-selected, .dataviews-view-table tr.is-selected + tr {\n border-top: 1px solid rgba(var(--wp-admin-theme-color--rgb), 0.12);\n}\n.dataviews-view-table tr.is-selected:hover {\n background-color: rgba(var(--wp-admin-theme-color--rgb), 0.08);\n}\n.dataviews-view-table thead {\n position: sticky;\n inset-block-start: 0;\n z-index: 1;\n}\n.dataviews-view-table thead tr {\n border: 0;\n}\n.dataviews-view-table thead th {\n background-color: #fff;\n padding-top: 8px;\n padding-bottom: 8px;\n padding-left: 12px;\n font-size: 11px;\n text-transform: uppercase;\n font-weight: 500;\n}\n.dataviews-view-table thead th:has(.dataviews-view-table-header-button):not(:first-child) {\n padding-left: 4px;\n}\n.dataviews-view-table tbody td {\n vertical-align: top;\n}\n.dataviews-view-table tbody .dataviews-view-table__cell-content-wrapper {\n min-height: 32px;\n display: flex;\n align-items: center;\n}\n.dataviews-view-table tbody .components-v-stack > .dataviews-view-table__cell-content-wrapper:not(:first-child) {\n min-height: 0;\n}\n.dataviews-view-table .dataviews-view-table-header-button {\n padding: 4px 8px;\n font-size: 11px;\n text-transform: uppercase;\n font-weight: 500;\n}\n.dataviews-view-table .dataviews-view-table-header-button:not(:hover) {\n color: #1e1e1e;\n}\n.dataviews-view-table .dataviews-view-table-header-button span {\n speak: none;\n}\n.dataviews-view-table .dataviews-view-table-header-button span:empty {\n display: none;\n}\n.dataviews-view-table .dataviews-view-table-header {\n padding-left: 4px;\n}\n.dataviews-view-table .dataviews-view-table__actions-column {\n width: 1%;\n}\n.dataviews-view-table:has(tr.is-selected) .components-checkbox-control__input {\n opacity: 1;\n}\n\n/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */\n@container (max-width: 430px) {\n .dataviews-view-table tr td:first-child,\n.dataviews-view-table tr th:first-child {\n padding-left: 24px;\n }\n\n .dataviews-view-table tr td:last-child,\n.dataviews-view-table tr th:last-child {\n padding-right: 24px;\n }\n}\n.dataviews-view-table-selection-checkbox {\n --checkbox-input-size: 24px;\n}\n@media (min-width: 600px) {\n .dataviews-view-table-selection-checkbox {\n --checkbox-input-size: 16px;\n }\n}\n\n.dataviews-controls__datetime {\n border: none;\n padding: 0;\n}\n\n.dataforms-layouts-panel__field {\n width: 100%;\n min-height: 32px;\n justify-content: flex-start !important;\n align-items: flex-start !important;\n}\n\n.dataforms-layouts-panel__field-label {\n width: 38%;\n flex-shrink: 0;\n min-height: 32px;\n display: flex;\n align-items: center;\n padding: 6px 0;\n line-height: 20px;\n -webkit-hyphens: auto;\n hyphens: auto;\n}\n\n.dataforms-layouts-panel__field-control {\n flex-grow: 1;\n min-height: 32px;\n display: flex;\n align-items: center;\n}\n.dataforms-layouts-panel__field-control .components-button {\n max-width: 100%;\n text-align: left;\n white-space: normal;\n text-wrap: balance;\n text-wrap: pretty;\n min-height: 32px;\n}\n.dataforms-layouts-panel__field-control .components-dropdown {\n max-width: 100%;\n}\n\n.dataforms-layouts-panel__field-dropdown .components-popover__content {\n min-width: 320px;\n padding: 16px;\n}\n\n.dataforms-layouts-panel__dropdown-header {\n margin-bottom: 16px;\n}","@import '@wordpress/dataviews/build-style/style.css';\r\n\r\n// Media query variables\r\n$desktop: 1024px;\r\n$tablet: 782px;\r\n$mobile: 426px;\r\n\r\n/* To fix rendering quirk in Chrome */\r\n#wpwrap {\r\n\tbackground: #f1f1f1;\r\n}\r\n\r\n/* Hide WP notices on the settings and addons page */\r\n.formello_form_page_formello-addons,\r\n.formello_form_page_formello-settings,\r\n.toplevel_page_formello-settings {\r\n\t.notice {\r\n\t\tdisplay: none;\r\n\t}\r\n}\r\n\r\n#formello-plugin-settings,\r\n#formello-admin {\r\n\tmargin-left: -20px;\r\n\r\n\t@media (max-width: $tablet ) {\r\n\t\tmargin-left: -10px;\r\n\t}\r\n\r\n\t.formello-content {\r\n\t\tpadding: 20px;\r\n\t}\r\n\r\n\t.dataviews-wrapper {\r\n\t\tbox-sizing: border-box;\r\n\t\tbackground-color: #fff;\r\n\t\tpadding: 20px;\r\n\r\n\t\t>div {\r\n\t\t\tpadding-bottom: 1em;\r\n\t\t}\r\n\t}\r\n\r\n\t.dataviews-list-view {\r\n\t\twidth: 100%;\r\n\t\ttext-indent: 0;\r\n\t\tborder-color: inherit;\r\n\t\tborder-collapse: collapse;\r\n\t\tposition: relative;\r\n\r\n\t\t.badge {\r\n\t\t\tbackground-color: #337ab7;\r\n\t\t\tcolor: white;\r\n\t\t\tpadding: 2px .5em;\r\n\t\t\ttext-align: center;\r\n\t\t\tborder-radius: 20%;\r\n\t\t\tmargin: 0 1em;\r\n\t\t}\r\n\r\n\t\ta {\r\n\t\t\ttext-decoration: none;\r\n\t\t}\r\n\r\n\t\tth {\r\n\t\t\ttext-align: left;\r\n\t\t\tfont-weight: normal;\r\n\t\t\tpadding: 0 20px;\r\n\t\t\tcolor: #dedede;\r\n\r\n\t\t\tbutton {\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttd,\r\n\t\tth {\r\n\t\t\tpadding: 15px;\r\n\r\n\t\t\t&:last-child {\r\n\t\t\t\ttext-align: right;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttr {\r\n\t\t\tborder-bottom: 1px solid #dedede;\r\n\t\t}\r\n\t}\r\n\r\n\t.loading-settings {\r\n\t\ttext-align: center;\r\n\t\tmargin: 35vh 30px;\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\tjustify-content: center;\r\n\r\n\t\t.components-spinner {\r\n\t\t\tfloat: none;\r\n\t\t}\r\n\r\n\t\t.description {\r\n\t\t\tcolor: #777;\r\n\t\t\tmargin-top: 4px;\r\n\t\t}\r\n\t}\r\n\r\n\t.masthead {\r\n\t\tbackground-color: #fff;\r\n\t\tpadding: 15px 20px;\r\n\t\tbox-shadow: rgba(0, 0, 0, 0.1) 0px 0px 0px 1px;\r\n\r\n\t\t.inner-container {\r\n\t\t\tmargin: 0 auto;\r\n\t\t\tmax-width: 1024px;\r\n\t\t\tdisplay: flex;\r\n\t\t\tjustify-content: space-between;\r\n\r\n\t\t\t@media (max-width: $mobile ) {\r\n\t\t\t\tflex-direction: column;\r\n\t\t\t\tmargin: 5px auto;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.full-width {\r\n\t\t\tmax-width: 100%;\r\n\t\t}\r\n\r\n\t\t.masthead__branding {\r\n\r\n\t\t\th1 {\r\n\t\t\t\tcolor: #222;\r\n\t\t\t\tfont-size: 20px;\r\n\t\t\t\tfont-weight: 400;\r\n\t\t\t\tmargin: 0;\r\n\r\n\t\t\t\t@media (max-width: $mobile ) {\r\n\t\t\t\t\tjustify-content: center;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tsvg {\r\n\t\t\t\tfill: #222;\r\n\t\t\t\theight: 40px;\r\n\t\t\t\twidth: 40px;\r\n\t\t\t}\r\n\r\n\t\t\t.pro-badge {\r\n\t\t\t\tcolor: #fff;\r\n\t\t\t\ttext-transform: uppercase;\r\n\t\t\t\tfont-size: 8px;\r\n\t\t\t\theight: 8px;\r\n\t\t\t\tborder-radius: 4px;\r\n\t\t\t\tpadding: 4px 6px;\r\n\t\t\t\tline-height: 1;\r\n\t\t\t\tfont-weight: 800;\r\n\t\t\t\tletter-spacing: 1px;\r\n\t\t\t\tmargin-left: 10px;\r\n\t\t\t\tbackground: var(--wp-admin-theme-color);\r\n\t\t\t}\r\n\r\n\t\t\t@media (max-width: $mobile ) {\r\n\t\t\t\ttext-align: center;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/* General styles for all setting tabs */\r\n\t.setting-tabs {\r\n\t\tmax-width: 1024px;\r\n\t\tmargin: auto;\r\n\t\tmargin-bottom: 1rem;\r\n\r\n\t\t.formello-message {\r\n\t\t\topacity: 0;\r\n\t\t\ttransition: all 500ms ease-in-out;\r\n\t\t\tcolor: #067622;\r\n\t\t\tpointer-events: none;\r\n\r\n\t\t\t&.show {\r\n\t\t\t\topacity: 1;\r\n\t\t\t}\r\n\r\n\t\t\t&.error {\r\n\t\t\t\tcolor: #b52727;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.components-tab-panel__tabs {\r\n\t\t\tmargin-bottom: 1em;\r\n\t\t\toverflow-x: auto;\r\n\t\t}\r\n\r\n\t\t.components-grid {\r\n\r\n\t\t\t@media (max-width: $tablet ) {\r\n\t\t\t\tgrid-template-columns: 4fr;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t.components-grid>div:not(.components-card) {\r\n\t\t\tdisplay: flex;\r\n\t\t\tgap: 1em;\r\n\t\t\tflex-direction: column;\r\n\t\t}\r\n\r\n\t\t.components-card.addon {\r\n\r\n\t\t\t>div {\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\tflex-direction: column;\r\n\t\t\t}\r\n\r\n\t\t\t.components-card__body {\r\n\t\t\t\tflex-grow: 1;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.components-card hr {\r\n\t\t\tmargin: 1em 0;\r\n\t\t}\r\n\r\n\t\t.components-card__header h2 {\r\n\t\t\tmargin: 0;\r\n\t\t}\r\n\r\n\t\t.components-card__header svg {\r\n\t\t\theight: 30px;\r\n\t\t\twidth: 30px;\r\n\t\t}\r\n\r\n\t\t.components-card__media {\r\n\t\t\twidth: 50px;\r\n\t\t}\r\n\r\n\t\t.components-notice {\r\n\t\t\tmargin: 1em 0;\r\n\t\t}\r\n\r\n\t\t.ads-container__reviews {\r\n\t\t\tbackground-color: var(--wp-admin-theme-color);\r\n\t\t\tbox-shadow: 0 0 0 1px var(--wp-admin-theme-color-darker-20), 0 1px 1px 1px rgb(0 0 0 / 4%);\r\n\t\t\tcolor: #fff;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\t&::before {\r\n\t\t\t\tcontent: \"\";\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop: 0;\r\n\t\t\t\tright: 0;\r\n\t\t\t\tbottom: 0;\r\n\t\t\t\tleft: 0;\r\n\t\t\t\tz-index: 0;\r\n\t\t\t\tbackground-color: var(--wp-admin-theme-color-darker-20);\r\n\t\t\t\tmask-image: url(\"data:image/svg+xml;utf8,\");\r\n\t\t\t\t-webkit-mask-image: url(\"data:image/svg+xml;utf8,\");\r\n\t\t\t\tmask-size: 200px;\r\n\t\t\t\t-webkit-mask-size: 200px;\r\n\t\t\t\tmask-repeat: no-repeat;\r\n\t\t\t\t-webkit-mask-repeat: no-repeat;\r\n\t\t\t\tmask-position: -100px;\r\n\t\t\t\t-webkit-mask-position: -100px;\r\n\t\t\t}\r\n\r\n\t\t\t>* {\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tz-index: 1;\r\n\t\t\t}\r\n\r\n\t\t\ta {\r\n\t\t\t\tcolor: #fff;\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\tmargin-top: 10px;\r\n\t\t\t\tfont-size: 1.1em;\r\n\t\t\t}\r\n\r\n\t\t\th2 {\r\n\t\t\t\tcolor: #fff;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.setting-controls__save-settings {\r\n\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items: center;\r\n\t\t\tgap: 1em;\r\n\t\t\tmargin-bottom: 1em;\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t.components-snackbar-list {\r\n\t\tbottom: 40px;\r\n\t\tpadding-left: 16px;\r\n\t\tpadding-right: 16px;\r\n\t\tposition: fixed;\r\n\t}\r\n}\r\n\r\n/* -------------- BADGES ------------------ */\r\n.column-actions {\r\n\ttext-align: left;\r\n\twidth: 150px !important;\r\n\toverflow: hidden;\r\n}\r\n\r\n.formello-badge {\r\n\tbackground-color: #337ab7;\r\n\tpadding: 0 5px;\r\n\tmargin-left: 10px;\r\n\tcolor: white;\r\n\tborder-radius: 20%;\r\n}\r\n\r\n.formello-icons-group {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\r\n\tdiv {\r\n\t\tdisplay: flex;\r\n\t}\r\n\r\n\tspan {\r\n\t\twidth: 1em;\r\n\t\theight: 1em;\r\n\t\tfont-size: 1em;\r\n\t\tmargin-left: 4px;\r\n\t}\r\n}\r\n\r\n.formello-star {\r\n\tcolor: #e27730;\r\n}\r\n\r\n.formello-new {\r\n\tcolor: #337ab7;\r\n}\r\n\r\n/* -------------- SUBMISSION TABLE ------------------ */\r\n\r\n.formello-submission {\r\n\r\n\t.masthead {\r\n\t\tdisplay: flex;\r\n\t\tgap: 1em;\r\n\t\talign-items: baseline;\r\n\t}\r\n\r\n\t.components-button.is-small {\r\n\r\n\t\tspan.dashicon {\r\n\t\t\tmargin: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t.components-card__header h2 {\r\n\t\tmargin: 0;\r\n\t}\r\n\r\n\t.components-grid {\r\n\r\n\t\t@media (max-width: $tablet ) {\r\n\t\t\tgrid-template-columns: 4fr;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t.first-column {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\tgap: 1em;\r\n\t}\r\n\r\n\ttable {\r\n\t\tborder-collapse: collapse;\r\n\t\tborder-spacing: 0;\r\n\t\tbackground: white;\r\n\t\twidth: 100%;\r\n\t\ttable-layout: fixed;\r\n\t}\r\n\r\n\ttable th,\r\n\ttable td {\r\n\t\tborder-bottom: 1px solid #ddd;\r\n\t\tpadding: 12px;\r\n\t\tword-break: break-word;\r\n\t\tvertical-align: baseline;\r\n\t\tdiv.display-linebreak {\r\n\t\t\twhite-space: pre-line;\r\n\t\t}\r\n\t}\r\n\r\n\ttable th {\r\n\t\twidth: 160px;\r\n\t\ttext-align: left;\r\n\t}\r\n\r\n}\r\n\r\n.formello-actions svg {\r\n\twidth: 24px;\r\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"./style-admin.css","mappings":";;;AAAA;;;;;CAKC;AACD;;EAEE;AACF;;EAEE;AACF;;;;;;EAME;AACF;;;;;CAKC;AACD;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;;EAGE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;;EAGE;AACF;;;;;CAKC;AACD;;;;;EAKE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;EAEE;AACF;;;EAGE;AACF;;EAEE;AACF;EACE,+BAA+B;EAC/B,wCAAwC;EACxC,yCAAyC;EACzC,kDAAkD;EAClD,yCAAyC;EACzC,iDAAiD;EACjD,kCAAkC;EAClC,gCAAgC;EAChC,yCAAyC;EACzC,oDAAoD;AACtD;AACA;EACE;IACE,oCAAoC;EACtC;AACF;;AAEA;EACE,YAAY;EACZ,cAAc;EACd,sBAAsB;EACtB,2BAA2B;EAC3B,2FAA2F;EAC3F,wCAAwC;EACxC,aAAa;EACb,sBAAsB;EACtB,eAAe;EACf,gBAAgB;AAClB;;AAEA;;EAEE,sBAAsB;EACtB,kBAAkB;EAClB,cAAc;EACd,gBAAgB;EAChB,OAAO;EACP,iCAAiC;AACnC;AACA;EACE;;IAEE,uBAAuB;IACvB,oBAAoB;EACtB;AACF;;AAEA;;;EAGE,eAAe;EACf,gBAAgB;EAChB,cAAc;EACd,uBAAuB;EACvB,mBAAmB;EACnB,WAAW;AACb;AACA;;;EAGE,qBAAqB;EACrB,uBAAuB;EACvB,mBAAmB;EACnB,gBAAgB;EAChB,cAAc;EACd,YAAY;EACZ,cAAc;AAChB;AACA;;;EAGE,kCAAkC;AACpC;AACA;;;EAGE,uCAAuC;EACvC,yFAAyF;EACzF,kBAAkB;AACpB;AACA;;;EAGE,qBAAqB;EACrB,oBAAoB;EACpB,uBAAuB;EACvB,mBAAmB;EACnB,gBAAgB;EAChB,cAAc;EACd,WAAW;EACX,cAAc;AAChB;AACA;;;EAGE,kCAAkC;AACpC;;AAEA;;EAEE,eAAe;EACf,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,iCAAiC;AACnC;AACA;EACE;;IAEE,uBAAuB;IACvB,oBAAoB;EACtB;AACF;;AAEA,+FAA+F;AAC/F;EACE;;IAEE,kBAAkB;EACpB;;EAEA;;IAEE,kBAAkB;IAClB,mBAAmB;EACrB;AACF;AACA;EACE,cAAc;EACd,gBAAgB;EAChB,eAAe;EACf,yBAAyB;AAC3B;;AAEA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,UAAU;AACZ;AACA;EACE,UAAU;AACZ;;AAEA;EACE,eAAe;EACf,gBAAgB;AAClB;AACA;EACE,YAAY;EACZ,kBAAkB;AACpB;AACA;EACE,UAAU;AACZ;;AAEA;EACE,kBAAkB;AACpB;AACA;EACE,gCAAgC;EAChC,mBAAmB;AACrB;AACA;EACE,aAAa;AACf;AACA;EACE,cAAc;AAChB;;AAEA;EACE,kBAAkB;EAClB,qBAAqB;AACvB;AACA;EACE,mBAAmB;EACnB,6BAA6B;EAC7B,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,mBAAmB;EACnB,cAAc;EACd,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,sBAAsB;AACxB;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,mBAAmB;EACnB,cAAc;AAChB;AACA;EACE,kCAAkC;EAClC,wDAAwD;AAC1D;AACA;EACE,wDAAwD;AAC1D;AACA;EACE,aAAa;EACb,gFAAgF;AAClF;AACA;EACE,gBAAgB;AAClB;AACA;EACE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,kBAAkB;EAClB,UAAU;EACV,QAAQ;EACR,2BAA2B;EAC3B,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,uBAAuB;EACvB,eAAe;AACjB;AACA;EACE,aAAa;AACf;AACA;EACE,mBAAmB;AACrB;AACA;EACE,aAAa;AACf;AACA;EACE,iCAAiC;AACnC;AACA;EACE,wDAAwD;AAC1D;AACA;EACE,aAAa;EACb,gFAAgF;AAClF;;AAEA;EACE,iBAAi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AAU;AACZ;;AAEA;EACE,YAAY;EACZ,UAAU;AACZ;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,mBAAmB;EACnB,+BAA+B;EAC/B,oBAAoB;EACpB,iCAAiC;AACnC;AACA;EACE;IACE,uBAAuB;IACvB,oBAAoB;EACtB;AACF;AACA;EACE,YAAY;EACZ,2BAA2B;EAC3B,kBAAkB;AACpB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,cAAc;AAChB;AACA;EACE,8DAA8D;EAC9D,uDAAuD;AACzD;AACA;EACE,WAAW;EACX,iBAAiB;EACjB,iBAAiB;EACjB,yBAAyB;EACzB,kBAAkB;EAClB,kBAAkB;AACpB;AACA;EACE,oBAAiB;KAAjB,iBAAiB;EACjB,WAAW;EACX,YAAY;AACd;AACA;EACE,WAAW;EACX,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,8CAA8C;EAC9C,kBAAkB;EAClB,oBAAoB;AACtB;AACA;EACE,kBAAkB;EAClB,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,gBAAgB;EAChB,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE,uBAAuB;EACvB,gBAAgB;AAClB;AACA;EACE,aAAa;AACf;AACA;EACE,mBAAmB;AACrB;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;EACV,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,eAAe;AACjB;AACA;EACE,cAAc;AAChB;AACA;EACE,oBAAoB;AACtB;AACA;EACE,uBAAuB;EACvB,kBAAkB;EAClB,mBAAmB;EACnB,cAAc;EACd,gBAAgB;EAChB,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,eAAe;AACjB;;AAEA;EACE,gDAAgD;AAClD;AACA;EACE;IACE,gDAAgD;EAClD;AACF;AACA;EACE;IACE,gDAAgD;EAClD;AACF;AACA;EACE;IACE,gDAAgD;EAClD;AACF;AACA;EACE;IACE,gDAAgD;EAClD;AACF;;AAEA;;EAEE,aAAa;AACf;;AAEA;EACE,kBAAkB;EAClB,YAAY;EACZ,SAAS;EACT,UAAU;AACZ;;AAEA;;;EAGE,QAAQ;AACV;;AAEA,+FAA+F;AAC/F;EACE;IACE,kBAAkB;IAClB,mBAAmB;EACrB;AACF;AACA;EACE,qBAAqB;AACvB;;AAEA;EACE,gBAAgB;AAClB;AACA;EACE,SAAS;EACT,eAAe;EACf,6BAA6B;AAC/B;AACA;EACE,kBAAkB;EAClB,kBAAkB;AACpB;AACA;EACE,WAAW;AACb;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,QAAQ;AACV;AACA;EACE,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;EACE,QAAQ;EACR,2BAA2B;AAC7B;AACA;EACE,mBAAmB;EACnB,iBAAiB;EACjB,kBAAkB;EAClB,iCAAiC;AACnC;AACA;EACE,UAAU;EACV,gBAAgB;AAClB;AACA;EACE,yBAAyB;EACzB,iCAAiC;AACnC;AACA;EACE,kEAAkE;AACpE;AACA;EACE,kEAAkE;AACpE;AACA;EACE,cAAc;AAChB;AACA;EACE,kCAAkC;EAClC,yBAAyB;AAC3B;AACA;;;;EAIE,kCAAkC;AACpC;AACA;;EAEE,8DAA8D;EAC9D,cAAc;AAChB;AACA;;;;EAIE,kCAAkC;AACpC;AACA;EACE,sBAAsB;EACtB,kBAAkB;EAClB,WAAW;EACX,oBAAoB;AACtB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,uCAAuC;EACvC,yCAAyC;EACzC,0CAA0C;EAC1C,wCAAwC;EACxC,sFAAsF;EACtF,kBAAkB;AACpB;AACA;EACE,gBAAgB;EAChB,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,kBAAkB;EAClB,cAAc;EACd,yBAAyB;EACzB,kBAAkB;AACpB;AACA;EACE,WAAW;EACX,YAAY;EACZ,oBAAiB;KAAjB,iBAAiB;AACnB;AACA;EACE,WAAW;EACX,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,8CAA8C;EAC9C,kBAAkB;AACpB;AACA;EACE,WAAW;EACX,YAAY;EACZ,yBAAyB;AAC3B;AACA;EACE,gBAAgB;AAClB;AACA;EACE,cAAc;EACd,aAAa;EACb,SAAS;EACT,YAAY;EACZ,eAAe;EACf,eAAe;AACjB;AACA;EACE,aAAa;AACf;AACA;EACE,aAAa;AACf;AACA;EACE,gBAAgB;EAChB,iBAAiB;EACjB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,8BAA8B;AAChC;;AAEA;EACE,WAAW;EACX,cAAc;EACd,qBAAqB;EACrB,yBAAyB;EACzB,kBAAkB;EAClB,cAAc;EACd,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,cAAc;EACd,mBAAmB;EACnB,eAAe;AACjB;AACA;;EAEE,aAAa;EACb,mBAAmB;AACrB;AACA;;EAEE,iBAAiB;AACnB;AACA;;EAEE,gBAAgB;AAClB;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,QAAQ;AACV;AACA;;EAEE,kBAAkB;AACpB;AACA;;;;EAIE,iBAAiB;AACnB;AACA;;EAEE,mBAAmB;AACrB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;AACZ;AACA;EACE,UAAU;AACZ;AACA;;;;EAIE,UAAU;AACZ;AACA;EACE;;IAEE,UAAU;EACZ;AACF;AACA;EACE,8DAA8D;EAC9D,cAAc;AAChB;AACA;EACE,kEAAkE;AACpE;AACA;EACE,8DAA8D;AAChE;AACA;EACE,gBAAgB;EAChB,oBAAoB;EACpB,UAAU;AACZ;AACA;EACE,SAAS;AACX;AACA;EACE,sBAAsB;EACtB,gBAAgB;EAChB,mBAAmB;EACnB,kBAAkB;EAClB,eAAe;EACf,yBAAyB;EACzB,gBAAgB;AAClB;AACA;EACE,iBAAiB;AACnB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,aAAa;AACf;AACA;EACE,gBAAgB;EAChB,eAAe;EACf,yBAAyB;EACzB,gBAAgB;AAClB;AACA;EACE,cAAc;AAChB;AACA;EACE,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;EACE,iBAAiB;AACnB;AACA;EACE,SAAS;AACX;AACA;EACE,UAAU;AACZ;;AAEA,+FAA+F;AAC/F;EACE;;IAEE,kBAAkB;EACpB;;EAEA;;IAEE,mBAAmB;EACrB;AACF;AACA;EACE,2BAA2B;AAC7B;AACA;EACE;IACE,2BAA2B;EAC7B;AACF;;AAEA;EACE,YAAY;EACZ,UAAU;AACZ;;AAEA;EACE,WAAW;EACX,gBAAgB;EAChB,sCAAsC;EACtC,kCAAkC;AACpC;;AAEA;EACE,UAAU;EACV,cAAc;EACd,gBAAgB;EAChB,aAAa;EACb,mBAAmB;EACnB,cAAc;EACd,iBAAiB;EACjB,qBAAqB;UACb,aAAa;AACvB;;AAEA;EACE,YAAY;EACZ,gBAAgB;EAChB,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,mBAAmB;EACnB,kBAAkB;EAClB,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE,eAAe;AACjB;;AAEA;EACE,gBAAgB;EAChB,aAAa;AACf;;AAEA;EACE,mBAAmB;AACrB,C;;;;AC1pCA;AACA;EACC;AALD;;AAQA;AAIC;;;EACC;AANF;;AAUA;;EAEC;EA+IA;AArJD;AAQC;EAJD;;IAKE;EAJA;AACF;AAMC;;EACC;AAHF;AAMC;;EACC;EACA;EACA;AAHF;AAKE;;EACC;AAFH;AAMC;;EACC;EACA;EACA;EACA;EACA;AAHF;AAKE;;EACC;EACA;EACA;EACA;EACA;EACA;AAFH;AAKE;;EACC;AAFH;AAKE;;EACC;EACA;EACA;EACA;AAFH;AAIG;;EACC;AADJ;AAKE;;;;EAEC;AADH;AAGG;;;;EACC;AAEJ;AAEE;;EACC;AACH;AAGC;;EACC;EACA;EACA;EACA;EACA;AAAF;AAEE;;EACC;AACH;AAEE;;EACC;EACA;AACH;AAGC;;EACC;EACA;EACA;AAAF;AAEE;;EACC;EACA;EACA;EACA;AACH;AACG;EAND;;IAOE;IACA;EAGF;AACF;AAAE;;EACC;AAGH;AAEG;;EACC;EACA;EACA;EACA;AACJ;AACI;EAND;;IAOE;EAGH;AACF;AAAG;;EACC;EACA;EACA;AAGJ;AAAG;;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAGJ;AAAG;EAjCD;;IAkCE;EAIF;AACF;AAEC;;EACC;EACA;EACA;AACF;AACE;;EACC;EACA;EACA;EACA;AAEH;AAAG;;EACC;AAGJ;AAAG;;EACC;AAGJ;AACE;;EACC;EACA;AAEH;AAGG;EAFD;;IAGE;EACF;AACF;AAGE;;EACC;EACA;EACA;AAAH;AAKG;;EACC;EACA;AAFJ;AAKG;;EACC;AAFJ;AAME;;EACC;AAHH;AAME;;EACC;AAHH;AAME;;EACC;EACA;AAHH;AAME;;EACC;AAHH;AAME;;EACC;AAHH;AAME;;EACC;EACA;EACA;EACA;AAHH;AAKG;;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAFJ;AAKG;;EACC;EACA;AAFJ;AAKG;;EACC;EACA;EACA;EACA;AAFJ;AAKG;;EACC;AAFJ;AAME;;EAEC;EACA;EACA;EACA;AAJH;AAUC;;EACC;EACA;EACA;EACA;AAPF;;AAWA;AACA;EACC;EACA;EACA;AARD;;AAWA;EACC;EACA;EACA;EACA;EACA;AARD;;AAWA;EACC;EACA;AARD;AAUC;EACC;AARF;AAWC;EACC;EACA;EACA;EACA;AATF;;AAaA;EACC;AAVD;;AAaA;EACC;AAVD;;AAaA;AAIC;EACC;EACA;EACA;AAbF;AAkBE;EACC;AAhBH;AAoBC;EACC;AAlBF;AAuBE;EAFD;IAGE;EApBD;AACF;AAwBC;EACC;EACA;EACA;AAtBF;AAyBC;EACC;EACA;EACA;EACA;EACA;AAvBF;AA0BC;;EAEC;EACA;EACA;EACA;AAxBF;AAyBE;;EACC;AAtBH;AA0BC;EACC;EACA;AAxBF;;AA6BA;EACC;AA1BD;;AA6BA;EACC;EACA;EACA;EACA;EACA;EACA;AA1BD,C","sources":["webpack://formello/./node_modules/@wordpress/dataviews/build-style/style.css","webpack://formello/./src/admin/style.scss"],"sourcesContent":["/**\n* Converts a hex value into the rgb equivalent.\n*\n* @param {string} hex - the hexadecimal value to convert\n* @return {string} comma separated rgb values\n*/\n/**\n * Colors\n */\n/**\n * Breakpoints & Media Queries\n */\n/**\n * SCSS Variables.\n *\n * Please use variables from this sheet to ensure consistency across the UI.\n * Don't add to this sheet unless you're pretty sure the value will be reused in many places.\n * For example, don't add rules to this sheet that affect block visuals. It's purely for UI.\n */\n/**\n* Converts a hex value into the rgb equivalent.\n*\n* @param {string} hex - the hexadecimal value to convert\n* @return {string} comma separated rgb values\n*/\n/**\n * Colors\n */\n/**\n * Fonts & basic variables.\n */\n/**\n * Typography\n */\n/**\n * Grid System.\n * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/\n */\n/**\n * Radius scale.\n */\n/**\n * Elevation scale.\n */\n/**\n * Dimensions.\n */\n/**\n * Mobile specific styles\n */\n/**\n * Editor styles.\n */\n/**\n * Block & Editor UI.\n */\n/**\n * Block paddings.\n */\n/**\n * React Native specific.\n * These variables do not appear to be used anywhere else.\n */\n/**\n* Converts a hex value into the rgb equivalent.\n*\n* @param {string} hex - the hexadecimal value to convert\n* @return {string} comma separated rgb values\n*/\n/**\n * Long content fade mixin\n *\n * Creates a fading overlay to signify that the content is longer\n * than the space allows.\n */\n/**\n * Typography\n */\n/**\n * Breakpoint mixins\n */\n/**\n * Focus styles.\n */\n/**\n * Applies editor left position to the selector passed as argument\n */\n/**\n * Styles that are reused verbatim in a few places\n */\n/**\n * Allows users to opt-out of animations via OS-level preferences.\n */\n/**\n * Reset default styles for JavaScript UI based pages.\n * This is a WP-admin agnostic reset\n */\n/**\n * Reset the WP Admin page styles for Gutenberg-like pages.\n */\n:root {\n --wp-admin-theme-color: #007cba;\n --wp-admin-theme-color--rgb: 0, 124, 186;\n --wp-admin-theme-color-darker-10: #006ba1;\n --wp-admin-theme-color-darker-10--rgb: 0, 107, 161;\n --wp-admin-theme-color-darker-20: #005a87;\n --wp-admin-theme-color-darker-20--rgb: 0, 90, 135;\n --wp-admin-border-width-focus: 2px;\n --wp-block-synced-color: #7a00df;\n --wp-block-synced-color--rgb: 122, 0, 223;\n --wp-bound-block-color: var(--wp-block-synced-color);\n}\n@media (min-resolution: 192dpi) {\n :root {\n --wp-admin-border-width-focus: 1.5px;\n }\n}\n\n.dataviews-wrapper {\n height: 100%;\n overflow: auto;\n box-sizing: border-box;\n scroll-padding-bottom: 64px;\n /* stylelint-disable-next-line property-no-unknown -- '@container' not globally permitted */\n container: dataviews-wrapper/inline-size;\n display: flex;\n flex-direction: column;\n font-size: 13px;\n line-height: 1.4;\n}\n\n.dataviews__view-actions,\n.dataviews-filters__container {\n box-sizing: border-box;\n padding: 16px 48px;\n flex-shrink: 0;\n position: sticky;\n left: 0;\n transition: padding ease-out 0.1s;\n}\n@media (prefers-reduced-motion: reduce) {\n .dataviews__view-actions,\n.dataviews-filters__container {\n transition-duration: 0s;\n transition-delay: 0s;\n }\n}\n\n.dataviews-view-list__primary-field,\n.dataviews-view-grid__primary-field,\n.dataviews-view-table__primary-field {\n font-size: 13px;\n font-weight: 500;\n color: #757575;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100%;\n}\n.dataviews-view-list__primary-field a,\n.dataviews-view-grid__primary-field a,\n.dataviews-view-table__primary-field a {\n text-decoration: none;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n display: block;\n flex-grow: 0;\n color: #1e1e1e;\n}\n.dataviews-view-list__primary-field a:hover,\n.dataviews-view-grid__primary-field a:hover,\n.dataviews-view-table__primary-field a:hover {\n color: var(--wp-admin-theme-color);\n}\n.dataviews-view-list__primary-field a:focus,\n.dataviews-view-grid__primary-field a:focus,\n.dataviews-view-table__primary-field a:focus {\n color: var(--wp-admin-theme-color--rgb);\n box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color, #007cba);\n border-radius: 2px;\n}\n.dataviews-view-list__primary-field button.components-button.is-link,\n.dataviews-view-grid__primary-field button.components-button.is-link,\n.dataviews-view-table__primary-field button.components-button.is-link {\n text-decoration: none;\n font-weight: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n display: block;\n width: 100%;\n color: #1e1e1e;\n}\n.dataviews-view-list__primary-field button.components-button.is-link:hover,\n.dataviews-view-grid__primary-field button.components-button.is-link:hover,\n.dataviews-view-table__primary-field button.components-button.is-link:hover {\n color: var(--wp-admin-theme-color);\n}\n\n.dataviews-no-results,\n.dataviews-loading {\n padding: 0 48px;\n flex-grow: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: padding ease-out 0.1s;\n}\n@media (prefers-reduced-motion: reduce) {\n .dataviews-no-results,\n.dataviews-loading {\n transition-duration: 0s;\n transition-delay: 0s;\n }\n}\n\n/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */\n@container (max-width: 430px) {\n .dataviews__view-actions,\n.dataviews-filters__container {\n padding: 12px 24px;\n }\n\n .dataviews-no-results,\n.dataviews-loading {\n padding-left: 24px;\n padding-right: 24px;\n }\n}\n.dataviews-bulk-actions-footer__item-count {\n color: #1e1e1e;\n font-weight: 500;\n font-size: 11px;\n text-transform: uppercase;\n}\n\n.dataviews-bulk-actions-footer__container {\n margin-right: auto;\n min-height: 32px;\n}\n\n.dataviews-filters__button {\n position: relative;\n}\n\n.dataviews-filters__container {\n padding-top: 0;\n}\n\n.dataviews-filters__reset-button.dataviews-filters__reset-button[aria-disabled=true], .dataviews-filters__reset-button.dataviews-filters__reset-button[aria-disabled=true]:hover {\n opacity: 0;\n}\n.dataviews-filters__reset-button.dataviews-filters__reset-button[aria-disabled=true]:focus {\n opacity: 1;\n}\n\n.dataviews-filters__summary-popover {\n font-size: 13px;\n line-height: 1.4;\n}\n.dataviews-filters__summary-popover .components-popover__content {\n width: 230px;\n border-radius: 4px;\n}\n.dataviews-filters__summary-popover.components-dropdown__content .components-popover__content {\n padding: 0;\n}\n\n.dataviews-filters__summary-operators-container {\n padding: 8px 8px 0;\n}\n.dataviews-filters__summary-operators-container:has(+ .dataviews-filters__search-widget-listbox) {\n border-bottom: 1px solid #e0e0e0;\n padding-bottom: 8px;\n}\n.dataviews-filters__summary-operators-container:empty {\n display: none;\n}\n.dataviews-filters__summary-operators-container .dataviews-filters__summary-operators-filter-name {\n color: #757575;\n}\n\n.dataviews-filters__summary-chip-container {\n position: relative;\n white-space: pre-wrap;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip {\n border-radius: 16px;\n border: 1px solid transparent;\n cursor: pointer;\n padding: 4px 12px;\n min-height: 32px;\n background: #f0f0f0;\n color: #2f2f2f;\n position: relative;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip.has-reset {\n padding-inline-end: 28px;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip:hover, .dataviews-filters__summary-chip-container .dataviews-filters__summary-chip:focus-visible, .dataviews-filters__summary-chip-container .dataviews-filters__summary-chip[aria-expanded=true] {\n background: #e0e0e0;\n color: #1e1e1e;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip.has-values {\n color: var(--wp-admin-theme-color);\n background: rgba(var(--wp-admin-theme-color--rgb), 0.04);\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip.has-values:hover, .dataviews-filters__summary-chip-container .dataviews-filters__summary-chip.has-values[aria-expanded=true] {\n background: rgba(var(--wp-admin-theme-color--rgb), 0.12);\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip:focus-visible {\n outline: none;\n box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip .dataviews-filters-__summary-filter-text-name {\n font-weight: 500;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove {\n width: 24px;\n height: 24px;\n border-radius: 50%;\n border: 0;\n padding: 0;\n position: absolute;\n right: 4px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n background: transparent;\n cursor: pointer;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove svg {\n fill: #757575;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove:hover, .dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove:focus {\n background: #e0e0e0;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove:hover svg, .dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove:focus svg {\n fill: #1e1e1e;\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove.has-values svg {\n fill: var(--wp-admin-theme-color);\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove.has-values:hover {\n background: rgba(var(--wp-admin-theme-color--rgb), 0.08);\n}\n.dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove:focus-visible {\n outline: none;\n box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);\n}\n\n.dataviews-filters__search-widget-filter-combobox-list {\n max-height: 184px;\n padding: 4px;\n overflow: auto;\n border-top: 1px solid #e0e0e0;\n}\n.dataviews-filters__search-widget-filter-combobox-list .dataviews-filters__search-widget-filter-combobox-item-value [data-user-value] {\n font-weight: 600;\n}\n\n.dataviews-filters__search-widget-listbox {\n padding: 4px;\n overflow: auto;\n}\n\n.dataviews-filters__search-widget-listitem {\n display: flex;\n align-items: center;\n gap: 8px;\n border-radius: 2px;\n box-sizing: border-box;\n padding: 8px 12px;\n cursor: default;\n margin-block-end: 2px;\n}\n.dataviews-filters__search-widget-listitem:last-child {\n margin-block-end: 0;\n}\n.dataviews-filters__search-widget-listitem:hover, .dataviews-filters__search-widget-listitem[data-active-item], .dataviews-filters__search-widget-listitem:focus {\n background-color: var(--wp-admin-theme-color);\n color: #fff;\n}\n.dataviews-filters__search-widget-listitem:hover .dataviews-filters__search-widget-listitem-check, .dataviews-filters__search-widget-listitem[data-active-item] .dataviews-filters__search-widget-listitem-check, .dataviews-filters__search-widget-listitem:focus .dataviews-filters__search-widget-listitem-check {\n fill: #fff;\n}\n.dataviews-filters__search-widget-listitem:hover .dataviews-filters__search-widget-listitem-description, .dataviews-filters__search-widget-listitem[data-active-item] .dataviews-filters__search-widget-listitem-description, .dataviews-filters__search-widget-listitem:focus .dataviews-filters__search-widget-listitem-description {\n color: #fff;\n}\n.dataviews-filters__search-widget-listitem .dataviews-filters__search-widget-listitem-check {\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n}\n.dataviews-filters__search-widget-listitem .dataviews-filters__search-widget-listitem-description {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 12px;\n line-height: 16px;\n color: #757575;\n}\n\n.dataviews-filters__search-widget-filter-combobox__wrapper {\n position: relative;\n padding: 8px;\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n padding: 6px 8px;\n box-shadow: 0 0 0 transparent;\n transition: box-shadow 0.1s linear;\n border-radius: 2px;\n border: 1px solid #949494;\n /* Fonts smaller than 16px causes mobile safari to zoom. */\n font-size: 16px;\n /* Override core line-height. To be reviewed. */\n line-height: normal;\n display: block;\n padding: 0 32px 0 8px;\n background: #f0f0f0;\n border: none;\n width: 100%;\n height: 32px;\n margin-left: 0;\n margin-right: 0;\n /* Fonts smaller than 16px causes mobile safari to zoom. */\n font-size: 16px;\n}\n@media (prefers-reduced-motion: reduce) {\n .dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input {\n transition-duration: 0s;\n transition-delay: 0s;\n }\n}\n@media (min-width: 600px) {\n .dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input {\n font-size: 13px;\n /* Override core line-height. To be reviewed. */\n line-height: normal;\n }\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input:focus {\n border-color: var(--wp-admin-theme-color);\n box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);\n outline: 2px solid transparent;\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-webkit-input-placeholder {\n color: rgba(30, 30, 30, 0.62);\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-moz-placeholder {\n opacity: 1;\n color: rgba(30, 30, 30, 0.62);\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input:-ms-input-placeholder {\n color: rgba(30, 30, 30, 0.62);\n}\n@media (min-width: 600px) {\n .dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input {\n font-size: 13px;\n }\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input:focus {\n background: #fff;\n box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::placeholder {\n color: #757575;\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-webkit-search-decoration, .dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-webkit-search-cancel-button, .dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-webkit-search-results-button, .dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-webkit-search-results-decoration {\n -webkit-appearance: none;\n}\n.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__icon {\n position: absolute;\n right: 12px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n}\n\n.dataviews-filters__container-visibility-toggle {\n position: relative;\n flex-shrink: 0;\n}\n\n.dataviews-filters-toggle__count {\n position: absolute;\n top: 0;\n right: 0;\n transform: translate(50%, -50%);\n background: var(--wp-admin-theme-color, #3858e9);\n height: 16px;\n min-width: 16px;\n line-height: 16px;\n padding: 0 4px;\n text-align: center;\n border-radius: 8px;\n font-size: 11px;\n outline: var(--wp-admin-border-width-focus) solid #fff;\n color: #fff;\n box-sizing: border-box;\n}\n\n.dataviews-search {\n width: -moz-fit-content;\n width: fit-content;\n}\n\n.dataviews-footer {\n position: sticky;\n bottom: 0;\n left: 0;\n background-color: #fff;\n padding: 12px 48px;\n border-top: 1px solid #f0f0f0;\n flex-shrink: 0;\n transition: padding ease-out 0.1s;\n z-index: 2;\n}\n@media (prefers-reduced-motion: reduce) {\n .dataviews-footer {\n transition-duration: 0s;\n transition-delay: 0s;\n }\n}\n\n/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */\n@container (max-width: 430px) {\n .dataviews-footer {\n padding: 12px 24px;\n }\n}\n/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */\n@container (max-width: 560px) {\n .dataviews-footer {\n flex-direction: column !important;\n }\n .dataviews-footer .dataviews-bulk-actions-footer__container {\n width: 100%;\n }\n .dataviews-footer .dataviews-bulk-actions-footer__item-count {\n flex-grow: 1;\n }\n .dataviews-footer .dataviews-pagination {\n width: 100%;\n justify-content: space-between;\n }\n}\n.dataviews-pagination__page-select {\n font-size: 11px;\n font-weight: 500;\n text-transform: uppercase;\n}\n@media (min-width: 600px) {\n .dataviews-pagination__page-select .components-select-control__input {\n font-size: 11px !important;\n font-weight: 500;\n }\n}\n\n.dataviews-action-modal {\n z-index: 1000001;\n}\n\n.dataviews-selection-checkbox {\n --checkbox-input-size: 24px;\n line-height: 0;\n flex-shrink: 0;\n}\n@media (min-width: 600px) {\n .dataviews-selection-checkbox {\n --checkbox-input-size: 16px;\n }\n}\n.dataviews-selection-checkbox .components-checkbox-control__input-container {\n margin: 0;\n}\n\n.dataviews-view-config {\n width: 320px;\n /* stylelint-disable-next-line property-no-unknown -- the linter needs to be updated to accepted the container-type property */\n container-type: inline-size;\n font-size: 13px;\n line-height: 1.4;\n}\n\n.dataviews-view-config__sort-direction .components-toggle-group-control-option-base {\n text-transform: uppercase;\n}\n\n.dataviews-settings-section__title.dataviews-settings-section__title {\n line-height: 24px;\n font-size: 15px;\n}\n\n.dataviews-settings-section__sidebar {\n grid-column: span 4;\n}\n\n.dataviews-settings-section__content,\n.dataviews-settings-section__content > * {\n grid-column: span 8;\n}\n\n.dataviews-settings-section__content .is-divided-in-two {\n display: contents;\n}\n.dataviews-settings-section__content .is-divided-in-two > * {\n grid-column: span 4;\n}\n\n.dataviews-settings-section:has(.dataviews-settings-section__content:empty) {\n display: none;\n}\n\n/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */\n@container (max-width: 500px) {\n .dataviews-settings-section.dataviews-settings-section {\n grid-template-columns: repeat(2, 1fr);\n }\n .dataviews-settings-section.dataviews-settings-section .dataviews-settings-section__sidebar {\n grid-column: span 2;\n }\n .dataviews-settings-section.dataviews-settings-section .dataviews-settings-section__content {\n grid-column: span 2;\n }\n}\n.dataviews-field-control__field {\n height: 32px;\n}\n\n.dataviews-field-control__actions {\n position: absolute;\n top: -9999em;\n}\n\n.dataviews-field-control__actions.dataviews-field-control__actions {\n gap: 4px;\n}\n\n.dataviews-field-control__field:hover .dataviews-field-control__actions,\n.dataviews-field-control__field:focus-within .dataviews-field-control__actions {\n position: unset;\n top: unset;\n}\n\n.dataforms-layouts-panel__field-dropdown .dataforms-combined-edit {\n border: none;\n padding: 0;\n}\n\n.dataforms-combined-edit__field {\n flex: 1 1 auto;\n}\n\n.dataviews-view-grid {\n margin-bottom: auto;\n grid-template-rows: max-content;\n padding: 0 48px 24px;\n transition: padding ease-out 0.1s;\n}\n@media (prefers-reduced-motion: reduce) {\n .dataviews-view-grid {\n transition-duration: 0s;\n transition-delay: 0s;\n }\n}\n.dataviews-view-grid .dataviews-view-grid__card {\n height: 100%;\n justify-content: flex-start;\n position: relative;\n}\n.dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__title-actions {\n padding: 8px 0 4px;\n}\n.dataviews-view-grid .dataviews-view-grid__card .dataviews-view-grid__primary-field {\n min-height: 32px;\n}\n.dataviews-view-grid .dataviews-view-grid__card.is-selected .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-value {\n color: #1e1e1e;\n}\n.dataviews-view-grid .dataviews-view-grid__card.is-selected .dataviews-view-grid__media::after {\n background-color: rgba(var(--wp-admin-theme-color--rgb), 0.08);\n box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color);\n}\n.dataviews-view-grid .dataviews-view-grid__media {\n width: 100%;\n min-height: 200px;\n aspect-ratio: 1/1;\n background-color: #f0f0f0;\n border-radius: 4px;\n position: relative;\n}\n.dataviews-view-grid .dataviews-view-grid__media img {\n object-fit: cover;\n width: 100%;\n height: 100%;\n}\n.dataviews-view-grid .dataviews-view-grid__media::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n pointer-events: none;\n}\n.dataviews-view-grid .dataviews-view-grid__fields {\n position: relative;\n font-size: 12px;\n line-height: 16px;\n}\n.dataviews-view-grid .dataviews-view-grid__fields:not(:empty) {\n padding: 0 0 12px;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field-value:not(:empty) {\n min-height: 24px;\n line-height: 20px;\n padding-top: 2px;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field {\n align-items: flex-start;\n min-height: 24px;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(:has(.dataviews-view-grid__field-value:not(:empty))) {\n display: none;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) {\n align-items: center;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) .dataviews-view-grid__field-name {\n width: 35%;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field:not(.is-column) .dataviews-view-grid__field-value {\n width: 65%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field.is-column + .is-row {\n margin-top: 4px;\n}\n.dataviews-view-grid .dataviews-view-grid__fields .dataviews-view-grid__field .dataviews-view-grid__field-name {\n color: #757575;\n}\n.dataviews-view-grid .dataviews-view-grid__badge-fields:not(:empty) {\n padding-bottom: 12px;\n}\n.dataviews-view-grid .dataviews-view-grid__badge-fields .dataviews-view-grid__field-value {\n width: -moz-fit-content;\n width: fit-content;\n background: #f0f0f0;\n padding: 0 8px;\n min-height: 24px;\n border-radius: 2px;\n display: flex;\n align-items: center;\n font-size: 12px;\n}\n\n.dataviews-view-grid.dataviews-view-grid {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n@media (min-width: 480px) {\n .dataviews-view-grid.dataviews-view-grid {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n@media (min-width: 1080px) {\n .dataviews-view-grid.dataviews-view-grid {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n@media (min-width: 1440px) {\n .dataviews-view-grid.dataviews-view-grid {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n}\n@media (min-width: 1920px) {\n .dataviews-view-grid.dataviews-view-grid {\n grid-template-columns: repeat(5, minmax(0, 1fr));\n }\n}\n\n.dataviews-view-grid__field-value:empty,\n.dataviews-view-grid__field:empty {\n display: none;\n}\n\n.dataviews-view-grid__card .dataviews-selection-checkbox {\n position: absolute;\n top: -9999em;\n left: 8px;\n z-index: 1;\n}\n\n.dataviews-view-grid__card:hover .dataviews-selection-checkbox,\n.dataviews-view-grid__card:focus-within .dataviews-selection-checkbox,\n.dataviews-view-grid__card.is-selected .dataviews-selection-checkbox {\n top: 8px;\n}\n\n/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */\n@container (max-width: 430px) {\n .dataviews-view-grid {\n padding-left: 24px;\n padding-right: 24px;\n }\n}\nul.dataviews-view-list {\n list-style-type: none;\n}\n\n.dataviews-view-list {\n margin: 0 0 auto;\n}\n.dataviews-view-list li {\n margin: 0;\n cursor: pointer;\n border-top: 1px solid #f0f0f0;\n}\n.dataviews-view-list li .dataviews-view-list__item-wrapper {\n position: relative;\n border-radius: 4px;\n}\n.dataviews-view-list li .dataviews-view-list__item-wrapper > * {\n width: 100%;\n}\n.dataviews-view-list li .dataviews-view-list__item-actions {\n position: absolute;\n top: 16px;\n right: 0;\n}\n.dataviews-view-list li .dataviews-view-list__item-actions > div {\n height: 24px;\n}\n.dataviews-view-list li .dataviews-view-list__item-actions .components-button {\n opacity: 0;\n}\n.dataviews-view-list li:has(.dataviews-view-list__fields:empty) .dataviews-view-list__item-actions {\n top: 50%;\n transform: translateY(-50%);\n}\n.dataviews-view-list li.is-selected .dataviews-view-list__item-actions, .dataviews-view-list li.is-hovered .dataviews-view-list__item-actions, .dataviews-view-list li:focus-within .dataviews-view-list__item-actions {\n background: #f8f8f8;\n padding-left: 8px;\n margin-right: 24px;\n box-shadow: -12px 0 8px 0 #f8f8f8;\n}\n.dataviews-view-list li.is-selected .dataviews-view-list__item-actions .components-button, .dataviews-view-list li.is-hovered .dataviews-view-list__item-actions .components-button, .dataviews-view-list li:focus-within .dataviews-view-list__item-actions .components-button {\n opacity: 1;\n position: static;\n}\n.dataviews-view-list li.is-selected .dataviews-view-list__item-actions {\n background-color: #f7f8ff;\n box-shadow: -12px 0 8px 0 #f7f8ff;\n}\n.dataviews-view-list li.is-selected.is-selected {\n border-top: 1px solid rgba(var(--wp-admin-theme-color--rgb), 0.12);\n}\n.dataviews-view-list li.is-selected.is-selected + li {\n border-top: 1px solid rgba(var(--wp-admin-theme-color--rgb), 0.12);\n}\n.dataviews-view-list li:not(.is-selected) .dataviews-view-list__primary-field {\n color: #1e1e1e;\n}\n.dataviews-view-list li:not(.is-selected):hover, .dataviews-view-list li:not(.is-selected).is-hovered, .dataviews-view-list li:not(.is-selected):focus-within {\n color: var(--wp-admin-theme-color);\n background-color: #f8f8f8;\n}\n.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__primary-field,\n.dataviews-view-list li:not(.is-selected):hover .dataviews-view-list__fields, .dataviews-view-list li:not(.is-selected).is-hovered .dataviews-view-list__primary-field,\n.dataviews-view-list li:not(.is-selected).is-hovered .dataviews-view-list__fields, .dataviews-view-list li:not(.is-selected):focus-within .dataviews-view-list__primary-field,\n.dataviews-view-list li:not(.is-selected):focus-within .dataviews-view-list__fields {\n color: var(--wp-admin-theme-color);\n}\n.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper,\n.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper {\n background-color: rgba(var(--wp-admin-theme-color--rgb), 0.04);\n color: #1e1e1e;\n}\n.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .dataviews-view-list__primary-field,\n.dataviews-view-list li.is-selected .dataviews-view-list__item-wrapper .dataviews-view-list__fields,\n.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .dataviews-view-list__primary-field,\n.dataviews-view-list li.is-selected:focus-within .dataviews-view-list__item-wrapper .dataviews-view-list__fields {\n color: var(--wp-admin-theme-color);\n}\n.dataviews-view-list .dataviews-view-list__item {\n box-sizing: border-box;\n padding: 16px 24px;\n width: 100%;\n scroll-margin: 8px 0;\n}\n.dataviews-view-list .dataviews-view-list__item:focus-visible::before {\n position: absolute;\n content: \"\";\n top: var(--wp-admin-border-width-focus);\n right: var(--wp-admin-border-width-focus);\n bottom: var(--wp-admin-border-width-focus);\n left: var(--wp-admin-border-width-focus);\n box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);\n border-radius: 2px;\n}\n.dataviews-view-list .dataviews-view-list__item .dataviews-view-list__primary-field {\n min-height: 24px;\n line-height: 24px;\n overflow: hidden;\n}\n.dataviews-view-list .dataviews-view-list__media-wrapper {\n width: 52px;\n height: 52px;\n overflow: hidden;\n position: relative;\n flex-shrink: 0;\n background-color: #f0f0f0;\n border-radius: 4px;\n}\n.dataviews-view-list .dataviews-view-list__media-wrapper img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.dataviews-view-list .dataviews-view-list__media-wrapper::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n}\n.dataviews-view-list .dataviews-view-list__media-placeholder {\n width: 52px;\n height: 52px;\n background-color: #e0e0e0;\n}\n.dataviews-view-list .dataviews-view-list__field-wrapper {\n min-height: 52px;\n}\n.dataviews-view-list .dataviews-view-list__fields {\n color: #757575;\n display: flex;\n gap: 12px;\n row-gap: 4px;\n flex-wrap: wrap;\n font-size: 12px;\n}\n.dataviews-view-list .dataviews-view-list__fields:empty {\n display: none;\n}\n.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field:has(.dataviews-view-list__field-value:empty) {\n display: none;\n}\n.dataviews-view-list .dataviews-view-list__fields .dataviews-view-list__field-value {\n min-height: 24px;\n line-height: 20px;\n display: flex;\n align-items: center;\n}\n.dataviews-view-list + .dataviews-pagination {\n justify-content: space-between;\n}\n\n.dataviews-view-table {\n width: 100%;\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n position: relative;\n color: #757575;\n margin-bottom: auto;\n}\n.dataviews-view-table th {\n text-align: left;\n color: #1e1e1e;\n font-weight: normal;\n font-size: 13px;\n}\n.dataviews-view-table td,\n.dataviews-view-table th {\n padding: 12px;\n white-space: nowrap;\n}\n.dataviews-view-table td.dataviews-view-table__actions-column,\n.dataviews-view-table th.dataviews-view-table__actions-column {\n text-align: right;\n}\n.dataviews-view-table td.dataviews-view-table__checkbox-column,\n.dataviews-view-table th.dataviews-view-table__checkbox-column {\n padding-right: 0;\n}\n.dataviews-view-table tr {\n border-top: 1px solid #f0f0f0;\n}\n.dataviews-view-table tr .dataviews-view-table-header-button {\n gap: 4px;\n}\n.dataviews-view-table tr td:first-child,\n.dataviews-view-table tr th:first-child {\n padding-left: 48px;\n}\n.dataviews-view-table tr td:first-child .dataviews-view-table-header-button,\n.dataviews-view-table tr td:first-child .dataviews-view-table-header,\n.dataviews-view-table tr th:first-child .dataviews-view-table-header-button,\n.dataviews-view-table tr th:first-child .dataviews-view-table-header {\n margin-left: -8px;\n}\n.dataviews-view-table tr td:last-child,\n.dataviews-view-table tr th:last-child {\n padding-right: 48px;\n}\n.dataviews-view-table tr:last-child {\n border-bottom: 0;\n}\n.dataviews-view-table tr.is-hovered {\n background-color: #f8f8f8;\n}\n.dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input {\n opacity: 0;\n}\n.dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input:checked, .dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input:indeterminate, .dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input:focus {\n opacity: 1;\n}\n.dataviews-view-table tr .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) {\n opacity: 0;\n}\n.dataviews-view-table tr:focus-within .components-checkbox-control__input,\n.dataviews-view-table tr:focus-within .dataviews-item-actions .components-button:not(.dataviews-all-actions-button), .dataviews-view-table tr.is-hovered .components-checkbox-control__input,\n.dataviews-view-table tr.is-hovered .dataviews-item-actions .components-button:not(.dataviews-all-actions-button), .dataviews-view-table tr:hover .components-checkbox-control__input,\n.dataviews-view-table tr:hover .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) {\n opacity: 1;\n}\n@media (hover: none) {\n .dataviews-view-table tr .components-checkbox-control__input.components-checkbox-control__input,\n.dataviews-view-table tr .dataviews-item-actions .components-button:not(.dataviews-all-actions-button) {\n opacity: 1;\n }\n}\n.dataviews-view-table tr.is-selected {\n background-color: rgba(var(--wp-admin-theme-color--rgb), 0.04);\n color: #757575;\n}\n.dataviews-view-table tr.is-selected, .dataviews-view-table tr.is-selected + tr {\n border-top: 1px solid rgba(var(--wp-admin-theme-color--rgb), 0.12);\n}\n.dataviews-view-table tr.is-selected:hover {\n background-color: rgba(var(--wp-admin-theme-color--rgb), 0.08);\n}\n.dataviews-view-table thead {\n position: sticky;\n inset-block-start: 0;\n z-index: 1;\n}\n.dataviews-view-table thead tr {\n border: 0;\n}\n.dataviews-view-table thead th {\n background-color: #fff;\n padding-top: 8px;\n padding-bottom: 8px;\n padding-left: 12px;\n font-size: 11px;\n text-transform: uppercase;\n font-weight: 500;\n}\n.dataviews-view-table thead th:has(.dataviews-view-table-header-button):not(:first-child) {\n padding-left: 4px;\n}\n.dataviews-view-table tbody td {\n vertical-align: top;\n}\n.dataviews-view-table tbody .dataviews-view-table__cell-content-wrapper {\n min-height: 32px;\n display: flex;\n align-items: center;\n}\n.dataviews-view-table tbody .components-v-stack > .dataviews-view-table__cell-content-wrapper:not(:first-child) {\n min-height: 0;\n}\n.dataviews-view-table .dataviews-view-table-header-button {\n padding: 4px 8px;\n font-size: 11px;\n text-transform: uppercase;\n font-weight: 500;\n}\n.dataviews-view-table .dataviews-view-table-header-button:not(:hover) {\n color: #1e1e1e;\n}\n.dataviews-view-table .dataviews-view-table-header-button span {\n speak: none;\n}\n.dataviews-view-table .dataviews-view-table-header-button span:empty {\n display: none;\n}\n.dataviews-view-table .dataviews-view-table-header {\n padding-left: 4px;\n}\n.dataviews-view-table .dataviews-view-table__actions-column {\n width: 1%;\n}\n.dataviews-view-table:has(tr.is-selected) .components-checkbox-control__input {\n opacity: 1;\n}\n\n/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */\n@container (max-width: 430px) {\n .dataviews-view-table tr td:first-child,\n.dataviews-view-table tr th:first-child {\n padding-left: 24px;\n }\n\n .dataviews-view-table tr td:last-child,\n.dataviews-view-table tr th:last-child {\n padding-right: 24px;\n }\n}\n.dataviews-view-table-selection-checkbox {\n --checkbox-input-size: 24px;\n}\n@media (min-width: 600px) {\n .dataviews-view-table-selection-checkbox {\n --checkbox-input-size: 16px;\n }\n}\n\n.dataviews-controls__datetime {\n border: none;\n padding: 0;\n}\n\n.dataforms-layouts-panel__field {\n width: 100%;\n min-height: 32px;\n justify-content: flex-start !important;\n align-items: flex-start !important;\n}\n\n.dataforms-layouts-panel__field-label {\n width: 38%;\n flex-shrink: 0;\n min-height: 32px;\n display: flex;\n align-items: center;\n padding: 6px 0;\n line-height: 20px;\n -webkit-hyphens: auto;\n hyphens: auto;\n}\n\n.dataforms-layouts-panel__field-control {\n flex-grow: 1;\n min-height: 32px;\n display: flex;\n align-items: center;\n}\n.dataforms-layouts-panel__field-control .components-button {\n max-width: 100%;\n text-align: left;\n white-space: normal;\n text-wrap: balance;\n text-wrap: pretty;\n min-height: 32px;\n}\n.dataforms-layouts-panel__field-control .components-dropdown {\n max-width: 100%;\n}\n\n.dataforms-layouts-panel__field-dropdown .components-popover__content {\n min-width: 320px;\n padding: 16px;\n}\n\n.dataforms-layouts-panel__dropdown-header {\n margin-bottom: 16px;\n}","@import '@wordpress/dataviews/build-style/style.css';\r\n\r\n// Media query variables\r\n$desktop: 1024px;\r\n$tablet: 782px;\r\n$mobile: 426px;\r\n\r\n/* To fix rendering quirk in Chrome */\r\n#wpwrap {\r\n\tbackground: #f1f1f1;\r\n}\r\n\r\n/* Hide WP notices on the settings and addons page */\r\n.formello_form_page_formello-addons,\r\n.formello_form_page_formello-settings,\r\n.toplevel_page_formello-settings {\r\n\t.notice {\r\n\t\tdisplay: none;\r\n\t}\r\n}\r\n\r\n#formello-plugin-settings,\r\n#formello-admin {\r\n\tmargin-left: -20px;\r\n\r\n\t@media (max-width: $tablet ) {\r\n\t\tmargin-left: -10px;\r\n\t}\r\n\r\n\t.formello-content {\r\n\t\tpadding: 20px;\r\n\t}\r\n\r\n\t.dataviews-wrapper {\r\n\t\tbox-sizing: border-box;\r\n\t\tbackground-color: #fff;\r\n\t\tpadding: 20px;\r\n\r\n\t\t>div {\r\n\t\t\tpadding-bottom: 1em;\r\n\t\t}\r\n\t}\r\n\r\n\t.dataviews-list-view {\r\n\t\twidth: 100%;\r\n\t\ttext-indent: 0;\r\n\t\tborder-color: inherit;\r\n\t\tborder-collapse: collapse;\r\n\t\tposition: relative;\r\n\r\n\t\t.badge {\r\n\t\t\tbackground-color: #337ab7;\r\n\t\t\tcolor: white;\r\n\t\t\tpadding: 2px .5em;\r\n\t\t\ttext-align: center;\r\n\t\t\tborder-radius: 20%;\r\n\t\t\tmargin: 0 1em;\r\n\t\t}\r\n\r\n\t\ta {\r\n\t\t\ttext-decoration: none;\r\n\t\t}\r\n\r\n\t\tth {\r\n\t\t\ttext-align: left;\r\n\t\t\tfont-weight: normal;\r\n\t\t\tpadding: 0 20px;\r\n\t\t\tcolor: #dedede;\r\n\r\n\t\t\tbutton {\r\n\t\t\t\tfont-weight: bold;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttd,\r\n\t\tth {\r\n\t\t\tpadding: 15px;\r\n\r\n\t\t\t&:last-child {\r\n\t\t\t\ttext-align: right;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttr {\r\n\t\t\tborder-bottom: 1px solid #dedede;\r\n\t\t}\r\n\t}\r\n\r\n\t.loading-settings {\r\n\t\ttext-align: center;\r\n\t\tmargin: 35vh 30px;\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\tjustify-content: center;\r\n\r\n\t\t.components-spinner {\r\n\t\t\tfloat: none;\r\n\t\t}\r\n\r\n\t\t.description {\r\n\t\t\tcolor: #777;\r\n\t\t\tmargin-top: 4px;\r\n\t\t}\r\n\t}\r\n\r\n\t.masthead {\r\n\t\tbackground-color: #fff;\r\n\t\tpadding: 15px 20px;\r\n\t\tbox-shadow: rgba(0, 0, 0, 0.1) 0px 0px 0px 1px;\r\n\r\n\t\t.inner-container {\r\n\t\t\tmargin: 0 auto;\r\n\t\t\tmax-width: 1024px;\r\n\t\t\tdisplay: flex;\r\n\t\t\tjustify-content: space-between;\r\n\r\n\t\t\t@media (max-width: $mobile ) {\r\n\t\t\t\tflex-direction: column;\r\n\t\t\t\tmargin: 5px auto;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.full-width {\r\n\t\t\tmax-width: 100%;\r\n\t\t}\r\n\r\n\t\t.masthead__branding {\r\n\r\n\t\t\th1 {\r\n\t\t\t\tcolor: #222;\r\n\t\t\t\tfont-size: 20px;\r\n\t\t\t\tfont-weight: 400;\r\n\t\t\t\tmargin: 0;\r\n\r\n\t\t\t\t@media (max-width: $mobile ) {\r\n\t\t\t\t\tjustify-content: center;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tsvg {\r\n\t\t\t\tfill: #222;\r\n\t\t\t\theight: 40px;\r\n\t\t\t\twidth: 40px;\r\n\t\t\t}\r\n\r\n\t\t\t.pro-badge {\r\n\t\t\t\tcolor: #fff;\r\n\t\t\t\ttext-transform: uppercase;\r\n\t\t\t\tfont-size: 8px;\r\n\t\t\t\theight: 8px;\r\n\t\t\t\tborder-radius: 4px;\r\n\t\t\t\tpadding: 4px 6px;\r\n\t\t\t\tline-height: 1;\r\n\t\t\t\tfont-weight: 800;\r\n\t\t\t\tletter-spacing: 1px;\r\n\t\t\t\tmargin-left: 10px;\r\n\t\t\t\tbackground: var(--wp-admin-theme-color);\r\n\t\t\t}\r\n\r\n\t\t\t@media (max-width: $mobile ) {\r\n\t\t\t\ttext-align: center;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t/* General styles for all setting tabs */\r\n\t.setting-tabs {\r\n\t\tmax-width: 1024px;\r\n\t\tmargin: auto;\r\n\t\tmargin-bottom: 1rem;\r\n\r\n\t\t.formello-message {\r\n\t\t\topacity: 0;\r\n\t\t\ttransition: all 500ms ease-in-out;\r\n\t\t\tcolor: #067622;\r\n\t\t\tpointer-events: none;\r\n\r\n\t\t\t&.show {\r\n\t\t\t\topacity: 1;\r\n\t\t\t}\r\n\r\n\t\t\t&.error {\r\n\t\t\t\tcolor: #b52727;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.components-tab-panel__tabs {\r\n\t\t\tmargin-bottom: 1em;\r\n\t\t\toverflow-x: auto;\r\n\t\t}\r\n\r\n\t\t.components-grid {\r\n\r\n\t\t\t@media (max-width: $tablet ) {\r\n\t\t\t\tgrid-template-columns: 4fr;\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t.components-grid>div:not(.components-card) {\r\n\t\t\tdisplay: flex;\r\n\t\t\tgap: 1em;\r\n\t\t\tflex-direction: column;\r\n\t\t}\r\n\r\n\t\t.components-card.addon {\r\n\r\n\t\t\t>div {\r\n\t\t\t\tdisplay: flex;\r\n\t\t\t\tflex-direction: column;\r\n\t\t\t}\r\n\r\n\t\t\t.components-card__body {\r\n\t\t\t\tflex-grow: 1;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.components-card hr {\r\n\t\t\tmargin: 1em 0;\r\n\t\t}\r\n\r\n\t\t.components-card__header h2 {\r\n\t\t\tmargin: 0;\r\n\t\t}\r\n\r\n\t\t.components-card__header svg {\r\n\t\t\theight: 30px;\r\n\t\t\twidth: 30px;\r\n\t\t}\r\n\r\n\t\t.components-card__media {\r\n\t\t\twidth: 50px;\r\n\t\t}\r\n\r\n\t\t.components-notice {\r\n\t\t\tmargin: 1em 0;\r\n\t\t}\r\n\r\n\t\t.ads-container__reviews {\r\n\t\t\tbackground-color: var(--wp-admin-theme-color);\r\n\t\t\tbox-shadow: 0 0 0 1px var(--wp-admin-theme-color-darker-20), 0 1px 1px 1px rgb(0 0 0 / 4%);\r\n\t\t\tcolor: #fff;\r\n\t\t\tposition: relative;\r\n\r\n\t\t\t&::before {\r\n\t\t\t\tcontent: \"\";\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\ttop: 0;\r\n\t\t\t\tright: 0;\r\n\t\t\t\tbottom: 0;\r\n\t\t\t\tleft: 0;\r\n\t\t\t\tz-index: 0;\r\n\t\t\t\tbackground-color: var(--wp-admin-theme-color-darker-20);\r\n\t\t\t\tmask-image: url(\"data:image/svg+xml;utf8,\");\r\n\t\t\t\t-webkit-mask-image: url(\"data:image/svg+xml;utf8,\");\r\n\t\t\t\tmask-size: 200px;\r\n\t\t\t\t-webkit-mask-size: 200px;\r\n\t\t\t\tmask-repeat: no-repeat;\r\n\t\t\t\t-webkit-mask-repeat: no-repeat;\r\n\t\t\t\tmask-position: -100px;\r\n\t\t\t\t-webkit-mask-position: -100px;\r\n\t\t\t}\r\n\r\n\t\t\t>* {\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tz-index: 1;\r\n\t\t\t}\r\n\r\n\t\t\ta {\r\n\t\t\t\tcolor: #fff;\r\n\t\t\t\tdisplay: block;\r\n\t\t\t\tmargin-top: 10px;\r\n\t\t\t\tfont-size: 1.1em;\r\n\t\t\t}\r\n\r\n\t\t\th2 {\r\n\t\t\t\tcolor: #fff;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t.setting-controls__save-settings {\r\n\r\n\t\t\tdisplay: flex;\r\n\t\t\talign-items: center;\r\n\t\t\tgap: 1em;\r\n\t\t\tmargin-bottom: 1em;\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t.components-snackbar-list {\r\n\t\tbottom: 40px;\r\n\t\tpadding-left: 16px;\r\n\t\tpadding-right: 16px;\r\n\t\tposition: fixed;\r\n\t}\r\n}\r\n\r\n/* -------------- BADGES ------------------ */\r\n.column-actions {\r\n\ttext-align: left;\r\n\twidth: 150px !important;\r\n\toverflow: hidden;\r\n}\r\n\r\n.formello-badge {\r\n\tbackground-color: #337ab7;\r\n\tpadding: 0 5px;\r\n\tmargin-left: 10px;\r\n\tcolor: white;\r\n\tborder-radius: 20%;\r\n}\r\n\r\n.formello-icons-group {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\r\n\tdiv {\r\n\t\tdisplay: flex;\r\n\t}\r\n\r\n\tspan {\r\n\t\twidth: 1em;\r\n\t\theight: 1em;\r\n\t\tfont-size: 1em;\r\n\t\tmargin-left: 4px;\r\n\t}\r\n}\r\n\r\n.formello-star {\r\n\tcolor: #e27730;\r\n}\r\n\r\n.formello-new {\r\n\tcolor: #337ab7;\r\n}\r\n\r\n/* -------------- SUBMISSION TABLE ------------------ */\r\n\r\n.formello-submission {\r\n\r\n\t.masthead {\r\n\t\tdisplay: flex;\r\n\t\tgap: 1em;\r\n\t\talign-items: baseline;\r\n\t}\r\n\r\n\t.components-button.is-small {\r\n\r\n\t\tspan.dashicon {\r\n\t\t\tmargin: 0;\r\n\t\t}\r\n\t}\r\n\r\n\t.components-card__header h2 {\r\n\t\tmargin: 0;\r\n\t}\r\n\r\n\t.components-grid {\r\n\r\n\t\t@media (max-width: $tablet ) {\r\n\t\t\tgrid-template-columns: 4fr;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t.first-column {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\tgap: 1em;\r\n\t}\r\n\r\n\ttable {\r\n\t\tborder-collapse: collapse;\r\n\t\tborder-spacing: 0;\r\n\t\tbackground: white;\r\n\t\twidth: 100%;\r\n\t\ttable-layout: fixed;\r\n\t}\r\n\r\n\ttable th,\r\n\ttable td {\r\n\t\tborder-bottom: 1px solid #ddd;\r\n\t\tpadding: 12px;\r\n\t\tword-break: break-word;\r\n\t\tvertical-align: baseline;\r\n\t\tdiv.display-linebreak {\r\n\t\t\twhite-space: pre-line;\r\n\t\t}\r\n\t}\r\n\r\n\ttable th {\r\n\t\twidth: 160px;\r\n\t\ttext-align: left;\r\n\t}\r\n\r\n}\r\n\r\n.formello-actions svg {\r\n\twidth: 24px;\r\n}\r\n\r\ndiv.field-content {\r\n\tdisplay: -webkit-box;\r\n\toverflow: hidden;\r\n\ttext-overflow: ellipsis;\r\n\tline-clamp: 3;\r\n\t-webkit-box-orient: vertical;\r\n\t-webkit-line-clamp: 3;\r\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/composer.json b/composer.json index d04c8881..3a915802 100644 --- a/composer.json +++ b/composer.json @@ -49,7 +49,8 @@ "config": { "sort-packages": true, "allow-plugins": { - "roots/wordpress-core-installer": true + "roots/wordpress-core-installer": true, + "dealerdirect/phpcodesniffer-composer-installer": true } }, "extra": { diff --git a/composer.lock b/composer.lock index 73914dc7..a4c9d462 100644 --- a/composer.lock +++ b/composer.lock @@ -12,12 +12,12 @@ "source": { "type": "git", "url": "https://github.com/Appsero/client.git", - "reference": "d282f69e182d9800cce6e373c895c84bedc091d8" + "reference": "8d4b94c8536c6ce6f5a599c65c1e1cc6a465d637" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Appsero/client/zipball/d282f69e182d9800cce6e373c895c84bedc091d8", - "reference": "d282f69e182d9800cce6e373c895c84bedc091d8", + "url": "https://api.github.com/repos/Appsero/client/zipball/8d4b94c8536c6ce6f5a599c65c1e1cc6a465d637", + "reference": "8d4b94c8536c6ce6f5a599c65c1e1cc6a465d637", "shasum": "" }, "require": { @@ -59,7 +59,7 @@ "issues": "https://github.com/Appsero/client/issues", "source": "https://github.com/Appsero/client/tree/develop" }, - "time": "2023-12-26T07:12:49+00:00" + "time": "2024-09-18T04:41:28+00:00" }, { "name": "katzgrau/klogger", @@ -209,7 +209,7 @@ "description": "PHP Laravel like standalone validation library", "support": { "issues": "https://github.com/rakit/validation/issues", - "source": "https://github.com/rakit/validation/tree/v1.4.0" + "source": "https://github.com/rakit/validation/tree/master" }, "time": "2020-08-27T05:07:01+00:00" } @@ -217,16 +217,16 @@ "packages-dev": [ { "name": "doctrine/deprecations", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", - "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", "shasum": "" }, "require": { @@ -258,9 +258,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/1.1.2" + "source": "https://github.com/doctrine/deprecations/tree/1.1.3" }, - "time": "2023-09-27T20:04:15+00:00" + "time": "2024-01-30T19:34:25+00:00" }, { "name": "doctrine/instantiator", @@ -334,16 +334,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.11.1", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", "shasum": "" }, "require": { @@ -351,11 +351,12 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", @@ -381,7 +382,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" }, "funding": [ { @@ -389,7 +390,7 @@ "type": "tidelift" } ], - "time": "2023-03-08T13:26:56+00:00" + "time": "2024-06-12T14:39:25+00:00" }, { "name": "phar-io/manifest", @@ -556,28 +557,35 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", + "version": "5.4.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", + "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", "shasum": "" }, "require": { + "doctrine/deprecations": "^1.1", "ext-filter": "*", - "php": "^7.2 || ^8.0", + "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", + "phpdocumentor/type-resolver": "^1.7", + "phpstan/phpdoc-parser": "^1.7", "webmozart/assert": "^1.9.1" }, "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" + "mockery/mockery": "~1.3.5", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^5.13" }, "type": "library", "extra": { @@ -601,33 +609,33 @@ }, { "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" + "email": "opensource@ijaap.nl" } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.1" }, - "time": "2021-10-19T17:43:47+00:00" + "time": "2024-05-21T05:55:05+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.7.3", + "version": "1.8.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419" + "reference": "153ae662783729388a584b4361f2545e4d841e3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", - "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c", + "reference": "153ae662783729388a584b4361f2545e4d841e3c", "shasum": "" }, "require": { "doctrine/deprecations": "^1.0", - "php": "^7.4 || ^8.0", + "php": "^7.3 || ^8.0", "phpdocumentor/reflection-common": "^2.0", "phpstan/phpdoc-parser": "^1.13" }, @@ -665,30 +673,30 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2" }, - "time": "2023-08-12T11:01:26+00:00" + "time": "2024-02-23T11:10:43+00:00" }, { "name": "phpspec/prophecy", - "version": "v1.18.0", + "version": "v1.19.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "d4f454f7e1193933f04e6500de3e79191648ed0c" + "reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/d4f454f7e1193933f04e6500de3e79191648ed0c", - "reference": "d4f454f7e1193933f04e6500de3e79191648ed0c", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/67a759e7d8746d501c41536ba40cd9c0a07d6a87", + "reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87", "shasum": "" }, "require": { "doctrine/instantiator": "^1.2 || ^2.0", "php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.*", "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0 || ^5.0", - "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0" + "sebastian/comparator": "^3.0 || ^4.0 || ^5.0 || ^6.0", + "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { "phpspec/phpspec": "^6.0 || ^7.0", @@ -734,22 +742,22 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.18.0" + "source": "https://github.com/phpspec/prophecy/tree/v1.19.0" }, - "time": "2023-12-07T16:22:33+00:00" + "time": "2024-02-29T11:52:51+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.24.5", + "version": "1.33.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fedf211ff14ec8381c9bf5714e33a7a552dd1acc" + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fedf211ff14ec8381c9bf5714e33a7a552dd1acc", - "reference": "fedf211ff14ec8381c9bf5714e33a7a552dd1acc", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140", "shasum": "" }, "require": { @@ -781,9 +789,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.5" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0" }, - "time": "2023-12-16T09:33:33+00:00" + "time": "2024-10-13T11:25:22+00:00" }, { "name": "phpunit/php-code-coverage", @@ -854,16 +862,16 @@ }, { "name": "phpunit/php-file-iterator", - "version": "2.0.5", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5" + "reference": "69deeb8664f611f156a924154985fbd4911eb36b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", - "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/69deeb8664f611f156a924154985fbd4911eb36b", + "reference": "69deeb8664f611f156a924154985fbd4911eb36b", "shasum": "" }, "require": { @@ -902,7 +910,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.5" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.6" }, "funding": [ { @@ -910,7 +918,7 @@ "type": "github" } ], - "time": "2021-12-02T12:42:26+00:00" + "time": "2024-03-01T13:39:50+00:00" }, { "name": "phpunit/php-text-template", @@ -959,16 +967,16 @@ }, { "name": "phpunit/php-timer", - "version": "2.1.3", + "version": "2.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" + "reference": "a691211e94ff39a34811abd521c31bd5b305b0bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/a691211e94ff39a34811abd521c31bd5b305b0bb", + "reference": "a691211e94ff39a34811abd521c31bd5b305b0bb", "shasum": "" }, "require": { @@ -1006,7 +1014,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" + "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.4" }, "funding": [ { @@ -1014,7 +1022,7 @@ "type": "github" } ], - "time": "2020-11-30T08:20:02+00:00" + "time": "2024-03-01T13:42:41+00:00" }, { "name": "phpunit/php-token-stream", @@ -1166,7 +1174,7 @@ }, { "name": "roots/wordpress", - "version": "5.9.8", + "version": "5.9.10", "source": { "type": "git", "url": "https://github.com/roots/wordpress.git", @@ -1197,7 +1205,7 @@ ], "support": { "issues": "https://github.com/roots/wordpress/issues", - "source": "https://github.com/roots/wordpress/tree/6.3.2" + "source": "https://github.com/roots/wordpress/tree/6.5.5" }, "funding": [ { @@ -1280,22 +1288,22 @@ }, { "name": "roots/wordpress-no-content", - "version": "5.9.8", + "version": "5.9.10", "source": { "type": "git", "url": "https://github.com/WordPress/WordPress.git", - "reference": "5.9.8" + "reference": "5.9.10" }, "dist": { "type": "zip", - "url": "https://downloads.wordpress.org/release/wordpress-5.9.8-no-content.zip", - "shasum": "064492bc4bf307de721ed3447891dc89314d9c08" + "url": "https://downloads.wordpress.org/release/wordpress-5.9.10-no-content.zip", + "shasum": "1a259c0d69d3ef03d07ffc205ae8fb4433622d1f" }, "require": { "php": ">= 5.6.20" }, "provide": { - "wordpress/core-implementation": "5.9.8" + "wordpress/core-implementation": "5.9.10" }, "suggest": { "ext-curl": "Performs remote request operations.", @@ -1346,20 +1354,20 @@ "type": "other" } ], - "time": "2023-10-12T20:42:04+00:00" + "time": "2024-06-24T19:14:35+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.2", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" + "reference": "92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54", + "reference": "92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54", "shasum": "" }, "require": { @@ -1393,7 +1401,7 @@ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.3" }, "funding": [ { @@ -1401,7 +1409,7 @@ "type": "github" } ], - "time": "2020-11-30T08:15:22+00:00" + "time": "2024-03-01T13:45:45+00:00" }, { "name": "sebastian/comparator", @@ -1479,16 +1487,16 @@ }, { "name": "sebastian/diff", - "version": "3.0.4", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae" + "reference": "98ff311ca519c3aa73ccd3de053bdb377171d7b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/6296a0c086dd0117c1b78b059374d7fcbe7545ae", - "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/98ff311ca519c3aa73ccd3de053bdb377171d7b6", + "reference": "98ff311ca519c3aa73ccd3de053bdb377171d7b6", "shasum": "" }, "require": { @@ -1533,7 +1541,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/3.0.4" + "source": "https://github.com/sebastianbergmann/diff/tree/3.0.6" }, "funding": [ { @@ -1541,20 +1549,20 @@ "type": "github" } ], - "time": "2023-05-07T05:30:20+00:00" + "time": "2024-03-02T06:16:36+00:00" }, { "name": "sebastian/environment", - "version": "4.2.4", + "version": "4.2.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" + "reference": "56932f6049a0482853056ffd617c91ffcc754205" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/56932f6049a0482853056ffd617c91ffcc754205", + "reference": "56932f6049a0482853056ffd617c91ffcc754205", "shasum": "" }, "require": { @@ -1596,7 +1604,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" + "source": "https://github.com/sebastianbergmann/environment/tree/4.2.5" }, "funding": [ { @@ -1604,24 +1612,24 @@ "type": "github" } ], - "time": "2020-11-30T07:53:42+00:00" + "time": "2024-03-01T13:49:59+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.5", + "version": "3.1.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6" + "reference": "1939bc8fd1d39adcfa88c5b35335910869214c56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/73a9676f2833b9a7c36968f9d882589cd75511e6", - "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/1939bc8fd1d39adcfa88c5b35335910869214c56", + "reference": "1939bc8fd1d39adcfa88c5b35335910869214c56", "shasum": "" }, "require": { - "php": ">=7.0", + "php": ">=7.2", "sebastian/recursion-context": "^3.0" }, "require-dev": { @@ -1673,7 +1681,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.5" + "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.6" }, "funding": [ { @@ -1681,7 +1689,7 @@ "type": "github" } ], - "time": "2022-09-14T06:00:17+00:00" + "time": "2024-03-02T06:21:38+00:00" }, { "name": "sebastian/global-state", @@ -1740,16 +1748,16 @@ }, { "name": "sebastian/object-enumerator", - "version": "3.0.4", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" + "reference": "ac5b293dba925751b808e02923399fb44ff0d541" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/ac5b293dba925751b808e02923399fb44ff0d541", + "reference": "ac5b293dba925751b808e02923399fb44ff0d541", "shasum": "" }, "require": { @@ -1785,7 +1793,7 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.5" }, "funding": [ { @@ -1793,20 +1801,20 @@ "type": "github" } ], - "time": "2020-11-30T07:40:27+00:00" + "time": "2024-03-01T13:54:02+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" + "reference": "1d439c229e61f244ff1f211e5c99737f90c67def" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/1d439c229e61f244ff1f211e5c99737f90c67def", + "reference": "1d439c229e61f244ff1f211e5c99737f90c67def", "shasum": "" }, "require": { @@ -1840,7 +1848,7 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.3" }, "funding": [ { @@ -1848,20 +1856,20 @@ "type": "github" } ], - "time": "2020-11-30T07:37:18+00:00" + "time": "2024-03-01T13:56:04+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" + "reference": "9bfd3c6f1f08c026f542032dfb42813544f7d64c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/9bfd3c6f1f08c026f542032dfb42813544f7d64c", + "reference": "9bfd3c6f1f08c026f542032dfb42813544f7d64c", "shasum": "" }, "require": { @@ -1903,7 +1911,7 @@ "homepage": "http://www.github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.2" }, "funding": [ { @@ -1911,20 +1919,20 @@ "type": "github" } ], - "time": "2020-11-30T07:34:24+00:00" + "time": "2024-03-01T14:07:30+00:00" }, { "name": "sebastian/resource-operations", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" + "reference": "72a7f7674d053d548003b16ff5a106e7e0e06eee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/72a7f7674d053d548003b16ff5a106e7e0e06eee", + "reference": "72a7f7674d053d548003b16ff5a106e7e0e06eee", "shasum": "" }, "require": { @@ -1954,8 +1962,7 @@ "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" + "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.3" }, "funding": [ { @@ -1963,7 +1970,7 @@ "type": "github" } ], - "time": "2020-11-30T07:30:19+00:00" + "time": "2024-03-01T13:59:09+00:00" }, { "name": "sebastian/version", @@ -2014,16 +2021,16 @@ }, { "name": "theseer/tokenizer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -2052,7 +2059,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.2" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -2060,7 +2067,7 @@ "type": "github" } ], - "time": "2023-11-20T00:12:19+00:00" + "time": "2024-03-03T12:36:25+00:00" }, { "name": "webmozart/assert", @@ -2122,7 +2129,7 @@ }, { "name": "wp-phpunit/wp-phpunit", - "version": "5.9.8", + "version": "5.9.10", "source": { "type": "git", "url": "https://github.com/wp-phpunit/wp-phpunit.git", @@ -2170,16 +2177,16 @@ }, { "name": "yoast/phpunit-polyfills", - "version": "1.1.0", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/Yoast/PHPUnit-Polyfills.git", - "reference": "224e4a1329c03d8bad520e3fc4ec980034a4b212" + "reference": "e9c8413de4c8ae03d2923a44f17d0d7dad1b96be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/224e4a1329c03d8bad520e3fc4ec980034a4b212", - "reference": "224e4a1329c03d8bad520e3fc4ec980034a4b212", + "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/e9c8413de4c8ae03d2923a44f17d0d7dad1b96be", + "reference": "e9c8413de4c8ae03d2923a44f17d0d7dad1b96be", "shasum": "" }, "require": { @@ -2187,12 +2194,14 @@ "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0" }, "require-dev": { - "yoast/yoastcs": "^2.3.0" + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "yoast/yoastcs": "^3.1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -2224,9 +2233,10 @@ ], "support": { "issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues", + "security": "https://github.com/Yoast/PHPUnit-Polyfills/security/policy", "source": "https://github.com/Yoast/PHPUnit-Polyfills" }, - "time": "2023-08-19T14:25:08+00:00" + "time": "2024-09-06T22:03:10+00:00" } ], "aliases": [], diff --git a/formello.php b/formello.php index 3fa090d6..afef55e2 100644 --- a/formello.php +++ b/formello.php @@ -34,7 +34,7 @@ * Start at version 1.0.0 and use SemVer - https://semver.org * Rename this for your plugin and update it as you release new versions. */ -define( 'FORMELLO2_VERSION', '1.0.0' ); +define( 'FORMELLO_VERSION', '2.5.4' ); /** * The code that runs during plugin activation. @@ -53,7 +53,7 @@ function formello_deactivate() { } register_activation_hook( __FILE__, 'formello_activate' ); -register_deactivation_hook( __FILE__, 'deformello_deactivate' ); +register_deactivation_hook( __FILE__, 'formello_deactivate' ); /** * Begins execution of the plugin. diff --git a/includes/Actions/Action.php b/includes/Actions/Action.php index 741b5a6e..fff24db2 100644 --- a/includes/Actions/Action.php +++ b/includes/Actions/Action.php @@ -66,9 +66,10 @@ public function hook() { /** * Process action. * - * @param array $action_settings The action settings. + * @param array $action_settings The action settings. + * @param Formello\Form $form The form object. */ - abstract public function process( $action_settings ); + abstract public function process( $action_settings, $form ); /** * Register the actions. diff --git a/includes/Actions/Email.php b/includes/Actions/Email.php index b45d923a..1f127eac 100644 --- a/includes/Actions/Email.php +++ b/includes/Actions/Email.php @@ -62,7 +62,7 @@ private function get_default_settings() { * * @param array $action_settings Te action settings. */ - public function process( $action_settings ) { + public function process( $action_settings, $form ) { $settings = array_merge( $this->settings, $action_settings ); $this->log( 'debug', 'Mail Settings:', $settings ); @@ -96,7 +96,10 @@ public function process( $action_settings ) { $result = wp_mail( $to, $subject, $message, $headers ); - $this->log( 'debug', __METHOD__ . '(). Mail details:', array( $to, $subject, $message, $headers ) ); + if ( ! $result ) { + $this->log( 'debug', __METHOD__ . '(). Mail details:', array( $to, $subject, $message, $headers ) ); + $this->log( 'debug', __METHOD__ . '(). Form details:', $form->get_response() ); + } return true; } diff --git a/includes/Activator.php b/includes/Activator.php index d21c214a..aba85eb5 100644 --- a/includes/Activator.php +++ b/includes/Activator.php @@ -38,7 +38,7 @@ public static function activate() { "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}formello_submissions ( `id` INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, `form_id` INT UNSIGNED NOT NULL, - `data` TEXT NOT NULL, + `data` JSON NOT NULL, `is_new` BOOLEAN DEFAULT true, `starred` BOOLEAN DEFAULT false, `user_agent` TEXT NULL, diff --git a/includes/Admin.php b/includes/Admin.php index 7870b951..31e1d0d9 100644 --- a/includes/Admin.php +++ b/includes/Admin.php @@ -9,17 +9,6 @@ * @subpackage Formello/includes */ -/** - * The admin-specific functionality of the plugin. - * - * Defines the plugin name, version, and two examples hooks for how to - * enqueue the admin-specific stylesheet and JavaScript. - * - * @package Formello - * @subpackage Formello2 - * @author Francesco Pepe - */ - namespace Formello; /** diff --git a/includes/Blocks.php b/includes/Blocks.php index 0cde2801..15343edc 100644 --- a/includes/Blocks.php +++ b/includes/Blocks.php @@ -62,7 +62,6 @@ public function __construct( $plugin_name, $version, $entry_point ) { $this->plugin_name = $plugin_name; $this->version = $version; $this->entry_point = $entry_point; - add_shortcode( 'formello', array( $this, 'do_reusable_block' ) ); } /** @@ -80,19 +79,19 @@ public function register_blocks() { ); register_block_type_from_metadata( - plugin_dir_path( $this->entry_point ) . 'build/blocks/form', + plugin_dir_path( $this->entry_point ) . 'build/blocks/form' ); register_block_type_from_metadata( - plugin_dir_path( $this->entry_point ) . 'build/blocks/input', + plugin_dir_path( $this->entry_point ) . 'build/blocks/input' ); register_block_type_from_metadata( - plugin_dir_path( $this->entry_point ) . 'build/blocks/textarea', + plugin_dir_path( $this->entry_point ) . 'build/blocks/textarea' ); register_block_type_from_metadata( - plugin_dir_path( $this->entry_point ) . 'build/blocks/select', + plugin_dir_path( $this->entry_point ) . 'build/blocks/select' ); register_block_type_from_metadata( @@ -108,7 +107,7 @@ public function register_blocks() { ); register_block_type_from_metadata( - plugin_dir_path( $this->entry_point ) . 'build/blocks/button', + plugin_dir_path( $this->entry_point ) . 'build/blocks/button' ); } @@ -144,7 +143,7 @@ public function do_reusable_block( $attributes ) { $form_context = \Formello\Utils\formello_form_context( $attributes['ref'] ); - if ( $form_context['enableJsValidation'] ) { + if ( ! empty( $form_context['enableJsValidation'] ) ) { // phpcs:ignore wp_enqueue_script( 'bouncer', 'https://cdn.jsdelivr.net/gh/cferdinandi/bouncer@1.4.6/dist/bouncer.min.js' ); } @@ -167,6 +166,7 @@ public function do_reusable_block( $attributes ) { 'version' => $form_context['version'] ?? '1', ), 'errors' => array(), + 'debug' => $form_context['debug'], ) ); @@ -182,7 +182,12 @@ public function do_reusable_block( $attributes ) { $p->set_attribute( 'data-id', $attributes['ref'] ); } - if ( $p->next_tag( array( 'tag_name' => 'input', 'class_name' => 'formello-hp' ) ) ) { + if ( $p->next_tag( + array( + 'tag_name' => 'input', + 'class_name' => 'formello-hp', + ) + ) ) { $p->set_attribute( 'name', '_formello_h' . $attributes['ref'] ); $p->set_attribute( 'aria-label', __( 'If you are human, leave this field blank.', 'formello' ) ); } @@ -215,7 +220,7 @@ public function register_block_category( $categories ) { 'slug' => 'formello', 'title' => __( 'Formello' ), ), - ), + ) ); } diff --git a/includes/Deactivator.php b/includes/Deactivator.php index 1262310a..cab7dd34 100644 --- a/includes/Deactivator.php +++ b/includes/Deactivator.php @@ -32,5 +32,4 @@ class Deactivator { */ public static function deactivate() { } - } diff --git a/includes/Frontend.php b/includes/Frontend.php index f2b63954..3a97a3b0 100644 --- a/includes/Frontend.php +++ b/includes/Frontend.php @@ -115,7 +115,10 @@ public function process_form( $form ) { wp_schedule_single_event( time() + 60, 'formello_process_form_action_' . $action_settings['type'], - array( 'action_settings' => $action_settings ), + array( + 'action_settings' => $action_settings, + 'form' => $form, + ), true ); } else { diff --git a/includes/I18n.php b/includes/I18n.php index 8552d550..e3424f81 100644 --- a/includes/I18n.php +++ b/includes/I18n.php @@ -35,7 +35,7 @@ class I18n { public function load_plugin_textdomain() { load_plugin_textdomain( - 'formello2', + 'formello', false, dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/' ); diff --git a/includes/Loader.php b/includes/Loader.php index c1afce01..eb821778 100644 --- a/includes/Loader.php +++ b/includes/Loader.php @@ -1,5 +1,4 @@ actions = array(); $this->filters = array(); - + $this->shortcodes = array(); } /** * Add a new action to the collection to be registered with WordPress. * * @since 1.0.0 - * @param string $hook The name of the WordPress action that is being registered. - * @param object $component A reference to the instance of the object on which the action is defined. - * @param string $callback The name of the function definition on the $component. - * @param int $priority Optional. The priority at which the function should be fired. Default is 10. - * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1. + * @param string $hook The name of the WordPress action that is being registered. + * @param object $component A reference to the instance of the object on which the action is defined. + * @param string $callback The name of the function definition on the $component. + * @param int $priority Optional. The priority at which the function should be fired. Default is 10. + * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1. */ public function add_action( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) { $this->actions = $this->add( $this->actions, $hook, $component, $callback, $priority, $accepted_args ); @@ -73,28 +81,42 @@ public function add_action( $hook, $component, $callback, $priority = 10, $accep * Add a new filter to the collection to be registered with WordPress. * * @since 1.0.0 - * @param string $hook The name of the WordPress filter that is being registered. - * @param object $component A reference to the instance of the object on which the filter is defined. - * @param string $callback The name of the function definition on the $component. - * @param int $priority Optional. The priority at which the function should be fired. Default is 10. - * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1 + * @param string $hook The name of the WordPress filter that is being registered. + * @param object $component A reference to the instance of the object on which the filter is defined. + * @param string $callback The name of the function definition on the $component. + * @param int $priority Optional. The priority at which the function should be fired. Default is 10. + * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1. */ public function add_filter( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) { $this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args ); } + /** + * Add a new shortcode to the collection to be registered with WordPress + * + * @since 1.0.0 + * @param string $tag The name of the new shortcode. + * @param object $component A reference to the instance of the object on which the shortcode is defined. + * @param string $callback The name of the function that defines the shortcode. + * @param int $priority Optional. The priority at which the function should be fired. Default is 10. + * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1. + */ + public function add_shortcode( $tag, $component, $callback, $priority = 10, $accepted_args = 2 ) { + $this->shortcodes = $this->add( $this->shortcodes, $tag, $component, $callback, $priority, $accepted_args ); + } + /** * A utility function that is used to register the actions and hooks into a single * collection. * * @since 1.0.0 * @access private - * @param array $hooks The collection of hooks that is being registered (that is, actions or filters). - * @param string $hook The name of the WordPress filter that is being registered. - * @param object $component A reference to the instance of the object on which the filter is defined. - * @param string $callback The name of the function definition on the $component. - * @param int $priority The priority at which the function should be fired. - * @param int $accepted_args The number of arguments that should be passed to the $callback. + * @param array $hooks The collection of hooks that is being registered (that is, actions or filters). + * @param string $hook The name of the WordPress filter that is being registered. + * @param object $component A reference to the instance of the object on which the filter is defined. + * @param string $callback The name of the function definition on the $component. + * @param int $priority The priority at which the function should be fired. + * @param int $accepted_args The number of arguments that should be passed to the $callback. * @return array The collection of actions and filters registered with WordPress. */ private function add( $hooks, $hook, $component, $callback, $priority, $accepted_args ) { @@ -104,11 +126,10 @@ private function add( $hooks, $hook, $component, $callback, $priority, $accepted 'component' => $component, 'callback' => $callback, 'priority' => $priority, - 'accepted_args' => $accepted_args + 'accepted_args' => $accepted_args, ); return $hooks; - } /** @@ -126,6 +147,8 @@ public function run() { add_action( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] ); } + foreach ( $this->shortcodes as $hook ) { + add_shortcode( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] ); + } } - } diff --git a/includes/Log.php b/includes/Log.php new file mode 100644 index 00000000..c3c6c52b --- /dev/null +++ b/includes/Log.php @@ -0,0 +1,110 @@ +logger = new Logger( + formello_dir() . '/logs', + 'debug', + array( + 'filename' => 'formellog_' . get_option( 'formello_installed' ), + 'flushFrequency' => 300, + ) + ); + $this->log_active = true; + } + // phpcs:ignore + // add_action( 'wp_error_added', array( $this, 'log_wp_error' ), 10, 4 ); + } + + /** + * Register our dynamic blocks. + * + * @param string $level The level. + * @param string $message The message. + * @param array $context The context. + * + * @since 1.2.0 + */ + public function log( $level, $message, $context = array() ) { + if ( $this->log_active ) { + $this->logger->log( $level, $message, $context ); + } + } + + /** + * Log WP errors. + * + * @param string $code The level. + * @param string $message The message. + * @param array $data The context. + * @param WP_Error $wp_error The context. + * + * @since 1.2.0 + */ + public function log_wp_error( $code, $message, $data, $wp_error ) { + if ( $this->log_active ) { + $this->logger->log( 'error', $wp_error->get_error_message(), $wp_error->get_all_error_data() ); + } + } +} diff --git a/includes/OLD/Utils/functions.php b/includes/OLD/Utils/functions.php index 99625601..07b3ea43 100644 --- a/includes/OLD/Utils/functions.php +++ b/includes/OLD/Utils/functions.php @@ -277,14 +277,17 @@ function add_submissions_count() { global $wpdb; - $results = $wpdb->get_results( - $wpdb->prepare( - 'SELECT + $sql = 'SELECT form_id, count(*) AS total, SUM( is_new = 1 ) AS news FROM %i - GROUP BY form_id', + GROUP BY form_id'; + + $results = $wpdb->get_results( + $wpdb->prepare( + // phpcs:ignore + $sql, array( "{$wpdb->prefix}formello_submissions" ) ), ARRAY_A @@ -316,15 +319,6 @@ function add_submissions_count() { ); } -/** - * Enqueue Editor assets. - */ -function enqueue_editor_assets() { - wp_enqueue_script( - 'formello-new-form', - ); -} - // phpcs:ignore. add_filter( 'cron_schedules', __NAMESPACE__ . '\formello_cron_schedules' ); add_filter( 'option_formello', __NAMESPACE__ . '\formello_decrypt_option', 5 ); @@ -332,4 +326,3 @@ function enqueue_editor_assets() { add_filter( 'allowed_block_types_all', __NAMESPACE__ . '\formello_allowed_blocks', 10, 2 ); add_filter( 'upload_mimes', __NAMESPACE__ . '\formello_custom_mime_types', 10 ); add_action( 'rest_api_init', __NAMESPACE__ . '\add_submissions_count', 10, 2 ); -add_action( 'enqueue_block_editor_assets', __NAMESPACE__ . '\enqueue_editor_assets' ); diff --git a/includes/Plugin.php b/includes/Plugin.php index 5ea32f67..a21e5dae 100644 --- a/includes/Plugin.php +++ b/includes/Plugin.php @@ -152,6 +152,7 @@ private function define_public_hooks() { $this->loader->add_action( 'init', $blocks, 'register_blocks' ); $this->loader->add_action( 'init', $blocks, 'register_block_pattern_category' ); $this->loader->add_action( 'block_categories_all', $blocks, 'register_block_category' ); + $this->loader->add_shortcode( 'formello', $blocks, 'do_reusable_block' ); $frontend = new Frontend( $this->plugin_name, $this->version ); @@ -167,11 +168,19 @@ private function define_public_hooks() { $this->loader->add_action( 'rest_api_init', $columns, 'register_routes' ); $license = new Rest\License( $this->plugin_name, $this->version ); $this->loader->add_action( 'rest_api_init', $license, 'register_routes' ); + $importer = new Rest\Importer( $this->plugin_name, $this->version ); + $this->loader->add_action( 'rest_api_init', $importer, 'register_routes' ); + // Cron Tasks. $cron = new Cron( $this->plugin_name, $this->version ); + $this->loader->add_action( 'formello_retrieve_news', $cron, 'get_news' ); $this->loader->add_action( 'formello_delete_logs', $cron, 'delete_logs' ); $this->loader->add_action( 'formello_delete_tmp', $cron, 'delete_tmp' ); + + // Actions. + $email = new Actions\Email(); + $email->hook(); } /** diff --git a/includes/Rest/Base.php b/includes/Rest/Base.php index 730aa925..ba96f963 100644 --- a/includes/Rest/Base.php +++ b/includes/Rest/Base.php @@ -84,7 +84,7 @@ public function register_routes() { protected function response( $data ) { return new \WP_REST_Response( $data, - 200, + 200 ); } diff --git a/includes/Rest/Template.php b/includes/Rest/Importer.php similarity index 77% rename from includes/Rest/Template.php rename to includes/Rest/Importer.php index 26189afe..63fb364f 100644 --- a/includes/Rest/Template.php +++ b/includes/Rest/Importer.php @@ -1,6 +1,6 @@ namespace = 'formello/v1'; $this->rest_base = 'forms'; } /** - * Register the routes - * - * @return void + * {inheritDoc} */ - public function register_routes() { - - // Export Templates. - register_rest_route( - $this->namespace, - $this->rest_base . '/export', - array( - 'methods' => \WP_REST_Server::EDITABLE, + public function endpoints() { + return array( + '/export' => array( + 'methods' => \WP_REST_Server::EDITABLE, 'callback' => array( $this, 'export_forms' ), 'permission_callback' => array( $this, 'update_settings_permissions' ), - ) - ); - - // Get Templates. - register_rest_route( - $this->namespace, - $this->rest_base . '/import', - array( - 'methods' => \WP_REST_Server::EDITABLE, + ), + '/import' => array( + 'methods' => \WP_REST_Server::EDITABLE, 'callback' => array( $this, 'import_forms' ), 'permission_callback' => array( $this, 'update_settings_permissions' ), - ) + ), ); } @@ -89,7 +76,7 @@ public function import_forms( $request ) { $filetype = finfo_file( $fileinfo, $filepath ); if ( $fileSize > 3145728 ) { // 3 MB (1 byte * 1024 * 1024 * 3 (for 3 MB)). - return $this->error( 'no_templates', __( 'File max size is 3MB.', 'formello' ) ); + return $this->error( 'file_too_large', __( 'File max size is 3MB.', 'formello' ) ); } $allowedTypes = array( @@ -98,7 +85,7 @@ public function import_forms( $request ) { ); if ( ! in_array( $filetype, array_keys( $allowedTypes ) ) ) { - return $this->error( 'no_templates', __( 'Allowed file is json.', 'formello' ) ); + return $this->error( 'wrong_filetype', __( 'Allowed file is json.', 'formello' ) ); } $forms = $wp_filesystem->get_contents( $filepath ); @@ -122,7 +109,10 @@ public function import_forms( $request ) { } - return __( 'Forms imported!', 'formello' ); + return array( + 'success' => true, + 'response' => __( 'Forms imported!', 'formello' ), + ); } /** diff --git a/includes/Rest/License.php b/includes/Rest/License.php index c0db87ac..2d8dc9cb 100644 --- a/includes/Rest/License.php +++ b/includes/Rest/License.php @@ -133,7 +133,7 @@ public function deactivate_license( \WP_REST_Request $request ) { } else { $message = __( 'License key not valid.' ); } - return $this->failed( $message ); + return $this->error( 'generic_error', $message ); } $license_data = json_decode( wp_remote_retrieve_body( $response ) ); diff --git a/includes/Rest/Submissions.php b/includes/Rest/Submissions.php index fcd84600..d2f00d6d 100644 --- a/includes/Rest/Submissions.php +++ b/includes/Rest/Submissions.php @@ -187,7 +187,13 @@ protected function response( $data ) { public function get_submission( $request ) { $id = $request->get_param( 'id' ); - $data = $this->get_from_db( $id ); + $data = $this->get_from_db( $id ); + if ( ! $data ) { + return new \WP_REST_Response( + 'Not found', + 404 + ); + } $submission = $this->get_object( $data ); return $submission; diff --git a/includes/TagReplacers/Fields.php b/includes/TagReplacers/Fields.php index b77201c5..19fe20ae 100644 --- a/includes/TagReplacers/Fields.php +++ b/includes/TagReplacers/Fields.php @@ -33,7 +33,7 @@ public function get_data( $param ) { */ public function all_fields() { if ( is_rtl() ) { - $return = ''; + $return = '
    '; } else { $return = '
    '; } diff --git a/includes/Utils/functions.php b/includes/Utils/functions.php index bbeac222..aac97d66 100644 --- a/includes/Utils/functions.php +++ b/includes/Utils/functions.php @@ -304,13 +304,26 @@ function add_submissions_count() { $news = array_column( $query, 'news', 'form_id' ); return array( - 'total' => $total[ $form['id'] ] ?? '', - 'news' => $news[ $form['id'] ] ?? '', + 'total' => isset( $total[ $form['id'] ] ) ? (int) $total[ $form['id'] ] : 0, + 'news' => isset( $news[ $form['id'] ] ) ? (int) $news[ $form['id'] ] : 0, ); }, 'schema' => array( 'description' => 'List number of submissions attached to this form.', - 'type' => 'integer', + 'type' => 'object', + // In JSON Schema you can specify object properties in the properties attribute. + 'properties' => array( + 'total' => array( + 'type' => 'integer', + 'context' => array( 'view', 'edit', 'embed' ), + 'readonly' => true, + ), + 'news' => array( + 'type' => 'integer', + 'context' => array( 'view', 'edit', 'embed' ), + 'readonly' => true, + ), + ), ), ) ); diff --git a/includes/Utils/register-cpt.php b/includes/Utils/register-cpt.php index 2266ec21..e56a559b 100644 --- a/includes/Utils/register-cpt.php +++ b/includes/Utils/register-cpt.php @@ -51,7 +51,7 @@ function register_cpt() { 'formello/form', ), ), - //'template_lock' => 'insert', + // 'template_lock' => 'insert', 'supports' => array( 'author', 'title', @@ -75,6 +75,7 @@ function register_cpt_meta() { 'storeSubmissions' => true, 'captchaEnabled' => false, 'captchaType' => '', + 'enableJsValidation' => true, 'hide' => false, 'debug' => false, 'redirectUrl' => '', @@ -115,7 +116,22 @@ function register_cpt_meta() { ), ), ), - 'default' => array(), + 'default' => array( + array( + 'async' => true, + 'type' => 'email', + 'name' => 'Email', + 'to' => 'aaaaaaaaaaaaaaaaaaaaaaaaaaa', + 'from' => 'aaaaaaaaaaaaa', + 'cc' => '', + 'bcc' => '', + 'replyTo' => 'aaaaaaaaaaaaaaa', + 'subject' => 'aaaaaaa', + 'message' => '

    aaaaaaaaaaaaaa

    ', + 'advanced' => false, + 'id' => 1, + ), + ), 'single' => true, 'type' => 'array', 'additionalProperties' => true, diff --git a/includes/Validators/MaxLengthRule.php b/includes/Validators/MaxLengthRule.php index 41913220..ff1d75ec 100644 --- a/includes/Validators/MaxLengthRule.php +++ b/includes/Validators/MaxLengthRule.php @@ -1,29 +1,55 @@ requireParameters( $this->fillableParams ); - - $length = (int) $this->parameter('maxlength'); - - // true for valid, false for invalid - return strlen( $value ) <= $length; - } -} \ No newline at end of file +/** + * Max length Validator + */ +class MaxLengthRule extends Rule { + + /** + * {inheritDoc} + * + * @var string + */ + protected $message = ':attribute :value has been used'; + + /** + * {inheritDoc} + * + * @var array + */ + protected $fillableParams = array( 'maxlength' ); + + /** + * {inheritDoc} + */ + public function __construct() { + } + + /** + * {inheritDoc} + * + * @param string $value Value to check. + * @return boolean + */ + public function check( $value ): bool { + $this->requireParameters( $this->fillableParams ); + + $length = (int) $this->parameter( 'maxlength' ); + + // true for valid, false for invalid. + return strlen( $value ) <= $length; + } +} diff --git a/includes/Validators/MinLengthRule.php b/includes/Validators/MinLengthRule.php index 6050ab12..ce52e2a8 100644 --- a/includes/Validators/MinLengthRule.php +++ b/includes/Validators/MinLengthRule.php @@ -1,29 +1,55 @@ requireParameters( $this->fillableParams ); - - $length = (int) $this->parameter('minlength'); - - // true for valid, false for invalid - return strlen( $value ) >= $length; - } -} \ No newline at end of file +/** + * Min length Validator + */ +class MinLengthRule extends Rule { + + /** + * {inheritDoc} + * + * @var string + */ + protected $message = ':attribute :value has been used'; + + /** + * {inheritDoc} + * + * @var array + */ + protected $fillableParams = array( 'minlength' ); + + /** + * {inheritDoc} + */ + public function __construct() { + } + + /** + * {inheritDoc} + * + * @param string $value Value to check. + * @return boolean + */ + public function check( $value ): bool { + $this->requireParameters( $this->fillableParams ); + + $length = (int) $this->parameter( 'minlength' ); + + // true for valid, false for invalid. + return strlen( $value ) >= $length; + } +} diff --git a/phpcs.xml.dist b/phpcs.xml.dist index 383f2b30..559fd5a1 100644 --- a/phpcs.xml.dist +++ b/phpcs.xml.dist @@ -23,6 +23,8 @@ + + @@ -32,8 +34,12 @@ - - + + + + + *\.php$ + @@ -49,4 +55,8 @@ + + *render.php$ + + \ No newline at end of file diff --git a/src/admin/pages/submission/fields-data.js b/src/admin/pages/submission/fields-data.js index e3179869..7031034d 100644 --- a/src/admin/pages/submission/fields-data.js +++ b/src/admin/pages/submission/fields-data.js @@ -16,10 +16,9 @@ export function FieldsData( props ) {
    { Object.keys( data ).map( ( key, i ) => { - const field = - 'string' !== typeof data[ key ] - ? JSON.stringify( data[ key ] ) - : data[ key ]; + const field = JSON.parse( + JSON.stringify( data[ key ] ) + ); return ( diff --git a/src/admin/pages/submission/index.js b/src/admin/pages/submission/index.js index 14b2734f..fb66c3c6 100644 --- a/src/admin/pages/submission/index.js +++ b/src/admin/pages/submission/index.js @@ -28,7 +28,9 @@ export const Submission = () => { params.submission_id || getQueryArg( window.location.href, 'submission_id' ) ); - const { saveEntityRecord } = useDispatch( coreStore ); + + const { saveEntityRecord, invalidateResolutionForStore } = + useDispatch( coreStore ); useEffect( () => { if ( parseInt( submission.record?.details.is_new ) ) { @@ -36,27 +38,40 @@ export const Submission = () => { id: submission.record.id, details: { is_new: false }, } ); + invalidateResolutionForStore(); } }, [] ); if ( 'ERROR' === submission.status ) { return ( - -

    { __( 'Submission Not Found.', 'formello' ) }

    - -
    + +
    +
    + +

    { __( 'Submission Not Found.', 'formello' ) }

    + +
    +
    +
    ); } diff --git a/src/admin/pages/submission/submission-data.js b/src/admin/pages/submission/submission-data.js index f557b834..b4eaff23 100644 --- a/src/admin/pages/submission/submission-data.js +++ b/src/admin/pages/submission/submission-data.js @@ -41,7 +41,8 @@ export function SubmissionData( props ) { diff --git a/src/admin/pages/submissions/forms.js b/src/admin/pages/submissions/forms.js index 308b8662..c696466c 100644 --- a/src/admin/pages/submissions/forms.js +++ b/src/admin/pages/submissions/forms.js @@ -107,11 +107,12 @@ export const Forms = () => { ...filters, }; }, [ view ] ); - const { records: forms, isResolving: isLoadingForms, totalItems, totalPages } = useEntityRecords( - 'postType', - 'formello_form', - queryArgs - ); + const { + records: forms, + isResolving: isLoadingForms, + totalItems, + totalPages, + } = useEntityRecords( 'postType', 'formello_form', queryArgs ); const paginationInfo = useMemo( () => { return { @@ -148,11 +149,6 @@ export const Forms = () => { item.title?.rendered || item.slug ) || __( '(no title)' ) } - { item.submissions_count.news > 0 && ( - - { item.submissions_count.news } - - ) } ); }, @@ -183,6 +179,11 @@ export const Forms = () => { } } > { item.submissions_count.total } + { item.submissions_count.news > 0 && ( + + { item.submissions_count.news } + + ) } ); diff --git a/src/admin/pages/submissions/submissions.js b/src/admin/pages/submissions/submissions.js index 38be8f86..6ab8c228 100644 --- a/src/admin/pages/submissions/submissions.js +++ b/src/admin/pages/submissions/submissions.js @@ -11,7 +11,13 @@ import { } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; import { decodeEntities } from '@wordpress/html-entities'; -import { useState, useMemo, useCallback, Fragment } from '@wordpress/element'; +import { + useState, + useMemo, + useCallback, + Fragment, + RawHTML, +} from '@wordpress/element'; import { dateI18n, getDate, getSettings } from '@wordpress/date'; import { heading, seen, starFilled } from '@wordpress/icons'; import { trashSubmissionAction } from '../../components/actions/submission.js'; @@ -24,7 +30,7 @@ import { /** * Internal dependencies */ -import { DataViews, filterSortAndPaginate } from '@wordpress/dataviews'; +import { DataViews } from '@wordpress/dataviews'; import Header from '../../components/masthead.js'; import { useHistory, useLocation } from '../../router'; @@ -64,7 +70,6 @@ export const Submissions = () => { search: '', // All fields are visible by default, so it's // better to keep track of the hidden ones. - hiddenFields: [ 'id' ], layout: defaultLayouts.table.layout, } ); @@ -101,12 +106,6 @@ export const Submissions = () => { const columns = useEntityRecord( 'formello/v1', 'columns', params.form_id ); - const { record: form } = useEntityRecord( - 'postType', - 'formello_form', - params.form_id - ); - const getColumns = useCallback( () => { if ( columns.hasResolved ) { return columns.record.columns; @@ -170,6 +169,7 @@ export const Submissions = () => { history.push( { page: 'formello', section: 'submission', + form_id: params.form_id, submission_id: item.id, } ) } @@ -196,9 +196,9 @@ export const Submissions = () => { return ; } return ( - + { decodeEntities( item.fields[ key ] ) } - + ); }, enableSorting: true, @@ -207,11 +207,8 @@ export const Submissions = () => { return _fields.concat( _columns ); }, [ history, getColumns ] ); - /*const { data: shownData, paginationInfo } = useMemo( () => { - return filterSortAndPaginate( submissions, view, fields ); - }, [ view, submissions, fields ] );*/ - const { saveEntityRecord } = useDispatch( coreStore ); + const actions = useMemo( () => [ { @@ -233,7 +230,7 @@ export const Submissions = () => { id: 'mark-as-starred', label: __( 'Toggle favorite' ), isPrimary: false, - isBulk: true, + supportsBulk: true, isEligible: () => true, icon: starFilled, callback: ( posts ) => { @@ -250,7 +247,7 @@ export const Submissions = () => { id: 'mark-as-new', label: __( 'Toggle new' ), isPrimary: false, - isBulk: true, + supportsBulk: true, icon: heading, callback: ( posts ) => { const post = posts[ 0 ]; diff --git a/src/admin/pages/submissions/test.ts b/src/admin/pages/submissions/test.ts new file mode 100644 index 00000000..b3abc34e --- /dev/null +++ b/src/admin/pages/submissions/test.ts @@ -0,0 +1,165 @@ +/** + * External dependencies + */ +import removeAccents from 'remove-accents'; + +/** + * Internal dependencies + */ +import { + OPERATOR_IS, + OPERATOR_IS_NOT, + OPERATOR_IS_NONE, + OPERATOR_IS_ANY, + OPERATOR_IS_ALL, + OPERATOR_IS_NOT_ALL, +} from './constants'; +import { normalizeFields } from './normalize-fields'; +import type { Field, View } from './types'; + +function normalizeSearchInput( input = '' ) { + return removeAccents( input.trim().toLowerCase() ); +} + +const EMPTY_ARRAY: [] = []; + +/** + * Applies the filtering, sorting and pagination to the raw data based on the view configuration. + * + * @param data Raw data. + * @param view View config. + * @param fields Fields config. + * + * @return Filtered, sorted and paginated data. + */ +export function filterSortAndPaginate< Item >( + data: Item[], + view: View, + fields: Field< Item >[] +): { + data: Item[]; + paginationInfo: { totalItems: number; totalPages: number }; +} { + if ( ! data ) { + return { + data: EMPTY_ARRAY, + paginationInfo: { totalItems: 0, totalPages: 0 }, + }; + } + const _fields = normalizeFields( fields ); + let filteredData = [ ...data ]; + // Handle global search. + if ( view.search ) { + const normalizedSearch = normalizeSearchInput( view.search ); + filteredData = filteredData.filter( ( item ) => { + return _fields + .filter( ( field ) => field.enableGlobalSearch ) + .map( ( field ) => { + return normalizeSearchInput( field.getValue( { item } ) ); + } ) + .some( ( field ) => field.includes( normalizedSearch ) ); + } ); + } + + if ( view.filters && view.filters?.length > 0 ) { + view.filters.forEach( ( filter ) => { + const field = _fields.find( + ( _field ) => _field.id === filter.field + ); + if ( field ) { + if ( + filter.operator === OPERATOR_IS_ANY && + filter?.value?.length > 0 + ) { + filteredData = filteredData.filter( ( item ) => { + const fieldValue = field.getValue( { item } ); + if ( Array.isArray( fieldValue ) ) { + return filter.value.some( ( filterValue: any ) => + fieldValue.includes( filterValue ) + ); + } else if ( typeof fieldValue === 'string' ) { + return filter.value.includes( fieldValue ); + } + return false; + } ); + } else if ( + filter.operator === OPERATOR_IS_NONE && + filter?.value?.length > 0 + ) { + filteredData = filteredData.filter( ( item ) => { + const fieldValue = field.getValue( { item } ); + if ( Array.isArray( fieldValue ) ) { + return ! filter.value.some( ( filterValue: any ) => + fieldValue.includes( filterValue ) + ); + } else if ( typeof fieldValue === 'string' ) { + return ! filter.value.includes( fieldValue ); + } + return false; + } ); + } else if ( + filter.operator === OPERATOR_IS_ALL && + filter?.value?.length > 0 + ) { + filteredData = filteredData.filter( ( item ) => { + return filter.value.every( ( value: any ) => { + return field + .getValue( { item } ) + ?.includes( value ); + } ); + } ); + } else if ( + filter.operator === OPERATOR_IS_NOT_ALL && + filter?.value?.length > 0 + ) { + filteredData = filteredData.filter( ( item ) => { + return filter.value.every( ( value: any ) => { + return ! field + .getValue( { item } ) + ?.includes( value ); + } ); + } ); + } else if ( filter.operator === OPERATOR_IS ) { + filteredData = filteredData.filter( ( item ) => { + return filter.value === field.getValue( { item } ); + } ); + } else if ( filter.operator === OPERATOR_IS_NOT ) { + filteredData = filteredData.filter( ( item ) => { + return filter.value !== field.getValue( { item } ); + } ); + } + } + } ); + } + + // Handle sorting. + if ( view.sort ) { + const fieldId = view.sort.field; + const fieldToSort = _fields.find( ( field ) => { + return field.id === fieldId; + } ); + if ( fieldToSort ) { + filteredData.sort( ( a, b ) => { + return fieldToSort.sort( a, b, view.sort?.direction ?? 'desc' ); + } ); + } + } + + // Handle pagination. + let totalItems = filteredData.length; + let totalPages = 1; + if ( view.page !== undefined && view.perPage !== undefined ) { + const start = ( view.page - 1 ) * view.perPage; + totalItems = filteredData?.length || 0; + totalPages = Math.ceil( totalItems / view.perPage ); + filteredData = filteredData?.slice( start, start + view.perPage ); + } + + return { + data: filteredData, + paginationInfo: { + totalItems, + totalPages, + }, + }; +} \ No newline at end of file diff --git a/src/admin/pages/tools/tabs/exporter.js b/src/admin/pages/tools/tabs/exporter.js index de37f823..6ae89c12 100644 --- a/src/admin/pages/tools/tabs/exporter.js +++ b/src/admin/pages/tools/tabs/exporter.js @@ -1,7 +1,5 @@ import { Card, CardHeader, CardBody, withFilters } from '@wordpress/components'; -import { applyFilters } from '@wordpress/hooks'; - import { __ } from '@wordpress/i18n'; import ExportForms from '../components/export-forms'; @@ -23,8 +21,6 @@ const Exporter = () => { ); -} +}; -export default withFilters( 'formello.settings.exporter' )( - Exporter -); +export default withFilters( 'formello.settings.exporter' )( Exporter ); diff --git a/src/admin/style.scss b/src/admin/style.scss index 71206413..ff5a695b 100644 --- a/src/admin/style.scss +++ b/src/admin/style.scss @@ -400,4 +400,13 @@ $mobile: 426px; .formello-actions svg { width: 24px; +} + +div.field-content { + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + line-clamp: 3; + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; } \ No newline at end of file diff --git a/src/blocks/button/block.json b/src/blocks/button/block.json index eed38b0d..a7848b58 100644 --- a/src/blocks/button/block.json +++ b/src/blocks/button/block.json @@ -42,7 +42,10 @@ }, "selectors": { "root": ".wp-block-formello-button", - "color": ".wp-block-formello-button > button", + "color": { + "background": ".wp-block-formello-button > button", + "text": ".wp-block-formello-button > button" + }, "typography": { "root": ".wp-block-formello-button > button", "text-decoration": ".wp-block-formello-button > button" @@ -74,6 +77,11 @@ "fontSize": true } }, + "example": { + "attributes": { + "text": "Submit" + } + }, "editorScript": "file:./index.js", "style": "file:./style-index.css", "render": "file:./render.php" diff --git a/src/blocks/button/edit.js b/src/blocks/button/edit.js index a1addd1e..3ccc75e2 100644 --- a/src/blocks/button/edit.js +++ b/src/blocks/button/edit.js @@ -98,7 +98,7 @@ export default function Edit( { attributes, setAttributes } ) { return (
    - diff --git a/src/blocks/button/render.php b/src/blocks/button/render.php index a96e1d17..93178d90 100644 --- a/src/blocks/button/render.php +++ b/src/blocks/button/render.php @@ -8,7 +8,11 @@ * $block (WP_Block): The block instance. * * @see https://github.com/WordPress/gutenberg/blob/trunk/docs/reference-guides/block-api/block-metadata.md#render - * @package formello + * @link https://www.francescopepe.com + * @since 1.0.0 + * + * @package Formello + * @subpackage Formello/includes */ $config = wp_interactivity_config( 'formello' ); @@ -20,7 +24,7 @@ '
    ', 'reCaptcha' === $state['captcha']['type'] ? 'g-recaptcha' : 'h-captcha', $config['settings'][ $state['captcha']['type'] ]['site_key'], - '1' === $config['settings'][ $state['captcha']['type'] ]['version'] ? 'normal' : 'invisible', + '1' === $config['settings'][ $state['captcha']['type'] ]['version'] ? 'normal' : 'invisible' ); } @@ -50,3 +54,7 @@ } echo $captcha . $p->get_updated_html() . $message; + +if ( ! is_admin() && current_user_can( 'manage_options' ) && $state['debug'] ) { + echo $debug; +} diff --git a/src/blocks/button/save.js b/src/blocks/button/save.js index a623452f..94f8ec47 100644 --- a/src/blocks/button/save.js +++ b/src/blocks/button/save.js @@ -55,6 +55,7 @@ export default function save( { attributes } ) { type="submit" { ...useBlockProps.save( { className: buttonClasses, + style: colorProps.style, } ) } > @@ -69,7 +70,11 @@ export default function save( { attributes } ) { className: alignment, } ) } > - diff --git a/src/blocks/button/style.scss b/src/blocks/button/style.scss index 14f856a0..5111aa25 100644 --- a/src/blocks/button/style.scss +++ b/src/blocks/button/style.scss @@ -2,6 +2,7 @@ display: flex; flex-direction: row; align-items: center; + flex: 1; button { display: flex; diff --git a/src/blocks/fieldset/block.json b/src/blocks/fieldset/block.json index d8e307f7..4a214399 100644 --- a/src/blocks/fieldset/block.json +++ b/src/blocks/fieldset/block.json @@ -52,5 +52,24 @@ } } }, + "example": { + "attributes": { + "legend": "Preferences" + }, + "innerBlocks": [ + { + "name": "formello/input", + "attributes": { + "label": "Job" + } + }, + { + "name": "formello/textarea", + "attributes": { + "label": "Description" + } + } + ] + }, "editorScript": "file:./index.js" } \ No newline at end of file diff --git a/src/blocks/form/editor.scss b/src/blocks/form/editor.scss index 7ec4134e..a4ccc92f 100644 --- a/src/blocks/form/editor.scss +++ b/src/blocks/form/editor.scss @@ -87,4 +87,9 @@ body.post-type-formello_form { > div { margin-block-start: 1rem; } + .formello-modal-buttons { + display: flex; + flex-direction: row-reverse; + justify-content: space-between; + } } diff --git a/src/blocks/form/style.scss b/src/blocks/form/style.scss index 5e9d58f2..ae28b963 100644 --- a/src/blocks/form/style.scss +++ b/src/blocks/form/style.scss @@ -2,33 +2,6 @@ $label-width: 190px; $margin-left: 0.5em; $small-margin: 0 8px; -.formello-message { - display: none; - box-sizing: border-box; - padding: 1em; - p { - margin: 0; - } - - &.success { - display: block; - background-color: #dff0d8; - border: 1px solid #d0e9c6; - color: #3c763d; - } - - &.error:has(p:not(:empty)) { - display: block; - background-color: #fcf8e3; - border: 1px solid #faf2cc; - color: #8a6d3b; - } - - ul:not(:has(li)) { - display: none; - } -} - .wp-block-formello-form { display: flex; flex-direction: row; @@ -39,13 +12,18 @@ $small-margin: 0 8px; > .wp-block-formello-select, > .wp-block-formello-textarea, > .wp-block-formello-fieldset, - .formello-message { + > .wp-block-formello-multichoices { flex-basis: 100%; .wp-block-formello-button, .wp-block-formello-output { align-self: stretch; } } + .formello-message, + .formello-debug { + flex-basis: 100%; + } + /* HONEYPOT position */ .formello-hp { position: absolute !important; @@ -60,4 +38,39 @@ $small-margin: 0 8px; color: red; order: 4; } + + input:user-invalid { + border-color: red; + } +} + +.formello-message { + display: none; + box-sizing: border-box; + padding: 1em; + p { + margin: 0; + } + + &.success { + display: block; + background-color: #dff0d8; + border: 1px solid #d0e9c6; + color: #3c763d; + } + + &.error:has(p:not(:empty)) { + display: block; + background-color: #fcf8e3; + border: 1px solid #faf2cc; + color: #8a6d3b; + } + + ul:not(:has(li)) { + display: none; + } +} + +.formello-debug pre { + white-space: break-spaces; } diff --git a/src/blocks/input/block.json b/src/blocks/input/block.json index b7e0749c..4501ef16 100644 --- a/src/blocks/input/block.json +++ b/src/blocks/input/block.json @@ -254,6 +254,11 @@ "root": ".wp-block-formello-input > input" } }, + "example": { + "attributes": { + "label": "Name" + } + }, "editorStyle": "file:./index.css", "style": "file:./style-index.css", "editorScript": "file:./index.js", diff --git a/src/blocks/input/edit.js b/src/blocks/input/edit.js index 0fed3d6a..52fd04e7 100644 --- a/src/blocks/input/edit.js +++ b/src/blocks/input/edit.js @@ -20,7 +20,7 @@ import { SUPPORTED_ATTRIBUTES } from '../../components/field-options/constants'; import { getInputClassesAndStyles } from './use-field-props'; export default function Edit( props ) { - const { attributes, setAttributes, context } = props; + const { attributes, setAttributes } = props; const { type, showHelp, diff --git a/src/blocks/input/render.php b/src/blocks/input/render.php index 5ed52218..e35f2325 100644 --- a/src/blocks/input/render.php +++ b/src/blocks/input/render.php @@ -8,6 +8,11 @@ * $block (WP_Block): The block instance. * * @see https://github.com/WordPress/gutenberg/blob/trunk/docs/reference-guides/block-api/block-metadata.md#render + * @link https://www.francescopepe.com + * @since 1.0.0 + * + * @package Formello + * @subpackage Formello/includes */ $replacer = new Formello\TagReplacers\Replacer(); @@ -28,6 +33,20 @@ $p->set_attribute( 'data-wp-on--input', 'actions.setOutput' ); } + if ( 'tel' === $p->get_attribute( 'type' ) ) { + wp_enqueue_script( + 'intl-tel', + 'https://cdn.jsdelivr.net/npm/intl-tel-input@24.6.0/build/js/intlTelInput.min.js', + array(), + false, // phpcs:ignore + array( + 'strategy' => 'defer', + ) + ); + // phpcs:ignore + wp_enqueue_style( 'intl-tel', 'https://cdn.jsdelivr.net/npm/intl-tel-input@24.6.0/build/css/intlTelInput.css' ); + } + if ( 'password' === $p->get_attribute( 'type' ) ) { wp_enqueue_script( 'password-strength-meter' ); } @@ -36,11 +55,12 @@ 'flatpickr', 'https://cdn.jsdelivr.net/npm/flatpickr', array(), - false, + false, // phpcs:ignore array( 'strategy' => 'defer', - ), + ) ); + // phpcs:ignore wp_enqueue_style( 'flatpickr', 'https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css' ); } } diff --git a/src/blocks/input/style.scss b/src/blocks/input/style.scss index 44419fe6..4dde4737 100644 --- a/src/blocks/input/style.scss +++ b/src/blocks/input/style.scss @@ -27,10 +27,11 @@ } &:has(input[type=checkbox]), &:has(input[type=radio]) { - flex-direction: row; + //flex-direction: row; align-items: baseline; gap: .3em; - + display: grid; + grid-template-columns: min-content auto; input { order: 1; } @@ -39,6 +40,10 @@ } small { order: 3; + grid-column: 2 / -1; + } + .error-message { + grid-column: 2 / -1; } } diff --git a/src/blocks/input/use-field-props.js b/src/blocks/input/use-field-props.js index 7ef0d636..5aa7ee21 100644 --- a/src/blocks/input/use-field-props.js +++ b/src/blocks/input/use-field-props.js @@ -27,7 +27,6 @@ export function getInputClassesAndStyles( attributes ) { colorProps.className, { 'formello-advanced': advanced, - 'formello-rtf': advanced && 'textarea' === type, } ); diff --git a/src/blocks/library/config.js b/src/blocks/library/config.js index 6b5b9249..ee83149b 100644 --- a/src/blocks/library/config.js +++ b/src/blocks/library/config.js @@ -37,7 +37,7 @@ export const config = { }, }, tinyMce: { - selector: '.formello-rtf', + selector: 'textarea.formello-advanced', setup: ( editor ) => { editor.on( 'change', () => { window.tinymce.triggerSave(); diff --git a/src/blocks/library/edit.js b/src/blocks/library/edit.js index f36ac515..4843682b 100644 --- a/src/blocks/library/edit.js +++ b/src/blocks/library/edit.js @@ -182,6 +182,7 @@ export default function ReusableBlockEdit( { onChange={ ( val ) => { setAttributes( { ref: parseInt( val ) } ); } } + __nextHasNoMarginBottom /> @@ -200,6 +201,7 @@ export default function ReusableBlockEdit( { onChange={ ( val ) => { setAttributes( { ref: parseInt( val ) } ); } } + __nextHasNoMarginBottom /> ) : ( diff --git a/src/blocks/library/view.js b/src/blocks/library/view.js index 6ef0713b..5053a8e7 100644 --- a/src/blocks/library/view.js +++ b/src/blocks/library/view.js @@ -9,10 +9,10 @@ import { } from '@wordpress/interactivity'; import { config as jsConfig } from './config'; -const showLoading = ( e ) => { +const showLoading = ( e, force ) => { const btn = e.submitter || e.target.closest( 'button' ); - btn.classList.toggle( 'wp-block-formello-button--loading' ); - btn.toggleAttribute( 'disabled' ); + btn.classList.toggle( 'wp-block-formello-button--loading', force ); + btn.toggleAttribute( 'disabled', force ); }; const formSubmit = async ( e ) => { @@ -26,7 +26,7 @@ const formSubmit = async ( e ) => { formData.append( '_formello_id', id ); try { - showLoading( e ); + showLoading( e, true ); const req = await fetch( config.ajax_url, { method: 'POST', body: formData, @@ -35,11 +35,19 @@ const formSubmit = async ( e ) => { const res = await req.json(); context.response = res; - showLoading( e ); + showLoading( e, false ); + response( ref, res ); } catch ( err ) { - showLoading( e ); - state.response = { data: { message: err }, success: false }; + showLoading( e, false ); + if ( typeof err === 'string' || err instanceof String ) { + context.response = { data: { message: err }, success: false }; + } else { + context.response = { + data: { message: 'An error occurred' }, + success: false, + }; + } } }; @@ -80,10 +88,6 @@ const response = ( ref, res ) => { } if ( data.debug && res.success ) { - // eslint-disable-next-line no-console - const deguagData = ref.querySelector( '.formello-debug' ); - const position = data.hide ? 'beforebegin' : 'afterend'; - ref.insertAdjacentElement( position, deguagData ); // eslint-disable-next-line no-console console.log( data.debug ); } @@ -96,6 +100,9 @@ const response = ( ref, res ) => { const { state } = store( 'formello', { state: { + get pattern() { + return 'ciao'; + }, get debugData() { const context = getContext(); return JSON.stringify( context.response.data.debug, undefined, 2 ); @@ -184,6 +191,32 @@ const { state } = store( 'formello', { } window.tinymce?.init( jsConfig.tinyMce ); window.flatpickr?.( 'input.formello-advanced[type=date]' ); + + document + .querySelectorAll( 'input[type="tel"].formello-advanced' ) + .forEach( ( el ) => { + window.intlTelInput?.( el, { + loadUtilsOnInit: + 'https://cdn.jsdelivr.net/npm/intl-tel-input@24.6.0/build/js/utils.js', + hiddenInput( telInputName ) { + return { + phone: telInputName + '_full', + country: telInputName + '_country_code', + }; + }, + } ); + } ); + document + .querySelectorAll( 'select.formello-advanced' ) + .forEach( ( el ) => { + new window.TomSelect( el, { + create: true, + sortField: { + field: 'text', + direction: 'asc', + }, + } ); + } ); }, }, } ); diff --git a/src/blocks/multichoices/block.json b/src/blocks/multichoices/block.json index 6e19390e..31eb03a6 100644 --- a/src/blocks/multichoices/block.json +++ b/src/blocks/multichoices/block.json @@ -82,5 +82,16 @@ } } }, + "example": { + "attributes": { + "options": [{ + "label": "Windows" + }, { + "label": "MacOS" + },{ + "label": "Linux" + }] + } + }, "editorScript": "file:./index.js" } \ No newline at end of file diff --git a/src/blocks/multichoices/edit.js b/src/blocks/multichoices/edit.js index ff594d59..f0b236c9 100644 --- a/src/blocks/multichoices/edit.js +++ b/src/blocks/multichoices/edit.js @@ -16,6 +16,7 @@ import { } from '@wordpress/block-editor'; import { useState } from '@wordpress/element'; import { OptionsModal } from '../select/modal'; +import Toolbar from '../../components/field-options/toolbar'; import clsx from 'clsx'; export default function Edit( props ) { @@ -40,6 +41,7 @@ export default function Edit( props ) { + console.log( 'change' ) } id={ id } />
    diff --git a/src/blocks/output/block.json b/src/blocks/output/block.json index 38a4ca73..b8d7c49f 100644 --- a/src/blocks/output/block.json +++ b/src/blocks/output/block.json @@ -5,6 +5,7 @@ "title": "Output", "description": "A block to display number output.", "category": "formello", + "ancestor": ["formello/form"], "icon": "number", "textdomain": "formello", "attributes": { diff --git a/src/blocks/select/block.json b/src/blocks/select/block.json index 24cb96a5..a094484c 100644 --- a/src/blocks/select/block.json +++ b/src/blocks/select/block.json @@ -4,6 +4,7 @@ "name": "formello/select", "title": "Select", "ancestor": ["formello/form"], + "usesContext": ["formello/requiredText"], "description": "Dropdown select.", "category": "formello", "textdomain": "formello", @@ -109,6 +110,9 @@ "source": "html", "selector": "small", "default": "" + }, + "advanced": { + "type": "boolean" } }, "supports": { @@ -151,6 +155,18 @@ "root": ".wp-block-formello-select > select" } }, + "example": { + "attributes": { + "label": "Your OS", + "options": [{ + "label": "Windows" + }, { + "label": "MacOS" + },{ + "label": "Linux" + }] + } + }, "style": "file:./style-index.css", "editorScript": "file:./index.js", "render": "file:./render.php" diff --git a/src/blocks/select/edit.js b/src/blocks/select/edit.js index 9a6fdfd9..884b7b1d 100644 --- a/src/blocks/select/edit.js +++ b/src/blocks/select/edit.js @@ -95,7 +95,7 @@ export default function Edit( props ) { setAttributes( { val } ) } + onChange={ ( val ) => setAttributes( { help: val } ) } placeholder={ __( 'Enter help message…', 'formello' ) } allowedFormats={ [ 'core/bold', diff --git a/src/blocks/select/opts.js b/src/blocks/select/opts.js index eb086f33..0ff2bf4c 100644 --- a/src/blocks/select/opts.js +++ b/src/blocks/select/opts.js @@ -4,6 +4,7 @@ import { Flex, FlexItem, Button, + Tooltip, } from '@wordpress/components'; import { useRef } from '@wordpress/element'; @@ -44,33 +45,50 @@ const OptionsList = ( props ) => { draggable > - - onChange( val, index, 'selected' ) - } - __nextHasNoMarginBottom - /> + + + onChange( val, index, 'selected' ) + } + __nextHasNoMarginBottom + /> + { showValue && ( + + + onChange( val, index, 'value' ) + } + __nextHasNoMarginBottom + /> + + + ) } + + - onChange( val, index, 'value' ) + onChange( val, index, 'label' ) } __nextHasNoMarginBottom /> - - ) } - - onChange( val, index, 'label' ) } - __nextHasNoMarginBottom - /> + - + client->_etrans( 'Skip & Deactivate' ); ?> + + @@ -971,13 +972,13 @@ public function deactivate_scripts() } else { $('ul.wd-de-reasons li').removeClass('wd-de-reason-selected'); - if ("other" != inputValue) { + if ( "other" !== inputValue ) { $('ul.wd-de-reasons.wd-de-others-reasons').css('display', 'none'); } } // Show if has custom reasons - if ("other" == inputValue) { + if ( "other" === inputValue ) { $('ul.wd-de-reasons.wd-de-others-reasons').css('display', 'flex'); } @@ -1004,7 +1005,7 @@ public function deactivate_scripts() url: ajaxurl, type: 'POST', data: { - nonce: '', + nonce: '', action: 'client->slug; ?>_submit-uninstall-reason', reason_id: (0 === $radio.length) ? 'none' : $radio.val(), reason_info: (0 !== $input.length) ? $input.val().trim() : '' @@ -1022,7 +1023,7 @@ public function deactivate_scripts() }(jQuery)); - get_template() === $this->client->slug) { - $this->client->send_request($this->get_tracking_data(), 'deactivate'); + if ( $old_theme->get_template() === $this->client->slug ) { + $this->client->send_request( $this->get_tracking_data(), 'deactivate' ); } } /** * Get user IP Address */ - private function get_user_ip_address() - { - $response = wp_remote_get('https://icanhazip.com/'); + private function get_user_ip_address() { + $response = wp_remote_get( 'https://icanhazip.com/' ); - if (is_wp_error($response)) { + if ( is_wp_error( $response ) ) { return ''; } - $ip = trim(wp_remote_retrieve_body($response)); + $ip = trim( wp_remote_retrieve_body( $response ) ); - if (!filter_var($ip, FILTER_VALIDATE_IP)) { + if ( ! filter_var( $ip, FILTER_VALIDATE_IP ) ) { return ''; } @@ -1065,17 +1064,16 @@ private function get_user_ip_address() /** * Get site name */ - private function get_site_name() - { - $site_name = get_bloginfo('name'); + private function get_site_name() { + $site_name = get_bloginfo( 'name' ); - if (empty($site_name)) { - $site_name = get_bloginfo('description'); - $site_name = wp_trim_words($site_name, 3, ''); + if ( empty( $site_name ) ) { + $site_name = get_bloginfo( 'description' ); + $site_name = wp_trim_words( $site_name, 3, '' ); } - if (empty($site_name)) { - $site_name = esc_url(home_url()); + if ( empty( $site_name ) ) { + $site_name = esc_url( home_url() ); } return $site_name; @@ -1084,30 +1082,28 @@ private function get_site_name() /** * Send request to appsero if user skip to send tracking data */ - private function send_tracking_skipped_request() - { - $skipped = get_option($this->client->slug . '_tracking_skipped'); + private function send_tracking_skipped_request() { + $skipped = get_option( $this->client->slug . '_tracking_skipped' ); $data = [ 'hash' => $this->client->hash, 'previously_skipped' => false, ]; - if ($skipped === 'yes') { + if ( $skipped === 'yes' ) { $data['previously_skipped'] = true; } else { - update_option($this->client->slug . '_tracking_skipped', 'yes'); + update_option( $this->client->slug . '_tracking_skipped', 'yes' ); } - $this->client->send_request($data, 'tracking-skipped'); + $this->client->send_request( $data, 'tracking-skipped' ); } /** * Deactivation modal styles */ - private function deactivation_modal_styles() - { - ?> + private function deactivation_modal_styles() { + ?> -realpath = realpath($opened_path) ?: $opened_path; + $opened_path = 'phpvfscomposer://'.$this->realpath; + $this->handle = fopen($this->realpath, $mode); + $this->position = 0; + + return (bool) $this->handle; + } + + public function stream_read($count) + { + $data = fread($this->handle, $count); + + if ($this->position === 0) { + $data = preg_replace('{^#!.*\r?\n}', '', $data); + } + $data = str_replace('__DIR__', var_export(dirname($this->realpath), true), $data); + $data = str_replace('__FILE__', var_export($this->realpath, true), $data); + + $this->position += strlen($data); + + return $data; + } + + public function stream_cast($castAs) + { + return $this->handle; + } + + public function stream_close() + { + fclose($this->handle); + } + + public function stream_lock($operation) + { + return $operation ? flock($this->handle, $operation) : true; + } + + public function stream_seek($offset, $whence) + { + if (0 === fseek($this->handle, $offset, $whence)) { + $this->position = ftell($this->handle); + return true; + } + + return false; + } + + public function stream_tell() + { + return $this->position; + } + + public function stream_eof() + { + return feof($this->handle); + } + + public function stream_stat() + { + return array(); + } + + public function stream_set_option($option, $arg1, $arg2) + { + return true; + } + + public function url_stat($path, $flags) + { + $path = substr($path, 17); + if (file_exists($path)) { + return stat($path); + } + + return false; + } + } + } + + if ( + (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) + || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) + ) { + include("phpvfscomposer://" . __DIR__ . '/..'.'/phpunit/phpunit/phpunit'); + exit(0); + } +} + +include __DIR__ . '/..'.'/phpunit/phpunit/phpunit'; diff --git a/vendor/bin/phpunit.bat b/vendor/bin/phpunit.bat new file mode 100644 index 00000000..3cc3c06a --- /dev/null +++ b/vendor/bin/phpunit.bat @@ -0,0 +1,5 @@ +@ECHO OFF +setlocal DISABLEDELAYEDEXPANSION +SET BIN_TARGET=%~dp0/phpunit +SET COMPOSER_RUNTIME_BIN_DIR=%~dp0 +php "%BIN_TARGET%" %* diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 69387371..496a9b4e 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -8,4 +8,552 @@ return array( 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 'Katzgrau\\KLogger\\Logger' => $vendorDir . '/katzgrau/klogger/src/Logger.php', + 'PHPUnit\\Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php', + 'PHPUnit\\Framework\\Assert' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert.php', + 'PHPUnit\\Framework\\AssertionFailedError' => $vendorDir . '/phpunit/phpunit/src/Framework/AssertionFailedError.php', + 'PHPUnit\\Framework\\CodeCoverageException' => $vendorDir . '/phpunit/phpunit/src/Framework/CodeCoverageException.php', + 'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php', + 'PHPUnit\\Framework\\Constraint\\ArraySubset' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php', + 'PHPUnit\\Framework\\Constraint\\Attribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php', + 'PHPUnit\\Framework\\Constraint\\Callback' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Callback.php', + 'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php', + 'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php', + 'PHPUnit\\Framework\\Constraint\\Composite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Composite.php', + 'PHPUnit\\Framework\\Constraint\\Constraint' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php', + 'PHPUnit\\Framework\\Constraint\\Count' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Count.php', + 'PHPUnit\\Framework\\Constraint\\DirectoryExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php', + 'PHPUnit\\Framework\\Constraint\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Exception.php', + 'PHPUnit\\Framework\\Constraint\\ExceptionCode' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php', + 'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php', + 'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php', + 'PHPUnit\\Framework\\Constraint\\FileExists' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php', + 'PHPUnit\\Framework\\Constraint\\GreaterThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php', + 'PHPUnit\\Framework\\Constraint\\IsAnything' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php', + 'PHPUnit\\Framework\\Constraint\\IsEmpty' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php', + 'PHPUnit\\Framework\\Constraint\\IsEqual' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php', + 'PHPUnit\\Framework\\Constraint\\IsFalse' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php', + 'PHPUnit\\Framework\\Constraint\\IsFinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php', + 'PHPUnit\\Framework\\Constraint\\IsIdentical' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php', + 'PHPUnit\\Framework\\Constraint\\IsInfinite' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php', + 'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php', + 'PHPUnit\\Framework\\Constraint\\IsJson' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php', + 'PHPUnit\\Framework\\Constraint\\IsNan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php', + 'PHPUnit\\Framework\\Constraint\\IsNull' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php', + 'PHPUnit\\Framework\\Constraint\\IsReadable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php', + 'PHPUnit\\Framework\\Constraint\\IsTrue' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php', + 'PHPUnit\\Framework\\Constraint\\IsType' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsType.php', + 'PHPUnit\\Framework\\Constraint\\IsWritable' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php', + 'PHPUnit\\Framework\\Constraint\\JsonMatches' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php', + 'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php', + 'PHPUnit\\Framework\\Constraint\\LessThan' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php', + 'PHPUnit\\Framework\\Constraint\\LogicalAnd' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php', + 'PHPUnit\\Framework\\Constraint\\LogicalNot' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php', + 'PHPUnit\\Framework\\Constraint\\LogicalOr' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php', + 'PHPUnit\\Framework\\Constraint\\LogicalXor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php', + 'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php', + 'PHPUnit\\Framework\\Constraint\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php', + 'PHPUnit\\Framework\\Constraint\\SameSize' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php', + 'PHPUnit\\Framework\\Constraint\\StringContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php', + 'PHPUnit\\Framework\\Constraint\\StringEndsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php', + 'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php', + 'PHPUnit\\Framework\\Constraint\\StringStartsWith' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php', + 'PHPUnit\\Framework\\Constraint\\TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php', + 'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php', + 'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php', + 'PHPUnit\\Framework\\DataProviderTestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php', + 'PHPUnit\\Framework\\Error\\Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php', + 'PHPUnit\\Framework\\Error\\Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Error.php', + 'PHPUnit\\Framework\\Error\\Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php', + 'PHPUnit\\Framework\\Error\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Warning.php', + 'PHPUnit\\Framework\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception.php', + 'PHPUnit\\Framework\\ExceptionWrapper' => $vendorDir . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php', + 'PHPUnit\\Framework\\ExpectationFailedException' => $vendorDir . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php', + 'PHPUnit\\Framework\\IncompleteTest' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTest.php', + 'PHPUnit\\Framework\\IncompleteTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php', + 'PHPUnit\\Framework\\IncompleteTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/IncompleteTestError.php', + 'PHPUnit\\Framework\\InvalidCoversTargetException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php', + 'PHPUnit\\Framework\\InvalidParameterGroupException' => $vendorDir . '/phpunit/phpunit/src/Framework/InvalidParameterGroupException.php', + 'PHPUnit\\Framework\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php', + 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\Match' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Match.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/NamespaceMatch.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php', + 'PHPUnit\\Framework\\MockObject\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php', + 'PHPUnit\\Framework\\MockObject\\Generator' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Generator.php', + 'PHPUnit\\Framework\\MockObject\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/Invocation.php', + 'PHPUnit\\Framework\\MockObject\\InvocationMocker' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php', + 'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/ObjectInvocation.php', + 'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php', + 'PHPUnit\\Framework\\MockObject\\Invokable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Invokable.php', + 'PHPUnit\\Framework\\MockObject\\Matcher' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyInvokedCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyParameters.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\DeferredError' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/DeferredError.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Invocation.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtIndex.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtMostCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedRecorder.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/MethodName.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Parameters.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Matcher/StatelessInvocation.php', + 'PHPUnit\\Framework\\MockObject\\MockBuilder' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php', + 'PHPUnit\\Framework\\MockObject\\MockMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockMethod.php', + 'PHPUnit\\Framework\\MockObject\\MockMethodSet' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php', + 'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/ForwardCompatibility/MockObject.php', + 'PHPUnit\\Framework\\MockObject\\RuntimeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php', + 'PHPUnit\\Framework\\MockObject\\Stub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/MatcherCollection.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php', + 'PHPUnit\\Framework\\MockObject\\Verifiable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php', + 'PHPUnit\\Framework\\OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/OutputError.php', + 'PHPUnit\\Framework\\RiskyTest' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTest.php', + 'PHPUnit\\Framework\\RiskyTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/RiskyTestError.php', + 'PHPUnit\\Framework\\SelfDescribing' => $vendorDir . '/phpunit/phpunit/src/Framework/SelfDescribing.php', + 'PHPUnit\\Framework\\SkippedTest' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTest.php', + 'PHPUnit\\Framework\\SkippedTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestCase.php', + 'PHPUnit\\Framework\\SkippedTestError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestError.php', + 'PHPUnit\\Framework\\SkippedTestSuiteError' => $vendorDir . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php', + 'PHPUnit\\Framework\\SyntheticError' => $vendorDir . '/phpunit/phpunit/src/Framework/SyntheticError.php', + 'PHPUnit\\Framework\\Test' => $vendorDir . '/phpunit/phpunit/src/Framework/Test.php', + 'PHPUnit\\Framework\\TestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/TestCase.php', + 'PHPUnit\\Framework\\TestFailure' => $vendorDir . '/phpunit/phpunit/src/Framework/TestFailure.php', + 'PHPUnit\\Framework\\TestListener' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListener.php', + 'PHPUnit\\Framework\\TestListenerDefaultImplementation' => $vendorDir . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php', + 'PHPUnit\\Framework\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Framework/TestResult.php', + 'PHPUnit\\Framework\\TestSuite' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuite.php', + 'PHPUnit\\Framework\\TestSuiteIterator' => $vendorDir . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php', + 'PHPUnit\\Framework\\UnexpectedValueException' => $vendorDir . '/phpunit/phpunit/src/Framework/UnexpectedValueException.php', + 'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => $vendorDir . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php', + 'PHPUnit\\Framework\\Warning' => $vendorDir . '/phpunit/phpunit/src/Framework/Warning.php', + 'PHPUnit\\Framework\\WarningTestCase' => $vendorDir . '/phpunit/phpunit/src/Framework/WarningTestCase.php', + 'PHPUnit\\Runner\\AfterIncompleteTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php', + 'PHPUnit\\Runner\\AfterLastTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php', + 'PHPUnit\\Runner\\AfterRiskyTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php', + 'PHPUnit\\Runner\\AfterSkippedTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php', + 'PHPUnit\\Runner\\AfterSuccessfulTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php', + 'PHPUnit\\Runner\\AfterTestErrorHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php', + 'PHPUnit\\Runner\\AfterTestFailureHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php', + 'PHPUnit\\Runner\\AfterTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php', + 'PHPUnit\\Runner\\AfterTestWarningHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php', + 'PHPUnit\\Runner\\BaseTestRunner' => $vendorDir . '/phpunit/phpunit/src/Runner/BaseTestRunner.php', + 'PHPUnit\\Runner\\BeforeFirstTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php', + 'PHPUnit\\Runner\\BeforeTestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php', + 'PHPUnit\\Runner\\Exception' => $vendorDir . '/phpunit/phpunit/src/Runner/Exception.php', + 'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php', + 'PHPUnit\\Runner\\Filter\\Factory' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/Factory.php', + 'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php', + 'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php', + 'PHPUnit\\Runner\\Filter\\NameFilterIterator' => $vendorDir . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php', + 'PHPUnit\\Runner\\Hook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/Hook.php', + 'PHPUnit\\Runner\\NullTestResultCache' => $vendorDir . '/phpunit/phpunit/src/Util/NullTestResultCache.php', + 'PHPUnit\\Runner\\PhptTestCase' => $vendorDir . '/phpunit/phpunit/src/Runner/PhptTestCase.php', + 'PHPUnit\\Runner\\ResultCacheExtension' => $vendorDir . '/phpunit/phpunit/src/Runner/ResultCacheExtension.php', + 'PHPUnit\\Runner\\StandardTestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php', + 'PHPUnit\\Runner\\TestHook' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestHook.php', + 'PHPUnit\\Runner\\TestListenerAdapter' => $vendorDir . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php', + 'PHPUnit\\Runner\\TestResultCache' => $vendorDir . '/phpunit/phpunit/src/Util/TestResultCache.php', + 'PHPUnit\\Runner\\TestResultCacheInterface' => $vendorDir . '/phpunit/phpunit/src/Util/TestResultCacheInterface.php', + 'PHPUnit\\Runner\\TestSuiteLoader' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', + 'PHPUnit\\Runner\\TestSuiteSorter' => $vendorDir . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php', + 'PHPUnit\\Runner\\Version' => $vendorDir . '/phpunit/phpunit/src/Runner/Version.php', + 'PHPUnit\\TextUI\\Command' => $vendorDir . '/phpunit/phpunit/src/TextUI/Command.php', + 'PHPUnit\\TextUI\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/TextUI/ResultPrinter.php', + 'PHPUnit\\TextUI\\TestRunner' => $vendorDir . '/phpunit/phpunit/src/TextUI/TestRunner.php', + 'PHPUnit\\Util\\Blacklist' => $vendorDir . '/phpunit/phpunit/src/Util/Blacklist.php', + 'PHPUnit\\Util\\Configuration' => $vendorDir . '/phpunit/phpunit/src/Util/Configuration.php', + 'PHPUnit\\Util\\ConfigurationGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php', + 'PHPUnit\\Util\\ErrorHandler' => $vendorDir . '/phpunit/phpunit/src/Util/ErrorHandler.php', + 'PHPUnit\\Util\\FileLoader' => $vendorDir . '/phpunit/phpunit/src/Util/FileLoader.php', + 'PHPUnit\\Util\\Filesystem' => $vendorDir . '/phpunit/phpunit/src/Util/Filesystem.php', + 'PHPUnit\\Util\\Filter' => $vendorDir . '/phpunit/phpunit/src/Util/Filter.php', + 'PHPUnit\\Util\\Getopt' => $vendorDir . '/phpunit/phpunit/src/Util/Getopt.php', + 'PHPUnit\\Util\\GlobalState' => $vendorDir . '/phpunit/phpunit/src/Util/GlobalState.php', + 'PHPUnit\\Util\\InvalidArgumentHelper' => $vendorDir . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php', + 'PHPUnit\\Util\\Json' => $vendorDir . '/phpunit/phpunit/src/Util/Json.php', + 'PHPUnit\\Util\\Log\\JUnit' => $vendorDir . '/phpunit/phpunit/src/Util/Log/JUnit.php', + 'PHPUnit\\Util\\Log\\TeamCity' => $vendorDir . '/phpunit/phpunit/src/Util/Log/TeamCity.php', + 'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php', + 'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php', + 'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => $vendorDir . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php', + 'PHPUnit\\Util\\Printer' => $vendorDir . '/phpunit/phpunit/src/Util/Printer.php', + 'PHPUnit\\Util\\RegularExpression' => $vendorDir . '/phpunit/phpunit/src/Util/RegularExpression.php', + 'PHPUnit\\Util\\Test' => $vendorDir . '/phpunit/phpunit/src/Util/Test.php', + 'PHPUnit\\Util\\TestDox\\CliTestDoxPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php', + 'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php', + 'PHPUnit\\Util\\TestDox\\NamePrettifier' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php', + 'PHPUnit\\Util\\TestDox\\ResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php', + 'PHPUnit\\Util\\TestDox\\TestResult' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TestResult.php', + 'PHPUnit\\Util\\TestDox\\TextResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php', + 'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => $vendorDir . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php', + 'PHPUnit\\Util\\TextTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/TextTestListRenderer.php', + 'PHPUnit\\Util\\Type' => $vendorDir . '/phpunit/phpunit/src/Util/Type.php', + 'PHPUnit\\Util\\XdebugFilterScriptGenerator' => $vendorDir . '/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php', + 'PHPUnit\\Util\\Xml' => $vendorDir . '/phpunit/phpunit/src/Util/Xml.php', + 'PHPUnit\\Util\\XmlTestListRenderer' => $vendorDir . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php', + 'PHPUnit_Framework_MockObject_MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php', + 'PHP_Token' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_TokenWithScope' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_TokenWithScopeAndVisibility' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ABSTRACT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AMPERSAND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AND_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ARRAY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ARRAY_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BACKTICK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BAD_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BOOLEAN_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BOOLEAN_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BOOL_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BREAK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CALLABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CARET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CASE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CATCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CHARACTER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLASS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLASS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLASS_NAME_CONSTANT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLONE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COALESCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COALESCE_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COMMA' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONCAT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONSTANT_ENCAPSED_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONTINUE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CURLY_OPEN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DEC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DEFAULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DIR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DIV' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DIV_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOC_COMMENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOLLAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_ARROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_COLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_QUOTES' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ELLIPSIS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ELSE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ELSEIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EMPTY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENCAPSED_AND_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDDECLARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDFOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDFOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDIF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDSWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDWHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_END_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EVAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EXCLAMATION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EXIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EXTENDS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FINAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FINALLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FOREACH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FUNC_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_GLOBAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_GOTO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_GT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_HALT_COMPILER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IMPLEMENTS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INCLUDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INCLUDE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INLINE_HTML' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INSTANCEOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INSTEADOF' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INTERFACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ISSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_GREATER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_NOT_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_NOT_IDENTICAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_SMALLER_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_Includes' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LINE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LIST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LNUMBER' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LOGICAL_AND' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LOGICAL_OR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LOGICAL_XOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_METHOD_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MINUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MINUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MOD_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MULT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MUL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NAMESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NEW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NS_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NS_SEPARATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NUM_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OBJECT_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OBJECT_OPERATOR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_BRACKET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_CURLY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_SQUARE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_TAG' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_TAG_WITH_ECHO' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PERCENT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PIPE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PLUS' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PLUS_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_POW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_POW_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PRINT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PRIVATE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PROTECTED' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PUBLIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_QUESTION_MARK' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_REQUIRE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_REQUIRE_ONCE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_RETURN' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SEMICOLON' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SL_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SPACESHIP' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_START_HEREDOC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STATIC' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STRING' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STRING_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STRING_VARNAME' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SWITCH' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_Stream' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream.php', + 'PHP_Token_Stream_CachingFactory' => $vendorDir . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php', + 'PHP_Token_THROW' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TILDE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TRAIT' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TRAIT_C' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TRY' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_UNSET' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_UNSET_CAST' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_USE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_USE_FUNCTION' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_Util' => $vendorDir . '/phpunit/php-token-stream/src/Token/Util.php', + 'PHP_Token_VAR' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_VARIABLE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_WHILE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_WHITESPACE' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XOR_EQUAL' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_YIELD' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_YIELD_FROM' => $vendorDir . '/phpunit/php-token-stream/src/Token.php', + 'PharIo\\Manifest\\Application' => $vendorDir . '/phar-io/manifest/src/values/Application.php', + 'PharIo\\Manifest\\ApplicationName' => $vendorDir . '/phar-io/manifest/src/values/ApplicationName.php', + 'PharIo\\Manifest\\Author' => $vendorDir . '/phar-io/manifest/src/values/Author.php', + 'PharIo\\Manifest\\AuthorCollection' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollection.php', + 'PharIo\\Manifest\\AuthorCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/AuthorCollectionIterator.php', + 'PharIo\\Manifest\\AuthorElement' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElement.php', + 'PharIo\\Manifest\\AuthorElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/AuthorElementCollection.php', + 'PharIo\\Manifest\\BundledComponent' => $vendorDir . '/phar-io/manifest/src/values/BundledComponent.php', + 'PharIo\\Manifest\\BundledComponentCollection' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollection.php', + 'PharIo\\Manifest\\BundledComponentCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php', + 'PharIo\\Manifest\\BundlesElement' => $vendorDir . '/phar-io/manifest/src/xml/BundlesElement.php', + 'PharIo\\Manifest\\ComponentElement' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElement.php', + 'PharIo\\Manifest\\ComponentElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ComponentElementCollection.php', + 'PharIo\\Manifest\\ContainsElement' => $vendorDir . '/phar-io/manifest/src/xml/ContainsElement.php', + 'PharIo\\Manifest\\CopyrightElement' => $vendorDir . '/phar-io/manifest/src/xml/CopyrightElement.php', + 'PharIo\\Manifest\\CopyrightInformation' => $vendorDir . '/phar-io/manifest/src/values/CopyrightInformation.php', + 'PharIo\\Manifest\\ElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ElementCollection.php', + 'PharIo\\Manifest\\Email' => $vendorDir . '/phar-io/manifest/src/values/Email.php', + 'PharIo\\Manifest\\Exception' => $vendorDir . '/phar-io/manifest/src/exceptions/Exception.php', + 'PharIo\\Manifest\\ExtElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtElement.php', + 'PharIo\\Manifest\\ExtElementCollection' => $vendorDir . '/phar-io/manifest/src/xml/ExtElementCollection.php', + 'PharIo\\Manifest\\Extension' => $vendorDir . '/phar-io/manifest/src/values/Extension.php', + 'PharIo\\Manifest\\ExtensionElement' => $vendorDir . '/phar-io/manifest/src/xml/ExtensionElement.php', + 'PharIo\\Manifest\\InvalidApplicationNameException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php', + 'PharIo\\Manifest\\InvalidEmailException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidEmailException.php', + 'PharIo\\Manifest\\InvalidUrlException' => $vendorDir . '/phar-io/manifest/src/exceptions/InvalidUrlException.php', + 'PharIo\\Manifest\\Library' => $vendorDir . '/phar-io/manifest/src/values/Library.php', + 'PharIo\\Manifest\\License' => $vendorDir . '/phar-io/manifest/src/values/License.php', + 'PharIo\\Manifest\\LicenseElement' => $vendorDir . '/phar-io/manifest/src/xml/LicenseElement.php', + 'PharIo\\Manifest\\Manifest' => $vendorDir . '/phar-io/manifest/src/values/Manifest.php', + 'PharIo\\Manifest\\ManifestDocument' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocument.php', + 'PharIo\\Manifest\\ManifestDocumentException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php', + 'PharIo\\Manifest\\ManifestDocumentLoadingException' => $vendorDir . '/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php', + 'PharIo\\Manifest\\ManifestDocumentMapper' => $vendorDir . '/phar-io/manifest/src/ManifestDocumentMapper.php', + 'PharIo\\Manifest\\ManifestDocumentMapperException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php', + 'PharIo\\Manifest\\ManifestElement' => $vendorDir . '/phar-io/manifest/src/xml/ManifestElement.php', + 'PharIo\\Manifest\\ManifestElementException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestElementException.php', + 'PharIo\\Manifest\\ManifestLoader' => $vendorDir . '/phar-io/manifest/src/ManifestLoader.php', + 'PharIo\\Manifest\\ManifestLoaderException' => $vendorDir . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php', + 'PharIo\\Manifest\\ManifestSerializer' => $vendorDir . '/phar-io/manifest/src/ManifestSerializer.php', + 'PharIo\\Manifest\\PhpElement' => $vendorDir . '/phar-io/manifest/src/xml/PhpElement.php', + 'PharIo\\Manifest\\PhpExtensionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpExtensionRequirement.php', + 'PharIo\\Manifest\\PhpVersionRequirement' => $vendorDir . '/phar-io/manifest/src/values/PhpVersionRequirement.php', + 'PharIo\\Manifest\\Requirement' => $vendorDir . '/phar-io/manifest/src/values/Requirement.php', + 'PharIo\\Manifest\\RequirementCollection' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollection.php', + 'PharIo\\Manifest\\RequirementCollectionIterator' => $vendorDir . '/phar-io/manifest/src/values/RequirementCollectionIterator.php', + 'PharIo\\Manifest\\RequiresElement' => $vendorDir . '/phar-io/manifest/src/xml/RequiresElement.php', + 'PharIo\\Manifest\\Type' => $vendorDir . '/phar-io/manifest/src/values/Type.php', + 'PharIo\\Manifest\\Url' => $vendorDir . '/phar-io/manifest/src/values/Url.php', + 'PharIo\\Version\\AbstractVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AbstractVersionConstraint.php', + 'PharIo\\Version\\AndVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php', + 'PharIo\\Version\\AnyVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AnyVersionConstraint.php', + 'PharIo\\Version\\ExactVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/ExactVersionConstraint.php', + 'PharIo\\Version\\Exception' => $vendorDir . '/phar-io/version/src/exceptions/Exception.php', + 'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php', + 'PharIo\\Version\\InvalidPreReleaseSuffixException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php', + 'PharIo\\Version\\InvalidVersionException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidVersionException.php', + 'PharIo\\Version\\OrVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php', + 'PharIo\\Version\\PreReleaseSuffix' => $vendorDir . '/phar-io/version/src/PreReleaseSuffix.php', + 'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php', + 'PharIo\\Version\\SpecificMajorVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php', + 'PharIo\\Version\\UnsupportedVersionConstraintException' => $vendorDir . '/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php', + 'PharIo\\Version\\Version' => $vendorDir . '/phar-io/version/src/Version.php', + 'PharIo\\Version\\VersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/VersionConstraint.php', + 'PharIo\\Version\\VersionConstraintParser' => $vendorDir . '/phar-io/version/src/VersionConstraintParser.php', + 'PharIo\\Version\\VersionConstraintValue' => $vendorDir . '/phar-io/version/src/VersionConstraintValue.php', + 'PharIo\\Version\\VersionNumber' => $vendorDir . '/phar-io/version/src/VersionNumber.php', + 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php', + 'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php', + 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php', + 'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php', + 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Xdebug.php', + 'SebastianBergmann\\CodeCoverage\\Exception' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/Exception.php', + 'SebastianBergmann\\CodeCoverage\\Filter' => $vendorDir . '/phpunit/php-code-coverage/src/Filter.php', + 'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php', + 'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php', + 'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => $vendorDir . '/phpunit/php-code-coverage/src/Node/AbstractNode.php', + 'SebastianBergmann\\CodeCoverage\\Node\\Builder' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Builder.php', + 'SebastianBergmann\\CodeCoverage\\Node\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Directory.php', + 'SebastianBergmann\\CodeCoverage\\Node\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Node/File.php', + 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Iterator.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Clover.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Crap4j.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Facade.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php', + 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => $vendorDir . '/phpunit/php-code-coverage/src/Report/PHP.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Text' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Text.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/File.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Method.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Node.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Project.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Report.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Source.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php', + 'SebastianBergmann\\CodeCoverage\\RuntimeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php', + 'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php', + 'SebastianBergmann\\CodeCoverage\\Util' => $vendorDir . '/phpunit/php-code-coverage/src/Util.php', + 'SebastianBergmann\\CodeCoverage\\Version' => $vendorDir . '/phpunit/php-code-coverage/src/Version.php', + 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php', + 'SebastianBergmann\\Comparator\\ArrayComparator' => $vendorDir . '/sebastian/comparator/src/ArrayComparator.php', + 'SebastianBergmann\\Comparator\\Comparator' => $vendorDir . '/sebastian/comparator/src/Comparator.php', + 'SebastianBergmann\\Comparator\\ComparisonFailure' => $vendorDir . '/sebastian/comparator/src/ComparisonFailure.php', + 'SebastianBergmann\\Comparator\\DOMNodeComparator' => $vendorDir . '/sebastian/comparator/src/DOMNodeComparator.php', + 'SebastianBergmann\\Comparator\\DateTimeComparator' => $vendorDir . '/sebastian/comparator/src/DateTimeComparator.php', + 'SebastianBergmann\\Comparator\\DoubleComparator' => $vendorDir . '/sebastian/comparator/src/DoubleComparator.php', + 'SebastianBergmann\\Comparator\\ExceptionComparator' => $vendorDir . '/sebastian/comparator/src/ExceptionComparator.php', + 'SebastianBergmann\\Comparator\\Factory' => $vendorDir . '/sebastian/comparator/src/Factory.php', + 'SebastianBergmann\\Comparator\\MockObjectComparator' => $vendorDir . '/sebastian/comparator/src/MockObjectComparator.php', + 'SebastianBergmann\\Comparator\\NumericComparator' => $vendorDir . '/sebastian/comparator/src/NumericComparator.php', + 'SebastianBergmann\\Comparator\\ObjectComparator' => $vendorDir . '/sebastian/comparator/src/ObjectComparator.php', + 'SebastianBergmann\\Comparator\\ResourceComparator' => $vendorDir . '/sebastian/comparator/src/ResourceComparator.php', + 'SebastianBergmann\\Comparator\\ScalarComparator' => $vendorDir . '/sebastian/comparator/src/ScalarComparator.php', + 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => $vendorDir . '/sebastian/comparator/src/SplObjectStorageComparator.php', + 'SebastianBergmann\\Comparator\\TypeComparator' => $vendorDir . '/sebastian/comparator/src/TypeComparator.php', + 'SebastianBergmann\\Diff\\Chunk' => $vendorDir . '/sebastian/diff/src/Chunk.php', + 'SebastianBergmann\\Diff\\ConfigurationException' => $vendorDir . '/sebastian/diff/src/Exception/ConfigurationException.php', + 'SebastianBergmann\\Diff\\Diff' => $vendorDir . '/sebastian/diff/src/Diff.php', + 'SebastianBergmann\\Diff\\Differ' => $vendorDir . '/sebastian/diff/src/Differ.php', + 'SebastianBergmann\\Diff\\Exception' => $vendorDir . '/sebastian/diff/src/Exception/Exception.php', + 'SebastianBergmann\\Diff\\InvalidArgumentException' => $vendorDir . '/sebastian/diff/src/Exception/InvalidArgumentException.php', + 'SebastianBergmann\\Diff\\Line' => $vendorDir . '/sebastian/diff/src/Line.php', + 'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', + 'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', + 'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', + 'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', + 'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => $vendorDir . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', + 'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', + 'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => $vendorDir . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', + 'SebastianBergmann\\Diff\\Parser' => $vendorDir . '/sebastian/diff/src/Parser.php', + 'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => $vendorDir . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', + 'SebastianBergmann\\Environment\\Console' => $vendorDir . '/sebastian/environment/src/Console.php', + 'SebastianBergmann\\Environment\\OperatingSystem' => $vendorDir . '/sebastian/environment/src/OperatingSystem.php', + 'SebastianBergmann\\Environment\\Runtime' => $vendorDir . '/sebastian/environment/src/Runtime.php', + 'SebastianBergmann\\Exporter\\Exporter' => $vendorDir . '/sebastian/exporter/src/Exporter.php', + 'SebastianBergmann\\FileIterator\\Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php', + 'SebastianBergmann\\FileIterator\\Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php', + 'SebastianBergmann\\FileIterator\\Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php', + 'SebastianBergmann\\GlobalState\\Blacklist' => $vendorDir . '/sebastian/global-state/src/Blacklist.php', + 'SebastianBergmann\\GlobalState\\CodeExporter' => $vendorDir . '/sebastian/global-state/src/CodeExporter.php', + 'SebastianBergmann\\GlobalState\\Exception' => $vendorDir . '/sebastian/global-state/src/exceptions/Exception.php', + 'SebastianBergmann\\GlobalState\\Restorer' => $vendorDir . '/sebastian/global-state/src/Restorer.php', + 'SebastianBergmann\\GlobalState\\RuntimeException' => $vendorDir . '/sebastian/global-state/src/exceptions/RuntimeException.php', + 'SebastianBergmann\\GlobalState\\Snapshot' => $vendorDir . '/sebastian/global-state/src/Snapshot.php', + 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => $vendorDir . '/sebastian/object-enumerator/src/Enumerator.php', + 'SebastianBergmann\\ObjectEnumerator\\Exception' => $vendorDir . '/sebastian/object-enumerator/src/Exception.php', + 'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => $vendorDir . '/sebastian/object-enumerator/src/InvalidArgumentException.php', + 'SebastianBergmann\\ObjectReflector\\Exception' => $vendorDir . '/sebastian/object-reflector/src/Exception.php', + 'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => $vendorDir . '/sebastian/object-reflector/src/InvalidArgumentException.php', + 'SebastianBergmann\\ObjectReflector\\ObjectReflector' => $vendorDir . '/sebastian/object-reflector/src/ObjectReflector.php', + 'SebastianBergmann\\RecursionContext\\Context' => $vendorDir . '/sebastian/recursion-context/src/Context.php', + 'SebastianBergmann\\RecursionContext\\Exception' => $vendorDir . '/sebastian/recursion-context/src/Exception.php', + 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => $vendorDir . '/sebastian/recursion-context/src/InvalidArgumentException.php', + 'SebastianBergmann\\ResourceOperations\\ResourceOperations' => $vendorDir . '/sebastian/resource-operations/src/ResourceOperations.php', + 'SebastianBergmann\\Timer\\Exception' => $vendorDir . '/phpunit/php-timer/src/Exception.php', + 'SebastianBergmann\\Timer\\RuntimeException' => $vendorDir . '/phpunit/php-timer/src/RuntimeException.php', + 'SebastianBergmann\\Timer\\Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php', + 'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php', + 'Text_Template' => $vendorDir . '/phpunit/php-text-template/src/Template.php', + 'TheSeer\\Tokenizer\\Exception' => $vendorDir . '/theseer/tokenizer/src/Exception.php', + 'TheSeer\\Tokenizer\\NamespaceUri' => $vendorDir . '/theseer/tokenizer/src/NamespaceUri.php', + 'TheSeer\\Tokenizer\\NamespaceUriException' => $vendorDir . '/theseer/tokenizer/src/NamespaceUriException.php', + 'TheSeer\\Tokenizer\\Token' => $vendorDir . '/theseer/tokenizer/src/Token.php', + 'TheSeer\\Tokenizer\\TokenCollection' => $vendorDir . '/theseer/tokenizer/src/TokenCollection.php', + 'TheSeer\\Tokenizer\\TokenCollectionException' => $vendorDir . '/theseer/tokenizer/src/TokenCollectionException.php', + 'TheSeer\\Tokenizer\\Tokenizer' => $vendorDir . '/theseer/tokenizer/src/Tokenizer.php', + 'TheSeer\\Tokenizer\\XMLSerializer' => $vendorDir . '/theseer/tokenizer/src/XMLSerializer.php', ); diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index a4005c3f..28cf0330 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -6,6 +6,9 @@ $baseDir = dirname($vendorDir); return array( + '6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', + '38fbb71d514eee25044aa9d94851ee76' => $vendorDir . '/wp-phpunit/wp-phpunit/__loaded.php', + '7d3b315c4f303f2fc14aca642a738e50' => $vendorDir . '/yoast/phpunit-polyfills/phpunitpolyfills-autoload.php', '0d73450dcae6c75c8ae55e881f84b8fd' => $baseDir . '/includes/Utils/templates.php', '518f2fdfcbdb55daf7b7cf17bf9eb26a' => $baseDir . '/includes/Utils/functions.php', '58b6f653b973bcb18404f2deee61cd27' => $baseDir . '/includes/Utils/register-cpt.php', diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 40a5050d..bd89efe2 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -6,9 +6,17 @@ $baseDir = dirname($vendorDir); return array( + 'phpDocumentor\\Reflection\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/type-resolver/src', $vendorDir . '/phpdocumentor/reflection-docblock/src'), + 'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'), + 'Roots\\Composer\\' => array($vendorDir . '/roots/wordpress-core-installer/src'), 'Rakit\\Validation\\' => array($vendorDir . '/rakit/validation/src'), 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), + 'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src/Prophecy'), + 'PHPStan\\PhpDocParser\\' => array($vendorDir . '/phpstan/phpdoc-parser/src'), 'Katzgrau\\KLogger\\' => array($vendorDir . '/katzgrau/klogger/src'), 'Formello\\' => array($baseDir . '/includes'), + 'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'), + 'Doctrine\\Deprecations\\' => array($vendorDir . '/doctrine/deprecations/lib/Doctrine/Deprecations'), + 'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'), 'Appsero\\' => array($vendorDir . '/appsero/client/src'), ); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index d96c191a..192ca98d 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit57afa84953c9e97da59ce9c8c1e089ef +class ComposerAutoloaderInit343975371c2de26dd0881e9210711e45 { private static $loader; @@ -24,16 +24,16 @@ public static function getLoader() require __DIR__ . '/platform_check.php'; - spl_autoload_register(array('ComposerAutoloaderInit57afa84953c9e97da59ce9c8c1e089ef', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit343975371c2de26dd0881e9210711e45', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit57afa84953c9e97da59ce9c8c1e089ef', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit343975371c2de26dd0881e9210711e45', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit57afa84953c9e97da59ce9c8c1e089ef::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit343975371c2de26dd0881e9210711e45::getInitializer($loader)); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInit57afa84953c9e97da59ce9c8c1e089ef::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit343975371c2de26dd0881e9210711e45::$files; $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index f7830bd0..2e70b99c 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,9 +4,12 @@ namespace Composer\Autoload; -class ComposerStaticInit57afa84953c9e97da59ce9c8c1e089ef +class ComposerStaticInit343975371c2de26dd0881e9210711e45 { public static $files = array ( + '6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', + '38fbb71d514eee25044aa9d94851ee76' => __DIR__ . '/..' . '/wp-phpunit/wp-phpunit/__loaded.php', + '7d3b315c4f303f2fc14aca642a738e50' => __DIR__ . '/..' . '/yoast/phpunit-polyfills/phpunitpolyfills-autoload.php', '0d73450dcae6c75c8ae55e881f84b8fd' => __DIR__ . '/../..' . '/includes/Utils/templates.php', '518f2fdfcbdb55daf7b7cf17bf9eb26a' => __DIR__ . '/../..' . '/includes/Utils/functions.php', '58b6f653b973bcb18404f2deee61cd27' => __DIR__ . '/../..' . '/includes/Utils/register-cpt.php', @@ -14,13 +17,24 @@ class ComposerStaticInit57afa84953c9e97da59ce9c8c1e089ef ); public static $prefixLengthsPsr4 = array ( + 'p' => + array ( + 'phpDocumentor\\Reflection\\' => 25, + ), + 'W' => + array ( + 'Webmozart\\Assert\\' => 17, + ), 'R' => array ( + 'Roots\\Composer\\' => 15, 'Rakit\\Validation\\' => 17, ), 'P' => array ( 'Psr\\Log\\' => 8, + 'Prophecy\\' => 9, + 'PHPStan\\PhpDocParser\\' => 21, ), 'K' => array ( @@ -30,6 +44,12 @@ class ComposerStaticInit57afa84953c9e97da59ce9c8c1e089ef array ( 'Formello\\' => 9, ), + 'D' => + array ( + 'Doctrine\\Instantiator\\' => 22, + 'Doctrine\\Deprecations\\' => 22, + 'DeepCopy\\' => 9, + ), 'A' => array ( 'Appsero\\' => 8, @@ -37,6 +57,20 @@ class ComposerStaticInit57afa84953c9e97da59ce9c8c1e089ef ); public static $prefixDirsPsr4 = array ( + 'phpDocumentor\\Reflection\\' => + array ( + 0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src', + 1 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src', + 2 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src', + ), + 'Webmozart\\Assert\\' => + array ( + 0 => __DIR__ . '/..' . '/webmozart/assert/src', + ), + 'Roots\\Composer\\' => + array ( + 0 => __DIR__ . '/..' . '/roots/wordpress-core-installer/src', + ), 'Rakit\\Validation\\' => array ( 0 => __DIR__ . '/..' . '/rakit/validation/src', @@ -45,6 +79,14 @@ class ComposerStaticInit57afa84953c9e97da59ce9c8c1e089ef array ( 0 => __DIR__ . '/..' . '/psr/log/Psr/Log', ), + 'Prophecy\\' => + array ( + 0 => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy', + ), + 'PHPStan\\PhpDocParser\\' => + array ( + 0 => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src', + ), 'Katzgrau\\KLogger\\' => array ( 0 => __DIR__ . '/..' . '/katzgrau/klogger/src', @@ -53,6 +95,18 @@ class ComposerStaticInit57afa84953c9e97da59ce9c8c1e089ef array ( 0 => __DIR__ . '/../..' . '/includes', ), + 'Doctrine\\Instantiator\\' => + array ( + 0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator', + ), + 'Doctrine\\Deprecations\\' => + array ( + 0 => __DIR__ . '/..' . '/doctrine/deprecations/lib/Doctrine/Deprecations', + ), + 'DeepCopy\\' => + array ( + 0 => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy', + ), 'Appsero\\' => array ( 0 => __DIR__ . '/..' . '/appsero/client/src', @@ -62,14 +116,562 @@ class ComposerStaticInit57afa84953c9e97da59ce9c8c1e089ef public static $classMap = array ( 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 'Katzgrau\\KLogger\\Logger' => __DIR__ . '/..' . '/katzgrau/klogger/src/Logger.php', + 'PHPUnit\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Exception.php', + 'PHPUnit\\Framework\\Assert' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert.php', + 'PHPUnit\\Framework\\AssertionFailedError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/AssertionFailedError.php', + 'PHPUnit\\Framework\\CodeCoverageException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CodeCoverageException.php', + 'PHPUnit\\Framework\\Constraint\\ArrayHasKey' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php', + 'PHPUnit\\Framework\\Constraint\\ArraySubset' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php', + 'PHPUnit\\Framework\\Constraint\\Attribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Attribute.php', + 'PHPUnit\\Framework\\Constraint\\Callback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Callback.php', + 'PHPUnit\\Framework\\Constraint\\ClassHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php', + 'PHPUnit\\Framework\\Constraint\\ClassHasStaticAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php', + 'PHPUnit\\Framework\\Constraint\\Composite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Composite.php', + 'PHPUnit\\Framework\\Constraint\\Constraint' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Constraint.php', + 'PHPUnit\\Framework\\Constraint\\Count' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Count.php', + 'PHPUnit\\Framework\\Constraint\\DirectoryExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php', + 'PHPUnit\\Framework\\Constraint\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/Exception.php', + 'PHPUnit\\Framework\\Constraint\\ExceptionCode' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php', + 'PHPUnit\\Framework\\Constraint\\ExceptionMessage' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php', + 'PHPUnit\\Framework\\Constraint\\ExceptionMessageRegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php', + 'PHPUnit\\Framework\\Constraint\\FileExists' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/FileExists.php', + 'PHPUnit\\Framework\\Constraint\\GreaterThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php', + 'PHPUnit\\Framework\\Constraint\\IsAnything' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsAnything.php', + 'PHPUnit\\Framework\\Constraint\\IsEmpty' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php', + 'PHPUnit\\Framework\\Constraint\\IsEqual' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsEqual.php', + 'PHPUnit\\Framework\\Constraint\\IsFalse' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFalse.php', + 'PHPUnit\\Framework\\Constraint\\IsFinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsFinite.php', + 'PHPUnit\\Framework\\Constraint\\IsIdentical' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php', + 'PHPUnit\\Framework\\Constraint\\IsInfinite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php', + 'PHPUnit\\Framework\\Constraint\\IsInstanceOf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php', + 'PHPUnit\\Framework\\Constraint\\IsJson' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsJson.php', + 'PHPUnit\\Framework\\Constraint\\IsNan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNan.php', + 'PHPUnit\\Framework\\Constraint\\IsNull' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsNull.php', + 'PHPUnit\\Framework\\Constraint\\IsReadable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsReadable.php', + 'PHPUnit\\Framework\\Constraint\\IsTrue' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsTrue.php', + 'PHPUnit\\Framework\\Constraint\\IsType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsType.php', + 'PHPUnit\\Framework\\Constraint\\IsWritable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/IsWritable.php', + 'PHPUnit\\Framework\\Constraint\\JsonMatches' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php', + 'PHPUnit\\Framework\\Constraint\\JsonMatchesErrorMessageProvider' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php', + 'PHPUnit\\Framework\\Constraint\\LessThan' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LessThan.php', + 'PHPUnit\\Framework\\Constraint\\LogicalAnd' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php', + 'PHPUnit\\Framework\\Constraint\\LogicalNot' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php', + 'PHPUnit\\Framework\\Constraint\\LogicalOr' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php', + 'PHPUnit\\Framework\\Constraint\\LogicalXor' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php', + 'PHPUnit\\Framework\\Constraint\\ObjectHasAttribute' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php', + 'PHPUnit\\Framework\\Constraint\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php', + 'PHPUnit\\Framework\\Constraint\\SameSize' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/SameSize.php', + 'PHPUnit\\Framework\\Constraint\\StringContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringContains.php', + 'PHPUnit\\Framework\\Constraint\\StringEndsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php', + 'PHPUnit\\Framework\\Constraint\\StringMatchesFormatDescription' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php', + 'PHPUnit\\Framework\\Constraint\\StringStartsWith' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php', + 'PHPUnit\\Framework\\Constraint\\TraversableContains' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php', + 'PHPUnit\\Framework\\Constraint\\TraversableContainsOnly' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php', + 'PHPUnit\\Framework\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php', + 'PHPUnit\\Framework\\DataProviderTestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/DataProviderTestSuite.php', + 'PHPUnit\\Framework\\Error\\Deprecated' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Deprecated.php', + 'PHPUnit\\Framework\\Error\\Error' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Error.php', + 'PHPUnit\\Framework\\Error\\Notice' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Notice.php', + 'PHPUnit\\Framework\\Error\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Error/Warning.php', + 'PHPUnit\\Framework\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception.php', + 'PHPUnit\\Framework\\ExceptionWrapper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExceptionWrapper.php', + 'PHPUnit\\Framework\\ExpectationFailedException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/ExpectationFailedException.php', + 'PHPUnit\\Framework\\IncompleteTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTest.php', + 'PHPUnit\\Framework\\IncompleteTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestCase.php', + 'PHPUnit\\Framework\\IncompleteTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/IncompleteTestError.php', + 'PHPUnit\\Framework\\InvalidCoversTargetException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php', + 'PHPUnit\\Framework\\InvalidParameterGroupException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/InvalidParameterGroupException.php', + 'PHPUnit\\Framework\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php', + 'PHPUnit\\Framework\\MockObject\\BadMethodCallException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\Identity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\Match' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Match.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\MethodNameMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\NamespaceMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/NamespaceMatch.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\ParametersMatch' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php', + 'PHPUnit\\Framework\\MockObject\\Builder\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php', + 'PHPUnit\\Framework\\MockObject\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php', + 'PHPUnit\\Framework\\MockObject\\Generator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Generator.php', + 'PHPUnit\\Framework\\MockObject\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation/Invocation.php', + 'PHPUnit\\Framework\\MockObject\\InvocationMocker' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php', + 'PHPUnit\\Framework\\MockObject\\Invocation\\ObjectInvocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation/ObjectInvocation.php', + 'PHPUnit\\Framework\\MockObject\\Invocation\\StaticInvocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php', + 'PHPUnit\\Framework\\MockObject\\Invokable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Invokable.php', + 'PHPUnit\\Framework\\MockObject\\Matcher' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyInvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyInvokedCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\AnyParameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyParameters.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\ConsecutiveParameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\DeferredError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/DeferredError.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\Invocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Invocation.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtIndex' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtIndex.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtLeastOnce' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedAtMostCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtMostCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedCount' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedCount.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\InvokedRecorder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedRecorder.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\MethodName' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/MethodName.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\Parameters' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/Parameters.php', + 'PHPUnit\\Framework\\MockObject\\Matcher\\StatelessInvocation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Matcher/StatelessInvocation.php', + 'PHPUnit\\Framework\\MockObject\\MockBuilder' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php', + 'PHPUnit\\Framework\\MockObject\\MockMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockMethod.php', + 'PHPUnit\\Framework\\MockObject\\MockMethodSet' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php', + 'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/ForwardCompatibility/MockObject.php', + 'PHPUnit\\Framework\\MockObject\\RuntimeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php', + 'PHPUnit\\Framework\\MockObject\\Stub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ConsecutiveCalls' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\MatcherCollection' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/MatcherCollection.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnArgument' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnCallback' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnReference' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnSelf' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnStub' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php', + 'PHPUnit\\Framework\\MockObject\\Stub\\ReturnValueMap' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php', + 'PHPUnit\\Framework\\MockObject\\Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php', + 'PHPUnit\\Framework\\OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/OutputError.php', + 'PHPUnit\\Framework\\RiskyTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTest.php', + 'PHPUnit\\Framework\\RiskyTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/RiskyTestError.php', + 'PHPUnit\\Framework\\SelfDescribing' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SelfDescribing.php', + 'PHPUnit\\Framework\\SkippedTest' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTest.php', + 'PHPUnit\\Framework\\SkippedTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestCase.php', + 'PHPUnit\\Framework\\SkippedTestError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestError.php', + 'PHPUnit\\Framework\\SkippedTestSuiteError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php', + 'PHPUnit\\Framework\\SyntheticError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/SyntheticError.php', + 'PHPUnit\\Framework\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Test.php', + 'PHPUnit\\Framework\\TestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestCase.php', + 'PHPUnit\\Framework\\TestFailure' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestFailure.php', + 'PHPUnit\\Framework\\TestListener' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListener.php', + 'PHPUnit\\Framework\\TestListenerDefaultImplementation' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php', + 'PHPUnit\\Framework\\TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestResult.php', + 'PHPUnit\\Framework\\TestSuite' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuite.php', + 'PHPUnit\\Framework\\TestSuiteIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/TestSuiteIterator.php', + 'PHPUnit\\Framework\\UnexpectedValueException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/UnexpectedValueException.php', + 'PHPUnit\\Framework\\UnintentionallyCoveredCodeError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php', + 'PHPUnit\\Framework\\Warning' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Warning.php', + 'PHPUnit\\Framework\\WarningTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/WarningTestCase.php', + 'PHPUnit\\Runner\\AfterIncompleteTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php', + 'PHPUnit\\Runner\\AfterLastTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php', + 'PHPUnit\\Runner\\AfterRiskyTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php', + 'PHPUnit\\Runner\\AfterSkippedTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php', + 'PHPUnit\\Runner\\AfterSuccessfulTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php', + 'PHPUnit\\Runner\\AfterTestErrorHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php', + 'PHPUnit\\Runner\\AfterTestFailureHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php', + 'PHPUnit\\Runner\\AfterTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php', + 'PHPUnit\\Runner\\AfterTestWarningHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php', + 'PHPUnit\\Runner\\BaseTestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/BaseTestRunner.php', + 'PHPUnit\\Runner\\BeforeFirstTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php', + 'PHPUnit\\Runner\\BeforeTestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php', + 'PHPUnit\\Runner\\Exception' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Exception.php', + 'PHPUnit\\Runner\\Filter\\ExcludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php', + 'PHPUnit\\Runner\\Filter\\Factory' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/Factory.php', + 'PHPUnit\\Runner\\Filter\\GroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php', + 'PHPUnit\\Runner\\Filter\\IncludeGroupFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php', + 'PHPUnit\\Runner\\Filter\\NameFilterIterator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php', + 'PHPUnit\\Runner\\Hook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/Hook.php', + 'PHPUnit\\Runner\\NullTestResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/NullTestResultCache.php', + 'PHPUnit\\Runner\\PhptTestCase' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/PhptTestCase.php', + 'PHPUnit\\Runner\\ResultCacheExtension' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/ResultCacheExtension.php', + 'PHPUnit\\Runner\\StandardTestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php', + 'PHPUnit\\Runner\\TestHook' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/TestHook.php', + 'PHPUnit\\Runner\\TestListenerAdapter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php', + 'PHPUnit\\Runner\\TestResultCache' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestResultCache.php', + 'PHPUnit\\Runner\\TestResultCacheInterface' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestResultCacheInterface.php', + 'PHPUnit\\Runner\\TestSuiteLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteLoader.php', + 'PHPUnit\\Runner\\TestSuiteSorter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/TestSuiteSorter.php', + 'PHPUnit\\Runner\\Version' => __DIR__ . '/..' . '/phpunit/phpunit/src/Runner/Version.php', + 'PHPUnit\\TextUI\\Command' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/Command.php', + 'PHPUnit\\TextUI\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/ResultPrinter.php', + 'PHPUnit\\TextUI\\TestRunner' => __DIR__ . '/..' . '/phpunit/phpunit/src/TextUI/TestRunner.php', + 'PHPUnit\\Util\\Blacklist' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Blacklist.php', + 'PHPUnit\\Util\\Configuration' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Configuration.php', + 'PHPUnit\\Util\\ConfigurationGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ConfigurationGenerator.php', + 'PHPUnit\\Util\\ErrorHandler' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/ErrorHandler.php', + 'PHPUnit\\Util\\FileLoader' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/FileLoader.php', + 'PHPUnit\\Util\\Filesystem' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filesystem.php', + 'PHPUnit\\Util\\Filter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Filter.php', + 'PHPUnit\\Util\\Getopt' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Getopt.php', + 'PHPUnit\\Util\\GlobalState' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/GlobalState.php', + 'PHPUnit\\Util\\InvalidArgumentHelper' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/InvalidArgumentHelper.php', + 'PHPUnit\\Util\\Json' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Json.php', + 'PHPUnit\\Util\\Log\\JUnit' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/JUnit.php', + 'PHPUnit\\Util\\Log\\TeamCity' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Log/TeamCity.php', + 'PHPUnit\\Util\\PHP\\AbstractPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php', + 'PHPUnit\\Util\\PHP\\DefaultPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php', + 'PHPUnit\\Util\\PHP\\WindowsPhpProcess' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php', + 'PHPUnit\\Util\\Printer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Printer.php', + 'PHPUnit\\Util\\RegularExpression' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/RegularExpression.php', + 'PHPUnit\\Util\\Test' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Test.php', + 'PHPUnit\\Util\\TestDox\\CliTestDoxPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php', + 'PHPUnit\\Util\\TestDox\\HtmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php', + 'PHPUnit\\Util\\TestDox\\NamePrettifier' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/NamePrettifier.php', + 'PHPUnit\\Util\\TestDox\\ResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/ResultPrinter.php', + 'PHPUnit\\Util\\TestDox\\TestResult' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TestResult.php', + 'PHPUnit\\Util\\TestDox\\TextResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/TextResultPrinter.php', + 'PHPUnit\\Util\\TestDox\\XmlResultPrinter' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TestDox/XmlResultPrinter.php', + 'PHPUnit\\Util\\TextTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/TextTestListRenderer.php', + 'PHPUnit\\Util\\Type' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Type.php', + 'PHPUnit\\Util\\XdebugFilterScriptGenerator' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XdebugFilterScriptGenerator.php', + 'PHPUnit\\Util\\Xml' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/Xml.php', + 'PHPUnit\\Util\\XmlTestListRenderer' => __DIR__ . '/..' . '/phpunit/phpunit/src/Util/XmlTestListRenderer.php', + 'PHPUnit_Framework_MockObject_MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php', + 'PHP_Token' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_TokenWithScope' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_TokenWithScopeAndVisibility' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ABSTRACT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AMPERSAND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AND_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ARRAY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ARRAY_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_AT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BACKTICK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BAD_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BOOLEAN_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BOOLEAN_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BOOL_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_BREAK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CALLABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CARET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CASE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CATCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CHARACTER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLASS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLASS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLASS_NAME_CONSTANT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLONE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CLOSE_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COALESCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COALESCE_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COMMA' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONCAT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONSTANT_ENCAPSED_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CONTINUE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_CURLY_OPEN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DEC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DEFAULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DIR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DIV' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DIV_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOC_COMMENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOLLAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOLLAR_OPEN_CURLY_BRACES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_ARROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_COLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_DOUBLE_QUOTES' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ELLIPSIS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ELSE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ELSEIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EMPTY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENCAPSED_AND_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDDECLARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDFOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDFOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDIF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDSWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ENDWHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_END_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EVAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EXCLAMATION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EXIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_EXTENDS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FINAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FINALLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FOREACH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_FUNC_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_GLOBAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_GOTO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_GT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_HALT_COMPILER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IMPLEMENTS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INCLUDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INCLUDE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INLINE_HTML' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INSTANCEOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INSTEADOF' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INTERFACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_INT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_ISSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_GREATER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_NOT_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_NOT_IDENTICAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_IS_SMALLER_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_Includes' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LINE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LIST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LNUMBER' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LOGICAL_AND' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LOGICAL_OR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LOGICAL_XOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_LT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_METHOD_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MINUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MINUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MOD_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MULT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_MUL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NAMESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NEW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NS_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NS_SEPARATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_NUM_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OBJECT_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OBJECT_OPERATOR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_BRACKET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_CURLY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_SQUARE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_TAG' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OPEN_TAG_WITH_ECHO' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_OR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PAAMAYIM_NEKUDOTAYIM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PERCENT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PIPE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PLUS' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PLUS_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_POW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_POW_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PRINT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PRIVATE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PROTECTED' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_PUBLIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_QUESTION_MARK' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_REQUIRE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_REQUIRE_ONCE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_RETURN' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SEMICOLON' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SL_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SPACESHIP' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_START_HEREDOC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STATIC' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STRING' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STRING_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_STRING_VARNAME' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_SWITCH' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_Stream' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream.php', + 'PHP_Token_Stream_CachingFactory' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php', + 'PHP_Token_THROW' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TILDE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TRAIT' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TRAIT_C' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_TRY' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_UNSET' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_UNSET_CAST' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_USE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_USE_FUNCTION' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_Util' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token/Util.php', + 'PHP_Token_VAR' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_VARIABLE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_WHILE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_WHITESPACE' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_XOR_EQUAL' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_YIELD' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PHP_Token_YIELD_FROM' => __DIR__ . '/..' . '/phpunit/php-token-stream/src/Token.php', + 'PharIo\\Manifest\\Application' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Application.php', + 'PharIo\\Manifest\\ApplicationName' => __DIR__ . '/..' . '/phar-io/manifest/src/values/ApplicationName.php', + 'PharIo\\Manifest\\Author' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Author.php', + 'PharIo\\Manifest\\AuthorCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollection.php', + 'PharIo\\Manifest\\AuthorCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/AuthorCollectionIterator.php', + 'PharIo\\Manifest\\AuthorElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElement.php', + 'PharIo\\Manifest\\AuthorElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/AuthorElementCollection.php', + 'PharIo\\Manifest\\BundledComponent' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponent.php', + 'PharIo\\Manifest\\BundledComponentCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollection.php', + 'PharIo\\Manifest\\BundledComponentCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/BundledComponentCollectionIterator.php', + 'PharIo\\Manifest\\BundlesElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/BundlesElement.php', + 'PharIo\\Manifest\\ComponentElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElement.php', + 'PharIo\\Manifest\\ComponentElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ComponentElementCollection.php', + 'PharIo\\Manifest\\ContainsElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ContainsElement.php', + 'PharIo\\Manifest\\CopyrightElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/CopyrightElement.php', + 'PharIo\\Manifest\\CopyrightInformation' => __DIR__ . '/..' . '/phar-io/manifest/src/values/CopyrightInformation.php', + 'PharIo\\Manifest\\ElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ElementCollection.php', + 'PharIo\\Manifest\\Email' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Email.php', + 'PharIo\\Manifest\\Exception' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/Exception.php', + 'PharIo\\Manifest\\ExtElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElement.php', + 'PharIo\\Manifest\\ExtElementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtElementCollection.php', + 'PharIo\\Manifest\\Extension' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Extension.php', + 'PharIo\\Manifest\\ExtensionElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ExtensionElement.php', + 'PharIo\\Manifest\\InvalidApplicationNameException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php', + 'PharIo\\Manifest\\InvalidEmailException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidEmailException.php', + 'PharIo\\Manifest\\InvalidUrlException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/InvalidUrlException.php', + 'PharIo\\Manifest\\Library' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Library.php', + 'PharIo\\Manifest\\License' => __DIR__ . '/..' . '/phar-io/manifest/src/values/License.php', + 'PharIo\\Manifest\\LicenseElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/LicenseElement.php', + 'PharIo\\Manifest\\Manifest' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Manifest.php', + 'PharIo\\Manifest\\ManifestDocument' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocument.php', + 'PharIo\\Manifest\\ManifestDocumentException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentException.php', + 'PharIo\\Manifest\\ManifestDocumentLoadingException' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php', + 'PharIo\\Manifest\\ManifestDocumentMapper' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestDocumentMapper.php', + 'PharIo\\Manifest\\ManifestDocumentMapperException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php', + 'PharIo\\Manifest\\ManifestElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/ManifestElement.php', + 'PharIo\\Manifest\\ManifestElementException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestElementException.php', + 'PharIo\\Manifest\\ManifestLoader' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestLoader.php', + 'PharIo\\Manifest\\ManifestLoaderException' => __DIR__ . '/..' . '/phar-io/manifest/src/exceptions/ManifestLoaderException.php', + 'PharIo\\Manifest\\ManifestSerializer' => __DIR__ . '/..' . '/phar-io/manifest/src/ManifestSerializer.php', + 'PharIo\\Manifest\\PhpElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/PhpElement.php', + 'PharIo\\Manifest\\PhpExtensionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpExtensionRequirement.php', + 'PharIo\\Manifest\\PhpVersionRequirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/PhpVersionRequirement.php', + 'PharIo\\Manifest\\Requirement' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Requirement.php', + 'PharIo\\Manifest\\RequirementCollection' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollection.php', + 'PharIo\\Manifest\\RequirementCollectionIterator' => __DIR__ . '/..' . '/phar-io/manifest/src/values/RequirementCollectionIterator.php', + 'PharIo\\Manifest\\RequiresElement' => __DIR__ . '/..' . '/phar-io/manifest/src/xml/RequiresElement.php', + 'PharIo\\Manifest\\Type' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Type.php', + 'PharIo\\Manifest\\Url' => __DIR__ . '/..' . '/phar-io/manifest/src/values/Url.php', + 'PharIo\\Version\\AbstractVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AbstractVersionConstraint.php', + 'PharIo\\Version\\AndVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php', + 'PharIo\\Version\\AnyVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AnyVersionConstraint.php', + 'PharIo\\Version\\ExactVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/ExactVersionConstraint.php', + 'PharIo\\Version\\Exception' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/Exception.php', + 'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php', + 'PharIo\\Version\\InvalidPreReleaseSuffixException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php', + 'PharIo\\Version\\InvalidVersionException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidVersionException.php', + 'PharIo\\Version\\OrVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php', + 'PharIo\\Version\\PreReleaseSuffix' => __DIR__ . '/..' . '/phar-io/version/src/PreReleaseSuffix.php', + 'PharIo\\Version\\SpecificMajorAndMinorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php', + 'PharIo\\Version\\SpecificMajorVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php', + 'PharIo\\Version\\UnsupportedVersionConstraintException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/UnsupportedVersionConstraintException.php', + 'PharIo\\Version\\Version' => __DIR__ . '/..' . '/phar-io/version/src/Version.php', + 'PharIo\\Version\\VersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/VersionConstraint.php', + 'PharIo\\Version\\VersionConstraintParser' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintParser.php', + 'PharIo\\Version\\VersionConstraintValue' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintValue.php', + 'PharIo\\Version\\VersionNumber' => __DIR__ . '/..' . '/phar-io/version/src/VersionNumber.php', + 'SebastianBergmann\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php', + 'SebastianBergmann\\CodeCoverage\\CoveredCodeNotExecutedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php', + 'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Driver.php', + 'SebastianBergmann\\CodeCoverage\\Driver\\PHPDBG' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PHPDBG.php', + 'SebastianBergmann\\CodeCoverage\\Driver\\Xdebug' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Xdebug.php', + 'SebastianBergmann\\CodeCoverage\\Exception' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/Exception.php', + 'SebastianBergmann\\CodeCoverage\\Filter' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Filter.php', + 'SebastianBergmann\\CodeCoverage\\InvalidArgumentException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php', + 'SebastianBergmann\\CodeCoverage\\MissingCoversAnnotationException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php', + 'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/AbstractNode.php', + 'SebastianBergmann\\CodeCoverage\\Node\\Builder' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Builder.php', + 'SebastianBergmann\\CodeCoverage\\Node\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Directory.php', + 'SebastianBergmann\\CodeCoverage\\Node\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/File.php', + 'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Iterator.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Clover' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Clover.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Crap4j' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Crap4j.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Dashboard' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Facade.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Html\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Html\\Renderer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Html/Renderer.php', + 'SebastianBergmann\\CodeCoverage\\Report\\PHP' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/PHP.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Text' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Text.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\BuildInformation' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/BuildInformation.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Coverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Coverage.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Directory.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Facade' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Facade.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/File.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Method' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Method.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Node' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Node.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Project' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Project.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Report' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Report.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Source' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Source.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Tests' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Tests.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php', + 'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php', + 'SebastianBergmann\\CodeCoverage\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/RuntimeException.php', + 'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php', + 'SebastianBergmann\\CodeCoverage\\Util' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util.php', + 'SebastianBergmann\\CodeCoverage\\Version' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Version.php', + 'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => __DIR__ . '/..' . '/sebastian/code-unit-reverse-lookup/src/Wizard.php', + 'SebastianBergmann\\Comparator\\ArrayComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ArrayComparator.php', + 'SebastianBergmann\\Comparator\\Comparator' => __DIR__ . '/..' . '/sebastian/comparator/src/Comparator.php', + 'SebastianBergmann\\Comparator\\ComparisonFailure' => __DIR__ . '/..' . '/sebastian/comparator/src/ComparisonFailure.php', + 'SebastianBergmann\\Comparator\\DOMNodeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DOMNodeComparator.php', + 'SebastianBergmann\\Comparator\\DateTimeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DateTimeComparator.php', + 'SebastianBergmann\\Comparator\\DoubleComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/DoubleComparator.php', + 'SebastianBergmann\\Comparator\\ExceptionComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ExceptionComparator.php', + 'SebastianBergmann\\Comparator\\Factory' => __DIR__ . '/..' . '/sebastian/comparator/src/Factory.php', + 'SebastianBergmann\\Comparator\\MockObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/MockObjectComparator.php', + 'SebastianBergmann\\Comparator\\NumericComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/NumericComparator.php', + 'SebastianBergmann\\Comparator\\ObjectComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ObjectComparator.php', + 'SebastianBergmann\\Comparator\\ResourceComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ResourceComparator.php', + 'SebastianBergmann\\Comparator\\ScalarComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/ScalarComparator.php', + 'SebastianBergmann\\Comparator\\SplObjectStorageComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/SplObjectStorageComparator.php', + 'SebastianBergmann\\Comparator\\TypeComparator' => __DIR__ . '/..' . '/sebastian/comparator/src/TypeComparator.php', + 'SebastianBergmann\\Diff\\Chunk' => __DIR__ . '/..' . '/sebastian/diff/src/Chunk.php', + 'SebastianBergmann\\Diff\\ConfigurationException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/ConfigurationException.php', + 'SebastianBergmann\\Diff\\Diff' => __DIR__ . '/..' . '/sebastian/diff/src/Diff.php', + 'SebastianBergmann\\Diff\\Differ' => __DIR__ . '/..' . '/sebastian/diff/src/Differ.php', + 'SebastianBergmann\\Diff\\Exception' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/Exception.php', + 'SebastianBergmann\\Diff\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/diff/src/Exception/InvalidArgumentException.php', + 'SebastianBergmann\\Diff\\Line' => __DIR__ . '/..' . '/sebastian/diff/src/Line.php', + 'SebastianBergmann\\Diff\\LongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/LongestCommonSubsequenceCalculator.php', + 'SebastianBergmann\\Diff\\MemoryEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/MemoryEfficientLongestCommonSubsequenceCalculator.php', + 'SebastianBergmann\\Diff\\Output\\AbstractChunkOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/AbstractChunkOutputBuilder.php', + 'SebastianBergmann\\Diff\\Output\\DiffOnlyOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOnlyOutputBuilder.php', + 'SebastianBergmann\\Diff\\Output\\DiffOutputBuilderInterface' => __DIR__ . '/..' . '/sebastian/diff/src/Output/DiffOutputBuilderInterface.php', + 'SebastianBergmann\\Diff\\Output\\StrictUnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/StrictUnifiedDiffOutputBuilder.php', + 'SebastianBergmann\\Diff\\Output\\UnifiedDiffOutputBuilder' => __DIR__ . '/..' . '/sebastian/diff/src/Output/UnifiedDiffOutputBuilder.php', + 'SebastianBergmann\\Diff\\Parser' => __DIR__ . '/..' . '/sebastian/diff/src/Parser.php', + 'SebastianBergmann\\Diff\\TimeEfficientLongestCommonSubsequenceCalculator' => __DIR__ . '/..' . '/sebastian/diff/src/TimeEfficientLongestCommonSubsequenceCalculator.php', + 'SebastianBergmann\\Environment\\Console' => __DIR__ . '/..' . '/sebastian/environment/src/Console.php', + 'SebastianBergmann\\Environment\\OperatingSystem' => __DIR__ . '/..' . '/sebastian/environment/src/OperatingSystem.php', + 'SebastianBergmann\\Environment\\Runtime' => __DIR__ . '/..' . '/sebastian/environment/src/Runtime.php', + 'SebastianBergmann\\Exporter\\Exporter' => __DIR__ . '/..' . '/sebastian/exporter/src/Exporter.php', + 'SebastianBergmann\\FileIterator\\Facade' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Facade.php', + 'SebastianBergmann\\FileIterator\\Factory' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Factory.php', + 'SebastianBergmann\\FileIterator\\Iterator' => __DIR__ . '/..' . '/phpunit/php-file-iterator/src/Iterator.php', + 'SebastianBergmann\\GlobalState\\Blacklist' => __DIR__ . '/..' . '/sebastian/global-state/src/Blacklist.php', + 'SebastianBergmann\\GlobalState\\CodeExporter' => __DIR__ . '/..' . '/sebastian/global-state/src/CodeExporter.php', + 'SebastianBergmann\\GlobalState\\Exception' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/Exception.php', + 'SebastianBergmann\\GlobalState\\Restorer' => __DIR__ . '/..' . '/sebastian/global-state/src/Restorer.php', + 'SebastianBergmann\\GlobalState\\RuntimeException' => __DIR__ . '/..' . '/sebastian/global-state/src/exceptions/RuntimeException.php', + 'SebastianBergmann\\GlobalState\\Snapshot' => __DIR__ . '/..' . '/sebastian/global-state/src/Snapshot.php', + 'SebastianBergmann\\ObjectEnumerator\\Enumerator' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Enumerator.php', + 'SebastianBergmann\\ObjectEnumerator\\Exception' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/Exception.php', + 'SebastianBergmann\\ObjectEnumerator\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-enumerator/src/InvalidArgumentException.php', + 'SebastianBergmann\\ObjectReflector\\Exception' => __DIR__ . '/..' . '/sebastian/object-reflector/src/Exception.php', + 'SebastianBergmann\\ObjectReflector\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/object-reflector/src/InvalidArgumentException.php', + 'SebastianBergmann\\ObjectReflector\\ObjectReflector' => __DIR__ . '/..' . '/sebastian/object-reflector/src/ObjectReflector.php', + 'SebastianBergmann\\RecursionContext\\Context' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Context.php', + 'SebastianBergmann\\RecursionContext\\Exception' => __DIR__ . '/..' . '/sebastian/recursion-context/src/Exception.php', + 'SebastianBergmann\\RecursionContext\\InvalidArgumentException' => __DIR__ . '/..' . '/sebastian/recursion-context/src/InvalidArgumentException.php', + 'SebastianBergmann\\ResourceOperations\\ResourceOperations' => __DIR__ . '/..' . '/sebastian/resource-operations/src/ResourceOperations.php', + 'SebastianBergmann\\Timer\\Exception' => __DIR__ . '/..' . '/phpunit/php-timer/src/Exception.php', + 'SebastianBergmann\\Timer\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-timer/src/RuntimeException.php', + 'SebastianBergmann\\Timer\\Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php', + 'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php', + 'Text_Template' => __DIR__ . '/..' . '/phpunit/php-text-template/src/Template.php', + 'TheSeer\\Tokenizer\\Exception' => __DIR__ . '/..' . '/theseer/tokenizer/src/Exception.php', + 'TheSeer\\Tokenizer\\NamespaceUri' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUri.php', + 'TheSeer\\Tokenizer\\NamespaceUriException' => __DIR__ . '/..' . '/theseer/tokenizer/src/NamespaceUriException.php', + 'TheSeer\\Tokenizer\\Token' => __DIR__ . '/..' . '/theseer/tokenizer/src/Token.php', + 'TheSeer\\Tokenizer\\TokenCollection' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollection.php', + 'TheSeer\\Tokenizer\\TokenCollectionException' => __DIR__ . '/..' . '/theseer/tokenizer/src/TokenCollectionException.php', + 'TheSeer\\Tokenizer\\Tokenizer' => __DIR__ . '/..' . '/theseer/tokenizer/src/Tokenizer.php', + 'TheSeer\\Tokenizer\\XMLSerializer' => __DIR__ . '/..' . '/theseer/tokenizer/src/XMLSerializer.php', ); public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit57afa84953c9e97da59ce9c8c1e089ef::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit57afa84953c9e97da59ce9c8c1e089ef::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit57afa84953c9e97da59ce9c8c1e089ef::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit343975371c2de26dd0881e9210711e45::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit343975371c2de26dd0881e9210711e45::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit343975371c2de26dd0881e9210711e45::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index c175b643..f52d29a4 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -7,12 +7,12 @@ "source": { "type": "git", "url": "https://github.com/Appsero/client.git", - "reference": "d282f69e182d9800cce6e373c895c84bedc091d8" + "reference": "8d4b94c8536c6ce6f5a599c65c1e1cc6a465d637" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Appsero/client/zipball/d282f69e182d9800cce6e373c895c84bedc091d8", - "reference": "d282f69e182d9800cce6e373c895c84bedc091d8", + "url": "https://api.github.com/repos/Appsero/client/zipball/8d4b94c8536c6ce6f5a599c65c1e1cc6a465d637", + "reference": "8d4b94c8536c6ce6f5a599c65c1e1cc6a465d637", "shasum": "" }, "require": { @@ -26,7 +26,7 @@ "tareq1988/wp-php-cs-fixer": "dev-master", "wp-coding-standards/wpcs": "dev-develop" }, - "time": "2023-12-26T07:12:49+00:00", + "time": "2024-09-18T04:41:28+00:00", "default-branch": true, "type": "library", "installation-source": "dist", @@ -58,6 +58,129 @@ }, "install-path": "../appsero/client" }, + { + "name": "doctrine/deprecations", + "version": "1.1.3", + "version_normalized": "1.1.3.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "time": "2024-01-30T19:34:25+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.3" + }, + "install-path": "../doctrine/deprecations" + }, + { + "name": "doctrine/instantiator", + "version": "1.5.0", + "version_normalized": "1.5.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^11", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.30 || ^5.4" + }, + "time": "2022-12-30T00:15:36+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "install-path": "../doctrine/instantiator" + }, { "name": "katzgrau/klogger", "version": "dev-master", @@ -117,34 +240,213 @@ "install-path": "../katzgrau/klogger" }, { - "name": "psr/log", - "version": "1.1.4", - "version_normalized": "1.1.4.0", + "name": "myclabs/deep-copy", + "version": "1.12.0", + "version_normalized": "1.12.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.1 || ^8.0" }, - "time": "2021-05-03T11:20:27+00:00", + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "time": "2024-06-12T14:39:25+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "install-path": "../myclabs/deep-copy" + }, + { + "name": "phar-io/manifest", + "version": "1.0.3", + "version_normalized": "1.0.3.0", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^2.0", + "php": "^5.6 || ^7.0" + }, + "time": "2018-07-08T19:23:20+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/master" + }, + "install-path": "../phar-io/manifest" + }, + { + "name": "phar-io/version", + "version": "2.0.1", + "version_normalized": "2.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "time": "2018-07-08T19:19:57+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/master" + }, + "install-path": "../phar-io/version" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "version_normalized": "2.2.0.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "time": "2020-06-27T09:03:43+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" } }, "installation-source": "dist", "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "phpDocumentor\\Reflection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -153,53 +455,69 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" } ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", "keywords": [ - "log", - "psr", - "psr-3" + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" ], "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" }, - "install-path": "../psr/log" + "install-path": "../phpdocumentor/reflection-common" }, { - "name": "rakit/validation", - "version": "dev-master", - "version_normalized": "dev-master", + "name": "phpdocumentor/reflection-docblock", + "version": "5.4.1", + "version_normalized": "5.4.1.0", "source": { "type": "git", - "url": "https://github.com/rakit/validation.git", - "reference": "ff003a35cdf5030a5f2482299f4c93f344a35b29" + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rakit/validation/zipball/ff003a35cdf5030a5f2482299f4c93f344a35b29", - "reference": "ff003a35cdf5030a5f2482299f4c93f344a35b29", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", + "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", "shasum": "" }, "require": { - "ext-mbstring": "*", - "php": ">=7.0" + "doctrine/deprecations": "^1.1", + "ext-filter": "*", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.7", + "phpstan/phpdoc-parser": "^1.7", + "webmozart/assert": "^1.9.1" }, "require-dev": { - "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^6.5", - "squizlabs/php_codesniffer": "^3" + "mockery/mockery": "~1.3.5", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^5.13" }, - "time": "2020-08-27T05:07:01+00:00", - "default-branch": true, + "time": "2024-05-21T05:55:05+00:00", "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, "installation-source": "dist", "autoload": { "psr-4": { - "Rakit\\Validation\\": "src" + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -208,18 +526,1859 @@ ], "authors": [ { - "name": "Muhammad Syifa", - "email": "emsifa@gmail.com" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" } ], - "description": "PHP Laravel like standalone validation library", + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { - "issues": "https://github.com/rakit/validation/issues", - "source": "https://github.com/rakit/validation/tree/v1.4.0" + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.1" }, - "install-path": "../rakit/validation" + "install-path": "../phpdocumentor/reflection-docblock" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.8.2", + "version_normalized": "1.8.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "153ae662783729388a584b4361f2545e4d841e3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c", + "reference": "153ae662783729388a584b4361f2545e4d841e3c", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.3 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.13" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "time": "2024-02-23T11:10:43+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2" + }, + "install-path": "../phpdocumentor/type-resolver" + }, + { + "name": "phpspec/prophecy", + "version": "v1.19.0", + "version_normalized": "1.19.0.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/67a759e7d8746d501c41536ba40cd9c0a07d6a87", + "reference": "67a759e7d8746d501c41536ba40cd9c0a07d6a87", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2 || ^2.0", + "php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.*", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0 || ^5.0 || ^6.0", + "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0 || ^6.0" + }, + "require-dev": { + "phpspec/phpspec": "^6.0 || ^7.0", + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^8.0 || ^9.0 || ^10.0" + }, + "time": "2024-02-29T11:52:51+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "dev", + "fake", + "mock", + "spy", + "stub" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/v1.19.0" + }, + "install-path": "../phpspec/prophecy" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.33.0", + "version_normalized": "1.33.0.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "reference": "82a311fd3690fb2bf7b64d5c98f912b3dd746140", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "time": "2024-10-13T11:25:22+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.33.0" + }, + "install-path": "../phpstan/phpdoc-parser" + }, + { + "name": "phpunit/php-code-coverage", + "version": "6.1.4", + "version_normalized": "6.1.4.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", + "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.1", + "phpunit/php-file-iterator": "^2.0", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^3.0", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^3.1 || ^4.0", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "suggest": { + "ext-xdebug": "^2.6.0" + }, + "time": "2018-10-31T16:06:48+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.1-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/master" + }, + "install-path": "../phpunit/php-code-coverage" + }, + { + "name": "phpunit/php-file-iterator", + "version": "2.0.6", + "version_normalized": "2.0.6.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "69deeb8664f611f156a924154985fbd4911eb36b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/69deeb8664f611f156a924154985fbd4911eb36b", + "reference": "69deeb8664f611f156a924154985fbd4911eb36b", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "time": "2024-03-01T13:39:50+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "install-path": "../phpunit/php-file-iterator" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "version_normalized": "1.2.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "time": "2015-06-21T13:50:34+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + }, + "install-path": "../phpunit/php-text-template" + }, + { + "name": "phpunit/php-timer", + "version": "2.1.4", + "version_normalized": "2.1.4.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "a691211e94ff39a34811abd521c31bd5b305b0bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/a691211e94ff39a34811abd521c31bd5b305b0bb", + "reference": "a691211e94ff39a34811abd521c31bd5b305b0bb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "time": "2024-03-01T13:42:41+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "install-path": "../phpunit/php-timer" + }, + { + "name": "phpunit/php-token-stream", + "version": "3.1.3", + "version_normalized": "3.1.3.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "9c1da83261628cb24b6a6df371b6e312b3954768" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9c1da83261628cb24b6a6df371b6e312b3954768", + "reference": "9c1da83261628cb24b6a6df371b6e312b3954768", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "time": "2021-07-26T12:15:06+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "abandoned": true, + "install-path": "../phpunit/php-token-stream" + }, + { + "name": "phpunit/phpunit", + "version": "7.5.20", + "version_normalized": "7.5.20.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c", + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "myclabs/deep-copy": "^1.7", + "phar-io/manifest": "^1.0.2", + "phar-io/version": "^2.0", + "php": "^7.1", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^6.0.7", + "phpunit/php-file-iterator": "^2.0.1", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.1", + "sebastian/comparator": "^3.0", + "sebastian/diff": "^3.0", + "sebastian/environment": "^4.0", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^2.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.0", + "sebastian/version": "^2.0.1" + }, + "conflict": { + "phpunit/phpunit-mock-objects": "*" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*", + "phpunit/php-invoker": "^2.0" + }, + "time": "2020-01-08T08:45:45+00:00", + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.5-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/7.5.20" + }, + "install-path": "../phpunit/phpunit" + }, + { + "name": "psr/log", + "version": "1.1.4", + "version_normalized": "1.1.4.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2021-05-03T11:20:27+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "install-path": "../psr/log" + }, + { + "name": "rakit/validation", + "version": "dev-master", + "version_normalized": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/rakit/validation.git", + "reference": "ff003a35cdf5030a5f2482299f4c93f344a35b29" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rakit/validation/zipball/ff003a35cdf5030a5f2482299f4c93f344a35b29", + "reference": "ff003a35cdf5030a5f2482299f4c93f344a35b29", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=7.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^6.5", + "squizlabs/php_codesniffer": "^3" + }, + "time": "2020-08-27T05:07:01+00:00", + "default-branch": true, + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Rakit\\Validation\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Muhammad Syifa", + "email": "emsifa@gmail.com" + } + ], + "description": "PHP Laravel like standalone validation library", + "support": { + "issues": "https://github.com/rakit/validation/issues", + "source": "https://github.com/rakit/validation/tree/master" + }, + "install-path": "../rakit/validation" + }, + { + "name": "roots/wordpress", + "version": "5.9.10", + "version_normalized": "5.9.10.0", + "source": { + "type": "git", + "url": "https://github.com/roots/wordpress.git", + "reference": "41ff6e23ccbc3a1691406d69fe8c211a225514e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/roots/wordpress/zipball/41ff6e23ccbc3a1691406d69fe8c211a225514e2", + "reference": "41ff6e23ccbc3a1691406d69fe8c211a225514e2", + "shasum": "" + }, + "require": { + "roots/wordpress-core-installer": "^1.0.0", + "roots/wordpress-no-content": "self.version" + }, + "time": "2022-06-01T16:54:37+00:00", + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT", + "GPL-2.0-or-later" + ], + "description": "WordPress is open source software you can use to create a beautiful website, blog, or app.", + "homepage": "https://wordpress.org/", + "keywords": [ + "blog", + "cms", + "wordpress" + ], + "support": { + "issues": "https://github.com/roots/wordpress/issues", + "source": "https://github.com/roots/wordpress/tree/6.5.5" + }, + "funding": [ + { + "url": "https://github.com/roots", + "type": "github" + } + ], + "install-path": null + }, + { + "name": "roots/wordpress-core-installer", + "version": "1.100.0", + "version_normalized": "1.100.0.0", + "source": { + "type": "git", + "url": "https://github.com/roots/wordpress-core-installer.git", + "reference": "73f8488e5178c5d54234b919f823a9095e2b1847" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/roots/wordpress-core-installer/zipball/73f8488e5178c5d54234b919f823a9095e2b1847", + "reference": "73f8488e5178c5d54234b919f823a9095e2b1847", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=5.6.0" + }, + "conflict": { + "composer/installers": "<1.0.6" + }, + "replace": { + "johnpbloch/wordpress-core-installer": "*" + }, + "require-dev": { + "composer/composer": "^1.0 || ^2.0", + "phpunit/phpunit": ">=5.7.27" + }, + "time": "2020-08-20T00:27:30+00:00", + "type": "composer-plugin", + "extra": { + "class": "Roots\\Composer\\WordPressCorePlugin" + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Roots\\Composer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "John P. Bloch", + "email": "me@johnpbloch.com" + }, + { + "name": "Roots", + "email": "team@roots.io" + } + ], + "description": "A custom installer to handle deploying WordPress with composer", + "keywords": [ + "wordpress" + ], + "support": { + "issues": "https://github.com/roots/wordpress-core-installer/issues", + "source": "https://github.com/roots/wordpress-core-installer/tree/master" + }, + "funding": [ + { + "url": "https://github.com/roots", + "type": "github" + }, + { + "url": "https://www.patreon.com/rootsdev", + "type": "patreon" + } + ], + "install-path": "../roots/wordpress-core-installer" + }, + { + "name": "roots/wordpress-no-content", + "version": "5.9.10", + "version_normalized": "5.9.10.0", + "source": { + "type": "git", + "url": "https://github.com/WordPress/WordPress.git", + "reference": "5.9.10" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/release/wordpress-5.9.10-no-content.zip", + "shasum": "1a259c0d69d3ef03d07ffc205ae8fb4433622d1f" + }, + "require": { + "php": ">= 5.6.20" + }, + "provide": { + "wordpress/core-implementation": "5.9.10" + }, + "suggest": { + "ext-curl": "Performs remote request operations.", + "ext-dom": "Used to validate Text Widget content and to automatically configuring IIS7+.", + "ext-exif": "Works with metadata stored in images.", + "ext-fileinfo": "Used to detect mimetype of file uploads.", + "ext-hash": "Used for hashing, including passwords and update packages.", + "ext-imagick": "Provides better image quality for media uploads.", + "ext-json": "Used for communications with other servers.", + "ext-libsodium": "Validates Signatures and provides securely random bytes.", + "ext-mbstring": "Used to properly handle UTF8 text.", + "ext-mysqli": "Connects to MySQL for database interactions.", + "ext-openssl": "Permits SSL-based connections to other hosts.", + "ext-pcre": "Increases performance of pattern matching in code searches.", + "ext-xml": "Used for XML parsing, such as from a third-party site.", + "ext-zip": "Used for decompressing Plugins, Themes, and WordPress update packages." + }, + "time": "2024-06-24T19:14:35+00:00", + "type": "wordpress-core", + "installation-source": "dist", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "WordPress Community", + "homepage": "https://wordpress.org/about/" + } + ], + "description": "WordPress is open source software you can use to create a beautiful website, blog, or app.", + "homepage": "https://wordpress.org/", + "keywords": [ + "blog", + "cms", + "wordpress" + ], + "support": { + "docs": "https://developer.wordpress.org/", + "forum": "https://wordpress.org/support/", + "irc": "irc://irc.freenode.net/wordpress", + "issues": "https://core.trac.wordpress.org/", + "rss": "https://wordpress.org/news/feed/", + "source": "https://core.trac.wordpress.org/browser", + "wiki": "https://codex.wordpress.org/" + }, + "funding": [ + { + "url": "https://wordpressfoundation.org/donate/", + "type": "other" + } + ], + "install-path": "../roots/wordpress" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "1.0.3", + "version_normalized": "1.0.3.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54", + "reference": "92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "time": "2024-03-01T13:45:45+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "install-path": "../sebastian/code-unit-reverse-lookup" + }, + { + "name": "sebastian/comparator", + "version": "3.0.5", + "version_normalized": "3.0.5.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dc7ceb4a24aede938c7af2a9ed1de09609ca770", + "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "time": "2022-09-14T12:31:48+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "install-path": "../sebastian/comparator" + }, + { + "name": "sebastian/diff", + "version": "3.0.6", + "version_normalized": "3.0.6.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "98ff311ca519c3aa73ccd3de053bdb377171d7b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/98ff311ca519c3aa73ccd3de053bdb377171d7b6", + "reference": "98ff311ca519c3aa73ccd3de053bdb377171d7b6", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/process": "^2 || ^3.3 || ^4" + }, + "time": "2024-03-02T06:16:36+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "install-path": "../sebastian/diff" + }, + { + "name": "sebastian/environment", + "version": "4.2.5", + "version_normalized": "4.2.5.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "56932f6049a0482853056ffd617c91ffcc754205" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/56932f6049a0482853056ffd617c91ffcc754205", + "reference": "56932f6049a0482853056ffd617c91ffcc754205", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5" + }, + "suggest": { + "ext-posix": "*" + }, + "time": "2024-03-01T13:49:59+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/4.2.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "install-path": "../sebastian/environment" + }, + { + "name": "sebastian/exporter", + "version": "3.1.6", + "version_normalized": "3.1.6.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "1939bc8fd1d39adcfa88c5b35335910869214c56" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/1939bc8fd1d39adcfa88c5b35335910869214c56", + "reference": "1939bc8fd1d39adcfa88c5b35335910869214c56", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^8.5" + }, + "time": "2024-03-02T06:21:38+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "install-path": "../sebastian/exporter" + }, + { + "name": "sebastian/global-state", + "version": "2.0.0", + "version_normalized": "2.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-uopz": "*" + }, + "time": "2017-04-27T15:39:26+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/2.0.0" + }, + "install-path": "../sebastian/global-state" + }, + { + "name": "sebastian/object-enumerator", + "version": "3.0.5", + "version_normalized": "3.0.5.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "ac5b293dba925751b808e02923399fb44ff0d541" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/ac5b293dba925751b808e02923399fb44ff0d541", + "reference": "ac5b293dba925751b808e02923399fb44ff0d541", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "time": "2024-03-01T13:54:02+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "install-path": "../sebastian/object-enumerator" + }, + { + "name": "sebastian/object-reflector", + "version": "1.1.3", + "version_normalized": "1.1.3.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "1d439c229e61f244ff1f211e5c99737f90c67def" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/1d439c229e61f244ff1f211e5c99737f90c67def", + "reference": "1d439c229e61f244ff1f211e5c99737f90c67def", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "time": "2024-03-01T13:56:04+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "install-path": "../sebastian/object-reflector" + }, + { + "name": "sebastian/recursion-context", + "version": "3.0.2", + "version_normalized": "3.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "9bfd3c6f1f08c026f542032dfb42813544f7d64c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/9bfd3c6f1f08c026f542032dfb42813544f7d64c", + "reference": "9bfd3c6f1f08c026f542032dfb42813544f7d64c", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "time": "2024-03-01T14:07:30+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "install-path": "../sebastian/recursion-context" + }, + { + "name": "sebastian/resource-operations", + "version": "2.0.3", + "version_normalized": "2.0.3.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "72a7f7674d053d548003b16ff5a106e7e0e06eee" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/72a7f7674d053d548003b16ff5a106e7e0e06eee", + "reference": "72a7f7674d053d548003b16ff5a106e7e0e06eee", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "time": "2024-03-01T13:59:09+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "install-path": "../sebastian/resource-operations" + }, + { + "name": "sebastian/version", + "version": "2.0.1", + "version_normalized": "2.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "time": "2016-10-03T07:35:21+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/master" + }, + "install-path": "../sebastian/version" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.3", + "version_normalized": "1.2.3.0", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "time": "2024-03-03T12:36:25+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "install-path": "../theseer/tokenizer" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "version_normalized": "1.11.0.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "time": "2022-06-03T18:03:27+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "install-path": "../webmozart/assert" + }, + { + "name": "wp-phpunit/wp-phpunit", + "version": "5.9.10", + "version_normalized": "5.9.10.0", + "source": { + "type": "git", + "url": "https://github.com/wp-phpunit/wp-phpunit.git", + "reference": "f9b5b3a44d3677c7d4803074d81ad3cd12b0eeea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wp-phpunit/wp-phpunit/zipball/f9b5b3a44d3677c7d4803074d81ad3cd12b0eeea", + "reference": "f9b5b3a44d3677c7d4803074d81ad3cd12b0eeea", + "shasum": "" + }, + "time": "2022-08-30T21:14:52+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "__loaded.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Evan Mattson", + "email": "me@aaemnnost.tv" + }, + { + "name": "WordPress Community", + "homepage": "https://wordpress.org/about/" + } + ], + "description": "WordPress core PHPUnit library", + "homepage": "https://github.com/wp-phpunit", + "keywords": [ + "phpunit", + "test", + "wordpress" + ], + "support": { + "docs": "https://github.com/wp-phpunit/docs", + "issues": "https://github.com/wp-phpunit/issues", + "source": "https://github.com/wp-phpunit/wp-phpunit" + }, + "install-path": "../wp-phpunit/wp-phpunit" + }, + { + "name": "yoast/phpunit-polyfills", + "version": "1.1.2", + "version_normalized": "1.1.2.0", + "source": { + "type": "git", + "url": "https://github.com/Yoast/PHPUnit-Polyfills.git", + "reference": "e9c8413de4c8ae03d2923a44f17d0d7dad1b96be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/e9c8413de4c8ae03d2923a44f17d0d7dad1b96be", + "reference": "e9c8413de4c8ae03d2923a44f17d0d7dad1b96be", + "shasum": "" + }, + "require": { + "php": ">=5.4", + "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0" + }, + "require-dev": { + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "yoast/yoastcs": "^3.1.0" + }, + "time": "2024-09-06T22:03:10+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "files": [ + "phpunitpolyfills-autoload.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Team Yoast", + "email": "support@yoast.com", + "homepage": "https://yoast.com" + }, + { + "name": "Contributors", + "homepage": "https://github.com/Yoast/PHPUnit-Polyfills/graphs/contributors" + } + ], + "description": "Set of polyfills for changed PHPUnit functionality to allow for creating PHPUnit cross-version compatible tests", + "homepage": "https://github.com/Yoast/PHPUnit-Polyfills", + "keywords": [ + "phpunit", + "polyfill", + "testing" + ], + "support": { + "issues": "https://github.com/Yoast/PHPUnit-Polyfills/issues", + "security": "https://github.com/Yoast/PHPUnit-Polyfills/security/policy", + "source": "https://github.com/Yoast/PHPUnit-Polyfills" + }, + "install-path": "../yoast/phpunit-polyfills" } ], - "dev": false, - "dev-package-names": [] + "dev": true, + "dev-package-names": [ + "doctrine/deprecations", + "doctrine/instantiator", + "myclabs/deep-copy", + "phar-io/manifest", + "phar-io/version", + "phpdocumentor/reflection-common", + "phpdocumentor/reflection-docblock", + "phpdocumentor/type-resolver", + "phpspec/prophecy", + "phpstan/phpdoc-parser", + "phpunit/php-code-coverage", + "phpunit/php-file-iterator", + "phpunit/php-text-template", + "phpunit/php-timer", + "phpunit/php-token-stream", + "phpunit/phpunit", + "roots/wordpress", + "roots/wordpress-core-installer", + "roots/wordpress-no-content", + "sebastian/code-unit-reverse-lookup", + "sebastian/comparator", + "sebastian/diff", + "sebastian/environment", + "sebastian/exporter", + "sebastian/global-state", + "sebastian/object-enumerator", + "sebastian/object-reflector", + "sebastian/recursion-context", + "sebastian/resource-operations", + "sebastian/version", + "theseer/tokenizer", + "webmozart/assert", + "wp-phpunit/wp-phpunit", + "yoast/phpunit-polyfills" + ] } diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index a00e1b33..d4219b81 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,17 +3,17 @@ 'name' => 'formello/forms', 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '4919b5685b89d3d3b936805e10ef5693fdb24253', + 'reference' => '03e96df2f774aef567bfb6dec3a129dbf37c2b1b', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'dev' => false, + 'dev' => true, ), 'versions' => array( 'appsero/client' => array( 'pretty_version' => 'dev-develop', 'version' => 'dev-develop', - 'reference' => 'd282f69e182d9800cce6e373c895c84bedc091d8', + 'reference' => '8d4b94c8536c6ce6f5a599c65c1e1cc6a465d637', 'type' => 'library', 'install_path' => __DIR__ . '/../appsero/client', 'aliases' => array( @@ -21,15 +21,39 @@ ), 'dev_requirement' => false, ), + 'doctrine/deprecations' => array( + 'pretty_version' => '1.1.3', + 'version' => '1.1.3.0', + 'reference' => 'dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab', + 'type' => 'library', + 'install_path' => __DIR__ . '/../doctrine/deprecations', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'doctrine/instantiator' => array( + 'pretty_version' => '1.5.0', + 'version' => '1.5.0.0', + 'reference' => '0a0fa9780f5d4e507415a065172d26a98d02047b', + 'type' => 'library', + 'install_path' => __DIR__ . '/../doctrine/instantiator', + 'aliases' => array(), + 'dev_requirement' => true, + ), 'formello/forms' => array( 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '4919b5685b89d3d3b936805e10ef5693fdb24253', + 'reference' => '03e96df2f774aef567bfb6dec3a129dbf37c2b1b', 'type' => 'wordpress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => false, ), + 'johnpbloch/wordpress-core-installer' => array( + 'dev_requirement' => true, + 'replaced' => array( + 0 => '*', + ), + ), 'katzgrau/klogger' => array( 'pretty_version' => 'dev-master', 'version' => 'dev-master', @@ -41,6 +65,132 @@ ), 'dev_requirement' => false, ), + 'myclabs/deep-copy' => array( + 'pretty_version' => '1.12.0', + 'version' => '1.12.0.0', + 'reference' => '3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c', + 'type' => 'library', + 'install_path' => __DIR__ . '/../myclabs/deep-copy', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phar-io/manifest' => array( + 'pretty_version' => '1.0.3', + 'version' => '1.0.3.0', + 'reference' => '7761fcacf03b4d4f16e7ccb606d4879ca431fcf4', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phar-io/manifest', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phar-io/version' => array( + 'pretty_version' => '2.0.1', + 'version' => '2.0.1.0', + 'reference' => '45a2ec53a73c70ce41d55cedef9063630abaf1b6', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phar-io/version', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpdocumentor/reflection-common' => array( + 'pretty_version' => '2.2.0', + 'version' => '2.2.0.0', + 'reference' => '1d01c49d4ed62f25aa84a747ad35d5a16924662b', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpdocumentor/reflection-common', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpdocumentor/reflection-docblock' => array( + 'pretty_version' => '5.4.1', + 'version' => '5.4.1.0', + 'reference' => '9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpdocumentor/reflection-docblock', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpdocumentor/type-resolver' => array( + 'pretty_version' => '1.8.2', + 'version' => '1.8.2.0', + 'reference' => '153ae662783729388a584b4361f2545e4d841e3c', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpdocumentor/type-resolver', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpspec/prophecy' => array( + 'pretty_version' => 'v1.19.0', + 'version' => '1.19.0.0', + 'reference' => '67a759e7d8746d501c41536ba40cd9c0a07d6a87', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpspec/prophecy', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpstan/phpdoc-parser' => array( + 'pretty_version' => '1.33.0', + 'version' => '1.33.0.0', + 'reference' => '82a311fd3690fb2bf7b64d5c98f912b3dd746140', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpstan/phpdoc-parser', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpunit/php-code-coverage' => array( + 'pretty_version' => '6.1.4', + 'version' => '6.1.4.0', + 'reference' => '807e6013b00af69b6c5d9ceb4282d0393dbb9d8d', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpunit/php-code-coverage', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpunit/php-file-iterator' => array( + 'pretty_version' => '2.0.6', + 'version' => '2.0.6.0', + 'reference' => '69deeb8664f611f156a924154985fbd4911eb36b', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpunit/php-file-iterator', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpunit/php-text-template' => array( + 'pretty_version' => '1.2.1', + 'version' => '1.2.1.0', + 'reference' => '31f8b717e51d9a2afca6c9f046f5d69fc27c8686', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpunit/php-text-template', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpunit/php-timer' => array( + 'pretty_version' => '2.1.4', + 'version' => '2.1.4.0', + 'reference' => 'a691211e94ff39a34811abd521c31bd5b305b0bb', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpunit/php-timer', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpunit/php-token-stream' => array( + 'pretty_version' => '3.1.3', + 'version' => '3.1.3.0', + 'reference' => '9c1da83261628cb24b6a6df371b6e312b3954768', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpunit/php-token-stream', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'phpunit/phpunit' => array( + 'pretty_version' => '7.5.20', + 'version' => '7.5.20.0', + 'reference' => '9467db479d1b0487c99733bb1e7944d32deded2c', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpunit/phpunit', + 'aliases' => array(), + 'dev_requirement' => true, + ), 'psr/log' => array( 'pretty_version' => '1.1.4', 'version' => '1.1.4.0', @@ -61,5 +211,173 @@ ), 'dev_requirement' => false, ), + 'roots/wordpress' => array( + 'pretty_version' => '5.9.10', + 'version' => '5.9.10.0', + 'reference' => '41ff6e23ccbc3a1691406d69fe8c211a225514e2', + 'type' => 'metapackage', + 'install_path' => NULL, + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'roots/wordpress-core-installer' => array( + 'pretty_version' => '1.100.0', + 'version' => '1.100.0.0', + 'reference' => '73f8488e5178c5d54234b919f823a9095e2b1847', + 'type' => 'composer-plugin', + 'install_path' => __DIR__ . '/../roots/wordpress-core-installer', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'roots/wordpress-no-content' => array( + 'pretty_version' => '5.9.10', + 'version' => '5.9.10.0', + 'reference' => '5.9.10', + 'type' => 'wordpress-core', + 'install_path' => __DIR__ . '/../roots/wordpress', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/code-unit-reverse-lookup' => array( + 'pretty_version' => '1.0.3', + 'version' => '1.0.3.0', + 'reference' => '92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/code-unit-reverse-lookup', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/comparator' => array( + 'pretty_version' => '3.0.5', + 'version' => '3.0.5.0', + 'reference' => '1dc7ceb4a24aede938c7af2a9ed1de09609ca770', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/comparator', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/diff' => array( + 'pretty_version' => '3.0.6', + 'version' => '3.0.6.0', + 'reference' => '98ff311ca519c3aa73ccd3de053bdb377171d7b6', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/diff', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/environment' => array( + 'pretty_version' => '4.2.5', + 'version' => '4.2.5.0', + 'reference' => '56932f6049a0482853056ffd617c91ffcc754205', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/environment', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/exporter' => array( + 'pretty_version' => '3.1.6', + 'version' => '3.1.6.0', + 'reference' => '1939bc8fd1d39adcfa88c5b35335910869214c56', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/exporter', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/global-state' => array( + 'pretty_version' => '2.0.0', + 'version' => '2.0.0.0', + 'reference' => 'e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/global-state', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/object-enumerator' => array( + 'pretty_version' => '3.0.5', + 'version' => '3.0.5.0', + 'reference' => 'ac5b293dba925751b808e02923399fb44ff0d541', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/object-enumerator', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/object-reflector' => array( + 'pretty_version' => '1.1.3', + 'version' => '1.1.3.0', + 'reference' => '1d439c229e61f244ff1f211e5c99737f90c67def', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/object-reflector', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/recursion-context' => array( + 'pretty_version' => '3.0.2', + 'version' => '3.0.2.0', + 'reference' => '9bfd3c6f1f08c026f542032dfb42813544f7d64c', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/recursion-context', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/resource-operations' => array( + 'pretty_version' => '2.0.3', + 'version' => '2.0.3.0', + 'reference' => '72a7f7674d053d548003b16ff5a106e7e0e06eee', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/resource-operations', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'sebastian/version' => array( + 'pretty_version' => '2.0.1', + 'version' => '2.0.1.0', + 'reference' => '99732be0ddb3361e16ad77b68ba41efc8e979019', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sebastian/version', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'theseer/tokenizer' => array( + 'pretty_version' => '1.2.3', + 'version' => '1.2.3.0', + 'reference' => '737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2', + 'type' => 'library', + 'install_path' => __DIR__ . '/../theseer/tokenizer', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'webmozart/assert' => array( + 'pretty_version' => '1.11.0', + 'version' => '1.11.0.0', + 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', + 'type' => 'library', + 'install_path' => __DIR__ . '/../webmozart/assert', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'wordpress/core-implementation' => array( + 'dev_requirement' => true, + 'provided' => array( + 0 => '5.9.10', + ), + ), + 'wp-phpunit/wp-phpunit' => array( + 'pretty_version' => '5.9.10', + 'version' => '5.9.10.0', + 'reference' => 'f9b5b3a44d3677c7d4803074d81ad3cd12b0eeea', + 'type' => 'library', + 'install_path' => __DIR__ . '/../wp-phpunit/wp-phpunit', + 'aliases' => array(), + 'dev_requirement' => true, + ), + 'yoast/phpunit-polyfills' => array( + 'pretty_version' => '1.1.2', + 'version' => '1.1.2.0', + 'reference' => 'e9c8413de4c8ae03d2923a44f17d0d7dad1b96be', + 'type' => 'library', + 'install_path' => __DIR__ . '/../yoast/phpunit-polyfills', + 'aliases' => array(), + 'dev_requirement' => true, + ), ), ); diff --git a/vendor/doctrine/deprecations/LICENSE b/vendor/doctrine/deprecations/LICENSE new file mode 100644 index 00000000..156905cd --- /dev/null +++ b/vendor/doctrine/deprecations/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2020-2021 Doctrine Project + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/doctrine/deprecations/README.md b/vendor/doctrine/deprecations/README.md new file mode 100644 index 00000000..93caf83f --- /dev/null +++ b/vendor/doctrine/deprecations/README.md @@ -0,0 +1,157 @@ +# Doctrine Deprecations + +A small (side-effect free by default) layer on top of +`trigger_error(E_USER_DEPRECATED)` or PSR-3 logging. + +- no side-effects by default, making it a perfect fit for libraries that don't know how the error handler works they operate under +- options to avoid having to rely on error handlers global state by using PSR-3 logging +- deduplicate deprecation messages to avoid excessive triggering and reduce overhead + +We recommend to collect Deprecations using a PSR logger instead of relying on +the global error handler. + +## Usage from consumer perspective: + +Enable Doctrine deprecations to be sent to a PSR3 logger: + +```php +\Doctrine\Deprecations\Deprecation::enableWithPsrLogger($logger); +``` + +Enable Doctrine deprecations to be sent as `@trigger_error($message, E_USER_DEPRECATED)` +messages by setting the `DOCTRINE_DEPRECATIONS` environment variable to `trigger`. +Alternatively, call: + +```php +\Doctrine\Deprecations\Deprecation::enableWithTriggerError(); +``` + +If you only want to enable deprecation tracking, without logging or calling `trigger_error` +then set the `DOCTRINE_DEPRECATIONS` environment variable to `track`. +Alternatively, call: + +```php +\Doctrine\Deprecations\Deprecation::enableTrackingDeprecations(); +``` + +Tracking is enabled with all three modes and provides access to all triggered +deprecations and their individual count: + +```php +$deprecations = \Doctrine\Deprecations\Deprecation::getTriggeredDeprecations(); + +foreach ($deprecations as $identifier => $count) { + echo $identifier . " was triggered " . $count . " times\n"; +} +``` + +### Suppressing Specific Deprecations + +Disable triggering about specific deprecations: + +```php +\Doctrine\Deprecations\Deprecation::ignoreDeprecations("https://link/to/deprecations-description-identifier"); +``` + +Disable all deprecations from a package + +```php +\Doctrine\Deprecations\Deprecation::ignorePackage("doctrine/orm"); +``` + +### Other Operations + +When used within PHPUnit or other tools that could collect multiple instances of the same deprecations +the deduplication can be disabled: + +```php +\Doctrine\Deprecations\Deprecation::withoutDeduplication(); +``` + +Disable deprecation tracking again: + +```php +\Doctrine\Deprecations\Deprecation::disable(); +``` + +## Usage from a library/producer perspective: + +When you want to unconditionally trigger a deprecation even when called +from the library itself then the `trigger` method is the way to go: + +```php +\Doctrine\Deprecations\Deprecation::trigger( + "doctrine/orm", + "https://link/to/deprecations-description", + "message" +); +``` + +If variable arguments are provided at the end, they are used with `sprintf` on +the message. + +```php +\Doctrine\Deprecations\Deprecation::trigger( + "doctrine/orm", + "https://github.com/doctrine/orm/issue/1234", + "message %s %d", + "foo", + 1234 +); +``` + +When you want to trigger a deprecation only when it is called by a function +outside of the current package, but not trigger when the package itself is the cause, +then use: + +```php +\Doctrine\Deprecations\Deprecation::triggerIfCalledFromOutside( + "doctrine/orm", + "https://link/to/deprecations-description", + "message" +); +``` + +Based on the issue link each deprecation message is only triggered once per +request. + +A limited stacktrace is included in the deprecation message to find the +offending location. + +Note: A producer/library should never call `Deprecation::enableWith` methods +and leave the decision how to handle deprecations to application and +frameworks. + +## Usage in PHPUnit tests + +There is a `VerifyDeprecations` trait that you can use to make assertions on +the occurrence of deprecations within a test. + +```php +use Doctrine\Deprecations\PHPUnit\VerifyDeprecations; + +class MyTest extends TestCase +{ + use VerifyDeprecations; + + public function testSomethingDeprecation() + { + $this->expectDeprecationWithIdentifier('https://github.com/doctrine/orm/issue/1234'); + + triggerTheCodeWithDeprecation(); + } + + public function testSomethingDeprecationFixed() + { + $this->expectNoDeprecationWithIdentifier('https://github.com/doctrine/orm/issue/1234'); + + triggerTheCodeWithoutDeprecation(); + } +} +``` + +## What is a deprecation identifier? + +An identifier for deprecations is just a link to any resource, most often a +Github Issue or Pull Request explaining the deprecation and potentially its +alternative. diff --git a/vendor/doctrine/deprecations/composer.json b/vendor/doctrine/deprecations/composer.json new file mode 100644 index 00000000..f8319f9a --- /dev/null +++ b/vendor/doctrine/deprecations/composer.json @@ -0,0 +1,38 @@ +{ + "name": "doctrine/deprecations", + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "license": "MIT", + "type": "library", + "homepage": "https://www.doctrine-project.org/", + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "autoload-dev": { + "psr-4": { + "DeprecationTests\\": "test_fixtures/src", + "Doctrine\\Foo\\": "test_fixtures/vendor/doctrine/foo" + } + }, + "config": { + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true + } + } +} diff --git a/vendor/doctrine/deprecations/lib/Doctrine/Deprecations/Deprecation.php b/vendor/doctrine/deprecations/lib/Doctrine/Deprecations/Deprecation.php new file mode 100644 index 00000000..bad5070a --- /dev/null +++ b/vendor/doctrine/deprecations/lib/Doctrine/Deprecations/Deprecation.php @@ -0,0 +1,313 @@ +|null */ + private static $type; + + /** @var LoggerInterface|null */ + private static $logger; + + /** @var array */ + private static $ignoredPackages = []; + + /** @var array */ + private static $triggeredDeprecations = []; + + /** @var array */ + private static $ignoredLinks = []; + + /** @var bool */ + private static $deduplication = true; + + /** + * Trigger a deprecation for the given package and identfier. + * + * The link should point to a Github issue or Wiki entry detailing the + * deprecation. It is additionally used to de-duplicate the trigger of the + * same deprecation during a request. + * + * @param float|int|string $args + */ + public static function trigger(string $package, string $link, string $message, ...$args): void + { + $type = self::$type ?? self::getTypeFromEnv(); + + if ($type === self::TYPE_NONE) { + return; + } + + if (isset(self::$ignoredLinks[$link])) { + return; + } + + if (array_key_exists($link, self::$triggeredDeprecations)) { + self::$triggeredDeprecations[$link]++; + } else { + self::$triggeredDeprecations[$link] = 1; + } + + if (self::$deduplication === true && self::$triggeredDeprecations[$link] > 1) { + return; + } + + if (isset(self::$ignoredPackages[$package])) { + return; + } + + $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2); + + $message = sprintf($message, ...$args); + + self::delegateTriggerToBackend($message, $backtrace, $link, $package); + } + + /** + * Trigger a deprecation for the given package and identifier when called from outside. + * + * "Outside" means we assume that $package is currently installed as a + * dependency and the caller is not a file in that package. When $package + * is installed as a root package then deprecations triggered from the + * tests folder are also considered "outside". + * + * This deprecation method assumes that you are using Composer to install + * the dependency and are using the default /vendor/ folder and not a + * Composer plugin to change the install location. The assumption is also + * that $package is the exact composer packge name. + * + * Compared to {@link trigger()} this method causes some overhead when + * deprecation tracking is enabled even during deduplication, because it + * needs to call {@link debug_backtrace()} + * + * @param float|int|string $args + */ + public static function triggerIfCalledFromOutside(string $package, string $link, string $message, ...$args): void + { + $type = self::$type ?? self::getTypeFromEnv(); + + if ($type === self::TYPE_NONE) { + return; + } + + $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2); + + // first check that the caller is not from a tests folder, in which case we always let deprecations pass + if (isset($backtrace[1]['file'], $backtrace[0]['file']) && strpos($backtrace[1]['file'], DIRECTORY_SEPARATOR . 'tests' . DIRECTORY_SEPARATOR) === false) { + $path = DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . str_replace('/', DIRECTORY_SEPARATOR, $package) . DIRECTORY_SEPARATOR; + + if (strpos($backtrace[0]['file'], $path) === false) { + return; + } + + if (strpos($backtrace[1]['file'], $path) !== false) { + return; + } + } + + if (isset(self::$ignoredLinks[$link])) { + return; + } + + if (array_key_exists($link, self::$triggeredDeprecations)) { + self::$triggeredDeprecations[$link]++; + } else { + self::$triggeredDeprecations[$link] = 1; + } + + if (self::$deduplication === true && self::$triggeredDeprecations[$link] > 1) { + return; + } + + if (isset(self::$ignoredPackages[$package])) { + return; + } + + $message = sprintf($message, ...$args); + + self::delegateTriggerToBackend($message, $backtrace, $link, $package); + } + + /** + * @param list $backtrace + */ + private static function delegateTriggerToBackend(string $message, array $backtrace, string $link, string $package): void + { + $type = self::$type ?? self::getTypeFromEnv(); + + if (($type & self::TYPE_PSR_LOGGER) > 0) { + $context = [ + 'file' => $backtrace[0]['file'] ?? null, + 'line' => $backtrace[0]['line'] ?? null, + 'package' => $package, + 'link' => $link, + ]; + + assert(self::$logger !== null); + + self::$logger->notice($message, $context); + } + + if (! (($type & self::TYPE_TRIGGER_ERROR) > 0)) { + return; + } + + $message .= sprintf( + ' (%s:%d called by %s:%d, %s, package %s)', + self::basename($backtrace[0]['file'] ?? 'native code'), + $backtrace[0]['line'] ?? 0, + self::basename($backtrace[1]['file'] ?? 'native code'), + $backtrace[1]['line'] ?? 0, + $link, + $package + ); + + @trigger_error($message, E_USER_DEPRECATED); + } + + /** + * A non-local-aware version of PHPs basename function. + */ + private static function basename(string $filename): string + { + $pos = strrpos($filename, DIRECTORY_SEPARATOR); + + if ($pos === false) { + return $filename; + } + + return substr($filename, $pos + 1); + } + + public static function enableTrackingDeprecations(): void + { + self::$type = self::$type ?? 0; + self::$type |= self::TYPE_TRACK_DEPRECATIONS; + } + + public static function enableWithTriggerError(): void + { + self::$type = self::$type ?? 0; + self::$type |= self::TYPE_TRIGGER_ERROR; + } + + public static function enableWithPsrLogger(LoggerInterface $logger): void + { + self::$type = self::$type ?? 0; + self::$type |= self::TYPE_PSR_LOGGER; + self::$logger = $logger; + } + + public static function withoutDeduplication(): void + { + self::$deduplication = false; + } + + public static function disable(): void + { + self::$type = self::TYPE_NONE; + self::$logger = null; + self::$deduplication = true; + self::$ignoredLinks = []; + + foreach (self::$triggeredDeprecations as $link => $count) { + self::$triggeredDeprecations[$link] = 0; + } + } + + public static function ignorePackage(string $packageName): void + { + self::$ignoredPackages[$packageName] = true; + } + + public static function ignoreDeprecations(string ...$links): void + { + foreach ($links as $link) { + self::$ignoredLinks[$link] = true; + } + } + + public static function getUniqueTriggeredDeprecationsCount(): int + { + return array_reduce(self::$triggeredDeprecations, static function (int $carry, int $count) { + return $carry + $count; + }, 0); + } + + /** + * Returns each triggered deprecation link identifier and the amount of occurrences. + * + * @return array + */ + public static function getTriggeredDeprecations(): array + { + return self::$triggeredDeprecations; + } + + /** + * @return int-mask-of + */ + private static function getTypeFromEnv(): int + { + switch ($_SERVER['DOCTRINE_DEPRECATIONS'] ?? $_ENV['DOCTRINE_DEPRECATIONS'] ?? null) { + case 'trigger': + self::$type = self::TYPE_TRIGGER_ERROR; + break; + + case 'track': + self::$type = self::TYPE_TRACK_DEPRECATIONS; + break; + + default: + self::$type = self::TYPE_NONE; + break; + } + + return self::$type; + } +} diff --git a/vendor/doctrine/deprecations/lib/Doctrine/Deprecations/PHPUnit/VerifyDeprecations.php b/vendor/doctrine/deprecations/lib/Doctrine/Deprecations/PHPUnit/VerifyDeprecations.php new file mode 100644 index 00000000..4c3366a9 --- /dev/null +++ b/vendor/doctrine/deprecations/lib/Doctrine/Deprecations/PHPUnit/VerifyDeprecations.php @@ -0,0 +1,66 @@ + */ + private $doctrineDeprecationsExpectations = []; + + /** @var array */ + private $doctrineNoDeprecationsExpectations = []; + + public function expectDeprecationWithIdentifier(string $identifier): void + { + $this->doctrineDeprecationsExpectations[$identifier] = Deprecation::getTriggeredDeprecations()[$identifier] ?? 0; + } + + public function expectNoDeprecationWithIdentifier(string $identifier): void + { + $this->doctrineNoDeprecationsExpectations[$identifier] = Deprecation::getTriggeredDeprecations()[$identifier] ?? 0; + } + + /** + * @before + */ + public function enableDeprecationTracking(): void + { + Deprecation::enableTrackingDeprecations(); + } + + /** + * @after + */ + public function verifyDeprecationsAreTriggered(): void + { + foreach ($this->doctrineDeprecationsExpectations as $identifier => $expectation) { + $actualCount = Deprecation::getTriggeredDeprecations()[$identifier] ?? 0; + + $this->assertTrue( + $actualCount > $expectation, + sprintf( + "Expected deprecation with identifier '%s' was not triggered by code executed in test.", + $identifier + ) + ); + } + + foreach ($this->doctrineNoDeprecationsExpectations as $identifier => $expectation) { + $actualCount = Deprecation::getTriggeredDeprecations()[$identifier] ?? 0; + + $this->assertTrue( + $actualCount === $expectation, + sprintf( + "Expected deprecation with identifier '%s' was triggered by code executed in test, but expected not to.", + $identifier + ) + ); + } + } +} diff --git a/vendor/doctrine/instantiator/.doctrine-project.json b/vendor/doctrine/instantiator/.doctrine-project.json new file mode 100644 index 00000000..24ae36e0 --- /dev/null +++ b/vendor/doctrine/instantiator/.doctrine-project.json @@ -0,0 +1,47 @@ +{ + "active": true, + "name": "Instantiator", + "slug": "instantiator", + "docsSlug": "doctrine-instantiator", + "codePath": "/src", + "versions": [ + { + "name": "1.5", + "branchName": "1.5.x", + "slug": "latest", + "upcoming": true + }, + { + "name": "1.4", + "branchName": "1.4.x", + "slug": "1.4", + "aliases": [ + "current", + "stable" + ], + "maintained": true, + "current": true + }, + { + "name": "1.3", + "branchName": "1.3.x", + "slug": "1.3", + "maintained": false + }, + { + "name": "1.2", + "branchName": "1.2.x", + "slug": "1.2" + }, + { + "name": "1.1", + "branchName": "1.1.x", + "slug": "1.1" + }, + { + "name": "1.0", + "branchName": "1.0.x", + "slug": "1.0" + } + ] +} diff --git a/vendor/doctrine/instantiator/CONTRIBUTING.md b/vendor/doctrine/instantiator/CONTRIBUTING.md new file mode 100644 index 00000000..c1a2c42e --- /dev/null +++ b/vendor/doctrine/instantiator/CONTRIBUTING.md @@ -0,0 +1,35 @@ +# Contributing + + * Follow the [Doctrine Coding Standard](https://github.com/doctrine/coding-standard) + * The project will follow strict [object calisthenics](http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php) + * Any contribution must provide tests for additional introduced conditions + * Any un-confirmed issue needs a failing test case before being accepted + * Pull requests must be sent from a new hotfix/feature branch, not from `master`. + +## Installation + +To install the project and run the tests, you need to clone it first: + +```sh +$ git clone git://github.com/doctrine/instantiator.git +``` + +You will then need to run a composer installation: + +```sh +$ cd Instantiator +$ curl -s https://getcomposer.org/installer | php +$ php composer.phar update +``` + +## Testing + +The PHPUnit version to be used is the one installed as a dev- dependency via composer: + +```sh +$ ./vendor/bin/phpunit +``` + +Accepted coverage for new contributions is 80%. Any contribution not satisfying this requirement +won't be merged. + diff --git a/vendor/doctrine/instantiator/LICENSE b/vendor/doctrine/instantiator/LICENSE new file mode 100644 index 00000000..4d983d1a --- /dev/null +++ b/vendor/doctrine/instantiator/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2014 Doctrine Project + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/doctrine/instantiator/README.md b/vendor/doctrine/instantiator/README.md new file mode 100644 index 00000000..1fa95679 --- /dev/null +++ b/vendor/doctrine/instantiator/README.md @@ -0,0 +1,38 @@ +# Instantiator + +This library provides a way of avoiding usage of constructors when instantiating PHP classes. + +[![Build Status](https://travis-ci.org/doctrine/instantiator.svg?branch=master)](https://travis-ci.org/doctrine/instantiator) +[![Code Coverage](https://codecov.io/gh/doctrine/instantiator/branch/master/graph/badge.svg)](https://codecov.io/gh/doctrine/instantiator/branch/master) +[![Dependency Status](https://www.versioneye.com/package/php--doctrine--instantiator/badge.svg)](https://www.versioneye.com/package/php--doctrine--instantiator) + +[![Latest Stable Version](https://poser.pugx.org/doctrine/instantiator/v/stable.png)](https://packagist.org/packages/doctrine/instantiator) +[![Latest Unstable Version](https://poser.pugx.org/doctrine/instantiator/v/unstable.png)](https://packagist.org/packages/doctrine/instantiator) + +## Installation + +The suggested installation method is via [composer](https://getcomposer.org/): + +```sh +composer require doctrine/instantiator +``` + +## Usage + +The instantiator is able to create new instances of any class without using the constructor or any API of the class +itself: + +```php +$instantiator = new \Doctrine\Instantiator\Instantiator(); + +$instance = $instantiator->instantiate(\My\ClassName\Here::class); +``` + +## Contributing + +Please read the [CONTRIBUTING.md](CONTRIBUTING.md) contents if you wish to help out! + +## Credits + +This library was migrated from [ocramius/instantiator](https://github.com/Ocramius/Instantiator), which +has been donated to the doctrine organization, and which is now deprecated in favour of this package. diff --git a/vendor/doctrine/instantiator/composer.json b/vendor/doctrine/instantiator/composer.json new file mode 100644 index 00000000..fab81720 --- /dev/null +++ b/vendor/doctrine/instantiator/composer.json @@ -0,0 +1,48 @@ +{ + "name": "doctrine/instantiator", + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "type": "library", + "license": "MIT", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "instantiate", + "constructor" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "ext-phar": "*", + "ext-pdo": "*", + "doctrine/coding-standard": "^9 || ^11", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.30 || ^5.4" + }, + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "autoload-dev": { + "psr-0": { + "DoctrineTest\\InstantiatorPerformance\\": "tests", + "DoctrineTest\\InstantiatorTest\\": "tests", + "DoctrineTest\\InstantiatorTestAsset\\": "tests" + } + }, + "config": { + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true + } + } +} diff --git a/vendor/doctrine/instantiator/docs/en/index.rst b/vendor/doctrine/instantiator/docs/en/index.rst new file mode 100644 index 00000000..0c85da0b --- /dev/null +++ b/vendor/doctrine/instantiator/docs/en/index.rst @@ -0,0 +1,68 @@ +Introduction +============ + +This library provides a way of avoiding usage of constructors when instantiating PHP classes. + +Installation +============ + +The suggested installation method is via `composer`_: + +.. code-block:: console + + $ composer require doctrine/instantiator + +Usage +===== + +The instantiator is able to create new instances of any class without +using the constructor or any API of the class itself: + +.. code-block:: php + + instantiate(User::class); + +Contributing +============ + +- Follow the `Doctrine Coding Standard`_ +- The project will follow strict `object calisthenics`_ +- Any contribution must provide tests for additional introduced + conditions +- Any un-confirmed issue needs a failing test case before being + accepted +- Pull requests must be sent from a new hotfix/feature branch, not from + ``master``. + +Testing +======= + +The PHPUnit version to be used is the one installed as a dev- dependency +via composer: + +.. code-block:: console + + $ ./vendor/bin/phpunit + +Accepted coverage for new contributions is 80%. Any contribution not +satisfying this requirement won’t be merged. + +Credits +======= + +This library was migrated from `ocramius/instantiator`_, which has been +donated to the doctrine organization, and which is now deprecated in +favour of this package. + +.. _composer: https://getcomposer.org/ +.. _CONTRIBUTING.md: CONTRIBUTING.md +.. _ocramius/instantiator: https://github.com/Ocramius/Instantiator +.. _Doctrine Coding Standard: https://github.com/doctrine/coding-standard +.. _object calisthenics: http://www.slideshare.net/guilhermeblanco/object-calisthenics-applied-to-php diff --git a/vendor/doctrine/instantiator/docs/en/sidebar.rst b/vendor/doctrine/instantiator/docs/en/sidebar.rst new file mode 100644 index 00000000..0c364791 --- /dev/null +++ b/vendor/doctrine/instantiator/docs/en/sidebar.rst @@ -0,0 +1,4 @@ +.. toctree:: + :depth: 3 + + index diff --git a/vendor/doctrine/instantiator/psalm.xml b/vendor/doctrine/instantiator/psalm.xml new file mode 100644 index 00000000..e9b622b3 --- /dev/null +++ b/vendor/doctrine/instantiator/psalm.xml @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php new file mode 100644 index 00000000..e6a5195f --- /dev/null +++ b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php @@ -0,0 +1,12 @@ + $reflectionClass + * + * @template T of object + */ + public static function fromAbstractClass(ReflectionClass $reflectionClass): self + { + return new self(sprintf( + 'The provided class "%s" is abstract, and cannot be instantiated', + $reflectionClass->getName() + )); + } + + public static function fromEnum(string $className): self + { + return new self(sprintf( + 'The provided class "%s" is an enum, and cannot be instantiated', + $className + )); + } +} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php new file mode 100644 index 00000000..4e55ac52 --- /dev/null +++ b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php @@ -0,0 +1,59 @@ + $reflectionClass + * + * @template T of object + */ + public static function fromSerializationTriggeredException( + ReflectionClass $reflectionClass, + Exception $exception + ): self { + return new self( + sprintf( + 'An exception was raised while trying to instantiate an instance of "%s" via un-serialization', + $reflectionClass->getName() + ), + 0, + $exception + ); + } + + /** + * @phpstan-param ReflectionClass $reflectionClass + * + * @template T of object + */ + public static function fromUncleanUnSerialization( + ReflectionClass $reflectionClass, + string $errorString, + int $errorCode, + string $errorFile, + int $errorLine + ): self { + return new self( + sprintf( + 'Could not produce an instance of "%s" via un-serialization, since an error was triggered ' + . 'in file "%s" at line "%d"', + $reflectionClass->getName(), + $errorFile, + $errorLine + ), + 0, + new Exception($errorString, $errorCode) + ); + } +} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php new file mode 100644 index 00000000..10067a0f --- /dev/null +++ b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php @@ -0,0 +1,262 @@ + $className + * + * @return object + * @phpstan-return T + * + * @throws ExceptionInterface + * + * @template T of object + */ + public function instantiate($className) + { + if (isset(self::$cachedCloneables[$className])) { + /** @phpstan-var T */ + $cachedCloneable = self::$cachedCloneables[$className]; + + return clone $cachedCloneable; + } + + if (isset(self::$cachedInstantiators[$className])) { + $factory = self::$cachedInstantiators[$className]; + + return $factory(); + } + + return $this->buildAndCacheFromFactory($className); + } + + /** + * Builds the requested object and caches it in static properties for performance + * + * @phpstan-param class-string $className + * + * @return object + * @phpstan-return T + * + * @template T of object + */ + private function buildAndCacheFromFactory(string $className) + { + $factory = self::$cachedInstantiators[$className] = $this->buildFactory($className); + $instance = $factory(); + + if ($this->isSafeToClone(new ReflectionClass($instance))) { + self::$cachedCloneables[$className] = clone $instance; + } + + return $instance; + } + + /** + * Builds a callable capable of instantiating the given $className without + * invoking its constructor. + * + * @phpstan-param class-string $className + * + * @phpstan-return callable(): T + * + * @throws InvalidArgumentException + * @throws UnexpectedValueException + * @throws ReflectionException + * + * @template T of object + */ + private function buildFactory(string $className): callable + { + $reflectionClass = $this->getReflectionClass($className); + + if ($this->isInstantiableViaReflection($reflectionClass)) { + return [$reflectionClass, 'newInstanceWithoutConstructor']; + } + + $serializedString = sprintf( + '%s:%d:"%s":0:{}', + is_subclass_of($className, Serializable::class) ? self::SERIALIZATION_FORMAT_USE_UNSERIALIZER : self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER, + strlen($className), + $className + ); + + $this->checkIfUnSerializationIsSupported($reflectionClass, $serializedString); + + return static function () use ($serializedString) { + return unserialize($serializedString); + }; + } + + /** + * @phpstan-param class-string $className + * + * @phpstan-return ReflectionClass + * + * @throws InvalidArgumentException + * @throws ReflectionException + * + * @template T of object + */ + private function getReflectionClass(string $className): ReflectionClass + { + if (! class_exists($className)) { + throw InvalidArgumentException::fromNonExistingClass($className); + } + + if (PHP_VERSION_ID >= 80100 && enum_exists($className, false)) { + throw InvalidArgumentException::fromEnum($className); + } + + $reflection = new ReflectionClass($className); + + if ($reflection->isAbstract()) { + throw InvalidArgumentException::fromAbstractClass($reflection); + } + + return $reflection; + } + + /** + * @phpstan-param ReflectionClass $reflectionClass + * + * @throws UnexpectedValueException + * + * @template T of object + */ + private function checkIfUnSerializationIsSupported(ReflectionClass $reflectionClass, string $serializedString): void + { + set_error_handler(static function (int $code, string $message, string $file, int $line) use ($reflectionClass, &$error): bool { + $error = UnexpectedValueException::fromUncleanUnSerialization( + $reflectionClass, + $message, + $code, + $file, + $line + ); + + return true; + }); + + try { + $this->attemptInstantiationViaUnSerialization($reflectionClass, $serializedString); + } finally { + restore_error_handler(); + } + + if ($error) { + throw $error; + } + } + + /** + * @phpstan-param ReflectionClass $reflectionClass + * + * @throws UnexpectedValueException + * + * @template T of object + */ + private function attemptInstantiationViaUnSerialization(ReflectionClass $reflectionClass, string $serializedString): void + { + try { + unserialize($serializedString); + } catch (Exception $exception) { + throw UnexpectedValueException::fromSerializationTriggeredException($reflectionClass, $exception); + } + } + + /** + * @phpstan-param ReflectionClass $reflectionClass + * + * @template T of object + */ + private function isInstantiableViaReflection(ReflectionClass $reflectionClass): bool + { + return ! ($this->hasInternalAncestors($reflectionClass) && $reflectionClass->isFinal()); + } + + /** + * Verifies whether the given class is to be considered internal + * + * @phpstan-param ReflectionClass $reflectionClass + * + * @template T of object + */ + private function hasInternalAncestors(ReflectionClass $reflectionClass): bool + { + do { + if ($reflectionClass->isInternal()) { + return true; + } + + $reflectionClass = $reflectionClass->getParentClass(); + } while ($reflectionClass); + + return false; + } + + /** + * Checks if a class is cloneable + * + * Classes implementing `__clone` cannot be safely cloned, as that may cause side-effects. + * + * @phpstan-param ReflectionClass $reflectionClass + * + * @template T of object + */ + private function isSafeToClone(ReflectionClass $reflectionClass): bool + { + return $reflectionClass->isCloneable() + && ! $reflectionClass->hasMethod('__clone') + && ! $reflectionClass->isSubclassOf(ArrayIterator::class); + } +} diff --git a/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php new file mode 100644 index 00000000..10508b56 --- /dev/null +++ b/vendor/doctrine/instantiator/src/Doctrine/Instantiator/InstantiatorInterface.php @@ -0,0 +1,24 @@ + $className + * + * @return object + * @phpstan-return T + * + * @throws ExceptionInterface + * + * @template T of object + */ + public function instantiate($className); +} diff --git a/vendor/katzgrau/klogger/src/Logger.php b/vendor/katzgrau/klogger/src/Logger.php index 627a33ea..f54d05df 100644 --- a/vendor/katzgrau/klogger/src/Logger.php +++ b/vendor/katzgrau/klogger/src/Logger.php @@ -1,349 +1,349 @@ -info('Returned a million search results'); //Prints to the log file - * $log->error('Oh dear.'); //Prints to the log file - * $log->debug('x = 5'); //Prints nothing due to current severity threshhold - * - * @author Kenny Katzgrau - * @since July 26, 2008 - * @link https://github.com/katzgrau/KLogger - * @version 1.0.0 - */ - -/** - * Class documentation - */ -class Logger extends AbstractLogger -{ - /** - * KLogger options - * Anything options not considered 'core' to the logging library should be - * settable view the third parameter in the constructor - * - * Core options include the log file path and the log threshold - * - * @var array - */ - protected $options = array ( - 'extension' => 'txt', - 'dateFormat' => 'Y-m-d G:i:s.u', - 'filename' => false, - 'flushFrequency' => false, - 'prefix' => 'log_', - 'logFormat' => false, - 'appendContext' => true, - ); - - /** - * Path to the log file - * @var string - */ - private $logFilePath; - - /** - * Current minimum logging threshold - * @var integer - */ - protected $logLevelThreshold = LogLevel::DEBUG; - - /** - * The number of lines logged in this instance's lifetime - * @var int - */ - private $logLineCount = 0; - - /** - * Log Levels - * @var array - */ - protected $logLevels = array( - LogLevel::EMERGENCY => 0, - LogLevel::ALERT => 1, - LogLevel::CRITICAL => 2, - LogLevel::ERROR => 3, - LogLevel::WARNING => 4, - LogLevel::NOTICE => 5, - LogLevel::INFO => 6, - LogLevel::DEBUG => 7 - ); - - /** - * This holds the file handle for this instance's log file - * @var resource - */ - private $fileHandle; - - /** - * This holds the last line logged to the logger - * Used for unit tests - * @var string - */ - private $lastLine = ''; - - /** - * Octal notation for default permissions of the log file - * @var integer - */ - private $defaultPermissions = 0777; - - /** - * Class constructor - * - * @param string $logDirectory File path to the logging directory - * @param string $logLevelThreshold The LogLevel Threshold - * @param array $options - * - * @internal param string $logFilePrefix The prefix for the log file name - * @internal param string $logFileExt The extension for the log file - */ - public function __construct($logDirectory, $logLevelThreshold = LogLevel::DEBUG, array $options = array()) - { - $this->logLevelThreshold = $logLevelThreshold; - $this->options = array_merge($this->options, $options); - - $logDirectory = rtrim($logDirectory, DIRECTORY_SEPARATOR); - if ( ! file_exists($logDirectory)) { - mkdir($logDirectory, $this->defaultPermissions, true); - } - - if(strpos($logDirectory, 'php://') === 0) { - $this->setLogToStdOut($logDirectory); - $this->setFileHandle('w+'); - } else { - $this->setLogFilePath($logDirectory); - if(file_exists($this->logFilePath) && !is_writable($this->logFilePath)) { - throw new RuntimeException('The file could not be written to. Check that appropriate permissions have been set.'); - } - $this->setFileHandle('a'); - } - - if ( ! $this->fileHandle) { - throw new RuntimeException('The file could not be opened. Check permissions.'); - } - } - - /** - * @param string $stdOutPath - */ - public function setLogToStdOut($stdOutPath) { - $this->logFilePath = $stdOutPath; - } - - /** - * @param string $logDirectory - */ - public function setLogFilePath($logDirectory) { - if ($this->options['filename']) { - if (strpos($this->options['filename'], '.log') !== false || strpos($this->options['filename'], '.txt') !== false) { - $this->logFilePath = $logDirectory.DIRECTORY_SEPARATOR.$this->options['filename']; - } - else { - $this->logFilePath = $logDirectory.DIRECTORY_SEPARATOR.$this->options['filename'].'.'.$this->options['extension']; - } - } else { - $this->logFilePath = $logDirectory.DIRECTORY_SEPARATOR.$this->options['prefix'].date('Y-m-d').'.'.$this->options['extension']; - } - } - - /** - * @param $writeMode - * - * @internal param resource $fileHandle - */ - public function setFileHandle($writeMode) { - $this->fileHandle = fopen($this->logFilePath, $writeMode); - } - - - /** - * Class destructor - */ - public function __destruct() - { - if ($this->fileHandle) { - fclose($this->fileHandle); - } - } - - /** - * Sets the date format used by all instances of KLogger - * - * @param string $dateFormat Valid format string for date() - */ - public function setDateFormat($dateFormat) - { - $this->options['dateFormat'] = $dateFormat; - } - - /** - * Sets the Log Level Threshold - * - * @param string $logLevelThreshold The log level threshold - */ - public function setLogLevelThreshold($logLevelThreshold) - { - $this->logLevelThreshold = $logLevelThreshold; - } - - /** - * Logs with an arbitrary level. - * - * @param mixed $level - * @param string $message - * @param array $context - * @return null - */ - public function log($level, $message, array $context = array()) - { - if ($this->logLevels[$this->logLevelThreshold] < $this->logLevels[$level]) { - return; - } - $message = $this->formatMessage($level, $message, $context); - $this->write($message); - } - - /** - * Writes a line to the log without prepending a status or timestamp - * - * @param string $message Line to write to the log - * @return void - */ - public function write($message) - { - if (null !== $this->fileHandle) { - if (fwrite($this->fileHandle, $message) === false) { - throw new RuntimeException('The file could not be written to. Check that appropriate permissions have been set.'); - } else { - $this->lastLine = trim($message); - $this->logLineCount++; - - if ($this->options['flushFrequency'] && $this->logLineCount % $this->options['flushFrequency'] === 0) { - fflush($this->fileHandle); - } - } - } - } - - /** - * Get the file path that the log is currently writing to - * - * @return string - */ - public function getLogFilePath() - { - return $this->logFilePath; - } - - /** - * Get the last line logged to the log file - * - * @return string - */ - public function getLastLogLine() - { - return $this->lastLine; - } - - /** - * Formats the message for logging. - * - * @param string $level The Log Level of the message - * @param string $message The message to log - * @param array $context The context - * @return string - */ - protected function formatMessage($level, $message, $context) - { - if ($this->options['logFormat']) { - $parts = array( - 'date' => $this->getTimestamp(), - 'level' => strtoupper($level), - 'level-padding' => str_repeat(' ', 9 - strlen($level)), - 'priority' => $this->logLevels[$level], - 'message' => $message, - 'context' => json_encode($context), - ); - $message = $this->options['logFormat']; - foreach ($parts as $part => $value) { - $message = str_replace('{'.$part.'}', $value, $message); - } - - } else { - $message = "[{$this->getTimestamp()}] [{$level}] {$message}"; - } - - if ($this->options['appendContext'] && ! empty($context)) { - $message .= PHP_EOL.$this->indent($this->contextToString($context)); - } - - return $message.PHP_EOL; - - } - - /** - * Gets the correctly formatted Date/Time for the log entry. - * - * PHP DateTime is dump, and you have to resort to trickery to get microseconds - * to work correctly, so here it is. - * - * @return string - */ - private function getTimestamp() - { - $originalTime = microtime(true); - $micro = sprintf("%06d", ($originalTime - floor($originalTime)) * 1000000); - $date = new DateTime(date('Y-m-d H:i:s.'.$micro, (int)$originalTime)); - - return $date->format($this->options['dateFormat']); - } - - /** - * Takes the given context and coverts it to a string. - * - * @param array $context The Context - * @return string - */ - protected function contextToString($context) - { - $export = ''; - foreach ($context as $key => $value) { - $export .= "{$key}: "; - $export .= preg_replace(array( - '/=>\s+([a-zA-Z])/im', - '/array\(\s+\)/im', - '/^ |\G /m' - ), array( - '=> $1', - 'array()', - ' ' - ), str_replace('array (', 'array(', var_export($value, true))); - $export .= PHP_EOL; - } - return str_replace(array('\\\\', '\\\''), array('\\', '\''), rtrim($export)); - } - - /** - * Indents the given string with the given indent. - * - * @param string $string The string to indent - * @param string $indent What to use as the indent. - * @return string - */ - protected function indent($string, $indent = ' ') - { - return $indent.str_replace("\n", "\n".$indent, $string); - } -} +info('Returned a million search results'); //Prints to the log file + * $log->error('Oh dear.'); //Prints to the log file + * $log->debug('x = 5'); //Prints nothing due to current severity threshhold + * + * @author Kenny Katzgrau + * @since July 26, 2008 + * @link https://github.com/katzgrau/KLogger + * @version 1.0.0 + */ + +/** + * Class documentation + */ +class Logger extends AbstractLogger +{ + /** + * KLogger options + * Anything options not considered 'core' to the logging library should be + * settable view the third parameter in the constructor + * + * Core options include the log file path and the log threshold + * + * @var array + */ + protected $options = array ( + 'extension' => 'txt', + 'dateFormat' => 'Y-m-d G:i:s.u', + 'filename' => false, + 'flushFrequency' => false, + 'prefix' => 'log_', + 'logFormat' => false, + 'appendContext' => true, + ); + + /** + * Path to the log file + * @var string + */ + private $logFilePath; + + /** + * Current minimum logging threshold + * @var integer + */ + protected $logLevelThreshold = LogLevel::DEBUG; + + /** + * The number of lines logged in this instance's lifetime + * @var int + */ + private $logLineCount = 0; + + /** + * Log Levels + * @var array + */ + protected $logLevels = array( + LogLevel::EMERGENCY => 0, + LogLevel::ALERT => 1, + LogLevel::CRITICAL => 2, + LogLevel::ERROR => 3, + LogLevel::WARNING => 4, + LogLevel::NOTICE => 5, + LogLevel::INFO => 6, + LogLevel::DEBUG => 7 + ); + + /** + * This holds the file handle for this instance's log file + * @var resource + */ + private $fileHandle; + + /** + * This holds the last line logged to the logger + * Used for unit tests + * @var string + */ + private $lastLine = ''; + + /** + * Octal notation for default permissions of the log file + * @var integer + */ + private $defaultPermissions = 0777; + + /** + * Class constructor + * + * @param string $logDirectory File path to the logging directory + * @param string $logLevelThreshold The LogLevel Threshold + * @param array $options + * + * @internal param string $logFilePrefix The prefix for the log file name + * @internal param string $logFileExt The extension for the log file + */ + public function __construct($logDirectory, $logLevelThreshold = LogLevel::DEBUG, array $options = array()) + { + $this->logLevelThreshold = $logLevelThreshold; + $this->options = array_merge($this->options, $options); + + $logDirectory = rtrim($logDirectory, DIRECTORY_SEPARATOR); + if ( ! file_exists($logDirectory)) { + mkdir($logDirectory, $this->defaultPermissions, true); + } + + if(strpos($logDirectory, 'php://') === 0) { + $this->setLogToStdOut($logDirectory); + $this->setFileHandle('w+'); + } else { + $this->setLogFilePath($logDirectory); + if(file_exists($this->logFilePath) && !is_writable($this->logFilePath)) { + throw new RuntimeException('The file could not be written to. Check that appropriate permissions have been set.'); + } + $this->setFileHandle('a'); + } + + if ( ! $this->fileHandle) { + throw new RuntimeException('The file could not be opened. Check permissions.'); + } + } + + /** + * @param string $stdOutPath + */ + public function setLogToStdOut($stdOutPath) { + $this->logFilePath = $stdOutPath; + } + + /** + * @param string $logDirectory + */ + public function setLogFilePath($logDirectory) { + if ($this->options['filename']) { + if (strpos($this->options['filename'], '.log') !== false || strpos($this->options['filename'], '.txt') !== false) { + $this->logFilePath = $logDirectory.DIRECTORY_SEPARATOR.$this->options['filename']; + } + else { + $this->logFilePath = $logDirectory.DIRECTORY_SEPARATOR.$this->options['filename'].'.'.$this->options['extension']; + } + } else { + $this->logFilePath = $logDirectory.DIRECTORY_SEPARATOR.$this->options['prefix'].date('Y-m-d').'.'.$this->options['extension']; + } + } + + /** + * @param $writeMode + * + * @internal param resource $fileHandle + */ + public function setFileHandle($writeMode) { + $this->fileHandle = fopen($this->logFilePath, $writeMode); + } + + + /** + * Class destructor + */ + public function __destruct() + { + if ($this->fileHandle) { + fclose($this->fileHandle); + } + } + + /** + * Sets the date format used by all instances of KLogger + * + * @param string $dateFormat Valid format string for date() + */ + public function setDateFormat($dateFormat) + { + $this->options['dateFormat'] = $dateFormat; + } + + /** + * Sets the Log Level Threshold + * + * @param string $logLevelThreshold The log level threshold + */ + public function setLogLevelThreshold($logLevelThreshold) + { + $this->logLevelThreshold = $logLevelThreshold; + } + + /** + * Logs with an arbitrary level. + * + * @param mixed $level + * @param string $message + * @param array $context + * @return null + */ + public function log($level, $message, array $context = array()) + { + if ($this->logLevels[$this->logLevelThreshold] < $this->logLevels[$level]) { + return; + } + $message = $this->formatMessage($level, $message, $context); + $this->write($message); + } + + /** + * Writes a line to the log without prepending a status or timestamp + * + * @param string $message Line to write to the log + * @return void + */ + public function write($message) + { + if (null !== $this->fileHandle) { + if (fwrite($this->fileHandle, $message) === false) { + throw new RuntimeException('The file could not be written to. Check that appropriate permissions have been set.'); + } else { + $this->lastLine = trim($message); + $this->logLineCount++; + + if ($this->options['flushFrequency'] && $this->logLineCount % $this->options['flushFrequency'] === 0) { + fflush($this->fileHandle); + } + } + } + } + + /** + * Get the file path that the log is currently writing to + * + * @return string + */ + public function getLogFilePath() + { + return $this->logFilePath; + } + + /** + * Get the last line logged to the log file + * + * @return string + */ + public function getLastLogLine() + { + return $this->lastLine; + } + + /** + * Formats the message for logging. + * + * @param string $level The Log Level of the message + * @param string $message The message to log + * @param array $context The context + * @return string + */ + protected function formatMessage($level, $message, $context) + { + if ($this->options['logFormat']) { + $parts = array( + 'date' => $this->getTimestamp(), + 'level' => strtoupper($level), + 'level-padding' => str_repeat(' ', 9 - strlen($level)), + 'priority' => $this->logLevels[$level], + 'message' => $message, + 'context' => json_encode($context), + ); + $message = $this->options['logFormat']; + foreach ($parts as $part => $value) { + $message = str_replace('{'.$part.'}', $value, $message); + } + + } else { + $message = "[{$this->getTimestamp()}] [{$level}] {$message}"; + } + + if ($this->options['appendContext'] && ! empty($context)) { + $message .= PHP_EOL.$this->indent($this->contextToString($context)); + } + + return $message.PHP_EOL; + + } + + /** + * Gets the correctly formatted Date/Time for the log entry. + * + * PHP DateTime is dump, and you have to resort to trickery to get microseconds + * to work correctly, so here it is. + * + * @return string + */ + private function getTimestamp() + { + $originalTime = microtime(true); + $micro = sprintf("%06d", ($originalTime - floor($originalTime)) * 1000000); + $date = new DateTime(date('Y-m-d H:i:s.'.$micro, (int)$originalTime)); + + return $date->format($this->options['dateFormat']); + } + + /** + * Takes the given context and coverts it to a string. + * + * @param array $context The Context + * @return string + */ + protected function contextToString($context) + { + $export = ''; + foreach ($context as $key => $value) { + $export .= "{$key}: "; + $export .= preg_replace(array( + '/=>\s+([a-zA-Z])/im', + '/array\(\s+\)/im', + '/^ |\G /m' + ), array( + '=> $1', + 'array()', + ' ' + ), str_replace('array (', 'array(', var_export($value, true))); + $export .= PHP_EOL; + } + return str_replace(array('\\\\', '\\\''), array('\\', '\''), rtrim($export)); + } + + /** + * Indents the given string with the given indent. + * + * @param string $string The string to indent + * @param string $indent What to use as the indent. + * @return string + */ + protected function indent($string, $indent = ' ') + { + return $indent.str_replace("\n", "\n".$indent, $string); + } +} diff --git a/vendor/myclabs/deep-copy/LICENSE b/vendor/myclabs/deep-copy/LICENSE new file mode 100644 index 00000000..c3e83500 --- /dev/null +++ b/vendor/myclabs/deep-copy/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013 My C-Sense + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/myclabs/deep-copy/README.md b/vendor/myclabs/deep-copy/README.md new file mode 100644 index 00000000..88ae14cc --- /dev/null +++ b/vendor/myclabs/deep-copy/README.md @@ -0,0 +1,406 @@ +# DeepCopy + +DeepCopy helps you create deep copies (clones) of your objects. It is designed to handle cycles in the association graph. + +[![Total Downloads](https://poser.pugx.org/myclabs/deep-copy/downloads.svg)](https://packagist.org/packages/myclabs/deep-copy) +[![Integrate](https://github.com/myclabs/DeepCopy/actions/workflows/ci.yaml/badge.svg?branch=1.x)](https://github.com/myclabs/DeepCopy/actions/workflows/ci.yaml) + +## Table of Contents + +1. [How](#how) +1. [Why](#why) + 1. [Using simply `clone`](#using-simply-clone) + 1. [Overriding `__clone()`](#overriding-__clone) + 1. [With `DeepCopy`](#with-deepcopy) +1. [How it works](#how-it-works) +1. [Going further](#going-further) + 1. [Matchers](#matchers) + 1. [Property name](#property-name) + 1. [Specific property](#specific-property) + 1. [Type](#type) + 1. [Filters](#filters) + 1. [`SetNullFilter`](#setnullfilter-filter) + 1. [`KeepFilter`](#keepfilter-filter) + 1. [`DoctrineCollectionFilter`](#doctrinecollectionfilter-filter) + 1. [`DoctrineEmptyCollectionFilter`](#doctrineemptycollectionfilter-filter) + 1. [`DoctrineProxyFilter`](#doctrineproxyfilter-filter) + 1. [`ReplaceFilter`](#replacefilter-type-filter) + 1. [`ShallowCopyFilter`](#shallowcopyfilter-type-filter) +1. [Edge cases](#edge-cases) +1. [Contributing](#contributing) + 1. [Tests](#tests) + + +## How? + +Install with Composer: + +``` +composer require myclabs/deep-copy +``` + +Use it: + +```php +use DeepCopy\DeepCopy; + +$copier = new DeepCopy(); +$myCopy = $copier->copy($myObject); +``` + + +## Why? + +- How do you create copies of your objects? + +```php +$myCopy = clone $myObject; +``` + +- How do you create **deep** copies of your objects (i.e. copying also all the objects referenced in the properties)? + +You use [`__clone()`](http://www.php.net/manual/en/language.oop5.cloning.php#object.clone) and implement the behavior +yourself. + +- But how do you handle **cycles** in the association graph? + +Now you're in for a big mess :( + +![association graph](doc/graph.png) + + +### Using simply `clone` + +![Using clone](doc/clone.png) + + +### Overriding `__clone()` + +![Overriding __clone](doc/deep-clone.png) + + +### With `DeepCopy` + +![With DeepCopy](doc/deep-copy.png) + + +## How it works + +DeepCopy recursively traverses all the object's properties and clones them. To avoid cloning the same object twice it +keeps a hash map of all instances and thus preserves the object graph. + +To use it: + +```php +use function DeepCopy\deep_copy; + +$copy = deep_copy($var); +``` + +Alternatively, you can create your own `DeepCopy` instance to configure it differently for example: + +```php +use DeepCopy\DeepCopy; + +$copier = new DeepCopy(true); + +$copy = $copier->copy($var); +``` + +You may want to roll your own deep copy function: + +```php +namespace Acme; + +use DeepCopy\DeepCopy; + +function deep_copy($var) +{ + static $copier = null; + + if (null === $copier) { + $copier = new DeepCopy(true); + } + + return $copier->copy($var); +} +``` + + +## Going further + +You can add filters to customize the copy process. + +The method to add a filter is `DeepCopy\DeepCopy::addFilter($filter, $matcher)`, +with `$filter` implementing `DeepCopy\Filter\Filter` +and `$matcher` implementing `DeepCopy\Matcher\Matcher`. + +We provide some generic filters and matchers. + + +### Matchers + + - `DeepCopy\Matcher` applies on a object attribute. + - `DeepCopy\TypeMatcher` applies on any element found in graph, including array elements. + + +#### Property name + +The `PropertyNameMatcher` will match a property by its name: + +```php +use DeepCopy\Matcher\PropertyNameMatcher; + +// Will apply a filter to any property of any objects named "id" +$matcher = new PropertyNameMatcher('id'); +``` + + +#### Specific property + +The `PropertyMatcher` will match a specific property of a specific class: + +```php +use DeepCopy\Matcher\PropertyMatcher; + +// Will apply a filter to the property "id" of any objects of the class "MyClass" +$matcher = new PropertyMatcher('MyClass', 'id'); +``` + + +#### Type + +The `TypeMatcher` will match any element by its type (instance of a class or any value that could be parameter of +[gettype()](http://php.net/manual/en/function.gettype.php) function): + +```php +use DeepCopy\TypeMatcher\TypeMatcher; + +// Will apply a filter to any object that is an instance of Doctrine\Common\Collections\Collection +$matcher = new TypeMatcher('Doctrine\Common\Collections\Collection'); +``` + + +### Filters + +- `DeepCopy\Filter` applies a transformation to the object attribute matched by `DeepCopy\Matcher` +- `DeepCopy\TypeFilter` applies a transformation to any element matched by `DeepCopy\TypeMatcher` + +By design, matching a filter will stop the chain of filters (i.e. the next ones will not be applied). +Using the ([`ChainableFilter`](#chainablefilter-filter)) won't stop the chain of filters. + + +#### `SetNullFilter` (filter) + +Let's say for example that you are copying a database record (or a Doctrine entity), so you want the copy not to have +any ID: + +```php +use DeepCopy\DeepCopy; +use DeepCopy\Filter\SetNullFilter; +use DeepCopy\Matcher\PropertyNameMatcher; + +$object = MyClass::load(123); +echo $object->id; // 123 + +$copier = new DeepCopy(); +$copier->addFilter(new SetNullFilter(), new PropertyNameMatcher('id')); + +$copy = $copier->copy($object); + +echo $copy->id; // null +``` + + +#### `KeepFilter` (filter) + +If you want a property to remain untouched (for example, an association to an object): + +```php +use DeepCopy\DeepCopy; +use DeepCopy\Filter\KeepFilter; +use DeepCopy\Matcher\PropertyMatcher; + +$copier = new DeepCopy(); +$copier->addFilter(new KeepFilter(), new PropertyMatcher('MyClass', 'category')); + +$copy = $copier->copy($object); +// $copy->category has not been touched +``` + + +#### `ChainableFilter` (filter) + +If you use cloning on proxy classes, you might want to apply two filters for: +1. loading the data +2. applying a transformation + +You can use the `ChainableFilter` as a decorator of the proxy loader filter, which won't stop the chain of filters (i.e. +the next ones may be applied). + + +```php +use DeepCopy\DeepCopy; +use DeepCopy\Filter\ChainableFilter; +use DeepCopy\Filter\Doctrine\DoctrineProxyFilter; +use DeepCopy\Filter\SetNullFilter; +use DeepCopy\Matcher\Doctrine\DoctrineProxyMatcher; +use DeepCopy\Matcher\PropertyNameMatcher; + +$copier = new DeepCopy(); +$copier->addFilter(new ChainableFilter(new DoctrineProxyFilter()), new DoctrineProxyMatcher()); +$copier->addFilter(new SetNullFilter(), new PropertyNameMatcher('id')); + +$copy = $copier->copy($object); + +echo $copy->id; // null +``` + + +#### `DoctrineCollectionFilter` (filter) + +If you use Doctrine and want to copy an entity, you will need to use the `DoctrineCollectionFilter`: + +```php +use DeepCopy\DeepCopy; +use DeepCopy\Filter\Doctrine\DoctrineCollectionFilter; +use DeepCopy\Matcher\PropertyTypeMatcher; + +$copier = new DeepCopy(); +$copier->addFilter(new DoctrineCollectionFilter(), new PropertyTypeMatcher('Doctrine\Common\Collections\Collection')); + +$copy = $copier->copy($object); +``` + + +#### `DoctrineEmptyCollectionFilter` (filter) + +If you use Doctrine and want to copy an entity who contains a `Collection` that you want to be reset, you can use the +`DoctrineEmptyCollectionFilter` + +```php +use DeepCopy\DeepCopy; +use DeepCopy\Filter\Doctrine\DoctrineEmptyCollectionFilter; +use DeepCopy\Matcher\PropertyMatcher; + +$copier = new DeepCopy(); +$copier->addFilter(new DoctrineEmptyCollectionFilter(), new PropertyMatcher('MyClass', 'myProperty')); + +$copy = $copier->copy($object); + +// $copy->myProperty will return an empty collection +``` + + +#### `DoctrineProxyFilter` (filter) + +If you use Doctrine and use cloning on lazy loaded entities, you might encounter errors mentioning missing fields on a +Doctrine proxy class (...\\\_\_CG\_\_\Proxy). +You can use the `DoctrineProxyFilter` to load the actual entity behind the Doctrine proxy class. +**Make sure, though, to put this as one of your very first filters in the filter chain so that the entity is loaded +before other filters are applied!** +We recommend to decorate the `DoctrineProxyFilter` with the `ChainableFilter` to allow applying other filters to the +cloned lazy loaded entities. + +```php +use DeepCopy\DeepCopy; +use DeepCopy\Filter\Doctrine\DoctrineProxyFilter; +use DeepCopy\Matcher\Doctrine\DoctrineProxyMatcher; + +$copier = new DeepCopy(); +$copier->addFilter(new ChainableFilter(new DoctrineProxyFilter()), new DoctrineProxyMatcher()); + +$copy = $copier->copy($object); + +// $copy should now contain a clone of all entities, including those that were not yet fully loaded. +``` + + +#### `ReplaceFilter` (type filter) + +1. If you want to replace the value of a property: + +```php +use DeepCopy\DeepCopy; +use DeepCopy\Filter\ReplaceFilter; +use DeepCopy\Matcher\PropertyMatcher; + +$copier = new DeepCopy(); +$callback = function ($currentValue) { + return $currentValue . ' (copy)' +}; +$copier->addFilter(new ReplaceFilter($callback), new PropertyMatcher('MyClass', 'title')); + +$copy = $copier->copy($object); + +// $copy->title will contain the data returned by the callback, e.g. 'The title (copy)' +``` + +2. If you want to replace whole element: + +```php +use DeepCopy\DeepCopy; +use DeepCopy\TypeFilter\ReplaceFilter; +use DeepCopy\TypeMatcher\TypeMatcher; + +$copier = new DeepCopy(); +$callback = function (MyClass $myClass) { + return get_class($myClass); +}; +$copier->addTypeFilter(new ReplaceFilter($callback), new TypeMatcher('MyClass')); + +$copy = $copier->copy([new MyClass, 'some string', new MyClass]); + +// $copy will contain ['MyClass', 'some string', 'MyClass'] +``` + + +The `$callback` parameter of the `ReplaceFilter` constructor accepts any PHP callable. + + +#### `ShallowCopyFilter` (type filter) + +Stop *DeepCopy* from recursively copying element, using standard `clone` instead: + +```php +use DeepCopy\DeepCopy; +use DeepCopy\TypeFilter\ShallowCopyFilter; +use DeepCopy\TypeMatcher\TypeMatcher; +use Mockery as m; + +$this->deepCopy = new DeepCopy(); +$this->deepCopy->addTypeFilter( + new ShallowCopyFilter, + new TypeMatcher(m\MockInterface::class) +); + +$myServiceWithMocks = new MyService(m::mock(MyDependency1::class), m::mock(MyDependency2::class)); +// All mocks will be just cloned, not deep copied +``` + + +## Edge cases + +The following structures cannot be deep-copied with PHP Reflection. As a result they are shallow cloned and filters are +not applied. There is two ways for you to handle them: + +- Implement your own `__clone()` method +- Use a filter with a type matcher + + +## Contributing + +DeepCopy is distributed under the MIT license. + + +### Tests + +Running the tests is simple: + +```php +vendor/bin/phpunit +``` + +### Support + +Get professional support via [the Tidelift Subscription](https://tidelift.com/subscription/pkg/packagist-myclabs-deep-copy?utm_source=packagist-myclabs-deep-copy&utm_medium=referral&utm_campaign=readme). diff --git a/vendor/myclabs/deep-copy/composer.json b/vendor/myclabs/deep-copy/composer.json new file mode 100644 index 00000000..f115fff8 --- /dev/null +++ b/vendor/myclabs/deep-copy/composer.json @@ -0,0 +1,43 @@ +{ + "name": "myclabs/deep-copy", + "description": "Create deep copies (clones) of your objects", + "license": "MIT", + "type": "library", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" + }, + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "autoload-dev": { + "psr-4": { + "DeepCopyTest\\": "tests/DeepCopyTest/", + "DeepCopy\\": "fixtures/" + } + }, + "config": { + "sort-packages": true + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php b/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php new file mode 100644 index 00000000..084858ee --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/DeepCopy.php @@ -0,0 +1,313 @@ + Filter, 'matcher' => Matcher] pairs. + */ + private $filters = []; + + /** + * Type Filters to apply. + * + * @var array Array of ['filter' => Filter, 'matcher' => Matcher] pairs. + */ + private $typeFilters = []; + + /** + * @var bool + */ + private $skipUncloneable = false; + + /** + * @var bool + */ + private $useCloneMethod; + + /** + * @param bool $useCloneMethod If set to true, when an object implements the __clone() function, it will be used + * instead of the regular deep cloning. + */ + public function __construct($useCloneMethod = false) + { + $this->useCloneMethod = $useCloneMethod; + + $this->addTypeFilter(new ArrayObjectFilter($this), new TypeMatcher(ArrayObject::class)); + $this->addTypeFilter(new DateIntervalFilter(), new TypeMatcher(DateInterval::class)); + $this->addTypeFilter(new SplDoublyLinkedListFilter($this), new TypeMatcher(SplDoublyLinkedList::class)); + } + + /** + * If enabled, will not throw an exception when coming across an uncloneable property. + * + * @param $skipUncloneable + * + * @return $this + */ + public function skipUncloneable($skipUncloneable = true) + { + $this->skipUncloneable = $skipUncloneable; + + return $this; + } + + /** + * Deep copies the given object. + * + * @param mixed $object + * + * @return mixed + */ + public function copy($object) + { + $this->hashMap = []; + + return $this->recursiveCopy($object); + } + + public function addFilter(Filter $filter, Matcher $matcher) + { + $this->filters[] = [ + 'matcher' => $matcher, + 'filter' => $filter, + ]; + } + + public function prependFilter(Filter $filter, Matcher $matcher) + { + array_unshift($this->filters, [ + 'matcher' => $matcher, + 'filter' => $filter, + ]); + } + + public function addTypeFilter(TypeFilter $filter, TypeMatcher $matcher) + { + $this->typeFilters[] = [ + 'matcher' => $matcher, + 'filter' => $filter, + ]; + } + + private function recursiveCopy($var) + { + // Matches Type Filter + if ($filter = $this->getFirstMatchedTypeFilter($this->typeFilters, $var)) { + return $filter->apply($var); + } + + // Resource + if (is_resource($var)) { + return $var; + } + + // Array + if (is_array($var)) { + return $this->copyArray($var); + } + + // Scalar + if (! is_object($var)) { + return $var; + } + + // Enum + if (PHP_VERSION_ID >= 80100 && enum_exists(get_class($var))) { + return $var; + } + + // Object + return $this->copyObject($var); + } + + /** + * Copy an array + * @param array $array + * @return array + */ + private function copyArray(array $array) + { + foreach ($array as $key => $value) { + $array[$key] = $this->recursiveCopy($value); + } + + return $array; + } + + /** + * Copies an object. + * + * @param object $object + * + * @throws CloneException + * + * @return object + */ + private function copyObject($object) + { + $objectHash = spl_object_hash($object); + + if (isset($this->hashMap[$objectHash])) { + return $this->hashMap[$objectHash]; + } + + $reflectedObject = new ReflectionObject($object); + $isCloneable = $reflectedObject->isCloneable(); + + if (false === $isCloneable) { + if ($this->skipUncloneable) { + $this->hashMap[$objectHash] = $object; + + return $object; + } + + throw new CloneException( + sprintf( + 'The class "%s" is not cloneable.', + $reflectedObject->getName() + ) + ); + } + + $newObject = clone $object; + $this->hashMap[$objectHash] = $newObject; + + if ($this->useCloneMethod && $reflectedObject->hasMethod('__clone')) { + return $newObject; + } + + if ($newObject instanceof DateTimeInterface || $newObject instanceof DateTimeZone) { + return $newObject; + } + + foreach (ReflectionHelper::getProperties($reflectedObject) as $property) { + $this->copyObjectProperty($newObject, $property); + } + + return $newObject; + } + + private function copyObjectProperty($object, ReflectionProperty $property) + { + // Ignore static properties + if ($property->isStatic()) { + return; + } + + // Ignore readonly properties + if (method_exists($property, 'isReadOnly') && $property->isReadOnly()) { + return; + } + + // Apply the filters + foreach ($this->filters as $item) { + /** @var Matcher $matcher */ + $matcher = $item['matcher']; + /** @var Filter $filter */ + $filter = $item['filter']; + + if ($matcher->matches($object, $property->getName())) { + $filter->apply( + $object, + $property->getName(), + function ($object) { + return $this->recursiveCopy($object); + } + ); + + if ($filter instanceof ChainableFilter) { + continue; + } + + // If a filter matches, we stop processing this property + return; + } + } + + $property->setAccessible(true); + + // Ignore uninitialized properties (for PHP >7.4) + if (method_exists($property, 'isInitialized') && !$property->isInitialized($object)) { + return; + } + + $propertyValue = $property->getValue($object); + + // Copy the property + $property->setValue($object, $this->recursiveCopy($propertyValue)); + } + + /** + * Returns first filter that matches variable, `null` if no such filter found. + * + * @param array $filterRecords Associative array with 2 members: 'filter' with value of type {@see TypeFilter} and + * 'matcher' with value of type {@see TypeMatcher} + * @param mixed $var + * + * @return TypeFilter|null + */ + private function getFirstMatchedTypeFilter(array $filterRecords, $var) + { + $matched = $this->first( + $filterRecords, + function (array $record) use ($var) { + /* @var TypeMatcher $matcher */ + $matcher = $record['matcher']; + + return $matcher->matches($var); + } + ); + + return isset($matched) ? $matched['filter'] : null; + } + + /** + * Returns first element that matches predicate, `null` if no such element found. + * + * @param array $elements Array of ['filter' => Filter, 'matcher' => Matcher] pairs. + * @param callable $predicate Predicate arguments are: element. + * + * @return array|null Associative array with 2 members: 'filter' with value of type {@see TypeFilter} and 'matcher' + * with value of type {@see TypeMatcher} or `null`. + */ + private function first(array $elements, callable $predicate) + { + foreach ($elements as $element) { + if (call_user_func($predicate, $element)) { + return $element; + } + } + + return null; + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php b/vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php new file mode 100644 index 00000000..c046706a --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/Exception/CloneException.php @@ -0,0 +1,9 @@ +filter = $filter; + } + + public function apply($object, $property, $objectCopier) + { + $this->filter->apply($object, $property, $objectCopier); + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php new file mode 100644 index 00000000..e6d93771 --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineCollectionFilter.php @@ -0,0 +1,33 @@ +setAccessible(true); + $oldCollection = $reflectionProperty->getValue($object); + + $newCollection = $oldCollection->map( + function ($item) use ($objectCopier) { + return $objectCopier($item); + } + ); + + $reflectionProperty->setValue($object, $newCollection); + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php new file mode 100644 index 00000000..7b33fd54 --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineEmptyCollectionFilter.php @@ -0,0 +1,28 @@ +setAccessible(true); + + $reflectionProperty->setValue($object, new ArrayCollection()); + } +} \ No newline at end of file diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php new file mode 100644 index 00000000..8bee8f76 --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Doctrine/DoctrineProxyFilter.php @@ -0,0 +1,22 @@ +__load(); + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php new file mode 100644 index 00000000..85ba18ce --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php @@ -0,0 +1,18 @@ +callback = $callable; + } + + /** + * Replaces the object property by the result of the callback called with the object property. + * + * {@inheritdoc} + */ + public function apply($object, $property, $objectCopier) + { + $reflectionProperty = ReflectionHelper::getProperty($object, $property); + $reflectionProperty->setAccessible(true); + + $value = call_user_func($this->callback, $reflectionProperty->getValue($object)); + + $reflectionProperty->setValue($object, $value); + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php new file mode 100644 index 00000000..bea86b88 --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/Filter/SetNullFilter.php @@ -0,0 +1,24 @@ +setAccessible(true); + $reflectionProperty->setValue($object, null); + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php b/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php new file mode 100644 index 00000000..c5887b19 --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Doctrine/DoctrineProxyMatcher.php @@ -0,0 +1,22 @@ +class = $class; + $this->property = $property; + } + + /** + * Matches a specific property of a specific class. + * + * {@inheritdoc} + */ + public function matches($object, $property) + { + return ($object instanceof $this->class) && $property == $this->property; + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php b/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php new file mode 100644 index 00000000..c8ec0d2b --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyNameMatcher.php @@ -0,0 +1,32 @@ +property = $property; + } + + /** + * Matches a property by its name. + * + * {@inheritdoc} + */ + public function matches($object, $property) + { + return $property == $this->property; + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php b/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php new file mode 100644 index 00000000..c7f46908 --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/Matcher/PropertyTypeMatcher.php @@ -0,0 +1,52 @@ +propertyType = $propertyType; + } + + /** + * {@inheritdoc} + */ + public function matches($object, $property) + { + try { + $reflectionProperty = ReflectionHelper::getProperty($object, $property); + } catch (ReflectionException $exception) { + return false; + } + + $reflectionProperty->setAccessible(true); + + // Uninitialized properties (for PHP >7.4) + if (method_exists($reflectionProperty, 'isInitialized') && !$reflectionProperty->isInitialized($object)) { + // null instanceof $this->propertyType + return false; + } + + return $reflectionProperty->getValue($object) instanceof $this->propertyType; + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php b/vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php new file mode 100644 index 00000000..742410cb --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/Reflection/ReflectionHelper.php @@ -0,0 +1,78 @@ +getProperties() does not return private properties from ancestor classes. + * + * @author muratyaman@gmail.com + * @see http://php.net/manual/en/reflectionclass.getproperties.php + * + * @param ReflectionClass $ref + * + * @return ReflectionProperty[] + */ + public static function getProperties(ReflectionClass $ref) + { + $props = $ref->getProperties(); + $propsArr = array(); + + foreach ($props as $prop) { + $propertyName = $prop->getName(); + $propsArr[$propertyName] = $prop; + } + + if ($parentClass = $ref->getParentClass()) { + $parentPropsArr = self::getProperties($parentClass); + foreach ($propsArr as $key => $property) { + $parentPropsArr[$key] = $property; + } + + return $parentPropsArr; + } + + return $propsArr; + } + + /** + * Retrieves property by name from object and all its ancestors. + * + * @param object|string $object + * @param string $name + * + * @throws PropertyException + * @throws ReflectionException + * + * @return ReflectionProperty + */ + public static function getProperty($object, $name) + { + $reflection = is_object($object) ? new ReflectionObject($object) : new ReflectionClass($object); + + if ($reflection->hasProperty($name)) { + return $reflection->getProperty($name); + } + + if ($parentClass = $reflection->getParentClass()) { + return self::getProperty($parentClass->getName(), $name); + } + + throw new PropertyException( + sprintf( + 'The class "%s" doesn\'t have a property with the given name: "%s".', + is_object($object) ? get_class($object) : $object, + $name + ) + ); + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php new file mode 100644 index 00000000..becd1cff --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Date/DateIntervalFilter.php @@ -0,0 +1,33 @@ + $propertyValue) { + $copy->{$propertyName} = $propertyValue; + } + + return $copy; + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php new file mode 100644 index 00000000..164f8b8e --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ReplaceFilter.php @@ -0,0 +1,30 @@ +callback = $callable; + } + + /** + * {@inheritdoc} + */ + public function apply($element) + { + return call_user_func($this->callback, $element); + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php new file mode 100644 index 00000000..a5fbd7a2 --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php @@ -0,0 +1,17 @@ +copier = $copier; + } + + /** + * {@inheritdoc} + */ + public function apply($arrayObject) + { + $clone = clone $arrayObject; + foreach ($arrayObject->getArrayCopy() as $k => $v) { + $clone->offsetSet($k, $this->copier->copy($v)); + } + + return $clone; + } +} + diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php new file mode 100644 index 00000000..c5644cff --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedList.php @@ -0,0 +1,10 @@ +copier = $copier; + } + + /** + * {@inheritdoc} + */ + public function apply($element) + { + $newElement = clone $element; + + $copy = $this->createCopyClosure(); + + return $copy($newElement); + } + + private function createCopyClosure() + { + $copier = $this->copier; + + $copy = function (SplDoublyLinkedList $list) use ($copier) { + // Replace each element in the list with a deep copy of itself + for ($i = 1; $i <= $list->count(); $i++) { + $copy = $copier->recursiveCopy($list->shift()); + + $list->push($copy); + } + + return $list; + }; + + return Closure::bind($copy, null, DeepCopy::class); + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php new file mode 100644 index 00000000..5785a7da --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php @@ -0,0 +1,13 @@ +type = $type; + } + + /** + * @param mixed $element + * + * @return boolean + */ + public function matches($element) + { + return is_object($element) ? is_a($element, $this->type) : gettype($element) === $this->type; + } +} diff --git a/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php b/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php new file mode 100644 index 00000000..55dcc926 --- /dev/null +++ b/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php @@ -0,0 +1,20 @@ +copy($value); + } +} diff --git a/vendor/phar-io/manifest/.gitignore b/vendor/phar-io/manifest/.gitignore new file mode 100644 index 00000000..374459d5 --- /dev/null +++ b/vendor/phar-io/manifest/.gitignore @@ -0,0 +1,7 @@ +/.idea +/.php_cs.cache +/src/autoload.php +/tools +/vendor + +/build diff --git a/vendor/phar-io/manifest/.php_cs b/vendor/phar-io/manifest/.php_cs new file mode 100644 index 00000000..159d6a35 --- /dev/null +++ b/vendor/phar-io/manifest/.php_cs @@ -0,0 +1,67 @@ +files() + ->in('src') + ->in('tests') + ->name('*.php'); + +return Symfony\CS\Config\Config::create() + ->setUsingCache(true) + ->level(\Symfony\CS\FixerInterface::NONE_LEVEL) + ->fixers( + array( + 'align_double_arrow', + 'align_equals', + 'concat_with_spaces', + 'duplicate_semicolon', + 'elseif', + 'empty_return', + 'encoding', + 'eof_ending', + 'extra_empty_lines', + 'function_call_space', + 'function_declaration', + 'indentation', + 'join_function', + 'line_after_namespace', + 'linefeed', + 'list_commas', + 'lowercase_constants', + 'lowercase_keywords', + 'method_argument_space', + 'multiple_use', + 'namespace_no_leading_whitespace', + 'no_blank_lines_after_class_opening', + 'no_empty_lines_after_phpdocs', + 'parenthesis', + 'php_closing_tag', + 'phpdoc_indent', + 'phpdoc_no_access', + 'phpdoc_no_empty_return', + 'phpdoc_no_package', + 'phpdoc_params', + 'phpdoc_scalar', + 'phpdoc_separation', + 'phpdoc_to_comment', + 'phpdoc_trim', + 'phpdoc_types', + 'phpdoc_var_without_name', + 'remove_lines_between_uses', + 'return', + 'self_accessor', + 'short_array_syntax', + 'short_tag', + 'single_line_after_imports', + 'single_quote', + 'spaces_before_semicolon', + 'spaces_cast', + 'ternary_spaces', + 'trailing_spaces', + 'trim_array_spaces', + 'unused_use', + 'visibility', + 'whitespacy_lines' + ) + ) + ->finder($finder); + diff --git a/vendor/phar-io/manifest/.travis.yml b/vendor/phar-io/manifest/.travis.yml new file mode 100644 index 00000000..b4be10f9 --- /dev/null +++ b/vendor/phar-io/manifest/.travis.yml @@ -0,0 +1,33 @@ +os: +- linux + +language: php + +before_install: + - wget https://phar.io/releases/phive.phar + - wget https://phar.io/releases/phive.phar.asc + - gpg --keyserver hkps.pool.sks-keyservers.net --recv-keys 0x9B2D5D79 + - gpg --verify phive.phar.asc phive.phar + - chmod +x phive.phar + - sudo mv phive.phar /usr/bin/phive + +install: + - ant setup + +script: ./tools/phpunit + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.0snapshot + - 7.1snapshot + - master + +matrix: + allow_failures: + - php: master + fast_finish: true + +notifications: + email: false diff --git a/vendor/phar-io/manifest/LICENSE b/vendor/phar-io/manifest/LICENSE new file mode 100644 index 00000000..96051b14 --- /dev/null +++ b/vendor/phar-io/manifest/LICENSE @@ -0,0 +1,31 @@ +manifest + +Copyright (c) 2016 Arne Blankerts , Sebastian Heuer , Sebastian Bergmann , and contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of Arne Blankerts nor the names of contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT * NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + diff --git a/vendor/phar-io/manifest/README.md b/vendor/phar-io/manifest/README.md new file mode 100644 index 00000000..e6d0b055 --- /dev/null +++ b/vendor/phar-io/manifest/README.md @@ -0,0 +1,30 @@ +# Manifest + +Component for reading [phar.io](https://phar.io/) manifest information from a [PHP Archive (PHAR)](http://php.net/phar). + +[![Build Status](https://travis-ci.org/phar-io/manifest.svg?branch=master)](https://travis-ci.org/phar-io/manifest) +[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/phar-io/manifest/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/phar-io/manifest/?branch=master) +[![SensioLabsInsight](https://insight.sensiolabs.com/projects/d8cc6035-69ad-477d-bd1a-ccc605480fd7/mini.png)](https://insight.sensiolabs.com/projects/d8cc6035-69ad-477d-bd1a-ccc605480fd7) + +## Installation + +You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): + + composer require phar-io/manifest + +If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: + + composer require --dev phar-io/manifest + +## Usage + +```php +use PharIo\Manifest\ManifestLoader; +use PharIo\Manifest\ManifestSerializer; + +$manifest = ManifestLoader::fromFile('manifest.xml'); + +var_dump($manifest); + +echo (new ManifestSerializer)->serializeToString($manifest); +``` diff --git a/vendor/phar-io/manifest/build.xml b/vendor/phar-io/manifest/build.xml new file mode 100644 index 00000000..fc6eb1a8 --- /dev/null +++ b/vendor/phar-io/manifest/build.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phar-io/manifest/composer.json b/vendor/phar-io/manifest/composer.json new file mode 100644 index 00000000..cfaa7fa8 --- /dev/null +++ b/vendor/phar-io/manifest/composer.json @@ -0,0 +1,42 @@ +{ + "name": "phar-io/manifest", + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "support": { + "issues": "https://github.com/phar-io/manifest/issues" + }, + "require": { + "php": "^5.6 || ^7.0", + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^2.0" + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + } +} + diff --git a/vendor/phar-io/manifest/composer.lock b/vendor/phar-io/manifest/composer.lock new file mode 100644 index 00000000..d876819c --- /dev/null +++ b/vendor/phar-io/manifest/composer.lock @@ -0,0 +1,69 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "content-hash": "f00846dde236d314a19d00d268d737dd", + "packages": [ + { + "name": "phar-io/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "time": "2018-07-08T19:19:57+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": "^5.6 || ^7.0", + "ext-dom": "*", + "ext-phar": "*" + }, + "platform-dev": [] +} diff --git a/vendor/phar-io/manifest/examples/example-01.php b/vendor/phar-io/manifest/examples/example-01.php new file mode 100644 index 00000000..345c407a --- /dev/null +++ b/vendor/phar-io/manifest/examples/example-01.php @@ -0,0 +1,23 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use PharIo\Manifest\ManifestLoader; +use PharIo\Manifest\ManifestSerializer; + +require __DIR__ . '/../vendor/autoload.php'; + +$manifest = ManifestLoader::fromFile(__DIR__ . '/../tests/_fixture/phpunit-5.6.5.xml'); + +echo sprintf( + "Manifest for %s (%s):\n\n", + $manifest->getName(), + $manifest->getVersion()->getVersionString() +); +echo (new ManifestSerializer)->serializeToString($manifest); diff --git a/vendor/phar-io/manifest/phive.xml b/vendor/phar-io/manifest/phive.xml new file mode 100644 index 00000000..69f2f91b --- /dev/null +++ b/vendor/phar-io/manifest/phive.xml @@ -0,0 +1,4 @@ + + + + diff --git a/vendor/phar-io/manifest/phpunit.xml b/vendor/phar-io/manifest/phpunit.xml new file mode 100644 index 00000000..2d7708ee --- /dev/null +++ b/vendor/phar-io/manifest/phpunit.xml @@ -0,0 +1,20 @@ + + + + tests + + + + + src + + + diff --git a/vendor/phar-io/manifest/src/ManifestDocumentMapper.php b/vendor/phar-io/manifest/src/ManifestDocumentMapper.php new file mode 100644 index 00000000..d41e4f93 --- /dev/null +++ b/vendor/phar-io/manifest/src/ManifestDocumentMapper.php @@ -0,0 +1,193 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PharIo\Version\Version; +use PharIo\Version\Exception as VersionException; +use PharIo\Version\VersionConstraintParser; + +class ManifestDocumentMapper { + /** + * @param ManifestDocument $document + * + * @returns Manifest + * + * @throws ManifestDocumentMapperException + */ + public function map(ManifestDocument $document) { + try { + $contains = $document->getContainsElement(); + $type = $this->mapType($contains); + $copyright = $this->mapCopyright($document->getCopyrightElement()); + $requirements = $this->mapRequirements($document->getRequiresElement()); + $bundledComponents = $this->mapBundledComponents($document); + + return new Manifest( + new ApplicationName($contains->getName()), + new Version($contains->getVersion()), + $type, + $copyright, + $requirements, + $bundledComponents + ); + } catch (VersionException $e) { + throw new ManifestDocumentMapperException($e->getMessage(), $e->getCode(), $e); + } catch (Exception $e) { + throw new ManifestDocumentMapperException($e->getMessage(), $e->getCode(), $e); + } + } + + /** + * @param ContainsElement $contains + * + * @return Type + * + * @throws ManifestDocumentMapperException + */ + private function mapType(ContainsElement $contains) { + switch ($contains->getType()) { + case 'application': + return Type::application(); + case 'library': + return Type::library(); + case 'extension': + return $this->mapExtension($contains->getExtensionElement()); + } + + throw new ManifestDocumentMapperException( + sprintf('Unsupported type %s', $contains->getType()) + ); + } + + /** + * @param CopyrightElement $copyright + * + * @return CopyrightInformation + * + * @throws InvalidUrlException + * @throws InvalidEmailException + */ + private function mapCopyright(CopyrightElement $copyright) { + $authors = new AuthorCollection(); + + foreach($copyright->getAuthorElements() as $authorElement) { + $authors->add( + new Author( + $authorElement->getName(), + new Email($authorElement->getEmail()) + ) + ); + } + + $licenseElement = $copyright->getLicenseElement(); + $license = new License( + $licenseElement->getType(), + new Url($licenseElement->getUrl()) + ); + + return new CopyrightInformation( + $authors, + $license + ); + } + + /** + * @param RequiresElement $requires + * + * @return RequirementCollection + * + * @throws ManifestDocumentMapperException + */ + private function mapRequirements(RequiresElement $requires) { + $collection = new RequirementCollection(); + $phpElement = $requires->getPHPElement(); + $parser = new VersionConstraintParser; + + try { + $versionConstraint = $parser->parse($phpElement->getVersion()); + } catch (VersionException $e) { + throw new ManifestDocumentMapperException( + sprintf('Unsupported version constraint - %s', $e->getMessage()), + $e->getCode(), + $e + ); + } + + $collection->add( + new PhpVersionRequirement( + $versionConstraint + ) + ); + + if (!$phpElement->hasExtElements()) { + return $collection; + } + + foreach($phpElement->getExtElements() as $extElement) { + $collection->add( + new PhpExtensionRequirement($extElement->getName()) + ); + } + + return $collection; + } + + /** + * @param ManifestDocument $document + * + * @return BundledComponentCollection + */ + private function mapBundledComponents(ManifestDocument $document) { + $collection = new BundledComponentCollection(); + + if (!$document->hasBundlesElement()) { + return $collection; + } + + foreach($document->getBundlesElement()->getComponentElements() as $componentElement) { + $collection->add( + new BundledComponent( + $componentElement->getName(), + new Version( + $componentElement->getVersion() + ) + ) + ); + } + + return $collection; + } + + /** + * @param ExtensionElement $extension + * + * @return Extension + * + * @throws ManifestDocumentMapperException + */ + private function mapExtension(ExtensionElement $extension) { + try { + $parser = new VersionConstraintParser; + $versionConstraint = $parser->parse($extension->getCompatible()); + + return Type::extension( + new ApplicationName($extension->getFor()), + $versionConstraint + ); + } catch (VersionException $e) { + throw new ManifestDocumentMapperException( + sprintf('Unsupported version constraint - %s', $e->getMessage()), + $e->getCode(), + $e + ); + } + } +} diff --git a/vendor/phar-io/manifest/src/ManifestLoader.php b/vendor/phar-io/manifest/src/ManifestLoader.php new file mode 100644 index 00000000..81c5c90e --- /dev/null +++ b/vendor/phar-io/manifest/src/ManifestLoader.php @@ -0,0 +1,66 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class ManifestLoader { + /** + * @param string $filename + * + * @return Manifest + * + * @throws ManifestLoaderException + */ + public static function fromFile($filename) { + try { + return (new ManifestDocumentMapper())->map( + ManifestDocument::fromFile($filename) + ); + } catch (Exception $e) { + throw new ManifestLoaderException( + sprintf('Loading %s failed.', $filename), + $e->getCode(), + $e + ); + } + } + + /** + * @param string $filename + * + * @return Manifest + * + * @throws ManifestLoaderException + */ + public static function fromPhar($filename) { + return self::fromFile('phar://' . $filename . '/manifest.xml'); + } + + /** + * @param string $manifest + * + * @return Manifest + * + * @throws ManifestLoaderException + */ + public static function fromString($manifest) { + try { + return (new ManifestDocumentMapper())->map( + ManifestDocument::fromString($manifest) + ); + } catch (Exception $e) { + throw new ManifestLoaderException( + 'Processing string failed', + $e->getCode(), + $e + ); + } + } +} diff --git a/vendor/phar-io/manifest/src/ManifestSerializer.php b/vendor/phar-io/manifest/src/ManifestSerializer.php new file mode 100644 index 00000000..4c18ddd8 --- /dev/null +++ b/vendor/phar-io/manifest/src/ManifestSerializer.php @@ -0,0 +1,163 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PharIo\Version\AnyVersionConstraint; +use PharIo\Version\Version; +use PharIo\Version\VersionConstraint; +use XMLWriter; + +class ManifestSerializer { + /** + * @var XMLWriter + */ + private $xmlWriter; + + public function serializeToFile(Manifest $manifest, $filename) { + file_put_contents( + $filename, + $this->serializeToString($manifest) + ); + } + + public function serializeToString(Manifest $manifest) { + $this->startDocument(); + + $this->addContains($manifest->getName(), $manifest->getVersion(), $manifest->getType()); + $this->addCopyright($manifest->getCopyrightInformation()); + $this->addRequirements($manifest->getRequirements()); + $this->addBundles($manifest->getBundledComponents()); + + return $this->finishDocument(); + } + + private function startDocument() { + $xmlWriter = new XMLWriter(); + $xmlWriter->openMemory(); + $xmlWriter->setIndent(true); + $xmlWriter->setIndentString(str_repeat(' ', 4)); + $xmlWriter->startDocument('1.0', 'UTF-8'); + $xmlWriter->startElement('phar'); + $xmlWriter->writeAttribute('xmlns', 'https://phar.io/xml/manifest/1.0'); + + $this->xmlWriter = $xmlWriter; + } + + private function finishDocument() { + $this->xmlWriter->endElement(); + $this->xmlWriter->endDocument(); + + return $this->xmlWriter->outputMemory(); + } + + private function addContains($name, Version $version, Type $type) { + $this->xmlWriter->startElement('contains'); + $this->xmlWriter->writeAttribute('name', $name); + $this->xmlWriter->writeAttribute('version', $version->getVersionString()); + + switch (true) { + case $type->isApplication(): { + $this->xmlWriter->writeAttribute('type', 'application'); + break; + } + + case $type->isLibrary(): { + $this->xmlWriter->writeAttribute('type', 'library'); + break; + } + + case $type->isExtension(): { + /* @var $type Extension */ + $this->xmlWriter->writeAttribute('type', 'extension'); + $this->addExtension($type->getApplicationName(), $type->getVersionConstraint()); + break; + } + + default: { + $this->xmlWriter->writeAttribute('type', 'custom'); + } + } + + $this->xmlWriter->endElement(); + } + + private function addCopyright(CopyrightInformation $copyrightInformation) { + $this->xmlWriter->startElement('copyright'); + + foreach($copyrightInformation->getAuthors() as $author) { + $this->xmlWriter->startElement('author'); + $this->xmlWriter->writeAttribute('name', $author->getName()); + $this->xmlWriter->writeAttribute('email', (string) $author->getEmail()); + $this->xmlWriter->endElement(); + } + + $license = $copyrightInformation->getLicense(); + + $this->xmlWriter->startElement('license'); + $this->xmlWriter->writeAttribute('type', $license->getName()); + $this->xmlWriter->writeAttribute('url', $license->getUrl()); + $this->xmlWriter->endElement(); + + $this->xmlWriter->endElement(); + } + + private function addRequirements(RequirementCollection $requirementCollection) { + $phpRequirement = new AnyVersionConstraint(); + $extensions = []; + + foreach($requirementCollection as $requirement) { + if ($requirement instanceof PhpVersionRequirement) { + $phpRequirement = $requirement->getVersionConstraint(); + continue; + } + + if ($requirement instanceof PhpExtensionRequirement) { + $extensions[] = (string) $requirement; + } + } + + $this->xmlWriter->startElement('requires'); + $this->xmlWriter->startElement('php'); + $this->xmlWriter->writeAttribute('version', $phpRequirement->asString()); + + foreach($extensions as $extension) { + $this->xmlWriter->startElement('ext'); + $this->xmlWriter->writeAttribute('name', $extension); + $this->xmlWriter->endElement(); + } + + $this->xmlWriter->endElement(); + $this->xmlWriter->endElement(); + } + + private function addBundles(BundledComponentCollection $bundledComponentCollection) { + if (count($bundledComponentCollection) === 0) { + return; + } + $this->xmlWriter->startElement('bundles'); + + foreach($bundledComponentCollection as $bundledComponent) { + $this->xmlWriter->startElement('component'); + $this->xmlWriter->writeAttribute('name', $bundledComponent->getName()); + $this->xmlWriter->writeAttribute('version', $bundledComponent->getVersion()->getVersionString()); + $this->xmlWriter->endElement(); + } + + $this->xmlWriter->endElement(); + } + + private function addExtension($application, VersionConstraint $versionConstraint) { + $this->xmlWriter->startElement('extension'); + $this->xmlWriter->writeAttribute('for', $application); + $this->xmlWriter->writeAttribute('compatible', $versionConstraint->asString()); + $this->xmlWriter->endElement(); + } +} diff --git a/vendor/phar-io/manifest/src/exceptions/Exception.php b/vendor/phar-io/manifest/src/exceptions/Exception.php new file mode 100644 index 00000000..3ce46f24 --- /dev/null +++ b/vendor/phar-io/manifest/src/exceptions/Exception.php @@ -0,0 +1,14 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +interface Exception { +} diff --git a/vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php b/vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php new file mode 100644 index 00000000..a53735a4 --- /dev/null +++ b/vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php @@ -0,0 +1,16 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class InvalidApplicationNameException extends \InvalidArgumentException implements Exception { + const NotAString = 1; + const InvalidFormat = 2; +} diff --git a/vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php b/vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php new file mode 100644 index 00000000..854399b2 --- /dev/null +++ b/vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php @@ -0,0 +1,14 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class InvalidEmailException extends \InvalidArgumentException implements Exception { +} diff --git a/vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php b/vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php new file mode 100644 index 00000000..cdd83234 --- /dev/null +++ b/vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php @@ -0,0 +1,14 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class InvalidUrlException extends \InvalidArgumentException implements Exception { +} diff --git a/vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php b/vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php new file mode 100644 index 00000000..8b40195e --- /dev/null +++ b/vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php @@ -0,0 +1,6 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class Application extends Type { + /** + * @return bool + */ + public function isApplication() { + return true; + } +} diff --git a/vendor/phar-io/manifest/src/values/ApplicationName.php b/vendor/phar-io/manifest/src/values/ApplicationName.php new file mode 100644 index 00000000..1e71af48 --- /dev/null +++ b/vendor/phar-io/manifest/src/values/ApplicationName.php @@ -0,0 +1,65 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class ApplicationName { + /** + * @var string + */ + private $name; + + /** + * ApplicationName constructor. + * + * @param string $name + * + * @throws InvalidApplicationNameException + */ + public function __construct($name) { + $this->ensureIsString($name); + $this->ensureValidFormat($name); + $this->name = $name; + } + + /** + * @return string + */ + public function __toString() { + return $this->name; + } + + public function isEqual(ApplicationName $name) { + return $this->name === $name->name; + } + + /** + * @param string $name + * + * @throws InvalidApplicationNameException + */ + private function ensureValidFormat($name) { + if (!preg_match('#\w/\w#', $name)) { + throw new InvalidApplicationNameException( + sprintf('Format of name "%s" is not valid - expected: vendor/packagename', $name), + InvalidApplicationNameException::InvalidFormat + ); + } + } + + private function ensureIsString($name) { + if (!is_string($name)) { + throw new InvalidApplicationNameException( + 'Name must be a string', + InvalidApplicationNameException::NotAString + ); + } + } +} diff --git a/vendor/phar-io/manifest/src/values/Author.php b/vendor/phar-io/manifest/src/values/Author.php new file mode 100644 index 00000000..8295f513 --- /dev/null +++ b/vendor/phar-io/manifest/src/values/Author.php @@ -0,0 +1,57 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class Author { + /** + * @var string + */ + private $name; + + /** + * @var Email + */ + private $email; + + /** + * @param string $name + * @param Email $email + */ + public function __construct($name, Email $email) { + $this->name = $name; + $this->email = $email; + } + + /** + * @return string + */ + public function getName() { + return $this->name; + } + + /** + * @return Email + */ + public function getEmail() { + return $this->email; + } + + /** + * @return string + */ + public function __toString() { + return sprintf( + '%s <%s>', + $this->name, + $this->email + ); + } +} diff --git a/vendor/phar-io/manifest/src/values/AuthorCollection.php b/vendor/phar-io/manifest/src/values/AuthorCollection.php new file mode 100644 index 00000000..d9158793 --- /dev/null +++ b/vendor/phar-io/manifest/src/values/AuthorCollection.php @@ -0,0 +1,43 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class AuthorCollection implements \Countable, \IteratorAggregate { + /** + * @var Author[] + */ + private $authors = []; + + public function add(Author $author) { + $this->authors[] = $author; + } + + /** + * @return Author[] + */ + public function getAuthors() { + return $this->authors; + } + + /** + * @return int + */ + public function count() { + return count($this->authors); + } + + /** + * @return AuthorCollectionIterator + */ + public function getIterator() { + return new AuthorCollectionIterator($this); + } +} diff --git a/vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php b/vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php new file mode 100644 index 00000000..792a0502 --- /dev/null +++ b/vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php @@ -0,0 +1,56 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class AuthorCollectionIterator implements \Iterator { + /** + * @var Author[] + */ + private $authors = []; + + /** + * @var int + */ + private $position; + + public function __construct(AuthorCollection $authors) { + $this->authors = $authors->getAuthors(); + } + + public function rewind() { + $this->position = 0; + } + + /** + * @return bool + */ + public function valid() { + return $this->position < count($this->authors); + } + + /** + * @return int + */ + public function key() { + return $this->position; + } + + /** + * @return Author + */ + public function current() { + return $this->authors[$this->position]; + } + + public function next() { + $this->position++; + } +} diff --git a/vendor/phar-io/manifest/src/values/BundledComponent.php b/vendor/phar-io/manifest/src/values/BundledComponent.php new file mode 100644 index 00000000..846d15a3 --- /dev/null +++ b/vendor/phar-io/manifest/src/values/BundledComponent.php @@ -0,0 +1,48 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PharIo\Version\Version; + +class BundledComponent { + /** + * @var string + */ + private $name; + + /** + * @var Version + */ + private $version; + + /** + * @param string $name + * @param Version $version + */ + public function __construct($name, Version $version) { + $this->name = $name; + $this->version = $version; + } + + /** + * @return string + */ + public function getName() { + return $this->name; + } + + /** + * @return Version + */ + public function getVersion() { + return $this->version; + } +} diff --git a/vendor/phar-io/manifest/src/values/BundledComponentCollection.php b/vendor/phar-io/manifest/src/values/BundledComponentCollection.php new file mode 100644 index 00000000..2dbb918c --- /dev/null +++ b/vendor/phar-io/manifest/src/values/BundledComponentCollection.php @@ -0,0 +1,43 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class BundledComponentCollection implements \Countable, \IteratorAggregate { + /** + * @var BundledComponent[] + */ + private $bundledComponents = []; + + public function add(BundledComponent $bundledComponent) { + $this->bundledComponents[] = $bundledComponent; + } + + /** + * @return BundledComponent[] + */ + public function getBundledComponents() { + return $this->bundledComponents; + } + + /** + * @return int + */ + public function count() { + return count($this->bundledComponents); + } + + /** + * @return BundledComponentCollectionIterator + */ + public function getIterator() { + return new BundledComponentCollectionIterator($this); + } +} diff --git a/vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php b/vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php new file mode 100644 index 00000000..13b8f050 --- /dev/null +++ b/vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php @@ -0,0 +1,56 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class BundledComponentCollectionIterator implements \Iterator { + /** + * @var BundledComponent[] + */ + private $bundledComponents = []; + + /** + * @var int + */ + private $position; + + public function __construct(BundledComponentCollection $bundledComponents) { + $this->bundledComponents = $bundledComponents->getBundledComponents(); + } + + public function rewind() { + $this->position = 0; + } + + /** + * @return bool + */ + public function valid() { + return $this->position < count($this->bundledComponents); + } + + /** + * @return int + */ + public function key() { + return $this->position; + } + + /** + * @return BundledComponent + */ + public function current() { + return $this->bundledComponents[$this->position]; + } + + public function next() { + $this->position++; + } +} diff --git a/vendor/phar-io/manifest/src/values/CopyrightInformation.php b/vendor/phar-io/manifest/src/values/CopyrightInformation.php new file mode 100644 index 00000000..ece60b19 --- /dev/null +++ b/vendor/phar-io/manifest/src/values/CopyrightInformation.php @@ -0,0 +1,42 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class CopyrightInformation { + /** + * @var AuthorCollection + */ + private $authors; + + /** + * @var License + */ + private $license; + + public function __construct(AuthorCollection $authors, License $license) { + $this->authors = $authors; + $this->license = $license; + } + + /** + * @return AuthorCollection + */ + public function getAuthors() { + return $this->authors; + } + + /** + * @return License + */ + public function getLicense() { + return $this->license; + } +} diff --git a/vendor/phar-io/manifest/src/values/Email.php b/vendor/phar-io/manifest/src/values/Email.php new file mode 100644 index 00000000..57cce042 --- /dev/null +++ b/vendor/phar-io/manifest/src/values/Email.php @@ -0,0 +1,47 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class Email { + /** + * @var string + */ + private $email; + + /** + * @param string $email + * + * @throws InvalidEmailException + */ + public function __construct($email) { + $this->ensureEmailIsValid($email); + + $this->email = $email; + } + + /** + * @return string + */ + public function __toString() { + return $this->email; + } + + /** + * @param string $url + * + * @throws InvalidEmailException + */ + private function ensureEmailIsValid($url) { + if (filter_var($url, \FILTER_VALIDATE_EMAIL) === false) { + throw new InvalidEmailException; + } + } +} diff --git a/vendor/phar-io/manifest/src/values/Extension.php b/vendor/phar-io/manifest/src/values/Extension.php new file mode 100644 index 00000000..90d6a6fd --- /dev/null +++ b/vendor/phar-io/manifest/src/values/Extension.php @@ -0,0 +1,75 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PharIo\Version\Version; +use PharIo\Version\VersionConstraint; + +class Extension extends Type { + /** + * @var ApplicationName + */ + private $application; + + /** + * @var VersionConstraint + */ + private $versionConstraint; + + /** + * @param ApplicationName $application + * @param VersionConstraint $versionConstraint + */ + public function __construct(ApplicationName $application, VersionConstraint $versionConstraint) { + $this->application = $application; + $this->versionConstraint = $versionConstraint; + } + + /** + * @return ApplicationName + */ + public function getApplicationName() { + return $this->application; + } + + /** + * @return VersionConstraint + */ + public function getVersionConstraint() { + return $this->versionConstraint; + } + + /** + * @return bool + */ + public function isExtension() { + return true; + } + + /** + * @param ApplicationName $name + * + * @return bool + */ + public function isExtensionFor(ApplicationName $name) { + return $this->application->isEqual($name); + } + + /** + * @param ApplicationName $name + * @param Version $version + * + * @return bool + */ + public function isCompatibleWith(ApplicationName $name, Version $version) { + return $this->isExtensionFor($name) && $this->versionConstraint->complies($version); + } +} diff --git a/vendor/phar-io/manifest/src/values/Library.php b/vendor/phar-io/manifest/src/values/Library.php new file mode 100644 index 00000000..a6ff9443 --- /dev/null +++ b/vendor/phar-io/manifest/src/values/Library.php @@ -0,0 +1,20 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class Library extends Type { + /** + * @return bool + */ + public function isLibrary() { + return true; + } +} diff --git a/vendor/phar-io/manifest/src/values/License.php b/vendor/phar-io/manifest/src/values/License.php new file mode 100644 index 00000000..e278670a --- /dev/null +++ b/vendor/phar-io/manifest/src/values/License.php @@ -0,0 +1,42 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class License { + /** + * @var string + */ + private $name; + + /** + * @var Url + */ + private $url; + + public function __construct($name, Url $url) { + $this->name = $name; + $this->url = $url; + } + + /** + * @return string + */ + public function getName() { + return $this->name; + } + + /** + * @return Url + */ + public function getUrl() { + return $this->url; + } +} diff --git a/vendor/phar-io/manifest/src/values/Manifest.php b/vendor/phar-io/manifest/src/values/Manifest.php new file mode 100644 index 00000000..217acefc --- /dev/null +++ b/vendor/phar-io/manifest/src/values/Manifest.php @@ -0,0 +1,138 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PharIo\Version\Version; + +class Manifest { + /** + * @var ApplicationName + */ + private $name; + + /** + * @var Version + */ + private $version; + + /** + * @var Type + */ + private $type; + + /** + * @var CopyrightInformation + */ + private $copyrightInformation; + + /** + * @var RequirementCollection + */ + private $requirements; + + /** + * @var BundledComponentCollection + */ + private $bundledComponents; + + public function __construct(ApplicationName $name, Version $version, Type $type, CopyrightInformation $copyrightInformation, RequirementCollection $requirements, BundledComponentCollection $bundledComponents) { + $this->name = $name; + $this->version = $version; + $this->type = $type; + $this->copyrightInformation = $copyrightInformation; + $this->requirements = $requirements; + $this->bundledComponents = $bundledComponents; + } + + /** + * @return ApplicationName + */ + public function getName() { + return $this->name; + } + + /** + * @return Version + */ + public function getVersion() { + return $this->version; + } + + /** + * @return Type + */ + public function getType() { + return $this->type; + } + + /** + * @return CopyrightInformation + */ + public function getCopyrightInformation() { + return $this->copyrightInformation; + } + + /** + * @return RequirementCollection + */ + public function getRequirements() { + return $this->requirements; + } + + /** + * @return BundledComponentCollection + */ + public function getBundledComponents() { + return $this->bundledComponents; + } + + /** + * @return bool + */ + public function isApplication() { + return $this->type->isApplication(); + } + + /** + * @return bool + */ + public function isLibrary() { + return $this->type->isLibrary(); + } + + /** + * @return bool + */ + public function isExtension() { + return $this->type->isExtension(); + } + + /** + * @param ApplicationName $application + * @param Version|null $version + * + * @return bool + */ + public function isExtensionFor(ApplicationName $application, Version $version = null) { + if (!$this->isExtension()) { + return false; + } + + /** @var Extension $type */ + $type = $this->type; + + if ($version !== null) { + return $type->isCompatibleWith($application, $version); + } + + return $type->isExtensionFor($application); + } +} diff --git a/vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php b/vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php new file mode 100644 index 00000000..6dd92968 --- /dev/null +++ b/vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php @@ -0,0 +1,32 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class PhpExtensionRequirement implements Requirement { + /** + * @var string + */ + private $extension; + + /** + * @param string $extension + */ + public function __construct($extension) { + $this->extension = $extension; + } + + /** + * @return string + */ + public function __toString() { + return $this->extension; + } +} diff --git a/vendor/phar-io/manifest/src/values/PhpVersionRequirement.php b/vendor/phar-io/manifest/src/values/PhpVersionRequirement.php new file mode 100644 index 00000000..8ad3e769 --- /dev/null +++ b/vendor/phar-io/manifest/src/values/PhpVersionRequirement.php @@ -0,0 +1,31 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PharIo\Version\VersionConstraint; + +class PhpVersionRequirement implements Requirement { + /** + * @var VersionConstraint + */ + private $versionConstraint; + + public function __construct(VersionConstraint $versionConstraint) { + $this->versionConstraint = $versionConstraint; + } + + /** + * @return VersionConstraint + */ + public function getVersionConstraint() { + return $this->versionConstraint; + } +} diff --git a/vendor/phar-io/manifest/src/values/Requirement.php b/vendor/phar-io/manifest/src/values/Requirement.php new file mode 100644 index 00000000..03bb56d1 --- /dev/null +++ b/vendor/phar-io/manifest/src/values/Requirement.php @@ -0,0 +1,14 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +interface Requirement { +} diff --git a/vendor/phar-io/manifest/src/values/RequirementCollection.php b/vendor/phar-io/manifest/src/values/RequirementCollection.php new file mode 100644 index 00000000..af0e09b8 --- /dev/null +++ b/vendor/phar-io/manifest/src/values/RequirementCollection.php @@ -0,0 +1,43 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class RequirementCollection implements \Countable, \IteratorAggregate { + /** + * @var Requirement[] + */ + private $requirements = []; + + public function add(Requirement $requirement) { + $this->requirements[] = $requirement; + } + + /** + * @return Requirement[] + */ + public function getRequirements() { + return $this->requirements; + } + + /** + * @return int + */ + public function count() { + return count($this->requirements); + } + + /** + * @return RequirementCollectionIterator + */ + public function getIterator() { + return new RequirementCollectionIterator($this); + } +} diff --git a/vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php b/vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php new file mode 100644 index 00000000..9bb7003d --- /dev/null +++ b/vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php @@ -0,0 +1,56 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class RequirementCollectionIterator implements \Iterator { + /** + * @var Requirement[] + */ + private $requirements = []; + + /** + * @var int + */ + private $position; + + public function __construct(RequirementCollection $requirements) { + $this->requirements = $requirements->getRequirements(); + } + + public function rewind() { + $this->position = 0; + } + + /** + * @return bool + */ + public function valid() { + return $this->position < count($this->requirements); + } + + /** + * @return int + */ + public function key() { + return $this->position; + } + + /** + * @return Requirement + */ + public function current() { + return $this->requirements[$this->position]; + } + + public function next() { + $this->position++; + } +} diff --git a/vendor/phar-io/manifest/src/values/Type.php b/vendor/phar-io/manifest/src/values/Type.php new file mode 100644 index 00000000..31fbd440 --- /dev/null +++ b/vendor/phar-io/manifest/src/values/Type.php @@ -0,0 +1,60 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PharIo\Version\VersionConstraint; + +abstract class Type { + /** + * @return Application + */ + public static function application() { + return new Application; + } + + /** + * @return Library + */ + public static function library() { + return new Library; + } + + /** + * @param ApplicationName $application + * @param VersionConstraint $versionConstraint + * + * @return Extension + */ + public static function extension(ApplicationName $application, VersionConstraint $versionConstraint) { + return new Extension($application, $versionConstraint); + } + + /** + * @return bool + */ + public function isApplication() { + return false; + } + + /** + * @return bool + */ + public function isLibrary() { + return false; + } + + /** + * @return bool + */ + public function isExtension() { + return false; + } +} diff --git a/vendor/phar-io/manifest/src/values/Url.php b/vendor/phar-io/manifest/src/values/Url.php new file mode 100644 index 00000000..37917c8c --- /dev/null +++ b/vendor/phar-io/manifest/src/values/Url.php @@ -0,0 +1,47 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class Url { + /** + * @var string + */ + private $url; + + /** + * @param string $url + * + * @throws InvalidUrlException + */ + public function __construct($url) { + $this->ensureUrlIsValid($url); + + $this->url = $url; + } + + /** + * @return string + */ + public function __toString() { + return $this->url; + } + + /** + * @param string $url + * + * @throws InvalidUrlException + */ + private function ensureUrlIsValid($url) { + if (filter_var($url, \FILTER_VALIDATE_URL) === false) { + throw new InvalidUrlException; + } + } +} diff --git a/vendor/phar-io/manifest/src/xml/AuthorElement.php b/vendor/phar-io/manifest/src/xml/AuthorElement.php new file mode 100644 index 00000000..a32f3973 --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/AuthorElement.php @@ -0,0 +1,21 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class AuthorElement extends ManifestElement { + public function getName() { + return $this->getAttributeValue('name'); + } + + public function getEmail() { + return $this->getAttributeValue('email'); + } +} diff --git a/vendor/phar-io/manifest/src/xml/AuthorElementCollection.php b/vendor/phar-io/manifest/src/xml/AuthorElementCollection.php new file mode 100644 index 00000000..1240d8c1 --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/AuthorElementCollection.php @@ -0,0 +1,19 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class AuthorElementCollection extends ElementCollection { + public function current() { + return new AuthorElement( + $this->getCurrentElement() + ); + } +} diff --git a/vendor/phar-io/manifest/src/xml/BundlesElement.php b/vendor/phar-io/manifest/src/xml/BundlesElement.php new file mode 100644 index 00000000..b90023e4 --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/BundlesElement.php @@ -0,0 +1,19 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class BundlesElement extends ManifestElement { + public function getComponentElements() { + return new ComponentElementCollection( + $this->getChildrenByName('component') + ); + } +} diff --git a/vendor/phar-io/manifest/src/xml/ComponentElement.php b/vendor/phar-io/manifest/src/xml/ComponentElement.php new file mode 100644 index 00000000..64ed6b0d --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/ComponentElement.php @@ -0,0 +1,21 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class ComponentElement extends ManifestElement { + public function getName() { + return $this->getAttributeValue('name'); + } + + public function getVersion() { + return $this->getAttributeValue('version'); + } +} diff --git a/vendor/phar-io/manifest/src/xml/ComponentElementCollection.php b/vendor/phar-io/manifest/src/xml/ComponentElementCollection.php new file mode 100644 index 00000000..9d375f98 --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/ComponentElementCollection.php @@ -0,0 +1,19 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class ComponentElementCollection extends ElementCollection { + public function current() { + return new ComponentElement( + $this->getCurrentElement() + ); + } +} diff --git a/vendor/phar-io/manifest/src/xml/ContainsElement.php b/vendor/phar-io/manifest/src/xml/ContainsElement.php new file mode 100644 index 00000000..8172f334 --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/ContainsElement.php @@ -0,0 +1,31 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class ContainsElement extends ManifestElement { + public function getName() { + return $this->getAttributeValue('name'); + } + + public function getVersion() { + return $this->getAttributeValue('version'); + } + + public function getType() { + return $this->getAttributeValue('type'); + } + + public function getExtensionElement() { + return new ExtensionElement( + $this->getChildByName('extension') + ); + } +} diff --git a/vendor/phar-io/manifest/src/xml/CopyrightElement.php b/vendor/phar-io/manifest/src/xml/CopyrightElement.php new file mode 100644 index 00000000..bf7848e4 --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/CopyrightElement.php @@ -0,0 +1,25 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class CopyrightElement extends ManifestElement { + public function getAuthorElements() { + return new AuthorElementCollection( + $this->getChildrenByName('author') + ); + } + + public function getLicenseElement() { + return new LicenseElement( + $this->getChildByName('license') + ); + } +} diff --git a/vendor/phar-io/manifest/src/xml/ElementCollection.php b/vendor/phar-io/manifest/src/xml/ElementCollection.php new file mode 100644 index 00000000..284e77b6 --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/ElementCollection.php @@ -0,0 +1,58 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use DOMElement; +use DOMNodeList; + +abstract class ElementCollection implements \Iterator { + /** + * @var DOMNodeList + */ + private $nodeList; + + private $position; + + /** + * ElementCollection constructor. + * + * @param DOMNodeList $nodeList + */ + public function __construct(DOMNodeList $nodeList) { + $this->nodeList = $nodeList; + $this->position = 0; + } + + abstract public function current(); + + /** + * @return DOMElement + */ + protected function getCurrentElement() { + return $this->nodeList->item($this->position); + } + + public function next() { + $this->position++; + } + + public function key() { + return $this->position; + } + + public function valid() { + return $this->position < $this->nodeList->length; + } + + public function rewind() { + $this->position = 0; + } +} diff --git a/vendor/phar-io/manifest/src/xml/ExtElement.php b/vendor/phar-io/manifest/src/xml/ExtElement.php new file mode 100644 index 00000000..7a824ab7 --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/ExtElement.php @@ -0,0 +1,17 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class ExtElement extends ManifestElement { + public function getName() { + return $this->getAttributeValue('name'); + } +} diff --git a/vendor/phar-io/manifest/src/xml/ExtElementCollection.php b/vendor/phar-io/manifest/src/xml/ExtElementCollection.php new file mode 100644 index 00000000..17acc62a --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/ExtElementCollection.php @@ -0,0 +1,20 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class ExtElementCollection extends ElementCollection { + public function current() { + return new ExtElement( + $this->getCurrentElement() + ); + } + +} diff --git a/vendor/phar-io/manifest/src/xml/ExtensionElement.php b/vendor/phar-io/manifest/src/xml/ExtensionElement.php new file mode 100644 index 00000000..536c085c --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/ExtensionElement.php @@ -0,0 +1,21 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class ExtensionElement extends ManifestElement { + public function getFor() { + return $this->getAttributeValue('for'); + } + + public function getCompatible() { + return $this->getAttributeValue('compatible'); + } +} diff --git a/vendor/phar-io/manifest/src/xml/LicenseElement.php b/vendor/phar-io/manifest/src/xml/LicenseElement.php new file mode 100644 index 00000000..ee001dfa --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/LicenseElement.php @@ -0,0 +1,21 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class LicenseElement extends ManifestElement { + public function getType() { + return $this->getAttributeValue('type'); + } + + public function getUrl() { + return $this->getAttributeValue('url'); + } +} diff --git a/vendor/phar-io/manifest/src/xml/ManifestDocument.php b/vendor/phar-io/manifest/src/xml/ManifestDocument.php new file mode 100644 index 00000000..9b0bd9d9 --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/ManifestDocument.php @@ -0,0 +1,118 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use DOMDocument; +use DOMElement; + +class ManifestDocument { + const XMLNS = 'https://phar.io/xml/manifest/1.0'; + + /** + * @var DOMDocument + */ + private $dom; + + /** + * ManifestDocument constructor. + * + * @param DOMDocument $dom + */ + private function __construct(DOMDocument $dom) { + $this->ensureCorrectDocumentType($dom); + + $this->dom = $dom; + } + + public static function fromFile($filename) { + if (!file_exists($filename)) { + throw new ManifestDocumentException( + sprintf('File "%s" not found', $filename) + ); + } + + return self::fromString( + file_get_contents($filename) + ); + } + + public static function fromString($xmlString) { + $prev = libxml_use_internal_errors(true); + libxml_clear_errors(); + + $dom = new DOMDocument(); + $dom->loadXML($xmlString); + + $errors = libxml_get_errors(); + libxml_use_internal_errors($prev); + + if (count($errors) !== 0) { + throw new ManifestDocumentLoadingException($errors); + } + + return new self($dom); + } + + public function getContainsElement() { + return new ContainsElement( + $this->fetchElementByName('contains') + ); + } + + public function getCopyrightElement() { + return new CopyrightElement( + $this->fetchElementByName('copyright') + ); + } + + public function getRequiresElement() { + return new RequiresElement( + $this->fetchElementByName('requires') + ); + } + + public function hasBundlesElement() { + return $this->dom->getElementsByTagNameNS(self::XMLNS, 'bundles')->length === 1; + } + + public function getBundlesElement() { + return new BundlesElement( + $this->fetchElementByName('bundles') + ); + } + + private function ensureCorrectDocumentType(DOMDocument $dom) { + $root = $dom->documentElement; + + if ($root->localName !== 'phar' || $root->namespaceURI !== self::XMLNS) { + throw new ManifestDocumentException('Not a phar.io manifest document'); + } + } + + /** + * @param $elementName + * + * @return DOMElement + * + * @throws ManifestDocumentException + */ + private function fetchElementByName($elementName) { + $element = $this->dom->getElementsByTagNameNS(self::XMLNS, $elementName)->item(0); + + if (!$element instanceof DOMElement) { + throw new ManifestDocumentException( + sprintf('Element %s missing', $elementName) + ); + } + + return $element; + } +} diff --git a/vendor/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php b/vendor/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php new file mode 100644 index 00000000..59ac5c69 --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/ManifestDocumentLoadingException.php @@ -0,0 +1,48 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use LibXMLError; + +class ManifestDocumentLoadingException extends \Exception implements Exception { + /** + * @var LibXMLError[] + */ + private $libxmlErrors; + + /** + * ManifestDocumentLoadingException constructor. + * + * @param LibXMLError[] $libxmlErrors + */ + public function __construct(array $libxmlErrors) { + $this->libxmlErrors = $libxmlErrors; + $first = $this->libxmlErrors[0]; + + parent::__construct( + sprintf( + '%s (Line: %d / Column: %d / File: %s)', + $first->message, + $first->line, + $first->column, + $first->file + ), + $first->code + ); + } + + /** + * @return LibXMLError[] + */ + public function getLibxmlErrors() { + return $this->libxmlErrors; + } +} diff --git a/vendor/phar-io/manifest/src/xml/ManifestElement.php b/vendor/phar-io/manifest/src/xml/ManifestElement.php new file mode 100644 index 00000000..09d07ccf --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/ManifestElement.php @@ -0,0 +1,100 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use DOMElement; +use DOMNodeList; + +class ManifestElement { + const XMLNS = 'https://phar.io/xml/manifest/1.0'; + + /** + * @var DOMElement + */ + private $element; + + /** + * ContainsElement constructor. + * + * @param DOMElement $element + */ + public function __construct(DOMElement $element) { + $this->element = $element; + } + + /** + * @param string $name + * + * @return string + * + * @throws ManifestElementException + */ + protected function getAttributeValue($name) { + if (!$this->element->hasAttribute($name)) { + throw new ManifestElementException( + sprintf( + 'Attribute %s not set on element %s', + $name, + $this->element->localName + ) + ); + } + + return $this->element->getAttribute($name); + } + + /** + * @param $elementName + * + * @return DOMElement + * + * @throws ManifestElementException + */ + protected function getChildByName($elementName) { + $element = $this->element->getElementsByTagNameNS(self::XMLNS, $elementName)->item(0); + + if (!$element instanceof DOMElement) { + throw new ManifestElementException( + sprintf('Element %s missing', $elementName) + ); + } + + return $element; + } + + /** + * @param $elementName + * + * @return DOMNodeList + * + * @throws ManifestElementException + */ + protected function getChildrenByName($elementName) { + $elementList = $this->element->getElementsByTagNameNS(self::XMLNS, $elementName); + + if ($elementList->length === 0) { + throw new ManifestElementException( + sprintf('Element(s) %s missing', $elementName) + ); + } + + return $elementList; + } + + /** + * @param string $elementName + * + * @return bool + */ + protected function hasChild($elementName) { + return $this->element->getElementsByTagNameNS(self::XMLNS, $elementName)->length !== 0; + } +} diff --git a/vendor/phar-io/manifest/src/xml/PhpElement.php b/vendor/phar-io/manifest/src/xml/PhpElement.php new file mode 100644 index 00000000..e7340c0d --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/PhpElement.php @@ -0,0 +1,27 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class PhpElement extends ManifestElement { + public function getVersion() { + return $this->getAttributeValue('version'); + } + + public function hasExtElements() { + return $this->hasChild('ext'); + } + + public function getExtElements() { + return new ExtElementCollection( + $this->getChildrenByName('ext') + ); + } +} diff --git a/vendor/phar-io/manifest/src/xml/RequiresElement.php b/vendor/phar-io/manifest/src/xml/RequiresElement.php new file mode 100644 index 00000000..5f41b2eb --- /dev/null +++ b/vendor/phar-io/manifest/src/xml/RequiresElement.php @@ -0,0 +1,19 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +class RequiresElement extends ManifestElement { + public function getPHPElement() { + return new PhpElement( + $this->getChildByName('php') + ); + } +} diff --git a/vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php b/vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php new file mode 100644 index 00000000..c69d7619 --- /dev/null +++ b/vendor/phar-io/manifest/tests/ManifestDocumentMapperTest.php @@ -0,0 +1,110 @@ +assertInstanceOf( + Manifest::class, + $mapper->map($manifestDocument) + ); + } + + public function dataProvider() { + return [ + 'application' => [__DIR__ . '/_fixture/phpunit-5.6.5.xml'], + 'library' => [__DIR__ . '/_fixture/library.xml'], + 'extension' => [__DIR__ . '/_fixture/extension.xml'] + ]; + } + + public function testThrowsExceptionOnUnsupportedType() { + $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/custom.xml'); + $mapper = new ManifestDocumentMapper(); + + $this->expectException(ManifestDocumentMapperException::class); + $mapper->map($manifestDocument); + } + + public function testInvalidVersionInformationThrowsException() { + $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/invalidversion.xml'); + $mapper = new ManifestDocumentMapper(); + + $this->expectException(ManifestDocumentMapperException::class); + $mapper->map($manifestDocument); + } + + public function testInvalidVersionConstraintThrowsException() { + $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/invalidversionconstraint.xml'); + $mapper = new ManifestDocumentMapper(); + + $this->expectException(ManifestDocumentMapperException::class); + $mapper->map($manifestDocument); + } + + /** + * @uses \PharIo\Manifest\ExtensionElement + */ + public function testInvalidCompatibleConstraintThrowsException() { + $manifestDocument = ManifestDocument::fromFile(__DIR__ . '/_fixture/extension-invalidcompatible.xml'); + $mapper = new ManifestDocumentMapper(); + + $this->expectException(ManifestDocumentMapperException::class); + $mapper->map($manifestDocument); + } + +} diff --git a/vendor/phar-io/manifest/tests/ManifestLoaderTest.php b/vendor/phar-io/manifest/tests/ManifestLoaderTest.php new file mode 100644 index 00000000..919143a3 --- /dev/null +++ b/vendor/phar-io/manifest/tests/ManifestLoaderTest.php @@ -0,0 +1,83 @@ +assertInstanceOf( + Manifest::class, + ManifestLoader::fromFile(__DIR__ . '/_fixture/library.xml') + ); + } + + public function testCanBeLoadedFromString() { + $this->assertInstanceOf( + Manifest::class, + ManifestLoader::fromString( + file_get_contents(__DIR__ . '/_fixture/library.xml') + ) + ); + } + + public function testCanBeLoadedFromPhar() { + $this->assertInstanceOf( + Manifest::class, + ManifestLoader::fromPhar(__DIR__ . '/_fixture/test.phar') + ); + + } + + public function testLoadingNonExistingFileThrowsException() { + $this->expectException(ManifestLoaderException::class); + ManifestLoader::fromFile('/not/existing'); + } + + /** + * @uses \PharIo\Manifest\ManifestDocumentLoadingException + */ + public function testLoadingInvalidXmlThrowsException() { + $this->expectException(ManifestLoaderException::class); + ManifestLoader::fromString(''); + } + +} diff --git a/vendor/phar-io/manifest/tests/ManifestSerializerTest.php b/vendor/phar-io/manifest/tests/ManifestSerializerTest.php new file mode 100644 index 00000000..5fdf799f --- /dev/null +++ b/vendor/phar-io/manifest/tests/ManifestSerializerTest.php @@ -0,0 +1,114 @@ +assertXmlStringEqualsXmlString( + $expected, + $serializer->serializeToString($manifest) + ); + } + + public function dataProvider() { + return [ + 'application' => [file_get_contents(__DIR__ . '/_fixture/phpunit-5.6.5.xml')], + 'library' => [file_get_contents(__DIR__ . '/_fixture/library.xml')], + 'extension' => [file_get_contents(__DIR__ . '/_fixture/extension.xml')] + ]; + } + + /** + * @uses \PharIo\Manifest\Library + * @uses \PharIo\Manifest\ApplicationName + */ + public function testCanSerializeToFile() { + $src = __DIR__ . '/_fixture/library.xml'; + $dest = '/tmp/' . uniqid('serializer', true); + $manifest = ManifestLoader::fromFile($src); + $serializer = new ManifestSerializer(); + $serializer->serializeToFile($manifest, $dest); + $this->assertXmlFileEqualsXmlFile($src, $dest); + unlink($dest); + } + + /** + * @uses \PharIo\Manifest\ApplicationName + */ + public function testCanHandleUnknownType() { + $type = $this->getMockForAbstractClass(Type::class); + $manifest = new Manifest( + new ApplicationName('testvendor/testname'), + new Version('1.0.0'), + $type, + new CopyrightInformation( + new AuthorCollection(), + new License('bsd-3', new Url('https://some/uri')) + ), + new RequirementCollection(), + new BundledComponentCollection() + ); + + $serializer = new ManifestSerializer(); + $this->assertXmlStringEqualsXmlFile( + __DIR__ . '/_fixture/custom.xml', + $serializer->serializeToString($manifest) + ); + } +} diff --git a/vendor/phar-io/manifest/tests/_fixture/custom.xml b/vendor/phar-io/manifest/tests/_fixture/custom.xml new file mode 100644 index 00000000..4f438280 --- /dev/null +++ b/vendor/phar-io/manifest/tests/_fixture/custom.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/vendor/phar-io/manifest/tests/_fixture/extension-invalidcompatible.xml b/vendor/phar-io/manifest/tests/_fixture/extension-invalidcompatible.xml new file mode 100644 index 00000000..a78111c1 --- /dev/null +++ b/vendor/phar-io/manifest/tests/_fixture/extension-invalidcompatible.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/vendor/phar-io/manifest/tests/_fixture/extension.xml b/vendor/phar-io/manifest/tests/_fixture/extension.xml new file mode 100644 index 00000000..a870aee8 --- /dev/null +++ b/vendor/phar-io/manifest/tests/_fixture/extension.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/vendor/phar-io/manifest/tests/_fixture/invalidversion.xml b/vendor/phar-io/manifest/tests/_fixture/invalidversion.xml new file mode 100644 index 00000000..788dd4cd --- /dev/null +++ b/vendor/phar-io/manifest/tests/_fixture/invalidversion.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/vendor/phar-io/manifest/tests/_fixture/invalidversionconstraint.xml b/vendor/phar-io/manifest/tests/_fixture/invalidversionconstraint.xml new file mode 100644 index 00000000..f881f8b0 --- /dev/null +++ b/vendor/phar-io/manifest/tests/_fixture/invalidversionconstraint.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/vendor/phar-io/manifest/tests/_fixture/library.xml b/vendor/phar-io/manifest/tests/_fixture/library.xml new file mode 100644 index 00000000..a5e25237 --- /dev/null +++ b/vendor/phar-io/manifest/tests/_fixture/library.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/vendor/phar-io/manifest/tests/_fixture/manifest.xml b/vendor/phar-io/manifest/tests/_fixture/manifest.xml new file mode 100644 index 00000000..a5e25237 --- /dev/null +++ b/vendor/phar-io/manifest/tests/_fixture/manifest.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/vendor/phar-io/manifest/tests/_fixture/phpunit-5.6.5.xml b/vendor/phar-io/manifest/tests/_fixture/phpunit-5.6.5.xml new file mode 100644 index 00000000..aadbea2f --- /dev/null +++ b/vendor/phar-io/manifest/tests/_fixture/phpunit-5.6.5.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phar-io/manifest/tests/_fixture/test.phar b/vendor/phar-io/manifest/tests/_fixture/test.phar new file mode 100644 index 0000000000000000000000000000000000000000..d2a3e393ea403e5989aafa4b77d6ae6f07aafe75 GIT binary patch literal 7165 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 literal 0 HcmV?d00001 diff --git a/vendor/phar-io/manifest/tests/exceptions/ManifestDocumentLoadingExceptionTest.php b/vendor/phar-io/manifest/tests/exceptions/ManifestDocumentLoadingExceptionTest.php new file mode 100644 index 00000000..70f75538 --- /dev/null +++ b/vendor/phar-io/manifest/tests/exceptions/ManifestDocumentLoadingExceptionTest.php @@ -0,0 +1,19 @@ +loadXML(''); + $exception = new ManifestDocumentLoadingException(libxml_get_errors()); + libxml_use_internal_errors($prev); + + $this->assertContainsOnlyInstancesOf(LibXMLError::class, $exception->getLibxmlErrors()); + } + +} diff --git a/vendor/phar-io/manifest/tests/values/ApplicationNameTest.php b/vendor/phar-io/manifest/tests/values/ApplicationNameTest.php new file mode 100644 index 00000000..8ed3f3ab --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/ApplicationNameTest.php @@ -0,0 +1,57 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PHPUnit\Framework\TestCase; + +class ApplicationNameTest extends TestCase { + + public function testCanBeCreatedWithValidName() { + $this->assertInstanceOf( + ApplicationName::class, + new ApplicationName('foo/bar') + ); + } + + public function testUsingInvalidFormatForNameThrowsException() { + $this->expectException(InvalidApplicationNameException::class); + $this->expectExceptionCode(InvalidApplicationNameException::InvalidFormat); + new ApplicationName('foo'); + } + + public function testUsingWrongTypeForNameThrowsException() { + $this->expectException(InvalidApplicationNameException::class); + $this->expectExceptionCode(InvalidApplicationNameException::NotAString); + new ApplicationName(123); + } + + public function testReturnsTrueForEqualNamesWhenCompared() { + $app = new ApplicationName('foo/bar'); + $this->assertTrue( + $app->isEqual($app) + ); + } + + public function testReturnsFalseForNonEqualNamesWhenCompared() { + $app1 = new ApplicationName('foo/bar'); + $app2 = new ApplicationName('foo/foo'); + $this->assertFalse( + $app1->isEqual($app2) + ); + } + + public function testCanBeConvertedToString() { + $this->assertEquals( + 'foo/bar', + new ApplicationName('foo/bar') + ); + } +} diff --git a/vendor/phar-io/manifest/tests/values/ApplicationTest.php b/vendor/phar-io/manifest/tests/values/ApplicationTest.php new file mode 100644 index 00000000..86b5da64 --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/ApplicationTest.php @@ -0,0 +1,44 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PHPUnit\Framework\TestCase; + +/** + * @covers PharIo\Manifest\Application + * @covers PharIo\Manifest\Type + */ +class ApplicationTest extends TestCase { + /** + * @var Application + */ + private $type; + + protected function setUp() { + $this->type = Type::application(); + } + + public function testCanBeCreated() { + $this->assertInstanceOf(Application::class, $this->type); + } + + public function testIsApplication() { + $this->assertTrue($this->type->isApplication()); + } + + public function testIsNotLibrary() { + $this->assertFalse($this->type->isLibrary()); + } + + public function testIsNotExtension() { + $this->assertFalse($this->type->isExtension()); + } +} diff --git a/vendor/phar-io/manifest/tests/values/AuthorCollectionTest.php b/vendor/phar-io/manifest/tests/values/AuthorCollectionTest.php new file mode 100644 index 00000000..0fa1b950 --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/AuthorCollectionTest.php @@ -0,0 +1,62 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Manifest\AuthorCollection + * @covers \PharIo\Manifest\AuthorCollectionIterator + * + * @uses \PharIo\Manifest\Author + * @uses \PharIo\Manifest\Email + */ +class AuthorCollectionTest extends TestCase { + /** + * @var AuthorCollection + */ + private $collection; + + /** + * @var Author + */ + private $item; + + protected function setUp() { + $this->collection = new AuthorCollection; + $this->item = new Author('Joe Developer', new Email('user@example.com')); + } + + public function testCanBeCreated() { + $this->assertInstanceOf(AuthorCollection::class, $this->collection); + } + + public function testCanBeCounted() { + $this->collection->add($this->item); + + $this->assertCount(1, $this->collection); + } + + public function testCanBeIterated() { + $this->collection->add( + new Author('Dummy First', new Email('dummy@example.com')) + ); + $this->collection->add($this->item); + $this->assertContains($this->item, $this->collection); + } + + public function testKeyPositionCanBeRetreived() { + $this->collection->add($this->item); + foreach($this->collection as $key => $item) { + $this->assertEquals(0, $key); + } + } +} diff --git a/vendor/phar-io/manifest/tests/values/AuthorTest.php b/vendor/phar-io/manifest/tests/values/AuthorTest.php new file mode 100644 index 00000000..b7317fab --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/AuthorTest.php @@ -0,0 +1,45 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PHPUnit\Framework\TestCase; + +/** + * @covers PharIo\Manifest\Author + * + * @uses PharIo\Manifest\Email + */ +class AuthorTest extends TestCase { + /** + * @var Author + */ + private $author; + + protected function setUp() { + $this->author = new Author('Joe Developer', new Email('user@example.com')); + } + + public function testCanBeCreated() { + $this->assertInstanceOf(Author::class, $this->author); + } + + public function testNameCanBeRetrieved() { + $this->assertEquals('Joe Developer', $this->author->getName()); + } + + public function testEmailCanBeRetrieved() { + $this->assertEquals('user@example.com', $this->author->getEmail()); + } + + public function testCanBeUsedAsString() { + $this->assertEquals('Joe Developer ', $this->author); + } +} diff --git a/vendor/phar-io/manifest/tests/values/BundledComponentCollectionTest.php b/vendor/phar-io/manifest/tests/values/BundledComponentCollectionTest.php new file mode 100644 index 00000000..66cd0c4c --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/BundledComponentCollectionTest.php @@ -0,0 +1,63 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PharIo\Version\Version; +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Manifest\BundledComponentCollection + * @covers \PharIo\Manifest\BundledComponentCollectionIterator + * + * @uses \PharIo\Manifest\BundledComponent + * @uses \PharIo\Version\Version + */ +class BundledComponentCollectionTest extends TestCase { + /** + * @var BundledComponentCollection + */ + private $collection; + + /** + * @var BundledComponent + */ + private $item; + + protected function setUp() { + $this->collection = new BundledComponentCollection; + $this->item = new BundledComponent('phpunit/php-code-coverage', new Version('4.0.2')); + } + + public function testCanBeCreated() { + $this->assertInstanceOf(BundledComponentCollection::class, $this->collection); + } + + public function testCanBeCounted() { + $this->collection->add($this->item); + + $this->assertCount(1, $this->collection); + } + + public function testCanBeIterated() { + $this->collection->add($this->createMock(BundledComponent::class)); + $this->collection->add($this->item); + + $this->assertContains($this->item, $this->collection); + } + + public function testKeyPositionCanBeRetreived() { + $this->collection->add($this->item); + foreach($this->collection as $key => $item) { + $this->assertEquals(0, $key); + } + } + +} diff --git a/vendor/phar-io/manifest/tests/values/BundledComponentTest.php b/vendor/phar-io/manifest/tests/values/BundledComponentTest.php new file mode 100644 index 00000000..01b8e13e --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/BundledComponentTest.php @@ -0,0 +1,42 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PharIo\Version\Version; +use PHPUnit\Framework\TestCase; + +/** + * @covers PharIo\Manifest\BundledComponent + * + * @uses \PharIo\Version\Version + */ +class BundledComponentTest extends TestCase { + /** + * @var BundledComponent + */ + private $bundledComponent; + + protected function setUp() { + $this->bundledComponent = new BundledComponent('phpunit/php-code-coverage', new Version('4.0.2')); + } + + public function testCanBeCreated() { + $this->assertInstanceOf(BundledComponent::class, $this->bundledComponent); + } + + public function testNameCanBeRetrieved() { + $this->assertEquals('phpunit/php-code-coverage', $this->bundledComponent->getName()); + } + + public function testVersionCanBeRetrieved() { + $this->assertEquals('4.0.2', $this->bundledComponent->getVersion()->getVersionString()); + } +} diff --git a/vendor/phar-io/manifest/tests/values/CopyrightInformationTest.php b/vendor/phar-io/manifest/tests/values/CopyrightInformationTest.php new file mode 100644 index 00000000..de738f48 --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/CopyrightInformationTest.php @@ -0,0 +1,62 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PHPUnit\Framework\TestCase; + +/** + * @covers PharIo\Manifest\CopyrightInformation + * + * @uses PharIo\Manifest\AuthorCollection + * @uses PharIo\Manifest\AuthorCollectionIterator + * @uses PharIo\Manifest\Author + * @uses PharIo\Manifest\Email + * @uses PharIo\Manifest\License + * @uses PharIo\Manifest\Url + */ +class CopyrightInformationTest extends TestCase { + /** + * @var CopyrightInformation + */ + private $copyrightInformation; + + /** + * @var Author + */ + private $author; + + /** + * @var License + */ + private $license; + + protected function setUp() { + $this->author = new Author('Joe Developer', new Email('user@example.com')); + $this->license = new License('BSD-3-Clause', new Url('https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE')); + + $authors = new AuthorCollection; + $authors->add($this->author); + + $this->copyrightInformation = new CopyrightInformation($authors, $this->license); + } + + public function testCanBeCreated() { + $this->assertInstanceOf(CopyrightInformation::class, $this->copyrightInformation); + } + + public function testAuthorsCanBeRetrieved() { + $this->assertContains($this->author, $this->copyrightInformation->getAuthors()); + } + + public function testLicenseCanBeRetrieved() { + $this->assertEquals($this->license, $this->copyrightInformation->getLicense()); + } +} diff --git a/vendor/phar-io/manifest/tests/values/EmailTest.php b/vendor/phar-io/manifest/tests/values/EmailTest.php new file mode 100644 index 00000000..ee38531f --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/EmailTest.php @@ -0,0 +1,35 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PHPUnit\Framework\TestCase; + +/** + * @covers PharIo\Manifest\Email + */ +class EmailTest extends TestCase { + public function testCanBeCreatedForValidEmail() { + $this->assertInstanceOf(Email::class, new Email('user@example.com')); + } + + public function testCanBeUsedAsString() { + $this->assertEquals('user@example.com', new Email('user@example.com')); + } + + /** + * @covers PharIo\Manifest\InvalidEmailException + */ + public function testCannotBeCreatedForInvalidEmail() { + $this->expectException(InvalidEmailException::class); + + new Email('invalid'); + } +} diff --git a/vendor/phar-io/manifest/tests/values/ExtensionTest.php b/vendor/phar-io/manifest/tests/values/ExtensionTest.php new file mode 100644 index 00000000..1c9d676f --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/ExtensionTest.php @@ -0,0 +1,109 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PharIo\Version\AnyVersionConstraint; +use PharIo\Version\Version; +use PharIo\Version\VersionConstraint; +use PharIo\Version\VersionConstraintParser; +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Manifest\Extension + * @covers \PharIo\Manifest\Type + * + * @uses \PharIo\Version\VersionConstraint + * @uses \PharIo\Manifest\ApplicationName + */ +class ExtensionTest extends TestCase { + /** + * @var Extension + */ + private $type; + + /** + * @var ApplicationName|\PHPUnit_Framework_MockObject_MockObject + */ + private $name; + + protected function setUp() { + $this->name = $this->createMock(ApplicationName::class); + $this->type = Type::extension($this->name, new AnyVersionConstraint); + } + + public function testCanBeCreated() { + $this->assertInstanceOf(Extension::class, $this->type); + } + + public function testIsNotApplication() { + $this->assertFalse($this->type->isApplication()); + } + + public function testIsNotLibrary() { + $this->assertFalse($this->type->isLibrary()); + } + + public function testIsExtension() { + $this->assertTrue($this->type->isExtension()); + } + + public function testApplicationCanBeRetrieved() + { + $this->assertInstanceOf(ApplicationName::class, $this->type->getApplicationName()); + } + + public function testVersionConstraintCanBeRetrieved() { + $this->assertInstanceOf( + VersionConstraint::class, + $this->type->getVersionConstraint() + ); + } + + public function testApplicationCanBeQueried() + { + $this->name->method('isEqual')->willReturn(true); + $this->assertTrue( + $this->type->isExtensionFor($this->createMock(ApplicationName::class)) + ); + } + + public function testCompatibleWithReturnsTrueForMatchingVersionConstraintAndApplicaiton() { + $app = new ApplicationName('foo/bar'); + $extension = Type::extension($app, (new VersionConstraintParser)->parse('^1.0')); + $version = new Version('1.0.0'); + + $this->assertTrue( + $extension->isCompatibleWith($app, $version) + ); + } + + public function testCompatibleWithReturnsFalseForNotMatchingVersionConstraint() { + $app = new ApplicationName('foo/bar'); + $extension = Type::extension($app, (new VersionConstraintParser)->parse('^1.0')); + $version = new Version('2.0.0'); + + $this->assertFalse( + $extension->isCompatibleWith($app, $version) + ); + } + + public function testCompatibleWithReturnsFalseForNotMatchingApplication() { + $app1 = new ApplicationName('foo/bar'); + $app2 = new ApplicationName('foo/foo'); + $extension = Type::extension($app1, (new VersionConstraintParser)->parse('^1.0')); + $version = new Version('1.0.0'); + + $this->assertFalse( + $extension->isCompatibleWith($app2, $version) + ); + } + +} diff --git a/vendor/phar-io/manifest/tests/values/LibraryTest.php b/vendor/phar-io/manifest/tests/values/LibraryTest.php new file mode 100644 index 00000000..f8d1c649 --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/LibraryTest.php @@ -0,0 +1,44 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PHPUnit\Framework\TestCase; + +/** + * @covers PharIo\Manifest\Library + * @covers PharIo\Manifest\Type + */ +class LibraryTest extends TestCase { + /** + * @var Library + */ + private $type; + + protected function setUp() { + $this->type = Type::library(); + } + + public function testCanBeCreated() { + $this->assertInstanceOf(Library::class, $this->type); + } + + public function testIsNotApplication() { + $this->assertFalse($this->type->isApplication()); + } + + public function testIsLibrary() { + $this->assertTrue($this->type->isLibrary()); + } + + public function testIsNotExtension() { + $this->assertFalse($this->type->isExtension()); + } +} diff --git a/vendor/phar-io/manifest/tests/values/LicenseTest.php b/vendor/phar-io/manifest/tests/values/LicenseTest.php new file mode 100644 index 00000000..c9c5c3c7 --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/LicenseTest.php @@ -0,0 +1,41 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PHPUnit\Framework\TestCase; + +/** + * @covers PharIo\Manifest\License + * + * @uses PharIo\Manifest\Url + */ +class LicenseTest extends TestCase { + /** + * @var License + */ + private $license; + + protected function setUp() { + $this->license = new License('BSD-3-Clause', new Url('https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE')); + } + + public function testCanBeCreated() { + $this->assertInstanceOf(License::class, $this->license); + } + + public function testNameCanBeRetrieved() { + $this->assertEquals('BSD-3-Clause', $this->license->getName()); + } + + public function testUrlCanBeRetrieved() { + $this->assertEquals('https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE', $this->license->getUrl()); + } +} diff --git a/vendor/phar-io/manifest/tests/values/ManifestTest.php b/vendor/phar-io/manifest/tests/values/ManifestTest.php new file mode 100644 index 00000000..cff0a682 --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/ManifestTest.php @@ -0,0 +1,187 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PharIo\Version\Version; +use PharIo\Version\AnyVersionConstraint; +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Manifest\Manifest + * + * @uses \PharIo\Manifest\ApplicationName + * @uses \PharIo\Manifest\Author + * @uses \PharIo\Manifest\AuthorCollection + * @uses \PharIo\Manifest\BundledComponent + * @uses \PharIo\Manifest\BundledComponentCollection + * @uses \PharIo\Manifest\CopyrightInformation + * @uses \PharIo\Manifest\Email + * @uses \PharIo\Manifest\License + * @uses \PharIo\Manifest\RequirementCollection + * @uses \PharIo\Manifest\PhpVersionRequirement + * @uses \PharIo\Manifest\Type + * @uses \PharIo\Manifest\Application + * @uses \PharIo\Manifest\Url + * @uses \PharIo\Version\Version + * @uses \PharIo\Version\VersionConstraint + */ +class ManifestTest extends TestCase { + /** + * @var ApplicationName + */ + private $name; + + /** + * @var Version + */ + private $version; + + /** + * @var Type + */ + private $type; + + /** + * @var CopyrightInformation + */ + private $copyrightInformation; + + /** + * @var RequirementCollection + */ + private $requirements; + + /** + * @var BundledComponentCollection + */ + private $bundledComponents; + + /** + * @var Manifest + */ + private $manifest; + + protected function setUp() { + $this->version = new Version('5.6.5'); + + $this->type = Type::application(); + + $author = new Author('Joe Developer', new Email('user@example.com')); + $license = new License('BSD-3-Clause', new Url('https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE')); + + $authors = new AuthorCollection; + $authors->add($author); + + $this->copyrightInformation = new CopyrightInformation($authors, $license); + + $this->requirements = new RequirementCollection; + $this->requirements->add(new PhpVersionRequirement(new AnyVersionConstraint)); + + $this->bundledComponents = new BundledComponentCollection; + $this->bundledComponents->add(new BundledComponent('phpunit/php-code-coverage', new Version('4.0.2'))); + + $this->name = new ApplicationName('phpunit/phpunit'); + + $this->manifest = new Manifest( + $this->name, + $this->version, + $this->type, + $this->copyrightInformation, + $this->requirements, + $this->bundledComponents + ); + } + + public function testCanBeCreated() { + $this->assertInstanceOf(Manifest::class, $this->manifest); + } + + public function testNameCanBeRetrieved() { + $this->assertEquals($this->name, $this->manifest->getName()); + } + + public function testVersionCanBeRetrieved() { + $this->assertEquals($this->version, $this->manifest->getVersion()); + } + + public function testTypeCanBeRetrieved() { + $this->assertEquals($this->type, $this->manifest->getType()); + } + + public function testTypeCanBeQueried() { + $this->assertTrue($this->manifest->isApplication()); + $this->assertFalse($this->manifest->isLibrary()); + $this->assertFalse($this->manifest->isExtension()); + } + + public function testCopyrightInformationCanBeRetrieved() { + $this->assertEquals($this->copyrightInformation, $this->manifest->getCopyrightInformation()); + } + + public function testRequirementsCanBeRetrieved() { + $this->assertEquals($this->requirements, $this->manifest->getRequirements()); + } + + public function testBundledComponentsCanBeRetrieved() { + $this->assertEquals($this->bundledComponents, $this->manifest->getBundledComponents()); + } + + /** + * @uses \PharIo\Manifest\Extension + */ + public function testExtendedApplicationCanBeQueriedForExtension() + { + $appName = new ApplicationName('foo/bar'); + $manifest = new Manifest( + new ApplicationName('foo/foo'), + new Version('1.0.0'), + Type::extension($appName, new AnyVersionConstraint), + $this->copyrightInformation, + new RequirementCollection, + new BundledComponentCollection + ); + + $this->assertTrue($manifest->isExtensionFor($appName)); + } + + public function testNonExtensionReturnsFalseWhenQueriesForExtension() { + $appName = new ApplicationName('foo/bar'); + $manifest = new Manifest( + new ApplicationName('foo/foo'), + new Version('1.0.0'), + Type::library(), + $this->copyrightInformation, + new RequirementCollection, + new BundledComponentCollection + ); + + $this->assertFalse($manifest->isExtensionFor($appName)); + } + + /** + * @uses \PharIo\Manifest\Extension + */ + public function testExtendedApplicationCanBeQueriedForExtensionWithVersion() + { + $appName = new ApplicationName('foo/bar'); + $manifest = new Manifest( + new ApplicationName('foo/foo'), + new Version('1.0.0'), + Type::extension($appName, new AnyVersionConstraint), + $this->copyrightInformation, + new RequirementCollection, + new BundledComponentCollection + ); + + $this->assertTrue($manifest->isExtensionFor($appName, new Version('1.2.3'))); + } + +} diff --git a/vendor/phar-io/manifest/tests/values/PhpExtensionRequirementTest.php b/vendor/phar-io/manifest/tests/values/PhpExtensionRequirementTest.php new file mode 100644 index 00000000..ae1c058f --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/PhpExtensionRequirementTest.php @@ -0,0 +1,26 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PHPUnit\Framework\TestCase; + +/** + * @covers PharIo\Manifest\PhpExtensionRequirement + */ +class PhpExtensionRequirementTest extends TestCase { + public function testCanBeCreated() { + $this->assertInstanceOf(PhpExtensionRequirement::class, new PhpExtensionRequirement('dom')); + } + + public function testCanBeUsedAsString() { + $this->assertEquals('dom', new PhpExtensionRequirement('dom')); + } +} diff --git a/vendor/phar-io/manifest/tests/values/PhpVersionRequirementTest.php b/vendor/phar-io/manifest/tests/values/PhpVersionRequirementTest.php new file mode 100644 index 00000000..67ac41ad --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/PhpVersionRequirementTest.php @@ -0,0 +1,38 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PharIo\Version\ExactVersionConstraint; +use PHPUnit\Framework\TestCase; + +/** + * @covers PharIo\Manifest\PhpVersionRequirement + * + * @uses \PharIo\Version\VersionConstraint + */ +class PhpVersionRequirementTest extends TestCase { + /** + * @var PhpVersionRequirement + */ + private $requirement; + + protected function setUp() { + $this->requirement = new PhpVersionRequirement(new ExactVersionConstraint('7.1.0')); + } + + public function testCanBeCreated() { + $this->assertInstanceOf(PhpVersionRequirement::class, $this->requirement); + } + + public function testVersionConstraintCanBeRetrieved() { + $this->assertEquals('7.1.0', $this->requirement->getVersionConstraint()->asString()); + } +} diff --git a/vendor/phar-io/manifest/tests/values/RequirementCollectionTest.php b/vendor/phar-io/manifest/tests/values/RequirementCollectionTest.php new file mode 100644 index 00000000..2afeb1a3 --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/RequirementCollectionTest.php @@ -0,0 +1,63 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PharIo\Version\ExactVersionConstraint; +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Manifest\RequirementCollection + * @covers \PharIo\Manifest\RequirementCollectionIterator + * + * @uses \PharIo\Manifest\PhpVersionRequirement + * @uses \PharIo\Version\VersionConstraint + */ +class RequirementCollectionTest extends TestCase { + /** + * @var RequirementCollection + */ + private $collection; + + /** + * @var Requirement + */ + private $item; + + protected function setUp() { + $this->collection = new RequirementCollection; + $this->item = new PhpVersionRequirement(new ExactVersionConstraint('7.1.0')); + } + + public function testCanBeCreated() { + $this->assertInstanceOf(RequirementCollection::class, $this->collection); + } + + public function testCanBeCounted() { + $this->collection->add($this->item); + + $this->assertCount(1, $this->collection); + } + + public function testCanBeIterated() { + $this->collection->add(new PhpVersionRequirement(new ExactVersionConstraint('5.6.0'))); + $this->collection->add($this->item); + + $this->assertContains($this->item, $this->collection); + } + + public function testKeyPositionCanBeRetreived() { + $this->collection->add($this->item); + foreach($this->collection as $key => $item) { + $this->assertEquals(0, $key); + } + } + +} diff --git a/vendor/phar-io/manifest/tests/values/UrlTest.php b/vendor/phar-io/manifest/tests/values/UrlTest.php new file mode 100644 index 00000000..20f09c15 --- /dev/null +++ b/vendor/phar-io/manifest/tests/values/UrlTest.php @@ -0,0 +1,35 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Manifest; + +use PHPUnit\Framework\TestCase; + +/** + * @covers PharIo\Manifest\Url + */ +class UrlTest extends TestCase { + public function testCanBeCreatedForValidUrl() { + $this->assertInstanceOf(Url::class, new Url('https://phar.io/')); + } + + public function testCanBeUsedAsString() { + $this->assertEquals('https://phar.io/', new Url('https://phar.io/')); + } + + /** + * @covers PharIo\Manifest\InvalidUrlException + */ + public function testCannotBeCreatedForInvalidUrl() { + $this->expectException(InvalidUrlException::class); + + new Url('invalid'); + } +} diff --git a/vendor/phar-io/manifest/tests/xml/AuthorElementCollectionTest.php b/vendor/phar-io/manifest/tests/xml/AuthorElementCollectionTest.php new file mode 100644 index 00000000..588558ef --- /dev/null +++ b/vendor/phar-io/manifest/tests/xml/AuthorElementCollectionTest.php @@ -0,0 +1,18 @@ +loadXML(''); + $collection = new AuthorElementCollection($dom->childNodes); + + foreach($collection as $authorElement) { + $this->assertInstanceOf(AuthorElement::class, $authorElement); + } + } + +} diff --git a/vendor/phar-io/manifest/tests/xml/AuthorElementTest.php b/vendor/phar-io/manifest/tests/xml/AuthorElementTest.php new file mode 100644 index 00000000..6fce1d4a --- /dev/null +++ b/vendor/phar-io/manifest/tests/xml/AuthorElementTest.php @@ -0,0 +1,25 @@ +loadXML(''); + $this->author = new AuthorElement($dom->documentElement); + } + + public function testNameCanBeRetrieved() { + $this->assertEquals('Reiner Zufall', $this->author->getName()); + } + + public function testEmailCanBeRetrieved() { + $this->assertEquals('reiner@zufall.de', $this->author->getEmail()); + } + +} diff --git a/vendor/phar-io/manifest/tests/xml/BundlesElementTest.php b/vendor/phar-io/manifest/tests/xml/BundlesElementTest.php new file mode 100644 index 00000000..78727958 --- /dev/null +++ b/vendor/phar-io/manifest/tests/xml/BundlesElementTest.php @@ -0,0 +1,41 @@ +dom = new DOMDocument(); + $this->dom->loadXML(''); + $this->bundles = new BundlesElement($this->dom->documentElement); + } + + public function testThrowsExceptionWhenGetComponentElementsIsCalledButNodesAreMissing() { + $this->expectException(ManifestElementException::class); + $this->bundles->getComponentElements(); + } + + public function testGetComponentElementsReturnsComponentElementCollection() { + $this->addComponent(); + $this->assertInstanceOf( + ComponentElementCollection::class, $this->bundles->getComponentElements() + ); + } + + private function addComponent() { + $this->dom->documentElement->appendChild( + $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'component') + ); + } +} diff --git a/vendor/phar-io/manifest/tests/xml/ComponentElementCollectionTest.php b/vendor/phar-io/manifest/tests/xml/ComponentElementCollectionTest.php new file mode 100644 index 00000000..9fe23781 --- /dev/null +++ b/vendor/phar-io/manifest/tests/xml/ComponentElementCollectionTest.php @@ -0,0 +1,18 @@ +loadXML(''); + $collection = new ComponentElementCollection($dom->childNodes); + + foreach($collection as $componentElement) { + $this->assertInstanceOf(ComponentElement::class, $componentElement); + } + } + +} diff --git a/vendor/phar-io/manifest/tests/xml/ComponentElementTest.php b/vendor/phar-io/manifest/tests/xml/ComponentElementTest.php new file mode 100644 index 00000000..1996585b --- /dev/null +++ b/vendor/phar-io/manifest/tests/xml/ComponentElementTest.php @@ -0,0 +1,25 @@ +loadXML(''); + $this->component = new ComponentElement($dom->documentElement); + } + + public function testNameCanBeRetrieved() { + $this->assertEquals('phar-io/phive', $this->component->getName()); + } + + public function testEmailCanBeRetrieved() { + $this->assertEquals('0.6.0', $this->component->getVersion()); + } + +} diff --git a/vendor/phar-io/manifest/tests/xml/ContainsElementTest.php b/vendor/phar-io/manifest/tests/xml/ContainsElementTest.php new file mode 100644 index 00000000..ed08600d --- /dev/null +++ b/vendor/phar-io/manifest/tests/xml/ContainsElementTest.php @@ -0,0 +1,63 @@ +loadXML(''); + $this->domElement = $dom->documentElement; + $this->contains = new ContainsElement($this->domElement); + } + + public function testVersionCanBeRetrieved() { + $this->assertEquals('5.6.5', $this->contains->getVersion()); + } + + public function testThrowsExceptionWhenVersionAttributeIsMissing() { + $this->domElement->removeAttribute('version'); + $this->expectException(ManifestElementException::class); + $this->contains->getVersion(); + } + + public function testNameCanBeRetrieved() { + $this->assertEquals('phpunit/phpunit', $this->contains->getName()); + } + + public function testThrowsExceptionWhenNameAttributeIsMissing() { + $this->domElement->removeAttribute('name'); + $this->expectException(ManifestElementException::class); + $this->contains->getName(); + } + + public function testTypeCanBeRetrieved() { + $this->assertEquals('application', $this->contains->getType()); + } + + public function testThrowsExceptionWhenTypeAttributeIsMissing() { + $this->domElement->removeAttribute('type'); + $this->expectException(ManifestElementException::class); + $this->contains->getType(); + } + + public function testGetExtensionElementReturnsExtensionElement() { + $this->domElement->appendChild( + $this->domElement->ownerDocument->createElementNS('https://phar.io/xml/manifest/1.0', 'extension') + ); + $this->assertInstanceOf(ExtensionElement::class, $this->contains->getExtensionElement()); + } + +} diff --git a/vendor/phar-io/manifest/tests/xml/CopyrightElementTest.php b/vendor/phar-io/manifest/tests/xml/CopyrightElementTest.php new file mode 100644 index 00000000..c74a2ce3 --- /dev/null +++ b/vendor/phar-io/manifest/tests/xml/CopyrightElementTest.php @@ -0,0 +1,52 @@ +dom = new DOMDocument(); + $this->dom->loadXML(''); + $this->copyright = new CopyrightElement($this->dom->documentElement); + } + + public function testThrowsExceptionWhenGetAuthroElementsIsCalledButNodesAreMissing() { + $this->expectException(ManifestElementException::class); + $this->copyright->getAuthorElements(); + } + + public function testThrowsExceptionWhenGetLicenseElementIsCalledButNodeIsMissing() { + $this->expectException(ManifestElementException::class); + $this->copyright->getLicenseElement(); + } + + public function testGetAuthorElementsReturnsAuthorElementCollection() { + $this->dom->documentElement->appendChild( + $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'author') + ); + $this->assertInstanceOf( + AuthorElementCollection::class, $this->copyright->getAuthorElements() + ); + } + + public function testGetLicenseElementReturnsLicenseElement() { + $this->dom->documentElement->appendChild( + $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'license') + ); + $this->assertInstanceOf( + LicenseElement::class, $this->copyright->getLicenseElement() + ); + } + +} diff --git a/vendor/phar-io/manifest/tests/xml/ExtElementCollectionTest.php b/vendor/phar-io/manifest/tests/xml/ExtElementCollectionTest.php new file mode 100644 index 00000000..7a456d2b --- /dev/null +++ b/vendor/phar-io/manifest/tests/xml/ExtElementCollectionTest.php @@ -0,0 +1,19 @@ +loadXML(''); + $collection = new ExtElementCollection($dom->childNodes); + + foreach($collection as $position => $extElement) { + $this->assertInstanceOf(ExtElement::class, $extElement); + $this->assertEquals(0, $position); + } + } + +} diff --git a/vendor/phar-io/manifest/tests/xml/ExtElementTest.php b/vendor/phar-io/manifest/tests/xml/ExtElementTest.php new file mode 100644 index 00000000..db6ecbc3 --- /dev/null +++ b/vendor/phar-io/manifest/tests/xml/ExtElementTest.php @@ -0,0 +1,21 @@ +loadXML(''); + $this->ext = new ExtElement($dom->documentElement); + } + + public function testNameCanBeRetrieved() { + $this->assertEquals('dom', $this->ext->getName()); + } + +} diff --git a/vendor/phar-io/manifest/tests/xml/ExtensionElementTest.php b/vendor/phar-io/manifest/tests/xml/ExtensionElementTest.php new file mode 100644 index 00000000..58965d82 --- /dev/null +++ b/vendor/phar-io/manifest/tests/xml/ExtensionElementTest.php @@ -0,0 +1,25 @@ +loadXML(''); + $this->extension = new ExtensionElement($dom->documentElement); + } + + public function testNForCanBeRetrieved() { + $this->assertEquals('phar-io/phive', $this->extension->getFor()); + } + + public function testCompatibleVersionConstraintCanBeRetrieved() { + $this->assertEquals('~0.6', $this->extension->getCompatible()); + } + +} diff --git a/vendor/phar-io/manifest/tests/xml/LicenseElementTest.php b/vendor/phar-io/manifest/tests/xml/LicenseElementTest.php new file mode 100644 index 00000000..5b1ffcbe --- /dev/null +++ b/vendor/phar-io/manifest/tests/xml/LicenseElementTest.php @@ -0,0 +1,25 @@ +loadXML(''); + $this->license = new LicenseElement($dom->documentElement); + } + + public function testTypeCanBeRetrieved() { + $this->assertEquals('BSD-3', $this->license->getType()); + } + + public function testUrlCanBeRetrieved() { + $this->assertEquals('https://some.tld/LICENSE', $this->license->getUrl()); + } + +} diff --git a/vendor/phar-io/manifest/tests/xml/ManifestDocumentTest.php b/vendor/phar-io/manifest/tests/xml/ManifestDocumentTest.php new file mode 100644 index 00000000..3dd59bf5 --- /dev/null +++ b/vendor/phar-io/manifest/tests/xml/ManifestDocumentTest.php @@ -0,0 +1,110 @@ +expectException(ManifestDocumentException::class); + ManifestDocument::fromFile('/does/not/exist'); + } + + public function testCanBeCreatedFromFile() { + $this->assertInstanceOf( + ManifestDocument::class, + ManifestDocument::fromFile(__DIR__ . '/../_fixture/phpunit-5.6.5.xml') + ); + } + + public function testCaneBeConstructedFromString() { + $content = file_get_contents(__DIR__ . '/../_fixture/phpunit-5.6.5.xml'); + $this->assertInstanceOf( + ManifestDocument::class, + ManifestDocument::fromString($content) + ); + } + + public function testThrowsExceptionOnInvalidXML() { + $this->expectException(ManifestDocumentLoadingException::class); + ManifestDocument::fromString(''); + } + + public function testLoadingDocumentWithWrongRootNameThrowsException() { + $this->expectException(ManifestDocumentException::class); + ManifestDocument::fromString(''); + } + + public function testLoadingDocumentWithWrongNamespaceThrowsException() { + $this->expectException(ManifestDocumentException::class); + ManifestDocument::fromString(''); + } + + public function testContainsElementCanBeRetrieved() { + $this->assertInstanceOf( + ContainsElement::class, + $this->loadFixture()->getContainsElement() + ); + } + + public function testRequiresElementCanBeRetrieved() { + $this->assertInstanceOf( + RequiresElement::class, + $this->loadFixture()->getRequiresElement() + ); + } + + public function testCopyrightElementCanBeRetrieved() { + $this->assertInstanceOf( + CopyrightElement::class, + $this->loadFixture()->getCopyrightElement() + ); + } + + public function testBundlesElementCanBeRetrieved() { + $this->assertInstanceOf( + BundlesElement::class, + $this->loadFixture()->getBundlesElement() + ); + } + + public function testThrowsExceptionWhenContainsIsMissing() { + $this->expectException(ManifestDocumentException::class); + $this->loadEmptyFixture()->getContainsElement(); + } + + public function testThrowsExceptionWhenCopyirhgtIsMissing() { + $this->expectException(ManifestDocumentException::class); + $this->loadEmptyFixture()->getCopyrightElement(); + } + + public function testThrowsExceptionWhenRequiresIsMissing() { + $this->expectException(ManifestDocumentException::class); + $this->loadEmptyFixture()->getRequiresElement(); + } + + public function testThrowsExceptionWhenBundlesIsMissing() { + $this->expectException(ManifestDocumentException::class); + $this->loadEmptyFixture()->getBundlesElement(); + } + + public function testHasBundlesReturnsTrueWhenBundlesNodeIsPresent() { + $this->assertTrue( + $this->loadFixture()->hasBundlesElement() + ); + } + + public function testHasBundlesReturnsFalseWhenBundlesNoNodeIsPresent() { + $this->assertFalse( + $this->loadEmptyFixture()->hasBundlesElement() + ); + } + + private function loadFixture() { + return ManifestDocument::fromFile(__DIR__ . '/../_fixture/phpunit-5.6.5.xml'); + } + + private function loadEmptyFixture() { + return ManifestDocument::fromString( + '' + ); + } +} diff --git a/vendor/phar-io/manifest/tests/xml/PhpElementTest.php b/vendor/phar-io/manifest/tests/xml/PhpElementTest.php new file mode 100644 index 00000000..62dd359b --- /dev/null +++ b/vendor/phar-io/manifest/tests/xml/PhpElementTest.php @@ -0,0 +1,48 @@ +dom = new DOMDocument(); + $this->dom->loadXML(''); + $this->php = new PhpElement($this->dom->documentElement); + } + + public function testVersionConstraintCanBeRetrieved() { + $this->assertEquals('^5.6 || ^7.0', $this->php->getVersion()); + } + + public function testHasExtElementsReturnsFalseWhenNoExtensionsAreRequired() { + $this->assertFalse($this->php->hasExtElements()); + } + + public function testHasExtElementsReturnsTrueWhenExtensionsAreRequired() { + $this->addExtElement(); + $this->assertTrue($this->php->hasExtElements()); + } + + public function testGetExtElementsReturnsExtElementCollection() { + $this->addExtElement(); + $this->assertInstanceOf(ExtElementCollection::class, $this->php->getExtElements()); + } + + private function addExtElement() { + $this->dom->documentElement->appendChild( + $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'ext') + ); + } + +} diff --git a/vendor/phar-io/manifest/tests/xml/RequiresElementTest.php b/vendor/phar-io/manifest/tests/xml/RequiresElementTest.php new file mode 100644 index 00000000..35ddc826 --- /dev/null +++ b/vendor/phar-io/manifest/tests/xml/RequiresElementTest.php @@ -0,0 +1,37 @@ +dom = new DOMDocument(); + $this->dom->loadXML(''); + $this->requires = new RequiresElement($this->dom->documentElement); + } + + public function testThrowsExceptionWhenGetPhpElementIsCalledButElementIsMissing() { + $this->expectException(ManifestElementException::class); + $this->requires->getPHPElement(); + } + + public function testHasExtElementsReturnsTrueWhenExtensionsAreRequired() { + $this->dom->documentElement->appendChild( + $this->dom->createElementNS('https://phar.io/xml/manifest/1.0', 'php') + ); + + $this->assertInstanceOf(PhpElement::class, $this->requires->getPHPElement()); + } + +} diff --git a/vendor/phar-io/version/.gitignore b/vendor/phar-io/version/.gitignore new file mode 100644 index 00000000..1c8f2e64 --- /dev/null +++ b/vendor/phar-io/version/.gitignore @@ -0,0 +1,7 @@ +/.idea +/.php_cs.cache +/composer.lock +/src/autoload.php +/tools +/vendor + diff --git a/vendor/phar-io/version/.php_cs b/vendor/phar-io/version/.php_cs new file mode 100644 index 00000000..159d6a35 --- /dev/null +++ b/vendor/phar-io/version/.php_cs @@ -0,0 +1,67 @@ +files() + ->in('src') + ->in('tests') + ->name('*.php'); + +return Symfony\CS\Config\Config::create() + ->setUsingCache(true) + ->level(\Symfony\CS\FixerInterface::NONE_LEVEL) + ->fixers( + array( + 'align_double_arrow', + 'align_equals', + 'concat_with_spaces', + 'duplicate_semicolon', + 'elseif', + 'empty_return', + 'encoding', + 'eof_ending', + 'extra_empty_lines', + 'function_call_space', + 'function_declaration', + 'indentation', + 'join_function', + 'line_after_namespace', + 'linefeed', + 'list_commas', + 'lowercase_constants', + 'lowercase_keywords', + 'method_argument_space', + 'multiple_use', + 'namespace_no_leading_whitespace', + 'no_blank_lines_after_class_opening', + 'no_empty_lines_after_phpdocs', + 'parenthesis', + 'php_closing_tag', + 'phpdoc_indent', + 'phpdoc_no_access', + 'phpdoc_no_empty_return', + 'phpdoc_no_package', + 'phpdoc_params', + 'phpdoc_scalar', + 'phpdoc_separation', + 'phpdoc_to_comment', + 'phpdoc_trim', + 'phpdoc_types', + 'phpdoc_var_without_name', + 'remove_lines_between_uses', + 'return', + 'self_accessor', + 'short_array_syntax', + 'short_tag', + 'single_line_after_imports', + 'single_quote', + 'spaces_before_semicolon', + 'spaces_cast', + 'ternary_spaces', + 'trailing_spaces', + 'trim_array_spaces', + 'unused_use', + 'visibility', + 'whitespacy_lines' + ) + ) + ->finder($finder); + diff --git a/vendor/phar-io/version/.travis.yml b/vendor/phar-io/version/.travis.yml new file mode 100644 index 00000000..b4be10f9 --- /dev/null +++ b/vendor/phar-io/version/.travis.yml @@ -0,0 +1,33 @@ +os: +- linux + +language: php + +before_install: + - wget https://phar.io/releases/phive.phar + - wget https://phar.io/releases/phive.phar.asc + - gpg --keyserver hkps.pool.sks-keyservers.net --recv-keys 0x9B2D5D79 + - gpg --verify phive.phar.asc phive.phar + - chmod +x phive.phar + - sudo mv phive.phar /usr/bin/phive + +install: + - ant setup + +script: ./tools/phpunit + +php: + - 5.6 + - 7.0 + - 7.1 + - 7.0snapshot + - 7.1snapshot + - master + +matrix: + allow_failures: + - php: master + fast_finish: true + +notifications: + email: false diff --git a/vendor/phar-io/version/CHANGELOG.md b/vendor/phar-io/version/CHANGELOG.md new file mode 100644 index 00000000..ab9df368 --- /dev/null +++ b/vendor/phar-io/version/CHANGELOG.md @@ -0,0 +1,44 @@ +# Changelog + +All notable changes to phar-io/version are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [2.0.1] - 08.07.2018 + +### Fixed + +- Versions without a pre-release suffix are now always considered greater +than versions without a pre-release suffix. Example: `3.0.0 > 3.0.0-alpha.1` + +## [2.0.0] - 23.06.2018 + +Changes to public API: + +- `PreReleaseSuffix::construct()`: optional parameter `$number` removed +- `PreReleaseSuffix::isGreaterThan()`: introduced +- `Version::hasPreReleaseSuffix()`: introduced + +### Added + +- [#11](https://github.com/phar-io/version/issues/11): Added support for pre-release version suffixes. Supported values are: + - `dev` + - `beta` (also abbreviated form `b`) + - `rc` + - `alpha` (also abbreviated form `a`) + - `patch` (also abbreviated form `p`) + + All values can be followed by a number, e.g. `beta3`. + + When comparing versions, the pre-release suffix is taken into account. Example: +`1.5.0 > 1.5.0-beta1 > 1.5.0-alpha3 > 1.5.0-alpha2 > 1.5.0-dev11` + +### Changed + +- reorganized the source directories + +### Fixed + +- [#10](https://github.com/phar-io/version/issues/10): Version numbers containing +a numeric suffix as seen in Debian packages are now supported. + +[2.0.1]: https://github.com/phar-io/version/compare/2.0.0...2.0.1 +[2.0.0]: https://github.com/phar-io/version/compare/1.0.1...2.0.0 diff --git a/vendor/phar-io/version/LICENSE b/vendor/phar-io/version/LICENSE new file mode 100644 index 00000000..359dbc50 --- /dev/null +++ b/vendor/phar-io/version/LICENSE @@ -0,0 +1,31 @@ +phar-io/version + +Copyright (c) 2016-2017 Arne Blankerts , Sebastian Heuer and contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of Arne Blankerts nor the names of contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT * NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + diff --git a/vendor/phar-io/version/README.md b/vendor/phar-io/version/README.md new file mode 100644 index 00000000..76e6e985 --- /dev/null +++ b/vendor/phar-io/version/README.md @@ -0,0 +1,61 @@ +# Version + +Library for handling version information and constraints + +[![Build Status](https://travis-ci.org/phar-io/version.svg?branch=master)](https://travis-ci.org/phar-io/version) + +## Installation + +You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): + + composer require phar-io/version + +If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: + + composer require --dev phar-io/version + +## Version constraints + +A Version constraint describes a range of versions or a discrete version number. The format of version numbers follows the schema of [semantic versioning](http://semver.org): `..`. A constraint might contain an operator that describes the range. + +Beside the typical mathematical operators like `<=`, `>=`, there are two special operators: + +*Caret operator*: `^1.0` +can be written as `>=1.0.0 <2.0.0` and read as »every Version within major version `1`«. + +*Tilde operator*: `~1.0.0` +can be written as `>=1.0.0 <1.1.0` and read as »every version within minor version `1.1`. The behavior of tilde operator depends on whether a patch level version is provided or not. If no patch level is provided, tilde operator behaves like the caret operator: `~1.0` is identical to `^1.0`. + +## Usage examples + +Parsing version constraints and check discrete versions for compliance: + +```php + +use PharIo\Version\Version; +use PharIo\Version\VersionConstraintParser; + +$parser = new VersionConstraintParser(); +$caret_constraint = $parser->parse( '^7.0' ); + +$caret_constraint->complies( new Version( '7.0.17' ) ); // true +$caret_constraint->complies( new Version( '7.1.0' ) ); // true +$caret_constraint->complies( new Version( '6.4.34' ) ); // false + +$tilde_constraint = $parser->parse( '~1.1.0' ); + +$tilde_constraint->complies( new Version( '1.1.4' ) ); // true +$tilde_constraint->complies( new Version( '1.2.0' ) ); // false +``` + +As of version 2.0.0, pre-release labels are supported and taken into account when comparing versions: + +```php + +$leftVersion = new PharIo\Version\Version('3.0.0-alpha.1'); +$rightVersion = new PharIo\Version\Version('3.0.0-alpha.2'); + +$leftVersion->isGreaterThan($rightVersion); // false +$rightVersion->isGreaterThan($leftVersion); // true + +``` diff --git a/vendor/phar-io/version/build.xml b/vendor/phar-io/version/build.xml new file mode 100644 index 00000000..943c957f --- /dev/null +++ b/vendor/phar-io/version/build.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phar-io/version/composer.json b/vendor/phar-io/version/composer.json new file mode 100644 index 00000000..891e8b17 --- /dev/null +++ b/vendor/phar-io/version/composer.json @@ -0,0 +1,34 @@ +{ + "name": "phar-io/version", + "description": "Library for handling version information and constraints", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "support": { + "issues": "https://github.com/phar-io/version/issues" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "autoload": { + "classmap": [ + "src/" + ] + } +} + diff --git a/vendor/phar-io/version/phive.xml b/vendor/phar-io/version/phive.xml new file mode 100644 index 00000000..0c3bc6f3 --- /dev/null +++ b/vendor/phar-io/version/phive.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/vendor/phar-io/version/phpunit.xml b/vendor/phar-io/version/phpunit.xml new file mode 100644 index 00000000..c21ffbc0 --- /dev/null +++ b/vendor/phar-io/version/phpunit.xml @@ -0,0 +1,19 @@ + + + + tests + + + + + src + + + diff --git a/vendor/phar-io/version/src/PreReleaseSuffix.php b/vendor/phar-io/version/src/PreReleaseSuffix.php new file mode 100644 index 00000000..e936c0ee --- /dev/null +++ b/vendor/phar-io/version/src/PreReleaseSuffix.php @@ -0,0 +1,95 @@ + 0, + 'a' => 1, + 'alpha' => 1, + 'b' => 2, + 'beta' => 2, + 'rc' => 3, + 'p' => 4, + 'patch' => 4, + ]; + + /** + * @var string + */ + private $value; + + /** + * @var int + */ + private $valueScore; + + /** + * @var int + */ + private $number = 0; + + /** + * @param string $value + */ + public function __construct($value) { + $this->parseValue($value); + } + + /** + * @return string + */ + public function getValue() { + return $this->value; + } + + /** + * @return int|null + */ + public function getNumber() { + return $this->number; + } + + /** + * @param PreReleaseSuffix $suffix + * + * @return bool + */ + public function isGreaterThan(PreReleaseSuffix $suffix) { + if ($this->valueScore > $suffix->valueScore) { + return true; + } + + if ($this->valueScore < $suffix->valueScore) { + return false; + } + + return $this->getNumber() > $suffix->getNumber(); + } + + /** + * @param $value + * + * @return int + */ + private function mapValueToScore($value) { + if (array_key_exists($value, $this->valueScoreMap)) { + return $this->valueScoreMap[$value]; + } + + return 0; + } + + private function parseValue($value) { + $regex = '/-?(dev|beta|b|rc|alpha|a|patch|p)\.?(\d*).*$/i'; + if (preg_match($regex, $value, $matches) !== 1) { + throw new InvalidPreReleaseSuffixException(sprintf('Invalid label %s', $value)); + } + + $this->value = $matches[1]; + if (isset($matches[2])) { + $this->number = (int)$matches[2]; + } + $this->valueScore = $this->mapValueToScore($this->value); + } +} diff --git a/vendor/phar-io/version/src/Version.php b/vendor/phar-io/version/src/Version.php new file mode 100644 index 00000000..73e1b98a --- /dev/null +++ b/vendor/phar-io/version/src/Version.php @@ -0,0 +1,175 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +class Version { + /** + * @var VersionNumber + */ + private $major; + + /** + * @var VersionNumber + */ + private $minor; + + /** + * @var VersionNumber + */ + private $patch; + + /** + * @var PreReleaseSuffix + */ + private $preReleaseSuffix; + + /** + * @var string + */ + private $versionString = ''; + + /** + * @param string $versionString + */ + public function __construct($versionString) { + $this->ensureVersionStringIsValid($versionString); + + $this->versionString = $versionString; + } + + /** + * @return PreReleaseSuffix + */ + public function getPreReleaseSuffix() { + return $this->preReleaseSuffix; + } + + /** + * @return string + */ + public function getVersionString() { + return $this->versionString; + } + + /** + * @return bool + */ + public function hasPreReleaseSuffix() { + return $this->preReleaseSuffix !== null; + } + + /** + * @param Version $version + * + * @return bool + */ + public function isGreaterThan(Version $version) { + if ($version->getMajor()->getValue() > $this->getMajor()->getValue()) { + return false; + } + + if ($version->getMajor()->getValue() < $this->getMajor()->getValue()) { + return true; + } + + if ($version->getMinor()->getValue() > $this->getMinor()->getValue()) { + return false; + } + + if ($version->getMinor()->getValue() < $this->getMinor()->getValue()) { + return true; + } + + if ($version->getPatch()->getValue() > $this->getPatch()->getValue()) { + return false; + } + + if ($version->getPatch()->getValue() < $this->getPatch()->getValue()) { + return true; + } + + if (!$version->hasPreReleaseSuffix() && !$this->hasPreReleaseSuffix()) { + return false; + } + + if ($version->hasPreReleaseSuffix() && !$this->hasPreReleaseSuffix()) { + return true; + } + + if (!$version->hasPreReleaseSuffix() && $this->hasPreReleaseSuffix()) { + return false; + } + + return $this->getPreReleaseSuffix()->isGreaterThan($version->getPreReleaseSuffix()); + } + + /** + * @return VersionNumber + */ + public function getMajor() { + return $this->major; + } + + /** + * @return VersionNumber + */ + public function getMinor() { + return $this->minor; + } + + /** + * @return VersionNumber + */ + public function getPatch() { + return $this->patch; + } + + /** + * @param array $matches + */ + private function parseVersion(array $matches) { + $this->major = new VersionNumber($matches['Major']); + $this->minor = new VersionNumber($matches['Minor']); + $this->patch = isset($matches['Patch']) ? new VersionNumber($matches['Patch']) : new VersionNumber(null); + + if (isset($matches['PreReleaseSuffix'])) { + $this->preReleaseSuffix = new PreReleaseSuffix($matches['PreReleaseSuffix']); + } + } + + /** + * @param string $version + * + * @throws InvalidVersionException + */ + private function ensureVersionStringIsValid($version) { + $regex = '/^v? + (?(0|(?:[1-9][0-9]*))) + \\. + (?(0|(?:[1-9][0-9]*))) + (\\. + (?(0|(?:[1-9][0-9]*))) + )? + (?: + - + (?(?:(dev|beta|b|RC|alpha|a|patch|p)\.?\d*)) + )? + $/x'; + + if (preg_match($regex, $version, $matches) !== 1) { + throw new InvalidVersionException( + sprintf("Version string '%s' does not follow SemVer semantics", $version) + ); + } + + $this->parseVersion($matches); + } +} diff --git a/vendor/phar-io/version/src/VersionConstraintParser.php b/vendor/phar-io/version/src/VersionConstraintParser.php new file mode 100644 index 00000000..ed468438 --- /dev/null +++ b/vendor/phar-io/version/src/VersionConstraintParser.php @@ -0,0 +1,122 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +class VersionConstraintParser { + /** + * @param string $value + * + * @return VersionConstraint + * + * @throws UnsupportedVersionConstraintException + */ + public function parse($value) { + + if (strpos($value, '||') !== false) { + return $this->handleOrGroup($value); + } + + if (!preg_match('/^[\^~\*]?[\d.\*]+(?:-.*)?$/', $value)) { + throw new UnsupportedVersionConstraintException( + sprintf('Version constraint %s is not supported.', $value) + ); + } + + switch ($value[0]) { + case '~': + return $this->handleTildeOperator($value); + case '^': + return $this->handleCaretOperator($value); + } + + $version = new VersionConstraintValue($value); + + if ($version->getMajor()->isAny()) { + return new AnyVersionConstraint(); + } + + if ($version->getMinor()->isAny()) { + return new SpecificMajorVersionConstraint( + $version->getVersionString(), + $version->getMajor()->getValue() + ); + } + + if ($version->getPatch()->isAny()) { + return new SpecificMajorAndMinorVersionConstraint( + $version->getVersionString(), + $version->getMajor()->getValue(), + $version->getMinor()->getValue() + ); + } + + return new ExactVersionConstraint($version->getVersionString()); + } + + /** + * @param $value + * + * @return OrVersionConstraintGroup + */ + private function handleOrGroup($value) { + $constraints = []; + + foreach (explode('||', $value) as $groupSegment) { + $constraints[] = $this->parse(trim($groupSegment)); + } + + return new OrVersionConstraintGroup($value, $constraints); + } + + /** + * @param string $value + * + * @return AndVersionConstraintGroup + */ + private function handleTildeOperator($value) { + $version = new Version(substr($value, 1)); + $constraints = [ + new GreaterThanOrEqualToVersionConstraint($value, $version) + ]; + + if ($version->getPatch()->isAny()) { + $constraints[] = new SpecificMajorVersionConstraint( + $value, + $version->getMajor()->getValue() + ); + } else { + $constraints[] = new SpecificMajorAndMinorVersionConstraint( + $value, + $version->getMajor()->getValue(), + $version->getMinor()->getValue() + ); + } + + return new AndVersionConstraintGroup($value, $constraints); + } + + /** + * @param string $value + * + * @return AndVersionConstraintGroup + */ + private function handleCaretOperator($value) { + $version = new Version(substr($value, 1)); + + return new AndVersionConstraintGroup( + $value, + [ + new GreaterThanOrEqualToVersionConstraint($value, $version), + new SpecificMajorVersionConstraint($value, $version->getMajor()->getValue()) + ] + ); + } +} diff --git a/vendor/phar-io/version/src/VersionConstraintValue.php b/vendor/phar-io/version/src/VersionConstraintValue.php new file mode 100644 index 00000000..8c975b8a --- /dev/null +++ b/vendor/phar-io/version/src/VersionConstraintValue.php @@ -0,0 +1,123 @@ +versionString = $versionString; + + $this->parseVersion($versionString); + } + + /** + * @return string + */ + public function getLabel() { + return $this->label; + } + + /** + * @return string + */ + public function getBuildMetaData() { + return $this->buildMetaData; + } + + /** + * @return string + */ + public function getVersionString() { + return $this->versionString; + } + + /** + * @return VersionNumber + */ + public function getMajor() { + return $this->major; + } + + /** + * @return VersionNumber + */ + public function getMinor() { + return $this->minor; + } + + /** + * @return VersionNumber + */ + public function getPatch() { + return $this->patch; + } + + /** + * @param $versionString + */ + private function parseVersion($versionString) { + $this->extractBuildMetaData($versionString); + $this->extractLabel($versionString); + + $versionSegments = explode('.', $versionString); + $this->major = new VersionNumber($versionSegments[0]); + + $minorValue = isset($versionSegments[1]) ? $versionSegments[1] : null; + $patchValue = isset($versionSegments[2]) ? $versionSegments[2] : null; + + $this->minor = new VersionNumber($minorValue); + $this->patch = new VersionNumber($patchValue); + } + + /** + * @param string $versionString + */ + private function extractBuildMetaData(&$versionString) { + if (preg_match('/\+(.*)/', $versionString, $matches) == 1) { + $this->buildMetaData = $matches[1]; + $versionString = str_replace($matches[0], '', $versionString); + } + } + + /** + * @param string $versionString + */ + private function extractLabel(&$versionString) { + if (preg_match('/\-(.*)/', $versionString, $matches) == 1) { + $this->label = $matches[1]; + $versionString = str_replace($matches[0], '', $versionString); + } + } +} diff --git a/vendor/phar-io/version/src/VersionNumber.php b/vendor/phar-io/version/src/VersionNumber.php new file mode 100644 index 00000000..ab512ed1 --- /dev/null +++ b/vendor/phar-io/version/src/VersionNumber.php @@ -0,0 +1,41 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +class VersionNumber { + /** + * @var int + */ + private $value; + + /** + * @param mixed $value + */ + public function __construct($value) { + if (is_numeric($value)) { + $this->value = $value; + } + } + + /** + * @return bool + */ + public function isAny() { + return $this->value === null; + } + + /** + * @return int + */ + public function getValue() { + return $this->value; + } +} diff --git a/vendor/phar-io/version/src/constraints/AbstractVersionConstraint.php b/vendor/phar-io/version/src/constraints/AbstractVersionConstraint.php new file mode 100644 index 00000000..b732dbca --- /dev/null +++ b/vendor/phar-io/version/src/constraints/AbstractVersionConstraint.php @@ -0,0 +1,32 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +abstract class AbstractVersionConstraint implements VersionConstraint { + /** + * @var string + */ + private $originalValue = ''; + + /** + * @param string $originalValue + */ + public function __construct($originalValue) { + $this->originalValue = $originalValue; + } + + /** + * @return string + */ + public function asString() { + return $this->originalValue; + } +} diff --git a/vendor/phar-io/version/src/constraints/AndVersionConstraintGroup.php b/vendor/phar-io/version/src/constraints/AndVersionConstraintGroup.php new file mode 100644 index 00000000..d9efeef7 --- /dev/null +++ b/vendor/phar-io/version/src/constraints/AndVersionConstraintGroup.php @@ -0,0 +1,43 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +class AndVersionConstraintGroup extends AbstractVersionConstraint { + /** + * @var VersionConstraint[] + */ + private $constraints = []; + + /** + * @param string $originalValue + * @param VersionConstraint[] $constraints + */ + public function __construct($originalValue, array $constraints) { + parent::__construct($originalValue); + + $this->constraints = $constraints; + } + + /** + * @param Version $version + * + * @return bool + */ + public function complies(Version $version) { + foreach ($this->constraints as $constraint) { + if (!$constraint->complies($version)) { + return false; + } + } + + return true; + } +} diff --git a/vendor/phar-io/version/src/constraints/AnyVersionConstraint.php b/vendor/phar-io/version/src/constraints/AnyVersionConstraint.php new file mode 100644 index 00000000..13ca2efc --- /dev/null +++ b/vendor/phar-io/version/src/constraints/AnyVersionConstraint.php @@ -0,0 +1,29 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +class AnyVersionConstraint implements VersionConstraint { + /** + * @param Version $version + * + * @return bool + */ + public function complies(Version $version) { + return true; + } + + /** + * @return string + */ + public function asString() { + return '*'; + } +} diff --git a/vendor/phar-io/version/src/constraints/ExactVersionConstraint.php b/vendor/phar-io/version/src/constraints/ExactVersionConstraint.php new file mode 100644 index 00000000..b2141172 --- /dev/null +++ b/vendor/phar-io/version/src/constraints/ExactVersionConstraint.php @@ -0,0 +1,22 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +class ExactVersionConstraint extends AbstractVersionConstraint { + /** + * @param Version $version + * + * @return bool + */ + public function complies(Version $version) { + return $this->asString() == $version->getVersionString(); + } +} diff --git a/vendor/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php b/vendor/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php new file mode 100644 index 00000000..47039a89 --- /dev/null +++ b/vendor/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php @@ -0,0 +1,38 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +class GreaterThanOrEqualToVersionConstraint extends AbstractVersionConstraint { + /** + * @var Version + */ + private $minimalVersion; + + /** + * @param string $originalValue + * @param Version $minimalVersion + */ + public function __construct($originalValue, Version $minimalVersion) { + parent::__construct($originalValue); + + $this->minimalVersion = $minimalVersion; + } + + /** + * @param Version $version + * + * @return bool + */ + public function complies(Version $version) { + return $version->getVersionString() == $this->minimalVersion->getVersionString() + || $version->isGreaterThan($this->minimalVersion); + } +} diff --git a/vendor/phar-io/version/src/constraints/OrVersionConstraintGroup.php b/vendor/phar-io/version/src/constraints/OrVersionConstraintGroup.php new file mode 100644 index 00000000..274407f8 --- /dev/null +++ b/vendor/phar-io/version/src/constraints/OrVersionConstraintGroup.php @@ -0,0 +1,43 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +class OrVersionConstraintGroup extends AbstractVersionConstraint { + /** + * @var VersionConstraint[] + */ + private $constraints = []; + + /** + * @param string $originalValue + * @param VersionConstraint[] $constraints + */ + public function __construct($originalValue, array $constraints) { + parent::__construct($originalValue); + + $this->constraints = $constraints; + } + + /** + * @param Version $version + * + * @return bool + */ + public function complies(Version $version) { + foreach ($this->constraints as $constraint) { + if ($constraint->complies($version)) { + return true; + } + } + + return false; + } +} diff --git a/vendor/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php b/vendor/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php new file mode 100644 index 00000000..3d589057 --- /dev/null +++ b/vendor/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php @@ -0,0 +1,48 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +class SpecificMajorAndMinorVersionConstraint extends AbstractVersionConstraint { + /** + * @var int + */ + private $major = 0; + + /** + * @var int + */ + private $minor = 0; + + /** + * @param string $originalValue + * @param int $major + * @param int $minor + */ + public function __construct($originalValue, $major, $minor) { + parent::__construct($originalValue); + + $this->major = $major; + $this->minor = $minor; + } + + /** + * @param Version $version + * + * @return bool + */ + public function complies(Version $version) { + if ($version->getMajor()->getValue() != $this->major) { + return false; + } + + return $version->getMinor()->getValue() == $this->minor; + } +} diff --git a/vendor/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php b/vendor/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php new file mode 100644 index 00000000..bbac47b8 --- /dev/null +++ b/vendor/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php @@ -0,0 +1,37 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +class SpecificMajorVersionConstraint extends AbstractVersionConstraint { + /** + * @var int + */ + private $major = 0; + + /** + * @param string $originalValue + * @param int $major + */ + public function __construct($originalValue, $major) { + parent::__construct($originalValue); + + $this->major = $major; + } + + /** + * @param Version $version + * + * @return bool + */ + public function complies(Version $version) { + return $version->getMajor()->getValue() == $this->major; + } +} diff --git a/vendor/phar-io/version/src/constraints/VersionConstraint.php b/vendor/phar-io/version/src/constraints/VersionConstraint.php new file mode 100644 index 00000000..9558163f --- /dev/null +++ b/vendor/phar-io/version/src/constraints/VersionConstraint.php @@ -0,0 +1,26 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +interface VersionConstraint { + /** + * @param Version $version + * + * @return bool + */ + public function complies(Version $version); + + /** + * @return string + */ + public function asString(); + +} diff --git a/vendor/phar-io/version/src/exceptions/Exception.php b/vendor/phar-io/version/src/exceptions/Exception.php new file mode 100644 index 00000000..b99e4dd4 --- /dev/null +++ b/vendor/phar-io/version/src/exceptions/Exception.php @@ -0,0 +1,14 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +interface Exception { +} diff --git a/vendor/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php b/vendor/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php new file mode 100644 index 00000000..225fe715 --- /dev/null +++ b/vendor/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php @@ -0,0 +1,7 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +final class UnsupportedVersionConstraintException extends \RuntimeException implements Exception { +} diff --git a/vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php b/vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php new file mode 100644 index 00000000..f3e1ba81 --- /dev/null +++ b/vendor/phar-io/version/tests/Integration/VersionConstraintParserTest.php @@ -0,0 +1,146 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Version\VersionConstraintParser + */ +class VersionConstraintParserTest extends TestCase { + /** + * @dataProvider versionStringProvider + * + * @param string $versionString + * @param VersionConstraint $expectedConstraint + */ + public function testReturnsExpectedConstraint($versionString, VersionConstraint $expectedConstraint) { + $parser = new VersionConstraintParser; + + $this->assertEquals($expectedConstraint, $parser->parse($versionString)); + } + + /** + * @dataProvider unsupportedVersionStringProvider + * + * @param string $versionString + */ + public function testThrowsExceptionIfVersionStringIsNotSupported($versionString) { + $parser = new VersionConstraintParser; + + $this->expectException(UnsupportedVersionConstraintException::class); + + $parser->parse($versionString); + } + + /** + * @return array + */ + public function versionStringProvider() { + return [ + ['1.0.2', new ExactVersionConstraint('1.0.2')], + [ + '~4.6', + new AndVersionConstraintGroup( + '~4.6', + [ + new GreaterThanOrEqualToVersionConstraint('~4.6', new Version('4.6')), + new SpecificMajorVersionConstraint('~4.6', 4) + ] + ) + ], + [ + '~4.6.2', + new AndVersionConstraintGroup( + '~4.6.2', + [ + new GreaterThanOrEqualToVersionConstraint('~4.6.2', new Version('4.6.2')), + new SpecificMajorAndMinorVersionConstraint('~4.6.2', 4, 6) + ] + ) + ], + [ + '^2.6.1', + new AndVersionConstraintGroup( + '^2.6.1', + [ + new GreaterThanOrEqualToVersionConstraint('^2.6.1', new Version('2.6.1')), + new SpecificMajorVersionConstraint('^2.6.1', 2) + ] + ) + ], + ['5.1.*', new SpecificMajorAndMinorVersionConstraint('5.1.*', 5, 1)], + ['5.*', new SpecificMajorVersionConstraint('5.*', 5)], + ['*', new AnyVersionConstraint()], + [ + '1.0.2 || 1.0.5', + new OrVersionConstraintGroup( + '1.0.2 || 1.0.5', + [ + new ExactVersionConstraint('1.0.2'), + new ExactVersionConstraint('1.0.5') + ] + ) + ], + [ + '^5.6 || ^7.0', + new OrVersionConstraintGroup( + '^5.6 || ^7.0', + [ + new AndVersionConstraintGroup( + '^5.6', [ + new GreaterThanOrEqualToVersionConstraint('^5.6', new Version('5.6')), + new SpecificMajorVersionConstraint('^5.6', 5) + ] + ), + new AndVersionConstraintGroup( + '^7.0', [ + new GreaterThanOrEqualToVersionConstraint('^7.0', new Version('7.0')), + new SpecificMajorVersionConstraint('^7.0', 7) + ] + ) + ] + ) + ], + ['7.0.28-1', new ExactVersionConstraint('7.0.28-1')], + [ + '^3.0.0-alpha1', + new AndVersionConstraintGroup( + '^3.0.0-alpha1', + [ + new GreaterThanOrEqualToVersionConstraint('^3.0.0-alpha1', new Version('3.0.0-alpha1')), + new SpecificMajorVersionConstraint('^3.0.0-alpha1', 3) + ] + ) + ], + [ + '^3.0.0-alpha.1', + new AndVersionConstraintGroup( + '^3.0.0-alpha.1', + [ + new GreaterThanOrEqualToVersionConstraint('^3.0.0-alpha.1', new Version('3.0.0-alpha.1')), + new SpecificMajorVersionConstraint('^3.0.0-alpha.1', 3) + ] + ) + ] + ]; + } + + public function unsupportedVersionStringProvider() { + return [ + ['foo'], + ['+1.0.2'], + ['>=2.0'], + ['^5.6 || >= 7.0'], + ['2.0 || foo'] + ]; + } +} diff --git a/vendor/phar-io/version/tests/Unit/AbstractVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/AbstractVersionConstraintTest.php new file mode 100644 index 00000000..c6185669 --- /dev/null +++ b/vendor/phar-io/version/tests/Unit/AbstractVersionConstraintTest.php @@ -0,0 +1,25 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Version\AbstractVersionConstraint + */ +class AbstractVersionConstraintTest extends TestCase { + public function testAsString() { + /** @var AbstractVersionConstraint|\PHPUnit_Framework_MockObject_MockObject $constraint */ + $constraint = $this->getMockForAbstractClass(AbstractVersionConstraint::class, ['foo']); + + $this->assertSame('foo', $constraint->asString()); + } +} diff --git a/vendor/phar-io/version/tests/Unit/AndVersionConstraintGroupTest.php b/vendor/phar-io/version/tests/Unit/AndVersionConstraintGroupTest.php new file mode 100644 index 00000000..c2c5ec0f --- /dev/null +++ b/vendor/phar-io/version/tests/Unit/AndVersionConstraintGroupTest.php @@ -0,0 +1,52 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Version\AndVersionConstraintGroup + */ +class AndVersionConstraintGroupTest extends TestCase { + public function testReturnsFalseIfOneConstraintReturnsFalse() { + $firstConstraint = $this->createMock(VersionConstraint::class); + $secondConstraint = $this->createMock(VersionConstraint::class); + + $firstConstraint->expects($this->once()) + ->method('complies') + ->will($this->returnValue(true)); + + $secondConstraint->expects($this->once()) + ->method('complies') + ->will($this->returnValue(false)); + + $group = new AndVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); + + $this->assertFalse($group->complies(new Version('1.0.0'))); + } + + public function testReturnsTrueIfAllConstraintsReturnsTrue() { + $firstConstraint = $this->createMock(VersionConstraint::class); + $secondConstraint = $this->createMock(VersionConstraint::class); + + $firstConstraint->expects($this->once()) + ->method('complies') + ->will($this->returnValue(true)); + + $secondConstraint->expects($this->once()) + ->method('complies') + ->will($this->returnValue(true)); + + $group = new AndVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); + + $this->assertTrue($group->complies(new Version('1.0.0'))); + } +} diff --git a/vendor/phar-io/version/tests/Unit/AnyVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/AnyVersionConstraintTest.php new file mode 100644 index 00000000..6883099d --- /dev/null +++ b/vendor/phar-io/version/tests/Unit/AnyVersionConstraintTest.php @@ -0,0 +1,41 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Version\AnyVersionConstraint + */ +class AnyVersionConstraintTest extends TestCase { + public function versionProvider() { + return [ + [new Version('1.0.2')], + [new Version('4.8')], + [new Version('0.1.1-dev')] + ]; + } + + /** + * @dataProvider versionProvider + * + * @param Version $version + */ + public function testReturnsTrue(Version $version) { + $constraint = new AnyVersionConstraint; + + $this->assertTrue($constraint->complies($version)); + } + + public function testAsString() { + $this->assertSame('*', (new AnyVersionConstraint())->asString()); + } +} diff --git a/vendor/phar-io/version/tests/Unit/ExactVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/ExactVersionConstraintTest.php new file mode 100644 index 00000000..ebba0241 --- /dev/null +++ b/vendor/phar-io/version/tests/Unit/ExactVersionConstraintTest.php @@ -0,0 +1,58 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Version\ExactVersionConstraint + */ +class ExactVersionConstraintTest extends TestCase { + public function compliantVersionProvider() { + return [ + ['1.0.2', new Version('1.0.2')], + ['4.8.9', new Version('4.8.9')], + ['4.8', new Version('4.8')], + ]; + } + + public function nonCompliantVersionProvider() { + return [ + ['1.0.2', new Version('1.0.3')], + ['4.8.9', new Version('4.7.9')], + ['4.8', new Version('4.8.5')], + ]; + } + + /** + * @dataProvider compliantVersionProvider + * + * @param string $constraintValue + * @param Version $version + */ + public function testReturnsTrueForCompliantVersion($constraintValue, Version $version) { + $constraint = new ExactVersionConstraint($constraintValue); + + $this->assertTrue($constraint->complies($version)); + } + + /** + * @dataProvider nonCompliantVersionProvider + * + * @param string $constraintValue + * @param Version $version + */ + public function testReturnsFalseForNonCompliantVersion($constraintValue, Version $version) { + $constraint = new ExactVersionConstraint($constraintValue); + + $this->assertFalse($constraint->complies($version)); + } +} diff --git a/vendor/phar-io/version/tests/Unit/GreaterThanOrEqualToVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/GreaterThanOrEqualToVersionConstraintTest.php new file mode 100644 index 00000000..3cbb11d7 --- /dev/null +++ b/vendor/phar-io/version/tests/Unit/GreaterThanOrEqualToVersionConstraintTest.php @@ -0,0 +1,47 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Version\GreaterThanOrEqualToVersionConstraint + */ +class GreaterThanOrEqualToVersionConstraintTest extends TestCase { + public function versionProvider() { + return [ + // compliant versions + [new Version('1.0.2'), new Version('1.0.2'), true], + [new Version('1.0.2'), new Version('1.0.3'), true], + [new Version('1.0.2'), new Version('1.1.1'), true], + [new Version('1.0.2'), new Version('2.0.0'), true], + [new Version('1.0.2'), new Version('1.0.3'), true], + // non-compliant versions + [new Version('1.0.2'), new Version('1.0.1'), false], + [new Version('1.9.8'), new Version('0.9.9'), false], + [new Version('2.3.1'), new Version('2.2.3'), false], + [new Version('3.0.2'), new Version('2.9.9'), false], + ]; + } + + /** + * @dataProvider versionProvider + * + * @param Version $constraintVersion + * @param Version $version + * @param bool $expectedResult + */ + public function testReturnsTrueForCompliantVersions(Version $constraintVersion, Version $version, $expectedResult) { + $constraint = new GreaterThanOrEqualToVersionConstraint('foo', $constraintVersion); + + $this->assertSame($expectedResult, $constraint->complies($version)); + } +} diff --git a/vendor/phar-io/version/tests/Unit/OrVersionConstraintGroupTest.php b/vendor/phar-io/version/tests/Unit/OrVersionConstraintGroupTest.php new file mode 100644 index 00000000..088d557b --- /dev/null +++ b/vendor/phar-io/version/tests/Unit/OrVersionConstraintGroupTest.php @@ -0,0 +1,65 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Version\OrVersionConstraintGroup + */ +class OrVersionConstraintGroupTest extends TestCase { + public function testReturnsTrueIfOneConstraintReturnsFalse() { + $firstConstraint = $this->createMock(VersionConstraint::class); + $secondConstraint = $this->createMock(VersionConstraint::class); + + $firstConstraint->expects($this->once()) + ->method('complies') + ->will($this->returnValue(false)); + + $secondConstraint->expects($this->once()) + ->method('complies') + ->will($this->returnValue(true)); + + $group = new OrVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); + + $this->assertTrue($group->complies(new Version('1.0.0'))); + } + + public function testReturnsTrueIfAllConstraintsReturnsTrue() { + $firstConstraint = $this->createMock(VersionConstraint::class); + $secondConstraint = $this->createMock(VersionConstraint::class); + + $firstConstraint->expects($this->once()) + ->method('complies') + ->will($this->returnValue(true)); + + $group = new OrVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); + + $this->assertTrue($group->complies(new Version('1.0.0'))); + } + + public function testReturnsFalseIfAllConstraintsReturnsFalse() { + $firstConstraint = $this->createMock(VersionConstraint::class); + $secondConstraint = $this->createMock(VersionConstraint::class); + + $firstConstraint->expects($this->once()) + ->method('complies') + ->will($this->returnValue(false)); + + $secondConstraint->expects($this->once()) + ->method('complies') + ->will($this->returnValue(false)); + + $group = new OrVersionConstraintGroup('foo', [$firstConstraint, $secondConstraint]); + + $this->assertFalse($group->complies(new Version('1.0.0'))); + } +} diff --git a/vendor/phar-io/version/tests/Unit/PreReleaseSuffixTest.php b/vendor/phar-io/version/tests/Unit/PreReleaseSuffixTest.php new file mode 100644 index 00000000..e09a66d3 --- /dev/null +++ b/vendor/phar-io/version/tests/Unit/PreReleaseSuffixTest.php @@ -0,0 +1,46 @@ +assertSame($expectedResult, $leftSuffix->isGreaterThan($rightSuffix)); + } + + public function greaterThanProvider() { + return [ + ['alpha1', 'alpha2', false], + ['alpha2', 'alpha1', true], + ['beta1', 'alpha3', true], + ['b1', 'alpha3', true], + ['b1', 'a3', true], + ['dev1', 'alpha2', false], + ['dev1', 'alpha2', false], + ['alpha2', 'dev5', true], + ['rc1', 'beta2', true], + ['patch5', 'rc7', true], + ['alpha1', 'alpha.2', false], + ['alpha.3', 'alpha2', true], + ['alpha.3', 'alpha.2', true], + ]; + } +} diff --git a/vendor/phar-io/version/tests/Unit/SpecificMajorAndMinorVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/SpecificMajorAndMinorVersionConstraintTest.php new file mode 100644 index 00000000..6025889e --- /dev/null +++ b/vendor/phar-io/version/tests/Unit/SpecificMajorAndMinorVersionConstraintTest.php @@ -0,0 +1,45 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Version\SpecificMajorAndMinorVersionConstraint + */ +class SpecificMajorAndMinorVersionConstraintTest extends TestCase { + public function versionProvider() { + return [ + // compliant versions + [1, 0, new Version('1.0.2'), true], + [1, 0, new Version('1.0.3'), true], + [1, 1, new Version('1.1.1'), true], + // non-compliant versions + [2, 9, new Version('0.9.9'), false], + [3, 2, new Version('2.2.3'), false], + [2, 8, new Version('2.9.9'), false], + ]; + } + + /** + * @dataProvider versionProvider + * + * @param int $major + * @param int $minor + * @param Version $version + * @param bool $expectedResult + */ + public function testReturnsTrueForCompliantVersions($major, $minor, Version $version, $expectedResult) { + $constraint = new SpecificMajorAndMinorVersionConstraint('foo', $major, $minor); + + $this->assertSame($expectedResult, $constraint->complies($version)); + } +} diff --git a/vendor/phar-io/version/tests/Unit/SpecificMajorVersionConstraintTest.php b/vendor/phar-io/version/tests/Unit/SpecificMajorVersionConstraintTest.php new file mode 100644 index 00000000..6dc3b718 --- /dev/null +++ b/vendor/phar-io/version/tests/Unit/SpecificMajorVersionConstraintTest.php @@ -0,0 +1,44 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Version\SpecificMajorVersionConstraint + */ +class SpecificMajorVersionConstraintTest extends TestCase { + public function versionProvider() { + return [ + // compliant versions + [1, new Version('1.0.2'), true], + [1, new Version('1.0.3'), true], + [1, new Version('1.1.1'), true], + // non-compliant versions + [2, new Version('0.9.9'), false], + [3, new Version('2.2.3'), false], + [3, new Version('2.9.9'), false], + ]; + } + + /** + * @dataProvider versionProvider + * + * @param int $major + * @param Version $version + * @param bool $expectedResult + */ + public function testReturnsTrueForCompliantVersions($major, Version $version, $expectedResult) { + $constraint = new SpecificMajorVersionConstraint('foo', $major); + + $this->assertSame($expectedResult, $constraint->complies($version)); + } +} diff --git a/vendor/phar-io/version/tests/Unit/VersionTest.php b/vendor/phar-io/version/tests/Unit/VersionTest.php new file mode 100644 index 00000000..6b4897a9 --- /dev/null +++ b/vendor/phar-io/version/tests/Unit/VersionTest.php @@ -0,0 +1,113 @@ +, Sebastian Heuer , Sebastian Bergmann + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace PharIo\Version; + +use PHPUnit\Framework\TestCase; + +/** + * @covers \PharIo\Version\Version + */ +class VersionTest extends TestCase { + /** + * @dataProvider versionProvider + * + * @param string $versionString + * @param string $expectedMajor + * @param string $expectedMinor + * @param string $expectedPatch + * @param string $expectedPreReleaseValue + * @param int $expectedReleaseCount + */ + public function testParsesVersionNumbers( + $versionString, + $expectedMajor, + $expectedMinor, + $expectedPatch, + $expectedPreReleaseValue = '', + $expectedReleaseCount = 0 + ) { + $version = new Version($versionString); + + $this->assertSame($expectedMajor, $version->getMajor()->getValue()); + $this->assertSame($expectedMinor, $version->getMinor()->getValue()); + $this->assertSame($expectedPatch, $version->getPatch()->getValue()); + if ($expectedPreReleaseValue !== '') { + $this->assertSame($expectedPreReleaseValue, $version->getPreReleaseSuffix()->getValue()); + } + if ($expectedReleaseCount !== 0) { + $this->assertSame($expectedReleaseCount, $version->getPreReleaseSuffix()->getNumber()); + } + + $this->assertSame($versionString, $version->getVersionString()); + } + + public function versionProvider() { + return [ + ['0.0.1', '0', '0', '1'], + ['0.1.2', '0', '1', '2'], + ['1.0.0-alpha', '1', '0', '0', 'alpha'], + ['3.4.12-dev3', '3', '4', '12', 'dev', 3], + ]; + } + + /** + * @dataProvider versionGreaterThanProvider + * + * @param Version $versionA + * @param Version $versionB + * @param bool $expectedResult + */ + public function testIsGreaterThan(Version $versionA, Version $versionB, $expectedResult) { + $this->assertSame($expectedResult, $versionA->isGreaterThan($versionB)); + } + + /** + * @return array + */ + public function versionGreaterThanProvider() { + return [ + [new Version('1.0.0'), new Version('1.0.1'), false], + [new Version('1.0.1'), new Version('1.0.0'), true], + [new Version('1.1.0'), new Version('1.0.1'), true], + [new Version('1.1.0'), new Version('2.0.1'), false], + [new Version('1.1.0'), new Version('1.1.0'), false], + [new Version('2.5.8'), new Version('1.6.8'), true], + [new Version('2.5.8'), new Version('2.6.8'), false], + [new Version('2.5.8'), new Version('3.1.2'), false], + [new Version('3.0.0-alpha1'), new Version('3.0.0-alpha2'), false], + [new Version('3.0.0-alpha2'), new Version('3.0.0-alpha1'), true], + [new Version('3.0.0-alpha.1'), new Version('3.0.0'), false], + [new Version('3.0.0'), new Version('3.0.0-alpha.1'), true], + ]; + } + + /** + * @dataProvider invalidVersionStringProvider + * + * @param string $versionString + */ + public function testThrowsExceptionIfVersionStringDoesNotFollowSemVer($versionString) { + $this->expectException(InvalidVersionException::class); + new Version($versionString); + } + + /** + * @return array + */ + public function invalidVersionStringProvider() { + return [ + ['foo'], + ['0.0.1-dev+ABC', '0', '0', '1', 'dev', 'ABC'], + ['1.0.0-x.7.z.92', '1', '0', '0', 'x.7.z.92'] + ]; + } + +} diff --git a/vendor/phpdocumentor/reflection-common/.github/dependabot.yml b/vendor/phpdocumentor/reflection-common/.github/dependabot.yml new file mode 100644 index 00000000..c630ffa6 --- /dev/null +++ b/vendor/phpdocumentor/reflection-common/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: +- package-ecosystem: composer + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 diff --git a/vendor/phpdocumentor/reflection-common/.github/workflows/push.yml b/vendor/phpdocumentor/reflection-common/.github/workflows/push.yml new file mode 100644 index 00000000..484410e9 --- /dev/null +++ b/vendor/phpdocumentor/reflection-common/.github/workflows/push.yml @@ -0,0 +1,223 @@ +on: + push: + branches: + - 2.x + pull_request: +name: Qa workflow +jobs: + setup: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + + - name: Restore/cache tools folder + uses: actions/cache@v1 + with: + path: tools + key: all-tools-${{ github.sha }} + restore-keys: | + all-tools-${{ github.sha }}- + all-tools- + + - name: composer + uses: docker://composer + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + args: install --no-interaction --prefer-dist --optimize-autoloader + + - name: Install phive + run: make install-phive + + - name: Install PHAR dependencies + run: tools/phive.phar --no-progress install --copy --trust-gpg-keys 4AA394086372C20A,8A03EA3B385DBAA1 --force-accept-unsigned + + phpunit-with-coverage: + runs-on: ubuntu-latest + name: Unit tests + needs: setup + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 7.2 + ini-values: memory_limit=2G, display_errors=On, error_reporting=-1 + coverage: pcov + + - name: Restore/cache tools folder + uses: actions/cache@v1 + with: + path: tools + key: all-tools-${{ github.sha }} + restore-keys: | + all-tools-${{ github.sha }}- + all-tools- + + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache composer dependencies + uses: actions/cache@v1 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ubuntu-latest-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ubuntu-latest-composer- + + - name: Install Composer dependencies + run: | + composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + + - name: Run PHPUnit + run: php tools/phpunit + + phpunit: + runs-on: ${{ matrix.operating-system }} + strategy: + matrix: + operating-system: + - ubuntu-latest + - windows-latest + - macOS-latest + php-versions: ['7.2', '7.3', '7.4', '8.0'] + name: Unit tests for PHP version ${{ matrix.php-versions }} on ${{ matrix.operating-system }} + needs: + - setup + - phpunit-with-coverage + steps: + - uses: actions/checkout@v2 + + - name: Restore/cache tools folder + uses: actions/cache@v1 + with: + path: tools + key: all-tools-${{ github.sha }} + restore-keys: | + all-tools-${{ github.sha }}- + all-tools- + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + ini-values: memory_limit=2G, display_errors=On, error_reporting=-1 + coverage: none + + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache composer dependencies + uses: actions/cache@v1 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + + - name: Install Composer dependencies + run: | + composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + + - name: Run PHPUnit + continue-on-error: true + run: php tools/phpunit + + codestyle: + runs-on: ubuntu-latest + needs: [setup, phpunit] + steps: + - uses: actions/checkout@v2 + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + - name: Code style check + uses: phpDocumentor/coding-standard@latest + with: + args: -s + + phpstan: + runs-on: ubuntu-latest + needs: [setup, phpunit] + steps: + - uses: actions/checkout@v2 + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + - name: PHPStan + uses: phpDocumentor/phpstan-ga@latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + args: analyse src --configuration phpstan.neon + + psalm: + runs-on: ubuntu-latest + needs: [setup, phpunit] + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 7.2 + ini-values: memory_limit=2G, display_errors=On, error_reporting=-1 + tools: psalm + coverage: none + + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache composer dependencies + uses: actions/cache@v1 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + + - name: Install Composer dependencies + run: | + composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + + - name: Psalm + run: psalm --output-format=github + + bc_check: + name: BC Check + runs-on: ubuntu-latest + needs: [setup, phpunit] + steps: + - uses: actions/checkout@v2 + - name: fetch tags + run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* + - name: Restore/cache vendor folder + uses: actions/cache@v1 + with: + path: vendor + key: all-build-${{ hashFiles('**/composer.lock') }} + restore-keys: | + all-build-${{ hashFiles('**/composer.lock') }} + all-build- + - name: Roave BC Check + uses: docker://nyholm/roave-bc-check-ga diff --git a/vendor/phpdocumentor/reflection-common/LICENSE b/vendor/phpdocumentor/reflection-common/LICENSE new file mode 100644 index 00000000..ed6926c1 --- /dev/null +++ b/vendor/phpdocumentor/reflection-common/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 phpDocumentor + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/vendor/phpdocumentor/reflection-common/README.md b/vendor/phpdocumentor/reflection-common/README.md new file mode 100644 index 00000000..70f830dc --- /dev/null +++ b/vendor/phpdocumentor/reflection-common/README.md @@ -0,0 +1,11 @@ +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +![Qa workflow](https://github.com/phpDocumentor/ReflectionCommon/workflows/Qa%20workflow/badge.svg) +[![Coveralls Coverage](https://img.shields.io/coveralls/github/phpDocumentor/ReflectionCommon.svg)](https://coveralls.io/github/phpDocumentor/ReflectionCommon?branch=master) +[![Scrutinizer Code Coverage](https://img.shields.io/scrutinizer/coverage/g/phpDocumentor/ReflectionCommon.svg)](https://scrutinizer-ci.com/g/phpDocumentor/ReflectionCommon/?branch=master) +[![Scrutinizer Code Quality](https://img.shields.io/scrutinizer/g/phpDocumentor/ReflectionCommon.svg)](https://scrutinizer-ci.com/g/phpDocumentor/ReflectionCommon/?branch=master) +[![Stable Version](https://img.shields.io/packagist/v/phpDocumentor/Reflection-Common.svg)](https://packagist.org/packages/phpDocumentor/Reflection-Common) +[![Unstable Version](https://img.shields.io/packagist/vpre/phpDocumentor/Reflection-Common.svg)](https://packagist.org/packages/phpDocumentor/Reflection-Common) + + +ReflectionCommon +================ diff --git a/vendor/phpdocumentor/reflection-common/composer.json b/vendor/phpdocumentor/reflection-common/composer.json new file mode 100644 index 00000000..4d128b49 --- /dev/null +++ b/vendor/phpdocumentor/reflection-common/composer.json @@ -0,0 +1,28 @@ +{ + "name": "phpdocumentor/reflection-common", + "keywords": ["phpdoc", "phpDocumentor", "reflection", "static analysis", "FQSEN"], + "homepage": "http://www.phpdoc.org", + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "license": "MIT", + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "require": { + "php": "^7.2 || ^8.0" + }, + "autoload" : { + "psr-4" : { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "require-dev": { + }, + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + } +} diff --git a/vendor/phpdocumentor/reflection-common/src/Element.php b/vendor/phpdocumentor/reflection-common/src/Element.php new file mode 100644 index 00000000..8923e4fb --- /dev/null +++ b/vendor/phpdocumentor/reflection-common/src/Element.php @@ -0,0 +1,30 @@ +fqsen = $fqsen; + + if (isset($matches[2])) { + $this->name = $matches[2]; + } else { + $matches = explode('\\', $fqsen); + $name = end($matches); + assert(is_string($name)); + $this->name = trim($name, '()'); + } + } + + /** + * converts this class to string. + */ + public function __toString() : string + { + return $this->fqsen; + } + + /** + * Returns the name of the element without path. + */ + public function getName() : string + { + return $this->name; + } +} diff --git a/vendor/phpdocumentor/reflection-common/src/Location.php b/vendor/phpdocumentor/reflection-common/src/Location.php new file mode 100644 index 00000000..177deede --- /dev/null +++ b/vendor/phpdocumentor/reflection-common/src/Location.php @@ -0,0 +1,53 @@ +lineNumber = $lineNumber; + $this->columnNumber = $columnNumber; + } + + /** + * Returns the line number that is covered by this location. + */ + public function getLineNumber() : int + { + return $this->lineNumber; + } + + /** + * Returns the column number (character position on a line) for this location object. + */ + public function getColumnNumber() : int + { + return $this->columnNumber; + } +} diff --git a/vendor/phpdocumentor/reflection-common/src/Project.php b/vendor/phpdocumentor/reflection-common/src/Project.php new file mode 100644 index 00000000..57839fd1 --- /dev/null +++ b/vendor/phpdocumentor/reflection-common/src/Project.php @@ -0,0 +1,25 @@ +create($docComment); +``` + +The `create` method will yield an object of type `\phpDocumentor\Reflection\DocBlock` +whose methods can be queried: + +```php +// Contains the summary for this DocBlock +$summary = $docblock->getSummary(); + +// Contains \phpDocumentor\Reflection\DocBlock\Description object +$description = $docblock->getDescription(); + +// You can either cast it to string +$description = (string) $docblock->getDescription(); + +// Or use the render method to get a string representation of the Description. +$description = $docblock->getDescription()->render(); +``` + +> For more examples it would be best to review the scripts in the [`/examples` folder](/examples). diff --git a/vendor/phpdocumentor/reflection-docblock/composer.json b/vendor/phpdocumentor/reflection-docblock/composer.json new file mode 100644 index 00000000..cf8f49d3 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/composer.json @@ -0,0 +1,57 @@ +{ + "name": "phpdocumentor/reflection-docblock", + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "type": "library", + "license": "MIT", + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "require": { + "php": "^7.4 || ^8.0", + "phpdocumentor/type-resolver": "^1.7", + "webmozart/assert": "^1.9.1", + "phpdocumentor/reflection-common": "^2.2", + "ext-filter": "*", + "phpstan/phpdoc-parser": "^1.7", + "doctrine/deprecations": "^1.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.5", + "phpunit/phpunit": "^9.5", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "vimeo/psalm": "^5.13" + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "autoload-dev": { + "psr-4": { + "phpDocumentor\\Reflection\\": ["tests/unit", "tests/integration"] + } + }, + "config": { + "platform": { + "php":"7.4.0" + }, + "allow-plugins": { + "phpstan/extension-installer": true + } + }, + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php new file mode 100644 index 00000000..90d8066d --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock.php @@ -0,0 +1,228 @@ +summary = $summary; + $this->description = $description ?: new DocBlock\Description(''); + foreach ($tags as $tag) { + $this->addTag($tag); + } + + $this->context = $context; + $this->location = $location; + + $this->isTemplateEnd = $isTemplateEnd; + $this->isTemplateStart = $isTemplateStart; + } + + public function getSummary(): string + { + return $this->summary; + } + + public function getDescription(): DocBlock\Description + { + return $this->description; + } + + /** + * Returns the current context. + */ + public function getContext(): ?Types\Context + { + return $this->context; + } + + /** + * Returns the current location. + */ + public function getLocation(): ?Location + { + return $this->location; + } + + /** + * Returns whether this DocBlock is the start of a Template section. + * + * A Docblock may serve as template for a series of subsequent DocBlocks. This is indicated by a special marker + * (`#@+`) that is appended directly after the opening `/**` of a DocBlock. + * + * An example of such an opening is: + * + * ``` + * /**#@+ + * * My DocBlock + * * / + * ``` + * + * The description and tags (not the summary!) are copied onto all subsequent DocBlocks and also applied to all + * elements that follow until another DocBlock is found that contains the closing marker (`#@-`). + * + * @see self::isTemplateEnd() for the check whether a closing marker was provided. + */ + public function isTemplateStart(): bool + { + return $this->isTemplateStart; + } + + /** + * Returns whether this DocBlock is the end of a Template section. + * + * @see self::isTemplateStart() for a more complete description of the Docblock Template functionality. + */ + public function isTemplateEnd(): bool + { + return $this->isTemplateEnd; + } + + /** + * Returns the tags for this DocBlock. + * + * @return Tag[] + */ + public function getTags(): array + { + return $this->tags; + } + + /** + * Returns an array of tags matching the given name. If no tags are found + * an empty array is returned. + * + * @param string $name String to search by. + * + * @return Tag[] + */ + public function getTagsByName(string $name): array + { + $result = []; + + foreach ($this->getTags() as $tag) { + if ($tag->getName() !== $name) { + continue; + } + + $result[] = $tag; + } + + return $result; + } + + /** + * Returns an array of tags with type matching the given name. If no tags are found + * an empty array is returned. + * + * @param string $name String to search by. + * + * @return TagWithType[] + */ + public function getTagsWithTypeByName(string $name): array + { + $result = []; + + foreach ($this->getTagsByName($name) as $tag) { + if (!$tag instanceof TagWithType) { + continue; + } + + $result[] = $tag; + } + + return $result; + } + + /** + * Checks if a tag of a certain type is present in this DocBlock. + * + * @param string $name Tag name to check for. + */ + public function hasTag(string $name): bool + { + foreach ($this->getTags() as $tag) { + if ($tag->getName() === $name) { + return true; + } + } + + return false; + } + + /** + * Remove a tag from this DocBlock. + * + * @param Tag $tagToRemove The tag to remove. + */ + public function removeTag(Tag $tagToRemove): void + { + foreach ($this->tags as $key => $tag) { + if ($tag === $tagToRemove) { + unset($this->tags[$key]); + break; + } + } + } + + /** + * Adds a tag to this DocBlock. + * + * @param Tag $tag The tag to add. + */ + private function addTag(Tag $tag): void + { + $this->tags[] = $tag; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php new file mode 100644 index 00000000..a188ae30 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Description.php @@ -0,0 +1,118 @@ +create('This is a {@see Description}', $context); + * + * The description factory will interpret the given body and create a body template and list of tags from them, and pass + * that onto the constructor if this class. + * + * > The $context variable is a class of type {@see \phpDocumentor\Reflection\Types\Context} and contains the namespace + * > and the namespace aliases that apply to this DocBlock. These are used by the Factory to resolve and expand partial + * > type names and FQSENs. + * + * If you do not want to use the DescriptionFactory you can pass a body template and tag listing like this: + * + * $description = new Description( + * 'This is a %1$s', + * [ new See(new Fqsen('\phpDocumentor\Reflection\DocBlock\Description')) ] + * ); + * + * It is generally recommended to use the Factory as that will also apply escaping rules, while the Description object + * is mainly responsible for rendering. + * + * @see DescriptionFactory to create a new Description. + * @see Tags\Formatter for the formatting of the body and tags. + */ +class Description +{ + private string $bodyTemplate; + + /** @var Tag[] */ + private array $tags; + + /** + * Initializes a Description with its body (template) and a listing of the tags used in the body template. + * + * @param Tag[] $tags + */ + public function __construct(string $bodyTemplate, array $tags = []) + { + $this->bodyTemplate = $bodyTemplate; + $this->tags = $tags; + } + + /** + * Returns the body template. + */ + public function getBodyTemplate(): string + { + return $this->bodyTemplate; + } + + /** + * Returns the tags for this DocBlock. + * + * @return Tag[] + */ + public function getTags(): array + { + return $this->tags; + } + + /** + * Renders this description as a string where the provided formatter will format the tags in the expected string + * format. + */ + public function render(?Formatter $formatter = null): string + { + if ($this->tags === []) { + return vsprintf($this->bodyTemplate, []); + } + + if ($formatter === null) { + $formatter = new PassthroughFormatter(); + } + + $tags = []; + foreach ($this->tags as $tag) { + $tags[] = '{' . $formatter->format($tag) . '}'; + } + + return vsprintf($this->bodyTemplate, $tags); + } + + /** + * Returns a plain string representation of this description. + */ + public function __toString(): string + { + return $this->render(); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php new file mode 100644 index 00000000..e7bc616d --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/DescriptionFactory.php @@ -0,0 +1,178 @@ +tagFactory = $tagFactory; + } + + /** + * Returns the parsed text of this description. + */ + public function create(string $contents, ?TypeContext $context = null): Description + { + $tokens = $this->lex($contents); + $count = count($tokens); + $tagCount = 0; + $tags = []; + + for ($i = 1; $i < $count; $i += 2) { + $tags[] = $this->tagFactory->create($tokens[$i], $context); + $tokens[$i] = '%' . ++$tagCount . '$s'; + } + + //In order to allow "literal" inline tags, the otherwise invalid + //sequence "{@}" is changed to "@", and "{}" is changed to "}". + //"%" is escaped to "%%" because of vsprintf. + //See unit tests for examples. + for ($i = 0; $i < $count; $i += 2) { + $tokens[$i] = str_replace(['{@}', '{}', '%'], ['@', '}', '%%'], $tokens[$i]); + } + + return new Description(implode('', $tokens), $tags); + } + + /** + * Strips the contents from superfluous whitespace and splits the description into a series of tokens. + * + * @return string[] A series of tokens of which the description text is composed. + */ + private function lex(string $contents): array + { + $contents = $this->removeSuperfluousStartingWhitespace($contents); + + // performance optimalization; if there is no inline tag, don't bother splitting it up. + if (strpos($contents, '{@') === false) { + return [$contents]; + } + + return Utils::pregSplit( + '/\{ + # "{@}" is not a valid inline tag. This ensures that we do not treat it as one, but treat it literally. + (?!@\}) + # We want to capture the whole tag line, but without the inline tag delimiters. + (\@ + # Match everything up to the next delimiter. + [^{}]* + # Nested inline tag content should not be captured, or it will appear in the result separately. + (?: + # Match nested inline tags. + (?: + # Because we did not catch the tag delimiters earlier, we must be explicit with them here. + # Notice that this also matches "{}", as a way to later introduce it as an escape sequence. + \{(?1)?\} + | + # Make sure we match hanging "{". + \{ + ) + # Match content after the nested inline tag. + [^{}]* + )* # If there are more inline tags, match them as well. We use "*" since there may not be any + # nested inline tags. + ) + \}/Sux', + $contents, + 0, + PREG_SPLIT_DELIM_CAPTURE + ); + } + + /** + * Removes the superfluous from a multi-line description. + * + * When a description has more than one line then it can happen that the second and subsequent lines have an + * additional indentation. This is commonly in use with tags like this: + * + * {@}since 1.1.0 This is an example + * description where we have an + * indentation in the second and + * subsequent lines. + * + * If we do not normalize the indentation then we have superfluous whitespace on the second and subsequent + * lines and this may cause rendering issues when, for example, using a Markdown converter. + */ + private function removeSuperfluousStartingWhitespace(string $contents): string + { + $lines = Utils::pregSplit("/\r\n?|\n/", $contents); + + // if there is only one line then we don't have lines with superfluous whitespace and + // can use the contents as-is + if (count($lines) <= 1) { + return $contents; + } + + // determine how many whitespace characters need to be stripped + $startingSpaceCount = 9999999; + for ($i = 1, $iMax = count($lines); $i < $iMax; ++$i) { + // lines with a no length do not count as they are not indented at all + if (trim($lines[$i]) === '') { + continue; + } + + // determine the number of prefixing spaces by checking the difference in line length before and after + // an ltrim + $startingSpaceCount = min($startingSpaceCount, strlen($lines[$i]) - strlen(ltrim($lines[$i]))); + } + + // strip the number of spaces from each line + if ($startingSpaceCount > 0) { + for ($i = 1, $iMax = count($lines); $i < $iMax; ++$i) { + $lines[$i] = substr($lines[$i], $startingSpaceCount); + } + } + + return implode("\n", $lines); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php new file mode 100644 index 00000000..7136e28f --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/ExampleFinder.php @@ -0,0 +1,158 @@ +getFilePath(); + + $file = $this->getExampleFileContents($filename); + if (!$file) { + return sprintf('** File not found : %s **', $filename); + } + + return implode('', array_slice($file, $example->getStartingLine() - 1, $example->getLineCount())); + } + + /** + * Registers the project's root directory where an 'examples' folder can be expected. + */ + public function setSourceDirectory(string $directory = ''): void + { + $this->sourceDirectory = $directory; + } + + /** + * Returns the project's root directory where an 'examples' folder can be expected. + */ + public function getSourceDirectory(): string + { + return $this->sourceDirectory; + } + + /** + * Registers a series of directories that may contain examples. + * + * @param string[] $directories + */ + public function setExampleDirectories(array $directories): void + { + $this->exampleDirectories = $directories; + } + + /** + * Returns a series of directories that may contain examples. + * + * @return string[] + */ + public function getExampleDirectories(): array + { + return $this->exampleDirectories; + } + + /** + * Attempts to find the requested example file and returns its contents or null if no file was found. + * + * This method will try several methods in search of the given example file, the first one it encounters is + * returned: + * + * 1. Iterates through all examples folders for the given filename + * 2. Checks the source folder for the given filename + * 3. Checks the 'examples' folder in the current working directory for examples + * 4. Checks the path relative to the current working directory for the given filename + * + * @return string[] all lines of the example file + */ + private function getExampleFileContents(string $filename): ?array + { + $normalizedPath = null; + + foreach ($this->exampleDirectories as $directory) { + $exampleFileFromConfig = $this->constructExamplePath($directory, $filename); + if (is_readable($exampleFileFromConfig)) { + $normalizedPath = $exampleFileFromConfig; + break; + } + } + + if (!$normalizedPath) { + if (is_readable($this->getExamplePathFromSource($filename))) { + $normalizedPath = $this->getExamplePathFromSource($filename); + } elseif (is_readable($this->getExamplePathFromExampleDirectory($filename))) { + $normalizedPath = $this->getExamplePathFromExampleDirectory($filename); + } elseif (is_readable($filename)) { + $normalizedPath = $filename; + } + } + + $lines = $normalizedPath && is_readable($normalizedPath) ? file($normalizedPath) : false; + + return $lines !== false ? $lines : null; + } + + /** + * Get example filepath based on the example directory inside your project. + */ + private function getExamplePathFromExampleDirectory(string $file): string + { + return getcwd() . DIRECTORY_SEPARATOR . 'examples' . DIRECTORY_SEPARATOR . $file; + } + + /** + * Returns a path to the example file in the given directory.. + */ + private function constructExamplePath(string $directory, string $file): string + { + return rtrim($directory, '\\/') . DIRECTORY_SEPARATOR . $file; + } + + /** + * Get example filepath based on sourcecode. + */ + private function getExamplePathFromSource(string $file): string + { + return sprintf( + '%s%s%s', + trim($this->getSourceDirectory(), '\\/'), + DIRECTORY_SEPARATOR, + trim($file, '"') + ); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php new file mode 100644 index 00000000..31ca29c5 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Serializer.php @@ -0,0 +1,156 @@ +indent = $indent; + $this->indentString = $indentString; + $this->isFirstLineIndented = $indentFirstLine; + $this->lineLength = $lineLength; + $this->tagFormatter = $tagFormatter ?: new PassthroughFormatter(); + $this->lineEnding = $lineEnding; + } + + /** + * Generate a DocBlock comment. + * + * @param DocBlock $docblock The DocBlock to serialize. + * + * @return string The serialized doc block. + */ + public function getDocComment(DocBlock $docblock): string + { + $indent = str_repeat($this->indentString, $this->indent); + $firstIndent = $this->isFirstLineIndented ? $indent : ''; + // 3 === strlen(' * ') + $wrapLength = $this->lineLength ? $this->lineLength - strlen($indent) - 3 : null; + + $text = $this->removeTrailingSpaces( + $indent, + $this->addAsterisksForEachLine( + $indent, + $this->getSummaryAndDescriptionTextBlock($docblock, $wrapLength) + ) + ); + + $comment = $firstIndent . "/**\n"; + if ($text) { + $comment .= $indent . ' * ' . $text . "\n"; + $comment .= $indent . " *\n"; + } + + $comment = $this->addTagBlock($docblock, $wrapLength, $indent, $comment); + + return str_replace("\n", $this->lineEnding, $comment . $indent . ' */'); + } + + private function removeTrailingSpaces(string $indent, string $text): string + { + return str_replace( + sprintf("\n%s * \n", $indent), + sprintf("\n%s *\n", $indent), + $text + ); + } + + private function addAsterisksForEachLine(string $indent, string $text): string + { + return str_replace( + "\n", + sprintf("\n%s * ", $indent), + $text + ); + } + + private function getSummaryAndDescriptionTextBlock(DocBlock $docblock, ?int $wrapLength): string + { + $text = $docblock->getSummary() . ((string) $docblock->getDescription() ? "\n\n" . $docblock->getDescription() + : ''); + if ($wrapLength !== null) { + $text = wordwrap($text, $wrapLength); + + return $text; + } + + return $text; + } + + private function addTagBlock(DocBlock $docblock, ?int $wrapLength, string $indent, string $comment): string + { + foreach ($docblock->getTags() as $tag) { + $tagText = $this->tagFormatter->format($tag); + if ($wrapLength !== null) { + $tagText = wordwrap($tagText, $wrapLength); + } + + $tagText = str_replace( + "\n", + sprintf("\n%s * ", $indent), + $tagText + ); + + $comment .= sprintf("%s * %s\n", $indent, $tagText); + } + + return $comment; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php new file mode 100644 index 00000000..7360a707 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/StandardTagFactory.php @@ -0,0 +1,364 @@ + Important: each parameter in addition to the body variable for the `create` method must default to null, otherwise + * > it violates the constraint with the interface; it is recommended to use the {@see Assert::notNull()} method to + * > verify that a dependency is actually passed. + * + * This Factory also features a Service Locator component that is used to pass the right dependencies to the + * `create` method of a tag; each dependency should be registered as a service or as a parameter. + * + * When you want to use a Tag of your own with custom handling you need to call the `registerTagHandler` method, pass + * the name of the tag and a Fully Qualified Class Name pointing to a class that implements the Tag interface. + */ +final class StandardTagFactory implements TagFactory +{ + /** PCRE regular expression matching a tag name. */ + public const REGEX_TAGNAME = '[\w\-\_\\\\:]+'; + + /** + * @var array|Factory> An array with a tag as a key, and an + * FQCN to a class that handles it as an array value. + */ + private array $tagHandlerMappings = [ + 'author' => Author::class, + 'covers' => Covers::class, + 'deprecated' => Deprecated::class, + // 'example' => '\phpDocumentor\Reflection\DocBlock\Tags\Example', + 'link' => LinkTag::class, + 'method' => Method::class, + 'param' => Param::class, + 'property-read' => PropertyRead::class, + 'property' => Property::class, + 'property-write' => PropertyWrite::class, + 'return' => Return_::class, + 'see' => SeeTag::class, + 'since' => Since::class, + 'source' => Source::class, + 'throw' => Throws::class, + 'throws' => Throws::class, + 'uses' => Uses::class, + 'var' => Var_::class, + 'version' => Version::class, + ]; + + /** + * @var array> An array with a anotation s a key, and an + * FQCN to a class that handles it as an array value. + */ + private array $annotationMappings = []; + + /** + * @var ReflectionParameter[][] a lazy-loading cache containing parameters + * for each tagHandler that has been used. + */ + private array $tagHandlerParameterCache = []; + + private FqsenResolver $fqsenResolver; + + /** + * @var mixed[] an array representing a simple Service Locator where we can store parameters and + * services that can be inserted into the Factory Methods of Tag Handlers. + */ + private array $serviceLocator = []; + + /** + * Initialize this tag factory with the means to resolve an FQSEN and optionally a list of tag handlers. + * + * If no tag handlers are provided than the default list in the {@see self::$tagHandlerMappings} property + * is used. + * + * @see self::registerTagHandler() to add a new tag handler to the existing default list. + * + * @param array> $tagHandlers + */ + public function __construct(FqsenResolver $fqsenResolver, ?array $tagHandlers = null) + { + $this->fqsenResolver = $fqsenResolver; + if ($tagHandlers !== null) { + $this->tagHandlerMappings = $tagHandlers; + } + + $this->addService($fqsenResolver, FqsenResolver::class); + } + + public function create(string $tagLine, ?TypeContext $context = null): Tag + { + if (!$context) { + $context = new TypeContext(''); + } + + [$tagName, $tagBody] = $this->extractTagParts($tagLine); + + return $this->createTag(trim($tagBody), $tagName, $context); + } + + /** + * @param mixed $value + */ + public function addParameter(string $name, $value): void + { + $this->serviceLocator[$name] = $value; + } + + public function addService(object $service, ?string $alias = null): void + { + $this->serviceLocator[$alias ?: get_class($service)] = $service; + } + + /** {@inheritDoc} */ + public function registerTagHandler(string $tagName, $handler): void + { + Assert::stringNotEmpty($tagName); + if (strpos($tagName, '\\') && $tagName[0] !== '\\') { + throw new InvalidArgumentException( + 'A namespaced tag must have a leading backslash as it must be fully qualified' + ); + } + + if (is_object($handler)) { + Assert::isInstanceOf($handler, Factory::class); + $this->tagHandlerMappings[$tagName] = $handler; + + return; + } + + Assert::classExists($handler); + Assert::implementsInterface($handler, Tag::class); + $this->tagHandlerMappings[$tagName] = $handler; + } + + /** + * Extracts all components for a tag. + * + * @return string[] + */ + private function extractTagParts(string $tagLine): array + { + $matches = []; + if (!preg_match('/^@(' . self::REGEX_TAGNAME . ')((?:[\s\(\{])\s*([^\s].*)|$)/us', $tagLine, $matches)) { + throw new InvalidArgumentException( + 'The tag "' . $tagLine . '" does not seem to be wellformed, please check it for errors' + ); + } + + if (count($matches) < 3) { + $matches[] = ''; + } + + return array_slice($matches, 1); + } + + /** + * Creates a new tag object with the given name and body or returns null if the tag name was recognized but the + * body was invalid. + */ + private function createTag(string $body, string $name, TypeContext $context): Tag + { + $handlerClassName = $this->findHandlerClassName($name, $context); + $arguments = $this->getArgumentsForParametersFromWiring( + $this->fetchParametersForHandlerFactoryMethod($handlerClassName), + $this->getServiceLocatorWithDynamicParameters($context, $name, $body) + ); + + if (array_key_exists('tagLine', $arguments)) { + $arguments['tagLine'] = sprintf('@%s %s', $name, $body); + } + + try { + $callable = [$handlerClassName, 'create']; + Assert::isCallable($callable); + /** @phpstan-var callable(string): ?Tag $callable */ + $tag = call_user_func_array($callable, $arguments); + + return $tag ?? InvalidTag::create($body, $name); + } catch (InvalidArgumentException $e) { + return InvalidTag::create($body, $name)->withError($e); + } + } + + /** + * Determines the Fully Qualified Class Name of the Factory or Tag (containing a Factory Method `create`). + * + * @return class-string|Factory + */ + private function findHandlerClassName(string $tagName, TypeContext $context) + { + $handlerClassName = Generic::class; + if (isset($this->tagHandlerMappings[$tagName])) { + $handlerClassName = $this->tagHandlerMappings[$tagName]; + } elseif ($this->isAnnotation($tagName)) { + // TODO: Annotation support is planned for a later stage and as such is disabled for now + $tagName = (string) $this->fqsenResolver->resolve($tagName, $context); + if (isset($this->annotationMappings[$tagName])) { + $handlerClassName = $this->annotationMappings[$tagName]; + } + } + + return $handlerClassName; + } + + /** + * Retrieves the arguments that need to be passed to the Factory Method with the given Parameters. + * + * @param ReflectionParameter[] $parameters + * @param mixed[] $locator + * + * @return mixed[] A series of values that can be passed to the Factory Method of the tag whose parameters + * is provided with this method. + */ + private function getArgumentsForParametersFromWiring(array $parameters, array $locator): array + { + $arguments = []; + foreach ($parameters as $parameter) { + $type = $parameter->getType(); + $typeHint = null; + if ($type instanceof ReflectionNamedType) { + $typeHint = $type->getName(); + if ($typeHint === 'self') { + $declaringClass = $parameter->getDeclaringClass(); + if ($declaringClass !== null) { + $typeHint = $declaringClass->getName(); + } + } + } + + $parameterName = $parameter->getName(); + if (isset($locator[$typeHint])) { + $arguments[$parameterName] = $locator[$typeHint]; + continue; + } + + if (isset($locator[$parameterName])) { + $arguments[$parameterName] = $locator[$parameterName]; + continue; + } + + $arguments[$parameterName] = null; + } + + return $arguments; + } + + /** + * Retrieves a series of ReflectionParameter objects for the static 'create' method of the given + * tag handler class name. + * + * @param class-string|Factory $handler + * + * @return ReflectionParameter[] + */ + private function fetchParametersForHandlerFactoryMethod($handler): array + { + $handlerClassName = is_object($handler) ? get_class($handler) : $handler; + + if (!isset($this->tagHandlerParameterCache[$handlerClassName])) { + $methodReflection = new ReflectionMethod($handlerClassName, 'create'); + $this->tagHandlerParameterCache[$handlerClassName] = $methodReflection->getParameters(); + } + + return $this->tagHandlerParameterCache[$handlerClassName]; + } + + /** + * Returns a copy of this class' Service Locator with added dynamic parameters, + * such as the tag's name, body and Context. + * + * @param TypeContext $context The Context (namespace and aliasses) that may be + * passed and is used to resolve FQSENs. + * @param string $tagName The name of the tag that may be + * passed onto the factory method of the Tag class. + * @param string $tagBody The body of the tag that may be + * passed onto the factory method of the Tag class. + * + * @return mixed[] + */ + private function getServiceLocatorWithDynamicParameters( + TypeContext $context, + string $tagName, + string $tagBody + ): array { + return array_merge( + $this->serviceLocator, + [ + 'name' => $tagName, + 'body' => $tagBody, + TypeContext::class => $context, + ] + ); + } + + /** + * Returns whether the given tag belongs to an annotation. + * + * @todo this method should be populated once we implement Annotation notation support. + */ + private function isAnnotation(string $tagContent): bool + { + // 1. Contains a namespace separator + // 2. Contains parenthesis + // 3. Is present in a list of known annotations (make the algorithm smart by first checking is the last part + // of the annotation class name matches the found tag name + + return false; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php new file mode 100644 index 00000000..7cf07b4d --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tag.php @@ -0,0 +1,31 @@ +|Factory $handler FQCN of handler. + * + * @throws InvalidArgumentException If the tag name is not a string. + * @throws InvalidArgumentException If the tag name is namespaced (contains backslashes) but + * does not start with a backslash. + * @throws InvalidArgumentException If the handler is not a string. + * @throws InvalidArgumentException If the handler is not an existing class. + * @throws InvalidArgumentException If the handler does not implement the {@see Tag} interface. + */ + public function registerTagHandler(string $tagName, $handler): void; +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php new file mode 100644 index 00000000..290e5a95 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Author.php @@ -0,0 +1,102 @@ +authorName = $authorName; + $this->authorEmail = $authorEmail; + } + + /** + * Gets the author's name. + * + * @return string The author's name. + */ + public function getAuthorName(): string + { + return $this->authorName; + } + + /** + * Returns the author's email. + * + * @return string The author's email. + */ + public function getEmail(): string + { + return $this->authorEmail; + } + + /** + * Returns this tag in string form. + */ + public function __toString(): string + { + if ($this->authorEmail) { + $authorEmail = '<' . $this->authorEmail . '>'; + } else { + $authorEmail = ''; + } + + $authorName = $this->authorName; + + return $authorName . ($authorEmail !== '' ? ($authorName !== '' ? ' ' : '') . $authorEmail : ''); + } + + /** + * Attempts to create a new Author object based on the tag body. + */ + public static function create(string $body): ?self + { + $splitTagContent = preg_match('/^([^\<]*)(?:\<([^\>]*)\>)?$/u', $body, $matches); + if (!$splitTagContent) { + return null; + } + + $authorName = trim($matches[1]); + $email = isset($matches[2]) ? trim($matches[2]) : ''; + + return new static($authorName, $email); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php new file mode 100644 index 00000000..98b0d881 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/BaseTag.php @@ -0,0 +1,53 @@ +name; + } + + public function getDescription(): ?Description + { + return $this->description; + } + + public function render(?Formatter $formatter = null): string + { + if ($formatter === null) { + $formatter = new Formatter\PassthroughFormatter(); + } + + return $formatter->format($this); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php new file mode 100644 index 00000000..022594e2 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Covers.php @@ -0,0 +1,99 @@ +refers = $refers; + $this->description = $description; + } + + public static function create( + string $body, + ?DescriptionFactory $descriptionFactory = null, + ?FqsenResolver $resolver = null, + ?TypeContext $context = null + ): self { + Assert::stringNotEmpty($body); + Assert::notNull($descriptionFactory); + Assert::notNull($resolver); + + $parts = Utils::pregSplit('/\s+/Su', $body, 2); + + return new static( + self::resolveFqsen($parts[0], $resolver, $context), + $descriptionFactory->create($parts[1] ?? '', $context) + ); + } + + private static function resolveFqsen(string $parts, ?FqsenResolver $fqsenResolver, ?TypeContext $context): Fqsen + { + Assert::notNull($fqsenResolver); + $fqsenParts = explode('::', $parts); + $resolved = $fqsenResolver->resolve($fqsenParts[0], $context); + + if (!array_key_exists(1, $fqsenParts)) { + return $resolved; + } + + return new Fqsen($resolved . '::' . $fqsenParts[1]); + } + + /** + * Returns the structural element this tag refers to. + */ + public function getReference(): Fqsen + { + return $this->refers; + } + + /** + * Returns a string representation of this tag. + */ + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + $refers = (string) $this->refers; + + return $refers . ($description !== '' ? ($refers !== '' ? ' ' : '') . $description : ''); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php new file mode 100644 index 00000000..a55cd914 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Deprecated.php @@ -0,0 +1,108 @@ +version = $version; + $this->description = $description; + } + + /** + * @return static + */ + public static function create( + ?string $body, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): self { + if (empty($body)) { + return new static(); + } + + $matches = []; + if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) { + return new static( + null, + $descriptionFactory !== null ? $descriptionFactory->create($body, $context) : null + ); + } + + Assert::notNull($descriptionFactory); + + return new static( + $matches[1], + $descriptionFactory->create($matches[2] ?? '', $context) + ); + } + + /** + * Gets the version section of the tag. + */ + public function getVersion(): ?string + { + return $this->version; + } + + /** + * Returns a string representation for this tag. + */ + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + $version = (string) $this->version; + + return $version . ($description !== '' ? ($version !== '' ? ' ' : '') . $description : ''); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php new file mode 100644 index 00000000..fd9ef6eb --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Example.php @@ -0,0 +1,197 @@ +filePath = $filePath; + $this->startingLine = $startingLine; + $this->lineCount = $lineCount; + if ($content !== null) { + $this->content = trim($content); + } + + $this->isURI = $isURI; + } + + public function getContent(): string + { + if ($this->content === null || $this->content === '') { + $filePath = $this->filePath; + if ($this->isURI) { + $filePath = $this->isUriRelative($this->filePath) + ? str_replace('%2F', '/', rawurlencode($this->filePath)) + : $this->filePath; + } + + return trim($filePath); + } + + return $this->content; + } + + public function getDescription(): ?string + { + return $this->content; + } + + public static function create(string $body): ?Tag + { + // File component: File path in quotes or File URI / Source information + if (!preg_match('/^\s*(?:(\"[^\"]+\")|(\S+))(?:\s+(.*))?$/sux', $body, $matches)) { + return null; + } + + $filePath = null; + $fileUri = null; + if ($matches[1] !== '') { + $filePath = $matches[1]; + } else { + $fileUri = $matches[2]; + } + + $startingLine = 1; + $lineCount = 0; + $description = null; + + if (array_key_exists(3, $matches)) { + $description = $matches[3]; + + // Starting line / Number of lines / Description + if (preg_match('/^([1-9]\d*)(?:\s+((?1))\s*)?(.*)$/sux', $matches[3], $contentMatches)) { + $startingLine = (int) $contentMatches[1]; + if (isset($contentMatches[2])) { + $lineCount = (int) $contentMatches[2]; + } + + if (array_key_exists(3, $contentMatches)) { + $description = $contentMatches[3]; + } + } + } + + return new static( + $filePath ?? ($fileUri ?? ''), + $fileUri !== null, + $startingLine, + $lineCount, + $description + ); + } + + /** + * Returns the file path. + * + * @return string Path to a file to use as an example. + * May also be an absolute URI. + */ + public function getFilePath(): string + { + return trim($this->filePath, '"'); + } + + /** + * Returns a string representation for this tag. + */ + public function __toString(): string + { + $filePath = $this->filePath; + $isDefaultLine = $this->startingLine === 1 && $this->lineCount === 0; + $startingLine = !$isDefaultLine ? (string) $this->startingLine : ''; + $lineCount = !$isDefaultLine ? (string) $this->lineCount : ''; + $content = (string) $this->content; + + return $filePath + . ($startingLine !== '' + ? ($filePath !== '' ? ' ' : '') . $startingLine + : '') + . ($lineCount !== '' + ? ($filePath !== '' || $startingLine !== '' ? ' ' : '') . $lineCount + : '') + . ($content !== '' + ? ($filePath !== '' || $startingLine !== '' || $lineCount !== '' ? ' ' : '') . $content + : ''); + } + + /** + * Returns true if the provided URI is relative or contains a complete scheme (and thus is absolute). + */ + private function isUriRelative(string $uri): bool + { + return strpos($uri, ':') === false; + } + + public function getStartingLine(): int + { + return $this->startingLine; + } + + public function getLineCount(): int + { + return $this->lineCount; + } + + public function getName(): string + { + return 'example'; + } + + public function render(?Formatter $formatter = null): string + { + if ($formatter === null) { + $formatter = new Formatter\PassthroughFormatter(); + } + + return $formatter->format($this); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/AbstractPHPStanFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/AbstractPHPStanFactory.php new file mode 100644 index 00000000..b1618bfa --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/AbstractPHPStanFactory.php @@ -0,0 +1,122 @@ +lexer = new Lexer(true); + $constParser = new ConstExprParser(true, true, ['lines' => true, 'indexes' => true]); + $this->parser = new PhpDocParser( + new TypeParser($constParser, true, ['lines' => true, 'indexes' => true]), + $constParser, + true, + true, + ['lines' => true, 'indexes' => true], + true + ); + $this->factories = $factories; + } + + public function create(string $tagLine, ?TypeContext $context = null): Tag + { + $tokens = $this->tokenizeLine($tagLine); + $ast = $this->parser->parseTag($tokens); + if (property_exists($ast->value, 'description') === true) { + $ast->value->setAttribute( + 'description', + $ast->value->description . $tokens->joinUntil(Lexer::TOKEN_END) + ); + } + + if ($context === null) { + $context = new TypeContext(''); + } + + try { + foreach ($this->factories as $factory) { + if ($factory->supports($ast, $context)) { + return $factory->create($ast, $context); + } + } + } catch (RuntimeException $e) { + return InvalidTag::create((string) $ast->value, 'method')->withError($e); + } + + return InvalidTag::create( + (string) $ast->value, + $ast->name + ); + } + + /** + * Solve the issue with the lexer not tokenizing the line correctly + * + * This method is a workaround for the lexer that includes newline tokens with spaces. For + * phpstan this isn't an issue, as it doesn't do a lot of things with the indentation of descriptions. + * But for us is important to keep the indentation of the descriptions, so we need to fix the lexer output. + */ + private function tokenizeLine(string $tagLine): TokenIterator + { + $tokens = $this->lexer->tokenize($tagLine); + $fixed = []; + foreach ($tokens as $token) { + if (($token[1] === Lexer::TOKEN_PHPDOC_EOL) && rtrim($token[0], " \t") !== $token[0]) { + $fixed[] = [ + rtrim($token[Lexer::VALUE_OFFSET], " \t"), + Lexer::TOKEN_PHPDOC_EOL, + $token[2] ?? null, + ]; + $fixed[] = [ + ltrim($token[Lexer::VALUE_OFFSET], "\n\r"), + Lexer::TOKEN_HORIZONTAL_WS, + ($token[2] ?? null) + 1, + ]; + continue; + } + + $fixed[] = $token; + } + + return new TokenIterator($fixed); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Factory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Factory.php new file mode 100644 index 00000000..190d3ff8 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/Factory.php @@ -0,0 +1,41 @@ +descriptionFactory = $descriptionFactory; + $this->typeResolver = $typeResolver; + } + + public function create(PhpDocTagNode $node, Context $context): Tag + { + $tagValue = $node->value; + Assert::isInstanceOf($tagValue, MethodTagValueNode::class); + + return new Method( + $tagValue->methodName, + [], + $this->createReturnType($tagValue, $context), + $tagValue->isStatic, + $this->descriptionFactory->create($tagValue->description, $context), + false, + array_map( + function (MethodTagValueParameterNode $param) use ($context) { + return new MethodParameter( + trim($param->parameterName, '$'), + $param->type === null ? new Mixed_() : $this->typeResolver->createType( + $param->type, + $context + ), + $param->isReference, + $param->isVariadic, + (string) $param->defaultValue + ); + }, + $tagValue->parameters + ), + ); + } + + public function supports(PhpDocTagNode $node, Context $context): bool + { + return $node->value instanceof MethodTagValueNode; + } + + private function createReturnType(MethodTagValueNode $tagValue, Context $context): Type + { + if ($tagValue->returnType === null) { + return new Void_(); + } + + return $this->typeResolver->createType($tagValue->returnType, $context); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PHPStanFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PHPStanFactory.php new file mode 100644 index 00000000..cf04a06e --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PHPStanFactory.php @@ -0,0 +1,16 @@ +descriptionFactory = $descriptionFactory; + $this->typeResolver = $typeResolver; + } + + public function create(PhpDocTagNode $node, Context $context): Tag + { + $tagValue = $node->value; + + if ($tagValue instanceof InvalidTagValueNode) { + Deprecation::trigger( + 'phpdocumentor/reflection-docblock', + 'https://github.com/phpDocumentor/ReflectionDocBlock/issues/362', + sprintf( + 'Param tag value "%s" is invalid, falling back to legacy parsing. Please update your docblocks.', + $tagValue->value + ) + ); + + return Param::create($tagValue->value, $this->typeResolver, $this->descriptionFactory, $context); + } + + Assert::isInstanceOfAny( + $tagValue, + [ + ParamTagValueNode::class, + TypelessParamTagValueNode::class, + ] + ); + + if (($tagValue->type ?? null) instanceof OffsetAccessTypeNode) { + return InvalidTag::create( + (string) $tagValue, + 'param' + ); + } + + $description = $tagValue->getAttribute('description'); + if (is_string($description) === false) { + $description = $tagValue->description; + } + + return new Param( + trim($tagValue->parameterName, '$'), + $this->typeResolver->createType($tagValue->type ?? new IdentifierTypeNode('mixed'), $context), + $tagValue->isVariadic, + $this->descriptionFactory->create($description, $context), + $tagValue->isReference + ); + } + + public function supports(PhpDocTagNode $node, Context $context): bool + { + return $node->value instanceof ParamTagValueNode + || $node->value instanceof TypelessParamTagValueNode + || $node->name === '@param'; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PropertyFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PropertyFactory.php new file mode 100644 index 00000000..b744ed08 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PropertyFactory.php @@ -0,0 +1,54 @@ +descriptionFactory = $descriptionFactory; + $this->typeResolver = $typeResolver; + } + + public function create(PhpDocTagNode $node, Context $context): Tag + { + $tagValue = $node->value; + Assert::isInstanceOf($tagValue, PropertyTagValueNode::class); + + $description = $tagValue->getAttribute('description'); + if (is_string($description) === false) { + $description = $tagValue->description; + } + + return new Property( + trim($tagValue->propertyName, '$'), + $this->typeResolver->createType($tagValue->type, $context), + $this->descriptionFactory->create($description, $context) + ); + } + + public function supports(PhpDocTagNode $node, Context $context): bool + { + return $node->value instanceof PropertyTagValueNode && $node->name === '@property'; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PropertyReadFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PropertyReadFactory.php new file mode 100644 index 00000000..b0898aa7 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PropertyReadFactory.php @@ -0,0 +1,54 @@ +typeResolver = $typeResolver; + $this->descriptionFactory = $descriptionFactory; + } + + public function create(PhpDocTagNode $node, Context $context): Tag + { + $tagValue = $node->value; + Assert::isInstanceOf($tagValue, PropertyTagValueNode::class); + + $description = $tagValue->getAttribute('description'); + if (is_string($description) === false) { + $description = $tagValue->description; + } + + return new PropertyRead( + trim($tagValue->propertyName, '$'), + $this->typeResolver->createType($tagValue->type, $context), + $this->descriptionFactory->create($description, $context) + ); + } + + public function supports(PhpDocTagNode $node, Context $context): bool + { + return $node->value instanceof PropertyTagValueNode && $node->name === '@property-read'; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PropertyWriteFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PropertyWriteFactory.php new file mode 100644 index 00000000..749b1eda --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/PropertyWriteFactory.php @@ -0,0 +1,54 @@ +descriptionFactory = $descriptionFactory; + $this->typeResolver = $typeResolver; + } + + public function create(PhpDocTagNode $node, Context $context): Tag + { + $tagValue = $node->value; + Assert::isInstanceOf($tagValue, PropertyTagValueNode::class); + + $description = $tagValue->getAttribute('description'); + if (is_string($description) === false) { + $description = $tagValue->description; + } + + return new PropertyWrite( + trim($tagValue->propertyName, '$'), + $this->typeResolver->createType($tagValue->type, $context), + $this->descriptionFactory->create($description, $context) + ); + } + + public function supports(PhpDocTagNode $node, Context $context): bool + { + return $node->value instanceof PropertyTagValueNode && $node->name === '@property-write'; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/ReturnFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/ReturnFactory.php new file mode 100644 index 00000000..4a17dc24 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/ReturnFactory.php @@ -0,0 +1,52 @@ +descriptionFactory = $descriptionFactory; + $this->typeResolver = $typeResolver; + } + + public function create(PhpDocTagNode $node, Context $context): Tag + { + $tagValue = $node->value; + Assert::isInstanceOf($tagValue, ReturnTagValueNode::class); + + $description = $tagValue->getAttribute('description'); + if (is_string($description) === false) { + $description = $tagValue->description; + } + + return new Return_( + $this->typeResolver->createType($tagValue->type, $context), + $this->descriptionFactory->create($description, $context) + ); + } + + public function supports(PhpDocTagNode $node, Context $context): bool + { + return $node->value instanceof ReturnTagValueNode; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php new file mode 100644 index 00000000..f6f0bb5a --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Factory/StaticMethod.php @@ -0,0 +1,25 @@ +descriptionFactory = $descriptionFactory; + $this->typeResolver = $typeResolver; + } + + public function create(PhpDocTagNode $node, Context $context): Tag + { + $tagValue = $node->value; + Assert::isInstanceOf($tagValue, VarTagValueNode::class); + + $description = $tagValue->getAttribute('description'); + if (is_string($description) === false) { + $description = $tagValue->description; + } + + return new Var_( + trim($tagValue->variableName, '$'), + $this->typeResolver->createType($tagValue->type, $context), + $this->descriptionFactory->create($description, $context) + ); + } + + public function supports(PhpDocTagNode $node, Context $context): bool + { + return $node->value instanceof VarTagValueNode; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php new file mode 100644 index 00000000..36b9983e --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter.php @@ -0,0 +1,24 @@ +maxLen = max($this->maxLen, strlen($tag->getName())); + } + } + + /** + * Formats the given tag to return a simple plain text version. + */ + public function format(Tag $tag): string + { + return '@' . $tag->getName() . + str_repeat( + ' ', + $this->maxLen - strlen($tag->getName()) + 1 + ) . + $tag; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php new file mode 100644 index 00000000..2afdfe55 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Formatter/PassthroughFormatter.php @@ -0,0 +1,30 @@ +getName() . ' ' . $tag); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php new file mode 100644 index 00000000..bc1ab10c --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Generic.php @@ -0,0 +1,89 @@ +validateTagName($name); + + $this->name = $name; + $this->description = $description; + } + + /** + * Creates a new tag that represents any unknown tag type. + * + * @return static + */ + public static function create( + string $body, + string $name = '', + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): self { + Assert::stringNotEmpty($name); + Assert::notNull($descriptionFactory); + + $description = $body !== '' ? $descriptionFactory->create($body, $context) : null; + + return new static($name, $description); + } + + /** + * Returns the tag as a serialized string + */ + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + return $description; + } + + /** + * Validates if the tag name matches the expected format, otherwise throws an exception. + */ + private function validateTagName(string $name): void + { + if (!preg_match('/^' . StandardTagFactory::REGEX_TAGNAME . '$/u', $name)) { + throw new InvalidArgumentException( + 'The tag name "' . $name . '" is not wellformed. Tags may only consist of letters, underscores, ' + . 'hyphens and backslashes.' + ); + } + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/InvalidTag.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/InvalidTag.php new file mode 100644 index 00000000..c7d3cd54 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/InvalidTag.php @@ -0,0 +1,142 @@ +name = $name; + $this->body = $body; + } + + public function getException(): ?Throwable + { + return $this->throwable; + } + + public function getName(): string + { + return $this->name; + } + + public static function create(string $body, string $name = ''): self + { + return new self($name, $body); + } + + public function withError(Throwable $exception): self + { + $this->flattenExceptionBacktrace($exception); + $tag = new self($this->name, $this->body); + $tag->throwable = $exception; + + return $tag; + } + + /** + * Removes all complex types from backtrace + * + * Not all objects are serializable. So we need to remove them from the + * stored exception to be sure that we do not break existing library usage. + */ + private function flattenExceptionBacktrace(Throwable $exception): void + { + $traceProperty = (new ReflectionClass(Exception::class))->getProperty('trace'); + $traceProperty->setAccessible(true); + + do { + $trace = $exception->getTrace(); + if (isset($trace[0]['args'])) { + $trace = array_map( + function (array $call): array { + $call['args'] = array_map([$this, 'flattenArguments'], $call['args'] ?? []); + + return $call; + }, + $trace + ); + } + + $traceProperty->setValue($exception, $trace); + $exception = $exception->getPrevious(); + } while ($exception !== null); + + $traceProperty->setAccessible(false); + } + + /** + * @param mixed $value + * + * @return mixed + * + * @throws ReflectionException + */ + private function flattenArguments($value) + { + if ($value instanceof Closure) { + $closureReflection = new ReflectionFunction($value); + $value = sprintf( + '(Closure at %s:%s)', + $closureReflection->getFileName(), + $closureReflection->getStartLine() + ); + } elseif (is_object($value)) { + $value = sprintf('object(%s)', get_class($value)); + } elseif (is_resource($value)) { + $value = sprintf('resource(%s)', get_resource_type($value)); + } elseif (is_array($value)) { + $value = array_map([$this, 'flattenArguments'], $value); + } + + return $value; + } + + public function render(?Formatter $formatter = null): string + { + if ($formatter === null) { + $formatter = new Formatter\PassthroughFormatter(); + } + + return $formatter->format($this); + } + + public function __toString(): string + { + return $this->body; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php new file mode 100644 index 00000000..fcb6ec19 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Link.php @@ -0,0 +1,76 @@ +link = $link; + $this->description = $description; + } + + public static function create( + string $body, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): self { + Assert::notNull($descriptionFactory); + + $parts = Utils::pregSplit('/\s+/Su', $body, 2); + $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null; + + return new static($parts[0], $description); + } + + /** + * Gets the link + */ + public function getLink(): string + { + return $this->link; + } + + /** + * Returns a string representation for this tag. + */ + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + $link = $this->link; + + return $link . ($description !== '' ? ($link !== '' ? ' ' : '') . $description : ''); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php new file mode 100644 index 00000000..471ebe95 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Method.php @@ -0,0 +1,358 @@ +> $arguments + * @param MethodParameter[] $parameters + * @phpstan-param array $arguments + */ + public function __construct( + string $methodName, + array $arguments = [], + ?Type $returnType = null, + bool $static = false, + ?Description $description = null, + bool $returnsReference = false, + ?array $parameters = null + ) { + Assert::stringNotEmpty($methodName); + + if ($returnType === null) { + $returnType = new Void_(); + } + + $arguments = $this->filterArguments($arguments); + + $this->methodName = $methodName; + $this->returnType = $returnType; + $this->isStatic = $static; + $this->description = $description; + $this->returnsReference = $returnsReference; + $this->parameters = $parameters ?? $this->fromLegacyArguments($arguments); + } + + /** + * @deprecated Create using static factory is deprecated, + * this method should not be called directly by library consumers + */ + public static function create( + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): ?self { + trigger_error( + 'Create using static factory is deprecated, this method should not be called directly + by library consumers', + E_USER_DEPRECATED + ); + Assert::stringNotEmpty($body); + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); + + // 1. none or more whitespace + // 2. optionally the keyword "static" followed by whitespace + // 3. optionally a word with underscores followed by whitespace : as + // type for the return value + // 4. optionally an ampersand followed or not by whitespace : as + // a reference + // 5. then optionally a word with underscores followed by () and + // whitespace : as method name as used by phpDocumentor + // 6. then a word with underscores, followed by ( and any character + // until a ) and whitespace : as method name with signature + // 7. any remaining text : as description + if ( + !preg_match( + '/^ + # Static keyword + # Declares a static method ONLY if type is also present + (?: + (static) + \s+ + )? + # Return type + (?: + ( + (?:[\w\|_\\\\]*\$this[\w\|_\\\\]*) + | + (?: + (?:[\w\|_\\\\]+) + # array notation + (?:\[\])* + )*+ + ) + \s+ + )? + # Returns reference + (?: + (&) + \s* + )? + # Method name + ([\w_]+) + # Arguments + (?: + \(([^\)]*)\) + )? + \s* + # Description + (.*) + $/sux', + $body, + $matches + ) + ) { + return null; + } + + [, $static, $returnType, $returnsReference, $methodName, $argumentLines, $description] = $matches; + + $static = $static === 'static'; + + if ($returnType === '') { + $returnType = 'void'; + } + + $returnsReference = $returnsReference === '&'; + + $returnType = $typeResolver->resolve($returnType, $context); + $description = $descriptionFactory->create($description, $context); + + /** @phpstan-var array $arguments */ + $arguments = []; + if ($argumentLines !== '') { + $argumentsExploded = explode(',', $argumentLines); + foreach ($argumentsExploded as $argument) { + $argument = explode(' ', self::stripRestArg(trim($argument)), 2); + if (strpos($argument[0], '$') === 0) { + $argumentName = substr($argument[0], 1); + $argumentType = new Mixed_(); + } else { + $argumentType = $typeResolver->resolve($argument[0], $context); + $argumentName = ''; + if (isset($argument[1])) { + $argument[1] = self::stripRestArg($argument[1]); + $argumentName = substr($argument[1], 1); + } + } + + $arguments[] = ['name' => $argumentName, 'type' => $argumentType]; + } + } + + return new static( + $methodName, + $arguments, + $returnType, + $static, + $description, + $returnsReference + ); + } + + /** + * Retrieves the method name. + */ + public function getMethodName(): string + { + return $this->methodName; + } + + /** + * @deprecated Method deprecated, use {@see self::getParameters()} + * + * @return array> + * @phpstan-return array + */ + public function getArguments(): array + { + trigger_error('Method deprecated, use ::getParameters()', E_USER_DEPRECATED); + + return array_map( + static function (MethodParameter $methodParameter) { + return ['name' => $methodParameter->getName(), 'type' => $methodParameter->getType()]; + }, + $this->parameters + ); + } + + /** @return MethodParameter[] */ + public function getParameters(): array + { + return $this->parameters; + } + + /** + * Checks whether the method tag describes a static method or not. + * + * @return bool TRUE if the method declaration is for a static method, FALSE otherwise. + */ + public function isStatic(): bool + { + return $this->isStatic; + } + + public function getReturnType(): Type + { + return $this->returnType; + } + + public function returnsReference(): bool + { + return $this->returnsReference; + } + + public function __toString(): string + { + $arguments = []; + foreach ($this->parameters as $parameter) { + $arguments[] = $parameter->getType() . ' ' . + ($parameter->isReference() ? '&' : '') . + ($parameter->isVariadic() ? '...' : '') . + '$' . $parameter->getName(); + } + + $argumentStr = '(' . implode(', ', $arguments) . ')'; + + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + $static = $this->isStatic ? 'static' : ''; + + $returnType = (string) $this->returnType; + + $methodName = $this->methodName; + + $reference = $this->returnsReference ? '&' : ''; + + return $static + . ($returnType !== '' ? ($static !== '' ? ' ' : '') . $returnType : '') + . ($methodName !== '' ? ($static !== '' || $returnType !== '' ? ' ' : '') . $reference . $methodName : '') + . $argumentStr + . ($description !== '' ? ' ' . $description : ''); + } + + /** + * @param mixed[][]|string[] $arguments + * @phpstan-param array $arguments + * + * @return mixed[][] + * @phpstan-return array + */ + private function filterArguments(array $arguments = []): array + { + $result = []; + foreach ($arguments as $argument) { + if (is_string($argument)) { + $argument = ['name' => $argument]; + } + + if (!isset($argument['type'])) { + $argument['type'] = new Mixed_(); + } + + $keys = array_keys($argument); + sort($keys); + if ($keys !== ['name', 'type']) { + throw new InvalidArgumentException( + 'Arguments can only have the "name" and "type" fields, found: ' . var_export($keys, true) + ); + } + + $result[] = $argument; + } + + return $result; + } + + private static function stripRestArg(string $argument): string + { + if (strpos($argument, '...') === 0) { + $argument = trim(substr($argument, 3)); + } + + return $argument; + } + + /** + * @param array{name: string, type: Type} $arguments + * @phpstan-param array $arguments + * + * @return MethodParameter[] + */ + private function fromLegacyArguments(array $arguments): array + { + trigger_error( + 'Create method parameters via legacy format is deprecated add parameters via the constructor', + E_USER_DEPRECATED + ); + + return array_map( + static function ($arg) { + return new MethodParameter( + $arg['name'], + $arg['type'] + ); + }, + $arguments + ); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/MethodParameter.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/MethodParameter.php new file mode 100644 index 00000000..0c85d41d --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/MethodParameter.php @@ -0,0 +1,67 @@ +type = $type; + $this->isReference = $isReference; + $this->isVariadic = $isVariadic; + $this->name = $name; + $this->defaultValue = $defaultValue; + } + + public function getName(): string + { + return $this->name; + } + + public function getType(): Type + { + return $this->type; + } + + public function isReference(): bool + { + return $this->isReference; + } + + public function isVariadic(): bool + { + return $this->isVariadic; + } + + public function getDefaultValue(): ?string + { + return $this->defaultValue; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php new file mode 100644 index 00000000..19b1b5fb --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Param.php @@ -0,0 +1,185 @@ +name = 'param'; + $this->variableName = $variableName; + $this->type = $type; + $this->isVariadic = $isVariadic; + $this->description = $description; + $this->isReference = $isReference; + } + + /** + * @deprecated Create using static factory is deprecated, + * this method should not be called directly by library consumers + */ + public static function create( + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): self { + Deprecation::triggerIfCalledFromOutside( + 'phpdocumentor/reflection-docblock', + 'https://github.com/phpDocumentor/ReflectionDocBlock/issues/361', + 'Create using static factory is deprecated, this method should not be called directly + by library consumers', + ); + + Assert::stringNotEmpty($body); + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); + + [$firstPart, $body] = self::extractTypeFromBody($body); + + $type = null; + $parts = Utils::pregSplit('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE); + $variableName = ''; + $isVariadic = false; + $isReference = false; + + // if the first item that is encountered is not a variable; it is a type + if ($firstPart && !self::strStartsWithVariable($firstPart)) { + $type = $typeResolver->resolve($firstPart, $context); + } else { + // first part is not a type; we should prepend it to the parts array for further processing + array_unshift($parts, $firstPart); + } + + // if the next item starts with a $ or ...$ or &$ or &...$ it must be the variable name + if (isset($parts[0]) && self::strStartsWithVariable($parts[0])) { + $variableName = array_shift($parts); + if ($type) { + array_shift($parts); + } + + Assert::notNull($variableName); + + if (strpos($variableName, '$') === 0) { + $variableName = substr($variableName, 1); + } elseif (strpos($variableName, '&$') === 0) { + $isReference = true; + $variableName = substr($variableName, 2); + } elseif (strpos($variableName, '...$') === 0) { + $isVariadic = true; + $variableName = substr($variableName, 4); + } elseif (strpos($variableName, '&...$') === 0) { + $isVariadic = true; + $isReference = true; + $variableName = substr($variableName, 5); + } + } + + $description = $descriptionFactory->create(implode('', $parts), $context); + + return new static($variableName, $type, $isVariadic, $description, $isReference); + } + + /** + * Returns the variable's name. + */ + public function getVariableName(): ?string + { + return $this->variableName; + } + + /** + * Returns whether this tag is variadic. + */ + public function isVariadic(): bool + { + return $this->isVariadic; + } + + /** + * Returns whether this tag is passed by reference. + */ + public function isReference(): bool + { + return $this->isReference; + } + + /** + * Returns a string representation for this tag. + */ + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + $variableName = ''; + if ($this->variableName) { + $variableName .= ($this->isReference ? '&' : '') . ($this->isVariadic ? '...' : ''); + $variableName .= '$' . $this->variableName; + } + + $type = (string) $this->type; + + return $type + . ($variableName !== '' ? ($type !== '' ? ' ' : '') . $variableName : '') + . ($description !== '' ? ($type !== '' || $variableName !== '' ? ' ' : '') . $description : ''); + } + + private static function strStartsWithVariable(string $str): bool + { + return strpos($str, '$') === 0 + || + strpos($str, '...$') === 0 + || + strpos($str, '&$') === 0 + || + strpos($str, '&...$') === 0; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php new file mode 100644 index 00000000..1287b6cc --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Property.php @@ -0,0 +1,132 @@ +name = 'property'; + $this->variableName = $variableName; + $this->type = $type; + $this->description = $description; + } + + /** + * @deprecated Create using static factory is deprecated, + * this method should not be called directly by library consumers + */ + public static function create( + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): self { + Deprecation::triggerIfCalledFromOutside( + 'phpdocumentor/reflection-docblock', + 'https://github.com/phpDocumentor/ReflectionDocBlock/issues/361', + 'Create using static factory is deprecated, this method should not be called directly + by library consumers', + ); + + Assert::stringNotEmpty($body); + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); + + [$firstPart, $body] = self::extractTypeFromBody($body); + $type = null; + $parts = Utils::pregSplit('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE); + $variableName = ''; + + // if the first item that is encountered is not a variable; it is a type + if ($firstPart && $firstPart[0] !== '$') { + $type = $typeResolver->resolve($firstPart, $context); + } else { + // first part is not a type; we should prepend it to the parts array for further processing + array_unshift($parts, $firstPart); + } + + // if the next item starts with a $ it must be the variable name + if (isset($parts[0]) && strpos($parts[0], '$') === 0) { + $variableName = array_shift($parts); + if ($type) { + array_shift($parts); + } + + Assert::notNull($variableName); + + $variableName = substr($variableName, 1); + } + + $description = $descriptionFactory->create(implode('', $parts), $context); + + return new static($variableName, $type, $description); + } + + /** + * Returns the variable's name. + */ + public function getVariableName(): ?string + { + return $this->variableName; + } + + /** + * Returns a string representation for this tag. + */ + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + if ($this->variableName) { + $variableName = '$' . $this->variableName; + } else { + $variableName = ''; + } + + $type = (string) $this->type; + + return $type + . ($variableName !== '' ? ($type !== '' ? ' ' : '') . $variableName : '') + . ($description !== '' ? ($type !== '' || $variableName !== '' ? ' ' : '') . $description : ''); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php new file mode 100644 index 00000000..2cf8e61a --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyRead.php @@ -0,0 +1,132 @@ +name = 'property-read'; + $this->variableName = $variableName; + $this->type = $type; + $this->description = $description; + } + + /** + * @deprecated Create using static factory is deprecated, + * this method should not be called directly by library consumers + */ + public static function create( + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): self { + Deprecation::triggerIfCalledFromOutside( + 'phpdocumentor/reflection-docblock', + 'https://github.com/phpDocumentor/ReflectionDocBlock/issues/361', + 'Create using static factory is deprecated, this method should not be called directly + by library consumers', + ); + + Assert::stringNotEmpty($body); + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); + + [$firstPart, $body] = self::extractTypeFromBody($body); + $type = null; + $parts = Utils::pregSplit('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE); + $variableName = ''; + + // if the first item that is encountered is not a variable; it is a type + if ($firstPart && $firstPart[0] !== '$') { + $type = $typeResolver->resolve($firstPart, $context); + } else { + // first part is not a type; we should prepend it to the parts array for further processing + array_unshift($parts, $firstPart); + } + + // if the next item starts with a $ it must be the variable name + if (isset($parts[0]) && strpos($parts[0], '$') === 0) { + $variableName = array_shift($parts); + if ($type) { + array_shift($parts); + } + + Assert::notNull($variableName); + + $variableName = substr($variableName, 1); + } + + $description = $descriptionFactory->create(implode('', $parts), $context); + + return new static($variableName, $type, $description); + } + + /** + * Returns the variable's name. + */ + public function getVariableName(): ?string + { + return $this->variableName; + } + + /** + * Returns a string representation for this tag. + */ + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + if ($this->variableName) { + $variableName = '$' . $this->variableName; + } else { + $variableName = ''; + } + + $type = (string) $this->type; + + return $type + . ($variableName !== '' ? ($type !== '' ? ' ' : '') . $variableName : '') + . ($description !== '' ? ($type !== '' || $variableName !== '' ? ' ' : '') . $description : ''); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php new file mode 100644 index 00000000..57e7eb10 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/PropertyWrite.php @@ -0,0 +1,132 @@ +name = 'property-write'; + $this->variableName = $variableName; + $this->type = $type; + $this->description = $description; + } + + /** + * @deprecated Create using static factory is deprecated, + * this method should not be called directly by library consumers + */ + public static function create( + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): self { + Deprecation::triggerIfCalledFromOutside( + 'phpdocumentor/reflection-docblock', + 'https://github.com/phpDocumentor/ReflectionDocBlock/issues/361', + 'Create using static factory is deprecated, this method should not be called directly + by library consumers', + ); + + Assert::stringNotEmpty($body); + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); + + [$firstPart, $body] = self::extractTypeFromBody($body); + $type = null; + $parts = Utils::pregSplit('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE); + $variableName = ''; + + // if the first item that is encountered is not a variable; it is a type + if ($firstPart && $firstPart[0] !== '$') { + $type = $typeResolver->resolve($firstPart, $context); + } else { + // first part is not a type; we should prepend it to the parts array for further processing + array_unshift($parts, $firstPart); + } + + // if the next item starts with a $ it must be the variable name + if (isset($parts[0]) && strpos($parts[0], '$') === 0) { + $variableName = array_shift($parts); + if ($type) { + array_shift($parts); + } + + Assert::notNull($variableName); + + $variableName = substr($variableName, 1); + } + + $description = $descriptionFactory->create(implode('', $parts), $context); + + return new static($variableName, $type, $description); + } + + /** + * Returns the variable's name. + */ + public function getVariableName(): ?string + { + return $this->variableName; + } + + /** + * Returns a string representation for this tag. + */ + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + if ($this->variableName) { + $variableName = '$' . $this->variableName; + } else { + $variableName = ''; + } + + $type = (string) $this->type; + + return $type + . ($variableName !== '' ? ($type !== '' ? ' ' : '') . $variableName : '') + . ($description !== '' ? ($type !== '' || $variableName !== '' ? ' ' : '') . $description : ''); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php new file mode 100644 index 00000000..e4e7e31c --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Fqsen.php @@ -0,0 +1,37 @@ +fqsen = $fqsen; + } + + /** + * @return string string representation of the referenced fqsen + */ + public function __toString(): string + { + return (string) $this->fqsen; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php new file mode 100644 index 00000000..e7dea868 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Reference/Reference.php @@ -0,0 +1,22 @@ +uri = $uri; + } + + public function __toString(): string + { + return $this->uri; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php new file mode 100644 index 00000000..f130760a --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Return_.php @@ -0,0 +1,76 @@ +name = 'return'; + $this->type = $type; + $this->description = $description; + } + + /** + * @deprecated Create using static factory is deprecated, + * this method should not be called directly by library consumers + */ + public static function create( + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): self { + Deprecation::triggerIfCalledFromOutside( + 'phpdocumentor/reflection-docblock', + 'https://github.com/phpDocumentor/ReflectionDocBlock/issues/361', + 'Create using static factory is deprecated, this method should not be called directly + by library consumers', + ); + + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); + + [$type, $description] = self::extractTypeFromBody($body); + + $type = $typeResolver->resolve($type, $context); + $description = $descriptionFactory->create($description, $context); + + return new static($type, $description); + } + + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + $type = $this->type ? '' . $this->type : 'mixed'; + + return $type . ($description !== '' ? ' ' . $description : ''); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php new file mode 100644 index 00000000..e7330e88 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/See.php @@ -0,0 +1,104 @@ +refers = $refers; + $this->description = $description; + } + + public static function create( + string $body, + ?FqsenResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): self { + Assert::notNull($descriptionFactory); + + $parts = Utils::pregSplit('/\s+/Su', $body, 2); + $description = isset($parts[1]) ? $descriptionFactory->create($parts[1], $context) : null; + + // https://tools.ietf.org/html/rfc2396#section-3 + if (preg_match('#\w://\w#', $parts[0])) { + return new static(new Url($parts[0]), $description); + } + + return new static(new FqsenRef(self::resolveFqsen($parts[0], $typeResolver, $context)), $description); + } + + private static function resolveFqsen(string $parts, ?FqsenResolver $fqsenResolver, ?TypeContext $context): Fqsen + { + Assert::notNull($fqsenResolver); + $fqsenParts = explode('::', $parts); + $resolved = $fqsenResolver->resolve($fqsenParts[0], $context); + + if (!array_key_exists(1, $fqsenParts)) { + return $resolved; + } + + return new Fqsen($resolved . '::' . $fqsenParts[1]); + } + + /** + * Returns the ref of this tag. + */ + public function getReference(): Reference + { + return $this->refers; + } + + /** + * Returns a string representation of this tag. + */ + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + $refers = (string) $this->refers; + + return $refers . ($description !== '' ? ($refers !== '' ? ' ' : '') . $description : ''); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php new file mode 100644 index 00000000..24400fa1 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Since.php @@ -0,0 +1,102 @@ +version = $version; + $this->description = $description; + } + + public static function create( + ?string $body, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): ?self { + if (empty($body)) { + return new static(); + } + + $matches = []; + if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) { + return null; + } + + Assert::notNull($descriptionFactory); + + return new static( + $matches[1], + $descriptionFactory->create($matches[2] ?? '', $context) + ); + } + + /** + * Gets the version section of the tag. + */ + public function getVersion(): ?string + { + return $this->version; + } + + /** + * Returns a string representation for this tag. + */ + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + $version = (string) $this->version; + + return $version . ($description !== '' ? ($version !== '' ? ' ' : '') . $description : ''); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php new file mode 100644 index 00000000..f6b4f57f --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Source.php @@ -0,0 +1,115 @@ +startingLine = (int) $startingLine; + $this->lineCount = $lineCount !== null ? (int) $lineCount : null; + $this->description = $description; + } + + public static function create( + string $body, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): self { + Assert::stringNotEmpty($body); + Assert::notNull($descriptionFactory); + + $startingLine = 1; + $lineCount = null; + $description = null; + + // Starting line / Number of lines / Description + if (preg_match('/^([1-9]\d*)\s*(?:((?1))\s+)?(.*)$/sux', $body, $matches)) { + $startingLine = (int) $matches[1]; + if (isset($matches[2]) && $matches[2] !== '') { + $lineCount = (int) $matches[2]; + } + + $description = $matches[3]; + } + + return new static($startingLine, $lineCount, $descriptionFactory->create($description ?? '', $context)); + } + + /** + * Gets the starting line. + * + * @return int The starting line, relative to the structural element's + * location. + */ + public function getStartingLine(): int + { + return $this->startingLine; + } + + /** + * Returns the number of lines. + * + * @return int|null The number of lines, relative to the starting line. NULL + * means "to the end". + */ + public function getLineCount(): ?int + { + return $this->lineCount; + } + + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + $startingLine = (string) $this->startingLine; + + $lineCount = $this->lineCount !== null ? ' ' . $this->lineCount : ''; + + return $startingLine + . $lineCount + . ($description !== '' + ? ' ' . $description + : ''); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/TagWithType.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/TagWithType.php new file mode 100644 index 00000000..271c41b5 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/TagWithType.php @@ -0,0 +1,74 @@ +type; + } + + /** + * @return string[] + */ + protected static function extractTypeFromBody(string $body): array + { + $type = ''; + $nestingLevel = 0; + for ($i = 0, $iMax = strlen($body); $i < $iMax; $i++) { + $character = $body[$i]; + + if ($nestingLevel === 0 && trim($character) === '') { + break; + } + + $type .= $character; + if (in_array($character, ['<', '(', '[', '{'])) { + $nestingLevel++; + continue; + } + + if (in_array($character, ['>', ')', ']', '}'])) { + $nestingLevel--; + continue; + } + } + + if ($nestingLevel < 0 || $nestingLevel > 0) { + throw new InvalidArgumentException( + sprintf('Could not find type in %s, please check for malformed notations', $body) + ); + } + + $description = trim(substr($body, strlen($type))); + + return [$type, $description]; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php new file mode 100644 index 00000000..f21c9101 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Throws.php @@ -0,0 +1,64 @@ +name = 'throws'; + $this->type = $type; + $this->description = $description; + } + + public static function create( + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): self { + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); + + [$type, $description] = self::extractTypeFromBody($body); + + $type = $typeResolver->resolve($type, $context); + $description = $descriptionFactory->create($description, $context); + + return new static($type, $description); + } + + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + $type = (string) $this->type; + + return $type . ($description !== '' ? ($type !== '' ? ' ' : '') . $description : ''); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php new file mode 100644 index 00000000..d9aa3608 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Uses.php @@ -0,0 +1,98 @@ +refers = $refers; + $this->description = $description; + } + + public static function create( + string $body, + ?FqsenResolver $resolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): self { + Assert::notNull($resolver); + Assert::notNull($descriptionFactory); + + $parts = Utils::pregSplit('/\s+/Su', $body, 2); + + return new static( + self::resolveFqsen($parts[0], $resolver, $context), + $descriptionFactory->create($parts[1] ?? '', $context) + ); + } + + private static function resolveFqsen(string $parts, ?FqsenResolver $fqsenResolver, ?TypeContext $context): Fqsen + { + Assert::notNull($fqsenResolver); + $fqsenParts = explode('::', $parts); + $resolved = $fqsenResolver->resolve($fqsenParts[0], $context); + + if (!array_key_exists(1, $fqsenParts)) { + return $resolved; + } + + return new Fqsen($resolved . '::' . $fqsenParts[1]); + } + + /** + * Returns the structural element this tag refers to. + */ + public function getReference(): Fqsen + { + return $this->refers; + } + + /** + * Returns a string representation of this tag. + */ + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + $refers = (string) $this->refers; + + return $refers . ($description !== '' ? ($refers !== '' ? ' ' : '') . $description : ''); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php new file mode 100644 index 00000000..0a79ab94 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Var_.php @@ -0,0 +1,132 @@ +name = 'var'; + $this->variableName = $variableName; + $this->type = $type; + $this->description = $description; + } + + /** + * @deprecated Create using static factory is deprecated, + * this method should not be called directly by library consumers + */ + public static function create( + string $body, + ?TypeResolver $typeResolver = null, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): self { + Deprecation::triggerIfCalledFromOutside( + 'phpdocumentor/reflection-docblock', + 'https://github.com/phpDocumentor/ReflectionDocBlock/issues/361', + 'Create using static factory is deprecated, this method should not be called directly + by library consumers', + ); + Assert::stringNotEmpty($body); + Assert::notNull($typeResolver); + Assert::notNull($descriptionFactory); + + [$firstPart, $body] = self::extractTypeFromBody($body); + + $parts = Utils::pregSplit('/(\s+)/Su', $body, 2, PREG_SPLIT_DELIM_CAPTURE); + $type = null; + $variableName = ''; + + // if the first item that is encountered is not a variable; it is a type + if ($firstPart && $firstPart[0] !== '$') { + $type = $typeResolver->resolve($firstPart, $context); + } else { + // first part is not a type; we should prepend it to the parts array for further processing + array_unshift($parts, $firstPart); + } + + // if the next item starts with a $ it must be the variable name + if (isset($parts[0]) && strpos($parts[0], '$') === 0) { + $variableName = array_shift($parts); + if ($type) { + array_shift($parts); + } + + Assert::notNull($variableName); + + $variableName = substr($variableName, 1); + } + + $description = $descriptionFactory->create(implode('', $parts), $context); + + return new static($variableName, $type, $description); + } + + /** + * Returns the variable's name. + */ + public function getVariableName(): ?string + { + return $this->variableName; + } + + /** + * Returns a string representation for this tag. + */ + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + if ($this->variableName) { + $variableName = '$' . $this->variableName; + } else { + $variableName = ''; + } + + $type = (string) $this->type; + + return $type + . ($variableName !== '' ? ($type !== '' ? ' ' : '') . $variableName : '') + . ($description !== '' ? ($type !== '' || $variableName !== '' ? ' ' : '') . $description : ''); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php new file mode 100644 index 00000000..1ed25d17 --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlock/Tags/Version.php @@ -0,0 +1,105 @@ +version = $version; + $this->description = $description; + } + + public static function create( + ?string $body, + ?DescriptionFactory $descriptionFactory = null, + ?TypeContext $context = null + ): ?self { + if (empty($body)) { + return new static(); + } + + $matches = []; + if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) { + return null; + } + + $description = null; + if ($descriptionFactory !== null) { + $description = $descriptionFactory->create($matches[2] ?? '', $context); + } + + return new static( + $matches[1], + $description + ); + } + + /** + * Gets the version section of the tag. + */ + public function getVersion(): ?string + { + return $this->version; + } + + /** + * Returns a string representation for this tag. + */ + public function __toString(): string + { + if ($this->description) { + $description = $this->description->render(); + } else { + $description = ''; + } + + $version = (string) $this->version; + + return $version . ($description !== '' ? ($version !== '' ? ' ' : '') . $description : ''); + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php new file mode 100644 index 00000000..1f7faf1a --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactory.php @@ -0,0 +1,313 @@ +descriptionFactory = $descriptionFactory; + $this->tagFactory = $tagFactory; + } + + /** + * Factory method for easy instantiation. + * + * @param array|Factory> $additionalTags + */ + public static function createInstance(array $additionalTags = []): DocBlockFactoryInterface + { + $fqsenResolver = new FqsenResolver(); + $tagFactory = new StandardTagFactory($fqsenResolver); + $descriptionFactory = new DescriptionFactory($tagFactory); + $typeResolver = new TypeResolver($fqsenResolver); + + $phpstanTagFactory = new AbstractPHPStanFactory( + new ParamFactory($typeResolver, $descriptionFactory), + new VarFactory($typeResolver, $descriptionFactory), + new ReturnFactory($typeResolver, $descriptionFactory), + new PropertyFactory($typeResolver, $descriptionFactory), + new PropertyReadFactory($typeResolver, $descriptionFactory), + new PropertyWriteFactory($typeResolver, $descriptionFactory), + new MethodFactory($typeResolver, $descriptionFactory) + ); + + $tagFactory->addService($descriptionFactory); + $tagFactory->addService($typeResolver); + $tagFactory->registerTagHandler('param', $phpstanTagFactory); + $tagFactory->registerTagHandler('var', $phpstanTagFactory); + $tagFactory->registerTagHandler('return', $phpstanTagFactory); + $tagFactory->registerTagHandler('property', $phpstanTagFactory); + $tagFactory->registerTagHandler('property-read', $phpstanTagFactory); + $tagFactory->registerTagHandler('property-write', $phpstanTagFactory); + $tagFactory->registerTagHandler('method', $phpstanTagFactory); + + $docBlockFactory = new self($descriptionFactory, $tagFactory); + foreach ($additionalTags as $tagName => $tagHandler) { + $docBlockFactory->registerTagHandler($tagName, $tagHandler); + } + + return $docBlockFactory; + } + + /** + * @param object|string $docblock A string containing the DocBlock to parse or an object supporting the + * getDocComment method (such as a ReflectionClass object). + */ + public function create($docblock, ?Types\Context $context = null, ?Location $location = null): DocBlock + { + if (is_object($docblock)) { + if (!method_exists($docblock, 'getDocComment')) { + $exceptionMessage = 'Invalid object passed; the given object must support the getDocComment method'; + + throw new InvalidArgumentException($exceptionMessage); + } + + $docblock = $docblock->getDocComment(); + Assert::string($docblock); + } + + Assert::stringNotEmpty($docblock); + + if ($context === null) { + $context = new Types\Context(''); + } + + $parts = $this->splitDocBlock($this->stripDocComment($docblock)); + + [$templateMarker, $summary, $description, $tags] = $parts; + + return new DocBlock( + $summary, + $description ? $this->descriptionFactory->create($description, $context) : null, + $this->parseTagBlock($tags, $context), + $context, + $location, + $templateMarker === '#@+', + $templateMarker === '#@-' + ); + } + + /** + * @param class-string|Factory $handler + */ + public function registerTagHandler(string $tagName, $handler): void + { + $this->tagFactory->registerTagHandler($tagName, $handler); + } + + /** + * Strips the asterisks from the DocBlock comment. + * + * @param string $comment String containing the comment text. + */ + private function stripDocComment(string $comment): string + { + $comment = preg_replace('#[ \t]*(?:\/\*\*|\*\/|\*)?[ \t]?(.*)?#u', '$1', $comment); + Assert::string($comment); + $comment = trim($comment); + + // reg ex above is not able to remove */ from a single line docblock + if (substr($comment, -2) === '*/') { + $comment = trim(substr($comment, 0, -2)); + } + + return str_replace(["\r\n", "\r"], "\n", $comment); + } + + // phpcs:disable + + /** + * Splits the DocBlock into a template marker, summary, description and block of tags. + * + * @param string $comment Comment to split into the sub-parts. + * + * @return string[] containing the template marker (if any), summary, description and a string containing the tags. + * + * @author Mike van Riel for extending the regex with template marker support. + * + * @author Richard van Velzen (@_richardJ) Special thanks to Richard for the regex responsible for the split. + */ + private function splitDocBlock(string $comment): array + { + // phpcs:enable + // Performance improvement cheat: if the first character is an @ then only tags are in this DocBlock. This + // method does not split tags so we return this verbatim as the fourth result (tags). This saves us the + // performance impact of running a regular expression + if (strpos($comment, '@') === 0) { + return ['', '', '', $comment]; + } + + // clears all extra horizontal whitespace from the line endings to prevent parsing issues + $comment = preg_replace('/\h*$/Sum', '', $comment); + Assert::string($comment); + /* + * Splits the docblock into a template marker, summary, description and tags section. + * + * - The template marker is empty, #@+ or #@- if the DocBlock starts with either of those (a newline may + * occur after it and will be stripped). + * - The short description is started from the first character until a dot is encountered followed by a + * newline OR two consecutive newlines (horizontal whitespace is taken into account to consider spacing + * errors). This is optional. + * - The long description, any character until a new line is encountered followed by an @ and word + * characters (a tag). This is optional. + * - Tags; the remaining characters + * + * Big thanks to RichardJ for contributing this Regular Expression + */ + preg_match( + '/ + \A + # 1. Extract the template marker + (?:(\#\@\+|\#\@\-)\n?)? + + # 2. Extract the summary + (?: + (?! @\pL ) # The summary may not start with an @ + ( + [^\n.]+ + (?: + (?! \. \n | \n{2} ) # End summary upon a dot followed by newline or two newlines + [\n.]* (?! [ \t]* @\pL ) # End summary when an @ is found as first character on a new line + [^\n.]+ # Include anything else + )* + \.? + )? + ) + + # 3. Extract the description + (?: + \s* # Some form of whitespace _must_ precede a description because a summary must be there + (?! @\pL ) # The description may not start with an @ + ( + [^\n]+ + (?: \n+ + (?! [ \t]* @\pL ) # End description when an @ is found as first character on a new line + [^\n]+ # Include anything else + )* + ) + )? + + # 4. Extract the tags (anything that follows) + (\s+ [\s\S]*)? # everything that follows + /ux', + $comment, + $matches + ); + array_shift($matches); + + while (count($matches) < 4) { + $matches[] = ''; + } + + return $matches; + } + + /** + * Creates the tag objects. + * + * @param string $tags Tag block to parse. + * @param Types\Context $context Context of the parsed Tag + * + * @return DocBlock\Tag[] + */ + private function parseTagBlock(string $tags, Types\Context $context): array + { + $tags = $this->filterTagBlock($tags); + if ($tags === null) { + return []; + } + + $result = []; + $lines = $this->splitTagBlockIntoTagLines($tags); + foreach ($lines as $key => $tagLine) { + $result[$key] = $this->tagFactory->create(trim($tagLine), $context); + } + + return $result; + } + + /** + * @return string[] + */ + private function splitTagBlockIntoTagLines(string $tags): array + { + $result = []; + foreach (explode("\n", $tags) as $tagLine) { + if ($tagLine !== '' && strpos($tagLine, '@') === 0) { + $result[] = $tagLine; + } else { + $result[count($result) - 1] .= "\n" . $tagLine; + } + } + + return $result; + } + + private function filterTagBlock(string $tags): ?string + { + $tags = trim($tags); + if (!$tags) { + return null; + } + + if ($tags[0] !== '@') { + // @codeCoverageIgnoreStart + // Can't simulate this; this only happens if there is an error with the parsing of the DocBlock that + // we didn't foresee. + + throw new LogicException('A tag block started with text instead of an at-sign(@): ' . $tags); + + // @codeCoverageIgnoreEnd + } + + return $tags; + } +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php b/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php new file mode 100644 index 00000000..cacc382e --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/DocBlockFactoryInterface.php @@ -0,0 +1,23 @@ +> $additionalTags + */ + public static function createInstance(array $additionalTags = []): self; + + /** + * @param string|object $docblock + */ + public function create($docblock, ?Types\Context $context = null, ?Location $location = null): DocBlock; +} diff --git a/vendor/phpdocumentor/reflection-docblock/src/Exception/PcreException.php b/vendor/phpdocumentor/reflection-docblock/src/Exception/PcreException.php new file mode 100644 index 00000000..b8b6da8c --- /dev/null +++ b/vendor/phpdocumentor/reflection-docblock/src/Exception/PcreException.php @@ -0,0 +1,44 @@ + please note that if you want to pass partial class names that additional steps are necessary, see the + > chapter `Resolving partial classes and FQSENs` for more information. + +Where the FqsenResolver can resolve: + +- Constant expressions (i.e. `@see \MyNamespace\MY_CONSTANT`) +- Function expressions (i.e. `@see \MyNamespace\myFunction()`) +- Class expressions (i.e. `@see \MyNamespace\MyClass`) +- Interface expressions (i.e. `@see \MyNamespace\MyInterface`) +- Trait expressions (i.e. `@see \MyNamespace\MyTrait`) +- Class constant expressions (i.e. `@see \MyNamespace\MyClass::MY_CONSTANT`) +- Property expressions (i.e. `@see \MyNamespace\MyClass::$myProperty`) +- Method expressions (i.e. `@see \MyNamespace\MyClass::myMethod()`) + +## Resolving a type + +In order to resolve a type you will have to instantiate the class `\phpDocumentor\Reflection\TypeResolver` and call its `resolve` method like this: + +```php +$typeResolver = new \phpDocumentor\Reflection\TypeResolver(); +$type = $typeResolver->resolve('string|integer'); +``` + +In this example you will receive a Value Object of class `\phpDocumentor\Reflection\Types\Compound` that has two +elements, one of type `\phpDocumentor\Reflection\Types\String_` and one of type +`\phpDocumentor\Reflection\Types\Integer`. + +The real power of this resolver is in its capability to expand partial class names into fully qualified class names; but in order to do that we need an additional `\phpDocumentor\Reflection\Types\Context` class that will inform the resolver in which namespace the given expression occurs and which namespace aliases (or imports) apply. + +### Resolving nullable types + +Php 7.1 introduced nullable types e.g. `?string`. Type resolver will resolve the original type without the nullable notation `?` +just like it would do without the `?`. After that the type is wrapped in a `\phpDocumentor\Reflection\Types\Nullable` object. +The `Nullable` type has a method to fetch the actual type. + +## Resolving an FQSEN + +A Fully Qualified Structural Element Name is a reference to another element in your code bases and can be resolved using the `\phpDocumentor\Reflection\FqsenResolver` class' `resolve` method, like this: + +```php +$fqsenResolver = new \phpDocumentor\Reflection\FqsenResolver(); +$fqsen = $fqsenResolver->resolve('\phpDocumentor\Reflection\FqsenResolver::resolve()'); +``` + +In this example we resolve a Fully Qualified Structural Element Name (meaning that it includes the full namespace, class name and element name) and receive a Value Object of type `\phpDocumentor\Reflection\Fqsen`. + +The real power of this resolver is in its capability to expand partial element names into Fully Qualified Structural Element Names; but in order to do that we need an additional `\phpDocumentor\Reflection\Types\Context` class that will inform the resolver in which namespace the given expression occurs and which namespace aliases (or imports) apply. + +## Resolving partial Classes and Structural Element Names + +Perhaps the best feature of this library is that it knows how to resolve partial class names into fully qualified class names. + +For example, you have this file: + +```php +namespace My\Example; + +use phpDocumentor\Reflection\Types; + +class Classy +{ + /** + * @var Types\Context + * @see Classy::otherFunction() + */ + public function __construct($context) {} + + public function otherFunction(){} +} +``` + +Suppose that you would want to resolve (and expand) the type in the `@var` tag and the element name in the `@see` tag. + +For the resolvers to know how to expand partial names you have to provide a bit of _Context_ for them by instantiating a new class named `\phpDocumentor\Reflection\Types\Context` with the name of the namespace and the aliases that are in play. + +### Creating a Context + +You can do this by manually creating a Context like this: + +```php +$context = new \phpDocumentor\Reflection\Types\Context( + '\My\Example', + [ 'Types' => '\phpDocumentor\Reflection\Types'] +); +``` + +Or by using the `\phpDocumentor\Reflection\Types\ContextFactory` to instantiate a new context based on a Reflector object or by providing the namespace that you'd like to extract and the source code of the file in which the given type expression occurs. + +```php +$contextFactory = new \phpDocumentor\Reflection\Types\ContextFactory(); +$context = $contextFactory->createFromReflector(new ReflectionMethod('\My\Example\Classy', '__construct')); +``` + +or + +```php +$contextFactory = new \phpDocumentor\Reflection\Types\ContextFactory(); +$context = $contextFactory->createForNamespace('\My\Example', file_get_contents('My/Example/Classy.php')); +``` + +### Using the Context + +After you have obtained a Context it is just a matter of passing it along with the `resolve` method of either Resolver class as second argument and the Resolvers will take this into account when resolving partial names. + +To obtain the resolved class name for the `@var` tag in the example above you can do: + +```php +$typeResolver = new \phpDocumentor\Reflection\TypeResolver(); +$type = $typeResolver->resolve('Types\Context', $context); +``` + +When you do this you will receive an object of class `\phpDocumentor\Reflection\Types\Object_` for which you can call the `getFqsen` method to receive a Value Object that represents the complete FQSEN. So that would be `phpDocumentor\Reflection\Types\Context`. + +> Why is the FQSEN wrapped in another object `Object_`? +> +> The resolve method of the TypeResolver only returns object with the interface `Type` and the FQSEN is a common type that does not represent a Type. Also: in some cases a type can represent an "Untyped Object", meaning that it is an object (signified by the `object` keyword) but does not refer to a specific element using an FQSEN. + +Another example is on how to resolve the FQSEN of a method as can be seen with the `@see` tag in the example above. To resolve that you can do the following: + +```php +$fqsenResolver = new \phpDocumentor\Reflection\FqsenResolver(); +$type = $fqsenResolver->resolve('Classy::otherFunction()', $context); +``` + +Because Classy is a Class in the current namespace its FQSEN will have the `My\Example` namespace and by calling the `resolve` method of the FQSEN Resolver you will receive an `Fqsen` object that refers to `\My\Example\Classy::otherFunction()`. diff --git a/vendor/phpdocumentor/type-resolver/composer.json b/vendor/phpdocumentor/type-resolver/composer.json new file mode 100644 index 00000000..c4afb7d6 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/composer.json @@ -0,0 +1,51 @@ +{ + "name": "phpdocumentor/type-resolver", + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "type": "library", + "license": "MIT", + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "require": { + "php": "^7.3 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.13", + "doctrine/deprecations": "^1.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpunit/phpunit": "^9.5", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/extension-installer": "^1.1", + "vimeo/psalm": "^4.25", + "rector/rector": "^0.13.9", + "phpbench/phpbench": "^1.2" + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "autoload-dev": { + "psr-4": { + "phpDocumentor\\Reflection\\": ["tests/unit", "tests/benchmark"] + } + }, + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "config": { + "platform": { + "php": "7.3.0" + }, + "allow-plugins": { + "phpstan/extension-installer": true + } + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/FqsenResolver.php b/vendor/phpdocumentor/type-resolver/src/FqsenResolver.php new file mode 100644 index 00000000..068fa208 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/FqsenResolver.php @@ -0,0 +1,80 @@ +isFqsen($fqsen)) { + return new Fqsen($fqsen); + } + + return $this->resolvePartialStructuralElementName($fqsen, $context); + } + + /** + * Tests whether the given type is a Fully Qualified Structural Element Name. + */ + private function isFqsen(string $type): bool + { + return strpos($type, self::OPERATOR_NAMESPACE) === 0; + } + + /** + * Resolves a partial Structural Element Name (i.e. `Reflection\DocBlock`) to its FQSEN representation + * (i.e. `\phpDocumentor\Reflection\DocBlock`) based on the Namespace and aliases mentioned in the Context. + * + * @throws InvalidArgumentException When type is not a valid FQSEN. + */ + private function resolvePartialStructuralElementName(string $type, Context $context): Fqsen + { + $typeParts = explode(self::OPERATOR_NAMESPACE, $type, 2); + + $namespaceAliases = $context->getNamespaceAliases(); + + // if the first segment is not an alias; prepend namespace name and return + if (!isset($namespaceAliases[$typeParts[0]])) { + $namespace = $context->getNamespace(); + if ($namespace !== '') { + $namespace .= self::OPERATOR_NAMESPACE; + } + + return new Fqsen(self::OPERATOR_NAMESPACE . $namespace . $type); + } + + $typeParts[0] = $namespaceAliases[$typeParts[0]]; + + return new Fqsen(self::OPERATOR_NAMESPACE . implode(self::OPERATOR_NAMESPACE, $typeParts)); + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/PseudoType.php b/vendor/phpdocumentor/type-resolver/src/PseudoType.php new file mode 100644 index 00000000..dd91ed79 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/PseudoType.php @@ -0,0 +1,19 @@ +items = $items; + } + + /** + * @return ArrayShapeItem[] + */ + public function getItems(): array + { + return $this->items; + } + + public function underlyingType(): Type + { + return new Array_(new Mixed_(), new ArrayKey()); + } + + public function __toString(): string + { + return 'array{' . implode(', ', $this->items) . '}'; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/PseudoTypes/ArrayShapeItem.php b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/ArrayShapeItem.php new file mode 100644 index 00000000..a9756bb5 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/ArrayShapeItem.php @@ -0,0 +1,65 @@ +key = $key; + $this->value = $value ?? new Mixed_(); + $this->optional = $optional; + } + + public function getKey(): ?string + { + return $this->key; + } + + public function getValue(): Type + { + return $this->value; + } + + public function isOptional(): bool + { + return $this->optional; + } + + public function __toString(): string + { + if ($this->key !== null) { + return sprintf( + '%s%s: %s', + $this->key, + $this->optional ? '?' : '', + (string) $this->value + ); + } + + return (string) $this->value; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/PseudoTypes/CallableString.php b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/CallableString.php new file mode 100644 index 00000000..b6934561 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/CallableString.php @@ -0,0 +1,39 @@ +owner = $owner; + $this->expression = $expression; + } + + public function getOwner(): Type + { + return $this->owner; + } + + public function getExpression(): string + { + return $this->expression; + } + + public function underlyingType(): Type + { + return new Mixed_(); + } + + public function __toString(): string + { + return sprintf('%s::%s', (string) $this->owner, $this->expression); + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/PseudoTypes/False_.php b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/False_.php new file mode 100644 index 00000000..871c1720 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/False_.php @@ -0,0 +1,40 @@ +value = $value; + } + + public function getValue(): float + { + return $this->value; + } + + public function underlyingType(): Type + { + return new Float_(); + } + + public function __toString(): string + { + return (string) $this->value; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/PseudoTypes/HtmlEscapedString.php b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/HtmlEscapedString.php new file mode 100644 index 00000000..aa4d8db5 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/HtmlEscapedString.php @@ -0,0 +1,39 @@ +minValue = $minValue; + $this->maxValue = $maxValue; + } + + public function underlyingType(): Type + { + return new Integer(); + } + + public function getMinValue(): string + { + return $this->minValue; + } + + public function getMaxValue(): string + { + return $this->maxValue; + } + + /** + * Returns a rendered output of the Type as it would be used in a DocBlock. + */ + public function __toString(): string + { + return 'int<' . $this->minValue . ', ' . $this->maxValue . '>'; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/PseudoTypes/IntegerValue.php b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/IntegerValue.php new file mode 100644 index 00000000..51f0d34a --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/IntegerValue.php @@ -0,0 +1,45 @@ +value = $value; + } + + public function getValue(): int + { + return $this->value; + } + + public function underlyingType(): Type + { + return new Integer(); + } + + public function __toString(): string + { + return (string) $this->value; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/PseudoTypes/List_.php b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/List_.php new file mode 100644 index 00000000..f9f0c6b5 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/List_.php @@ -0,0 +1,50 @@ +valueType instanceof Mixed_) { + return 'list'; + } + + return 'list<' . $this->valueType . '>'; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/PseudoTypes/LiteralString.php b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/LiteralString.php new file mode 100644 index 00000000..690f782b --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/LiteralString.php @@ -0,0 +1,39 @@ +valueType instanceof Mixed_) { + return 'non-empty-list'; + } + + return 'non-empty-list<' . $this->valueType . '>'; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/PseudoTypes/NonEmptyLowercaseString.php b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/NonEmptyLowercaseString.php new file mode 100644 index 00000000..86400165 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/NonEmptyLowercaseString.php @@ -0,0 +1,39 @@ +value = $value; + } + + public function getValue(): string + { + return $this->value; + } + + public function underlyingType(): Type + { + return new String_(); + } + + public function __toString(): string + { + return sprintf('"%s"', $this->value); + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/PseudoTypes/TraitString.php b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/TraitString.php new file mode 100644 index 00000000..ac217c25 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/PseudoTypes/TraitString.php @@ -0,0 +1,39 @@ + List of recognized keywords and unto which Value Object they map + * @psalm-var array> + */ + private $keywords = [ + 'string' => String_::class, + 'class-string' => ClassString::class, + 'interface-string' => InterfaceString::class, + 'html-escaped-string' => HtmlEscapedString::class, + 'lowercase-string' => LowercaseString::class, + 'non-empty-lowercase-string' => NonEmptyLowercaseString::class, + 'non-empty-string' => NonEmptyString::class, + 'numeric-string' => NumericString::class, + 'numeric' => Numeric_::class, + 'trait-string' => TraitString::class, + 'int' => Integer::class, + 'integer' => Integer::class, + 'positive-int' => PositiveInteger::class, + 'negative-int' => NegativeInteger::class, + 'bool' => Boolean::class, + 'boolean' => Boolean::class, + 'real' => Float_::class, + 'float' => Float_::class, + 'double' => Float_::class, + 'object' => Object_::class, + 'mixed' => Mixed_::class, + 'array' => Array_::class, + 'array-key' => ArrayKey::class, + 'resource' => Resource_::class, + 'void' => Void_::class, + 'null' => Null_::class, + 'scalar' => Scalar::class, + 'callback' => Callable_::class, + 'callable' => Callable_::class, + 'callable-string' => CallableString::class, + 'false' => False_::class, + 'true' => True_::class, + 'literal-string' => LiteralString::class, + 'self' => Self_::class, + '$this' => This::class, + 'static' => Static_::class, + 'parent' => Parent_::class, + 'iterable' => Iterable_::class, + 'never' => Never_::class, + 'list' => List_::class, + 'non-empty-list' => NonEmptyList::class, + ]; + + /** + * @psalm-readonly + * @var FqsenResolver + */ + private $fqsenResolver; + /** + * @psalm-readonly + * @var TypeParser + */ + private $typeParser; + /** + * @psalm-readonly + * @var Lexer + */ + private $lexer; + + /** + * Initializes this TypeResolver with the means to create and resolve Fqsen objects. + */ + public function __construct(?FqsenResolver $fqsenResolver = null) + { + $this->fqsenResolver = $fqsenResolver ?: new FqsenResolver(); + $this->typeParser = new TypeParser(new ConstExprParser()); + $this->lexer = new Lexer(); + } + + /** + * Analyzes the given type and returns the FQCN variant. + * + * When a type is provided this method checks whether it is not a keyword or + * Fully Qualified Class Name. If so it will use the given namespace and + * aliases to expand the type to a FQCN representation. + * + * This method only works as expected if the namespace and aliases are set; + * no dynamic reflection is being performed here. + * + * @uses Context::getNamespace() to determine with what to prefix the type name. + * @uses Context::getNamespaceAliases() to check whether the first part of the relative type name should not be + * replaced with another namespace. + * + * @param string $type The relative or absolute type. + */ + public function resolve(string $type, ?Context $context = null): Type + { + $type = trim($type); + if (!$type) { + throw new InvalidArgumentException('Attempted to resolve "' . $type . '" but it appears to be empty'); + } + + if ($context === null) { + $context = new Context(''); + } + + $tokens = $this->lexer->tokenize($type); + $tokenIterator = new TokenIterator($tokens); + + $ast = $this->parse($tokenIterator); + $type = $this->createType($ast, $context); + + return $this->tryParseRemainingCompoundTypes($tokenIterator, $context, $type); + } + + public function createType(?TypeNode $type, Context $context): Type + { + if ($type === null) { + return new Mixed_(); + } + + switch (get_class($type)) { + case ArrayTypeNode::class: + return new Array_( + $this->createType($type->type, $context) + ); + + case ArrayShapeNode::class: + return new ArrayShape( + ...array_map( + function (ArrayShapeItemNode $item) use ($context): ArrayShapeItem { + return new ArrayShapeItem( + (string) $item->keyName, + $this->createType($item->valueType, $context), + $item->optional + ); + }, + $type->items + ) + ); + + case CallableTypeNode::class: + return $this->createFromCallable($type, $context); + + case ConstTypeNode::class: + return $this->createFromConst($type, $context); + + case GenericTypeNode::class: + return $this->createFromGeneric($type, $context); + + case IdentifierTypeNode::class: + return $this->resolveSingleType($type->name, $context); + + case IntersectionTypeNode::class: + return new Intersection( + array_filter( + array_map( + function (TypeNode $nestedType) use ($context): Type { + $type = $this->createType($nestedType, $context); + if ($type instanceof AggregatedType) { + return new Expression($type); + } + + return $type; + }, + $type->types + ) + ) + ); + + case NullableTypeNode::class: + $nestedType = $this->createType($type->type, $context); + + return new Nullable($nestedType); + + case UnionTypeNode::class: + return new Compound( + array_filter( + array_map( + function (TypeNode $nestedType) use ($context): Type { + $type = $this->createType($nestedType, $context); + if ($type instanceof AggregatedType) { + return new Expression($type); + } + + return $type; + }, + $type->types + ) + ) + ); + + case ThisTypeNode::class: + return new This(); + + case ConditionalTypeNode::class: + case ConditionalTypeForParameterNode::class: + case OffsetAccessTypeNode::class: + default: + return new Mixed_(); + } + } + + private function createFromGeneric(GenericTypeNode $type, Context $context): Type + { + switch (strtolower($type->type->name)) { + case 'array': + return $this->createArray($type->genericTypes, $context); + + case 'class-string': + $subType = $this->createType($type->genericTypes[0], $context); + if (!$subType instanceof Object_ || $subType->getFqsen() === null) { + throw new RuntimeException( + $subType . ' is not a class string' + ); + } + + return new ClassString( + $subType->getFqsen() + ); + + case 'interface-string': + $subType = $this->createType($type->genericTypes[0], $context); + if (!$subType instanceof Object_ || $subType->getFqsen() === null) { + throw new RuntimeException( + $subType . ' is not a class string' + ); + } + + return new InterfaceString( + $subType->getFqsen() + ); + + case 'list': + return new List_( + $this->createType($type->genericTypes[0], $context) + ); + + case 'non-empty-list': + return new NonEmptyList( + $this->createType($type->genericTypes[0], $context) + ); + + case 'int': + if (isset($type->genericTypes[1]) === false) { + throw new RuntimeException('int has not the correct format'); + } + + return new IntegerRange((string) $type->genericTypes[0], (string) $type->genericTypes[1]); + + case 'iterable': + return new Iterable_( + ...array_reverse( + array_map( + function (TypeNode $genericType) use ($context): Type { + return $this->createType($genericType, $context); + }, + $type->genericTypes + ) + ) + ); + + default: + $collectionType = $this->createType($type->type, $context); + if ($collectionType instanceof Object_ === false) { + throw new RuntimeException(sprintf('%s is not a collection', (string) $collectionType)); + } + + return new Collection( + $collectionType->getFqsen(), + ...array_reverse( + array_map( + function (TypeNode $genericType) use ($context): Type { + return $this->createType($genericType, $context); + }, + $type->genericTypes + ) + ) + ); + } + } + + private function createFromCallable(CallableTypeNode $type, Context $context): Callable_ + { + return new Callable_(array_map( + function (CallableTypeParameterNode $param) use ($context): CallableParameter { + return new CallableParameter( + $this->createType($param->type, $context), + $param->parameterName !== '' ? trim($param->parameterName, '$') : null, + $param->isReference, + $param->isVariadic, + $param->isOptional + ); + }, + $type->parameters + ), $this->createType($type->returnType, $context)); + } + + private function createFromConst(ConstTypeNode $type, Context $context): Type + { + switch (true) { + case $type->constExpr instanceof ConstExprIntegerNode: + return new IntegerValue((int) $type->constExpr->value); + + case $type->constExpr instanceof ConstExprFloatNode: + return new FloatValue((float) $type->constExpr->value); + + case $type->constExpr instanceof ConstExprStringNode: + return new StringValue($type->constExpr->value); + + case $type->constExpr instanceof ConstFetchNode: + return new ConstExpression( + $this->resolve($type->constExpr->className, $context), + $type->constExpr->name + ); + + default: + throw new RuntimeException(sprintf('Unsupported constant type %s', get_class($type))); + } + } + + /** + * resolve the given type into a type object + * + * @param string $type the type string, representing a single type + * + * @return Type|Array_|Object_ + * + * @psalm-mutation-free + */ + private function resolveSingleType(string $type, Context $context): object + { + switch (true) { + case $this->isKeyword($type): + return $this->resolveKeyword($type); + + case $this->isFqsen($type): + return $this->resolveTypedObject($type); + + case $this->isPartialStructuralElementName($type): + return $this->resolveTypedObject($type, $context); + + // @codeCoverageIgnoreStart + default: + // I haven't got the foggiest how the logic would come here but added this as a defense. + throw new RuntimeException( + 'Unable to resolve type "' . $type . '", there is no known method to resolve it' + ); + } + + // @codeCoverageIgnoreEnd + } + + /** + * Adds a keyword to the list of Keywords and associates it with a specific Value Object. + * + * @psalm-param class-string $typeClassName + */ + public function addKeyword(string $keyword, string $typeClassName): void + { + if (!class_exists($typeClassName)) { + throw new InvalidArgumentException( + 'The Value Object that needs to be created with a keyword "' . $keyword . '" must be an existing class' + . ' but we could not find the class ' . $typeClassName + ); + } + + $interfaces = class_implements($typeClassName); + if ($interfaces === false) { + throw new InvalidArgumentException( + 'The Value Object that needs to be created with a keyword "' . $keyword . '" must be an existing class' + . ' but we could not find the class ' . $typeClassName + ); + } + + if (!in_array(Type::class, $interfaces, true)) { + throw new InvalidArgumentException( + 'The class "' . $typeClassName . '" must implement the interface "phpDocumentor\Reflection\Type"' + ); + } + + $this->keywords[$keyword] = $typeClassName; + } + + /** + * Detects whether the given type represents a PHPDoc keyword. + * + * @param string $type A relative or absolute type as defined in the phpDocumentor documentation. + * + * @psalm-mutation-free + */ + private function isKeyword(string $type): bool + { + return array_key_exists(strtolower($type), $this->keywords); + } + + /** + * Detects whether the given type represents a relative structural element name. + * + * @param string $type A relative or absolute type as defined in the phpDocumentor documentation. + * + * @psalm-mutation-free + */ + private function isPartialStructuralElementName(string $type): bool + { + return (isset($type[0]) && $type[0] !== self::OPERATOR_NAMESPACE) && !$this->isKeyword($type); + } + + /** + * Tests whether the given type is a Fully Qualified Structural Element Name. + * + * @psalm-mutation-free + */ + private function isFqsen(string $type): bool + { + return strpos($type, self::OPERATOR_NAMESPACE) === 0; + } + + /** + * Resolves the given keyword (such as `string`) into a Type object representing that keyword. + * + * @psalm-mutation-free + */ + private function resolveKeyword(string $type): Type + { + $className = $this->keywords[strtolower($type)]; + + return new $className(); + } + + /** + * Resolves the given FQSEN string into an FQSEN object. + * + * @psalm-mutation-free + */ + private function resolveTypedObject(string $type, ?Context $context = null): Object_ + { + return new Object_($this->fqsenResolver->resolve($type, $context)); + } + + /** @param TypeNode[] $typeNodes */ + private function createArray(array $typeNodes, Context $context): Array_ + { + $types = array_reverse( + array_map( + function (TypeNode $node) use ($context): Type { + return $this->createType($node, $context); + }, + $typeNodes + ) + ); + + if (isset($types[1]) === false) { + return new Array_(...$types); + } + + if ($this->validArrayKeyType($types[1]) || $types[1] instanceof ArrayKey) { + return new Array_(...$types); + } + + if ($types[1] instanceof Compound && $types[1]->getIterator()->count() === 2) { + if ($this->validArrayKeyType($types[1]->get(0)) && $this->validArrayKeyType($types[1]->get(1))) { + return new Array_(...$types); + } + } + + throw new RuntimeException('An array can have only integers or strings as keys'); + } + + private function validArrayKeyType(?Type $type): bool + { + return $type instanceof String_ || $type instanceof Integer; + } + + private function parse(TokenIterator $tokenIterator): TypeNode + { + try { + $ast = $this->typeParser->parse($tokenIterator); + } catch (ParserException $e) { + throw new RuntimeException($e->getMessage(), 0, $e); + } + + return $ast; + } + + /** + * Will try to parse unsupported type notations by phpstan + * + * The phpstan parser doesn't support the illegal nullable combinations like this library does. + * This method will warn the user about those notations but for bc purposes we will still have it here. + */ + private function tryParseRemainingCompoundTypes(TokenIterator $tokenIterator, Context $context, Type $type): Type + { + if ( + $tokenIterator->isCurrentTokenType(Lexer::TOKEN_UNION) || + $tokenIterator->isCurrentTokenType(Lexer::TOKEN_INTERSECTION) + ) { + Deprecation::trigger( + 'phpdocumentor/type-resolver', + 'https://github.com/phpDocumentor/TypeResolver/issues/184', + 'Legacy nullable type detected, please update your code as + you are using nullable types in a docblock. support will be removed in v2.0.0' + ); + } + + $continue = true; + while ($continue) { + $continue = false; + while ($tokenIterator->tryConsumeTokenType(Lexer::TOKEN_UNION)) { + $ast = $this->parse($tokenIterator); + $type2 = $this->createType($ast, $context); + $type = new Compound([$type, $type2]); + $continue = true; + } + + while ($tokenIterator->tryConsumeTokenType(Lexer::TOKEN_INTERSECTION)) { + $ast = $this->typeParser->parse($tokenIterator); + $type2 = $this->createType($ast, $context); + $type = new Intersection([$type, $type2]); + $continue = true; + } + } + + return $type; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/AbstractList.php b/vendor/phpdocumentor/type-resolver/src/Types/AbstractList.php new file mode 100644 index 00000000..ee8ace80 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/AbstractList.php @@ -0,0 +1,83 @@ +valueType = $valueType; + $this->defaultKeyType = new Compound([new String_(), new Integer()]); + $this->keyType = $keyType; + } + + /** + * Returns the type for the keys of this array. + */ + public function getKeyType(): Type + { + return $this->keyType ?? $this->defaultKeyType; + } + + /** + * Returns the type for the values of this array. + */ + public function getValueType(): Type + { + return $this->valueType; + } + + /** + * Returns a rendered output of the Type as it would be used in a DocBlock. + */ + public function __toString(): string + { + if ($this->keyType) { + return 'array<' . $this->keyType . ',' . $this->valueType . '>'; + } + + if ($this->valueType instanceof Mixed_) { + return 'array'; + } + + if ($this->valueType instanceof Compound) { + return '(' . $this->valueType . ')[]'; + } + + return $this->valueType . '[]'; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/AggregatedType.php b/vendor/phpdocumentor/type-resolver/src/Types/AggregatedType.php new file mode 100644 index 00000000..e1da6cb2 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/AggregatedType.php @@ -0,0 +1,125 @@ + + */ +abstract class AggregatedType implements Type, IteratorAggregate +{ + /** + * @psalm-allow-private-mutation + * @var array + */ + private $types = []; + + /** @var string */ + private $token; + + /** + * @param array $types + */ + public function __construct(array $types, string $token) + { + foreach ($types as $type) { + $this->add($type); + } + + $this->token = $token; + } + + /** + * Returns the type at the given index. + */ + public function get(int $index): ?Type + { + if (!$this->has($index)) { + return null; + } + + return $this->types[$index]; + } + + /** + * Tests if this compound type has a type with the given index. + */ + public function has(int $index): bool + { + return array_key_exists($index, $this->types); + } + + /** + * Tests if this compound type contains the given type. + */ + public function contains(Type $type): bool + { + foreach ($this->types as $typePart) { + // if the type is duplicate; do not add it + if ((string) $typePart === (string) $type) { + return true; + } + } + + return false; + } + + /** + * Returns a rendered output of the Type as it would be used in a DocBlock. + */ + public function __toString(): string + { + return implode($this->token, $this->types); + } + + /** + * @return ArrayIterator + */ + public function getIterator(): ArrayIterator + { + return new ArrayIterator($this->types); + } + + /** + * @psalm-suppress ImpureMethodCall + */ + private function add(Type $type): void + { + if ($type instanceof static) { + foreach ($type->getIterator() as $subType) { + $this->add($subType); + } + + return; + } + + // if the type is duplicate; do not add it + if ($this->contains($type)) { + return; + } + + $this->types[] = $type; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/ArrayKey.php b/vendor/phpdocumentor/type-resolver/src/Types/ArrayKey.php new file mode 100644 index 00000000..cf86df00 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/ArrayKey.php @@ -0,0 +1,42 @@ +type = $type; + $this->isReference = $isReference; + $this->isVariadic = $isVariadic; + $this->isOptional = $isOptional; + $this->name = $name; + } + + public function getName(): ?string + { + return $this->name; + } + + public function getType(): Type + { + return $this->type; + } + + public function isReference(): bool + { + return $this->isReference; + } + + public function isVariadic(): bool + { + return $this->isVariadic; + } + + public function isOptional(): bool + { + return $this->isOptional; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Callable_.php b/vendor/phpdocumentor/type-resolver/src/Types/Callable_.php new file mode 100644 index 00000000..6b06489e --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/Callable_.php @@ -0,0 +1,57 @@ +parameters = $parameters; + $this->returnType = $returnType; + } + + /** @return CallableParameter[] */ + public function getParameters(): array + { + return $this->parameters; + } + + public function getReturnType(): ?Type + { + return $this->returnType; + } + + /** + * Returns a rendered output of the Type as it would be used in a DocBlock. + */ + public function __toString(): string + { + return 'callable'; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/ClassString.php b/vendor/phpdocumentor/type-resolver/src/Types/ClassString.php new file mode 100644 index 00000000..fbdd879b --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/ClassString.php @@ -0,0 +1,62 @@ +fqsen = $fqsen; + } + + public function underlyingType(): Type + { + return new String_(); + } + + /** + * Returns the FQSEN associated with this object. + */ + public function getFqsen(): ?Fqsen + { + return $this->fqsen; + } + + /** + * Returns a rendered output of the Type as it would be used in a DocBlock. + */ + public function __toString(): string + { + if ($this->fqsen === null) { + return 'class-string'; + } + + return 'class-string<' . (string) $this->fqsen . '>'; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Collection.php b/vendor/phpdocumentor/type-resolver/src/Types/Collection.php new file mode 100644 index 00000000..943cc22e --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/Collection.php @@ -0,0 +1,68 @@ +` + * 2. `ACollectionObject` + * + * - ACollectionObject can be 'array' or an object that can act as an array + * - aValueType and aKeyType can be any type expression + * + * @psalm-immutable + */ +final class Collection extends AbstractList +{ + /** @var Fqsen|null */ + private $fqsen; + + /** + * Initializes this representation of an array with the given Type or Fqsen. + */ + public function __construct(?Fqsen $fqsen, Type $valueType, ?Type $keyType = null) + { + parent::__construct($valueType, $keyType); + + $this->fqsen = $fqsen; + } + + /** + * Returns the FQSEN associated with this object. + */ + public function getFqsen(): ?Fqsen + { + return $this->fqsen; + } + + /** + * Returns a rendered output of the Type as it would be used in a DocBlock. + */ + public function __toString(): string + { + $objectType = (string) ($this->fqsen ?? 'object'); + + if ($this->keyType === null) { + return $objectType . '<' . $this->valueType . '>'; + } + + return $objectType . '<' . $this->keyType . ',' . $this->valueType . '>'; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Compound.php b/vendor/phpdocumentor/type-resolver/src/Types/Compound.php new file mode 100644 index 00000000..ad426cc2 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/Compound.php @@ -0,0 +1,38 @@ + $types + */ + public function __construct(array $types) + { + parent::__construct($types, '|'); + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Context.php b/vendor/phpdocumentor/type-resolver/src/Types/Context.php new file mode 100644 index 00000000..79aadaf8 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/Context.php @@ -0,0 +1,95 @@ + Fully Qualified Namespace. + * @psalm-var array + */ + private $namespaceAliases; + + /** + * Initializes the new context and normalizes all passed namespaces to be in Qualified Namespace Name (QNN) + * format (without a preceding `\`). + * + * @param string $namespace The namespace where this DocBlock resides in. + * @param string[] $namespaceAliases List of namespace aliases => Fully Qualified Namespace. + * @psalm-param array $namespaceAliases + */ + public function __construct(string $namespace, array $namespaceAliases = []) + { + $this->namespace = $namespace !== 'global' && $namespace !== 'default' + ? trim($namespace, '\\') + : ''; + + foreach ($namespaceAliases as $alias => $fqnn) { + if ($fqnn[0] === '\\') { + $fqnn = substr($fqnn, 1); + } + + if ($fqnn[strlen($fqnn) - 1] === '\\') { + $fqnn = substr($fqnn, 0, -1); + } + + $namespaceAliases[$alias] = $fqnn; + } + + $this->namespaceAliases = $namespaceAliases; + } + + /** + * Returns the Qualified Namespace Name (thus without `\` in front) where the associated element is in. + */ + public function getNamespace(): string + { + return $this->namespace; + } + + /** + * Returns a list of Qualified Namespace Names (thus without `\` in front) that are imported, the keys represent + * the alias for the imported Namespace. + * + * @return string[] + * @psalm-return array + */ + public function getNamespaceAliases(): array + { + return $this->namespaceAliases; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php b/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php new file mode 100644 index 00000000..2018ff52 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/ContextFactory.php @@ -0,0 +1,422 @@ + $reflector */ + + return $this->createFromReflectionClass($reflector); + } + + if ($reflector instanceof ReflectionParameter) { + return $this->createFromReflectionParameter($reflector); + } + + if ($reflector instanceof ReflectionMethod) { + return $this->createFromReflectionMethod($reflector); + } + + if ($reflector instanceof ReflectionProperty) { + return $this->createFromReflectionProperty($reflector); + } + + if ($reflector instanceof ReflectionClassConstant) { + return $this->createFromReflectionClassConstant($reflector); + } + + throw new UnexpectedValueException('Unhandled \Reflector instance given: ' . get_class($reflector)); + } + + private function createFromReflectionParameter(ReflectionParameter $parameter): Context + { + $class = $parameter->getDeclaringClass(); + if (!$class) { + throw new InvalidArgumentException('Unable to get class of ' . $parameter->getName()); + } + + return $this->createFromReflectionClass($class); + } + + private function createFromReflectionMethod(ReflectionMethod $method): Context + { + $class = $method->getDeclaringClass(); + + return $this->createFromReflectionClass($class); + } + + private function createFromReflectionProperty(ReflectionProperty $property): Context + { + $class = $property->getDeclaringClass(); + + return $this->createFromReflectionClass($class); + } + + private function createFromReflectionClassConstant(ReflectionClassConstant $constant): Context + { + //phpcs:ignore SlevomatCodingStandard.Commenting.InlineDocCommentDeclaration.MissingVariable + /** @phpstan-var ReflectionClass $class */ + $class = $constant->getDeclaringClass(); + + return $this->createFromReflectionClass($class); + } + + /** + * @phpstan-param ReflectionClass $class + */ + private function createFromReflectionClass(ReflectionClass $class): Context + { + $fileName = $class->getFileName(); + $namespace = $class->getNamespaceName(); + + if (is_string($fileName) && file_exists($fileName)) { + $contents = file_get_contents($fileName); + if ($contents === false) { + throw new RuntimeException('Unable to read file "' . $fileName . '"'); + } + + return $this->createForNamespace($namespace, $contents); + } + + return new Context($namespace, []); + } + + /** + * Build a Context for a namespace in the provided file contents. + * + * @see Context for more information on Contexts. + * + * @param string $namespace It does not matter if a `\` precedes the namespace name, + * this method first normalizes. + * @param string $fileContents The file's contents to retrieve the aliases from with the given namespace. + */ + public function createForNamespace(string $namespace, string $fileContents): Context + { + $namespace = trim($namespace, '\\'); + $useStatements = []; + $currentNamespace = ''; + $tokens = new ArrayIterator(token_get_all($fileContents)); + + while ($tokens->valid()) { + $currentToken = $tokens->current(); + switch ($currentToken[0]) { + case T_NAMESPACE: + $currentNamespace = $this->parseNamespace($tokens); + break; + case T_CLASS: + case T_TRAIT: + // Fast-forward the iterator through the class so that any + // T_USE tokens found within are skipped - these are not + // valid namespace use statements so should be ignored. + $braceLevel = 0; + $firstBraceFound = false; + while ($tokens->valid() && ($braceLevel > 0 || !$firstBraceFound)) { + $currentToken = $tokens->current(); + if ( + $currentToken === '{' + || in_array($currentToken[0], [T_CURLY_OPEN, T_DOLLAR_OPEN_CURLY_BRACES], true) + ) { + if (!$firstBraceFound) { + $firstBraceFound = true; + } + + ++$braceLevel; + } + + if ($currentToken === '}') { + --$braceLevel; + } + + $tokens->next(); + } + + break; + case T_USE: + if ($currentNamespace === $namespace) { + $useStatements += $this->parseUseStatement($tokens); + } + + break; + } + + $tokens->next(); + } + + return new Context($namespace, $useStatements); + } + + /** + * Deduce the name from tokens when we are at the T_NAMESPACE token. + * + * @param ArrayIterator $tokens + */ + private function parseNamespace(ArrayIterator $tokens): string + { + // skip to the first string or namespace separator + $this->skipToNextStringOrNamespaceSeparator($tokens); + + $name = ''; + $acceptedTokens = [T_STRING, T_NS_SEPARATOR, T_NAME_QUALIFIED]; + while ($tokens->valid() && in_array($tokens->current()[0], $acceptedTokens, true)) { + $name .= $tokens->current()[1]; + $tokens->next(); + } + + return $name; + } + + /** + * Deduce the names of all imports when we are at the T_USE token. + * + * @param ArrayIterator $tokens + * + * @return string[] + * @psalm-return array + */ + private function parseUseStatement(ArrayIterator $tokens): array + { + $uses = []; + + while ($tokens->valid()) { + $this->skipToNextStringOrNamespaceSeparator($tokens); + + $uses += $this->extractUseStatements($tokens); + $currentToken = $tokens->current(); + if ($currentToken[0] === self::T_LITERAL_END_OF_USE) { + return $uses; + } + } + + return $uses; + } + + /** + * Fast-forwards the iterator as longs as we don't encounter a T_STRING or T_NS_SEPARATOR token. + * + * @param ArrayIterator $tokens + */ + private function skipToNextStringOrNamespaceSeparator(ArrayIterator $tokens): void + { + while ($tokens->valid()) { + $currentToken = $tokens->current(); + if (in_array($currentToken[0], [T_STRING, T_NS_SEPARATOR], true)) { + break; + } + + if ($currentToken[0] === T_NAME_QUALIFIED) { + break; + } + + if (defined('T_NAME_FULLY_QUALIFIED') && $currentToken[0] === T_NAME_FULLY_QUALIFIED) { + break; + } + + $tokens->next(); + } + } + + /** + * Deduce the namespace name and alias of an import when we are at the T_USE token or have not reached the end of + * a USE statement yet. This will return a key/value array of the alias => namespace. + * + * @param ArrayIterator $tokens + * + * @return string[] + * @psalm-return array + * + * @psalm-suppress TypeDoesNotContainType + */ + private function extractUseStatements(ArrayIterator $tokens): array + { + $extractedUseStatements = []; + $groupedNs = ''; + $currentNs = ''; + $currentAlias = ''; + $state = 'start'; + + while ($tokens->valid()) { + $currentToken = $tokens->current(); + $tokenId = is_string($currentToken) ? $currentToken : $currentToken[0]; + $tokenValue = is_string($currentToken) ? null : $currentToken[1]; + switch ($state) { + case 'start': + switch ($tokenId) { + case T_STRING: + case T_NS_SEPARATOR: + $currentNs .= (string) $tokenValue; + $currentAlias = $tokenValue; + break; + case T_NAME_QUALIFIED: + case T_NAME_FULLY_QUALIFIED: + $currentNs .= (string) $tokenValue; + $currentAlias = substr( + (string) $tokenValue, + (int) (strrpos((string) $tokenValue, '\\')) + 1 + ); + break; + case T_CURLY_OPEN: + case '{': + $state = 'grouped'; + $groupedNs = $currentNs; + break; + case T_AS: + $state = 'start-alias'; + break; + case self::T_LITERAL_USE_SEPARATOR: + case self::T_LITERAL_END_OF_USE: + $state = 'end'; + break; + default: + break; + } + + break; + case 'start-alias': + switch ($tokenId) { + case T_STRING: + $currentAlias = $tokenValue; + break; + case self::T_LITERAL_USE_SEPARATOR: + case self::T_LITERAL_END_OF_USE: + $state = 'end'; + break; + default: + break; + } + + break; + case 'grouped': + switch ($tokenId) { + case T_STRING: + case T_NS_SEPARATOR: + $currentNs .= (string) $tokenValue; + $currentAlias = $tokenValue; + break; + case T_AS: + $state = 'grouped-alias'; + break; + case self::T_LITERAL_USE_SEPARATOR: + $state = 'grouped'; + $extractedUseStatements[(string) $currentAlias] = $currentNs; + $currentNs = $groupedNs; + $currentAlias = ''; + break; + case self::T_LITERAL_END_OF_USE: + $state = 'end'; + break; + default: + break; + } + + break; + case 'grouped-alias': + switch ($tokenId) { + case T_STRING: + $currentAlias = $tokenValue; + break; + case self::T_LITERAL_USE_SEPARATOR: + $state = 'grouped'; + $extractedUseStatements[(string) $currentAlias] = $currentNs; + $currentNs = $groupedNs; + $currentAlias = ''; + break; + case self::T_LITERAL_END_OF_USE: + $state = 'end'; + break; + default: + break; + } + } + + if ($state === 'end') { + break; + } + + $tokens->next(); + } + + if ($groupedNs !== $currentNs) { + $extractedUseStatements[(string) $currentAlias] = $currentNs; + } + + return $extractedUseStatements; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Expression.php b/vendor/phpdocumentor/type-resolver/src/Types/Expression.php new file mode 100644 index 00000000..da5f65d5 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/Expression.php @@ -0,0 +1,51 @@ +valueType = $valueType; + } + + /** + * Returns the value for the keys of this array. + */ + public function getValueType(): Type + { + return $this->valueType; + } + + /** + * Returns a rendered output of the Type as it would be used in a DocBlock. + */ + public function __toString(): string + { + return '(' . $this->valueType . ')'; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Float_.php b/vendor/phpdocumentor/type-resolver/src/Types/Float_.php new file mode 100644 index 00000000..85313a78 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/Float_.php @@ -0,0 +1,32 @@ +fqsen = $fqsen; + } + + /** + * Returns the FQSEN associated with this object. + */ + public function getFqsen(): ?Fqsen + { + return $this->fqsen; + } + + /** + * Returns a rendered output of the Type as it would be used in a DocBlock. + */ + public function __toString(): string + { + if ($this->fqsen === null) { + return 'interface-string'; + } + + return 'interface-string<' . (string) $this->fqsen . '>'; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Intersection.php b/vendor/phpdocumentor/type-resolver/src/Types/Intersection.php new file mode 100644 index 00000000..ced37b62 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/Intersection.php @@ -0,0 +1,37 @@ + $types + */ + public function __construct(array $types) + { + parent::__construct($types, '&'); + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php b/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php new file mode 100644 index 00000000..1ca069f2 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/Iterable_.php @@ -0,0 +1,38 @@ +keyType) { + return 'iterable<' . $this->keyType . ',' . $this->valueType . '>'; + } + + if ($this->valueType instanceof Mixed_) { + return 'iterable'; + } + + return 'iterable<' . $this->valueType . '>'; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php b/vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php new file mode 100644 index 00000000..56d1b6da --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/Mixed_.php @@ -0,0 +1,32 @@ +realType = $realType; + } + + /** + * Provide access to the actual type directly, if needed. + */ + public function getActualType(): Type + { + return $this->realType; + } + + /** + * Returns a rendered output of the Type as it would be used in a DocBlock. + */ + public function __toString(): string + { + return '?' . $this->realType->__toString(); + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Object_.php b/vendor/phpdocumentor/type-resolver/src/Types/Object_.php new file mode 100644 index 00000000..90dee57a --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/Object_.php @@ -0,0 +1,69 @@ +fqsen = $fqsen; + } + + /** + * Returns the FQSEN associated with this object. + */ + public function getFqsen(): ?Fqsen + { + return $this->fqsen; + } + + public function __toString(): string + { + if ($this->fqsen) { + return (string) $this->fqsen; + } + + return 'object'; + } +} diff --git a/vendor/phpdocumentor/type-resolver/src/Types/Parent_.php b/vendor/phpdocumentor/type-resolver/src/Types/Parent_.php new file mode 100644 index 00000000..34838599 --- /dev/null +++ b/vendor/phpdocumentor/type-resolver/src/Types/Parent_.php @@ -0,0 +1,34 @@ + +Copyright (c) 2013 Marcello Duarte + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/phpspec/prophecy/README.md b/vendor/phpspec/prophecy/README.md new file mode 100644 index 00000000..9ac78321 --- /dev/null +++ b/vendor/phpspec/prophecy/README.md @@ -0,0 +1,411 @@ +# Prophecy + +[![Stable release](https://poser.pugx.org/phpspec/prophecy/version.svg)](https://packagist.org/packages/phpspec/prophecy) +[![Build](https://github.com/phpspec/prophecy/actions/workflows/build.yml/badge.svg)](https://github.com/phpspec/prophecy/actions/workflows/build.yml) + +Prophecy is a highly opinionated yet very powerful and flexible PHP object mocking +framework. Though initially it was created to fulfil phpspec2 needs, it is flexible +enough to be used inside any testing framework out there with minimal effort. + +## A simple example + +```php +prophet->prophesize('App\Security\Hasher'); + $user = new App\Entity\User($hasher->reveal()); + + $hasher->generateHash($user, 'qwerty')->willReturn('hashed_pass'); + + $user->setPassword('qwerty'); + + $this->assertEquals('hashed_pass', $user->getPassword()); + } + + protected function setUp() + { + $this->prophet = new \Prophecy\Prophet; + } + + protected function tearDown() + { + $this->prophet->checkPredictions(); + } +} +``` + +## Installation + +### Prerequisites + +Prophecy requires PHP 7.2.0 or greater. + +### Setup through composer + +First, add Prophecy to the list of dependencies inside your `composer.json`: + +```json +{ + "require-dev": { + "phpspec/prophecy": "~1.0" + } +} +``` + +Then simply install it with composer: + +```bash +$> composer install --prefer-dist +``` + +You can read more about Composer on its [official webpage](http://getcomposer.org). + +## How to use it + +First of all, in Prophecy every word has a logical meaning, even the name of the library +itself (Prophecy). When you start feeling that, you'll become very fluid with this +tool. + +For example, Prophecy has been named that way because it concentrates on describing the future +behavior of objects with very limited knowledge about them. But as with any other prophecy, +those object prophecies can't create themselves - there should be a Prophet: + +```php +$prophet = new Prophecy\Prophet; +``` + +The Prophet creates prophecies by *prophesizing* them: + +```php +$prophecy = $prophet->prophesize(); +``` + +The result of the `prophesize()` method call is a new object of class `ObjectProphecy`. Yes, +that's your specific object prophecy, which describes how your object would behave +in the near future. But first, you need to specify which object you're talking about, +right? + +```php +$prophecy->willExtend('stdClass'); +$prophecy->willImplement('SessionHandlerInterface'); +``` + +There are 2 interesting calls - `willExtend` and `willImplement`. The first one tells +object prophecy that our object should extend a specific class. The second one says that +it should implement some interface. Obviously, objects in PHP can implement multiple +interfaces, but extend only one parent class. + +### Dummies + +Ok, now we have our object prophecy. What can we do with it? First of all, we can get +our object *dummy* by revealing its prophecy: + +```php +$dummy = $prophecy->reveal(); +``` + +The `$dummy` variable now holds a special dummy object. Dummy objects are objects that extend +and/or implement preset classes/interfaces by overriding all their public methods. The key +point about dummies is that they do not hold any logic - they just do nothing. Any method +of the dummy will always return `null` and the dummy will never throw any exceptions. +Dummy is your friend if you don't care about the actual behavior of this double and just need +a token object to satisfy a method typehint. + +You need to understand one thing - a dummy is not a prophecy. Your object prophecy is still +assigned to `$prophecy` variable and in order to manipulate with your expectations, you +should work with it. `$dummy` is a dummy - a simple php object that tries to fulfil your +prophecy. + +### Stubs + +Ok, now we know how to create basic prophecies and reveal dummies from them. That's +awesome if we don't care about our _doubles_ (objects that reflect originals) +interactions. If we do, we need to use *stubs* or *mocks*. + +A stub is an object double, which doesn't have any expectations about the object behavior, +but when put in specific environment, behaves in specific way. Ok, I know, it's cryptic, +but bear with me for a minute. Simply put, a stub is a dummy, which depending on the called +method signature does different things (has logic). To create stubs in Prophecy: + +```php +$prophecy->read('123')->willReturn('value'); +``` + +Oh wow. We've just made an arbitrary call on the object prophecy? Yes, we did. And this +call returned us a new object instance of class `MethodProphecy`. Yep, that's a specific +method with arguments prophecy. Method prophecies give you the ability to create method +promises or predictions. We'll talk about method predictions later in the _Mocks_ section. + +#### Promises + +Promises are logical blocks, that represent your fictional methods in prophecy terms +and they are handled by the `MethodProphecy::will(PromiseInterface $promise)` method. +As a matter of fact, the call that we made earlier (`willReturn('value')`) is a simple +shortcut to: + +```php +$prophecy->read('123')->will(new Prophecy\Promise\ReturnPromise(array('value'))); +``` + +This promise will cause any call to our double's `read()` method with exactly one +argument - `'123'` to always return `'value'`. But that's only for this +promise, there's plenty others you can use: + +- `ReturnPromise` or `->willReturn(1)` - returns a value from a method call +- `ReturnArgumentPromise` or `->willReturnArgument($index)` - returns the nth method argument from call +- `ThrowPromise` or `->willThrow($exception)` - causes the method to throw specific exception +- `CallbackPromise` or `->will($callback)` - gives you a quick way to define your own custom logic + +Keep in mind, that you can always add even more promises by implementing +`Prophecy\Promise\PromiseInterface`. + +#### Method prophecies idempotency + +Prophecy enforces same method prophecies and, as a consequence, same promises and +predictions for the same method calls with the same arguments. This means: + +```php +$methodProphecy1 = $prophecy->read('123'); +$methodProphecy2 = $prophecy->read('123'); +$methodProphecy3 = $prophecy->read('321'); + +$methodProphecy1 === $methodProphecy2; +$methodProphecy1 !== $methodProphecy3; +``` + +That's interesting, right? Now you might ask me how would you define more complex +behaviors where some method call changes behavior of others. In PHPUnit or Mockery +you do that by predicting how many times your method will be called. In Prophecy, +you'll use promises for that: + +```php +$user->getName()->willReturn(null); + +// For PHP 5.4 +$user->setName('everzet')->will(function () { + $this->getName()->willReturn('everzet'); +}); + +// For PHP 5.3 +$user->setName('everzet')->will(function ($args, $user) { + $user->getName()->willReturn('everzet'); +}); + +// Or +$user->setName('everzet')->will(function ($args) use ($user) { + $user->getName()->willReturn('everzet'); +}); +``` + +And now it doesn't matter how many times or in which order your methods are called. +What matters is their behaviors and how well you faked it. + +Note: If the method is called several times, you can use the following syntax to return different +values for each call: + +```php +$prophecy->read('123')->willReturn(1, 2, 3); +``` + +This feature is actually not recommended for most cases. Relying on the order of +calls for the same arguments tends to make test fragile, as adding one more call +can break everything. + +#### Arguments wildcarding + +The previous example is awesome (at least I hope it is for you), but that's not +optimal enough. We hardcoded `'everzet'` in our expectation. Isn't there a better +way? In fact there is, but it involves understanding what this `'everzet'` +actually is. + +You see, even if method arguments used during method prophecy creation look +like simple method arguments, in reality they are not. They are argument token +wildcards. As a matter of fact, `->setName('everzet')` looks like a simple call just +because Prophecy automatically transforms it under the hood into: + +```php +$user->setName(new Prophecy\Argument\Token\ExactValueToken('everzet')); +``` + +Those argument tokens are simple PHP classes, that implement +`Prophecy\Argument\Token\TokenInterface` and tell Prophecy how to compare real arguments +with your expectations. And yes, those classnames are damn big. That's why there's a +shortcut class `Prophecy\Argument`, which you can use to create tokens like that: + +```php +use Prophecy\Argument; + +$user->setName(Argument::exact('everzet')); +``` + +`ExactValueToken` is not very useful in our case as it forced us to hardcode the username. +That's why Prophecy comes bundled with a bunch of other tokens: + +- `IdenticalValueToken` or `Argument::is($value)` - checks that the argument is identical to a specific value +- `ExactValueToken` or `Argument::exact($value)` - checks that the argument matches a specific value +- `TypeToken` or `Argument::type($typeOrClass)` - checks that the argument matches a specific type or + classname +- `ObjectStateToken` or `Argument::which($method, $value)` - checks that the argument method returns + a specific value +- `CallbackToken` or `Argument::that(callback)` - checks that the argument matches a custom callback +- `AnyValueToken` or `Argument::any()` - matches any argument +- `AnyValuesToken` or `Argument::cetera()` - matches any arguments to the rest of the signature +- `StringContainsToken` or `Argument::containingString($value)` - checks that the argument contains a specific string value +- `InArrayToken` or `Argument::in($array)` - checks if value is in array +- `NotInArrayToken` or `Argument::notIn($array)` - checks if value is not in array + +And you can add even more by implementing `TokenInterface` with your own custom classes. + +So, let's refactor our initial `{set,get}Name()` logic with argument tokens: + +```php +use Prophecy\Argument; + +$user->getName()->willReturn(null); + +// For PHP 5.4 +$user->setName(Argument::type('string'))->will(function ($args) { + $this->getName()->willReturn($args[0]); +}); + +// For PHP 5.3 +$user->setName(Argument::type('string'))->will(function ($args, $user) { + $user->getName()->willReturn($args[0]); +}); + +// Or +$user->setName(Argument::type('string'))->will(function ($args) use ($user) { + $user->getName()->willReturn($args[0]); +}); +``` + +That's it. Now our `{set,get}Name()` prophecy will work with any string argument provided to it. +We've just described how our stub object should behave, even though the original object could have +no behavior whatsoever. + +One last bit about arguments now. You might ask, what happens in case of: + +```php +use Prophecy\Argument; + +$user->getName()->willReturn(null); + +// For PHP 5.4 +$user->setName(Argument::type('string'))->will(function ($args) { + $this->getName()->willReturn($args[0]); +}); + +// For PHP 5.3 +$user->setName(Argument::type('string'))->will(function ($args, $user) { + $user->getName()->willReturn($args[0]); +}); + +// Or +$user->setName(Argument::type('string'))->will(function ($args) use ($user) { + $user->getName()->willReturn($args[0]); +}); + +$user->setName(Argument::any())->will(function () { +}); +``` + +Nothing. Your stub will continue behaving the way it did before. That's because of how +arguments wildcarding works. Every argument token type has a different score level, which +wildcard then uses to calculate the final arguments match score and use the method prophecy +promise that has the highest score. In this case, `Argument::type()` in case of success +scores `5` and `Argument::any()` scores `3`. So the type token wins, as does the first +`setName()` method prophecy and its promise. The simple rule of thumb - more precise token +always wins. + +#### Getting stub objects + +Ok, now we know how to define our prophecy method promises, let's get our stub from +it: + +```php +$stub = $prophecy->reveal(); +``` + +As you might see, the only difference between how we get dummies and stubs is that with +stubs we describe every object conversation instead of just agreeing with `null` returns +(object being *dummy*). As a matter of fact, after you define your first promise +(method call), Prophecy will force you to define all the communications - it throws +the `UnexpectedCallException` for any call you didn't describe with object prophecy before +calling it on a stub. + +### Mocks + +Now we know how to define doubles without behavior (dummies) and doubles with behavior, but +no expectations (stubs). What's left is doubles for which we have some expectations. These +are called mocks and in Prophecy they look almost exactly the same as stubs, except that +they define *predictions* instead of *promises* on method prophecies: + +```php +$entityManager->flush()->shouldBeCalled(); +``` + +#### Predictions + +The `shouldBeCalled()` method here assigns `CallPrediction` to our method prophecy. +Predictions are a delayed behavior check for your prophecies. You see, during the entire lifetime +of your doubles, Prophecy records every single call you're making against it inside your +code. After that, Prophecy can use this collected information to check if it matches defined +predictions. You can assign predictions to method prophecies using the +`MethodProphecy::should(PredictionInterface $prediction)` method. As a matter of fact, +the `shouldBeCalled()` method we used earlier is just a shortcut to: + +```php +$entityManager->flush()->should(new Prophecy\Prediction\CallPrediction()); +``` + +It checks if your method of interest (that matches both the method name and the arguments wildcard) +was called 1 or more times. If the prediction failed then it throws an exception. When does this +check happen? Whenever you call `checkPredictions()` on the main Prophet object: + +```php +$prophet->checkPredictions(); +``` + +In PHPUnit, you would want to put this call into the `tearDown()` method. If no predictions +are defined, it would do nothing. So it won't harm to call it after every test. + +There are plenty more predictions you can play with: + +- `CallPrediction` or `shouldBeCalled()` - checks that the method has been called 1 or more times +- `NoCallsPrediction` or `shouldNotBeCalled()` - checks that the method has not been called +- `CallTimesPrediction` or `shouldBeCalledTimes($count)` - checks that the method has been called + `$count` times +- `CallbackPrediction` or `should($callback)` - checks the method against your own custom callback + +Of course, you can always create your own custom prediction any time by implementing +`PredictionInterface`. + +### Spies + +The last bit of awesomeness in Prophecy is out-of-the-box spies support. As I said in the previous +section, Prophecy records every call made during the double's entire lifetime. This means +you don't need to record predictions in order to check them. You can also do it +manually by using the `MethodProphecy::shouldHave(PredictionInterface $prediction)` method: + +```php +$em = $prophet->prophesize('Doctrine\ORM\EntityManager'); + +$controller->createUser($em->reveal()); + +$em->flush()->shouldHaveBeenCalled(); +``` + +Such manipulation with doubles is called spying. And with Prophecy it just works. + + +## FAQ + +### Can I call the original methods on a prophesized class? + +Prophecy does not support calling the original methods on a phrophesized class. If you find yourself needing to mock some methods of a class while calling the original version of other methods, it's likely a sign that your class violates the [single-responsibility principle](https://en.wikipedia.org/wiki/Single-responsibility_principle) and should be refactored. diff --git a/vendor/phpspec/prophecy/composer.json b/vendor/phpspec/prophecy/composer.json new file mode 100644 index 00000000..2a86c2d9 --- /dev/null +++ b/vendor/phpspec/prophecy/composer.json @@ -0,0 +1,62 @@ +{ + "name": "phpspec/prophecy", + "description": "Highly opinionated mocking framework for PHP 5.3+", + "keywords": ["Mock", "Stub", "Dummy", "Double", "Fake", "Spy", "dev"], + "homepage": "https://github.com/phpspec/prophecy", + "type": "library", + "license": "MIT", + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + + "require": { + "php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.*", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0 || ^5.0 || ^6.0", + "doctrine/instantiator": "^1.2 || ^2.0", + "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0 || ^6.0" + }, + + "require-dev": { + "phpspec/phpspec": "^6.0 || ^7.0", + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^8.0 || ^9.0 || ^10.0" + }, + + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + + "autoload-dev": { + "psr-4": { + "Fixtures\\Prophecy\\": "fixtures", + "Tests\\Prophecy\\": "tests" + } + }, + + "scripts": { + "phpstan": "phpstan analyse", + "phpstan:baseline": "phpstan analyse --generate-baseline" + }, + + "scripts-descriptions": { + "phpstan": "Run PHPStan analysis", + "phpstan:baseline": "Dump PHPStan baseline file - use only for updating, do not add new errors when possible" + }, + + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument.php b/vendor/phpspec/prophecy/src/Prophecy/Argument.php new file mode 100644 index 00000000..cf49d68d --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument.php @@ -0,0 +1,240 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy; + +use Prophecy\Argument\Token; + +/** + * Argument tokens shortcuts. + * + * @author Konstantin Kudryashov + */ +class Argument +{ + /** + * Checks that argument is exact value or object. + * + * @param mixed $value + * + * @return Token\ExactValueToken + */ + public static function exact($value) + { + return new Token\ExactValueToken($value); + } + + /** + * Checks that argument is of specific type or instance of specific class. + * + * @param string $type Type name (`integer`, `string`) or full class name + * + * @return Token\TypeToken + */ + public static function type($type) + { + return new Token\TypeToken($type); + } + + /** + * Checks that argument object has specific state. + * + * @param string $methodName + * @param mixed $value + * + * @return Token\ObjectStateToken + */ + public static function which($methodName, $value) + { + return new Token\ObjectStateToken($methodName, $value); + } + + /** + * Checks that argument matches provided callback. + * + * @param callable $callback + * @param string|null $customStringRepresentation Customize the __toString() representation of this token + * + * @return Token\CallbackToken + */ + public static function that($callback, ?string $customStringRepresentation = null) + { + return new Token\CallbackToken($callback, $customStringRepresentation); + } + + /** + * Matches any single value. + * + * @return Token\AnyValueToken + */ + public static function any() + { + return new Token\AnyValueToken; + } + + /** + * Matches all values to the rest of the signature. + * + * @return Token\AnyValuesToken + */ + public static function cetera() + { + return new Token\AnyValuesToken; + } + + /** + * Checks that argument matches all tokens + * + * @param mixed ...$tokens a list of tokens + * + * @return Token\LogicalAndToken + */ + public static function allOf(...$tokens) + { + return new Token\LogicalAndToken($tokens); + } + + /** + * Checks that argument array or countable object has exact number of elements. + * + * @param integer $value array elements count + * + * @return Token\ArrayCountToken + */ + public static function size($value) + { + return new Token\ArrayCountToken($value); + } + + /** + * Checks that argument array contains (key, value) pair + * + * @param mixed $key exact value or token + * @param mixed $value exact value or token + * + * @return Token\ArrayEntryToken + */ + public static function withEntry($key, $value) + { + return new Token\ArrayEntryToken($key, $value); + } + + /** + * Checks that arguments array entries all match value + * + * @param mixed $value + * + * @return Token\ArrayEveryEntryToken + */ + public static function withEveryEntry($value) + { + return new Token\ArrayEveryEntryToken($value); + } + + /** + * Checks that argument array contains value + * + * @param mixed $value + * + * @return Token\ArrayEntryToken + */ + public static function containing($value) + { + return new Token\ArrayEntryToken(self::any(), $value); + } + + /** + * Checks that argument array has key + * + * @param mixed $key exact value or token + * + * @return Token\ArrayEntryToken + */ + public static function withKey($key) + { + return new Token\ArrayEntryToken($key, self::any()); + } + + /** + * Checks that argument does not match the value|token. + * + * @param mixed $value either exact value or argument token + * + * @return Token\LogicalNotToken + */ + public static function not($value) + { + return new Token\LogicalNotToken($value); + } + + /** + * @param string $value + * + * @return Token\StringContainsToken + */ + public static function containingString($value) + { + return new Token\StringContainsToken($value); + } + + /** + * Checks that argument is identical value. + * + * @param mixed $value + * + * @return Token\IdenticalValueToken + */ + public static function is($value) + { + return new Token\IdenticalValueToken($value); + } + + /** + * Check that argument is same value when rounding to the + * given precision. + * + * @param float $value + * @param int $precision + * + * @return Token\ApproximateValueToken + */ + public static function approximate($value, $precision = 0) + { + return new Token\ApproximateValueToken($value, $precision); + } + + /** + * Checks that argument is in array. + * + * @param array $value + * + * @return Token\InArrayToken + */ + + public static function in($value) + { + return new Token\InArrayToken($value); + } + + /** + * Checks that argument is not in array. + * + * @param array $value + * + * @return Token\NotInArrayToken + */ + + public static function notIn($value) + { + return new Token\NotInArrayToken($value); + } + +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php new file mode 100644 index 00000000..4b237834 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php @@ -0,0 +1,104 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument; + +/** + * Arguments wildcarding. + * + * @author Konstantin Kudryashov + */ +class ArgumentsWildcard +{ + /** + * @var list + */ + private $tokens = array(); + /** + * @var string|null + */ + private $string; + + /** + * Initializes wildcard. + * + * @param array $arguments Array of argument tokens or values + */ + public function __construct(array $arguments) + { + foreach ($arguments as $argument) { + if (!$argument instanceof Token\TokenInterface) { + $argument = new Token\ExactValueToken($argument); + } + + $this->tokens[] = $argument; + } + } + + /** + * Calculates wildcard match score for provided arguments. + * + * @param array $arguments + * + * @return false|int False OR integer score (higher - better) + */ + public function scoreArguments(array $arguments) + { + if (0 == count($arguments) && 0 == count($this->tokens)) { + return 1; + } + + $arguments = array_values($arguments); + $totalScore = 0; + foreach ($this->tokens as $i => $token) { + $argument = isset($arguments[$i]) ? $arguments[$i] : null; + if (1 >= $score = $token->scoreArgument($argument)) { + return false; + } + + $totalScore += $score; + + if (true === $token->isLast()) { + return $totalScore; + } + } + + if (count($arguments) > count($this->tokens)) { + return false; + } + + return $totalScore; + } + + /** + * Returns string representation for wildcard. + * + * @return string + */ + public function __toString() + { + if (null === $this->string) { + $this->string = implode(', ', array_map(function ($token) { + return (string) $token; + }, $this->tokens)); + } + + return $this->string; + } + + /** + * @return list + */ + public function getTokens() + { + return $this->tokens; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php new file mode 100644 index 00000000..25055b60 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValueToken.php @@ -0,0 +1,52 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Any single value token. + * + * @author Konstantin Kudryashov + */ +class AnyValueToken implements TokenInterface +{ + /** + * Always scores 3 for any argument. + * + * @param mixed $argument + * + * @return int + */ + public function scoreArgument($argument) + { + return 3; + } + + /** + * Returns false. + * + * @return bool + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return '*'; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php new file mode 100644 index 00000000..f76b17bc --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/AnyValuesToken.php @@ -0,0 +1,52 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Any values token. + * + * @author Konstantin Kudryashov + */ +class AnyValuesToken implements TokenInterface +{ + /** + * Always scores 2 for any argument. + * + * @param $argument + * + * @return int + */ + public function scoreArgument($argument) + { + return 2; + } + + /** + * Returns true to stop wildcard from processing other tokens. + * + * @return bool + */ + public function isLast() + { + return true; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return '* [, ...]'; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php new file mode 100644 index 00000000..d65d9f6f --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ApproximateValueToken.php @@ -0,0 +1,63 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Approximate value token + * + * @author Daniel Leech + */ +class ApproximateValueToken implements TokenInterface +{ + private $value; + private $precision; + + /** + * @param float $value + * @param int $precision + */ + public function __construct($value, $precision = 0) + { + $this->value = $value; + $this->precision = $precision; + } + + /** + * {@inheritdoc} + */ + public function scoreArgument($argument) + { + if (!\is_float($argument) && !\is_int($argument) && !\is_numeric($argument)) { + return false; + } + + return round((float)$argument, $this->precision) === round($this->value, $this->precision) ? 10 : false; + } + + /** + * {@inheritdoc} + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('≅%s', round($this->value, $this->precision)); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php new file mode 100644 index 00000000..bc630db4 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayCountToken.php @@ -0,0 +1,88 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Array elements count token. + * + * @author Boris Mikhaylov + */ + +class ArrayCountToken implements TokenInterface +{ + private $count; + + /** + * @param integer $value + */ + public function __construct($value) + { + $this->count = $value; + } + + /** + * Scores 6 when argument has preset number of elements. + * + * @param mixed $argument + * + * @return false|int + */ + public function scoreArgument($argument) + { + return $this->isCountable($argument) && $this->hasProperCount($argument) ? 6 : false; + } + + /** + * Returns false. + * + * @return boolean + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('count(%s)', $this->count); + } + + /** + * Returns true if object is either array or instance of \Countable + * + * @param mixed $argument + * @return bool + * + * @phpstan-assert-if-true array|\Countable $argument + */ + private function isCountable($argument) + { + return (is_array($argument) || $argument instanceof \Countable); + } + + /** + * Returns true if $argument has expected number of elements + * + * @param array|\Countable $argument + * + * @return bool + */ + private function hasProperCount($argument) + { + return $this->count === count($argument); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php new file mode 100644 index 00000000..32ccce84 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEntryToken.php @@ -0,0 +1,152 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +use Prophecy\Exception\InvalidArgumentException; + +/** + * Array entry token. + * + * @author Boris Mikhaylov + */ +class ArrayEntryToken implements TokenInterface +{ + /** @var TokenInterface */ + private $key; + /** @var TokenInterface */ + private $value; + + /** + * @param mixed $key exact value or token + * @param mixed $value exact value or token + */ + public function __construct($key, $value) + { + $this->key = $this->wrapIntoExactValueToken($key); + $this->value = $this->wrapIntoExactValueToken($value); + } + + /** + * Scores half of combined scores from key and value tokens for same entry. Capped at 8. + * If argument implements \ArrayAccess without \Traversable, then key token is restricted to ExactValueToken. + * + * @param mixed $argument + * + * @throws InvalidArgumentException + * @return false|int + */ + public function scoreArgument($argument) + { + if ($argument instanceof \Traversable) { + $argument = iterator_to_array($argument); + } + + if ($argument instanceof \ArrayAccess) { + $argument = $this->convertArrayAccessToEntry($argument); + } + + if (!is_array($argument) || empty($argument)) { + return false; + } + + $keyScores = array_map(array($this->key,'scoreArgument'), array_keys($argument)); + $valueScores = array_map(array($this->value,'scoreArgument'), $argument); + /** @var callable(int|false, int|false): (int|false) $scoreEntry */ + $scoreEntry = function ($value, $key) { + return $value && $key ? min(8, ($key + $value) / 2) : false; + }; + + return max(array_map($scoreEntry, $valueScores, $keyScores)); + } + + /** + * Returns false. + * + * @return boolean + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('[..., %s => %s, ...]', $this->key, $this->value); + } + + /** + * Returns key + * + * @return TokenInterface + */ + public function getKey() + { + return $this->key; + } + + /** + * Returns value + * + * @return TokenInterface + */ + public function getValue() + { + return $this->value; + } + + /** + * Wraps non token $value into ExactValueToken + * + * @param mixed $value + * @return TokenInterface + */ + private function wrapIntoExactValueToken($value) + { + return $value instanceof TokenInterface ? $value : new ExactValueToken($value); + } + + /** + * Converts instance of \ArrayAccess to key => value array entry + * + * @param \ArrayAccess $object + * + * @return array + * @throws InvalidArgumentException + */ + private function convertArrayAccessToEntry(\ArrayAccess $object) + { + if (!$this->key instanceof ExactValueToken) { + throw new InvalidArgumentException(sprintf( + 'You can only use exact value tokens to match key of ArrayAccess object'.PHP_EOL. + 'But you used `%s`.', + $this->key + )); + } + + $key = $this->key->getValue(); + + if (!\is_int($key) && !\is_string($key)) { + throw new InvalidArgumentException(sprintf( + 'You can only use integer or string keys to match key of ArrayAccess object'.PHP_EOL. + 'But you used `%s`.', + $this->key + )); + } + + return $object->offsetExists($key) ? array($key => $object[$key]) : array(); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php new file mode 100644 index 00000000..5d41fa48 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php @@ -0,0 +1,82 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Array every entry token. + * + * @author Adrien Brault + */ +class ArrayEveryEntryToken implements TokenInterface +{ + /** + * @var TokenInterface + */ + private $value; + + /** + * @param mixed $value exact value or token + */ + public function __construct($value) + { + if (!$value instanceof TokenInterface) { + $value = new ExactValueToken($value); + } + + $this->value = $value; + } + + /** + * {@inheritdoc} + */ + public function scoreArgument($argument) + { + if (!$argument instanceof \Traversable && !is_array($argument)) { + return false; + } + + $scores = array(); + foreach ($argument as $key => $argumentEntry) { + $scores[] = $this->value->scoreArgument($argumentEntry); + } + + if (empty($scores) || in_array(false, $scores, true)) { + return false; + } + + return array_sum($scores) / count($scores); + } + + /** + * {@inheritdoc} + */ + public function isLast() + { + return false; + } + + /** + * {@inheritdoc} + */ + public function __toString() + { + return sprintf('[%s, ..., %s]', $this->value, $this->value); + } + + /** + * @return TokenInterface + */ + public function getValue() + { + return $this->value; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php new file mode 100644 index 00000000..15184391 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/CallbackToken.php @@ -0,0 +1,86 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +use Prophecy\Exception\InvalidArgumentException; + +/** + * Callback-verified token. + * + * @author Konstantin Kudryashov + */ +class CallbackToken implements TokenInterface +{ + private $callback; + + /** + * @var string|null + */ + private $customStringRepresentation; + + /** + * Initializes token. + * + * @param callable $callback + * @param string|null $customStringRepresentation Customize the __toString() representation of this token + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function __construct($callback, ?string $customStringRepresentation = null) + { + if (!is_callable($callback)) { + throw new InvalidArgumentException(sprintf( + 'Callable expected as an argument to CallbackToken, but got %s.', + gettype($callback) + )); + } + + $this->callback = $callback; + $this->customStringRepresentation = $customStringRepresentation; + } + + /** + * Scores 7 if callback returns true, false otherwise. + * + * @param mixed $argument + * + * @return false|int + */ + public function scoreArgument($argument) + { + return call_user_func($this->callback, $argument) ? 7 : false; + } + + /** + * Returns false. + * + * @return bool + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + if ($this->customStringRepresentation !== null) { + return $this->customStringRepresentation; + } + + return 'callback()'; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php new file mode 100644 index 00000000..e041cc3c --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ExactValueToken.php @@ -0,0 +1,124 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +use Prophecy\Comparator\FactoryProvider; +use SebastianBergmann\Comparator\ComparisonFailure; +use SebastianBergmann\Comparator\Factory as ComparatorFactory; +use Prophecy\Util\StringUtil; + +/** + * Exact value token. + * + * @author Konstantin Kudryashov + */ +class ExactValueToken implements TokenInterface +{ + private $value; + /** + * @var string|null + */ + private $string; + private $util; + private $comparatorFactory; + + /** + * Initializes token. + * + * @param mixed $value + */ + public function __construct($value, StringUtil $util = null, ComparatorFactory $comparatorFactory = null) + { + $this->value = $value; + $this->util = $util ?: new StringUtil(); + + $this->comparatorFactory = $comparatorFactory ?: FactoryProvider::getInstance(); + } + + /** + * Scores 10 if argument matches preset value. + * + * @param mixed $argument + * + * @return false|int + */ + public function scoreArgument($argument) + { + if (is_object($argument) && is_object($this->value)) { + $comparator = $this->comparatorFactory->getComparatorFor( + $argument, $this->value + ); + + try { + $comparator->assertEquals($argument, $this->value); + return 10; + } catch (ComparisonFailure $failure) { + return false; + } + } + + // If either one is an object it should be castable to a string + if (is_object($argument) xor is_object($this->value)) { + if (is_object($argument) && !method_exists($argument, '__toString')) { + return false; + } + + if (is_object($this->value) && !method_exists($this->value, '__toString')) { + return false; + } + + if (is_numeric($argument) xor is_numeric($this->value)) { + return strval($argument) == strval($this->value) ? 10 : false; + } + } elseif (is_numeric($argument) && is_numeric($this->value)) { + // noop + } elseif (gettype($argument) !== gettype($this->value)) { + return false; + } + + return $argument == $this->value ? 10 : false; + } + + /** + * Returns preset value against which token checks arguments. + * + * @return mixed + */ + public function getValue() + { + return $this->value; + } + + /** + * Returns false. + * + * @return bool + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + if (null === $this->string) { + $this->string = sprintf('exact(%s)', $this->util->stringify($this->value)); + } + + return $this->string; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php new file mode 100644 index 00000000..067d8775 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/IdenticalValueToken.php @@ -0,0 +1,76 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +use Prophecy\Util\StringUtil; + +/** + * Identical value token. + * + * @author Florian Voutzinos + */ +class IdenticalValueToken implements TokenInterface +{ + private $value; + /** + * @var string|null + */ + private $string; + private $util; + + /** + * Initializes token. + * + * @param mixed $value + */ + public function __construct($value, StringUtil $util = null) + { + $this->value = $value; + $this->util = $util ?: new StringUtil(); + } + + /** + * Scores 11 if argument matches preset value. + * + * @param mixed $argument + * + * @return false|int + */ + public function scoreArgument($argument) + { + return $argument === $this->value ? 11 : false; + } + + /** + * Returns false. + * + * @return bool + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + if (null === $this->string) { + $this->string = sprintf('identical(%s)', $this->util->stringify($this->value)); + } + + return $this->string; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/InArrayToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/InArrayToken.php new file mode 100644 index 00000000..6b60028d --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/InArrayToken.php @@ -0,0 +1,74 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Check if values is in array + * + * @author Vinícius Alonso + */ +class InArrayToken implements TokenInterface +{ + private $token = array(); + private $strict; + + /** + * @param array $arguments tokens + * @param bool $strict + */ + public function __construct(array $arguments, $strict = true) + { + $this->token = $arguments; + $this->strict = $strict; + } + + /** + * Return scores 8 score if argument is in array. + * + * @param $argument + * + * @return bool|int + */ + public function scoreArgument($argument) + { + if (count($this->token) === 0) { + return false; + } + + if (\in_array($argument, $this->token, $this->strict)) { + return 8; + } + + return false; + } + + /** + * Returns false. + * + * @return boolean + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + $arrayAsString = implode(', ', $this->token); + return "[{$arrayAsString}]"; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php new file mode 100644 index 00000000..6c6f2e10 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalAndToken.php @@ -0,0 +1,83 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Logical AND token. + * + * @author Boris Mikhaylov + */ +class LogicalAndToken implements TokenInterface +{ + /** + * @var list + */ + private $tokens = array(); + + /** + * @param array $arguments exact values or tokens + */ + public function __construct(array $arguments) + { + foreach ($arguments as $argument) { + if (!$argument instanceof TokenInterface) { + $argument = new ExactValueToken($argument); + } + $this->tokens[] = $argument; + } + } + + /** + * Scores maximum score from scores returned by tokens for this argument if all of them score. + * + * @param mixed $argument + * + * @return false|int + */ + public function scoreArgument($argument) + { + if (0 === count($this->tokens)) { + return false; + } + + $maxScore = 0; + foreach ($this->tokens as $token) { + $score = $token->scoreArgument($argument); + if (false === $score) { + return false; + } + $maxScore = max($score, $maxScore); + } + + return $maxScore; + } + + /** + * Returns false. + * + * @return boolean + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('bool(%s)', implode(' AND ', $this->tokens)); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php new file mode 100644 index 00000000..0b913157 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/LogicalNotToken.php @@ -0,0 +1,73 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Logical NOT token. + * + * @author Boris Mikhaylov + */ +class LogicalNotToken implements TokenInterface +{ + /** @var TokenInterface */ + private $token; + + /** + * @param mixed $value exact value or token + */ + public function __construct($value) + { + $this->token = $value instanceof TokenInterface? $value : new ExactValueToken($value); + } + + /** + * Scores 4 when preset token does not match the argument. + * + * @param mixed $argument + * + * @return false|int + */ + public function scoreArgument($argument) + { + return false === $this->token->scoreArgument($argument) ? 4 : false; + } + + /** + * Returns true if preset token is last. + * + * @return bool + */ + public function isLast() + { + return $this->token->isLast(); + } + + /** + * Returns originating token. + * + * @return TokenInterface + */ + public function getOriginatingToken() + { + return $this->token; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('not(%s)', $this->token); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/NotInArrayToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/NotInArrayToken.php new file mode 100644 index 00000000..fd3eb221 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/NotInArrayToken.php @@ -0,0 +1,75 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Check if values is not in array + * + * @author Vinícius Alonso + */ +class NotInArrayToken implements TokenInterface +{ + private $token = array(); + private $strict; + + /** + * @param array $arguments tokens + * @param bool $strict + */ + public function __construct(array $arguments, $strict = true) + { + $this->token = $arguments; + $this->strict = $strict; + } + + /** + * Return scores 8 score if argument is in array. + * + * @param $argument + * + * @return bool|int + */ + public function scoreArgument($argument) + { + if (count($this->token) === 0) { + return false; + } + + if (!\in_array($argument, $this->token, $this->strict)) { + return 8; + } + + return false; + } + + /** + * Returns false. + * + * @return boolean + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + $arrayAsString = implode(', ', $this->token); + return "[{$arrayAsString}]"; + } +} + diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php new file mode 100644 index 00000000..49dea683 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ObjectStateToken.php @@ -0,0 +1,104 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +use Prophecy\Comparator\FactoryProvider; +use SebastianBergmann\Comparator\ComparisonFailure; +use SebastianBergmann\Comparator\Factory as ComparatorFactory; +use Prophecy\Util\StringUtil; + +/** + * Object state-checker token. + * + * @author Konstantin Kudryashov + */ +class ObjectStateToken implements TokenInterface +{ + private $name; + private $value; + private $util; + private $comparatorFactory; + + /** + * Initializes token. + * + * @param string $methodName + * @param mixed $value Expected return value + */ + public function __construct( + $methodName, + $value, + StringUtil $util = null, + ComparatorFactory $comparatorFactory = null + ) { + $this->name = $methodName; + $this->value = $value; + $this->util = $util ?: new StringUtil; + + $this->comparatorFactory = $comparatorFactory ?: FactoryProvider::getInstance(); + } + + /** + * Scores 8 if argument is an object, which method returns expected value. + * + * @param mixed $argument + * + * @return bool|int + */ + public function scoreArgument($argument) + { + $methodCallable = array($argument, $this->name); + if (is_object($argument) && method_exists($argument, $this->name) && is_callable($methodCallable)) { + $actual = call_user_func($methodCallable); + + $comparator = $this->comparatorFactory->getComparatorFor( + $this->value, $actual + ); + + try { + $comparator->assertEquals($this->value, $actual); + return 8; + } catch (ComparisonFailure $failure) { + return false; + } + } + + if (is_object($argument) && property_exists($argument, $this->name)) { + return $argument->{$this->name} === $this->value ? 8 : false; + } + + return false; + } + + /** + * Returns false. + * + * @return bool + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('state(%s(), %s)', + $this->name, + $this->util->stringify($this->value) + ); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php new file mode 100644 index 00000000..bd8d423f --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/StringContainsToken.php @@ -0,0 +1,67 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * String contains token. + * + * @author Peter Mitchell + */ +class StringContainsToken implements TokenInterface +{ + private $value; + + /** + * Initializes token. + * + * @param string $value + */ + public function __construct($value) + { + $this->value = $value; + } + + public function scoreArgument($argument) + { + return is_string($argument) && strpos($argument, $this->value) !== false ? 6 : false; + } + + /** + * Returns preset value against which token checks arguments. + * + * @return mixed + */ + public function getValue() + { + return $this->value; + } + + /** + * Returns false. + * + * @return bool + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('contains("%s")', $this->value); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php new file mode 100644 index 00000000..fe482a39 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TokenInterface.php @@ -0,0 +1,43 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +/** + * Argument token interface. + * + * @author Konstantin Kudryashov + */ +interface TokenInterface +{ + /** + * Calculates token match score for provided argument. + * + * @param mixed $argument + * + * @return false|int + */ + public function scoreArgument($argument); + + /** + * Returns true if this token prevents check of other tokens (is last one). + * + * @return bool + */ + public function isLast(); + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString(); +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php new file mode 100644 index 00000000..cb65132c --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Argument/Token/TypeToken.php @@ -0,0 +1,76 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Argument\Token; + +use Prophecy\Exception\InvalidArgumentException; + +/** + * Value type token. + * + * @author Konstantin Kudryashov + */ +class TypeToken implements TokenInterface +{ + private $type; + + /** + * @param string $type + */ + public function __construct($type) + { + $checker = "is_{$type}"; + if (!function_exists($checker) && !interface_exists($type) && !class_exists($type)) { + throw new InvalidArgumentException(sprintf( + 'Type or class name expected as an argument to TypeToken, but got %s.', $type + )); + } + + $this->type = $type; + } + + /** + * Scores 5 if argument has the same type this token was constructed with. + * + * @param $argument + * + * @return bool|int + */ + public function scoreArgument($argument) + { + $checker = "is_{$this->type}"; + if (function_exists($checker)) { + return call_user_func($checker, $argument) ? 5 : false; + } + + return $argument instanceof $this->type ? 5 : false; + } + + /** + * Returns false. + * + * @return bool + */ + public function isLast() + { + return false; + } + + /** + * Returns string representation for token. + * + * @return string + */ + public function __toString() + { + return sprintf('type(%s)', $this->type); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php b/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php new file mode 100644 index 00000000..625f62ae --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Call/Call.php @@ -0,0 +1,171 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Call; + +use Exception; +use Prophecy\Argument\ArgumentsWildcard; + +/** + * Call object. + * + * @author Konstantin Kudryashov + */ +class Call +{ + private $methodName; + private $arguments; + private $returnValue; + private $exception; + /** + * @var string|null + */ + private $file; + /** + * @var int|null + */ + private $line; + /** + * @var \SplObjectStorage + */ + private $scores; + + /** + * Initializes call. + * + * @param string $methodName + * @param array $arguments + * @param mixed $returnValue + * @param Exception|null $exception + * @param null|string $file + * @param null|int $line + */ + public function __construct($methodName, array $arguments, $returnValue, + Exception $exception = null, $file, $line) + { + $this->methodName = $methodName; + $this->arguments = $arguments; + $this->returnValue = $returnValue; + $this->exception = $exception; + $this->scores = new \SplObjectStorage(); + + if ($file) { + $this->file = $file; + $this->line = intval($line); + } + } + + /** + * Returns called method name. + * + * @return string + */ + public function getMethodName() + { + return $this->methodName; + } + + /** + * Returns called method arguments. + * + * @return array + */ + public function getArguments() + { + return $this->arguments; + } + + /** + * Returns called method return value. + * + * @return null|mixed + */ + public function getReturnValue() + { + return $this->returnValue; + } + + /** + * Returns exception that call thrown. + * + * @return null|Exception + */ + public function getException() + { + return $this->exception; + } + + /** + * Returns callee filename. + * + * @return string|null + */ + public function getFile() + { + return $this->file; + } + + /** + * Returns callee line number. + * + * @return int|null + */ + public function getLine() + { + return $this->line; + } + + /** + * Returns short notation for callee place. + * + * @return string + */ + public function getCallPlace() + { + if (null === $this->file) { + return 'unknown'; + } + + return sprintf('%s:%d', $this->file, $this->line); + } + + /** + * Adds the wildcard match score for the provided wildcard. + * + * @param ArgumentsWildcard $wildcard + * @param false|int $score + * + * @return $this + */ + public function addScore(ArgumentsWildcard $wildcard, $score) + { + $this->scores[$wildcard] = $score; + + return $this; + } + + /** + * Returns wildcard match score for the provided wildcard. The score is + * calculated if not already done. + * + * @param ArgumentsWildcard $wildcard + * + * @return false|int False OR integer score (higher - better) + */ + public function getScore(ArgumentsWildcard $wildcard) + { + if (isset($this->scores[$wildcard])) { + return $this->scores[$wildcard]; + } + + return $this->scores[$wildcard] = $wildcard->scoreArguments($this->getArguments()); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php b/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php new file mode 100644 index 00000000..e2d0b98f --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Call/CallCenter.php @@ -0,0 +1,256 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Call; + +use Prophecy\Exception\Prophecy\MethodProphecyException; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Argument\ArgumentsWildcard; +use Prophecy\Util\StringUtil; +use Prophecy\Exception\Call\UnexpectedCallException; +use SplObjectStorage; + +/** + * Calls receiver & manager. + * + * @author Konstantin Kudryashov + */ +class CallCenter +{ + private $util; + + /** + * @var Call[] + */ + private $recordedCalls = array(); + + /** + * @var SplObjectStorage> + */ + private $unexpectedCalls; + + /** + * Initializes call center. + * + * @param StringUtil $util + */ + public function __construct(StringUtil $util = null) + { + $this->util = $util ?: new StringUtil; + $this->unexpectedCalls = new SplObjectStorage(); + } + + /** + * Makes and records specific method call for object prophecy. + * + * @param ObjectProphecy $prophecy + * @param string $methodName + * @param array $arguments + * + * @return mixed Returns null if no promise for prophecy found or promise return value. + * + * @throws \Prophecy\Exception\Call\UnexpectedCallException If no appropriate method prophecy found + */ + public function makeCall(ObjectProphecy $prophecy, $methodName, array $arguments) + { + // For efficiency exclude 'args' from the generated backtrace + // Limit backtrace to last 3 calls as we don't use the rest + $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3); + + $file = $line = null; + if (isset($backtrace[2]) && isset($backtrace[2]['file']) && isset($backtrace[2]['line'])) { + $file = $backtrace[2]['file']; + $line = $backtrace[2]['line']; + } + + // If no method prophecies defined, then it's a dummy, so we'll just return null + if ('__destruct' === strtolower($methodName) || 0 == count($prophecy->getMethodProphecies())) { + $this->recordedCalls[] = new Call($methodName, $arguments, null, null, $file, $line); + + return null; + } + + // There are method prophecies, so it's a fake/stub. Searching prophecy for this call + $matches = $this->findMethodProphecies($prophecy, $methodName, $arguments); + + // If fake/stub doesn't have method prophecy for this call - throw exception + if (!count($matches)) { + $this->unexpectedCalls->attach(new Call($methodName, $arguments, null, null, $file, $line), $prophecy); + $this->recordedCalls[] = new Call($methodName, $arguments, null, null, $file, $line); + + return null; + } + + // Sort matches by their score value + @usort($matches, function ($match1, $match2) { return $match2[0] - $match1[0]; }); + + $score = $matches[0][0]; + // If Highest rated method prophecy has a promise - execute it or return null instead + $methodProphecy = $matches[0][1]; + $returnValue = null; + $exception = null; + if ($promise = $methodProphecy->getPromise()) { + try { + $returnValue = $promise->execute($arguments, $prophecy, $methodProphecy); + } catch (\Exception $e) { + $exception = $e; + } + } + + if ($methodProphecy->hasReturnVoid() && $returnValue !== null) { + throw new MethodProphecyException( + "The method \"$methodName\" has a void return type, but the promise returned a value", + $methodProphecy + ); + } + + $this->recordedCalls[] = $call = new Call( + $methodName, $arguments, $returnValue, $exception, $file, $line + ); + $call->addScore($methodProphecy->getArgumentsWildcard(), $score); + + if (null !== $exception) { + throw $exception; + } + + return $returnValue; + } + + /** + * Searches for calls by method name & arguments wildcard. + * + * @param string $methodName + * @param ArgumentsWildcard $wildcard + * + * @return list + */ + public function findCalls($methodName, ArgumentsWildcard $wildcard) + { + $methodName = strtolower($methodName); + + return array_values( + array_filter($this->recordedCalls, function (Call $call) use ($methodName, $wildcard) { + return $methodName === strtolower($call->getMethodName()) + && 0 < $call->getScore($wildcard) + ; + }) + ); + } + + /** + * @return void + * @throws UnexpectedCallException + */ + public function checkUnexpectedCalls() + { + foreach ($this->unexpectedCalls as $call) { + $prophecy = $this->unexpectedCalls[$call]; + + // If fake/stub doesn't have method prophecy for this call - throw exception + if (!count($this->findMethodProphecies($prophecy, $call->getMethodName(), $call->getArguments()))) { + throw $this->createUnexpectedCallException($prophecy, $call->getMethodName(), $call->getArguments()); + } + } + } + + /** + * @param ObjectProphecy $prophecy + * @param string $methodName + * @param array $arguments + * + * @return UnexpectedCallException + */ + private function createUnexpectedCallException(ObjectProphecy $prophecy, $methodName, + array $arguments) + { + $classname = get_class($prophecy->reveal()); + $indentationLength = 8; // looks good + $argstring = implode( + ",\n", + $this->indentArguments( + array_map(array($this->util, 'stringify'), $arguments), + $indentationLength + ) + ); + + $expected = array(); + + foreach (array_merge(...array_values($prophecy->getMethodProphecies())) as $methodProphecy) { + $expected[] = sprintf( + " - %s(\n" . + "%s\n" . + " )", + $methodProphecy->getMethodName(), + implode( + ",\n", + $this->indentArguments( + array_map('strval', $methodProphecy->getArgumentsWildcard()->getTokens()), + $indentationLength + ) + ) + ); + } + + return new UnexpectedCallException( + sprintf( + "Unexpected method call on %s:\n". + " - %s(\n". + "%s\n". + " )\n". + "expected calls were:\n". + "%s", + + $classname, $methodName, $argstring, implode("\n", $expected) + ), + $prophecy, $methodName, $arguments + + ); + } + + /** + * @param string[] $arguments + * @param int $indentationLength + * + * @return string[] + */ + private function indentArguments(array $arguments, $indentationLength) + { + return preg_replace_callback( + '/^/m', + function () use ($indentationLength) { + return str_repeat(' ', $indentationLength); + }, + $arguments + ); + } + + /** + * @param ObjectProphecy $prophecy + * @param string $methodName + * @param array $arguments + * + * @return array + * + * @phpstan-return list + */ + private function findMethodProphecies(ObjectProphecy $prophecy, $methodName, array $arguments) + { + $matches = array(); + foreach ($prophecy->getMethodProphecies($methodName) as $methodProphecy) { + if (0 < $score = $methodProphecy->getArgumentsWildcard()->scoreArguments($arguments)) { + $matches[] = array($score, $methodProphecy); + } + } + + return $matches; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php b/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php new file mode 100644 index 00000000..44bfb862 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Comparator/ClosureComparator.php @@ -0,0 +1,60 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Comparator; + +use SebastianBergmann\Comparator\Comparator; +use SebastianBergmann\Comparator\ComparisonFailure; + +/** + * Closure comparator. + * + * @author Konstantin Kudryashov + */ +final class ClosureComparator extends Comparator +{ + /** + * @param mixed $expected + * @param mixed $actual + */ + public function accepts($expected, $actual): bool + { + return is_object($expected) && $expected instanceof \Closure + && is_object($actual) && $actual instanceof \Closure; + } + + /** + * @param mixed $expected + * @param mixed $actual + * @param float $delta + * @param bool $canonicalize + * @param bool $ignoreCase + */ + public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false): void + { + if ($expected !== $actual) { + // Support for sebastian/comparator < 5 + if ((new \ReflectionMethod(ComparisonFailure::class, '__construct'))->getNumberOfParameters() >= 6) { + // @phpstan-ignore-next-line + throw new ComparisonFailure($expected, $actual, '', '', false, 'all closures are different if not identical'); + } + + throw new ComparisonFailure( + $expected, + $actual, + // we don't need a diff + '', + '', + 'all closures are different if not identical' + ); + } + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php b/vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php new file mode 100644 index 00000000..5d7850e7 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Comparator/Factory.php @@ -0,0 +1,49 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Comparator; + +use SebastianBergmann\Comparator\Factory as BaseFactory; + +/** + * Prophecy comparator factory. + * + * @author Konstantin Kudryashov + * + * @deprecated Use "Prophecy\Comparator\FactoryProvider" instead to get a "SebastianBergmann\Comparator\Factory" instance. + */ +final class Factory extends BaseFactory +{ + /** + * @var Factory + */ + private static $instance; + + public function __construct() + { + parent::__construct(); + + $this->register(new ClosureComparator()); + $this->register(new ProphecyComparator()); + } + + /** + * @return Factory + */ + public static function getInstance() + { + if (self::$instance === null) { + self::$instance = new Factory; + } + + return self::$instance; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Comparator/FactoryProvider.php b/vendor/phpspec/prophecy/src/Prophecy/Comparator/FactoryProvider.php new file mode 100644 index 00000000..4559dd3f --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Comparator/FactoryProvider.php @@ -0,0 +1,42 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Comparator; + +use SebastianBergmann\Comparator\Factory; + +/** + * Prophecy comparator factory. + * + * @author Konstantin Kudryashov + */ +final class FactoryProvider +{ + /** + * @var Factory|null + */ + private static $instance; + + private function __construct() + { + } + + public static function getInstance(): Factory + { + if (self::$instance === null) { + self::$instance = new Factory(); + self::$instance->register(new ClosureComparator()); + self::$instance->register(new ProphecyComparator()); + } + + return self::$instance; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php b/vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php new file mode 100644 index 00000000..da3e03f1 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Comparator/ProphecyComparator.php @@ -0,0 +1,46 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Comparator; + +use Prophecy\Prophecy\ProphecyInterface; +use SebastianBergmann\Comparator\ObjectComparator; + +/** + * @final + */ +class ProphecyComparator extends ObjectComparator +{ + /** + * @param mixed $expected + * @param mixed $actual + */ + public function accepts($expected, $actual): bool + { + return is_object($expected) && is_object($actual) && $actual instanceof ProphecyInterface; + } + + /** + * @param mixed $expected + * @param mixed $actual + * @param float $delta + * @param bool $canonicalize + * @param bool $ignoreCase + * @param array $processed + * + * @phpstan-param list $processed + */ + public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false, array &$processed = array()): void + { + \assert($actual instanceof ProphecyInterface); + parent::assertEquals($expected, $actual->reveal(), $delta, $canonicalize, $ignoreCase, $processed); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php new file mode 100644 index 00000000..f6f2ce66 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/CachedDoubler.php @@ -0,0 +1,69 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler; + +use ReflectionClass; + +/** + * Cached class doubler. + * Prevents mirroring/creation of the same structure twice. + * + * @author Konstantin Kudryashov + */ +class CachedDoubler extends Doubler +{ + /** + * @var array + */ + private static $classes = array(); + + protected function createDoubleClass(ReflectionClass $class = null, array $interfaces) + { + $classId = $this->generateClassId($class, $interfaces); + if (isset(self::$classes[$classId])) { + return self::$classes[$classId]; + } + + return self::$classes[$classId] = parent::createDoubleClass($class, $interfaces); + } + + /** + * @param ReflectionClass|null $class + * @param ReflectionClass[] $interfaces + * + * @return string + */ + private function generateClassId(ReflectionClass $class = null, array $interfaces) + { + $parts = array(); + if (null !== $class) { + $parts[] = $class->getName(); + } + foreach ($interfaces as $interface) { + $parts[] = $interface->getName(); + } + foreach ($this->getClassPatches() as $patch) { + $parts[] = get_class($patch); + } + sort($parts); + + return md5(implode('', $parts)); + } + + /** + * @return void + */ + public function resetCache() + { + self::$classes = array(); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php new file mode 100644 index 00000000..d6d19685 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ClassPatchInterface.php @@ -0,0 +1,48 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; + +/** + * Class patch interface. + * Class patches extend doubles functionality or help + * Prophecy to avoid some internal PHP bugs. + * + * @author Konstantin Kudryashov + */ +interface ClassPatchInterface +{ + /** + * Checks if patch supports specific class node. + * + * @param ClassNode $node + * + * @return bool + */ + public function supports(ClassNode $node); + + /** + * Applies patch to the specific class node. + * + * @param ClassNode $node + * @return void + */ + public function apply(ClassNode $node); + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return int Priority number (higher - earlier) + */ + public function getPriority(); +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php new file mode 100644 index 00000000..1e8158da --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/DisableConstructorPatch.php @@ -0,0 +1,77 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; +use Prophecy\Doubler\Generator\Node\MethodNode; + +/** + * Disable constructor. + * Makes all constructor arguments optional. + * + * @author Konstantin Kudryashov + */ +class DisableConstructorPatch implements ClassPatchInterface +{ + /** + * Checks if class has `__construct` method. + * + * @param ClassNode $node + * + * @return bool + */ + public function supports(ClassNode $node) + { + return true; + } + + /** + * Makes all class constructor arguments optional. + * + * @param ClassNode $node + */ + public function apply(ClassNode $node) + { + if (!$node->isExtendable('__construct')) { + return; + } + + if (!$node->hasMethod('__construct')) { + $node->addMethod(new MethodNode('__construct', '')); + + return; + } + + $constructor = $node->getMethod('__construct'); + \assert($constructor !== null); + foreach ($constructor->getArguments() as $argument) { + $argument->setDefault(null); + } + + $constructor->setCode(<< + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; + +/** + * Remove method functionality from the double which will clash with php keywords. + * + * @author Milan Magudia + */ +class KeywordPatch implements ClassPatchInterface +{ + /** + * Support any class + * + * @param ClassNode $node + * + * @return boolean + */ + public function supports(ClassNode $node) + { + return true; + } + + /** + * Remove methods that clash with php keywords + * + * @param ClassNode $node + */ + public function apply(ClassNode $node) + { + $methodNames = array_keys($node->getMethods()); + $methodsToRemove = array_intersect($methodNames, $this->getKeywords()); + foreach ($methodsToRemove as $methodName) { + $node->removeMethod($methodName); + } + } + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return int Priority number (higher - earlier) + */ + public function getPriority() + { + return 49; + } + + /** + * Returns array of php keywords. + * + * @return list + */ + private function getKeywords() + { + return ['__halt_compiler']; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php new file mode 100644 index 00000000..a545eeff --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/MagicCallPatch.php @@ -0,0 +1,105 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ArgumentNode; +use Prophecy\Doubler\Generator\Node\ClassNode; +use Prophecy\Doubler\Generator\Node\MethodNode; +use Prophecy\PhpDocumentor\ClassAndInterfaceTagRetriever; +use Prophecy\PhpDocumentor\MethodTagRetrieverInterface; + +/** + * Discover Magical API using "@method" PHPDoc format. + * + * @author Thomas Tourlourat + * @author Kévin Dunglas + * @author Théo FIDRY + */ +class MagicCallPatch implements ClassPatchInterface +{ + const MAGIC_METHODS_WITH_ARGUMENTS = ['__call', '__callStatic', '__get', '__isset', '__set', '__set_state', '__unserialize', '__unset']; + + private $tagRetriever; + + public function __construct(MethodTagRetrieverInterface $tagRetriever = null) + { + $this->tagRetriever = null === $tagRetriever ? new ClassAndInterfaceTagRetriever() : $tagRetriever; + } + + /** + * Support any class + * + * @param ClassNode $node + * + * @return boolean + */ + public function supports(ClassNode $node) + { + return true; + } + + /** + * Discover Magical API + * + * @param ClassNode $node + */ + public function apply(ClassNode $node) + { + $types = array_filter($node->getInterfaces(), function ($interface) { + return 0 !== strpos($interface, 'Prophecy\\'); + }); + $types[] = $node->getParentClass(); + + foreach ($types as $type) { + $reflectionClass = new \ReflectionClass($type); + + while ($reflectionClass) { + $tagList = $this->tagRetriever->getTagList($reflectionClass); + + foreach ($tagList as $tag) { + $methodName = $tag->getMethodName(); + + if (empty($methodName)) { + continue; + } + + if (!$reflectionClass->hasMethod($methodName)) { + $methodNode = new MethodNode($methodName); + + // only magic methods can have a contract that needs to be enforced + if (in_array($methodName, self::MAGIC_METHODS_WITH_ARGUMENTS)) { + foreach($tag->getArguments() as $argument) { + $argumentNode = new ArgumentNode($argument['name']); + $methodNode->addArgument($argumentNode); + } + } + + $methodNode->setStatic($tag->isStatic()); + $node->addMethod($methodNode); + } + } + + $reflectionClass = $reflectionClass->getParentClass(); + } + } + } + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return integer Priority number (higher - earlier) + */ + public function getPriority() + { + return 50; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php new file mode 100644 index 00000000..379bfafd --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ProphecySubjectPatch.php @@ -0,0 +1,114 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ArgumentTypeNode; +use Prophecy\Doubler\Generator\Node\ClassNode; +use Prophecy\Doubler\Generator\Node\MethodNode; +use Prophecy\Doubler\Generator\Node\ArgumentNode; +use Prophecy\Doubler\Generator\Node\ReturnTypeNode; + +/** + * Add Prophecy functionality to the double. + * This is a core class patch for Prophecy. + * + * @author Konstantin Kudryashov + */ +class ProphecySubjectPatch implements ClassPatchInterface +{ + /** + * Always returns true. + * + * @param ClassNode $node + * + * @return bool + */ + public function supports(ClassNode $node) + { + return true; + } + + /** + * Apply Prophecy functionality to class node. + * + * @param ClassNode $node + */ + public function apply(ClassNode $node) + { + $node->addInterface('Prophecy\Prophecy\ProphecySubjectInterface'); + $node->addProperty('objectProphecyClosure', 'private'); + + foreach ($node->getMethods() as $name => $method) { + if ('__construct' === strtolower($name)) { + continue; + } + + if (!$method->getReturnTypeNode()->hasReturnStatement()) { + $method->setCode( + '$this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());' + ); + } else { + $method->setCode( + 'return $this->getProphecy()->makeProphecyMethodCall(__FUNCTION__, func_get_args());' + ); + } + } + + $prophecySetter = new MethodNode('setProphecy'); + $prophecyArgument = new ArgumentNode('prophecy'); + $prophecyArgument->setTypeNode(new ArgumentTypeNode('Prophecy\Prophecy\ProphecyInterface')); + $prophecySetter->addArgument($prophecyArgument); + $prophecySetter->setCode(<<objectProphecyClosure) { + \$this->objectProphecyClosure = static function () use (\$prophecy) { + return \$prophecy; + }; +} +PHP + ); + + $prophecyGetter = new MethodNode('getProphecy'); + $prophecyGetter->setCode('return \call_user_func($this->objectProphecyClosure);'); + + if ($node->hasMethod('__call')) { + $__call = $node->getMethod('__call'); + \assert($__call !== null); + } else { + $__call = new MethodNode('__call'); + $__call->addArgument(new ArgumentNode('name')); + $__call->addArgument(new ArgumentNode('arguments')); + + $node->addMethod($__call, true); + } + + $__call->setCode(<<addMethod($prophecySetter, true); + $node->addMethod($prophecyGetter, true); + } + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return int Priority number (higher - earlier) + */ + public function getPriority() + { + return 0; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php new file mode 100644 index 00000000..94a16374 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ReflectionClassNewInstancePatch.php @@ -0,0 +1,59 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; + +/** + * ReflectionClass::newInstance patch. + * Makes first argument of newInstance optional, since it works but signature is misleading + * + * @author Florian Klein + */ +class ReflectionClassNewInstancePatch implements ClassPatchInterface +{ + /** + * Supports ReflectionClass + * + * @param ClassNode $node + * + * @return bool + */ + public function supports(ClassNode $node) + { + return 'ReflectionClass' === $node->getParentClass(); + } + + /** + * Updates newInstance's first argument to make it optional + * + * @param ClassNode $node + */ + public function apply(ClassNode $node) + { + $method = $node->getMethod('newInstance'); + \assert($method !== null); + foreach ($method->getArguments() as $argument) { + $argument->setDefault(null); + } + } + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return int Priority number (higher = earlier) + */ + public function getPriority() + { + return 50; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php new file mode 100644 index 00000000..729cb944 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/SplFileInfoPatch.php @@ -0,0 +1,121 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; +use Prophecy\Doubler\Generator\Node\MethodNode; + +/** + * SplFileInfo patch. + * Makes SplFileInfo and derivative classes usable with Prophecy. + * + * @author Konstantin Kudryashov + */ +class SplFileInfoPatch implements ClassPatchInterface +{ + /** + * Supports everything that extends SplFileInfo. + * + * @param ClassNode $node + * + * @return bool + */ + public function supports(ClassNode $node) + { + return 'SplFileInfo' === $node->getParentClass() + || is_subclass_of($node->getParentClass(), 'SplFileInfo') + ; + } + + /** + * Updated constructor code to call parent one with dummy file argument. + * + * @param ClassNode $node + */ + public function apply(ClassNode $node) + { + if ($node->hasMethod('__construct')) { + $constructor = $node->getMethod('__construct'); + \assert($constructor !== null); + } else { + $constructor = new MethodNode('__construct'); + $node->addMethod($constructor); + } + + if ($this->nodeIsDirectoryIterator($node)) { + $constructor->setCode('return parent::__construct("' . __DIR__ . '");'); + + return; + } + + if ($this->nodeIsSplFileObject($node)) { + $filePath = str_replace('\\','\\\\',__FILE__); + $constructor->setCode('return parent::__construct("' . $filePath .'");'); + + return; + } + + if ($this->nodeIsSymfonySplFileInfo($node)) { + $filePath = str_replace('\\','\\\\',__FILE__); + $constructor->setCode('return parent::__construct("' . $filePath .'", "", "");'); + + return; + } + + $constructor->useParentCode(); + } + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return int Priority number (higher - earlier) + */ + public function getPriority() + { + return 50; + } + + /** + * @param ClassNode $node + * @return boolean + */ + private function nodeIsDirectoryIterator(ClassNode $node) + { + $parent = $node->getParentClass(); + + return 'DirectoryIterator' === $parent + || is_subclass_of($parent, 'DirectoryIterator'); + } + + /** + * @param ClassNode $node + * @return boolean + */ + private function nodeIsSplFileObject(ClassNode $node) + { + $parent = $node->getParentClass(); + + return 'SplFileObject' === $parent + || is_subclass_of($parent, 'SplFileObject'); + } + + /** + * @param ClassNode $node + * @return boolean + */ + private function nodeIsSymfonySplFileInfo(ClassNode $node) + { + $parent = $node->getParentClass(); + + return 'Symfony\\Component\\Finder\\SplFileInfo' === $parent; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ThrowablePatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ThrowablePatch.php new file mode 100644 index 00000000..9085f28c --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/ThrowablePatch.php @@ -0,0 +1,95 @@ +implementsAThrowableInterface($node) && $this->doesNotExtendAThrowableClass($node); + } + + /** + * @param ClassNode $node + * @return bool + */ + private function implementsAThrowableInterface(ClassNode $node) + { + foreach ($node->getInterfaces() as $type) { + if (is_a($type, 'Throwable', true)) { + return true; + } + } + + return false; + } + + /** + * @param ClassNode $node + * @return bool + */ + private function doesNotExtendAThrowableClass(ClassNode $node) + { + return !is_a($node->getParentClass(), 'Throwable', true); + } + + /** + * Applies patch to the specific class node. + * + * @param ClassNode $node + * + * @return void + */ + public function apply(ClassNode $node) + { + $this->checkItCanBeDoubled($node); + $this->setParentClassToException($node); + } + + private function checkItCanBeDoubled(ClassNode $node): void + { + $className = $node->getParentClass(); + if ($className !== 'stdClass') { + throw new ClassCreatorException( + sprintf( + 'Cannot double concrete class %s as well as implement Traversable', + $className + ), + $node + ); + } + } + + private function setParentClassToException(ClassNode $node): void + { + $node->setParentClass('Exception'); + + $node->removeMethod('getMessage'); + $node->removeMethod('getCode'); + $node->removeMethod('getFile'); + $node->removeMethod('getLine'); + $node->removeMethod('getTrace'); + $node->removeMethod('getPrevious'); + $node->removeMethod('getNext'); + $node->removeMethod('getTraceAsString'); + } + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return int Priority number (higher - earlier) + */ + public function getPriority() + { + return 100; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php new file mode 100644 index 00000000..0e2e0470 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/ClassPatch/TraversablePatch.php @@ -0,0 +1,98 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\ClassPatch; + +use Prophecy\Doubler\Generator\Node\ClassNode; +use Prophecy\Doubler\Generator\Node\MethodNode; +use Prophecy\Doubler\Generator\Node\ReturnTypeNode; + +/** + * Traversable interface patch. + * Forces classes that implement interfaces, that extend Traversable to also implement Iterator. + * + * @author Konstantin Kudryashov + */ +class TraversablePatch implements ClassPatchInterface +{ + /** + * Supports nodetree, that implement Traversable, but not Iterator or IteratorAggregate. + * + * @param ClassNode $node + * + * @return bool + */ + public function supports(ClassNode $node) + { + if (in_array('Iterator', $node->getInterfaces())) { + return false; + } + if (in_array('IteratorAggregate', $node->getInterfaces())) { + return false; + } + + foreach ($node->getInterfaces() as $interface) { + if ('Traversable' !== $interface && !is_subclass_of($interface, 'Traversable')) { + continue; + } + if ('Iterator' === $interface || is_subclass_of($interface, 'Iterator')) { + continue; + } + if ('IteratorAggregate' === $interface || is_subclass_of($interface, 'IteratorAggregate')) { + continue; + } + + return true; + } + + return false; + } + + /** + * Forces class to implement Iterator interface. + * + * @param ClassNode $node + */ + public function apply(ClassNode $node) + { + $node->addInterface('Iterator'); + + $currentMethod = new MethodNode('current'); + (\PHP_VERSION_ID >= 80100) && $currentMethod->setReturnTypeNode(new ReturnTypeNode('mixed')); + $node->addMethod($currentMethod); + + $keyMethod = new MethodNode('key'); + (\PHP_VERSION_ID >= 80100) && $keyMethod->setReturnTypeNode(new ReturnTypeNode('mixed')); + $node->addMethod($keyMethod); + + $nextMethod = new MethodNode('next'); + (\PHP_VERSION_ID >= 80100) && $nextMethod->setReturnTypeNode(new ReturnTypeNode('void')); + $node->addMethod($nextMethod); + + $rewindMethod = new MethodNode('rewind'); + (\PHP_VERSION_ID >= 80100) && $rewindMethod->setReturnTypeNode(new ReturnTypeNode('void')); + $node->addMethod($rewindMethod); + + $validMethod = new MethodNode('valid'); + (\PHP_VERSION_ID >= 80100) && $validMethod->setReturnTypeNode(new ReturnTypeNode('bool')); + $node->addMethod($validMethod); + } + + /** + * Returns patch priority, which determines when patch will be applied. + * + * @return int Priority number (higher - earlier) + */ + public function getPriority() + { + return 100; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php new file mode 100644 index 00000000..699be3a2 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/DoubleInterface.php @@ -0,0 +1,22 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler; + +/** + * Core double interface. + * All doubled classes will implement this one. + * + * @author Konstantin Kudryashov + */ +interface DoubleInterface +{ +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php new file mode 100644 index 00000000..88e15309 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Doubler.php @@ -0,0 +1,147 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler; + +use Doctrine\Instantiator\Instantiator; +use Prophecy\Doubler\ClassPatch\ClassPatchInterface; +use Prophecy\Doubler\Generator\ClassMirror; +use Prophecy\Doubler\Generator\ClassCreator; +use Prophecy\Exception\InvalidArgumentException; +use ReflectionClass; + +/** + * Cached class doubler. + * Prevents mirroring/creation of the same structure twice. + * + * @author Konstantin Kudryashov + */ +class Doubler +{ + private $mirror; + private $creator; + private $namer; + + /** + * @var list + */ + private $patches = array(); + + /** + * @var Instantiator|null + */ + private $instantiator; + + public function __construct(ClassMirror $mirror = null, ClassCreator $creator = null, + NameGenerator $namer = null) + { + $this->mirror = $mirror ?: new ClassMirror; + $this->creator = $creator ?: new ClassCreator; + $this->namer = $namer ?: new NameGenerator; + } + + /** + * Returns list of registered class patches. + * + * @return list + */ + public function getClassPatches() + { + return $this->patches; + } + + /** + * Registers new class patch. + * + * @param ClassPatchInterface $patch + * + * @return void + */ + public function registerClassPatch(ClassPatchInterface $patch) + { + $this->patches[] = $patch; + + @usort($this->patches, function (ClassPatchInterface $patch1, ClassPatchInterface $patch2) { + return $patch2->getPriority() - $patch1->getPriority(); + }); + } + + /** + * Creates double from specific class or/and list of interfaces. + * + * @template T of object + * + * @param ReflectionClass|null $class + * @param ReflectionClass[] $interfaces Array of ReflectionClass instances + * @param array|null $args Constructor arguments + * + * @return T&DoubleInterface + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function double(ReflectionClass $class = null, array $interfaces, array $args = null) + { + foreach ($interfaces as $interface) { + if (!$interface instanceof ReflectionClass) { + throw new InvalidArgumentException(sprintf( + "[ReflectionClass \$interface1 [, ReflectionClass \$interface2]] array expected as\n". + "a second argument to `Doubler::double(...)`, but got %s.", + is_object($interface) ? get_class($interface).' class' : gettype($interface) + )); + } + } + + $classname = $this->createDoubleClass($class, $interfaces); + $reflection = new ReflectionClass($classname); + + if (null !== $args) { + return $reflection->newInstanceArgs($args); + } + if ((null === $constructor = $reflection->getConstructor()) + || ($constructor->isPublic() && !$constructor->isFinal())) { + return $reflection->newInstance(); + } + + if (!$this->instantiator) { + $this->instantiator = new Instantiator(); + } + + return $this->instantiator->instantiate($classname); + } + + /** + * Creates double class and returns its FQN. + * + * @template T of object + * + * @param ReflectionClass|null $class + * @param ReflectionClass[] $interfaces + * + * @return class-string + */ + protected function createDoubleClass(ReflectionClass $class = null, array $interfaces) + { + $name = $this->namer->name($class, $interfaces); + $node = $this->mirror->reflect($class, $interfaces); + + foreach ($this->patches as $patch) { + if ($patch->supports($node)) { + $patch->apply($node); + } + } + $node->addInterface(DoubleInterface::class); + + $this->creator->create($name, $node); + \assert(class_exists($name, false)); + + return $name; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php new file mode 100644 index 00000000..2d30a3f2 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php @@ -0,0 +1,119 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\Generator; + +use Prophecy\Doubler\Generator\Node\ReturnTypeNode; +use Prophecy\Doubler\Generator\Node\TypeNodeAbstract; + +/** + * Class code creator. + * Generates PHP code for specific class node tree. + * + * @author Konstantin Kudryashov + */ +class ClassCodeGenerator +{ + // Used to accept an optional first argument with the deprecated Prophecy\Doubler\Generator\TypeHintReference so careful when adding a new argument in a minor version. + public function __construct() + { + } + + /** + * Generates PHP code for class node. + * + * @param string $classname + * @param Node\ClassNode $class + * + * @return string + */ + public function generate($classname, Node\ClassNode $class) + { + $parts = explode('\\', $classname); + $classname = array_pop($parts); + $namespace = implode('\\', $parts); + + $code = sprintf("%sclass %s extends \%s implements %s {\n", + $class->isReadOnly() ? 'readonly ': '', + $classname, + $class->getParentClass(), + implode(', ', + array_map(function ($interface) {return '\\'.$interface;}, $class->getInterfaces()) + ) + ); + + foreach ($class->getProperties() as $name => $visibility) { + $code .= sprintf("%s \$%s;\n", $visibility, $name); + } + $code .= "\n"; + + foreach ($class->getMethods() as $method) { + $code .= $this->generateMethod($method)."\n"; + } + $code .= "\n}"; + + return sprintf("namespace %s {\n%s\n}", $namespace, $code); + } + + private function generateMethod(Node\MethodNode $method): string + { + $php = sprintf("%s %s function %s%s(%s)%s {\n", + $method->getVisibility(), + $method->isStatic() ? 'static' : '', + $method->returnsReference() ? '&':'', + $method->getName(), + implode(', ', $this->generateArguments($method->getArguments())), + ($ret = $this->generateTypes($method->getReturnTypeNode())) ? ': '.$ret : '' + ); + $php .= $method->getCode()."\n"; + + return $php.'}'; + } + + private function generateTypes(TypeNodeAbstract $typeNode): string + { + if (!$typeNode->getTypes()) { + return ''; + } + + // When we require PHP 8 we can stop generating ?foo nullables and remove this first block + if ($typeNode->canUseNullShorthand()) { + return sprintf( '?%s', $typeNode->getNonNullTypes()[0]); + } else { + return join('|', $typeNode->getTypes()); + } + } + + /** + * @param list $arguments + * + * @return list + */ + private function generateArguments(array $arguments): array + { + return array_map(function (Node\ArgumentNode $argument){ + + $php = $this->generateTypes($argument->getTypeNode()); + + $php .= ' '.($argument->isPassedByReference() ? '&' : ''); + + $php .= $argument->isVariadic() ? '...' : ''; + + $php .= '$'.$argument->getName(); + + if ($argument->isOptional() && !$argument->isVariadic()) { + $php .= ' = '.var_export($argument->getDefault(), true); + } + + return $php; + }, $arguments); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php new file mode 100644 index 00000000..79f3b95d --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassCreator.php @@ -0,0 +1,62 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\Generator; + +use Prophecy\Exception\Doubler\ClassCreatorException; + +/** + * Class creator. + * Creates specific class in current environment. + * + * @author Konstantin Kudryashov + */ +class ClassCreator +{ + private $generator; + + public function __construct(ClassCodeGenerator $generator = null) + { + $this->generator = $generator ?: new ClassCodeGenerator; + } + + /** + * Creates class. + * + * @param string $classname + * @param Node\ClassNode $class + * + * @return mixed + * + * @throws \Prophecy\Exception\Doubler\ClassCreatorException + */ + public function create($classname, Node\ClassNode $class) + { + $code = $this->generator->generate($classname, $class); + $return = eval($code); + + if (!class_exists($classname, false)) { + if (count($class->getInterfaces())) { + throw new ClassCreatorException(sprintf( + 'Could not double `%s` and implement interfaces: [%s].', + $class->getParentClass(), implode(', ', $class->getInterfaces()) + ), $class); + } + + throw new ClassCreatorException( + sprintf('Could not double `%s`.', $class->getParentClass()), + $class + ); + } + + return $return; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php new file mode 100644 index 00000000..f5f3b7a4 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ClassMirror.php @@ -0,0 +1,290 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\Generator; + +use Prophecy\Doubler\Generator\Node\ArgumentTypeNode; +use Prophecy\Doubler\Generator\Node\ReturnTypeNode; +use Prophecy\Exception\InvalidArgumentException; +use Prophecy\Exception\Doubler\ClassMirrorException; +use ReflectionClass; +use ReflectionIntersectionType; +use ReflectionMethod; +use ReflectionNamedType; +use ReflectionParameter; +use ReflectionType; +use ReflectionUnionType; + +/** + * Class mirror. + * Core doubler class. Mirrors specific class and/or interfaces into class node tree. + * + * @author Konstantin Kudryashov + */ +class ClassMirror +{ + private const REFLECTABLE_METHODS = array( + '__construct', + '__destruct', + '__sleep', + '__wakeup', + '__toString', + '__call', + '__invoke' + ); + + /** + * Reflects provided arguments into class node. + * + * @param ReflectionClass|null $class + * @param ReflectionClass[] $interfaces + * + * @return Node\ClassNode + * + */ + public function reflect(?ReflectionClass $class, array $interfaces) + { + $node = new Node\ClassNode; + + if (null !== $class) { + if (true === $class->isInterface()) { + throw new InvalidArgumentException(sprintf( + "Could not reflect %s as a class, because it\n". + "is interface - use the second argument instead.", + $class->getName() + )); + } + + $this->reflectClassToNode($class, $node); + } + + foreach ($interfaces as $interface) { + if (!$interface instanceof ReflectionClass) { + throw new InvalidArgumentException(sprintf( + "[ReflectionClass \$interface1 [, ReflectionClass \$interface2]] array expected as\n". + "a second argument to `ClassMirror::reflect(...)`, but got %s.", + is_object($interface) ? get_class($interface).' class' : gettype($interface) + )); + } + if (false === $interface->isInterface()) { + throw new InvalidArgumentException(sprintf( + "Could not reflect %s as an interface, because it\n". + "is class - use the first argument instead.", + $interface->getName() + )); + } + + $this->reflectInterfaceToNode($interface, $node); + } + + $node->addInterface('Prophecy\Doubler\Generator\ReflectionInterface'); + + return $node; + } + + /** + * @param ReflectionClass $class + */ + private function reflectClassToNode(ReflectionClass $class, Node\ClassNode $node): void + { + if (true === $class->isFinal()) { + throw new ClassMirrorException(sprintf( + 'Could not reflect class %s as it is marked final.', $class->getName() + ), $class); + } + + if (method_exists(ReflectionClass::class, 'isReadOnly')) { + $node->setReadOnly($class->isReadOnly()); + } + + $node->setParentClass($class->getName()); + + foreach ($class->getMethods(ReflectionMethod::IS_ABSTRACT) as $method) { + if (false === $method->isProtected()) { + continue; + } + + $this->reflectMethodToNode($method, $node); + } + + foreach ($class->getMethods(ReflectionMethod::IS_PUBLIC) as $method) { + if (0 === strpos($method->getName(), '_') + && !in_array($method->getName(), self::REFLECTABLE_METHODS)) { + continue; + } + + if (true === $method->isFinal()) { + $node->addUnextendableMethod($method->getName()); + continue; + } + + $this->reflectMethodToNode($method, $node); + } + } + + /** + * @param ReflectionClass $interface + */ + private function reflectInterfaceToNode(ReflectionClass $interface, Node\ClassNode $node): void + { + $node->addInterface($interface->getName()); + + foreach ($interface->getMethods() as $method) { + $this->reflectMethodToNode($method, $node); + } + } + + private function reflectMethodToNode(ReflectionMethod $method, Node\ClassNode $classNode): void + { + $node = new Node\MethodNode($method->getName()); + + if (true === $method->isProtected()) { + $node->setVisibility('protected'); + } + + if (true === $method->isStatic()) { + $node->setStatic(); + } + + if (true === $method->returnsReference()) { + $node->setReturnsReference(); + } + + if ($method->hasReturnType()) { + \assert($method->getReturnType() !== null); + $returnTypes = $this->getTypeHints($method->getReturnType(), $method->getDeclaringClass(), $method->getReturnType()->allowsNull()); + $node->setReturnTypeNode(new ReturnTypeNode(...$returnTypes)); + } + elseif (method_exists($method, 'hasTentativeReturnType') && $method->hasTentativeReturnType()) { + \assert($method->getTentativeReturnType() !== null); + $returnTypes = $this->getTypeHints($method->getTentativeReturnType(), $method->getDeclaringClass(), $method->getTentativeReturnType()->allowsNull()); + $node->setReturnTypeNode(new ReturnTypeNode(...$returnTypes)); + } + + if (is_array($params = $method->getParameters()) && count($params)) { + foreach ($params as $param) { + $this->reflectArgumentToNode($param, $method->getDeclaringClass(), $node); + } + } + + $classNode->addMethod($node); + } + + /** + * @param ReflectionClass $declaringClass + * + * @return void + */ + private function reflectArgumentToNode(ReflectionParameter $parameter, ReflectionClass $declaringClass, Node\MethodNode $methodNode): void + { + $name = $parameter->getName() == '...' ? '__dot_dot_dot__' : $parameter->getName(); + $node = new Node\ArgumentNode($name); + + $typeHints = $this->getTypeHints($parameter->getType(), $declaringClass, $parameter->allowsNull()); + + $node->setTypeNode(new ArgumentTypeNode(...$typeHints)); + + if ($parameter->isVariadic()) { + $node->setAsVariadic(); + } + + if ($this->hasDefaultValue($parameter)) { + $node->setDefault($this->getDefaultValue($parameter)); + } + + if ($parameter->isPassedByReference()) { + $node->setAsPassedByReference(); + } + + + $methodNode->addArgument($node); + } + + private function hasDefaultValue(ReflectionParameter $parameter): bool + { + if ($parameter->isVariadic()) { + return false; + } + + if ($parameter->isDefaultValueAvailable()) { + return true; + } + + return $parameter->isOptional() || ($parameter->allowsNull() && $parameter->getType() && \PHP_VERSION_ID < 80100); + } + + /** + * @return mixed + */ + private function getDefaultValue(ReflectionParameter $parameter) + { + if (!$parameter->isDefaultValueAvailable()) { + return null; + } + + return $parameter->getDefaultValue(); + } + + /** + * @param ReflectionClass $class + * + * @return list + */ + private function getTypeHints(?ReflectionType $type, ReflectionClass $class, bool $allowsNull) : array + { + $types = []; + + if ($type instanceof ReflectionNamedType) { + $types = [$type->getName()]; + + } + elseif ($type instanceof ReflectionUnionType) { + $types = $type->getTypes(); + if (\PHP_VERSION_ID >= 80200) { + foreach ($types as $reflectionType) { + if ($reflectionType instanceof ReflectionIntersectionType) { + throw new ClassMirrorException('Doubling intersection types is not supported', $class); + } + } + } + } + elseif ($type instanceof ReflectionIntersectionType) { + throw new ClassMirrorException('Doubling intersection types is not supported', $class); + } + elseif(is_object($type)) { + throw new ClassMirrorException('Unknown reflection type ' . get_class($type), $class); + } + + $types = array_map( + function(string $type) use ($class) { + if ($type === 'self') { + return $class->getName(); + } + if ($type === 'parent') { + if (false === $class->getParentClass()) { + throw new ClassMirrorException(sprintf('Invalid type "parent" in class "%s" without a parent', $class->getName()), $class); + } + + return $class->getParentClass()->getName(); + } + + return $type; + }, + $types + ); + + if ($types && $types != ['mixed'] && $allowsNull) { + $types[] = 'null'; + } + + return $types; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php new file mode 100644 index 00000000..4b7abb58 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentNode.php @@ -0,0 +1,187 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\Generator\Node; + +/** + * Argument node. + * + * @author Konstantin Kudryashov + */ +class ArgumentNode +{ + private $name; + /** + * @var mixed + */ + private $default; + /** + * @var bool + */ + private $optional = false; + + /** + * @var bool + */ + private $byReference = false; + + /** + * @var bool + */ + private $isVariadic = false; + + /** @var ArgumentTypeNode */ + private $typeNode; + + /** + * @param string $name + */ + public function __construct($name) + { + $this->name = $name; + $this->typeNode = new ArgumentTypeNode(); + } + + /** + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * @return void + */ + public function setTypeNode(ArgumentTypeNode $typeNode) + { + $this->typeNode = $typeNode; + } + + public function getTypeNode() : ArgumentTypeNode + { + return $this->typeNode; + } + + /** + * @return bool + */ + public function hasDefault() + { + return $this->isOptional() && !$this->isVariadic(); + } + + /** + * @return mixed + */ + public function getDefault() + { + return $this->default; + } + + /** + * @param mixed $default + * + * @return void + */ + public function setDefault($default = null) + { + $this->optional = true; + $this->default = $default; + } + + /** + * @return bool + */ + public function isOptional() + { + return $this->optional; + } + + /** + * @param bool $byReference + * + * @return void + */ + public function setAsPassedByReference($byReference = true) + { + $this->byReference = $byReference; + } + + /** + * @return bool + */ + public function isPassedByReference() + { + return $this->byReference; + } + + /** + * @param bool $isVariadic + * + * @return void + */ + public function setAsVariadic($isVariadic = true) + { + $this->isVariadic = $isVariadic; + } + + /** + * @return bool + */ + public function isVariadic() + { + return $this->isVariadic; + } + + /** + * @deprecated use getArgumentTypeNode instead + * @return string|null + */ + public function getTypeHint() + { + $type = $this->typeNode->getNonNullTypes() ? $this->typeNode->getNonNullTypes()[0] : null; + + return $type ? ltrim($type, '\\') : null; + } + + /** + * @deprecated use setArgumentTypeNode instead + * @param string|null $typeHint + * + * @return void + */ + public function setTypeHint($typeHint = null) + { + $this->typeNode = ($typeHint === null) ? new ArgumentTypeNode() : new ArgumentTypeNode($typeHint); + } + + /** + * @deprecated use getArgumentTypeNode instead + * @return bool + */ + public function isNullable() + { + return $this->typeNode->canUseNullShorthand(); + } + + /** + * @deprecated use getArgumentTypeNode instead + * @param bool $isNullable + * + * @return void + */ + public function setAsNullable($isNullable = true) + { + $nonNullTypes = $this->typeNode->getNonNullTypes(); + $this->typeNode = $isNullable ? new ArgumentTypeNode('null', ...$nonNullTypes) : new ArgumentTypeNode(...$nonNullTypes); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentTypeNode.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentTypeNode.php new file mode 100644 index 00000000..0a18b91e --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ArgumentTypeNode.php @@ -0,0 +1,10 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\Generator\Node; + +use Prophecy\Exception\Doubler\MethodNotExtendableException; +use Prophecy\Exception\InvalidArgumentException; + +/** + * Class node. + * + * @author Konstantin Kudryashov + */ +class ClassNode +{ + /** + * @var class-string + */ + private $parentClass = 'stdClass'; + /** + * @var list + */ + private $interfaces = array(); + + /** + * @var array + * + * @phpstan-var array + */ + private $properties = array(); + + /** + * @var list + */ + private $unextendableMethods = array(); + + /** + * @var bool + */ + private $readOnly = false; + + /** + * @var array + */ + private $methods = array(); + + /** + * @return class-string + */ + public function getParentClass() + { + return $this->parentClass; + } + + /** + * @param class-string|null $class + * + * @return void + */ + public function setParentClass($class) + { + $this->parentClass = $class ?: 'stdClass'; + } + + /** + * @return list + */ + public function getInterfaces() + { + return $this->interfaces; + } + + /** + * @param class-string $interface + * + * @return void + */ + public function addInterface($interface) + { + if ($this->hasInterface($interface)) { + return; + } + + array_unshift($this->interfaces, $interface); + } + + /** + * @param class-string $interface + * + * @return bool + */ + public function hasInterface($interface) + { + return in_array($interface, $this->interfaces); + } + + /** + * @return array + * + * @phpstan-return array + */ + public function getProperties() + { + return $this->properties; + } + + /** + * @param string $name + * @param string $visibility + * + * @return void + * + * @phpstan-param 'public'|'private'|'protected' $visibility + */ + public function addProperty($name, $visibility = 'public') + { + $visibility = strtolower($visibility); + + if (!\in_array($visibility, array('public', 'private', 'protected'), true)) { + throw new InvalidArgumentException(sprintf( + '`%s` property visibility is not supported.', $visibility + )); + } + + $this->properties[$name] = $visibility; + } + + /** + * @return array + */ + public function getMethods() + { + return $this->methods; + } + + /** + * @param MethodNode $method + * @param bool $force + * + * @return void + */ + public function addMethod(MethodNode $method, $force = false) + { + if (!$this->isExtendable($method->getName())){ + $message = sprintf( + 'Method `%s` is not extendable, so can not be added.', $method->getName() + ); + throw new MethodNotExtendableException($message, $this->getParentClass(), $method->getName()); + } + + if ($force || !isset($this->methods[$method->getName()])) { + $this->methods[$method->getName()] = $method; + } + } + + /** + * @param string $name + * + * @return void + */ + public function removeMethod($name) + { + unset($this->methods[$name]); + } + + /** + * @param string $name + * + * @return MethodNode|null + */ + public function getMethod($name) + { + return $this->hasMethod($name) ? $this->methods[$name] : null; + } + + /** + * @param string $name + * + * @return bool + */ + public function hasMethod($name) + { + return isset($this->methods[$name]); + } + + /** + * @return list + */ + public function getUnextendableMethods() + { + return $this->unextendableMethods; + } + + /** + * @param string $unextendableMethod + * + * @return void + */ + public function addUnextendableMethod($unextendableMethod) + { + if (!$this->isExtendable($unextendableMethod)){ + return; + } + $this->unextendableMethods[] = $unextendableMethod; + } + + /** + * @param string $method + * + * @return bool + */ + public function isExtendable($method) + { + return !in_array($method, $this->unextendableMethods); + } + + /** + * @return bool + */ + public function isReadOnly() + { + return $this->readOnly; + } + + /** + * @param bool $readOnly + * + * @return void + */ + public function setReadOnly($readOnly) + { + $this->readOnly = $readOnly; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php new file mode 100644 index 00000000..bf82ad26 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/MethodNode.php @@ -0,0 +1,263 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\Generator\Node; + +use Prophecy\Exception\InvalidArgumentException; + +/** + * Method node. + * + * @author Konstantin Kudryashov + */ +class MethodNode +{ + private $name; + private $code; + /** + * @var string + * + * @phpstan-var 'public'|'private'|'protected' + */ + private $visibility = 'public'; + /** + * @var bool + */ + private $static = false; + /** + * @var bool + */ + private $returnsReference = false; + + /** @var ReturnTypeNode */ + private $returnTypeNode; + + /** + * @var list + */ + private $arguments = array(); + + // Used to accept an optional third argument with the deprecated Prophecy\Doubler\Generator\TypeHintReference so careful when adding a new argument in a minor version. + /** + * @param string $name + * @param string|null $code + */ + public function __construct($name, $code = null) + { + $this->name = $name; + $this->code = $code; + $this->returnTypeNode = new ReturnTypeNode(); + } + + /** + * @return string + * + * @phpstan-return 'public'|'private'|'protected' + */ + public function getVisibility() + { + return $this->visibility; + } + + /** + * @param string $visibility + * + * @return void + */ + public function setVisibility($visibility) + { + $visibility = strtolower($visibility); + + if (!\in_array($visibility, array('public', 'private', 'protected'), true)) { + throw new InvalidArgumentException(sprintf( + '`%s` method visibility is not supported.', $visibility + )); + } + + $this->visibility = $visibility; + } + + /** + * @return bool + */ + public function isStatic() + { + return $this->static; + } + + /** + * @param bool $static + * + * @return void + */ + public function setStatic($static = true) + { + $this->static = (bool) $static; + } + + /** + * @return bool + */ + public function returnsReference() + { + return $this->returnsReference; + } + + /** + * @return void + */ + public function setReturnsReference() + { + $this->returnsReference = true; + } + + /** + * @return string + */ + public function getName() + { + return $this->name; + } + + /** + * @return void + */ + public function addArgument(ArgumentNode $argument) + { + $this->arguments[] = $argument; + } + + /** + * @return list + */ + public function getArguments() + { + return $this->arguments; + } + + /** + * @deprecated use getReturnTypeNode instead + * @return bool + */ + public function hasReturnType() + { + return (bool) $this->returnTypeNode->getNonNullTypes(); + } + + public function setReturnTypeNode(ReturnTypeNode $returnTypeNode): void + { + $this->returnTypeNode = $returnTypeNode; + } + + /** + * @deprecated use setReturnTypeNode instead + * @param string $type + * + * @return void + */ + public function setReturnType($type = null) + { + $this->returnTypeNode = ($type === '' || $type === null) ? new ReturnTypeNode() : new ReturnTypeNode($type); + } + + /** + * @deprecated use setReturnTypeNode instead + * @param bool $bool + * + * @return void + */ + public function setNullableReturnType($bool = true) + { + if ($bool) { + $this->returnTypeNode = new ReturnTypeNode('null', ...$this->returnTypeNode->getTypes()); + } + else { + $this->returnTypeNode = new ReturnTypeNode(...$this->returnTypeNode->getNonNullTypes()); + } + } + + /** + * @deprecated use getReturnTypeNode instead + * @return string|null + */ + public function getReturnType() + { + if ($types = $this->returnTypeNode->getNonNullTypes()) + { + return $types[0]; + } + + return null; + } + + public function getReturnTypeNode() : ReturnTypeNode + { + return $this->returnTypeNode; + } + + /** + * @deprecated use getReturnTypeNode instead + * @return bool + */ + public function hasNullableReturnType() + { + return $this->returnTypeNode->canUseNullShorthand(); + } + + /** + * @param string $code + * + * @return void + */ + public function setCode($code) + { + $this->code = $code; + } + + /** + * @return string + */ + public function getCode() + { + if ($this->returnsReference) + { + return "throw new \Prophecy\Exception\Doubler\ReturnByReferenceException('Returning by reference not supported', get_class(\$this), '{$this->name}');"; + } + + return (string) $this->code; + } + + /** + * @return void + */ + public function useParentCode() + { + $this->code = sprintf( + 'return parent::%s(%s);', $this->getName(), implode(', ', + array_map(array($this, 'generateArgument'), $this->arguments) + ) + ); + } + + /** + * @return string + */ + private function generateArgument(ArgumentNode $arg) + { + $argument = '$'.$arg->getName(); + + if ($arg->isVariadic()) { + $argument = '...'.$argument; + } + + return $argument; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ReturnTypeNode.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ReturnTypeNode.php new file mode 100644 index 00000000..a731c9a2 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/ReturnTypeNode.php @@ -0,0 +1,47 @@ +types['void']) && count($this->types) !== 1) { + throw new DoubleException('void cannot be part of a union'); + } + if (isset($this->types['never']) && count($this->types) !== 1) { + throw new DoubleException('never cannot be part of a union'); + } + + parent::guardIsValidType(); + } + + /** + * @deprecated use hasReturnStatement + * + * @return bool + */ + public function isVoid() + { + return $this->types == ['void' => 'void']; + } + + public function hasReturnStatement(): bool + { + return $this->types !== ['void' => 'void'] + && $this->types !== ['never' => 'never']; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/TypeNodeAbstract.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/TypeNodeAbstract.php new file mode 100644 index 00000000..2e667ad7 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/Node/TypeNodeAbstract.php @@ -0,0 +1,117 @@ + */ + protected $types = []; + + public function __construct(string ...$types) + { + foreach ($types as $type) { + $type = $this->getRealType($type); + $this->types[$type] = $type; + } + + $this->guardIsValidType(); + } + + public function canUseNullShorthand(): bool + { + return isset($this->types['null']) && count($this->types) === 2; + } + + /** + * @return list + */ + public function getTypes(): array + { + return array_values($this->types); + } + + /** + * @return list + */ + public function getNonNullTypes(): array + { + $nonNullTypes = $this->types; + unset($nonNullTypes['null']); + + return array_values($nonNullTypes); + } + + protected function prefixWithNsSeparator(string $type): string + { + return '\\' . ltrim($type, '\\'); + } + + protected function getRealType(string $type): string + { + switch ($type) { + // type aliases + case 'double': + case 'real': + return 'float'; + case 'boolean': + return 'bool'; + case 'integer': + return 'int'; + + // built in types + case 'self': + case 'static': + case 'array': + case 'callable': + case 'bool': + case 'false': + case 'true': + case 'float': + case 'int': + case 'string': + case 'iterable': + case 'object': + case 'null': + return $type; + case 'mixed': + return \PHP_VERSION_ID < 80000 ? $this->prefixWithNsSeparator($type) : $type; + + default: + return $this->prefixWithNsSeparator($type); + } + } + + /** + * @return void + */ + protected function guardIsValidType() + { + if (\PHP_VERSION_ID < 80200) { + if ($this->types == ['null' => 'null']) { + throw new DoubleException('Type cannot be standalone null'); + } + + if ($this->types == ['false' => 'false']) { + throw new DoubleException('Type cannot be standalone false'); + } + + if ($this->types == ['false' => 'false', 'null' => 'null']) { + throw new DoubleException('Type cannot be nullable false'); + } + + if ($this->types == ['true' => 'true']) { + throw new DoubleException('Type cannot be standalone true'); + } + + if ($this->types == ['true' => 'true', 'null' => 'null']) { + throw new DoubleException('Type cannot be nullable true'); + } + } + + if (\PHP_VERSION_ID >= 80000 && isset($this->types['mixed']) && count($this->types) !== 1) { + throw new DoubleException('mixed cannot be part of a union'); + } + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php new file mode 100644 index 00000000..d720b151 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/ReflectionInterface.php @@ -0,0 +1,22 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler\Generator; + +/** + * Reflection interface. + * All reflected classes implement this interface. + * + * @author Konstantin Kudryashov + */ +interface ReflectionInterface +{ +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php new file mode 100644 index 00000000..b95bf0de --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/Generator/TypeHintReference.php @@ -0,0 +1,53 @@ += 80000; + + default: + return false; + } + } + + /** + * @param string $type + * + * @return bool + */ + public function isBuiltInReturnTypeHint($type) + { + if ($type === 'void') { + return true; + } + + return $this->isBuiltInParamTypeHint($type); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php new file mode 100644 index 00000000..96ca25bb --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/LazyDouble.php @@ -0,0 +1,152 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler; + +use Prophecy\Exception\Doubler\DoubleException; +use Prophecy\Exception\Doubler\ClassNotFoundException; +use Prophecy\Exception\Doubler\InterfaceNotFoundException; +use ReflectionClass; + +/** + * Lazy double. + * Gives simple interface to describe double before creating it. + * + * @template T of object + * + * @author Konstantin Kudryashov + */ +class LazyDouble +{ + private $doubler; + /** + * @var ReflectionClass|null + */ + private $class; + /** + * @var list> + */ + private $interfaces = array(); + /** + * @var array|null + */ + private $arguments = null; + /** + * @var (T&DoubleInterface)|null + */ + private $double; + + public function __construct(Doubler $doubler) + { + $this->doubler = $doubler; + } + + /** + * Tells doubler to use specific class as parent one for double. + * + * @param class-string|ReflectionClass $class + * + * @return void + * + * @template U of object + * @phpstan-param class-string|ReflectionClass $class + * @phpstan-this-out static + * + * @throws ClassNotFoundException + * @throws DoubleException + */ + public function setParentClass($class) + { + if (null !== $this->double) { + throw new DoubleException('Can not extend class with already instantiated double.'); + } + + if (!$class instanceof ReflectionClass) { + if (!class_exists($class)) { + throw new ClassNotFoundException(sprintf('Class %s not found.', $class), $class); + } + + $class = new ReflectionClass($class); + } + + /** @var static $this */ + + $this->class = $class; + } + + /** + * Tells doubler to implement specific interface with double. + * + * @param class-string|ReflectionClass $interface + * + * @return void + * + * @template U of object + * @phpstan-param class-string|ReflectionClass $interface + * @phpstan-this-out static + * + * @throws InterfaceNotFoundException + * @throws DoubleException + */ + public function addInterface($interface) + { + if (null !== $this->double) { + throw new DoubleException( + 'Can not implement interface with already instantiated double.' + ); + } + + if (!$interface instanceof ReflectionClass) { + if (!interface_exists($interface)) { + throw new InterfaceNotFoundException( + sprintf('Interface %s not found.', $interface), + $interface + ); + } + + $interface = new ReflectionClass($interface); + } + + $this->interfaces[] = $interface; + } + + /** + * Sets constructor arguments. + * + * @param array|null $arguments + * + * @return void + */ + public function setArguments(array $arguments = null) + { + $this->arguments = $arguments; + } + + /** + * Creates double instance or returns already created one. + * + * @return T&DoubleInterface + */ + public function getInstance() + { + if (null === $this->double) { + if (null !== $this->arguments) { + return $this->double = $this->doubler->double( + $this->class, $this->interfaces, $this->arguments + ); + } + + $this->double = $this->doubler->double($this->class, $this->interfaces); + } + + return $this->double; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php b/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php new file mode 100644 index 00000000..b6200649 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Doubler/NameGenerator.php @@ -0,0 +1,55 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Doubler; + +use ReflectionClass; + +/** + * Name generator. + * Generates classname for double. + * + * @author Konstantin Kudryashov + */ +class NameGenerator +{ + /** + * @var int + */ + private static $counter = 1; + + /** + * Generates name. + * + * @param ReflectionClass|null $class + * @param ReflectionClass[] $interfaces + * + * @return string + */ + public function name(ReflectionClass $class = null, array $interfaces) + { + $parts = array(); + + if (null !== $class) { + $parts[] = $class->getName(); + } else { + foreach ($interfaces as $interface) { + $parts[] = $interface->getShortName(); + } + } + + if (!count($parts)) { + $parts[] = 'stdClass'; + } + + return sprintf('Double\%s\P%d', implode('\\', $parts), self::$counter++); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php new file mode 100644 index 00000000..e3a0a34f --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Call/UnexpectedCallException.php @@ -0,0 +1,52 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Call; + +use Prophecy\Exception\Prophecy\ObjectProphecyException; +use Prophecy\Prophecy\ObjectProphecy; + +class UnexpectedCallException extends ObjectProphecyException +{ + private $methodName; + private $arguments; + + /** + * @param string $message + * @param ObjectProphecy $objectProphecy + * @param string $methodName + * @param array $arguments + */ + public function __construct($message, ObjectProphecy $objectProphecy, + $methodName, array $arguments) + { + parent::__construct($message, $objectProphecy); + + $this->methodName = $methodName; + $this->arguments = $arguments; + } + + /** + * @return string + */ + public function getMethodName() + { + return $this->methodName; + } + + /** + * @return array + */ + public function getArguments() + { + return $this->arguments; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php new file mode 100644 index 00000000..48ecd877 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassCreatorException.php @@ -0,0 +1,38 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +use Prophecy\Doubler\Generator\Node\ClassNode; + +class ClassCreatorException extends \RuntimeException implements DoublerException +{ + private $node; + + /** + * @param string $message + * @param ClassNode $node + */ + public function __construct($message, ClassNode $node) + { + parent::__construct($message); + + $this->node = $node; + } + + /** + * @return ClassNode + */ + public function getClassNode() + { + return $this->node; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php new file mode 100644 index 00000000..c77f8e6a --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassMirrorException.php @@ -0,0 +1,38 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +use ReflectionClass; + +class ClassMirrorException extends \RuntimeException implements DoublerException +{ + private $class; + + /** + * @param string $message + * @param ReflectionClass $class + */ + public function __construct($message, ReflectionClass $class) + { + parent::__construct($message); + + $this->class = $class; + } + + /** + * @return ReflectionClass + */ + public function getReflectedClass() + { + return $this->class; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php new file mode 100644 index 00000000..8e840d81 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ClassNotFoundException.php @@ -0,0 +1,36 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +class ClassNotFoundException extends DoubleException +{ + private $classname; + + /** + * @param string $message + * @param string $classname + */ + public function __construct($message, $classname) + { + parent::__construct($message); + + $this->classname = $classname; + } + + /** + * @return string + */ + public function getClassname() + { + return $this->classname; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php new file mode 100644 index 00000000..6642a58f --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoubleException.php @@ -0,0 +1,18 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +use RuntimeException; + +class DoubleException extends RuntimeException implements DoublerException +{ +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php new file mode 100644 index 00000000..9d6be179 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/DoublerException.php @@ -0,0 +1,18 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +use Prophecy\Exception\Exception; + +interface DoublerException extends Exception +{ +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php new file mode 100644 index 00000000..cc386df9 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/InterfaceNotFoundException.php @@ -0,0 +1,23 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +class InterfaceNotFoundException extends ClassNotFoundException +{ + /** + * @return string + */ + public function getInterfaceName() + { + return $this->getClassname(); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php new file mode 100644 index 00000000..56f47b11 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotExtendableException.php @@ -0,0 +1,41 @@ +methodName = $methodName; + $this->className = $className; + } + + + /** + * @return string + */ + public function getMethodName() + { + return $this->methodName; + } + + /** + * @return string + */ + public function getClassName() + { + return $this->className; + } + + } diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php new file mode 100644 index 00000000..4e2bb259 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/MethodNotFoundException.php @@ -0,0 +1,71 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +use Prophecy\Argument\ArgumentsWildcard; + +class MethodNotFoundException extends DoubleException +{ + /** + * @var string|object + */ + private $classname; + + /** + * @var string + */ + private $methodName; + + /** + * @var null|ArgumentsWildcard|array + */ + private $arguments; + + /** + * @param string $message + * @param string|object $classname + * @param string $methodName + * @param null|ArgumentsWildcard|array $arguments + */ + public function __construct($message, $classname, $methodName, $arguments = null) + { + parent::__construct($message); + + $this->classname = $classname; + $this->methodName = $methodName; + $this->arguments = $arguments; + } + + /** + * @return object|string + */ + public function getClassname() + { + return $this->classname; + } + + /** + * @return string + */ + public function getMethodName() + { + return $this->methodName; + } + + /** + * @return null|ArgumentsWildcard|array + */ + public function getArguments() + { + return $this->arguments; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php new file mode 100644 index 00000000..e1c69df9 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Doubler/ReturnByReferenceException.php @@ -0,0 +1,47 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Doubler; + +class ReturnByReferenceException extends DoubleException +{ + private $classname; + private $methodName; + + /** + * @param string $message + * @param string $classname + * @param string $methodName + */ + public function __construct($message, $classname, $methodName) + { + parent::__construct($message); + + $this->classname = $classname; + $this->methodName = $methodName; + } + + /** + * @return string + */ + public function getClassname() + { + return $this->classname; + } + + /** + * @return string + */ + public function getMethodName() + { + return $this->methodName; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php new file mode 100644 index 00000000..41619128 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Exception.php @@ -0,0 +1,22 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception; + +/** + * Core Prophecy exception interface. + * All Prophecy exceptions implement it. + * + * @author Konstantin Kudryashov + */ +interface Exception extends \Throwable +{ +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php new file mode 100644 index 00000000..bc91c690 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/InvalidArgumentException.php @@ -0,0 +1,16 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception; + +class InvalidArgumentException extends \InvalidArgumentException implements Exception +{ +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php new file mode 100644 index 00000000..47dc0abd --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/AggregateException.php @@ -0,0 +1,65 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prediction; + +use Prophecy\Prophecy\ObjectProphecy; + +class AggregateException extends \RuntimeException implements PredictionException +{ + /** + * @var list + */ + private $exceptions = array(); + /** + * @var ObjectProphecy|null + */ + private $objectProphecy; + + /** + * @return void + */ + public function append(PredictionException $exception) + { + $message = $exception->getMessage(); + $message = strtr($message, array("\n" => "\n "))."\n"; + $message = empty($this->exceptions) ? $message : "\n" . $message; + + $this->message = rtrim($this->message.$message); + $this->exceptions[] = $exception; + } + + /** + * @return list + */ + public function getExceptions() + { + return $this->exceptions; + } + + /** + * @param ObjectProphecy $objectProphecy + * + * @return void + */ + public function setObjectProphecy(ObjectProphecy $objectProphecy) + { + $this->objectProphecy = $objectProphecy; + } + + /** + * @return ObjectProphecy|null + */ + public function getObjectProphecy() + { + return $this->objectProphecy; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php new file mode 100644 index 00000000..bbbbc3d9 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/FailedPredictionException.php @@ -0,0 +1,24 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prediction; + +use RuntimeException; + +/** + * Basic failed prediction exception. + * Use it for custom prediction failures. + * + * @author Konstantin Kudryashov + */ +class FailedPredictionException extends RuntimeException implements PredictionException +{ +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php new file mode 100644 index 00000000..05ea4aad --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/NoCallsException.php @@ -0,0 +1,18 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prediction; + +use Prophecy\Exception\Prophecy\MethodProphecyException; + +class NoCallsException extends MethodProphecyException implements PredictionException +{ +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php new file mode 100644 index 00000000..2596b1ef --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/PredictionException.php @@ -0,0 +1,18 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prediction; + +use Prophecy\Exception\Exception; + +interface PredictionException extends Exception +{ +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php new file mode 100644 index 00000000..75ee0556 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsCountException.php @@ -0,0 +1,41 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prediction; + +use Prophecy\Call\Call; +use Prophecy\Prophecy\MethodProphecy; + +class UnexpectedCallsCountException extends UnexpectedCallsException +{ + private $expectedCount; + + /** + * @param string $message + * @param MethodProphecy $methodProphecy + * @param int $count + * @param list $calls + */ + public function __construct($message, MethodProphecy $methodProphecy, $count, array $calls) + { + parent::__construct($message, $methodProphecy, $calls); + + $this->expectedCount = intval($count); + } + + /** + * @return int + */ + public function getExpectedCount() + { + return $this->expectedCount; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php new file mode 100644 index 00000000..67084fbb --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prediction/UnexpectedCallsException.php @@ -0,0 +1,41 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prediction; + +use Prophecy\Call\Call; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Exception\Prophecy\MethodProphecyException; + +class UnexpectedCallsException extends MethodProphecyException implements PredictionException +{ + private $calls = array(); + + /** + * @param string $message + * @param MethodProphecy $methodProphecy + * @param list $calls + */ + public function __construct($message, MethodProphecy $methodProphecy, array $calls) + { + parent::__construct($message, $methodProphecy); + + $this->calls = $calls; + } + + /** + * @return list + */ + public function getCalls() + { + return $this->calls; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php new file mode 100644 index 00000000..5e8cf8bc --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/MethodProphecyException.php @@ -0,0 +1,37 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prophecy; + +use Prophecy\Prophecy\MethodProphecy; + +class MethodProphecyException extends ObjectProphecyException +{ + private $methodProphecy; + + /** + * @param string $message + */ + public function __construct($message, MethodProphecy $methodProphecy) + { + parent::__construct($message, $methodProphecy->getObjectProphecy()); + + $this->methodProphecy = $methodProphecy; + } + + /** + * @return MethodProphecy + */ + public function getMethodProphecy() + { + return $this->methodProphecy; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php new file mode 100644 index 00000000..f6db065a --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ObjectProphecyException.php @@ -0,0 +1,38 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prophecy; + +use Prophecy\Prophecy\ObjectProphecy; + +class ObjectProphecyException extends \RuntimeException implements ProphecyException +{ + private $objectProphecy; + + /** + * @param string $message + * @param ObjectProphecy $objectProphecy + */ + public function __construct($message, ObjectProphecy $objectProphecy) + { + parent::__construct($message); + + $this->objectProphecy = $objectProphecy; + } + + /** + * @return ObjectProphecy + */ + public function getObjectProphecy() + { + return $this->objectProphecy; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php new file mode 100644 index 00000000..91573328 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Exception/Prophecy/ProphecyException.php @@ -0,0 +1,18 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Exception\Prophecy; + +use Prophecy\Exception\Exception; + +interface ProphecyException extends Exception +{ +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php new file mode 100644 index 00000000..c4eccfcd --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassAndInterfaceTagRetriever.php @@ -0,0 +1,63 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\PhpDocumentor; + +use phpDocumentor\Reflection\DocBlock\Tags\Method; + +/** + * @author Théo FIDRY + * + * @internal + */ +final class ClassAndInterfaceTagRetriever implements MethodTagRetrieverInterface +{ + /** + * @var MethodTagRetrieverInterface + */ + private $classRetriever; + + public function __construct(MethodTagRetrieverInterface $classRetriever = null) + { + if (null !== $classRetriever) { + $this->classRetriever = $classRetriever; + + return; + } + + $this->classRetriever = new ClassTagRetriever(); + } + + public function getTagList(\ReflectionClass $reflectionClass) + { + return array_merge( + $this->classRetriever->getTagList($reflectionClass), + $this->getInterfacesTagList($reflectionClass) + ); + } + + /** + * @param \ReflectionClass $reflectionClass + * + * @return list + */ + private function getInterfacesTagList(\ReflectionClass $reflectionClass) + { + $interfaces = $reflectionClass->getInterfaces(); + $tagList = array(); + + foreach($interfaces as $interface) { + $tagList = array_merge($tagList, $this->classRetriever->getTagList($interface)); + } + + return $tagList; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php new file mode 100644 index 00000000..6469b346 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php @@ -0,0 +1,55 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\PhpDocumentor; + +use phpDocumentor\Reflection\DocBlock\Tags\Method; +use phpDocumentor\Reflection\DocBlockFactory; +use phpDocumentor\Reflection\Types\ContextFactory; + +/** + * @author Théo FIDRY + * + * @internal + */ +final class ClassTagRetriever implements MethodTagRetrieverInterface +{ + private $docBlockFactory; + private $contextFactory; + + public function __construct() + { + $this->docBlockFactory = DocBlockFactory::createInstance(); + $this->contextFactory = new ContextFactory(); + } + + public function getTagList(\ReflectionClass $reflectionClass) + { + try { + $phpdoc = $this->docBlockFactory->create( + $reflectionClass, + $this->contextFactory->createFromReflector($reflectionClass) + ); + + $methods = array(); + + foreach ($phpdoc->getTagsByName('method') as $tag) { + if ($tag instanceof Method) { + $methods[] = $tag; + } + } + + return $methods; + } catch (\InvalidArgumentException $e) { + return array(); + } + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php new file mode 100644 index 00000000..57ffa05c --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/MethodTagRetrieverInterface.php @@ -0,0 +1,29 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\PhpDocumentor; + +use phpDocumentor\Reflection\DocBlock\Tags\Method; + +/** + * @author Théo FIDRY + * + * @internal + */ +interface MethodTagRetrieverInterface +{ + /** + * @param \ReflectionClass $reflectionClass + * + * @return list + */ + public function getTagList(\ReflectionClass $reflectionClass); +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php new file mode 100644 index 00000000..a6b95a3b --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallPrediction.php @@ -0,0 +1,72 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prediction; + +use Prophecy\Call\Call; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Argument\ArgumentsWildcard; +use Prophecy\Argument\Token\AnyValuesToken; +use Prophecy\Util\StringUtil; +use Prophecy\Exception\Prediction\NoCallsException; + +/** + * Tests that there was at least one call. + * + * @author Konstantin Kudryashov + */ +class CallPrediction implements PredictionInterface +{ + private $util; + + public function __construct(StringUtil $util = null) + { + $this->util = $util ?: new StringUtil; + } + + public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) + { + if (count($calls)) { + return; + } + + $methodCalls = $object->findProphecyMethodCalls( + $method->getMethodName(), + new ArgumentsWildcard(array(new AnyValuesToken)) + ); + + if (count($methodCalls)) { + throw new NoCallsException(sprintf( + "No calls have been made that match:\n". + " %s->%s(%s)\n". + "but expected at least one.\n". + "Recorded `%s(...)` calls:\n%s", + + get_class($object->reveal()), + $method->getMethodName(), + $method->getArgumentsWildcard(), + $method->getMethodName(), + $this->util->stringifyCalls($methodCalls) + ), $method); + } + + throw new NoCallsException(sprintf( + "No calls have been made that match:\n". + " %s->%s(%s)\n". + "but expected at least one.", + + get_class($object->reveal()), + $method->getMethodName(), + $method->getArgumentsWildcard() + ), $method); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php new file mode 100644 index 00000000..19554f30 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallTimesPrediction.php @@ -0,0 +1,94 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prediction; + +use Prophecy\Call\Call; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Argument\ArgumentsWildcard; +use Prophecy\Argument\Token\AnyValuesToken; +use Prophecy\Util\StringUtil; +use Prophecy\Exception\Prediction\UnexpectedCallsCountException; + +/** + * Tests that there was exact amount of calls made. + * + * @author Konstantin Kudryashov + */ +class CallTimesPrediction implements PredictionInterface +{ + private $times; + private $util; + + /** + * @param int $times + */ + public function __construct($times, StringUtil $util = null) + { + $this->times = intval($times); + $this->util = $util ?: new StringUtil; + } + + public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) + { + if ($this->times == count($calls)) { + return; + } + + $methodCalls = $object->findProphecyMethodCalls( + $method->getMethodName(), + new ArgumentsWildcard(array(new AnyValuesToken)) + ); + + if (count($calls)) { + $message = sprintf( + "Expected exactly %d calls that match:\n". + " %s->%s(%s)\n". + "but %d were made:\n%s", + + $this->times, + get_class($object->reveal()), + $method->getMethodName(), + $method->getArgumentsWildcard(), + count($calls), + $this->util->stringifyCalls($calls) + ); + } elseif (count($methodCalls)) { + $message = sprintf( + "Expected exactly %d calls that match:\n". + " %s->%s(%s)\n". + "but none were made.\n". + "Recorded `%s(...)` calls:\n%s", + + $this->times, + get_class($object->reveal()), + $method->getMethodName(), + $method->getArgumentsWildcard(), + $method->getMethodName(), + $this->util->stringifyCalls($methodCalls) + ); + } else { + $message = sprintf( + "Expected exactly %d calls that match:\n". + " %s->%s(%s)\n". + "but none were made.", + + $this->times, + get_class($object->reveal()), + $method->getMethodName(), + $method->getArgumentsWildcard() + ); + } + + throw new UnexpectedCallsCountException($message, $method, $this->times, $calls); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php new file mode 100644 index 00000000..140aa5db --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Prediction/CallbackPrediction.php @@ -0,0 +1,57 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prediction; + +use Prophecy\Call\Call; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Exception\InvalidArgumentException; +use Closure; +use ReflectionFunction; + +/** + * Executes preset callback. + * + * @author Konstantin Kudryashov + */ +class CallbackPrediction implements PredictionInterface +{ + private $callback; + + /** + * @param callable $callback Custom callback + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function __construct($callback) + { + if (!is_callable($callback)) { + throw new InvalidArgumentException(sprintf( + 'Callable expected as an argument to CallbackPrediction, but got %s.', + gettype($callback) + )); + } + + $this->callback = $callback; + } + + public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) + { + $callback = $this->callback; + + if ($callback instanceof Closure && method_exists('Closure', 'bind') && (new ReflectionFunction($callback))->getClosureThis() !== null) { + $callback = Closure::bind($callback, $object) ?? $this->callback; + } + + call_user_func($callback, $calls, $object, $method); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php new file mode 100644 index 00000000..b1b4f9fd --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Prediction/NoCallsPrediction.php @@ -0,0 +1,54 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prediction; + +use Prophecy\Call\Call; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Util\StringUtil; +use Prophecy\Exception\Prediction\UnexpectedCallsException; + +/** + * Tests that there were no calls made. + * + * @author Konstantin Kudryashov + */ +class NoCallsPrediction implements PredictionInterface +{ + private $util; + + public function __construct(StringUtil $util = null) + { + $this->util = $util ?: new StringUtil; + } + + public function check(array $calls, ObjectProphecy $object, MethodProphecy $method) + { + if (!count($calls)) { + return; + } + + $verb = count($calls) === 1 ? 'was' : 'were'; + + throw new UnexpectedCallsException(sprintf( + "No calls expected that match:\n". + " %s->%s(%s)\n". + "but %d %s made:\n%s", + get_class($object->reveal()), + $method->getMethodName(), + $method->getArgumentsWildcard(), + count($calls), + $verb, + $this->util->stringifyCalls($calls) + ), $method, $calls); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php new file mode 100644 index 00000000..1c32bd72 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Prediction/PredictionInterface.php @@ -0,0 +1,38 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prediction; + +use Prophecy\Call\Call; +use Prophecy\Exception\Prediction\PredictionException; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; + +/** + * Prediction interface. + * Predictions are logical test blocks, tied to `should...` keyword. + * + * @author Konstantin Kudryashov + */ +interface PredictionInterface +{ + /** + * Tests that double fulfilled prediction. + * + * @param Call[] $calls + * @param ObjectProphecy $object + * @param MethodProphecy $method + * + * @throws PredictionException + * @return void + */ + public function check(array $calls, ObjectProphecy $object, MethodProphecy $method); +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php new file mode 100644 index 00000000..2889f770 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Promise/CallbackPromise.php @@ -0,0 +1,58 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Promise; + +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Exception\InvalidArgumentException; +use Closure; +use ReflectionFunction; + +/** + * Evaluates promise callback. + * + * @author Konstantin Kudryashov + */ +class CallbackPromise implements PromiseInterface +{ + private $callback; + + /** + * Initializes callback promise. + * + * @param callable $callback Custom callback + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function __construct($callback) + { + if (!is_callable($callback)) { + throw new InvalidArgumentException(sprintf( + 'Callable expected as an argument to CallbackPromise, but got %s.', + gettype($callback) + )); + } + + $this->callback = $callback; + } + + public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) + { + $callback = $this->callback; + + if ($callback instanceof Closure && method_exists('Closure', 'bind') && (new ReflectionFunction($callback))->getClosureThis() !== null) { + $callback = Closure::bind($callback, $object) ?? $this->callback; + } + + return call_user_func($callback, $args, $object, $method); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php new file mode 100644 index 00000000..5efca512 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Promise/PromiseInterface.php @@ -0,0 +1,35 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Promise; + +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; + +/** + * Promise interface. + * Promises are logical blocks, tied to `will...` keyword. + * + * @author Konstantin Kudryashov + */ +interface PromiseInterface +{ + /** + * Evaluates promise. + * + * @param array $args + * @param ObjectProphecy $object + * @param MethodProphecy $method + * + * @return mixed + */ + public function execute(array $args, ObjectProphecy $object, MethodProphecy $method); +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php new file mode 100644 index 00000000..9cf66f11 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnArgumentPromise.php @@ -0,0 +1,52 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Promise; + +use Prophecy\Exception\InvalidArgumentException; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; + +/** + * Returns nth argument if has one, null otherwise. + * + * @author Konstantin Kudryashov + */ +class ReturnArgumentPromise implements PromiseInterface +{ + /** + * @var int + */ + private $index; + + /** + * Initializes callback promise. + * + * @param int $index The zero-indexed number of the argument to return + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function __construct($index = 0) + { + if (!is_int($index) || $index < 0) { + throw new InvalidArgumentException(sprintf( + 'Zero-based index expected as argument to ReturnArgumentPromise, but got %s.', + $index + )); + } + $this->index = $index; + } + + public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) + { + return count($args) > $this->index ? $args[$this->index] : null; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php new file mode 100644 index 00000000..c87750a7 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Promise/ReturnPromise.php @@ -0,0 +1,46 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Promise; + +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; + +/** + * Returns saved values one by one until last one, then continuously returns last value. + * + * @author Konstantin Kudryashov + */ +class ReturnPromise implements PromiseInterface +{ + private $returnValues = array(); + + /** + * Initializes promise. + * + * @param array $returnValues Array of values + */ + public function __construct(array $returnValues) + { + $this->returnValues = $returnValues; + } + + public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) + { + $value = array_shift($this->returnValues); + + if (!count($this->returnValues)) { + $this->returnValues[] = $value; + } + + return $value; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php b/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php new file mode 100644 index 00000000..4152bf3c --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Promise/ThrowPromise.php @@ -0,0 +1,93 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Promise; + +use Doctrine\Instantiator\Instantiator; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Exception\InvalidArgumentException; +use ReflectionClass; + +/** + * Throws predefined exception. + * + * @author Konstantin Kudryashov + */ +class ThrowPromise implements PromiseInterface +{ + private $exception; + + /** + * @var Instantiator|null + */ + private $instantiator; + + /** + * Initializes promise. + * + * @param string|\Throwable $exception Exception class name or instance + * + * @throws \Prophecy\Exception\InvalidArgumentException + * + * @phpstan-param class-string<\Throwable>|\Throwable $exception + */ + public function __construct($exception) + { + if (is_string($exception)) { + if ((!class_exists($exception) && !interface_exists($exception)) || !$this->isAValidThrowable($exception)) { + throw new InvalidArgumentException(sprintf( + 'Exception / Throwable class or instance expected as argument to ThrowPromise, but got %s.', + $exception + )); + } + } elseif (!$exception instanceof \Exception && !$exception instanceof \Throwable) { + throw new InvalidArgumentException(sprintf( + 'Exception / Throwable class or instance expected as argument to ThrowPromise, but got %s.', + is_object($exception) ? get_class($exception) : gettype($exception) + )); + } + + $this->exception = $exception; + } + + public function execute(array $args, ObjectProphecy $object, MethodProphecy $method) + { + if (is_string($this->exception)) { + $classname = $this->exception; + $reflection = new ReflectionClass($classname); + $constructor = $reflection->getConstructor(); + + if ($constructor === null || $constructor->isPublic() && 0 == $constructor->getNumberOfRequiredParameters()) { + throw $reflection->newInstance(); + } + + if (!$this->instantiator) { + $this->instantiator = new Instantiator(); + } + + throw $this->instantiator->instantiate($classname); + } + + throw $this->exception; + } + + /** + * @param string $exception + * + * @return bool + */ + private function isAValidThrowable($exception) + { + return is_a($exception, 'Exception', true) + || is_a($exception, 'Throwable', true); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php new file mode 100644 index 00000000..3dfd82de --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/MethodProphecy.php @@ -0,0 +1,623 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prophecy; + +use Prophecy\Argument; +use Prophecy\Exception\Prediction\PredictionException; +use Prophecy\Prophet; +use Prophecy\Promise; +use Prophecy\Prediction; +use Prophecy\Exception\Doubler\MethodNotFoundException; +use Prophecy\Exception\InvalidArgumentException; +use Prophecy\Exception\Prophecy\MethodProphecyException; +use ReflectionNamedType; +use ReflectionUnionType; + +/** + * Method prophecy. + * + * @author Konstantin Kudryashov + */ +class MethodProphecy +{ + private $objectProphecy; + private $methodName; + /** + * @var Argument\ArgumentsWildcard + */ + private $argumentsWildcard; + /** + * @var Promise\PromiseInterface|null + */ + private $promise; + /** + * @var Prediction\PredictionInterface|null + */ + private $prediction; + /** + * @var list + */ + private $checkedPredictions = array(); + /** + * @var bool + */ + private $bound = false; + /** + * @var bool + */ + private $voidReturnType = false; + + /** + * @param ObjectProphecy $objectProphecy + * @param string $methodName + * @param Argument\ArgumentsWildcard|array $arguments + * + * @throws \Prophecy\Exception\Doubler\MethodNotFoundException If method not found + * + * @internal + */ + public function __construct(ObjectProphecy $objectProphecy, $methodName, $arguments) + { + $double = $objectProphecy->reveal(); + if (!method_exists($double, $methodName)) { + throw new MethodNotFoundException(sprintf( + 'Method `%s::%s()` is not defined.', get_class($double), $methodName + ), get_class($double), $methodName, $arguments); + } + + $this->objectProphecy = $objectProphecy; + $this->methodName = $methodName; + + $reflectedMethod = new \ReflectionMethod($double, $methodName); + if ($reflectedMethod->isFinal()) { + throw new MethodProphecyException(sprintf( + "Can not add prophecy for a method `%s::%s()`\n". + "as it is a final method.", + get_class($double), + $methodName + ), $this); + } + + $this->withArguments($arguments); + + $hasTentativeReturnType = method_exists($reflectedMethod, 'hasTentativeReturnType') + && $reflectedMethod->hasTentativeReturnType(); + + if (true === $reflectedMethod->hasReturnType() || $hasTentativeReturnType) { + if ($hasTentativeReturnType) { + $reflectionType = $reflectedMethod->getTentativeReturnType(); + } + else { + $reflectionType = $reflectedMethod->getReturnType(); + } + + if ($reflectionType instanceof ReflectionNamedType) { + $types = [$reflectionType]; + } + elseif ($reflectionType instanceof ReflectionUnionType) { + $types = $reflectionType->getTypes(); + } + else { + throw new MethodProphecyException(sprintf( + "Can not add prophecy for a method `%s::%s()`\nas its return type is not supported by Prophecy yet.", + get_class($double), + $methodName + ), $this); + } + + $types = array_map( + function(ReflectionNamedType $type) { return $type->getName(); }, + $types + ); + + usort( + $types, + static function(string $type1, string $type2) { + + // null is lowest priority + if ($type2 == 'null') { + return -1; + } + elseif ($type1 == 'null') { + return 1; + } + + // objects are higher priority than scalars + $isObject = static function($type) { + return class_exists($type) || interface_exists($type); + }; + + if($isObject($type1) && !$isObject($type2)) { + return -1; + } + elseif(!$isObject($type1) && $isObject($type2)) + { + return 1; + } + + // don't sort both-scalars or both-objects + return 0; + } + ); + + $defaultType = $types[0]; + + if ('void' === $defaultType) { + $this->voidReturnType = true; + } + + $this->will(function ($args, ObjectProphecy $object, MethodProphecy $method) use ($defaultType) { + switch ($defaultType) { + case 'void': return; + case 'string': return ''; + case 'float': return 0.0; + case 'int': return 0; + case 'bool': return false; + case 'array': return array(); + case 'true': return true; + case 'false': return false; + case 'null': return null; + + case 'callable': + case 'Closure': + return function () {}; + + case 'Traversable': + case 'Generator': + return (function () { yield; })(); + + case 'object': + $prophet = new Prophet; + return $prophet->prophesize()->reveal(); + + default: + if (!class_exists($defaultType) && !interface_exists($defaultType)) { + throw new MethodProphecyException(sprintf('Cannot create a return value for the method as the type "%s" is not supported. Configure an explicit return value instead.', $defaultType), $method); + } + + $prophet = new Prophet; + return $prophet->prophesize($defaultType)->reveal(); + } + }); + } + } + + /** + * Sets argument wildcard. + * + * @param array|Argument\ArgumentsWildcard $arguments + * + * @return $this + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function withArguments($arguments) + { + if (is_array($arguments)) { + $arguments = new Argument\ArgumentsWildcard($arguments); + } + + if (!$arguments instanceof Argument\ArgumentsWildcard) { + throw new InvalidArgumentException(sprintf( + "Either an array or an instance of ArgumentsWildcard expected as\n". + 'a `MethodProphecy::withArguments()` argument, but got %s.', + gettype($arguments) + )); + } + + $this->argumentsWildcard = $arguments; + + return $this; + } + + /** + * Sets custom promise to the prophecy. + * + * @param callable|Promise\PromiseInterface $promise + * + * @return $this + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function will($promise) + { + if (is_callable($promise)) { + $promise = new Promise\CallbackPromise($promise); + } + + if (!$promise instanceof Promise\PromiseInterface) { + throw new InvalidArgumentException(sprintf( + 'Expected callable or instance of PromiseInterface, but got %s.', + gettype($promise) + )); + } + + $this->bindToObjectProphecy(); + $this->promise = $promise; + + return $this; + } + + /** + * Sets return promise to the prophecy. + * + * @see \Prophecy\Promise\ReturnPromise + * + * @param mixed ...$return a list of return values + * + * @return $this + */ + public function willReturn(...$return) + { + if ($this->voidReturnType) { + throw new MethodProphecyException( + "The method \"$this->methodName\" has a void return type, and so cannot return anything", + $this + ); + } + + return $this->will(new Promise\ReturnPromise($return)); + } + + /** + * @param array $items + * @param mixed $return + * + * @return $this + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function willYield($items, $return = null) + { + if ($this->voidReturnType) { + throw new MethodProphecyException( + "The method \"$this->methodName\" has a void return type, and so cannot yield anything", + $this + ); + } + + if (!is_array($items)) { + throw new InvalidArgumentException(sprintf( + 'Expected array, but got %s.', + gettype($items) + )); + } + + $generator = function() use ($items, $return) { + yield from $items; + + return $return; + }; + + return $this->will($generator); + } + + /** + * Sets return argument promise to the prophecy. + * + * @param int $index The zero-indexed number of the argument to return + * + * @see \Prophecy\Promise\ReturnArgumentPromise + * + * @return $this + */ + public function willReturnArgument($index = 0) + { + if ($this->voidReturnType) { + throw new MethodProphecyException("The method \"$this->methodName\" has a void return type", $this); + } + + return $this->will(new Promise\ReturnArgumentPromise($index)); + } + + /** + * Sets throw promise to the prophecy. + * + * @see \Prophecy\Promise\ThrowPromise + * + * @param string|\Throwable $exception Exception class or instance + * + * @return $this + * + * @phpstan-param class-string<\Throwable>|\Throwable $exception + */ + public function willThrow($exception) + { + return $this->will(new Promise\ThrowPromise($exception)); + } + + /** + * Sets custom prediction to the prophecy. + * + * @param callable|Prediction\PredictionInterface $prediction + * + * @return $this + * + * @throws \Prophecy\Exception\InvalidArgumentException + */ + public function should($prediction) + { + if (is_callable($prediction)) { + $prediction = new Prediction\CallbackPrediction($prediction); + } + + if (!$prediction instanceof Prediction\PredictionInterface) { + throw new InvalidArgumentException(sprintf( + 'Expected callable or instance of PredictionInterface, but got %s.', + gettype($prediction) + )); + } + + $this->bindToObjectProphecy(); + $this->prediction = $prediction; + + return $this; + } + + /** + * Sets call prediction to the prophecy. + * + * @see \Prophecy\Prediction\CallPrediction + * + * @return $this + */ + public function shouldBeCalled() + { + return $this->should(new Prediction\CallPrediction); + } + + /** + * Sets no calls prediction to the prophecy. + * + * @see \Prophecy\Prediction\NoCallsPrediction + * + * @return $this + */ + public function shouldNotBeCalled() + { + return $this->should(new Prediction\NoCallsPrediction); + } + + /** + * Sets call times prediction to the prophecy. + * + * @see \Prophecy\Prediction\CallTimesPrediction + * + * @param int $count + * + * @return $this + */ + public function shouldBeCalledTimes($count) + { + return $this->should(new Prediction\CallTimesPrediction($count)); + } + + /** + * Sets call times prediction to the prophecy. + * + * @see \Prophecy\Prediction\CallTimesPrediction + * + * @return $this + */ + public function shouldBeCalledOnce() + { + return $this->shouldBeCalledTimes(1); + } + + /** + * Checks provided prediction immediately. + * + * @param callable|Prediction\PredictionInterface $prediction + * + * @return $this + * + * @throws \Prophecy\Exception\InvalidArgumentException + * @throws PredictionException + */ + public function shouldHave($prediction) + { + if (is_callable($prediction)) { + $prediction = new Prediction\CallbackPrediction($prediction); + } + + if (!$prediction instanceof Prediction\PredictionInterface) { + throw new InvalidArgumentException(sprintf( + 'Expected callable or instance of PredictionInterface, but got %s.', + gettype($prediction) + )); + } + + if (null === $this->promise && !$this->voidReturnType) { + $this->willReturn(); + } + + $calls = $this->getObjectProphecy()->findProphecyMethodCalls( + $this->getMethodName(), + $this->getArgumentsWildcard() + ); + + try { + $prediction->check($calls, $this->getObjectProphecy(), $this); + $this->checkedPredictions[] = $prediction; + } catch (\Exception $e) { + $this->checkedPredictions[] = $prediction; + + throw $e; + } + + return $this; + } + + /** + * Checks call prediction. + * + * @see \Prophecy\Prediction\CallPrediction + * + * @return $this + * + * @throws PredictionException + */ + public function shouldHaveBeenCalled() + { + return $this->shouldHave(new Prediction\CallPrediction); + } + + /** + * Checks no calls prediction. + * + * @see \Prophecy\Prediction\NoCallsPrediction + * + * @return $this + * + * @throws PredictionException + */ + public function shouldNotHaveBeenCalled() + { + return $this->shouldHave(new Prediction\NoCallsPrediction); + } + + /** + * Checks no calls prediction. + * + * @see \Prophecy\Prediction\NoCallsPrediction + * @deprecated + * + * @return $this + */ + public function shouldNotBeenCalled() + { + return $this->shouldNotHaveBeenCalled(); + } + + /** + * Checks call times prediction. + * + * @see \Prophecy\Prediction\CallTimesPrediction + * + * @param int $count + * + * @return $this + */ + public function shouldHaveBeenCalledTimes($count) + { + return $this->shouldHave(new Prediction\CallTimesPrediction($count)); + } + + /** + * Checks call times prediction. + * + * @see \Prophecy\Prediction\CallTimesPrediction + * + * @return $this + */ + public function shouldHaveBeenCalledOnce() + { + return $this->shouldHaveBeenCalledTimes(1); + } + + /** + * Checks currently registered [with should(...)] prediction. + * + * @return void + * + * @throws PredictionException + */ + public function checkPrediction() + { + if (null === $this->prediction) { + return; + } + + $this->shouldHave($this->prediction); + } + + /** + * Returns currently registered promise. + * + * @return null|Promise\PromiseInterface + */ + public function getPromise() + { + return $this->promise; + } + + /** + * Returns currently registered prediction. + * + * @return null|Prediction\PredictionInterface + */ + public function getPrediction() + { + return $this->prediction; + } + + /** + * Returns predictions that were checked on this object. + * + * @return list + */ + public function getCheckedPredictions() + { + return $this->checkedPredictions; + } + + /** + * Returns object prophecy this method prophecy is tied to. + * + * @return ObjectProphecy + */ + public function getObjectProphecy() + { + return $this->objectProphecy; + } + + /** + * Returns method name. + * + * @return string + */ + public function getMethodName() + { + return $this->methodName; + } + + /** + * Returns arguments wildcard. + * + * @return Argument\ArgumentsWildcard + */ + public function getArgumentsWildcard() + { + return $this->argumentsWildcard; + } + + /** + * @return bool + */ + public function hasReturnVoid() + { + return $this->voidReturnType; + } + + /** + * @return void + */ + private function bindToObjectProphecy() + { + if ($this->bound) { + return; + } + + $this->getObjectProphecy()->addMethodProphecy($this); + $this->bound = true; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php new file mode 100644 index 00000000..d10332f7 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ObjectProphecy.php @@ -0,0 +1,294 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prophecy; + +use Prophecy\Comparator\FactoryProvider; +use SebastianBergmann\Comparator\ComparisonFailure; +use SebastianBergmann\Comparator\Factory as ComparatorFactory; +use Prophecy\Call\Call; +use Prophecy\Doubler\LazyDouble; +use Prophecy\Argument\ArgumentsWildcard; +use Prophecy\Call\CallCenter; +use Prophecy\Exception\Prophecy\ObjectProphecyException; +use Prophecy\Exception\Prophecy\MethodProphecyException; +use Prophecy\Exception\Prediction\AggregateException; +use Prophecy\Exception\Prediction\PredictionException; + +/** + * @author Konstantin Kudryashov + * + * @template-covariant T of object + * @template-implements ProphecyInterface + */ +class ObjectProphecy implements ProphecyInterface +{ + /** + * @var LazyDouble + */ + private $lazyDouble; + private $callCenter; + private $revealer; + private $comparatorFactory; + + /** + * @var array> + */ + private $methodProphecies = array(); + + /** + * @param LazyDouble $lazyDouble + */ + public function __construct( + LazyDouble $lazyDouble, + CallCenter $callCenter = null, + RevealerInterface $revealer = null, + ComparatorFactory $comparatorFactory = null + ) { + $this->lazyDouble = $lazyDouble; + $this->callCenter = $callCenter ?: new CallCenter; + $this->revealer = $revealer ?: new Revealer; + + $this->comparatorFactory = $comparatorFactory ?: FactoryProvider::getInstance(); + } + + /** + * Forces double to extend specific class. + * + * @param string $class + * + * @return $this + * + * @template U of object + * @phpstan-param class-string $class + * @phpstan-this-out static + */ + public function willExtend($class) + { + $this->lazyDouble->setParentClass($class); + + return $this; + } + + /** + * Forces double to implement specific interface. + * + * @param string $interface + * + * @return $this + * + * @template U of object + * @phpstan-param class-string $interface + * @phpstan-this-out static + */ + public function willImplement($interface) + { + $this->lazyDouble->addInterface($interface); + + return $this; + } + + /** + * Sets constructor arguments. + * + * @param array $arguments + * + * @return $this + */ + public function willBeConstructedWith(array $arguments = null) + { + $this->lazyDouble->setArguments($arguments); + + return $this; + } + + /** + * Reveals double. + * + * @return object + * + * @throws \Prophecy\Exception\Prophecy\ObjectProphecyException If double doesn't implement needed interface + * + * @phpstan-return T + */ + public function reveal() + { + $double = $this->lazyDouble->getInstance(); + + if (!$double instanceof ProphecySubjectInterface) { + throw new ObjectProphecyException( + "Generated double must implement ProphecySubjectInterface, but it does not.\n". + 'It seems you have wrongly configured doubler without required ClassPatch.', + $this + ); + } + + $double->setProphecy($this); + + return $double; + } + + /** + * Adds method prophecy to object prophecy. + * + * @param MethodProphecy $methodProphecy + * + * @return void + */ + public function addMethodProphecy(MethodProphecy $methodProphecy) + { + $methodName = strtolower($methodProphecy->getMethodName()); + + if (!isset($this->methodProphecies[$methodName])) { + $this->methodProphecies[$methodName] = array(); + } + + $this->methodProphecies[$methodName][] = $methodProphecy; + } + + /** + * Returns either all or related to single method prophecies. + * + * @param null|string $methodName + * + * @return MethodProphecy[]|array + * + * @phpstan-return ($methodName is string ? list : array>) + */ + public function getMethodProphecies($methodName = null) + { + if (null === $methodName) { + return $this->methodProphecies; + } + + $methodName = strtolower($methodName); + + if (!isset($this->methodProphecies[$methodName])) { + return array(); + } + + return $this->methodProphecies[$methodName]; + } + + /** + * Makes specific method call. + * + * @param string $methodName + * @param array $arguments + * + * @return mixed + */ + public function makeProphecyMethodCall($methodName, array $arguments) + { + $arguments = $this->revealer->reveal($arguments); + \assert(\is_array($arguments)); + $return = $this->callCenter->makeCall($this, $methodName, $arguments); + + return $this->revealer->reveal($return); + } + + /** + * Finds calls by method name & arguments wildcard. + * + * @param string $methodName + * @param ArgumentsWildcard $wildcard + * + * @return list + */ + public function findProphecyMethodCalls($methodName, ArgumentsWildcard $wildcard) + { + return $this->callCenter->findCalls($methodName, $wildcard); + } + + /** + * Checks that registered method predictions do not fail. + * + * @return void + * + * @throws \Prophecy\Exception\Prediction\AggregateException If any of registered predictions fail + * @throws \Prophecy\Exception\Call\UnexpectedCallException + */ + public function checkProphecyMethodsPredictions() + { + $exception = new AggregateException(sprintf("%s:\n", get_class($this->reveal()))); + $exception->setObjectProphecy($this); + + $this->callCenter->checkUnexpectedCalls(); + + foreach ($this->methodProphecies as $prophecies) { + foreach ($prophecies as $prophecy) { + try { + $prophecy->checkPrediction(); + } catch (PredictionException $e) { + $exception->append($e); + } + } + } + + if (count($exception->getExceptions())) { + throw $exception; + } + } + + /** + * Creates new method prophecy using specified method name and arguments. + * + * @param string $methodName + * @param array $arguments + * + * @return MethodProphecy + */ + public function __call($methodName, array $arguments) + { + $arguments = $this->revealer->reveal($arguments); + \assert(\is_array($arguments)); + $arguments = new ArgumentsWildcard($arguments); + + foreach ($this->getMethodProphecies($methodName) as $prophecy) { + $argumentsWildcard = $prophecy->getArgumentsWildcard(); + $comparator = $this->comparatorFactory->getComparatorFor( + $argumentsWildcard, $arguments + ); + + try { + $comparator->assertEquals($argumentsWildcard, $arguments); + return $prophecy; + } catch (ComparisonFailure $failure) {} + } + + return new MethodProphecy($this, $methodName, $arguments); + } + + /** + * Tries to get property value from double. + * + * @param string $name + * + * @return mixed + */ + public function __get($name) + { + return $this->reveal()->$name; + } + + /** + * Tries to set property value to double. + * + * @param string $name + * @param mixed $value + * + * @return void + */ + public function __set($name, $value) + { + $this->reveal()->$name = $this->revealer->reveal($value); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php new file mode 100644 index 00000000..4803e620 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecyInterface.php @@ -0,0 +1,31 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prophecy; + +/** + * Core Prophecy interface. + * + * @author Konstantin Kudryashov + * + * @template-covariant T of object + */ +interface ProphecyInterface +{ + /** + * Reveals prophecy object (double) . + * + * @return object + * + * @phpstan-return T + */ + public function reveal(); +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php new file mode 100644 index 00000000..b3de0cc6 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/ProphecySubjectInterface.php @@ -0,0 +1,36 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prophecy; + +/** + * Controllable doubles interface. + * + * @author Konstantin Kudryashov + */ +interface ProphecySubjectInterface +{ + /** + * Sets subject prophecy. + * + * @param ProphecyInterface $prophecy + * + * @return void + */ + public function setProphecy(ProphecyInterface $prophecy); + + /** + * Returns subject prophecy. + * + * @return ProphecyInterface + */ + public function getProphecy(); +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php new file mode 100644 index 00000000..60ecdac8 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/Revealer.php @@ -0,0 +1,44 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prophecy; + +/** + * Basic prophecies revealer. + * + * @author Konstantin Kudryashov + */ +class Revealer implements RevealerInterface +{ + /** + * Unwraps value(s). + * + * @param mixed $value + * + * @return mixed + */ + public function reveal($value) + { + if (is_array($value)) { + return array_map(array($this, __FUNCTION__), $value); + } + + if (!is_object($value)) { + return $value; + } + + if ($value instanceof ProphecyInterface) { + $value = $value->reveal(); + } + + return $value; + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php new file mode 100644 index 00000000..ffc82bb6 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Prophecy/RevealerInterface.php @@ -0,0 +1,29 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Prophecy; + +/** + * Prophecies revealer interface. + * + * @author Konstantin Kudryashov + */ +interface RevealerInterface +{ + /** + * Unwraps value(s). + * + * @param mixed $value + * + * @return mixed + */ + public function reveal($value); +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Prophet.php b/vendor/phpspec/prophecy/src/Prophecy/Prophet.php new file mode 100644 index 00000000..16c78134 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Prophet.php @@ -0,0 +1,147 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy; + +use Prophecy\Doubler\CachedDoubler; +use Prophecy\Doubler\Doubler; +use Prophecy\Doubler\LazyDouble; +use Prophecy\Doubler\ClassPatch; +use Prophecy\Exception\Doubler\ClassNotFoundException; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophecy\RevealerInterface; +use Prophecy\Prophecy\Revealer; +use Prophecy\Call\CallCenter; +use Prophecy\Util\StringUtil; +use Prophecy\Exception\Prediction\PredictionException; +use Prophecy\Exception\Prediction\AggregateException; + +/** + * Prophet creates prophecies. + * + * @author Konstantin Kudryashov + */ +class Prophet +{ + /** + * @var Doubler + */ + private $doubler; + private $revealer; + private $util; + + /** + * @var list> + */ + private $prophecies = array(); + + public function __construct( + Doubler $doubler = null, + RevealerInterface $revealer = null, + StringUtil $util = null + ) { + if (null === $doubler) { + $doubler = new CachedDoubler(); + $doubler->registerClassPatch(new ClassPatch\SplFileInfoPatch); + $doubler->registerClassPatch(new ClassPatch\TraversablePatch); + $doubler->registerClassPatch(new ClassPatch\ThrowablePatch); + $doubler->registerClassPatch(new ClassPatch\DisableConstructorPatch); + $doubler->registerClassPatch(new ClassPatch\ProphecySubjectPatch); + $doubler->registerClassPatch(new ClassPatch\ReflectionClassNewInstancePatch); + $doubler->registerClassPatch(new ClassPatch\MagicCallPatch); + $doubler->registerClassPatch(new ClassPatch\KeywordPatch); + } + + $this->doubler = $doubler; + $this->revealer = $revealer ?: new Revealer; + $this->util = $util ?: new StringUtil; + } + + /** + * Creates new object prophecy. + * + * @param null|string $classOrInterface Class or interface name + * + * @return ObjectProphecy + * + * @template T of object + * @phpstan-param class-string|null $classOrInterface + * @phpstan-return ($classOrInterface is null ? ObjectProphecy : ObjectProphecy) + */ + public function prophesize($classOrInterface = null) + { + $this->prophecies[] = $prophecy = new ObjectProphecy( + new LazyDouble($this->doubler), + new CallCenter($this->util), + $this->revealer + ); + + if ($classOrInterface) { + if (class_exists($classOrInterface)) { + return $prophecy->willExtend($classOrInterface); + } + + if (interface_exists($classOrInterface)) { + return $prophecy->willImplement($classOrInterface); + } + + throw new ClassNotFoundException(sprintf( + 'Cannot prophesize class %s, because it cannot be found.', + $classOrInterface + ), $classOrInterface); + } + + return $prophecy; + } + + /** + * Returns all created object prophecies. + * + * @return list> + */ + public function getProphecies() + { + return $this->prophecies; + } + + /** + * Returns Doubler instance assigned to this Prophet. + * + * @return Doubler + */ + public function getDoubler() + { + return $this->doubler; + } + + /** + * Checks all predictions defined by prophecies of this Prophet. + * + * @return void + * + * @throws Exception\Prediction\AggregateException If any prediction fails + */ + public function checkPredictions() + { + $exception = new AggregateException("Some predictions failed:\n"); + foreach ($this->prophecies as $prophecy) { + try { + $prophecy->checkProphecyMethodsPredictions(); + } catch (PredictionException $e) { + $exception->append($e); + } + } + + if (count($exception->getExceptions())) { + throw $exception; + } + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php b/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php new file mode 100644 index 00000000..884585b9 --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Util/ExportUtil.php @@ -0,0 +1,202 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * This class is a modification from sebastianbergmann/exporter + * @see https://github.com/sebastianbergmann/exporter + */ +class ExportUtil +{ + /** + * Exports a value as a string + * + * The output of this method is similar to the output of print_r(), but + * improved in various aspects: + * + * - NULL is rendered as "null" (instead of "") + * - TRUE is rendered as "true" (instead of "1") + * - FALSE is rendered as "false" (instead of "") + * - Strings are always quoted with single quotes + * - Carriage returns and newlines are normalized to \n + * - Recursion and repeated rendering is treated properly + * + * @param mixed $value + * @param int $indentation The indentation level of the 2nd+ line + * @return string + */ + public static function export($value, $indentation = 0) + { + return self::recursiveExport($value, $indentation); + } + + /** + * Converts an object to an array containing all of its private, protected + * and public properties. + * + * @param mixed $value + * @return array + */ + public static function toArray($value) + { + if (!is_object($value)) { + return (array) $value; + } + + $array = array(); + + foreach ((array) $value as $key => $val) { + // properties are transformed to keys in the following way: + // private $property => "\0Classname\0property" + // protected $property => "\0*\0property" + // public $property => "property" + if (preg_match('/^\0.+\0(.+)$/', $key, $matches)) { + $key = $matches[1]; + } + + // See https://github.com/php/php-src/commit/5721132 + if ($key === "\0gcdata") { + continue; + } + + $array[$key] = $val; + } + + // Some internal classes like SplObjectStorage don't work with the + // above (fast) mechanism nor with reflection in Zend. + // Format the output similarly to print_r() in this case + if ($value instanceof \SplObjectStorage) { + foreach ($value as $key => $val) { + // Use the same identifier that would be printed alongside the object's representation elsewhere. + $array[spl_object_id($val)] = array( + 'obj' => $val, + 'inf' => $value->getInfo(), + ); + } + } + + return $array; + } + + /** + * Recursive implementation of export + * + * @param mixed $value The value to export + * @param int $indentation The indentation level of the 2nd+ line + * @param \SebastianBergmann\RecursionContext\Context $processed Previously processed objects + * @return string + * @see SebastianBergmann\Exporter\Exporter::export + */ + protected static function recursiveExport(&$value, $indentation, $processed = null) + { + if ($value === null) { + return 'null'; + } + + if ($value === true) { + return 'true'; + } + + if ($value === false) { + return 'false'; + } + + if (is_float($value) && floatval(intval($value)) === $value) { + return "$value.0"; + } + + if (is_resource($value)) { + return sprintf( + 'resource(%d) of type (%s)', + (int) $value, + get_resource_type($value) + ); + } + + if (is_string($value)) { + // Match for most non printable chars somewhat taking multibyte chars into account + if (preg_match('/[^\x09-\x0d\x20-\xff]/', $value)) { + return 'Binary String: 0x' . bin2hex($value); + } + + return "'" . + str_replace(array("\r\n", "\n\r", "\r"), array("\n", "\n", "\n"), $value) . + "'"; + } + + $whitespace = str_repeat(' ', 4 * $indentation); + + if (!$processed) { + $processed = new Context; + } + + if (is_array($value)) { + if (($key = $processed->contains($value)) !== false) { + return 'Array &' . $key; + } + + \assert(\is_array($value)); + $array = $value; + $key = $processed->add($value); + $values = ''; + + if (count($array) > 0) { + foreach ($array as $k => $v) { + $values .= sprintf( + '%s %s => %s' . "\n", + $whitespace, + self::recursiveExport($k, $indentation), + self::recursiveExport($value[$k], $indentation + 1, $processed) + ); + } + + $values = "\n" . $values . $whitespace; + } + + return sprintf('Array &%s (%s)', $key, $values); + } + + if (is_object($value)) { + $class = get_class($value); + + if ($processed->contains($value)) { + \assert(\is_object($value)); + return sprintf('%s#%d Object', $class, spl_object_id($value)); + } + + $processed->add($value); + \assert(\is_object($value)); + $values = ''; + $array = self::toArray($value); + + if (count($array) > 0) { + foreach ($array as $k => $v) { + $values .= sprintf( + '%s %s => %s' . "\n", + $whitespace, + self::recursiveExport($k, $indentation), + self::recursiveExport($v, $indentation + 1, $processed) + ); + } + + $values = "\n" . $values . $whitespace; + } + + return sprintf('%s#%d Object (%s)', $class, spl_object_id($value), $values); + } + + return var_export($value, true); + } +} diff --git a/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php b/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php new file mode 100644 index 00000000..9b83401a --- /dev/null +++ b/vendor/phpspec/prophecy/src/Prophecy/Util/StringUtil.php @@ -0,0 +1,101 @@ + + * Marcello Duarte + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Prophecy\Util; + +use Prophecy\Call\Call; + +/** + * String utility. + * + * @author Konstantin Kudryashov + */ +class StringUtil +{ + private $verbose; + + /** + * @param bool $verbose + */ + public function __construct($verbose = true) + { + $this->verbose = $verbose; + } + + /** + * Stringifies any provided value. + * + * @param mixed $value + * @param boolean $exportObject + * + * @return string + */ + public function stringify($value, $exportObject = true) + { + if (\is_array($value)) { + if (range(0, count($value) - 1) === array_keys($value)) { + return '['.implode(', ', array_map(array($this, __FUNCTION__), $value)).']'; + } + + $stringify = array($this, __FUNCTION__); + + return '['.implode(', ', array_map(function ($item, $key) use ($stringify) { + return (is_integer($key) ? $key : '"'.$key.'"'). + ' => '.call_user_func($stringify, $item); + }, $value, array_keys($value))).']'; + } + if (\is_resource($value)) { + return get_resource_type($value).':'.$value; + } + if (\is_object($value)) { + return $exportObject ? ExportUtil::export($value) : sprintf('%s#%s', get_class($value), spl_object_id($value)); + } + if (\is_bool($value)) { + return $value ? 'true' : 'false'; + } + if (\is_string($value)) { + $str = sprintf('"%s"', str_replace("\n", '\\n', $value)); + + if (!$this->verbose && 50 <= strlen($str)) { + return substr($str, 0, 50).'"...'; + } + + return $str; + } + if (null === $value) { + return 'null'; + } + + \assert(\is_int($value) || \is_float($value)); + + return (string) $value; + } + + /** + * Stringifies provided array of calls. + * + * @param Call[] $calls Array of Call instances + * + * @return string + */ + public function stringifyCalls(array $calls) + { + $self = $this; + + return implode(PHP_EOL, array_map(function (Call $call) use ($self) { + return sprintf(' - %s(%s) @ %s', + $call->getMethodName(), + implode(', ', array_map(array($self, 'stringify'), $call->getArguments())), + str_replace(GETCWD().DIRECTORY_SEPARATOR, '', $call->getCallPlace()) + ); + }, $calls)); + } +} diff --git a/vendor/phpstan/phpdoc-parser/LICENSE b/vendor/phpstan/phpdoc-parser/LICENSE new file mode 100644 index 00000000..98a854e4 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Ondřej Mirtes + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/vendor/phpstan/phpdoc-parser/README.md b/vendor/phpstan/phpdoc-parser/README.md new file mode 100644 index 00000000..706b2a3c --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/README.md @@ -0,0 +1,121 @@ +

    PHPDoc Parser for PHPStan

    + +

    + Build Status + Latest Stable Version + License + PHPStan Enabled +

    + +This library `phpstan/phpdoc-parser` represents PHPDocs with an AST (Abstract Syntax Tree). It supports parsing and modifying PHPDocs. + +For the complete list of supported PHPDoc features check out PHPStan documentation. PHPStan is the main (but not the only) user of this library. + +* [PHPDoc Basics](https://phpstan.org/writing-php-code/phpdocs-basics) (list of PHPDoc tags) +* [PHPDoc Types](https://phpstan.org/writing-php-code/phpdoc-types) (list of PHPDoc types) +* [phpdoc-parser API Reference](https://phpstan.github.io/phpdoc-parser/1.23.x/namespace-PHPStan.PhpDocParser.html) with all the AST node types etc. + +This parser also supports parsing [Doctrine Annotations](https://github.com/doctrine/annotations). The AST nodes live in the [PHPStan\PhpDocParser\Ast\PhpDoc\Doctrine namespace](https://phpstan.github.io/phpdoc-parser/1.23.x/namespace-PHPStan.PhpDocParser.Ast.PhpDoc.Doctrine.html). The support needs to be turned on by setting `bool $parseDoctrineAnnotations` to `true` in `Lexer` and `PhpDocParser` class constructors. + +## Installation + +``` +composer require phpstan/phpdoc-parser +``` + +## Basic usage + +```php +tokenize('/** @param Lorem $a */')); +$phpDocNode = $phpDocParser->parse($tokens); // PhpDocNode +$paramTags = $phpDocNode->getParamTagValues(); // ParamTagValueNode[] +echo $paramTags[0]->parameterName; // '$a' +echo $paramTags[0]->type; // IdentifierTypeNode - 'Lorem' +``` + +### Format-preserving printer + +This component can be used to modify the AST +and print it again as close as possible to the original. + +It's heavily inspired by format-preserving printer component in [nikic/PHP-Parser](https://github.com/nikic/PHP-Parser). + +```php + true, 'indexes' => true]; + +$lexer = new Lexer(); +$constExprParser = new ConstExprParser(true, true, $usedAttributes); +$typeParser = new TypeParser($constExprParser, true, $usedAttributes); +$phpDocParser = new PhpDocParser($typeParser, $constExprParser, true, true, $usedAttributes); + +$tokens = new TokenIterator($lexer->tokenize('/** @param Lorem $a */')); +$phpDocNode = $phpDocParser->parse($tokens); // PhpDocNode + +$cloningTraverser = new NodeTraverser([new CloningVisitor()]); + +/** @var PhpDocNode $newPhpDocNode */ +[$newPhpDocNode] = $cloningTraverser->traverse([$phpDocNode]); + +// change something in $newPhpDocNode +$newPhpDocNode->getParamTagValues()[0]->type = new IdentifierTypeNode('Ipsum'); + +// print changed PHPDoc +$printer = new Printer(); +$newPhpDoc = $printer->printFormatPreserving($newPhpDocNode, $phpDocNode, $tokens); +echo $newPhpDoc; // '/** @param Ipsum $a */' +``` + +## Code of Conduct + +This project adheres to a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project and its community, you are expected to uphold this code. + +## Building + +Initially you need to run `composer install`, or `composer update` in case you aren't working in a folder which was built before. + +Afterwards you can either run the whole build including linting and coding standards using + + make + +or run only tests using + + make tests diff --git a/vendor/phpstan/phpdoc-parser/composer.json b/vendor/phpstan/phpdoc-parser/composer.json new file mode 100644 index 00000000..f1c648e5 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/composer.json @@ -0,0 +1,44 @@ +{ + "name": "phpstan/phpdoc-parser", + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "license": "MIT", + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "config": { + "platform": { + "php": "7.4.6" + }, + "sort-packages": true, + "allow-plugins": { + "phpstan/extension-installer": true + } + }, + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "autoload-dev": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "tests/PHPStan" + ] + } + }, + "minimum-stability": "dev", + "prefer-stable": true +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/AbstractNodeVisitor.php b/vendor/phpstan/phpdoc-parser/src/Ast/AbstractNodeVisitor.php new file mode 100644 index 00000000..2b9c10ec --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/AbstractNodeVisitor.php @@ -0,0 +1,34 @@ +key = $key; + $this->value = $value; + } + + + public function __toString(): string + { + if ($this->key !== null) { + return sprintf('%s => %s', $this->key, $this->value); + + } + + return (string) $this->value; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprArrayNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprArrayNode.php new file mode 100644 index 00000000..1f9def37 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprArrayNode.php @@ -0,0 +1,30 @@ +items = $items; + } + + + public function __toString(): string + { + return '[' . implode(', ', $this->items) . ']'; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprFalseNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprFalseNode.php new file mode 100644 index 00000000..e6811277 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprFalseNode.php @@ -0,0 +1,17 @@ +value = $value; + } + + + public function __toString(): string + { + return $this->value; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprIntegerNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprIntegerNode.php new file mode 100644 index 00000000..5339bb5a --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprIntegerNode.php @@ -0,0 +1,26 @@ +value = $value; + } + + + public function __toString(): string + { + return $this->value; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprNode.php new file mode 100644 index 00000000..1859f03e --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprNode.php @@ -0,0 +1,10 @@ +value = $value; + } + + + public function __toString(): string + { + return $this->value; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprTrueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprTrueNode.php new file mode 100644 index 00000000..ec980320 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/ConstExprTrueNode.php @@ -0,0 +1,17 @@ +className = $className; + $this->name = $name; + } + + + public function __toString(): string + { + if ($this->className === '') { + return $this->name; + + } + + return "{$this->className}::{$this->name}"; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/DoctrineConstExprStringNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/DoctrineConstExprStringNode.php new file mode 100644 index 00000000..a503937b --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/DoctrineConstExprStringNode.php @@ -0,0 +1,42 @@ +value = $value; + } + + public function __toString(): string + { + return self::escape($this->value); + } + + public static function unescape(string $value): string + { + // from https://github.com/doctrine/annotations/blob/a9ec7af212302a75d1f92fa65d3abfbd16245a2a/lib/Doctrine/Common/Annotations/DocLexer.php#L103-L107 + return str_replace('""', '"', substr($value, 1, strlen($value) - 2)); + } + + private static function escape(string $value): string + { + // from https://github.com/phpstan/phpdoc-parser/issues/205#issuecomment-1662323656 + return sprintf('"%s"', str_replace('"', '""', $value)); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/QuoteAwareConstExprStringNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/QuoteAwareConstExprStringNode.php new file mode 100644 index 00000000..f2792b1b --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/ConstExpr/QuoteAwareConstExprStringNode.php @@ -0,0 +1,78 @@ +quoteType = $quoteType; + } + + + public function __toString(): string + { + if ($this->quoteType === self::SINGLE_QUOTED) { + // from https://github.com/nikic/PHP-Parser/blob/0ffddce52d816f72d0efc4d9b02e276d3309ef01/lib/PhpParser/PrettyPrinter/Standard.php#L1007 + return sprintf("'%s'", addcslashes($this->value, '\'\\')); + } + + // from https://github.com/nikic/PHP-Parser/blob/0ffddce52d816f72d0efc4d9b02e276d3309ef01/lib/PhpParser/PrettyPrinter/Standard.php#L1010-L1040 + return sprintf('"%s"', $this->escapeDoubleQuotedString()); + } + + private function escapeDoubleQuotedString(): string + { + $quote = '"'; + $escaped = addcslashes($this->value, "\n\r\t\f\v$" . $quote . '\\'); + + // Escape control characters and non-UTF-8 characters. + // Regex based on https://stackoverflow.com/a/11709412/385378. + $regex = '/( + [\x00-\x08\x0E-\x1F] # Control characters + | [\xC0-\xC1] # Invalid UTF-8 Bytes + | [\xF5-\xFF] # Invalid UTF-8 Bytes + | \xE0(?=[\x80-\x9F]) # Overlong encoding of prior code point + | \xF0(?=[\x80-\x8F]) # Overlong encoding of prior code point + | [\xC2-\xDF](?![\x80-\xBF]) # Invalid UTF-8 Sequence Start + | [\xE0-\xEF](?![\x80-\xBF]{2}) # Invalid UTF-8 Sequence Start + | [\xF0-\xF4](?![\x80-\xBF]{3}) # Invalid UTF-8 Sequence Start + | (?<=[\x00-\x7F\xF5-\xFF])[\x80-\xBF] # Invalid UTF-8 Sequence Middle + | (? */ + private $attributes = []; + + /** + * @param mixed $value + */ + public function setAttribute(string $key, $value): void + { + $this->attributes[$key] = $value; + } + + public function hasAttribute(string $key): bool + { + return array_key_exists($key, $this->attributes); + } + + /** + * @return mixed + */ + public function getAttribute(string $key) + { + if ($this->hasAttribute($key)) { + return $this->attributes[$key]; + } + + return null; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/NodeTraverser.php b/vendor/phpstan/phpdoc-parser/src/Ast/NodeTraverser.php new file mode 100644 index 00000000..63b25c37 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/NodeTraverser.php @@ -0,0 +1,312 @@ + Visitors */ + private $visitors = []; + + /** @var bool Whether traversal should be stopped */ + private $stopTraversal; + + /** + * @param list $visitors + */ + public function __construct(array $visitors) + { + $this->visitors = $visitors; + } + + /** + * Traverses an array of nodes using the registered visitors. + * + * @param Node[] $nodes Array of nodes + * + * @return Node[] Traversed array of nodes + */ + public function traverse(array $nodes): array + { + $this->stopTraversal = false; + + foreach ($this->visitors as $visitor) { + $return = $visitor->beforeTraverse($nodes); + if ($return === null) { + continue; + } + + $nodes = $return; + } + + $nodes = $this->traverseArray($nodes); + + foreach ($this->visitors as $visitor) { + $return = $visitor->afterTraverse($nodes); + if ($return === null) { + continue; + } + + $nodes = $return; + } + + return $nodes; + } + + /** + * Recursively traverse a node. + * + * @param Node $node Node to traverse. + * + * @return Node Result of traversal (may be original node or new one) + */ + private function traverseNode(Node $node): Node + { + $subNodeNames = array_keys(get_object_vars($node)); + foreach ($subNodeNames as $name) { + $subNode =& $node->$name; + + if (is_array($subNode)) { + $subNode = $this->traverseArray($subNode); + if ($this->stopTraversal) { + break; + } + } elseif ($subNode instanceof Node) { + $traverseChildren = true; + $breakVisitorIndex = null; + + foreach ($this->visitors as $visitorIndex => $visitor) { + $return = $visitor->enterNode($subNode); + if ($return === null) { + continue; + } + + if ($return instanceof Node) { + $this->ensureReplacementReasonable($subNode, $return); + $subNode = $return; + } elseif ($return === self::DONT_TRAVERSE_CHILDREN) { + $traverseChildren = false; + } elseif ($return === self::DONT_TRAVERSE_CURRENT_AND_CHILDREN) { + $traverseChildren = false; + $breakVisitorIndex = $visitorIndex; + break; + } elseif ($return === self::STOP_TRAVERSAL) { + $this->stopTraversal = true; + break 2; + } else { + throw new LogicException( + 'enterNode() returned invalid value of type ' . gettype($return) + ); + } + } + + if ($traverseChildren) { + $subNode = $this->traverseNode($subNode); + if ($this->stopTraversal) { + break; + } + } + + foreach ($this->visitors as $visitorIndex => $visitor) { + $return = $visitor->leaveNode($subNode); + + if ($return !== null) { + if ($return instanceof Node) { + $this->ensureReplacementReasonable($subNode, $return); + $subNode = $return; + } elseif ($return === self::STOP_TRAVERSAL) { + $this->stopTraversal = true; + break 2; + } elseif (is_array($return)) { + throw new LogicException( + 'leaveNode() may only return an array ' . + 'if the parent structure is an array' + ); + } else { + throw new LogicException( + 'leaveNode() returned invalid value of type ' . gettype($return) + ); + } + } + + if ($breakVisitorIndex === $visitorIndex) { + break; + } + } + } + } + + return $node; + } + + /** + * Recursively traverse array (usually of nodes). + * + * @param mixed[] $nodes Array to traverse + * + * @return mixed[] Result of traversal (may be original array or changed one) + */ + private function traverseArray(array $nodes): array + { + $doNodes = []; + + foreach ($nodes as $i => &$node) { + if ($node instanceof Node) { + $traverseChildren = true; + $breakVisitorIndex = null; + + foreach ($this->visitors as $visitorIndex => $visitor) { + $return = $visitor->enterNode($node); + if ($return === null) { + continue; + } + + if ($return instanceof Node) { + $this->ensureReplacementReasonable($node, $return); + $node = $return; + } elseif (is_array($return)) { + $doNodes[] = [$i, $return]; + continue 2; + } elseif ($return === self::REMOVE_NODE) { + $doNodes[] = [$i, []]; + continue 2; + } elseif ($return === self::DONT_TRAVERSE_CHILDREN) { + $traverseChildren = false; + } elseif ($return === self::DONT_TRAVERSE_CURRENT_AND_CHILDREN) { + $traverseChildren = false; + $breakVisitorIndex = $visitorIndex; + break; + } elseif ($return === self::STOP_TRAVERSAL) { + $this->stopTraversal = true; + break 2; + } else { + throw new LogicException( + 'enterNode() returned invalid value of type ' . gettype($return) + ); + } + } + + if ($traverseChildren) { + $node = $this->traverseNode($node); + if ($this->stopTraversal) { + break; + } + } + + foreach ($this->visitors as $visitorIndex => $visitor) { + $return = $visitor->leaveNode($node); + + if ($return !== null) { + if ($return instanceof Node) { + $this->ensureReplacementReasonable($node, $return); + $node = $return; + } elseif (is_array($return)) { + $doNodes[] = [$i, $return]; + break; + } elseif ($return === self::REMOVE_NODE) { + $doNodes[] = [$i, []]; + break; + } elseif ($return === self::STOP_TRAVERSAL) { + $this->stopTraversal = true; + break 2; + } else { + throw new LogicException( + 'leaveNode() returned invalid value of type ' . gettype($return) + ); + } + } + + if ($breakVisitorIndex === $visitorIndex) { + break; + } + } + } elseif (is_array($node)) { + throw new LogicException('Invalid node structure: Contains nested arrays'); + } + } + + if (count($doNodes) > 0) { + while ([$i, $replace] = array_pop($doNodes)) { + array_splice($nodes, $i, 1, $replace); + } + } + + return $nodes; + } + + private function ensureReplacementReasonable(Node $old, Node $new): void + { + if ($old instanceof TypeNode && !$new instanceof TypeNode) { + throw new LogicException(sprintf('Trying to replace TypeNode with %s', get_class($new))); + } + + if ($old instanceof ConstExprNode && !$new instanceof ConstExprNode) { + throw new LogicException(sprintf('Trying to replace ConstExprNode with %s', get_class($new))); + } + + if ($old instanceof PhpDocChildNode && !$new instanceof PhpDocChildNode) { + throw new LogicException(sprintf('Trying to replace PhpDocChildNode with %s', get_class($new))); + } + + if ($old instanceof PhpDocTagValueNode && !$new instanceof PhpDocTagValueNode) { + throw new LogicException(sprintf('Trying to replace PhpDocTagValueNode with %s', get_class($new))); + } + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/NodeVisitor.php b/vendor/phpstan/phpdoc-parser/src/Ast/NodeVisitor.php new file mode 100644 index 00000000..bf7d784e --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/NodeVisitor.php @@ -0,0 +1,87 @@ + $node stays as-is + * * array (of Nodes) + * => The return value is merged into the parent array (at the position of the $node) + * * NodeTraverser::REMOVE_NODE + * => $node is removed from the parent array + * * NodeTraverser::DONT_TRAVERSE_CHILDREN + * => Children of $node are not traversed. $node stays as-is + * * NodeTraverser::DONT_TRAVERSE_CURRENT_AND_CHILDREN + * => Further visitors for the current node are skipped, and its children are not + * traversed. $node stays as-is. + * * NodeTraverser::STOP_TRAVERSAL + * => Traversal is aborted. $node stays as-is + * * otherwise + * => $node is set to the return value + * + * @param Node $node Node + * + * @return Node|Node[]|NodeTraverser::*|null Replacement node (or special return value) + */ + public function enterNode(Node $node); + + /** + * Called when leaving a node. + * + * Return value semantics: + * * null + * => $node stays as-is + * * NodeTraverser::REMOVE_NODE + * => $node is removed from the parent array + * * NodeTraverser::STOP_TRAVERSAL + * => Traversal is aborted. $node stays as-is + * * array (of Nodes) + * => The return value is merged into the parent array (at the position of the $node) + * * otherwise + * => $node is set to the return value + * + * @param Node $node Node + * + * @return Node|Node[]|NodeTraverser::REMOVE_NODE|NodeTraverser::STOP_TRAVERSAL|null Replacement node (or special return value) + */ + public function leaveNode(Node $node); + + /** + * Called once after traversal. + * + * Return value semantics: + * * null: $nodes stays as-is + * * otherwise: $nodes is set to the return value + * + * @param Node[] $nodes Array of nodes + * + * @return Node[]|null Array of nodes + */ + public function afterTraverse(array $nodes): ?array; + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/NodeVisitor/CloningVisitor.php b/vendor/phpstan/phpdoc-parser/src/Ast/NodeVisitor/CloningVisitor.php new file mode 100644 index 00000000..7200f3af --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/NodeVisitor/CloningVisitor.php @@ -0,0 +1,20 @@ +setAttribute(Attribute::ORIGINAL_NODE, $originalNode); + + return $node; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/AssertTagMethodValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/AssertTagMethodValueNode.php new file mode 100644 index 00000000..cf4f5563 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/AssertTagMethodValueNode.php @@ -0,0 +1,50 @@ +type = $type; + $this->parameter = $parameter; + $this->method = $method; + $this->isNegated = $isNegated; + $this->isEquality = $isEquality; + $this->description = $description; + } + + + public function __toString(): string + { + $isNegated = $this->isNegated ? '!' : ''; + $isEquality = $this->isEquality ? '=' : ''; + return trim("{$isNegated}{$isEquality}{$this->type} {$this->parameter}->{$this->method}() {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/AssertTagPropertyValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/AssertTagPropertyValueNode.php new file mode 100644 index 00000000..4fb31807 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/AssertTagPropertyValueNode.php @@ -0,0 +1,50 @@ +type = $type; + $this->parameter = $parameter; + $this->property = $property; + $this->isNegated = $isNegated; + $this->isEquality = $isEquality; + $this->description = $description; + } + + + public function __toString(): string + { + $isNegated = $this->isNegated ? '!' : ''; + $isEquality = $this->isEquality ? '=' : ''; + return trim("{$isNegated}{$isEquality}{$this->type} {$this->parameter}->{$this->property} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/AssertTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/AssertTagValueNode.php new file mode 100644 index 00000000..d6423f50 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/AssertTagValueNode.php @@ -0,0 +1,46 @@ +type = $type; + $this->parameter = $parameter; + $this->isNegated = $isNegated; + $this->isEquality = $isEquality; + $this->description = $description; + } + + + public function __toString(): string + { + $isNegated = $this->isNegated ? '!' : ''; + $isEquality = $this->isEquality ? '=' : ''; + return trim("{$isNegated}{$isEquality}{$this->type} {$this->parameter} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/DeprecatedTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/DeprecatedTagValueNode.php new file mode 100644 index 00000000..abf2f1a6 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/DeprecatedTagValueNode.php @@ -0,0 +1,27 @@ +description = $description; + } + + + public function __toString(): string + { + return trim($this->description); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineAnnotation.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineAnnotation.php new file mode 100644 index 00000000..3a93f5aa --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineAnnotation.php @@ -0,0 +1,35 @@ + */ + public $arguments; + + /** + * @param list $arguments + */ + public function __construct(string $name, array $arguments) + { + $this->name = $name; + $this->arguments = $arguments; + } + + public function __toString(): string + { + $arguments = implode(', ', $this->arguments); + return $this->name . '(' . $arguments . ')'; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArgument.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArgument.php new file mode 100644 index 00000000..f30812cf --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArgument.php @@ -0,0 +1,43 @@ +key = $key; + $this->value = $value; + } + + + public function __toString(): string + { + if ($this->key === null) { + return (string) $this->value; + } + + return $this->key . '=' . $this->value; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArray.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArray.php new file mode 100644 index 00000000..e740567d --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArray.php @@ -0,0 +1,32 @@ + */ + public $items; + + /** + * @param list $items + */ + public function __construct(array $items) + { + $this->items = $items; + } + + public function __toString(): string + { + $items = implode(', ', $this->items); + + return '{' . $items . '}'; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArrayItem.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArrayItem.php new file mode 100644 index 00000000..d2dbf2b6 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineArrayItem.php @@ -0,0 +1,47 @@ +key = $key; + $this->value = $value; + } + + + public function __toString(): string + { + if ($this->key === null) { + return (string) $this->value; + } + + return $this->key . '=' . $this->value; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineTagValueNode.php new file mode 100644 index 00000000..84f7b18b --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/Doctrine/DoctrineTagValueNode.php @@ -0,0 +1,36 @@ +annotation = $annotation; + $this->description = $description; + } + + + public function __toString(): string + { + return trim("{$this->annotation} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ExtendsTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ExtendsTagValueNode.php new file mode 100644 index 00000000..3bf53e13 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ExtendsTagValueNode.php @@ -0,0 +1,32 @@ +type = $type; + $this->description = $description; + } + + + public function __toString(): string + { + return trim("{$this->type} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/GenericTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/GenericTagValueNode.php new file mode 100644 index 00000000..026aa153 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/GenericTagValueNode.php @@ -0,0 +1,26 @@ +value = $value; + } + + + public function __toString(): string + { + return $this->value; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ImplementsTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ImplementsTagValueNode.php new file mode 100644 index 00000000..99043d91 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ImplementsTagValueNode.php @@ -0,0 +1,32 @@ +type = $type; + $this->description = $description; + } + + + public function __toString(): string + { + return trim("{$this->type} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/InvalidTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/InvalidTagValueNode.php new file mode 100644 index 00000000..ca7b4f20 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/InvalidTagValueNode.php @@ -0,0 +1,53 @@ +value = $value; + $this->exceptionArgs = [ + $exception->getCurrentTokenValue(), + $exception->getCurrentTokenType(), + $exception->getCurrentOffset(), + $exception->getExpectedTokenType(), + $exception->getExpectedTokenValue(), + $exception->getCurrentTokenLine(), + ]; + } + + public function __get(string $name): ?ParserException + { + if ($name !== 'exception') { + trigger_error(sprintf('Undefined property: %s::$%s', self::class, $name), E_USER_WARNING); + return null; + } + + return new ParserException(...$this->exceptionArgs); + } + + public function __toString(): string + { + return $this->value; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/MethodTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/MethodTagValueNode.php new file mode 100644 index 00000000..211510be --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/MethodTagValueNode.php @@ -0,0 +1,58 @@ +isStatic = $isStatic; + $this->returnType = $returnType; + $this->methodName = $methodName; + $this->parameters = $parameters; + $this->description = $description; + $this->templateTypes = $templateTypes; + } + + + public function __toString(): string + { + $static = $this->isStatic ? 'static ' : ''; + $returnType = $this->returnType !== null ? "{$this->returnType} " : ''; + $parameters = implode(', ', $this->parameters); + $description = $this->description !== '' ? " {$this->description}" : ''; + $templateTypes = count($this->templateTypes) > 0 ? '<' . implode(', ', $this->templateTypes) . '>' : ''; + return "{$static}{$returnType}{$this->methodName}{$templateTypes}({$parameters}){$description}"; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/MethodTagValueParameterNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/MethodTagValueParameterNode.php new file mode 100644 index 00000000..7c17e44c --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/MethodTagValueParameterNode.php @@ -0,0 +1,49 @@ +type = $type; + $this->isReference = $isReference; + $this->isVariadic = $isVariadic; + $this->parameterName = $parameterName; + $this->defaultValue = $defaultValue; + } + + + public function __toString(): string + { + $type = $this->type !== null ? "{$this->type} " : ''; + $isReference = $this->isReference ? '&' : ''; + $isVariadic = $this->isVariadic ? '...' : ''; + $default = $this->defaultValue !== null ? " = {$this->defaultValue}" : ''; + return "{$type}{$isReference}{$isVariadic}{$this->parameterName}{$default}"; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/MixinTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/MixinTagValueNode.php new file mode 100644 index 00000000..d9b7d78a --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/MixinTagValueNode.php @@ -0,0 +1,32 @@ +type = $type; + $this->description = $description; + } + + + public function __toString(): string + { + return trim("{$this->type} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamClosureThisTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamClosureThisTagValueNode.php new file mode 100644 index 00000000..0ac2131a --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamClosureThisTagValueNode.php @@ -0,0 +1,35 @@ +type = $type; + $this->parameterName = $parameterName; + $this->description = $description; + } + + public function __toString(): string + { + return trim("{$this->type} {$this->parameterName} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamImmediatelyInvokedCallableTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamImmediatelyInvokedCallableTagValueNode.php new file mode 100644 index 00000000..0f480f7a --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamImmediatelyInvokedCallableTagValueNode.php @@ -0,0 +1,30 @@ +parameterName = $parameterName; + $this->description = $description; + } + + public function __toString(): string + { + return trim("{$this->parameterName} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamLaterInvokedCallableTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamLaterInvokedCallableTagValueNode.php new file mode 100644 index 00000000..eab353f9 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamLaterInvokedCallableTagValueNode.php @@ -0,0 +1,30 @@ +parameterName = $parameterName; + $this->description = $description; + } + + public function __toString(): string + { + return trim("{$this->parameterName} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamOutTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamOutTagValueNode.php new file mode 100644 index 00000000..9f374bf1 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamOutTagValueNode.php @@ -0,0 +1,35 @@ +type = $type; + $this->parameterName = $parameterName; + $this->description = $description; + } + + public function __toString(): string + { + return trim("{$this->type} {$this->parameterName} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamTagValueNode.php new file mode 100644 index 00000000..f93af0ea --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ParamTagValueNode.php @@ -0,0 +1,46 @@ +type = $type; + $this->isReference = $isReference; + $this->isVariadic = $isVariadic; + $this->parameterName = $parameterName; + $this->description = $description; + } + + + public function __toString(): string + { + $reference = $this->isReference ? '&' : ''; + $variadic = $this->isVariadic ? '...' : ''; + return trim("{$this->type} {$reference}{$variadic}{$this->parameterName} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocChildNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocChildNode.php new file mode 100644 index 00000000..6162f92d --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocChildNode.php @@ -0,0 +1,10 @@ +children = $children; + } + + + /** + * @return PhpDocTagNode[] + */ + public function getTags(): array + { + return array_filter($this->children, static function (PhpDocChildNode $child): bool { + return $child instanceof PhpDocTagNode; + }); + } + + + /** + * @return PhpDocTagNode[] + */ + public function getTagsByName(string $tagName): array + { + return array_filter($this->getTags(), static function (PhpDocTagNode $tag) use ($tagName): bool { + return $tag->name === $tagName; + }); + } + + + /** + * @return VarTagValueNode[] + */ + public function getVarTagValues(string $tagName = '@var'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof VarTagValueNode; + } + ); + } + + + /** + * @return ParamTagValueNode[] + */ + public function getParamTagValues(string $tagName = '@param'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof ParamTagValueNode; + } + ); + } + + + /** + * @return TypelessParamTagValueNode[] + */ + public function getTypelessParamTagValues(string $tagName = '@param'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof TypelessParamTagValueNode; + } + ); + } + + + /** + * @return ParamImmediatelyInvokedCallableTagValueNode[] + */ + public function getParamImmediatelyInvokedCallableTagValues(string $tagName = '@param-immediately-invoked-callable'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof ParamImmediatelyInvokedCallableTagValueNode; + } + ); + } + + + /** + * @return ParamLaterInvokedCallableTagValueNode[] + */ + public function getParamLaterInvokedCallableTagValues(string $tagName = '@param-later-invoked-callable'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof ParamLaterInvokedCallableTagValueNode; + } + ); + } + + + /** + * @return ParamClosureThisTagValueNode[] + */ + public function getParamClosureThisTagValues(string $tagName = '@param-closure-this'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof ParamClosureThisTagValueNode; + } + ); + } + + /** + * @return PureUnlessCallableIsImpureTagValueNode[] + */ + public function getPureUnlessCallableIsImpureTagValues(string $tagName = '@pure-unless-callable-is-impure'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof PureUnlessCallableIsImpureTagValueNode; + } + ); + } + + /** + * @return TemplateTagValueNode[] + */ + public function getTemplateTagValues(string $tagName = '@template'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof TemplateTagValueNode; + } + ); + } + + + /** + * @return ExtendsTagValueNode[] + */ + public function getExtendsTagValues(string $tagName = '@extends'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof ExtendsTagValueNode; + } + ); + } + + + /** + * @return ImplementsTagValueNode[] + */ + public function getImplementsTagValues(string $tagName = '@implements'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof ImplementsTagValueNode; + } + ); + } + + + /** + * @return UsesTagValueNode[] + */ + public function getUsesTagValues(string $tagName = '@use'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof UsesTagValueNode; + } + ); + } + + + /** + * @return ReturnTagValueNode[] + */ + public function getReturnTagValues(string $tagName = '@return'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof ReturnTagValueNode; + } + ); + } + + + /** + * @return ThrowsTagValueNode[] + */ + public function getThrowsTagValues(string $tagName = '@throws'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof ThrowsTagValueNode; + } + ); + } + + + /** + * @return MixinTagValueNode[] + */ + public function getMixinTagValues(string $tagName = '@mixin'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof MixinTagValueNode; + } + ); + } + + /** + * @return RequireExtendsTagValueNode[] + */ + public function getRequireExtendsTagValues(string $tagName = '@phpstan-require-extends'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof RequireExtendsTagValueNode; + } + ); + } + + /** + * @return RequireImplementsTagValueNode[] + */ + public function getRequireImplementsTagValues(string $tagName = '@phpstan-require-implements'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof RequireImplementsTagValueNode; + } + ); + } + + /** + * @return DeprecatedTagValueNode[] + */ + public function getDeprecatedTagValues(): array + { + return array_filter( + array_column($this->getTagsByName('@deprecated'), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof DeprecatedTagValueNode; + } + ); + } + + + /** + * @return PropertyTagValueNode[] + */ + public function getPropertyTagValues(string $tagName = '@property'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof PropertyTagValueNode; + } + ); + } + + + /** + * @return PropertyTagValueNode[] + */ + public function getPropertyReadTagValues(string $tagName = '@property-read'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof PropertyTagValueNode; + } + ); + } + + + /** + * @return PropertyTagValueNode[] + */ + public function getPropertyWriteTagValues(string $tagName = '@property-write'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof PropertyTagValueNode; + } + ); + } + + + /** + * @return MethodTagValueNode[] + */ + public function getMethodTagValues(string $tagName = '@method'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof MethodTagValueNode; + } + ); + } + + + /** + * @return TypeAliasTagValueNode[] + */ + public function getTypeAliasTagValues(string $tagName = '@phpstan-type'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof TypeAliasTagValueNode; + } + ); + } + + + /** + * @return TypeAliasImportTagValueNode[] + */ + public function getTypeAliasImportTagValues(string $tagName = '@phpstan-import-type'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof TypeAliasImportTagValueNode; + } + ); + } + + + /** + * @return AssertTagValueNode[] + */ + public function getAssertTagValues(string $tagName = '@phpstan-assert'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof AssertTagValueNode; + } + ); + } + + + /** + * @return AssertTagPropertyValueNode[] + */ + public function getAssertPropertyTagValues(string $tagName = '@phpstan-assert'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof AssertTagPropertyValueNode; + } + ); + } + + + /** + * @return AssertTagMethodValueNode[] + */ + public function getAssertMethodTagValues(string $tagName = '@phpstan-assert'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof AssertTagMethodValueNode; + } + ); + } + + + /** + * @return SelfOutTagValueNode[] + */ + public function getSelfOutTypeTagValues(string $tagName = '@phpstan-this-out'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof SelfOutTagValueNode; + } + ); + } + + + /** + * @return ParamOutTagValueNode[] + */ + public function getParamOutTypeTagValues(string $tagName = '@param-out'): array + { + return array_filter( + array_column($this->getTagsByName($tagName), 'value'), + static function (PhpDocTagValueNode $value): bool { + return $value instanceof ParamOutTagValueNode; + } + ); + } + + + public function __toString(): string + { + $children = array_map( + static function (PhpDocChildNode $child): string { + $s = (string) $child; + return $s === '' ? '' : ' ' . $s; + }, + $this->children + ); + return "/**\n *" . implode("\n *", $children) . "\n */"; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocTagNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocTagNode.php new file mode 100644 index 00000000..d20746fc --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocTagNode.php @@ -0,0 +1,36 @@ +name = $name; + $this->value = $value; + } + + + public function __toString(): string + { + if ($this->value instanceof DoctrineTagValueNode) { + return (string) $this->value; + } + + return trim("{$this->name} {$this->value}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocTagValueNode.php new file mode 100644 index 00000000..7723fa0c --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PhpDocTagValueNode.php @@ -0,0 +1,10 @@ +text = $text; + } + + + public function __toString(): string + { + return $this->text; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PropertyTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PropertyTagValueNode.php new file mode 100644 index 00000000..046003d1 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PropertyTagValueNode.php @@ -0,0 +1,36 @@ +type = $type; + $this->propertyName = $propertyName; + $this->description = $description; + } + + + public function __toString(): string + { + return trim("{$this->type} {$this->propertyName} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PureUnlessCallableIsImpureTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PureUnlessCallableIsImpureTagValueNode.php new file mode 100644 index 00000000..4cf0937d --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/PureUnlessCallableIsImpureTagValueNode.php @@ -0,0 +1,30 @@ +parameterName = $parameterName; + $this->description = $description; + } + + public function __toString(): string + { + return trim("{$this->parameterName} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/RequireExtendsTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/RequireExtendsTagValueNode.php new file mode 100644 index 00000000..91c26892 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/RequireExtendsTagValueNode.php @@ -0,0 +1,32 @@ +type = $type; + $this->description = $description; + } + + + public function __toString(): string + { + return trim("{$this->type} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/RequireImplementsTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/RequireImplementsTagValueNode.php new file mode 100644 index 00000000..65c9213f --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/RequireImplementsTagValueNode.php @@ -0,0 +1,32 @@ +type = $type; + $this->description = $description; + } + + + public function __toString(): string + { + return trim("{$this->type} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ReturnTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ReturnTagValueNode.php new file mode 100644 index 00000000..d53c8c75 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ReturnTagValueNode.php @@ -0,0 +1,32 @@ +type = $type; + $this->description = $description; + } + + + public function __toString(): string + { + return trim("{$this->type} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/SelfOutTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/SelfOutTagValueNode.php new file mode 100644 index 00000000..83169aff --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/SelfOutTagValueNode.php @@ -0,0 +1,32 @@ +type = $type; + $this->description = $description; + } + + + public function __toString(): string + { + return trim($this->type . ' ' . $this->description); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TemplateTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TemplateTagValueNode.php new file mode 100644 index 00000000..8bc01f6e --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TemplateTagValueNode.php @@ -0,0 +1,50 @@ +name = $name; + $this->bound = $bound; + $this->lowerBound = $lowerBound; + $this->default = $default; + $this->description = $description; + } + + + public function __toString(): string + { + $upperBound = $this->bound !== null ? " of {$this->bound}" : ''; + $lowerBound = $this->lowerBound !== null ? " super {$this->lowerBound}" : ''; + $default = $this->default !== null ? " = {$this->default}" : ''; + return trim("{$this->name}{$upperBound}{$lowerBound}{$default} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ThrowsTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ThrowsTagValueNode.php new file mode 100644 index 00000000..62d2aed3 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/ThrowsTagValueNode.php @@ -0,0 +1,32 @@ +type = $type; + $this->description = $description; + } + + + public function __toString(): string + { + return trim("{$this->type} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypeAliasImportTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypeAliasImportTagValueNode.php new file mode 100644 index 00000000..ad6b85a5 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypeAliasImportTagValueNode.php @@ -0,0 +1,38 @@ +importedAlias = $importedAlias; + $this->importedFrom = $importedFrom; + $this->importedAs = $importedAs; + } + + public function __toString(): string + { + return trim( + "{$this->importedAlias} from {$this->importedFrom}" + . ($this->importedAs !== null ? " as {$this->importedAs}" : '') + ); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypeAliasTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypeAliasTagValueNode.php new file mode 100644 index 00000000..4ccaaac4 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypeAliasTagValueNode.php @@ -0,0 +1,32 @@ +alias = $alias; + $this->type = $type; + } + + + public function __toString(): string + { + return trim("{$this->alias} {$this->type}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypelessParamTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypelessParamTagValueNode.php new file mode 100644 index 00000000..8b982954 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/TypelessParamTagValueNode.php @@ -0,0 +1,41 @@ +isReference = $isReference; + $this->isVariadic = $isVariadic; + $this->parameterName = $parameterName; + $this->description = $description; + } + + + public function __toString(): string + { + $reference = $this->isReference ? '&' : ''; + $variadic = $this->isVariadic ? '...' : ''; + return trim("{$reference}{$variadic}{$this->parameterName} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/UsesTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/UsesTagValueNode.php new file mode 100644 index 00000000..cd573d97 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/UsesTagValueNode.php @@ -0,0 +1,32 @@ +type = $type; + $this->description = $description; + } + + + public function __toString(): string + { + return trim("{$this->type} {$this->description}"); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/VarTagValueNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/VarTagValueNode.php new file mode 100644 index 00000000..afb941a8 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/PhpDoc/VarTagValueNode.php @@ -0,0 +1,36 @@ +type = $type; + $this->variableName = $variableName; + $this->description = $description; + } + + + public function __toString(): string + { + return trim("$this->type " . trim("{$this->variableName} {$this->description}")); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayShapeItemNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayShapeItemNode.php new file mode 100644 index 00000000..660c6c9d --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayShapeItemNode.php @@ -0,0 +1,49 @@ +keyName = $keyName; + $this->optional = $optional; + $this->valueType = $valueType; + } + + + public function __toString(): string + { + if ($this->keyName !== null) { + return sprintf( + '%s%s: %s', + (string) $this->keyName, + $this->optional ? '?' : '', + (string) $this->valueType + ); + } + + return (string) $this->valueType; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayShapeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayShapeNode.php new file mode 100644 index 00000000..73d162de --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayShapeNode.php @@ -0,0 +1,59 @@ +items = $items; + $this->sealed = $sealed; + $this->kind = $kind; + $this->unsealedType = $unsealedType; + } + + + public function __toString(): string + { + $items = $this->items; + + if (! $this->sealed) { + $items[] = '...' . $this->unsealedType; + } + + return $this->kind . '{' . implode(', ', $items) . '}'; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayShapeUnsealedTypeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayShapeUnsealedTypeNode.php new file mode 100644 index 00000000..7ffdf1d2 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayShapeUnsealedTypeNode.php @@ -0,0 +1,34 @@ +valueType = $valueType; + $this->keyType = $keyType; + } + + public function __toString(): string + { + if ($this->keyType !== null) { + return sprintf('<%s, %s>', $this->keyType, $this->valueType); + } + return sprintf('<%s>', $this->valueType); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayTypeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayTypeNode.php new file mode 100644 index 00000000..d2031032 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ArrayTypeNode.php @@ -0,0 +1,34 @@ +type = $type; + } + + + public function __toString(): string + { + if ( + $this->type instanceof CallableTypeNode + || $this->type instanceof ConstTypeNode + || $this->type instanceof NullableTypeNode + ) { + return '(' . $this->type . ')[]'; + } + + return $this->type . '[]'; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/CallableTypeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/CallableTypeNode.php new file mode 100644 index 00000000..4c913198 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/CallableTypeNode.php @@ -0,0 +1,52 @@ +identifier = $identifier; + $this->parameters = $parameters; + $this->returnType = $returnType; + $this->templateTypes = $templateTypes; + } + + + public function __toString(): string + { + $returnType = $this->returnType; + if ($returnType instanceof self) { + $returnType = "({$returnType})"; + } + $template = $this->templateTypes !== [] + ? '<' . implode(', ', $this->templateTypes) . '>' + : ''; + $parameters = implode(', ', $this->parameters); + return "{$this->identifier}{$template}({$parameters}): {$returnType}"; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/CallableTypeParameterNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/CallableTypeParameterNode.php new file mode 100644 index 00000000..c78d4c7b --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/CallableTypeParameterNode.php @@ -0,0 +1,48 @@ +type = $type; + $this->isReference = $isReference; + $this->isVariadic = $isVariadic; + $this->parameterName = $parameterName; + $this->isOptional = $isOptional; + } + + + public function __toString(): string + { + $type = "{$this->type} "; + $isReference = $this->isReference ? '&' : ''; + $isVariadic = $this->isVariadic ? '...' : ''; + $isOptional = $this->isOptional ? '=' : ''; + return trim("{$type}{$isReference}{$isVariadic}{$this->parameterName}") . $isOptional; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/ConditionalTypeForParameterNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ConditionalTypeForParameterNode.php new file mode 100644 index 00000000..fbfcae95 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ConditionalTypeForParameterNode.php @@ -0,0 +1,49 @@ +parameterName = $parameterName; + $this->targetType = $targetType; + $this->if = $if; + $this->else = $else; + $this->negated = $negated; + } + + public function __toString(): string + { + return sprintf( + '(%s %s %s ? %s : %s)', + $this->parameterName, + $this->negated ? 'is not' : 'is', + $this->targetType, + $this->if, + $this->else + ); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/ConditionalTypeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ConditionalTypeNode.php new file mode 100644 index 00000000..bfdb0db1 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ConditionalTypeNode.php @@ -0,0 +1,49 @@ +subjectType = $subjectType; + $this->targetType = $targetType; + $this->if = $if; + $this->else = $else; + $this->negated = $negated; + } + + public function __toString(): string + { + return sprintf( + '(%s %s %s ? %s : %s)', + $this->subjectType, + $this->negated ? 'is not' : 'is', + $this->targetType, + $this->if, + $this->else + ); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/ConstTypeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ConstTypeNode.php new file mode 100644 index 00000000..0096055b --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ConstTypeNode.php @@ -0,0 +1,26 @@ +constExpr = $constExpr; + } + + public function __toString(): string + { + return $this->constExpr->__toString(); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/GenericTypeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/GenericTypeNode.php new file mode 100644 index 00000000..44e1d16d --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/GenericTypeNode.php @@ -0,0 +1,58 @@ +type = $type; + $this->genericTypes = $genericTypes; + $this->variances = $variances; + } + + + public function __toString(): string + { + $genericTypes = []; + + foreach ($this->genericTypes as $index => $type) { + $variance = $this->variances[$index] ?? self::VARIANCE_INVARIANT; + if ($variance === self::VARIANCE_INVARIANT) { + $genericTypes[] = (string) $type; + } elseif ($variance === self::VARIANCE_BIVARIANT) { + $genericTypes[] = '*'; + } else { + $genericTypes[] = sprintf('%s %s', $variance, $type); + } + } + + return $this->type . '<' . implode(', ', $genericTypes) . '>'; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/IdentifierTypeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/IdentifierTypeNode.php new file mode 100644 index 00000000..29bac308 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/IdentifierTypeNode.php @@ -0,0 +1,26 @@ +name = $name; + } + + + public function __toString(): string + { + return $this->name; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/IntersectionTypeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/IntersectionTypeNode.php new file mode 100644 index 00000000..fd761cf7 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/IntersectionTypeNode.php @@ -0,0 +1,37 @@ +types = $types; + } + + + public function __toString(): string + { + return '(' . implode(' & ', array_map(static function (TypeNode $type): string { + if ($type instanceof NullableTypeNode) { + return '(' . $type . ')'; + } + + return (string) $type; + }, $this->types)) . ')'; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/InvalidTypeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/InvalidTypeNode.php new file mode 100644 index 00000000..1ec47cf6 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/InvalidTypeNode.php @@ -0,0 +1,38 @@ +exceptionArgs = [ + $exception->getCurrentTokenValue(), + $exception->getCurrentTokenType(), + $exception->getCurrentOffset(), + $exception->getExpectedTokenType(), + $exception->getExpectedTokenValue(), + $exception->getCurrentTokenLine(), + ]; + } + + public function getException(): ParserException + { + return new ParserException(...$this->exceptionArgs); + } + + public function __toString(): string + { + return '*Invalid type*'; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/NullableTypeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/NullableTypeNode.php new file mode 100644 index 00000000..73f438cd --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/NullableTypeNode.php @@ -0,0 +1,26 @@ +type = $type; + } + + + public function __toString(): string + { + return '?' . $this->type; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/ObjectShapeItemNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ObjectShapeItemNode.php new file mode 100644 index 00000000..2f012406 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ObjectShapeItemNode.php @@ -0,0 +1,48 @@ +keyName = $keyName; + $this->optional = $optional; + $this->valueType = $valueType; + } + + + public function __toString(): string + { + if ($this->keyName !== null) { + return sprintf( + '%s%s: %s', + (string) $this->keyName, + $this->optional ? '?' : '', + (string) $this->valueType + ); + } + + return (string) $this->valueType; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/ObjectShapeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ObjectShapeNode.php new file mode 100644 index 00000000..f418bc30 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ObjectShapeNode.php @@ -0,0 +1,31 @@ +items = $items; + } + + public function __toString(): string + { + $items = $this->items; + + return 'object{' . implode(', ', $items) . '}'; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/OffsetAccessTypeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/OffsetAccessTypeNode.php new file mode 100644 index 00000000..c27ec0a3 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/OffsetAccessTypeNode.php @@ -0,0 +1,36 @@ +type = $type; + $this->offset = $offset; + } + + public function __toString(): string + { + if ( + $this->type instanceof CallableTypeNode + || $this->type instanceof NullableTypeNode + ) { + return '(' . $this->type . ')[' . $this->offset . ']'; + } + + return $this->type . '[' . $this->offset . ']'; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Ast/Type/ThisTypeNode.php b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ThisTypeNode.php new file mode 100644 index 00000000..d94e6f83 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Ast/Type/ThisTypeNode.php @@ -0,0 +1,17 @@ +types = $types; + } + + + public function __toString(): string + { + return '(' . implode(' | ', array_map(static function (TypeNode $type): string { + if ($type instanceof NullableTypeNode) { + return '(' . $type . ')'; + } + + return (string) $type; + }, $this->types)) . ')'; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Lexer/Lexer.php b/vendor/phpstan/phpdoc-parser/src/Lexer/Lexer.php new file mode 100644 index 00000000..32539faf --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Lexer/Lexer.php @@ -0,0 +1,198 @@ + '\'&\'', + self::TOKEN_UNION => '\'|\'', + self::TOKEN_INTERSECTION => '\'&\'', + self::TOKEN_NULLABLE => '\'?\'', + self::TOKEN_NEGATED => '\'!\'', + self::TOKEN_OPEN_PARENTHESES => '\'(\'', + self::TOKEN_CLOSE_PARENTHESES => '\')\'', + self::TOKEN_OPEN_ANGLE_BRACKET => '\'<\'', + self::TOKEN_CLOSE_ANGLE_BRACKET => '\'>\'', + self::TOKEN_OPEN_SQUARE_BRACKET => '\'[\'', + self::TOKEN_CLOSE_SQUARE_BRACKET => '\']\'', + self::TOKEN_OPEN_CURLY_BRACKET => '\'{\'', + self::TOKEN_CLOSE_CURLY_BRACKET => '\'}\'', + self::TOKEN_COMMA => '\',\'', + self::TOKEN_COLON => '\':\'', + self::TOKEN_VARIADIC => '\'...\'', + self::TOKEN_DOUBLE_COLON => '\'::\'', + self::TOKEN_DOUBLE_ARROW => '\'=>\'', + self::TOKEN_ARROW => '\'->\'', + self::TOKEN_EQUAL => '\'=\'', + self::TOKEN_OPEN_PHPDOC => '\'/**\'', + self::TOKEN_CLOSE_PHPDOC => '\'*/\'', + self::TOKEN_PHPDOC_TAG => 'TOKEN_PHPDOC_TAG', + self::TOKEN_DOCTRINE_TAG => 'TOKEN_DOCTRINE_TAG', + self::TOKEN_PHPDOC_EOL => 'TOKEN_PHPDOC_EOL', + self::TOKEN_FLOAT => 'TOKEN_FLOAT', + self::TOKEN_INTEGER => 'TOKEN_INTEGER', + self::TOKEN_SINGLE_QUOTED_STRING => 'TOKEN_SINGLE_QUOTED_STRING', + self::TOKEN_DOUBLE_QUOTED_STRING => 'TOKEN_DOUBLE_QUOTED_STRING', + self::TOKEN_DOCTRINE_ANNOTATION_STRING => 'TOKEN_DOCTRINE_ANNOTATION_STRING', + self::TOKEN_IDENTIFIER => 'type', + self::TOKEN_THIS_VARIABLE => '\'$this\'', + self::TOKEN_VARIABLE => 'variable', + self::TOKEN_HORIZONTAL_WS => 'TOKEN_HORIZONTAL_WS', + self::TOKEN_OTHER => 'TOKEN_OTHER', + self::TOKEN_END => 'TOKEN_END', + self::TOKEN_WILDCARD => '*', + ]; + + public const VALUE_OFFSET = 0; + public const TYPE_OFFSET = 1; + public const LINE_OFFSET = 2; + + /** @var bool */ + private $parseDoctrineAnnotations; + + /** @var string|null */ + private $regexp; + + public function __construct(bool $parseDoctrineAnnotations = false) + { + $this->parseDoctrineAnnotations = $parseDoctrineAnnotations; + } + + /** + * @return list + */ + public function tokenize(string $s): array + { + if ($this->regexp === null) { + $this->regexp = $this->generateRegexp(); + } + + preg_match_all($this->regexp, $s, $matches, PREG_SET_ORDER); + + $tokens = []; + $line = 1; + foreach ($matches as $match) { + $type = (int) $match['MARK']; + $tokens[] = [$match[0], $type, $line]; + if ($type !== self::TOKEN_PHPDOC_EOL) { + continue; + } + + $line++; + } + + $tokens[] = ['', self::TOKEN_END, $line]; + + return $tokens; + } + + + private function generateRegexp(): string + { + $patterns = [ + self::TOKEN_HORIZONTAL_WS => '[\\x09\\x20]++', + + self::TOKEN_IDENTIFIER => '(?:[\\\\]?+[a-z_\\x80-\\xFF][0-9a-z_\\x80-\\xFF-]*+)++', + self::TOKEN_THIS_VARIABLE => '\\$this(?![0-9a-z_\\x80-\\xFF])', + self::TOKEN_VARIABLE => '\\$[a-z_\\x80-\\xFF][0-9a-z_\\x80-\\xFF]*+', + + // '&' followed by TOKEN_VARIADIC, TOKEN_VARIABLE, TOKEN_EQUAL, TOKEN_EQUAL or TOKEN_CLOSE_PARENTHESES + self::TOKEN_REFERENCE => '&(?=\\s*+(?:[.,=)]|(?:\\$(?!this(?![0-9a-z_\\x80-\\xFF])))))', + self::TOKEN_UNION => '\\|', + self::TOKEN_INTERSECTION => '&', + self::TOKEN_NULLABLE => '\\?', + self::TOKEN_NEGATED => '!', + + self::TOKEN_OPEN_PARENTHESES => '\\(', + self::TOKEN_CLOSE_PARENTHESES => '\\)', + self::TOKEN_OPEN_ANGLE_BRACKET => '<', + self::TOKEN_CLOSE_ANGLE_BRACKET => '>', + self::TOKEN_OPEN_SQUARE_BRACKET => '\\[', + self::TOKEN_CLOSE_SQUARE_BRACKET => '\\]', + self::TOKEN_OPEN_CURLY_BRACKET => '\\{', + self::TOKEN_CLOSE_CURLY_BRACKET => '\\}', + + self::TOKEN_COMMA => ',', + self::TOKEN_VARIADIC => '\\.\\.\\.', + self::TOKEN_DOUBLE_COLON => '::', + self::TOKEN_DOUBLE_ARROW => '=>', + self::TOKEN_ARROW => '->', + self::TOKEN_EQUAL => '=', + self::TOKEN_COLON => ':', + + self::TOKEN_OPEN_PHPDOC => '/\\*\\*(?=\\s)\\x20?+', + self::TOKEN_CLOSE_PHPDOC => '\\*/', + self::TOKEN_PHPDOC_TAG => '@(?:[a-z][a-z0-9-\\\\]+:)?[a-z][a-z0-9-\\\\]*+', + self::TOKEN_PHPDOC_EOL => '\\r?+\\n[\\x09\\x20]*+(?:\\*(?!/)\\x20?+)?', + + self::TOKEN_FLOAT => '[+\-]?(?:(?:[0-9]++(_[0-9]++)*\\.[0-9]*+(_[0-9]++)*(?:e[+\-]?[0-9]++(_[0-9]++)*)?)|(?:[0-9]*+(_[0-9]++)*\\.[0-9]++(_[0-9]++)*(?:e[+\-]?[0-9]++(_[0-9]++)*)?)|(?:[0-9]++(_[0-9]++)*e[+\-]?[0-9]++(_[0-9]++)*))', + self::TOKEN_INTEGER => '[+\-]?(?:(?:0b[0-1]++(_[0-1]++)*)|(?:0o[0-7]++(_[0-7]++)*)|(?:0x[0-9a-f]++(_[0-9a-f]++)*)|(?:[0-9]++(_[0-9]++)*))', + self::TOKEN_SINGLE_QUOTED_STRING => '\'(?:\\\\[^\\r\\n]|[^\'\\r\\n\\\\])*+\'', + self::TOKEN_DOUBLE_QUOTED_STRING => '"(?:\\\\[^\\r\\n]|[^"\\r\\n\\\\])*+"', + + self::TOKEN_WILDCARD => '\\*', + ]; + + if ($this->parseDoctrineAnnotations) { + $patterns[self::TOKEN_DOCTRINE_TAG] = '@[a-z_\\\\][a-z0-9_\:\\\\]*[a-z_][a-z0-9_]*'; + $patterns[self::TOKEN_DOCTRINE_ANNOTATION_STRING] = '"(?:""|[^"])*+"'; + } + + // anything but TOKEN_CLOSE_PHPDOC or TOKEN_HORIZONTAL_WS or TOKEN_EOL + $patterns[self::TOKEN_OTHER] = '(?:(?!\\*/)[^\\s])++'; + + foreach ($patterns as $type => &$pattern) { + $pattern = '(?:' . $pattern . ')(*MARK:' . $type . ')'; + } + + return '~' . implode('|', $patterns) . '~Asi'; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Parser/ConstExprParser.php b/vendor/phpstan/phpdoc-parser/src/Parser/ConstExprParser.php new file mode 100644 index 00000000..f6a7306e --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Parser/ConstExprParser.php @@ -0,0 +1,333 @@ +unescapeStrings = $unescapeStrings; + $this->quoteAwareConstExprString = $quoteAwareConstExprString; + $this->useLinesAttributes = $usedAttributes['lines'] ?? false; + $this->useIndexAttributes = $usedAttributes['indexes'] ?? false; + $this->parseDoctrineStrings = false; + } + + /** + * @internal + */ + public function toDoctrine(): self + { + $self = new self( + $this->unescapeStrings, + $this->quoteAwareConstExprString, + [ + 'lines' => $this->useLinesAttributes, + 'indexes' => $this->useIndexAttributes, + ] + ); + $self->parseDoctrineStrings = true; + return $self; + } + + public function parse(TokenIterator $tokens, bool $trimStrings = false): Ast\ConstExpr\ConstExprNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_FLOAT)) { + $value = $tokens->currentTokenValue(); + $tokens->next(); + + return $this->enrichWithAttributes( + $tokens, + new Ast\ConstExpr\ConstExprFloatNode(str_replace('_', '', $value)), + $startLine, + $startIndex + ); + } + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_INTEGER)) { + $value = $tokens->currentTokenValue(); + $tokens->next(); + + return $this->enrichWithAttributes( + $tokens, + new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', $value)), + $startLine, + $startIndex + ); + } + + if ($this->parseDoctrineStrings && $tokens->isCurrentTokenType(Lexer::TOKEN_DOCTRINE_ANNOTATION_STRING)) { + $value = $tokens->currentTokenValue(); + $tokens->next(); + + return $this->enrichWithAttributes( + $tokens, + new Ast\ConstExpr\DoctrineConstExprStringNode(Ast\ConstExpr\DoctrineConstExprStringNode::unescape($value)), + $startLine, + $startIndex + ); + } + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_SINGLE_QUOTED_STRING, Lexer::TOKEN_DOUBLE_QUOTED_STRING)) { + if ($this->parseDoctrineStrings) { + if ($tokens->isCurrentTokenType(Lexer::TOKEN_SINGLE_QUOTED_STRING)) { + throw new ParserException( + $tokens->currentTokenValue(), + $tokens->currentTokenType(), + $tokens->currentTokenOffset(), + Lexer::TOKEN_DOUBLE_QUOTED_STRING, + null, + $tokens->currentTokenLine() + ); + } + + $value = $tokens->currentTokenValue(); + $tokens->next(); + + return $this->enrichWithAttributes( + $tokens, + $this->parseDoctrineString($value, $tokens), + $startLine, + $startIndex + ); + } + $value = $tokens->currentTokenValue(); + $type = $tokens->currentTokenType(); + if ($trimStrings) { + if ($this->unescapeStrings) { + $value = StringUnescaper::unescapeString($value); + } else { + $value = substr($value, 1, -1); + } + } + $tokens->next(); + + if ($this->quoteAwareConstExprString) { + return $this->enrichWithAttributes( + $tokens, + new Ast\ConstExpr\QuoteAwareConstExprStringNode( + $value, + $type === Lexer::TOKEN_SINGLE_QUOTED_STRING + ? Ast\ConstExpr\QuoteAwareConstExprStringNode::SINGLE_QUOTED + : Ast\ConstExpr\QuoteAwareConstExprStringNode::DOUBLE_QUOTED + ), + $startLine, + $startIndex + ); + } + + return $this->enrichWithAttributes( + $tokens, + new Ast\ConstExpr\ConstExprStringNode($value), + $startLine, + $startIndex + ); + + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_IDENTIFIER)) { + $identifier = $tokens->currentTokenValue(); + $tokens->next(); + + switch (strtolower($identifier)) { + case 'true': + return $this->enrichWithAttributes( + $tokens, + new Ast\ConstExpr\ConstExprTrueNode(), + $startLine, + $startIndex + ); + case 'false': + return $this->enrichWithAttributes( + $tokens, + new Ast\ConstExpr\ConstExprFalseNode(), + $startLine, + $startIndex + ); + case 'null': + return $this->enrichWithAttributes( + $tokens, + new Ast\ConstExpr\ConstExprNullNode(), + $startLine, + $startIndex + ); + case 'array': + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES); + return $this->parseArray($tokens, Lexer::TOKEN_CLOSE_PARENTHESES, $startIndex); + } + + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_DOUBLE_COLON)) { + $classConstantName = ''; + $lastType = null; + while (true) { + if ($lastType !== Lexer::TOKEN_IDENTIFIER && $tokens->currentTokenType() === Lexer::TOKEN_IDENTIFIER) { + $classConstantName .= $tokens->currentTokenValue(); + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + $lastType = Lexer::TOKEN_IDENTIFIER; + + continue; + } + + if ($lastType !== Lexer::TOKEN_WILDCARD && $tokens->tryConsumeTokenType(Lexer::TOKEN_WILDCARD)) { + $classConstantName .= '*'; + $lastType = Lexer::TOKEN_WILDCARD; + + if ($tokens->getSkippedHorizontalWhiteSpaceIfAny() !== '') { + break; + } + + continue; + } + + if ($lastType === null) { + // trigger parse error if nothing valid was consumed + $tokens->consumeTokenType(Lexer::TOKEN_WILDCARD); + } + + break; + } + + return $this->enrichWithAttributes( + $tokens, + new Ast\ConstExpr\ConstFetchNode($identifier, $classConstantName), + $startLine, + $startIndex + ); + + } + + return $this->enrichWithAttributes( + $tokens, + new Ast\ConstExpr\ConstFetchNode('', $identifier), + $startLine, + $startIndex + ); + + } elseif ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + return $this->parseArray($tokens, Lexer::TOKEN_CLOSE_SQUARE_BRACKET, $startIndex); + } + + throw new ParserException( + $tokens->currentTokenValue(), + $tokens->currentTokenType(), + $tokens->currentTokenOffset(), + Lexer::TOKEN_IDENTIFIER, + null, + $tokens->currentTokenLine() + ); + } + + + private function parseArray(TokenIterator $tokens, int $endToken, int $startIndex): Ast\ConstExpr\ConstExprArrayNode + { + $items = []; + + $startLine = $tokens->currentTokenLine(); + + if (!$tokens->tryConsumeTokenType($endToken)) { + do { + $items[] = $this->parseArrayItem($tokens); + } while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA) && !$tokens->isCurrentTokenType($endToken)); + $tokens->consumeTokenType($endToken); + } + + return $this->enrichWithAttributes( + $tokens, + new Ast\ConstExpr\ConstExprArrayNode($items), + $startLine, + $startIndex + ); + } + + + /** + * This method is supposed to be called with TokenIterator after reading TOKEN_DOUBLE_QUOTED_STRING and shifting + * to the next token. + */ + public function parseDoctrineString(string $text, TokenIterator $tokens): Ast\ConstExpr\DoctrineConstExprStringNode + { + // Because of how Lexer works, a valid Doctrine string + // can consist of a sequence of TOKEN_DOUBLE_QUOTED_STRING and TOKEN_DOCTRINE_ANNOTATION_STRING + while ($tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_QUOTED_STRING, Lexer::TOKEN_DOCTRINE_ANNOTATION_STRING)) { + $text .= $tokens->currentTokenValue(); + $tokens->next(); + } + + return new Ast\ConstExpr\DoctrineConstExprStringNode(Ast\ConstExpr\DoctrineConstExprStringNode::unescape($text)); + } + + + private function parseArrayItem(TokenIterator $tokens): Ast\ConstExpr\ConstExprArrayItemNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + $expr = $this->parse($tokens); + + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_DOUBLE_ARROW)) { + $key = $expr; + $value = $this->parse($tokens); + + } else { + $key = null; + $value = $expr; + } + + return $this->enrichWithAttributes( + $tokens, + new Ast\ConstExpr\ConstExprArrayItemNode($key, $value), + $startLine, + $startIndex + ); + } + + /** + * @template T of Ast\ConstExpr\ConstExprNode + * @param T $node + * @return T + */ + private function enrichWithAttributes(TokenIterator $tokens, Ast\ConstExpr\ConstExprNode $node, int $startLine, int $startIndex): Ast\ConstExpr\ConstExprNode + { + if ($this->useLinesAttributes) { + $node->setAttribute(Ast\Attribute::START_LINE, $startLine); + $node->setAttribute(Ast\Attribute::END_LINE, $tokens->currentTokenLine()); + } + + if ($this->useIndexAttributes) { + $node->setAttribute(Ast\Attribute::START_INDEX, $startIndex); + $node->setAttribute(Ast\Attribute::END_INDEX, $tokens->endIndexOfLastRelevantToken()); + } + + return $node; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Parser/ParserException.php b/vendor/phpstan/phpdoc-parser/src/Parser/ParserException.php new file mode 100644 index 00000000..6ab5cc07 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Parser/ParserException.php @@ -0,0 +1,106 @@ +currentTokenValue = $currentTokenValue; + $this->currentTokenType = $currentTokenType; + $this->currentOffset = $currentOffset; + $this->expectedTokenType = $expectedTokenType; + $this->expectedTokenValue = $expectedTokenValue; + $this->currentTokenLine = $currentTokenLine; + + parent::__construct(sprintf( + 'Unexpected token %s, expected %s%s at offset %d%s', + $this->formatValue($currentTokenValue), + Lexer::TOKEN_LABELS[$expectedTokenType], + $expectedTokenValue !== null ? sprintf(' (%s)', $this->formatValue($expectedTokenValue)) : '', + $currentOffset, + $currentTokenLine === null ? '' : sprintf(' on line %d', $currentTokenLine) + )); + } + + + public function getCurrentTokenValue(): string + { + return $this->currentTokenValue; + } + + + public function getCurrentTokenType(): int + { + return $this->currentTokenType; + } + + + public function getCurrentOffset(): int + { + return $this->currentOffset; + } + + + public function getExpectedTokenType(): int + { + return $this->expectedTokenType; + } + + + public function getExpectedTokenValue(): ?string + { + return $this->expectedTokenValue; + } + + + public function getCurrentTokenLine(): ?int + { + return $this->currentTokenLine; + } + + + private function formatValue(string $value): string + { + $json = json_encode($value, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_INVALID_UTF8_SUBSTITUTE); + assert($json !== false); + + return $json; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php b/vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php new file mode 100644 index 00000000..b6cd85ea --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Parser/PhpDocParser.php @@ -0,0 +1,1301 @@ +typeParser = $typeParser; + $this->constantExprParser = $constantExprParser; + $this->doctrineConstantExprParser = $constantExprParser->toDoctrine(); + $this->requireWhitespaceBeforeDescription = $requireWhitespaceBeforeDescription; + $this->preserveTypeAliasesWithInvalidTypes = $preserveTypeAliasesWithInvalidTypes; + $this->parseDoctrineAnnotations = $parseDoctrineAnnotations; + $this->useLinesAttributes = $usedAttributes['lines'] ?? false; + $this->useIndexAttributes = $usedAttributes['indexes'] ?? false; + $this->textBetweenTagsBelongsToDescription = $textBetweenTagsBelongsToDescription; + } + + + public function parse(TokenIterator $tokens): Ast\PhpDoc\PhpDocNode + { + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_PHPDOC); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + $children = []; + + if ($this->parseDoctrineAnnotations) { + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { + $lastChild = $this->parseChild($tokens); + $children[] = $lastChild; + while (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { + if ( + $lastChild instanceof Ast\PhpDoc\PhpDocTagNode + && ( + $lastChild->value instanceof Doctrine\DoctrineTagValueNode + || $lastChild->value instanceof Ast\PhpDoc\GenericTagValueNode + ) + ) { + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { + break; + } + $lastChild = $this->parseChild($tokens); + $children[] = $lastChild; + continue; + } + + if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL)) { + break; + } + if ($tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { + break; + } + + $lastChild = $this->parseChild($tokens); + $children[] = $lastChild; + } + } + } else { + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { + $children[] = $this->parseChild($tokens); + while ($tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL) && !$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { + $children[] = $this->parseChild($tokens); + } + } + } + + try { + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PHPDOC); + } catch (ParserException $e) { + $name = ''; + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + if (count($children) > 0) { + $lastChild = $children[count($children) - 1]; + if ($lastChild instanceof Ast\PhpDoc\PhpDocTagNode) { + $name = $lastChild->name; + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + } + } + + $tag = new Ast\PhpDoc\PhpDocTagNode( + $name, + $this->enrichWithAttributes( + $tokens, + new Ast\PhpDoc\InvalidTagValueNode($e->getMessage(), $e), + $startLine, + $startIndex + ) + ); + + $tokens->forwardToTheEnd(); + + return $this->enrichWithAttributes($tokens, new Ast\PhpDoc\PhpDocNode([$this->enrichWithAttributes($tokens, $tag, $startLine, $startIndex)]), 1, 0); + } + + return $this->enrichWithAttributes($tokens, new Ast\PhpDoc\PhpDocNode(array_values($children)), 1, 0); + } + + + /** @phpstan-impure */ + private function parseChild(TokenIterator $tokens): Ast\PhpDoc\PhpDocChildNode + { + if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG)) { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + return $this->enrichWithAttributes($tokens, $this->parseTag($tokens), $startLine, $startIndex); + } + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_DOCTRINE_TAG)) { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + $tag = $tokens->currentTokenValue(); + $tokens->next(); + + $tagStartLine = $tokens->currentTokenLine(); + $tagStartIndex = $tokens->currentTokenIndex(); + + return $this->enrichWithAttributes($tokens, new Ast\PhpDoc\PhpDocTagNode( + $tag, + $this->enrichWithAttributes( + $tokens, + $this->parseDoctrineTagValue($tokens, $tag), + $tagStartLine, + $tagStartIndex + ) + ), $startLine, $startIndex); + } + + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + $text = $this->parseText($tokens); + + return $this->enrichWithAttributes($tokens, $text, $startLine, $startIndex); + } + + /** + * @template T of Ast\Node + * @param T $tag + * @return T + */ + private function enrichWithAttributes(TokenIterator $tokens, Ast\Node $tag, int $startLine, int $startIndex): Ast\Node + { + if ($this->useLinesAttributes) { + $tag->setAttribute(Ast\Attribute::START_LINE, $startLine); + $tag->setAttribute(Ast\Attribute::END_LINE, $tokens->currentTokenLine()); + } + + if ($this->useIndexAttributes) { + $tag->setAttribute(Ast\Attribute::START_INDEX, $startIndex); + $tag->setAttribute(Ast\Attribute::END_INDEX, $tokens->endIndexOfLastRelevantToken()); + } + + return $tag; + } + + + private function parseText(TokenIterator $tokens): Ast\PhpDoc\PhpDocTextNode + { + $text = ''; + + $endTokens = [Lexer::TOKEN_PHPDOC_EOL, Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END]; + if ($this->textBetweenTagsBelongsToDescription) { + $endTokens = [Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END]; + } + + $savepoint = false; + + // if the next token is EOL, everything below is skipped and empty string is returned + while ($this->textBetweenTagsBelongsToDescription || !$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL)) { + $tmpText = $tokens->getSkippedHorizontalWhiteSpaceIfAny() . $tokens->joinUntil(Lexer::TOKEN_PHPDOC_EOL, ...$endTokens); + $text .= $tmpText; + + // stop if we're not at EOL - meaning it's the end of PHPDoc + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL, Lexer::TOKEN_CLOSE_PHPDOC)) { + break; + } + + if ($this->textBetweenTagsBelongsToDescription) { + if (!$savepoint) { + $tokens->pushSavePoint(); + $savepoint = true; + } elseif ($tmpText !== '') { + $tokens->dropSavePoint(); + $tokens->pushSavePoint(); + } + } + + $tokens->pushSavePoint(); + $tokens->next(); + + // if we're at EOL, check what's next + // if next is a PHPDoc tag, EOL, or end of PHPDoc, stop + if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG, Lexer::TOKEN_DOCTRINE_TAG, ...$endTokens)) { + $tokens->rollback(); + break; + } + + // otherwise if the next is text, continue building the description string + + $tokens->dropSavePoint(); + $text .= $tokens->getDetectedNewline() ?? "\n"; + } + + if ($savepoint) { + $tokens->rollback(); + $text = rtrim($text, $tokens->getDetectedNewline() ?? "\n"); + } + + return new Ast\PhpDoc\PhpDocTextNode(trim($text, " \t")); + } + + + private function parseOptionalDescriptionAfterDoctrineTag(TokenIterator $tokens): string + { + $text = ''; + + $endTokens = [Lexer::TOKEN_PHPDOC_EOL, Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END]; + if ($this->textBetweenTagsBelongsToDescription) { + $endTokens = [Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END]; + } + + $savepoint = false; + + // if the next token is EOL, everything below is skipped and empty string is returned + while ($this->textBetweenTagsBelongsToDescription || !$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL)) { + $tmpText = $tokens->getSkippedHorizontalWhiteSpaceIfAny() . $tokens->joinUntil(Lexer::TOKEN_PHPDOC_TAG, Lexer::TOKEN_DOCTRINE_TAG, Lexer::TOKEN_PHPDOC_EOL, ...$endTokens); + $text .= $tmpText; + + // stop if we're not at EOL - meaning it's the end of PHPDoc + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL, Lexer::TOKEN_CLOSE_PHPDOC)) { + if (!$tokens->isPrecededByHorizontalWhitespace()) { + return trim($text . $this->parseText($tokens)->text, " \t"); + } + if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG)) { + $tokens->pushSavePoint(); + $child = $this->parseChild($tokens); + if ($child instanceof Ast\PhpDoc\PhpDocTagNode) { + if ( + $child->value instanceof Ast\PhpDoc\GenericTagValueNode + || $child->value instanceof Doctrine\DoctrineTagValueNode + ) { + $tokens->rollback(); + break; + } + if ($child->value instanceof Ast\PhpDoc\InvalidTagValueNode) { + $tokens->rollback(); + $tokens->pushSavePoint(); + $tokens->next(); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { + $tokens->rollback(); + break; + } + $tokens->rollback(); + return trim($text . $this->parseText($tokens)->text, " \t"); + } + } + + $tokens->rollback(); + return trim($text . $this->parseText($tokens)->text, " \t"); + } + break; + } + + if ($this->textBetweenTagsBelongsToDescription) { + if (!$savepoint) { + $tokens->pushSavePoint(); + $savepoint = true; + } elseif ($tmpText !== '') { + $tokens->dropSavePoint(); + $tokens->pushSavePoint(); + } + } + + $tokens->pushSavePoint(); + $tokens->next(); + + // if we're at EOL, check what's next + // if next is a PHPDoc tag, EOL, or end of PHPDoc, stop + if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG, Lexer::TOKEN_DOCTRINE_TAG, ...$endTokens)) { + $tokens->rollback(); + break; + } + + // otherwise if the next is text, continue building the description string + + $tokens->dropSavePoint(); + $text .= $tokens->getDetectedNewline() ?? "\n"; + } + + if ($savepoint) { + $tokens->rollback(); + $text = rtrim($text, $tokens->getDetectedNewline() ?? "\n"); + } + + return trim($text, " \t"); + } + + + public function parseTag(TokenIterator $tokens): Ast\PhpDoc\PhpDocTagNode + { + $tag = $tokens->currentTokenValue(); + $tokens->next(); + $value = $this->parseTagValue($tokens, $tag); + + return new Ast\PhpDoc\PhpDocTagNode($tag, $value); + } + + + public function parseTagValue(TokenIterator $tokens, string $tag): Ast\PhpDoc\PhpDocTagValueNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + try { + $tokens->pushSavePoint(); + + switch ($tag) { + case '@param': + case '@phpstan-param': + case '@psalm-param': + case '@phan-param': + $tagValue = $this->parseParamTagValue($tokens); + break; + + case '@param-immediately-invoked-callable': + case '@phpstan-param-immediately-invoked-callable': + $tagValue = $this->parseParamImmediatelyInvokedCallableTagValue($tokens); + break; + + case '@param-later-invoked-callable': + case '@phpstan-param-later-invoked-callable': + $tagValue = $this->parseParamLaterInvokedCallableTagValue($tokens); + break; + + case '@param-closure-this': + case '@phpstan-param-closure-this': + $tagValue = $this->parseParamClosureThisTagValue($tokens); + break; + + case '@pure-unless-callable-is-impure': + case '@phpstan-pure-unless-callable-is-impure': + $tagValue = $this->parsePureUnlessCallableIsImpureTagValue($tokens); + break; + + case '@var': + case '@phpstan-var': + case '@psalm-var': + case '@phan-var': + $tagValue = $this->parseVarTagValue($tokens); + break; + + case '@return': + case '@phpstan-return': + case '@psalm-return': + case '@phan-return': + case '@phan-real-return': + $tagValue = $this->parseReturnTagValue($tokens); + break; + + case '@throws': + case '@phpstan-throws': + $tagValue = $this->parseThrowsTagValue($tokens); + break; + + case '@mixin': + case '@phan-mixin': + $tagValue = $this->parseMixinTagValue($tokens); + break; + + case '@psalm-require-extends': + case '@phpstan-require-extends': + $tagValue = $this->parseRequireExtendsTagValue($tokens); + break; + + case '@psalm-require-implements': + case '@phpstan-require-implements': + $tagValue = $this->parseRequireImplementsTagValue($tokens); + break; + + case '@deprecated': + $tagValue = $this->parseDeprecatedTagValue($tokens); + break; + + case '@property': + case '@property-read': + case '@property-write': + case '@phpstan-property': + case '@phpstan-property-read': + case '@phpstan-property-write': + case '@psalm-property': + case '@psalm-property-read': + case '@psalm-property-write': + case '@phan-property': + case '@phan-property-read': + case '@phan-property-write': + $tagValue = $this->parsePropertyTagValue($tokens); + break; + + case '@method': + case '@phpstan-method': + case '@psalm-method': + case '@phan-method': + $tagValue = $this->parseMethodTagValue($tokens); + break; + + case '@template': + case '@phpstan-template': + case '@psalm-template': + case '@phan-template': + case '@template-covariant': + case '@phpstan-template-covariant': + case '@psalm-template-covariant': + case '@template-contravariant': + case '@phpstan-template-contravariant': + case '@psalm-template-contravariant': + $tagValue = $this->typeParser->parseTemplateTagValue( + $tokens, + function ($tokens) { + return $this->parseOptionalDescription($tokens); + } + ); + break; + + case '@extends': + case '@phpstan-extends': + case '@phan-extends': + case '@phan-inherits': + case '@template-extends': + $tagValue = $this->parseExtendsTagValue('@extends', $tokens); + break; + + case '@implements': + case '@phpstan-implements': + case '@template-implements': + $tagValue = $this->parseExtendsTagValue('@implements', $tokens); + break; + + case '@use': + case '@phpstan-use': + case '@template-use': + $tagValue = $this->parseExtendsTagValue('@use', $tokens); + break; + + case '@phpstan-type': + case '@psalm-type': + case '@phan-type': + $tagValue = $this->parseTypeAliasTagValue($tokens); + break; + + case '@phpstan-import-type': + case '@psalm-import-type': + $tagValue = $this->parseTypeAliasImportTagValue($tokens); + break; + + case '@phpstan-assert': + case '@phpstan-assert-if-true': + case '@phpstan-assert-if-false': + case '@psalm-assert': + case '@psalm-assert-if-true': + case '@psalm-assert-if-false': + case '@phan-assert': + case '@phan-assert-if-true': + case '@phan-assert-if-false': + $tagValue = $this->parseAssertTagValue($tokens); + break; + + case '@phpstan-this-out': + case '@phpstan-self-out': + case '@psalm-this-out': + case '@psalm-self-out': + $tagValue = $this->parseSelfOutTagValue($tokens); + break; + + case '@param-out': + case '@phpstan-param-out': + case '@psalm-param-out': + $tagValue = $this->parseParamOutTagValue($tokens); + break; + + default: + if ($this->parseDoctrineAnnotations) { + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { + $tagValue = $this->parseDoctrineTagValue($tokens, $tag); + } else { + $tagValue = new Ast\PhpDoc\GenericTagValueNode($this->parseOptionalDescriptionAfterDoctrineTag($tokens)); + } + break; + } + + $tagValue = new Ast\PhpDoc\GenericTagValueNode($this->parseOptionalDescription($tokens)); + + break; + } + + $tokens->dropSavePoint(); + + } catch (ParserException $e) { + $tokens->rollback(); + $tagValue = new Ast\PhpDoc\InvalidTagValueNode($this->parseOptionalDescription($tokens), $e); + } + + return $this->enrichWithAttributes($tokens, $tagValue, $startLine, $startIndex); + } + + + private function parseDoctrineTagValue(TokenIterator $tokens, string $tag): Ast\PhpDoc\PhpDocTagValueNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + return new Doctrine\DoctrineTagValueNode( + $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineAnnotation($tag, $this->parseDoctrineArguments($tokens, false)), + $startLine, + $startIndex + ), + $this->parseOptionalDescriptionAfterDoctrineTag($tokens) + ); + } + + + /** + * @return list + */ + private function parseDoctrineArguments(TokenIterator $tokens, bool $deep): array + { + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { + return []; + } + + if (!$deep) { + $tokens->addEndOfLineToSkippedTokens(); + } + + $arguments = []; + + try { + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES); + + do { + if ($tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PARENTHESES)) { + break; + } + $arguments[] = $this->parseDoctrineArgument($tokens); + } while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)); + } finally { + if (!$deep) { + $tokens->removeEndOfLineFromSkippedTokens(); + } + } + + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PARENTHESES); + + return $arguments; + } + + + private function parseDoctrineArgument(TokenIterator $tokens): Doctrine\DoctrineArgument + { + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_IDENTIFIER)) { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + return $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineArgument(null, $this->parseDoctrineArgumentValue($tokens)), + $startLine, + $startIndex + ); + } + + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + try { + $tokens->pushSavePoint(); + $currentValue = $tokens->currentTokenValue(); + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + + $key = $this->enrichWithAttributes( + $tokens, + new IdentifierTypeNode($currentValue), + $startLine, + $startIndex + ); + $tokens->consumeTokenType(Lexer::TOKEN_EQUAL); + + $value = $this->parseDoctrineArgumentValue($tokens); + + $tokens->dropSavePoint(); + + return $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineArgument($key, $value), + $startLine, + $startIndex + ); + } catch (ParserException $e) { + $tokens->rollback(); + + return $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineArgument(null, $this->parseDoctrineArgumentValue($tokens)), + $startLine, + $startIndex + ); + } + } + + + /** + * @return DoctrineValueType + */ + private function parseDoctrineArgumentValue(TokenIterator $tokens) + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_TAG, Lexer::TOKEN_DOCTRINE_TAG)) { + $name = $tokens->currentTokenValue(); + $tokens->next(); + + return $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineAnnotation($name, $this->parseDoctrineArguments($tokens, true)), + $startLine, + $startIndex + ); + } + + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_CURLY_BRACKET)) { + $items = []; + do { + if ($tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET)) { + break; + } + $items[] = $this->parseDoctrineArrayItem($tokens); + } while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)); + + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET); + + return $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineArray($items), + $startLine, + $startIndex + ); + } + + $currentTokenValue = $tokens->currentTokenValue(); + $tokens->pushSavePoint(); // because of ConstFetchNode + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_IDENTIFIER)) { + $identifier = $this->enrichWithAttributes( + $tokens, + new Ast\Type\IdentifierTypeNode($currentTokenValue), + $startLine, + $startIndex + ); + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_COLON)) { + $tokens->dropSavePoint(); + return $identifier; + } + + $tokens->rollback(); // because of ConstFetchNode + } else { + $tokens->dropSavePoint(); // because of ConstFetchNode + } + + $currentTokenValue = $tokens->currentTokenValue(); + $currentTokenType = $tokens->currentTokenType(); + $currentTokenOffset = $tokens->currentTokenOffset(); + $currentTokenLine = $tokens->currentTokenLine(); + + try { + $constExpr = $this->doctrineConstantExprParser->parse($tokens, true); + if ($constExpr instanceof Ast\ConstExpr\ConstExprArrayNode) { + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); + } + + return $constExpr; + } catch (LogicException $e) { + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); + } + } + + + private function parseDoctrineArrayItem(TokenIterator $tokens): Doctrine\DoctrineArrayItem + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + try { + $tokens->pushSavePoint(); + + $key = $this->parseDoctrineArrayKey($tokens); + if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_EQUAL)) { + if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_COLON)) { + $tokens->consumeTokenType(Lexer::TOKEN_EQUAL); // will throw exception + } + } + + $value = $this->parseDoctrineArgumentValue($tokens); + + $tokens->dropSavePoint(); + + return $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineArrayItem($key, $value), + $startLine, + $startIndex + ); + } catch (ParserException $e) { + $tokens->rollback(); + + return $this->enrichWithAttributes( + $tokens, + new Doctrine\DoctrineArrayItem(null, $this->parseDoctrineArgumentValue($tokens)), + $startLine, + $startIndex + ); + } + } + + + /** + * @return ConstExprIntegerNode|ConstExprStringNode|IdentifierTypeNode|ConstFetchNode + */ + private function parseDoctrineArrayKey(TokenIterator $tokens) + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_INTEGER)) { + $key = new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', $tokens->currentTokenValue())); + $tokens->next(); + + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_DOCTRINE_ANNOTATION_STRING)) { + $key = new Ast\ConstExpr\DoctrineConstExprStringNode(Ast\ConstExpr\DoctrineConstExprStringNode::unescape($tokens->currentTokenValue())); + + $tokens->next(); + + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_QUOTED_STRING)) { + $value = $tokens->currentTokenValue(); + $tokens->next(); + $key = $this->doctrineConstantExprParser->parseDoctrineString($value, $tokens); + + } else { + $currentTokenValue = $tokens->currentTokenValue(); + $tokens->pushSavePoint(); // because of ConstFetchNode + if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_IDENTIFIER)) { + $tokens->dropSavePoint(); + throw new ParserException( + $tokens->currentTokenValue(), + $tokens->currentTokenType(), + $tokens->currentTokenOffset(), + Lexer::TOKEN_IDENTIFIER, + null, + $tokens->currentTokenLine() + ); + } + + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_COLON)) { + $tokens->dropSavePoint(); + + return $this->enrichWithAttributes( + $tokens, + new IdentifierTypeNode($currentTokenValue), + $startLine, + $startIndex + ); + } + + $tokens->rollback(); + $constExpr = $this->doctrineConstantExprParser->parse($tokens, true); + if (!$constExpr instanceof Ast\ConstExpr\ConstFetchNode) { + throw new ParserException( + $tokens->currentTokenValue(), + $tokens->currentTokenType(), + $tokens->currentTokenOffset(), + Lexer::TOKEN_IDENTIFIER, + null, + $tokens->currentTokenLine() + ); + } + + return $constExpr; + } + + return $this->enrichWithAttributes($tokens, $key, $startLine, $startIndex); + } + + + /** + * @return Ast\PhpDoc\ParamTagValueNode|Ast\PhpDoc\TypelessParamTagValueNode + */ + private function parseParamTagValue(TokenIterator $tokens): Ast\PhpDoc\PhpDocTagValueNode + { + if ( + $tokens->isCurrentTokenType(Lexer::TOKEN_REFERENCE, Lexer::TOKEN_VARIADIC, Lexer::TOKEN_VARIABLE) + ) { + $type = null; + } else { + $type = $this->typeParser->parse($tokens); + } + + $isReference = $tokens->tryConsumeTokenType(Lexer::TOKEN_REFERENCE); + $isVariadic = $tokens->tryConsumeTokenType(Lexer::TOKEN_VARIADIC); + $parameterName = $this->parseRequiredVariableName($tokens); + $description = $this->parseOptionalDescription($tokens); + + if ($type !== null) { + return new Ast\PhpDoc\ParamTagValueNode($type, $isVariadic, $parameterName, $description, $isReference); + } + + return new Ast\PhpDoc\TypelessParamTagValueNode($isVariadic, $parameterName, $description, $isReference); + } + + + private function parseParamImmediatelyInvokedCallableTagValue(TokenIterator $tokens): Ast\PhpDoc\ParamImmediatelyInvokedCallableTagValueNode + { + $parameterName = $this->parseRequiredVariableName($tokens); + $description = $this->parseOptionalDescription($tokens); + + return new Ast\PhpDoc\ParamImmediatelyInvokedCallableTagValueNode($parameterName, $description); + } + + + private function parseParamLaterInvokedCallableTagValue(TokenIterator $tokens): Ast\PhpDoc\ParamLaterInvokedCallableTagValueNode + { + $parameterName = $this->parseRequiredVariableName($tokens); + $description = $this->parseOptionalDescription($tokens); + + return new Ast\PhpDoc\ParamLaterInvokedCallableTagValueNode($parameterName, $description); + } + + + private function parseParamClosureThisTagValue(TokenIterator $tokens): Ast\PhpDoc\ParamClosureThisTagValueNode + { + $type = $this->typeParser->parse($tokens); + $parameterName = $this->parseRequiredVariableName($tokens); + $description = $this->parseOptionalDescription($tokens); + + return new Ast\PhpDoc\ParamClosureThisTagValueNode($type, $parameterName, $description); + } + + private function parsePureUnlessCallableIsImpureTagValue(TokenIterator $tokens): Ast\PhpDoc\PureUnlessCallableIsImpureTagValueNode + { + $parameterName = $this->parseRequiredVariableName($tokens); + $description = $this->parseOptionalDescription($tokens); + + return new Ast\PhpDoc\PureUnlessCallableIsImpureTagValueNode($parameterName, $description); + } + + private function parseVarTagValue(TokenIterator $tokens): Ast\PhpDoc\VarTagValueNode + { + $type = $this->typeParser->parse($tokens); + $variableName = $this->parseOptionalVariableName($tokens); + $description = $this->parseOptionalDescription($tokens, $variableName === ''); + return new Ast\PhpDoc\VarTagValueNode($type, $variableName, $description); + } + + + private function parseReturnTagValue(TokenIterator $tokens): Ast\PhpDoc\ReturnTagValueNode + { + $type = $this->typeParser->parse($tokens); + $description = $this->parseOptionalDescription($tokens, true); + return new Ast\PhpDoc\ReturnTagValueNode($type, $description); + } + + + private function parseThrowsTagValue(TokenIterator $tokens): Ast\PhpDoc\ThrowsTagValueNode + { + $type = $this->typeParser->parse($tokens); + $description = $this->parseOptionalDescription($tokens, true); + return new Ast\PhpDoc\ThrowsTagValueNode($type, $description); + } + + private function parseMixinTagValue(TokenIterator $tokens): Ast\PhpDoc\MixinTagValueNode + { + $type = $this->typeParser->parse($tokens); + $description = $this->parseOptionalDescription($tokens, true); + return new Ast\PhpDoc\MixinTagValueNode($type, $description); + } + + private function parseRequireExtendsTagValue(TokenIterator $tokens): Ast\PhpDoc\RequireExtendsTagValueNode + { + $type = $this->typeParser->parse($tokens); + $description = $this->parseOptionalDescription($tokens, true); + return new Ast\PhpDoc\RequireExtendsTagValueNode($type, $description); + } + + private function parseRequireImplementsTagValue(TokenIterator $tokens): Ast\PhpDoc\RequireImplementsTagValueNode + { + $type = $this->typeParser->parse($tokens); + $description = $this->parseOptionalDescription($tokens, true); + return new Ast\PhpDoc\RequireImplementsTagValueNode($type, $description); + } + + private function parseDeprecatedTagValue(TokenIterator $tokens): Ast\PhpDoc\DeprecatedTagValueNode + { + $description = $this->parseOptionalDescription($tokens); + return new Ast\PhpDoc\DeprecatedTagValueNode($description); + } + + + private function parsePropertyTagValue(TokenIterator $tokens): Ast\PhpDoc\PropertyTagValueNode + { + $type = $this->typeParser->parse($tokens); + $parameterName = $this->parseRequiredVariableName($tokens); + $description = $this->parseOptionalDescription($tokens); + return new Ast\PhpDoc\PropertyTagValueNode($type, $parameterName, $description); + } + + + private function parseMethodTagValue(TokenIterator $tokens): Ast\PhpDoc\MethodTagValueNode + { + $staticKeywordOrReturnTypeOrMethodName = $this->typeParser->parse($tokens); + + if ($staticKeywordOrReturnTypeOrMethodName instanceof Ast\Type\IdentifierTypeNode && $staticKeywordOrReturnTypeOrMethodName->name === 'static') { + $isStatic = true; + $returnTypeOrMethodName = $this->typeParser->parse($tokens); + + } else { + $isStatic = false; + $returnTypeOrMethodName = $staticKeywordOrReturnTypeOrMethodName; + } + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_IDENTIFIER)) { + $returnType = $returnTypeOrMethodName; + $methodName = $tokens->currentTokenValue(); + $tokens->next(); + + } elseif ($returnTypeOrMethodName instanceof Ast\Type\IdentifierTypeNode) { + $returnType = $isStatic ? $staticKeywordOrReturnTypeOrMethodName : null; + $methodName = $returnTypeOrMethodName->name; + $isStatic = false; + + } else { + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); // will throw exception + exit; + } + + $templateTypes = []; + + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET)) { + do { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + $templateTypes[] = $this->enrichWithAttributes( + $tokens, + $this->typeParser->parseTemplateTagValue($tokens), + $startLine, + $startIndex + ); + } while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)); + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET); + } + + $parameters = []; + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES); + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PARENTHESES)) { + $parameters[] = $this->parseMethodTagValueParameter($tokens); + while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)) { + $parameters[] = $this->parseMethodTagValueParameter($tokens); + } + } + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PARENTHESES); + + $description = $this->parseOptionalDescription($tokens); + return new Ast\PhpDoc\MethodTagValueNode($isStatic, $returnType, $methodName, $parameters, $description, $templateTypes); + } + + private function parseMethodTagValueParameter(TokenIterator $tokens): Ast\PhpDoc\MethodTagValueParameterNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + switch ($tokens->currentTokenType()) { + case Lexer::TOKEN_IDENTIFIER: + case Lexer::TOKEN_OPEN_PARENTHESES: + case Lexer::TOKEN_NULLABLE: + $parameterType = $this->typeParser->parse($tokens); + break; + + default: + $parameterType = null; + } + + $isReference = $tokens->tryConsumeTokenType(Lexer::TOKEN_REFERENCE); + $isVariadic = $tokens->tryConsumeTokenType(Lexer::TOKEN_VARIADIC); + + $parameterName = $tokens->currentTokenValue(); + $tokens->consumeTokenType(Lexer::TOKEN_VARIABLE); + + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_EQUAL)) { + $defaultValue = $this->constantExprParser->parse($tokens); + + } else { + $defaultValue = null; + } + + return $this->enrichWithAttributes( + $tokens, + new Ast\PhpDoc\MethodTagValueParameterNode($parameterType, $isReference, $isVariadic, $parameterName, $defaultValue), + $startLine, + $startIndex + ); + } + + private function parseExtendsTagValue(string $tagName, TokenIterator $tokens): Ast\PhpDoc\PhpDocTagValueNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + $baseType = new IdentifierTypeNode($tokens->currentTokenValue()); + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + + $type = $this->typeParser->parseGeneric( + $tokens, + $this->typeParser->enrichWithAttributes($tokens, $baseType, $startLine, $startIndex) + ); + + $description = $this->parseOptionalDescription($tokens); + + switch ($tagName) { + case '@extends': + return new Ast\PhpDoc\ExtendsTagValueNode($type, $description); + case '@implements': + return new Ast\PhpDoc\ImplementsTagValueNode($type, $description); + case '@use': + return new Ast\PhpDoc\UsesTagValueNode($type, $description); + } + + throw new ShouldNotHappenException(); + } + + private function parseTypeAliasTagValue(TokenIterator $tokens): Ast\PhpDoc\TypeAliasTagValueNode + { + $alias = $tokens->currentTokenValue(); + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + + // support phan-type/psalm-type syntax + $tokens->tryConsumeTokenType(Lexer::TOKEN_EQUAL); + + if ($this->preserveTypeAliasesWithInvalidTypes) { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + try { + $type = $this->typeParser->parse($tokens); + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PHPDOC)) { + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL)) { + throw new ParserException( + $tokens->currentTokenValue(), + $tokens->currentTokenType(), + $tokens->currentTokenOffset(), + Lexer::TOKEN_PHPDOC_EOL, + null, + $tokens->currentTokenLine() + ); + } + } + + return new Ast\PhpDoc\TypeAliasTagValueNode($alias, $type); + } catch (ParserException $e) { + $this->parseOptionalDescription($tokens); + return new Ast\PhpDoc\TypeAliasTagValueNode( + $alias, + $this->enrichWithAttributes($tokens, new Ast\Type\InvalidTypeNode($e), $startLine, $startIndex) + ); + } + } + + $type = $this->typeParser->parse($tokens); + + return new Ast\PhpDoc\TypeAliasTagValueNode($alias, $type); + } + + private function parseTypeAliasImportTagValue(TokenIterator $tokens): Ast\PhpDoc\TypeAliasImportTagValueNode + { + $importedAlias = $tokens->currentTokenValue(); + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + + $tokens->consumeTokenValue(Lexer::TOKEN_IDENTIFIER, 'from'); + + $identifierStartLine = $tokens->currentTokenLine(); + $identifierStartIndex = $tokens->currentTokenIndex(); + $importedFrom = $tokens->currentTokenValue(); + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + $importedFromType = $this->enrichWithAttributes( + $tokens, + new IdentifierTypeNode($importedFrom), + $identifierStartLine, + $identifierStartIndex + ); + + $importedAs = null; + if ($tokens->tryConsumeTokenValue('as')) { + $importedAs = $tokens->currentTokenValue(); + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + } + + return new Ast\PhpDoc\TypeAliasImportTagValueNode($importedAlias, $importedFromType, $importedAs); + } + + /** + * @return Ast\PhpDoc\AssertTagValueNode|Ast\PhpDoc\AssertTagPropertyValueNode|Ast\PhpDoc\AssertTagMethodValueNode + */ + private function parseAssertTagValue(TokenIterator $tokens): Ast\PhpDoc\PhpDocTagValueNode + { + $isNegated = $tokens->tryConsumeTokenType(Lexer::TOKEN_NEGATED); + $isEquality = $tokens->tryConsumeTokenType(Lexer::TOKEN_EQUAL); + $type = $this->typeParser->parse($tokens); + $parameter = $this->parseAssertParameter($tokens); + $description = $this->parseOptionalDescription($tokens); + + if (array_key_exists('method', $parameter)) { + return new Ast\PhpDoc\AssertTagMethodValueNode($type, $parameter['parameter'], $parameter['method'], $isNegated, $description, $isEquality); + } elseif (array_key_exists('property', $parameter)) { + return new Ast\PhpDoc\AssertTagPropertyValueNode($type, $parameter['parameter'], $parameter['property'], $isNegated, $description, $isEquality); + } + + return new Ast\PhpDoc\AssertTagValueNode($type, $parameter['parameter'], $isNegated, $description, $isEquality); + } + + /** + * @return array{parameter: string}|array{parameter: string, property: string}|array{parameter: string, method: string} + */ + private function parseAssertParameter(TokenIterator $tokens): array + { + if ($tokens->isCurrentTokenType(Lexer::TOKEN_THIS_VARIABLE)) { + $parameter = '$this'; + $tokens->next(); + } else { + $parameter = $tokens->currentTokenValue(); + $tokens->consumeTokenType(Lexer::TOKEN_VARIABLE); + } + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_ARROW)) { + $tokens->consumeTokenType(Lexer::TOKEN_ARROW); + + $propertyOrMethod = $tokens->currentTokenValue(); + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PARENTHESES); + + return ['parameter' => $parameter, 'method' => $propertyOrMethod]; + } + + return ['parameter' => $parameter, 'property' => $propertyOrMethod]; + } + + return ['parameter' => $parameter]; + } + + private function parseSelfOutTagValue(TokenIterator $tokens): Ast\PhpDoc\SelfOutTagValueNode + { + $type = $this->typeParser->parse($tokens); + $description = $this->parseOptionalDescription($tokens); + + return new Ast\PhpDoc\SelfOutTagValueNode($type, $description); + } + + private function parseParamOutTagValue(TokenIterator $tokens): Ast\PhpDoc\ParamOutTagValueNode + { + $type = $this->typeParser->parse($tokens); + $parameterName = $this->parseRequiredVariableName($tokens); + $description = $this->parseOptionalDescription($tokens); + + return new Ast\PhpDoc\ParamOutTagValueNode($type, $parameterName, $description); + } + + private function parseOptionalVariableName(TokenIterator $tokens): string + { + if ($tokens->isCurrentTokenType(Lexer::TOKEN_VARIABLE)) { + $parameterName = $tokens->currentTokenValue(); + $tokens->next(); + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_THIS_VARIABLE)) { + $parameterName = '$this'; + $tokens->next(); + + } else { + $parameterName = ''; + } + + return $parameterName; + } + + + private function parseRequiredVariableName(TokenIterator $tokens): string + { + $parameterName = $tokens->currentTokenValue(); + $tokens->consumeTokenType(Lexer::TOKEN_VARIABLE); + + return $parameterName; + } + + private function parseOptionalDescription(TokenIterator $tokens, bool $limitStartToken = false): string + { + if ($limitStartToken) { + foreach (self::DISALLOWED_DESCRIPTION_START_TOKENS as $disallowedStartToken) { + if (!$tokens->isCurrentTokenType($disallowedStartToken)) { + continue; + } + + $tokens->consumeTokenType(Lexer::TOKEN_OTHER); // will throw exception + } + + if ( + $this->requireWhitespaceBeforeDescription + && !$tokens->isCurrentTokenType(Lexer::TOKEN_PHPDOC_EOL, Lexer::TOKEN_CLOSE_PHPDOC, Lexer::TOKEN_END) + && !$tokens->isPrecededByHorizontalWhitespace() + ) { + $tokens->consumeTokenType(Lexer::TOKEN_HORIZONTAL_WS); // will throw exception + } + } + + return $this->parseText($tokens)->text; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Parser/StringUnescaper.php b/vendor/phpstan/phpdoc-parser/src/Parser/StringUnescaper.php new file mode 100644 index 00000000..a3bbeedd --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Parser/StringUnescaper.php @@ -0,0 +1,100 @@ + '\\', + 'n' => "\n", + 'r' => "\r", + 't' => "\t", + 'f' => "\f", + 'v' => "\v", + 'e' => "\x1B", + ]; + + public static function unescapeString(string $string): string + { + $quote = $string[0]; + + if ($quote === '\'') { + return str_replace( + ['\\\\', '\\\''], + ['\\', '\''], + substr($string, 1, -1) + ); + } + + return self::parseEscapeSequences(substr($string, 1, -1), '"'); + } + + /** + * Implementation based on https://github.com/nikic/PHP-Parser/blob/b0edd4c41111042d43bb45c6c657b2e0db367d9e/lib/PhpParser/Node/Scalar/String_.php#L90-L130 + */ + private static function parseEscapeSequences(string $str, string $quote): string + { + $str = str_replace('\\' . $quote, $quote, $str); + + return preg_replace_callback( + '~\\\\([\\\\nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3}|u\{([0-9a-fA-F]+)\})~', + static function ($matches) { + $str = $matches[1]; + + if (isset(self::REPLACEMENTS[$str])) { + return self::REPLACEMENTS[$str]; + } + if ($str[0] === 'x' || $str[0] === 'X') { + return chr((int) hexdec(substr($str, 1))); + } + if ($str[0] === 'u') { + if (!isset($matches[2])) { + throw new ShouldNotHappenException(); + } + return self::codePointToUtf8((int) hexdec($matches[2])); + } + + return chr((int) octdec($str)); + }, + $str + ); + } + + /** + * Implementation based on https://github.com/nikic/PHP-Parser/blob/b0edd4c41111042d43bb45c6c657b2e0db367d9e/lib/PhpParser/Node/Scalar/String_.php#L132-L154 + */ + private static function codePointToUtf8(int $num): string + { + if ($num <= 0x7F) { + return chr($num); + } + if ($num <= 0x7FF) { + return chr(($num >> 6) + 0xC0) + . chr(($num & 0x3F) + 0x80); + } + if ($num <= 0xFFFF) { + return chr(($num >> 12) + 0xE0) + . chr((($num >> 6) & 0x3F) + 0x80) + . chr(($num & 0x3F) + 0x80); + } + if ($num <= 0x1FFFFF) { + return chr(($num >> 18) + 0xF0) + . chr((($num >> 12) & 0x3F) + 0x80) + . chr((($num >> 6) & 0x3F) + 0x80) + . chr(($num & 0x3F) + 0x80); + } + + // Invalid UTF-8 codepoint escape sequence: Codepoint too large + return "\xef\xbf\xbd"; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Parser/TokenIterator.php b/vendor/phpstan/phpdoc-parser/src/Parser/TokenIterator.php new file mode 100644 index 00000000..9be7593d --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Parser/TokenIterator.php @@ -0,0 +1,383 @@ + */ + private $tokens; + + /** @var int */ + private $index; + + /** @var int[] */ + private $savePoints = []; + + /** @var list */ + private $skippedTokenTypes = [Lexer::TOKEN_HORIZONTAL_WS]; + + /** @var string|null */ + private $newline = null; + + /** + * @param list $tokens + */ + public function __construct(array $tokens, int $index = 0) + { + $this->tokens = $tokens; + $this->index = $index; + + $this->skipIrrelevantTokens(); + } + + + /** + * @return list + */ + public function getTokens(): array + { + return $this->tokens; + } + + + public function getContentBetween(int $startPos, int $endPos): string + { + if ($startPos < 0 || $endPos > count($this->tokens)) { + throw new LogicException(); + } + + $content = ''; + for ($i = $startPos; $i < $endPos; $i++) { + $content .= $this->tokens[$i][Lexer::VALUE_OFFSET]; + } + + return $content; + } + + + public function getTokenCount(): int + { + return count($this->tokens); + } + + + public function currentTokenValue(): string + { + return $this->tokens[$this->index][Lexer::VALUE_OFFSET]; + } + + + public function currentTokenType(): int + { + return $this->tokens[$this->index][Lexer::TYPE_OFFSET]; + } + + + public function currentTokenOffset(): int + { + $offset = 0; + for ($i = 0; $i < $this->index; $i++) { + $offset += strlen($this->tokens[$i][Lexer::VALUE_OFFSET]); + } + + return $offset; + } + + + public function currentTokenLine(): int + { + return $this->tokens[$this->index][Lexer::LINE_OFFSET]; + } + + + public function currentTokenIndex(): int + { + return $this->index; + } + + + public function endIndexOfLastRelevantToken(): int + { + $endIndex = $this->currentTokenIndex(); + $endIndex--; + while (in_array($this->tokens[$endIndex][Lexer::TYPE_OFFSET], $this->skippedTokenTypes, true)) { + if (!isset($this->tokens[$endIndex - 1])) { + break; + } + $endIndex--; + } + + return $endIndex; + } + + + public function isCurrentTokenValue(string $tokenValue): bool + { + return $this->tokens[$this->index][Lexer::VALUE_OFFSET] === $tokenValue; + } + + + public function isCurrentTokenType(int ...$tokenType): bool + { + return in_array($this->tokens[$this->index][Lexer::TYPE_OFFSET], $tokenType, true); + } + + + public function isPrecededByHorizontalWhitespace(): bool + { + return ($this->tokens[$this->index - 1][Lexer::TYPE_OFFSET] ?? -1) === Lexer::TOKEN_HORIZONTAL_WS; + } + + + /** + * @throws ParserException + */ + public function consumeTokenType(int $tokenType): void + { + if ($this->tokens[$this->index][Lexer::TYPE_OFFSET] !== $tokenType) { + $this->throwError($tokenType); + } + + if ($tokenType === Lexer::TOKEN_PHPDOC_EOL) { + if ($this->newline === null) { + $this->detectNewline(); + } + } + + $this->index++; + $this->skipIrrelevantTokens(); + } + + + /** + * @throws ParserException + */ + public function consumeTokenValue(int $tokenType, string $tokenValue): void + { + if ($this->tokens[$this->index][Lexer::TYPE_OFFSET] !== $tokenType || $this->tokens[$this->index][Lexer::VALUE_OFFSET] !== $tokenValue) { + $this->throwError($tokenType, $tokenValue); + } + + $this->index++; + $this->skipIrrelevantTokens(); + } + + + /** @phpstan-impure */ + public function tryConsumeTokenValue(string $tokenValue): bool + { + if ($this->tokens[$this->index][Lexer::VALUE_OFFSET] !== $tokenValue) { + return false; + } + + $this->index++; + $this->skipIrrelevantTokens(); + + return true; + } + + + /** @phpstan-impure */ + public function tryConsumeTokenType(int $tokenType): bool + { + if ($this->tokens[$this->index][Lexer::TYPE_OFFSET] !== $tokenType) { + return false; + } + + if ($tokenType === Lexer::TOKEN_PHPDOC_EOL) { + if ($this->newline === null) { + $this->detectNewline(); + } + } + + $this->index++; + $this->skipIrrelevantTokens(); + + return true; + } + + + private function detectNewline(): void + { + $value = $this->currentTokenValue(); + if (substr($value, 0, 2) === "\r\n") { + $this->newline = "\r\n"; + } elseif (substr($value, 0, 1) === "\n") { + $this->newline = "\n"; + } + } + + + public function getSkippedHorizontalWhiteSpaceIfAny(): string + { + if ($this->index > 0 && $this->tokens[$this->index - 1][Lexer::TYPE_OFFSET] === Lexer::TOKEN_HORIZONTAL_WS) { + return $this->tokens[$this->index - 1][Lexer::VALUE_OFFSET]; + } + + return ''; + } + + + /** @phpstan-impure */ + public function joinUntil(int ...$tokenType): string + { + $s = ''; + while (!in_array($this->tokens[$this->index][Lexer::TYPE_OFFSET], $tokenType, true)) { + $s .= $this->tokens[$this->index++][Lexer::VALUE_OFFSET]; + } + return $s; + } + + + public function next(): void + { + $this->index++; + $this->skipIrrelevantTokens(); + } + + + private function skipIrrelevantTokens(): void + { + if (!isset($this->tokens[$this->index])) { + return; + } + + while (in_array($this->tokens[$this->index][Lexer::TYPE_OFFSET], $this->skippedTokenTypes, true)) { + if (!isset($this->tokens[$this->index + 1])) { + break; + } + $this->index++; + } + } + + + public function addEndOfLineToSkippedTokens(): void + { + $this->skippedTokenTypes = [Lexer::TOKEN_HORIZONTAL_WS, Lexer::TOKEN_PHPDOC_EOL]; + } + + + public function removeEndOfLineFromSkippedTokens(): void + { + $this->skippedTokenTypes = [Lexer::TOKEN_HORIZONTAL_WS]; + } + + /** @phpstan-impure */ + public function forwardToTheEnd(): void + { + $lastToken = count($this->tokens) - 1; + $this->index = $lastToken; + } + + + public function pushSavePoint(): void + { + $this->savePoints[] = $this->index; + } + + + public function dropSavePoint(): void + { + array_pop($this->savePoints); + } + + + public function rollback(): void + { + $index = array_pop($this->savePoints); + assert($index !== null); + $this->index = $index; + } + + + /** + * @throws ParserException + */ + private function throwError(int $expectedTokenType, ?string $expectedTokenValue = null): void + { + throw new ParserException( + $this->currentTokenValue(), + $this->currentTokenType(), + $this->currentTokenOffset(), + $expectedTokenType, + $expectedTokenValue, + $this->currentTokenLine() + ); + } + + /** + * Check whether the position is directly preceded by a certain token type. + * + * During this check TOKEN_HORIZONTAL_WS and TOKEN_PHPDOC_EOL are skipped + */ + public function hasTokenImmediatelyBefore(int $pos, int $expectedTokenType): bool + { + $tokens = $this->tokens; + $pos--; + for (; $pos >= 0; $pos--) { + $token = $tokens[$pos]; + $type = $token[Lexer::TYPE_OFFSET]; + if ($type === $expectedTokenType) { + return true; + } + if (!in_array($type, [ + Lexer::TOKEN_HORIZONTAL_WS, + Lexer::TOKEN_PHPDOC_EOL, + ], true)) { + break; + } + } + return false; + } + + /** + * Check whether the position is directly followed by a certain token type. + * + * During this check TOKEN_HORIZONTAL_WS and TOKEN_PHPDOC_EOL are skipped + */ + public function hasTokenImmediatelyAfter(int $pos, int $expectedTokenType): bool + { + $tokens = $this->tokens; + $pos++; + for ($c = count($tokens); $pos < $c; $pos++) { + $token = $tokens[$pos]; + $type = $token[Lexer::TYPE_OFFSET]; + if ($type === $expectedTokenType) { + return true; + } + if (!in_array($type, [ + Lexer::TOKEN_HORIZONTAL_WS, + Lexer::TOKEN_PHPDOC_EOL, + ], true)) { + break; + } + } + + return false; + } + + public function getDetectedNewline(): ?string + { + return $this->newline; + } + + /** + * Whether the given position is immediately surrounded by parenthesis. + */ + public function hasParentheses(int $startPos, int $endPos): bool + { + return $this->hasTokenImmediatelyBefore($startPos, Lexer::TOKEN_OPEN_PARENTHESES) + && $this->hasTokenImmediatelyAfter($endPos, Lexer::TOKEN_CLOSE_PARENTHESES); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php b/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php new file mode 100644 index 00000000..982eba7d --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Parser/TypeParser.php @@ -0,0 +1,1110 @@ +constExprParser = $constExprParser; + $this->quoteAwareConstExprString = $quoteAwareConstExprString; + $this->useLinesAttributes = $usedAttributes['lines'] ?? false; + $this->useIndexAttributes = $usedAttributes['indexes'] ?? false; + } + + /** @phpstan-impure */ + public function parse(TokenIterator $tokens): Ast\Type\TypeNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_NULLABLE)) { + $type = $this->parseNullable($tokens); + + } else { + $type = $this->parseAtomic($tokens); + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_UNION)) { + $type = $this->parseUnion($tokens, $type); + + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_INTERSECTION)) { + $type = $this->parseIntersection($tokens, $type); + } + } + + return $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex); + } + + /** + * @internal + * @template T of Ast\Node + * @param T $type + * @return T + */ + public function enrichWithAttributes(TokenIterator $tokens, Ast\Node $type, int $startLine, int $startIndex): Ast\Node + { + if ($this->useLinesAttributes) { + $type->setAttribute(Ast\Attribute::START_LINE, $startLine); + $type->setAttribute(Ast\Attribute::END_LINE, $tokens->currentTokenLine()); + } + + if ($this->useIndexAttributes) { + $type->setAttribute(Ast\Attribute::START_INDEX, $startIndex); + $type->setAttribute(Ast\Attribute::END_INDEX, $tokens->endIndexOfLastRelevantToken()); + } + + return $type; + } + + /** @phpstan-impure */ + private function subParse(TokenIterator $tokens): Ast\Type\TypeNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_NULLABLE)) { + $type = $this->parseNullable($tokens); + + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_VARIABLE)) { + $type = $this->parseConditionalForParameter($tokens, $tokens->currentTokenValue()); + + } else { + $type = $this->parseAtomic($tokens); + + if ($tokens->isCurrentTokenValue('is')) { + $type = $this->parseConditional($tokens, $type); + } else { + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_UNION)) { + $type = $this->subParseUnion($tokens, $type); + + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_INTERSECTION)) { + $type = $this->subParseIntersection($tokens, $type); + } + } + } + + return $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex); + } + + + /** @phpstan-impure */ + private function parseAtomic(TokenIterator $tokens): Ast\Type\TypeNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + $type = $this->subParse($tokens); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PARENTHESES); + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); + } + + return $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex); + } + + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_THIS_VARIABLE)) { + $type = $this->enrichWithAttributes($tokens, new Ast\Type\ThisTypeNode(), $startLine, $startIndex); + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); + } + + return $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex); + } + + $currentTokenValue = $tokens->currentTokenValue(); + $tokens->pushSavePoint(); // because of ConstFetchNode + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_IDENTIFIER)) { + $type = $this->enrichWithAttributes($tokens, new Ast\Type\IdentifierTypeNode($currentTokenValue), $startLine, $startIndex); + + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_COLON)) { + $tokens->dropSavePoint(); // because of ConstFetchNode + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET)) { + $tokens->pushSavePoint(); + + $isHtml = $this->isHtml($tokens); + $tokens->rollback(); + if ($isHtml) { + return $type; + } + + $origType = $type; + $type = $this->tryParseCallable($tokens, $type, true); + if ($type === $origType) { + $type = $this->parseGeneric($tokens, $type); + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); + } + } + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { + $type = $this->tryParseCallable($tokens, $type, false); + + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); + + } elseif (in_array($type->name, [ + Ast\Type\ArrayShapeNode::KIND_ARRAY, + Ast\Type\ArrayShapeNode::KIND_LIST, + Ast\Type\ArrayShapeNode::KIND_NON_EMPTY_ARRAY, + Ast\Type\ArrayShapeNode::KIND_NON_EMPTY_LIST, + 'object', + ], true) && $tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_CURLY_BRACKET) && !$tokens->isPrecededByHorizontalWhitespace()) { + if ($type->name === 'object') { + $type = $this->parseObjectShape($tokens); + } else { + $type = $this->parseArrayShape($tokens, $type, $type->name); + } + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $type = $this->tryParseArrayOrOffsetAccess( + $tokens, + $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex) + ); + } + } + + return $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex); + } else { + $tokens->rollback(); // because of ConstFetchNode + } + } else { + $tokens->dropSavePoint(); // because of ConstFetchNode + } + + $currentTokenValue = $tokens->currentTokenValue(); + $currentTokenType = $tokens->currentTokenType(); + $currentTokenOffset = $tokens->currentTokenOffset(); + $currentTokenLine = $tokens->currentTokenLine(); + + if ($this->constExprParser === null) { + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); + } + + try { + $constExpr = $this->constExprParser->parse($tokens, true); + if ($constExpr instanceof Ast\ConstExpr\ConstExprArrayNode) { + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); + } + + $type = $this->enrichWithAttributes( + $tokens, + new Ast\Type\ConstTypeNode($constExpr), + $startLine, + $startIndex + ); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); + } + + return $type; + } catch (LogicException $e) { + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); + } + } + + + /** @phpstan-impure */ + private function parseUnion(TokenIterator $tokens, Ast\Type\TypeNode $type): Ast\Type\TypeNode + { + $types = [$type]; + + while ($tokens->tryConsumeTokenType(Lexer::TOKEN_UNION)) { + $types[] = $this->parseAtomic($tokens); + } + + return new Ast\Type\UnionTypeNode($types); + } + + + /** @phpstan-impure */ + private function subParseUnion(TokenIterator $tokens, Ast\Type\TypeNode $type): Ast\Type\TypeNode + { + $types = [$type]; + + while ($tokens->tryConsumeTokenType(Lexer::TOKEN_UNION)) { + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + $types[] = $this->parseAtomic($tokens); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + } + + return new Ast\Type\UnionTypeNode($types); + } + + + /** @phpstan-impure */ + private function parseIntersection(TokenIterator $tokens, Ast\Type\TypeNode $type): Ast\Type\TypeNode + { + $types = [$type]; + + while ($tokens->tryConsumeTokenType(Lexer::TOKEN_INTERSECTION)) { + $types[] = $this->parseAtomic($tokens); + } + + return new Ast\Type\IntersectionTypeNode($types); + } + + + /** @phpstan-impure */ + private function subParseIntersection(TokenIterator $tokens, Ast\Type\TypeNode $type): Ast\Type\TypeNode + { + $types = [$type]; + + while ($tokens->tryConsumeTokenType(Lexer::TOKEN_INTERSECTION)) { + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + $types[] = $this->parseAtomic($tokens); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + } + + return new Ast\Type\IntersectionTypeNode($types); + } + + + /** @phpstan-impure */ + private function parseConditional(TokenIterator $tokens, Ast\Type\TypeNode $subjectType): Ast\Type\TypeNode + { + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + + $negated = false; + if ($tokens->isCurrentTokenValue('not')) { + $negated = true; + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + } + + $targetType = $this->parse($tokens); + + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + $tokens->consumeTokenType(Lexer::TOKEN_NULLABLE); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + $ifType = $this->parse($tokens); + + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + $tokens->consumeTokenType(Lexer::TOKEN_COLON); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + $elseType = $this->subParse($tokens); + + return new Ast\Type\ConditionalTypeNode($subjectType, $targetType, $ifType, $elseType, $negated); + } + + /** @phpstan-impure */ + private function parseConditionalForParameter(TokenIterator $tokens, string $parameterName): Ast\Type\TypeNode + { + $tokens->consumeTokenType(Lexer::TOKEN_VARIABLE); + $tokens->consumeTokenValue(Lexer::TOKEN_IDENTIFIER, 'is'); + + $negated = false; + if ($tokens->isCurrentTokenValue('not')) { + $negated = true; + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + } + + $targetType = $this->parse($tokens); + + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + $tokens->consumeTokenType(Lexer::TOKEN_NULLABLE); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + $ifType = $this->parse($tokens); + + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + $tokens->consumeTokenType(Lexer::TOKEN_COLON); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + $elseType = $this->subParse($tokens); + + return new Ast\Type\ConditionalTypeForParameterNode($parameterName, $targetType, $ifType, $elseType, $negated); + } + + + /** @phpstan-impure */ + private function parseNullable(TokenIterator $tokens): Ast\Type\TypeNode + { + $tokens->consumeTokenType(Lexer::TOKEN_NULLABLE); + + $type = $this->parseAtomic($tokens); + + return new Ast\Type\NullableTypeNode($type); + } + + /** @phpstan-impure */ + public function isHtml(TokenIterator $tokens): bool + { + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET); + + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_IDENTIFIER)) { + return false; + } + + $htmlTagName = $tokens->currentTokenValue(); + + $tokens->next(); + + if (!$tokens->tryConsumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET)) { + return false; + } + + $endTag = ''; + $endTagSearchOffset = - strlen($endTag); + + while (!$tokens->isCurrentTokenType(Lexer::TOKEN_END)) { + if ( + ( + $tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET) + && strpos($tokens->currentTokenValue(), '/' . $htmlTagName . '>') !== false + ) + || substr_compare($tokens->currentTokenValue(), $endTag, $endTagSearchOffset) === 0 + ) { + return true; + } + + $tokens->next(); + } + + return false; + } + + /** @phpstan-impure */ + public function parseGeneric(TokenIterator $tokens, Ast\Type\IdentifierTypeNode $baseType): Ast\Type\GenericTypeNode + { + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET); + + $startLine = $baseType->getAttribute(Ast\Attribute::START_LINE); + $startIndex = $baseType->getAttribute(Ast\Attribute::START_INDEX); + $genericTypes = []; + $variances = []; + + $isFirst = true; + while ($isFirst || $tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)) { + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + // trailing comma case + if (!$isFirst && $tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET)) { + break; + } + $isFirst = false; + + [$genericTypes[], $variances[]] = $this->parseGenericTypeArgument($tokens); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + } + + $type = new Ast\Type\GenericTypeNode($baseType, $genericTypes, $variances); + if ($startLine !== null && $startIndex !== null) { + $type = $this->enrichWithAttributes($tokens, $type, $startLine, $startIndex); + } + + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET); + + return $type; + } + + + /** + * @phpstan-impure + * @return array{Ast\Type\TypeNode, Ast\Type\GenericTypeNode::VARIANCE_*} + */ + public function parseGenericTypeArgument(TokenIterator $tokens): array + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_WILDCARD)) { + return [ + $this->enrichWithAttributes($tokens, new Ast\Type\IdentifierTypeNode('mixed'), $startLine, $startIndex), + Ast\Type\GenericTypeNode::VARIANCE_BIVARIANT, + ]; + } + + if ($tokens->tryConsumeTokenValue('contravariant')) { + $variance = Ast\Type\GenericTypeNode::VARIANCE_CONTRAVARIANT; + } elseif ($tokens->tryConsumeTokenValue('covariant')) { + $variance = Ast\Type\GenericTypeNode::VARIANCE_COVARIANT; + } else { + $variance = Ast\Type\GenericTypeNode::VARIANCE_INVARIANT; + } + + $type = $this->parse($tokens); + return [$type, $variance]; + } + + /** + * @throws ParserException + * @param ?callable(TokenIterator): string $parseDescription + */ + public function parseTemplateTagValue( + TokenIterator $tokens, + ?callable $parseDescription = null + ): TemplateTagValueNode + { + $name = $tokens->currentTokenValue(); + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + + $upperBound = $lowerBound = null; + + if ($tokens->tryConsumeTokenValue('of') || $tokens->tryConsumeTokenValue('as')) { + $upperBound = $this->parse($tokens); + } + + if ($tokens->tryConsumeTokenValue('super')) { + $lowerBound = $this->parse($tokens); + } + + if ($tokens->tryConsumeTokenValue('=')) { + $default = $this->parse($tokens); + } else { + $default = null; + } + + if ($parseDescription !== null) { + $description = $parseDescription($tokens); + } else { + $description = ''; + } + + if ($name === '') { + throw new LogicException('Template tag name cannot be empty.'); + } + + return new Ast\PhpDoc\TemplateTagValueNode($name, $upperBound, $description, $default, $lowerBound); + } + + + /** @phpstan-impure */ + private function parseCallable(TokenIterator $tokens, Ast\Type\IdentifierTypeNode $identifier, bool $hasTemplate): Ast\Type\TypeNode + { + $templates = $hasTemplate + ? $this->parseCallableTemplates($tokens) + : []; + + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + $parameters = []; + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PARENTHESES)) { + $parameters[] = $this->parseCallableParameter($tokens); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)) { + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_PARENTHESES)) { + break; + } + $parameters[] = $this->parseCallableParameter($tokens); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + } + } + + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PARENTHESES); + $tokens->consumeTokenType(Lexer::TOKEN_COLON); + + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + $returnType = $this->enrichWithAttributes($tokens, $this->parseCallableReturnType($tokens), $startLine, $startIndex); + + return new Ast\Type\CallableTypeNode($identifier, $parameters, $returnType, $templates); + } + + + /** + * @return Ast\PhpDoc\TemplateTagValueNode[] + * + * @phpstan-impure + */ + private function parseCallableTemplates(TokenIterator $tokens): array + { + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET); + + $templates = []; + + $isFirst = true; + while ($isFirst || $tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)) { + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + // trailing comma case + if (!$isFirst && $tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET)) { + break; + } + $isFirst = false; + + $templates[] = $this->parseCallableTemplateArgument($tokens); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + } + + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET); + + return $templates; + } + + + private function parseCallableTemplateArgument(TokenIterator $tokens): Ast\PhpDoc\TemplateTagValueNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + return $this->enrichWithAttributes( + $tokens, + $this->parseTemplateTagValue($tokens), + $startLine, + $startIndex + ); + } + + + /** @phpstan-impure */ + private function parseCallableParameter(TokenIterator $tokens): Ast\Type\CallableTypeParameterNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + $type = $this->parse($tokens); + $isReference = $tokens->tryConsumeTokenType(Lexer::TOKEN_REFERENCE); + $isVariadic = $tokens->tryConsumeTokenType(Lexer::TOKEN_VARIADIC); + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_VARIABLE)) { + $parameterName = $tokens->currentTokenValue(); + $tokens->consumeTokenType(Lexer::TOKEN_VARIABLE); + + } else { + $parameterName = ''; + } + + $isOptional = $tokens->tryConsumeTokenType(Lexer::TOKEN_EQUAL); + return $this->enrichWithAttributes( + $tokens, + new Ast\Type\CallableTypeParameterNode($type, $isReference, $isVariadic, $parameterName, $isOptional), + $startLine, + $startIndex + ); + } + + + /** @phpstan-impure */ + private function parseCallableReturnType(TokenIterator $tokens): Ast\Type\TypeNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_NULLABLE)) { + return $this->parseNullable($tokens); + + } elseif ($tokens->tryConsumeTokenType(Lexer::TOKEN_OPEN_PARENTHESES)) { + $type = $this->subParse($tokens); + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_PARENTHESES); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); + } + + return $type; + } elseif ($tokens->tryConsumeTokenType(Lexer::TOKEN_THIS_VARIABLE)) { + $type = new Ast\Type\ThisTypeNode(); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $type = $this->tryParseArrayOrOffsetAccess($tokens, $this->enrichWithAttributes( + $tokens, + $type, + $startLine, + $startIndex + )); + } + + return $type; + } else { + $currentTokenValue = $tokens->currentTokenValue(); + $tokens->pushSavePoint(); // because of ConstFetchNode + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_IDENTIFIER)) { + $type = new Ast\Type\IdentifierTypeNode($currentTokenValue); + + if (!$tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_COLON)) { + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET)) { + $type = $this->parseGeneric( + $tokens, + $this->enrichWithAttributes( + $tokens, + $type, + $startLine, + $startIndex + ) + ); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $type = $this->tryParseArrayOrOffsetAccess($tokens, $this->enrichWithAttributes( + $tokens, + $type, + $startLine, + $startIndex + )); + } + + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $type = $this->tryParseArrayOrOffsetAccess($tokens, $this->enrichWithAttributes( + $tokens, + $type, + $startLine, + $startIndex + )); + + } elseif (in_array($type->name, [ + Ast\Type\ArrayShapeNode::KIND_ARRAY, + Ast\Type\ArrayShapeNode::KIND_LIST, + Ast\Type\ArrayShapeNode::KIND_NON_EMPTY_ARRAY, + Ast\Type\ArrayShapeNode::KIND_NON_EMPTY_LIST, + 'object', + ], true) && $tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_CURLY_BRACKET) && !$tokens->isPrecededByHorizontalWhitespace()) { + if ($type->name === 'object') { + $type = $this->parseObjectShape($tokens); + } else { + $type = $this->parseArrayShape($tokens, $this->enrichWithAttributes( + $tokens, + $type, + $startLine, + $startIndex + ), $type->name); + } + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $type = $this->tryParseArrayOrOffsetAccess($tokens, $this->enrichWithAttributes( + $tokens, + $type, + $startLine, + $startIndex + )); + } + } + + return $type; + } else { + $tokens->rollback(); // because of ConstFetchNode + } + } else { + $tokens->dropSavePoint(); // because of ConstFetchNode + } + } + + $currentTokenValue = $tokens->currentTokenValue(); + $currentTokenType = $tokens->currentTokenType(); + $currentTokenOffset = $tokens->currentTokenOffset(); + $currentTokenLine = $tokens->currentTokenLine(); + + if ($this->constExprParser === null) { + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); + } + + try { + $constExpr = $this->constExprParser->parse($tokens, true); + if ($constExpr instanceof Ast\ConstExpr\ConstExprArrayNode) { + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); + } + + $type = $this->enrichWithAttributes( + $tokens, + new Ast\Type\ConstTypeNode($constExpr), + $startLine, + $startIndex + ); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $type = $this->tryParseArrayOrOffsetAccess($tokens, $type); + } + + return $type; + } catch (LogicException $e) { + throw new ParserException( + $currentTokenValue, + $currentTokenType, + $currentTokenOffset, + Lexer::TOKEN_IDENTIFIER, + null, + $currentTokenLine + ); + } + } + + + /** @phpstan-impure */ + private function tryParseCallable(TokenIterator $tokens, Ast\Type\IdentifierTypeNode $identifier, bool $hasTemplate): Ast\Type\TypeNode + { + try { + $tokens->pushSavePoint(); + $type = $this->parseCallable($tokens, $identifier, $hasTemplate); + $tokens->dropSavePoint(); + + } catch (ParserException $e) { + $tokens->rollback(); + $type = $identifier; + } + + return $type; + } + + + /** @phpstan-impure */ + private function tryParseArrayOrOffsetAccess(TokenIterator $tokens, Ast\Type\TypeNode $type): Ast\Type\TypeNode + { + $startLine = $type->getAttribute(Ast\Attribute::START_LINE); + $startIndex = $type->getAttribute(Ast\Attribute::START_INDEX); + try { + while ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET)) { + $tokens->pushSavePoint(); + + $canBeOffsetAccessType = !$tokens->isPrecededByHorizontalWhitespace(); + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_SQUARE_BRACKET); + + if ($canBeOffsetAccessType && !$tokens->isCurrentTokenType(Lexer::TOKEN_CLOSE_SQUARE_BRACKET)) { + $offset = $this->parse($tokens); + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_SQUARE_BRACKET); + $tokens->dropSavePoint(); + $type = new Ast\Type\OffsetAccessTypeNode($type, $offset); + + if ($startLine !== null && $startIndex !== null) { + $type = $this->enrichWithAttributes( + $tokens, + $type, + $startLine, + $startIndex + ); + } + } else { + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_SQUARE_BRACKET); + $tokens->dropSavePoint(); + $type = new Ast\Type\ArrayTypeNode($type); + + if ($startLine !== null && $startIndex !== null) { + $type = $this->enrichWithAttributes( + $tokens, + $type, + $startLine, + $startIndex + ); + } + } + } + + } catch (ParserException $e) { + $tokens->rollback(); + } + + return $type; + } + + + /** + * @phpstan-impure + * @param Ast\Type\ArrayShapeNode::KIND_* $kind + */ + private function parseArrayShape(TokenIterator $tokens, Ast\Type\TypeNode $type, string $kind): Ast\Type\ArrayShapeNode + { + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_CURLY_BRACKET); + + $items = []; + $sealed = true; + $unsealedType = null; + + do { + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET)) { + return new Ast\Type\ArrayShapeNode($items, true, $kind); + } + + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_VARIADIC)) { + $sealed = false; + + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + if ($tokens->isCurrentTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET)) { + if ($kind === Ast\Type\ArrayShapeNode::KIND_ARRAY) { + $unsealedType = $this->parseArrayShapeUnsealedType($tokens); + } else { + $unsealedType = $this->parseListShapeUnsealedType($tokens); + } + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + } + + $tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA); + break; + } + + $items[] = $this->parseArrayShapeItem($tokens); + + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + } while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)); + + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET); + + return new Ast\Type\ArrayShapeNode($items, $sealed, $kind, $unsealedType); + } + + + /** @phpstan-impure */ + private function parseArrayShapeItem(TokenIterator $tokens): Ast\Type\ArrayShapeItemNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + try { + $tokens->pushSavePoint(); + $key = $this->parseArrayShapeKey($tokens); + $optional = $tokens->tryConsumeTokenType(Lexer::TOKEN_NULLABLE); + $tokens->consumeTokenType(Lexer::TOKEN_COLON); + $value = $this->parse($tokens); + $tokens->dropSavePoint(); + + return $this->enrichWithAttributes( + $tokens, + new Ast\Type\ArrayShapeItemNode($key, $optional, $value), + $startLine, + $startIndex + ); + } catch (ParserException $e) { + $tokens->rollback(); + $value = $this->parse($tokens); + + return $this->enrichWithAttributes( + $tokens, + new Ast\Type\ArrayShapeItemNode(null, false, $value), + $startLine, + $startIndex + ); + } + } + + /** + * @phpstan-impure + * @return Ast\ConstExpr\ConstExprIntegerNode|Ast\ConstExpr\ConstExprStringNode|Ast\Type\IdentifierTypeNode + */ + private function parseArrayShapeKey(TokenIterator $tokens) + { + $startIndex = $tokens->currentTokenIndex(); + $startLine = $tokens->currentTokenLine(); + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_INTEGER)) { + $key = new Ast\ConstExpr\ConstExprIntegerNode(str_replace('_', '', $tokens->currentTokenValue())); + $tokens->next(); + + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_SINGLE_QUOTED_STRING)) { + if ($this->quoteAwareConstExprString) { + $key = new Ast\ConstExpr\QuoteAwareConstExprStringNode(StringUnescaper::unescapeString($tokens->currentTokenValue()), Ast\ConstExpr\QuoteAwareConstExprStringNode::SINGLE_QUOTED); + } else { + $key = new Ast\ConstExpr\ConstExprStringNode(trim($tokens->currentTokenValue(), "'")); + } + $tokens->next(); + + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_QUOTED_STRING)) { + if ($this->quoteAwareConstExprString) { + $key = new Ast\ConstExpr\QuoteAwareConstExprStringNode(StringUnescaper::unescapeString($tokens->currentTokenValue()), Ast\ConstExpr\QuoteAwareConstExprStringNode::DOUBLE_QUOTED); + } else { + $key = new Ast\ConstExpr\ConstExprStringNode(trim($tokens->currentTokenValue(), '"')); + } + + $tokens->next(); + + } else { + $key = new Ast\Type\IdentifierTypeNode($tokens->currentTokenValue()); + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + } + + return $this->enrichWithAttributes( + $tokens, + $key, + $startLine, + $startIndex + ); + } + + /** + * @phpstan-impure + */ + private function parseArrayShapeUnsealedType(TokenIterator $tokens): Ast\Type\ArrayShapeUnsealedTypeNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + $valueType = $this->parse($tokens); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + $keyType = null; + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)) { + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + $keyType = $valueType; + $valueType = $this->parse($tokens); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + } + + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET); + + return $this->enrichWithAttributes( + $tokens, + new Ast\Type\ArrayShapeUnsealedTypeNode($valueType, $keyType), + $startLine, + $startIndex + ); + } + + /** + * @phpstan-impure + */ + private function parseListShapeUnsealedType(TokenIterator $tokens): Ast\Type\ArrayShapeUnsealedTypeNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_ANGLE_BRACKET); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + $valueType = $this->parse($tokens); + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_ANGLE_BRACKET); + + return $this->enrichWithAttributes( + $tokens, + new Ast\Type\ArrayShapeUnsealedTypeNode($valueType, null), + $startLine, + $startIndex + ); + } + + /** + * @phpstan-impure + */ + private function parseObjectShape(TokenIterator $tokens): Ast\Type\ObjectShapeNode + { + $tokens->consumeTokenType(Lexer::TOKEN_OPEN_CURLY_BRACKET); + + $items = []; + + do { + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + + if ($tokens->tryConsumeTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET)) { + return new Ast\Type\ObjectShapeNode($items); + } + + $items[] = $this->parseObjectShapeItem($tokens); + + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + } while ($tokens->tryConsumeTokenType(Lexer::TOKEN_COMMA)); + + $tokens->tryConsumeTokenType(Lexer::TOKEN_PHPDOC_EOL); + $tokens->consumeTokenType(Lexer::TOKEN_CLOSE_CURLY_BRACKET); + + return new Ast\Type\ObjectShapeNode($items); + } + + /** @phpstan-impure */ + private function parseObjectShapeItem(TokenIterator $tokens): Ast\Type\ObjectShapeItemNode + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + $key = $this->parseObjectShapeKey($tokens); + $optional = $tokens->tryConsumeTokenType(Lexer::TOKEN_NULLABLE); + $tokens->consumeTokenType(Lexer::TOKEN_COLON); + $value = $this->parse($tokens); + + return $this->enrichWithAttributes($tokens, new Ast\Type\ObjectShapeItemNode($key, $optional, $value), $startLine, $startIndex); + } + + /** + * @phpstan-impure + * @return Ast\ConstExpr\ConstExprStringNode|Ast\Type\IdentifierTypeNode + */ + private function parseObjectShapeKey(TokenIterator $tokens) + { + $startLine = $tokens->currentTokenLine(); + $startIndex = $tokens->currentTokenIndex(); + + if ($tokens->isCurrentTokenType(Lexer::TOKEN_SINGLE_QUOTED_STRING)) { + if ($this->quoteAwareConstExprString) { + $key = new Ast\ConstExpr\QuoteAwareConstExprStringNode(StringUnescaper::unescapeString($tokens->currentTokenValue()), Ast\ConstExpr\QuoteAwareConstExprStringNode::SINGLE_QUOTED); + } else { + $key = new Ast\ConstExpr\ConstExprStringNode(trim($tokens->currentTokenValue(), "'")); + } + $tokens->next(); + + } elseif ($tokens->isCurrentTokenType(Lexer::TOKEN_DOUBLE_QUOTED_STRING)) { + if ($this->quoteAwareConstExprString) { + $key = new Ast\ConstExpr\QuoteAwareConstExprStringNode(StringUnescaper::unescapeString($tokens->currentTokenValue()), Ast\ConstExpr\QuoteAwareConstExprStringNode::DOUBLE_QUOTED); + } else { + $key = new Ast\ConstExpr\ConstExprStringNode(trim($tokens->currentTokenValue(), '"')); + } + $tokens->next(); + + } else { + $key = new Ast\Type\IdentifierTypeNode($tokens->currentTokenValue()); + $tokens->consumeTokenType(Lexer::TOKEN_IDENTIFIER); + } + + return $this->enrichWithAttributes($tokens, $key, $startLine, $startIndex); + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Printer/DiffElem.php b/vendor/phpstan/phpdoc-parser/src/Printer/DiffElem.php new file mode 100644 index 00000000..2684dfc7 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Printer/DiffElem.php @@ -0,0 +1,44 @@ +type = $type; + $this->old = $old; + $this->new = $new; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Printer/Differ.php b/vendor/phpstan/phpdoc-parser/src/Printer/Differ.php new file mode 100644 index 00000000..ab10be59 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Printer/Differ.php @@ -0,0 +1,196 @@ +isEqual = $isEqual; + } + + /** + * Calculate diff (edit script) from $old to $new. + * + * @param T[] $old Original array + * @param T[] $new New array + * + * @return DiffElem[] Diff (edit script) + */ + public function diff(array $old, array $new): array + { + [$trace, $x, $y] = $this->calculateTrace($old, $new); + return $this->extractDiff($trace, $x, $y, $old, $new); + } + + /** + * Calculate diff, including "replace" operations. + * + * If a sequence of remove operations is followed by the same number of add operations, these + * will be coalesced into replace operations. + * + * @param T[] $old Original array + * @param T[] $new New array + * + * @return DiffElem[] Diff (edit script), including replace operations + */ + public function diffWithReplacements(array $old, array $new): array + { + return $this->coalesceReplacements($this->diff($old, $new)); + } + + /** + * @param T[] $old + * @param T[] $new + * @return array{array>, int, int} + */ + private function calculateTrace(array $old, array $new): array + { + $n = count($old); + $m = count($new); + $max = $n + $m; + $v = [1 => 0]; + $trace = []; + for ($d = 0; $d <= $max; $d++) { + $trace[] = $v; + for ($k = -$d; $k <= $d; $k += 2) { + if ($k === -$d || ($k !== $d && $v[$k - 1] < $v[$k + 1])) { + $x = $v[$k + 1]; + } else { + $x = $v[$k - 1] + 1; + } + + $y = $x - $k; + while ($x < $n && $y < $m && ($this->isEqual)($old[$x], $new[$y])) { + $x++; + $y++; + } + + $v[$k] = $x; + if ($x >= $n && $y >= $m) { + return [$trace, $x, $y]; + } + } + } + throw new Exception('Should not happen'); + } + + /** + * @param array> $trace + * @param T[] $old + * @param T[] $new + * @return DiffElem[] + */ + private function extractDiff(array $trace, int $x, int $y, array $old, array $new): array + { + $result = []; + for ($d = count($trace) - 1; $d >= 0; $d--) { + $v = $trace[$d]; + $k = $x - $y; + + if ($k === -$d || ($k !== $d && $v[$k - 1] < $v[$k + 1])) { + $prevK = $k + 1; + } else { + $prevK = $k - 1; + } + + $prevX = $v[$prevK]; + $prevY = $prevX - $prevK; + + while ($x > $prevX && $y > $prevY) { + $result[] = new DiffElem(DiffElem::TYPE_KEEP, $old[$x - 1], $new[$y - 1]); + $x--; + $y--; + } + + if ($d === 0) { + break; + } + + while ($x > $prevX) { + $result[] = new DiffElem(DiffElem::TYPE_REMOVE, $old[$x - 1], null); + $x--; + } + + while ($y > $prevY) { + $result[] = new DiffElem(DiffElem::TYPE_ADD, null, $new[$y - 1]); + $y--; + } + } + return array_reverse($result); + } + + /** + * Coalesce equal-length sequences of remove+add into a replace operation. + * + * @param DiffElem[] $diff + * @return DiffElem[] + */ + private function coalesceReplacements(array $diff): array + { + $newDiff = []; + $c = count($diff); + for ($i = 0; $i < $c; $i++) { + $diffType = $diff[$i]->type; + if ($diffType !== DiffElem::TYPE_REMOVE) { + $newDiff[] = $diff[$i]; + continue; + } + + $j = $i; + while ($j < $c && $diff[$j]->type === DiffElem::TYPE_REMOVE) { + $j++; + } + + $k = $j; + while ($k < $c && $diff[$k]->type === DiffElem::TYPE_ADD) { + $k++; + } + + if ($j - $i === $k - $j) { + $len = $j - $i; + for ($n = 0; $n < $len; $n++) { + $newDiff[] = new DiffElem( + DiffElem::TYPE_REPLACE, + $diff[$i + $n]->old, + $diff[$j + $n]->new + ); + } + } else { + for (; $i < $k; $i++) { + $newDiff[] = $diff[$i]; + } + } + $i = $k - 1; + } + return $newDiff; + } + +} diff --git a/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php b/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php new file mode 100644 index 00000000..f6665987 --- /dev/null +++ b/vendor/phpstan/phpdoc-parser/src/Printer/Printer.php @@ -0,0 +1,870 @@ + */ + private $differ; + + /** + * Map From "{$class}->{$subNode}" to string that should be inserted + * between elements of this list subnode + * + * @var array + */ + private $listInsertionMap = [ + PhpDocNode::class . '->children' => "\n * ", + UnionTypeNode::class . '->types' => '|', + IntersectionTypeNode::class . '->types' => '&', + ArrayShapeNode::class . '->items' => ', ', + ObjectShapeNode::class . '->items' => ', ', + CallableTypeNode::class . '->parameters' => ', ', + CallableTypeNode::class . '->templateTypes' => ', ', + GenericTypeNode::class . '->genericTypes' => ', ', + ConstExprArrayNode::class . '->items' => ', ', + MethodTagValueNode::class . '->parameters' => ', ', + DoctrineArray::class . '->items' => ', ', + DoctrineAnnotation::class . '->arguments' => ', ', + ]; + + /** + * [$find, $extraLeft, $extraRight] + * + * @var array + */ + private $emptyListInsertionMap = [ + CallableTypeNode::class . '->parameters' => ['(', '', ''], + ArrayShapeNode::class . '->items' => ['{', '', ''], + ObjectShapeNode::class . '->items' => ['{', '', ''], + DoctrineArray::class . '->items' => ['{', '', ''], + DoctrineAnnotation::class . '->arguments' => ['(', '', ''], + ]; + + /** @var array>> */ + private $parenthesesMap = [ + CallableTypeNode::class . '->returnType' => [ + CallableTypeNode::class, + UnionTypeNode::class, + IntersectionTypeNode::class, + ], + ArrayTypeNode::class . '->type' => [ + CallableTypeNode::class, + UnionTypeNode::class, + IntersectionTypeNode::class, + ConstTypeNode::class, + NullableTypeNode::class, + ], + OffsetAccessTypeNode::class . '->type' => [ + CallableTypeNode::class, + UnionTypeNode::class, + IntersectionTypeNode::class, + NullableTypeNode::class, + ], + ]; + + /** @var array>> */ + private $parenthesesListMap = [ + IntersectionTypeNode::class . '->types' => [ + IntersectionTypeNode::class, + UnionTypeNode::class, + NullableTypeNode::class, + ], + UnionTypeNode::class . '->types' => [ + IntersectionTypeNode::class, + UnionTypeNode::class, + NullableTypeNode::class, + ], + ]; + + public function printFormatPreserving(PhpDocNode $node, PhpDocNode $originalNode, TokenIterator $originalTokens): string + { + $this->differ = new Differ(static function ($a, $b) { + if ($a instanceof Node && $b instanceof Node) { + return $a === $b->getAttribute(Attribute::ORIGINAL_NODE); + } + + return false; + }); + + $tokenIndex = 0; + $result = $this->printArrayFormatPreserving( + $node->children, + $originalNode->children, + $originalTokens, + $tokenIndex, + PhpDocNode::class, + 'children' + ); + if ($result !== null) { + return $result . $originalTokens->getContentBetween($tokenIndex, $originalTokens->getTokenCount()); + } + + return $this->print($node); + } + + public function print(Node $node): string + { + if ($node instanceof PhpDocNode) { + return "/**\n *" . implode("\n *", array_map( + function (PhpDocChildNode $child): string { + $s = $this->print($child); + return $s === '' ? '' : ' ' . $s; + }, + $node->children + )) . "\n */"; + } + if ($node instanceof PhpDocTextNode) { + return $node->text; + } + if ($node instanceof PhpDocTagNode) { + if ($node->value instanceof DoctrineTagValueNode) { + return $this->print($node->value); + } + + return trim(sprintf('%s %s', $node->name, $this->print($node->value))); + } + if ($node instanceof PhpDocTagValueNode) { + return $this->printTagValue($node); + } + if ($node instanceof TypeNode) { + return $this->printType($node); + } + if ($node instanceof ConstExprNode) { + return $this->printConstExpr($node); + } + if ($node instanceof MethodTagValueParameterNode) { + $type = $node->type !== null ? $this->print($node->type) . ' ' : ''; + $isReference = $node->isReference ? '&' : ''; + $isVariadic = $node->isVariadic ? '...' : ''; + $default = $node->defaultValue !== null ? ' = ' . $this->print($node->defaultValue) : ''; + return "{$type}{$isReference}{$isVariadic}{$node->parameterName}{$default}"; + } + if ($node instanceof CallableTypeParameterNode) { + $type = $this->print($node->type) . ' '; + $isReference = $node->isReference ? '&' : ''; + $isVariadic = $node->isVariadic ? '...' : ''; + $isOptional = $node->isOptional ? '=' : ''; + return trim("{$type}{$isReference}{$isVariadic}{$node->parameterName}") . $isOptional; + } + if ($node instanceof ArrayShapeUnsealedTypeNode) { + if ($node->keyType !== null) { + return sprintf('<%s, %s>', $this->printType($node->keyType), $this->printType($node->valueType)); + } + return sprintf('<%s>', $this->printType($node->valueType)); + } + if ($node instanceof DoctrineAnnotation) { + return (string) $node; + } + if ($node instanceof DoctrineArgument) { + return (string) $node; + } + if ($node instanceof DoctrineArray) { + return (string) $node; + } + if ($node instanceof DoctrineArrayItem) { + return (string) $node; + } + + throw new LogicException(sprintf('Unknown node type %s', get_class($node))); + } + + private function printTagValue(PhpDocTagValueNode $node): string + { + // only nodes that contain another node are handled here + // the rest falls back on (string) $node + + if ($node instanceof AssertTagMethodValueNode) { + $isNegated = $node->isNegated ? '!' : ''; + $isEquality = $node->isEquality ? '=' : ''; + $type = $this->printType($node->type); + return trim("{$isNegated}{$isEquality}{$type} {$node->parameter}->{$node->method}() {$node->description}"); + } + if ($node instanceof AssertTagPropertyValueNode) { + $isNegated = $node->isNegated ? '!' : ''; + $isEquality = $node->isEquality ? '=' : ''; + $type = $this->printType($node->type); + return trim("{$isNegated}{$isEquality}{$type} {$node->parameter}->{$node->property} {$node->description}"); + } + if ($node instanceof AssertTagValueNode) { + $isNegated = $node->isNegated ? '!' : ''; + $isEquality = $node->isEquality ? '=' : ''; + $type = $this->printType($node->type); + return trim("{$isNegated}{$isEquality}{$type} {$node->parameter} {$node->description}"); + } + if ($node instanceof ExtendsTagValueNode || $node instanceof ImplementsTagValueNode) { + $type = $this->printType($node->type); + return trim("{$type} {$node->description}"); + } + if ($node instanceof MethodTagValueNode) { + $static = $node->isStatic ? 'static ' : ''; + $returnType = $node->returnType !== null ? $this->printType($node->returnType) . ' ' : ''; + $parameters = implode(', ', array_map(function (MethodTagValueParameterNode $parameter): string { + return $this->print($parameter); + }, $node->parameters)); + $description = $node->description !== '' ? " {$node->description}" : ''; + $templateTypes = count($node->templateTypes) > 0 ? '<' . implode(', ', array_map(function (TemplateTagValueNode $templateTag): string { + return $this->print($templateTag); + }, $node->templateTypes)) . '>' : ''; + return "{$static}{$returnType}{$node->methodName}{$templateTypes}({$parameters}){$description}"; + } + if ($node instanceof MixinTagValueNode) { + $type = $this->printType($node->type); + return trim("{$type} {$node->description}"); + } + if ($node instanceof RequireExtendsTagValueNode) { + $type = $this->printType($node->type); + return trim("{$type} {$node->description}"); + } + if ($node instanceof RequireImplementsTagValueNode) { + $type = $this->printType($node->type); + return trim("{$type} {$node->description}"); + } + if ($node instanceof ParamOutTagValueNode) { + $type = $this->printType($node->type); + return trim("{$type} {$node->parameterName} {$node->description}"); + } + if ($node instanceof ParamTagValueNode) { + $reference = $node->isReference ? '&' : ''; + $variadic = $node->isVariadic ? '...' : ''; + $type = $this->printType($node->type); + return trim("{$type} {$reference}{$variadic}{$node->parameterName} {$node->description}"); + } + if ($node instanceof ParamImmediatelyInvokedCallableTagValueNode) { + return trim("{$node->parameterName} {$node->description}"); + } + if ($node instanceof ParamLaterInvokedCallableTagValueNode) { + return trim("{$node->parameterName} {$node->description}"); + } + if ($node instanceof ParamClosureThisTagValueNode) { + return trim("{$node->type} {$node->parameterName} {$node->description}"); + } + if ($node instanceof PureUnlessCallableIsImpureTagValueNode) { + return trim("{$node->parameterName} {$node->description}"); + } + if ($node instanceof PropertyTagValueNode) { + $type = $this->printType($node->type); + return trim("{$type} {$node->propertyName} {$node->description}"); + } + if ($node instanceof ReturnTagValueNode) { + $type = $this->printType($node->type); + return trim("{$type} {$node->description}"); + } + if ($node instanceof SelfOutTagValueNode) { + $type = $this->printType($node->type); + return trim($type . ' ' . $node->description); + } + if ($node instanceof TemplateTagValueNode) { + $upperBound = $node->bound !== null ? ' of ' . $this->printType($node->bound) : ''; + $lowerBound = $node->lowerBound !== null ? ' super ' . $this->printType($node->lowerBound) : ''; + $default = $node->default !== null ? ' = ' . $this->printType($node->default) : ''; + return trim("{$node->name}{$upperBound}{$lowerBound}{$default} {$node->description}"); + } + if ($node instanceof ThrowsTagValueNode) { + $type = $this->printType($node->type); + return trim("{$type} {$node->description}"); + } + if ($node instanceof TypeAliasImportTagValueNode) { + return trim( + "{$node->importedAlias} from " . $this->printType($node->importedFrom) + . ($node->importedAs !== null ? " as {$node->importedAs}" : '') + ); + } + if ($node instanceof TypeAliasTagValueNode) { + $type = $this->printType($node->type); + return trim("{$node->alias} {$type}"); + } + if ($node instanceof UsesTagValueNode) { + $type = $this->printType($node->type); + return trim("{$type} {$node->description}"); + } + if ($node instanceof VarTagValueNode) { + $type = $this->printType($node->type); + return trim("{$type} " . trim("{$node->variableName} {$node->description}")); + } + + return (string) $node; + } + + private function printType(TypeNode $node): string + { + if ($node instanceof ArrayShapeNode) { + $items = array_map(function (ArrayShapeItemNode $item): string { + return $this->printType($item); + }, $node->items); + + if (! $node->sealed) { + $items[] = '...' . ($node->unsealedType === null ? '' : $this->print($node->unsealedType)); + } + + return $node->kind . '{' . implode(', ', $items) . '}'; + } + if ($node instanceof ArrayShapeItemNode) { + if ($node->keyName !== null) { + return sprintf( + '%s%s: %s', + $this->print($node->keyName), + $node->optional ? '?' : '', + $this->printType($node->valueType) + ); + } + + return $this->printType($node->valueType); + } + if ($node instanceof ArrayTypeNode) { + return $this->printOffsetAccessType($node->type) . '[]'; + } + if ($node instanceof CallableTypeNode) { + if ($node->returnType instanceof CallableTypeNode || $node->returnType instanceof UnionTypeNode || $node->returnType instanceof IntersectionTypeNode) { + $returnType = $this->wrapInParentheses($node->returnType); + } else { + $returnType = $this->printType($node->returnType); + } + $template = $node->templateTypes !== [] + ? '<' . implode(', ', array_map(function (TemplateTagValueNode $templateNode): string { + return $this->print($templateNode); + }, $node->templateTypes)) . '>' + : ''; + $parameters = implode(', ', array_map(function (CallableTypeParameterNode $parameterNode): string { + return $this->print($parameterNode); + }, $node->parameters)); + return "{$node->identifier}{$template}({$parameters}): {$returnType}"; + } + if ($node instanceof ConditionalTypeForParameterNode) { + return sprintf( + '(%s %s %s ? %s : %s)', + $node->parameterName, + $node->negated ? 'is not' : 'is', + $this->printType($node->targetType), + $this->printType($node->if), + $this->printType($node->else) + ); + } + if ($node instanceof ConditionalTypeNode) { + return sprintf( + '(%s %s %s ? %s : %s)', + $this->printType($node->subjectType), + $node->negated ? 'is not' : 'is', + $this->printType($node->targetType), + $this->printType($node->if), + $this->printType($node->else) + ); + } + if ($node instanceof ConstTypeNode) { + return $this->printConstExpr($node->constExpr); + } + if ($node instanceof GenericTypeNode) { + $genericTypes = []; + + foreach ($node->genericTypes as $index => $type) { + $variance = $node->variances[$index] ?? GenericTypeNode::VARIANCE_INVARIANT; + if ($variance === GenericTypeNode::VARIANCE_INVARIANT) { + $genericTypes[] = $this->printType($type); + } elseif ($variance === GenericTypeNode::VARIANCE_BIVARIANT) { + $genericTypes[] = '*'; + } else { + $genericTypes[] = sprintf('%s %s', $variance, $this->print($type)); + } + } + + return $node->type . '<' . implode(', ', $genericTypes) . '>'; + } + if ($node instanceof IdentifierTypeNode) { + return $node->name; + } + if ($node instanceof IntersectionTypeNode || $node instanceof UnionTypeNode) { + $items = []; + foreach ($node->types as $type) { + if ( + $type instanceof IntersectionTypeNode + || $type instanceof UnionTypeNode + || $type instanceof NullableTypeNode + ) { + $items[] = $this->wrapInParentheses($type); + continue; + } + + $items[] = $this->printType($type); + } + + return implode($node instanceof IntersectionTypeNode ? '&' : '|', $items); + } + if ($node instanceof InvalidTypeNode) { + return (string) $node; + } + if ($node instanceof NullableTypeNode) { + if ($node->type instanceof IntersectionTypeNode || $node->type instanceof UnionTypeNode) { + return '?(' . $this->printType($node->type) . ')'; + } + + return '?' . $this->printType($node->type); + } + if ($node instanceof ObjectShapeNode) { + $items = array_map(function (ObjectShapeItemNode $item): string { + return $this->printType($item); + }, $node->items); + + return 'object{' . implode(', ', $items) . '}'; + } + if ($node instanceof ObjectShapeItemNode) { + if ($node->keyName !== null) { + return sprintf( + '%s%s: %s', + $this->print($node->keyName), + $node->optional ? '?' : '', + $this->printType($node->valueType) + ); + } + + return $this->printType($node->valueType); + } + if ($node instanceof OffsetAccessTypeNode) { + return $this->printOffsetAccessType($node->type) . '[' . $this->printType($node->offset) . ']'; + } + if ($node instanceof ThisTypeNode) { + return (string) $node; + } + + throw new LogicException(sprintf('Unknown node type %s', get_class($node))); + } + + private function wrapInParentheses(TypeNode $node): string + { + return '(' . $this->printType($node) . ')'; + } + + private function printOffsetAccessType(TypeNode $type): string + { + if ( + $type instanceof CallableTypeNode + || $type instanceof UnionTypeNode + || $type instanceof IntersectionTypeNode + || $type instanceof NullableTypeNode + ) { + return $this->wrapInParentheses($type); + } + + return $this->printType($type); + } + + private function printConstExpr(ConstExprNode $node): string + { + // this is fine - ConstExprNode classes do not contain nodes that need smart printer logic + return (string) $node; + } + + /** + * @param Node[] $nodes + * @param Node[] $originalNodes + */ + private function printArrayFormatPreserving(array $nodes, array $originalNodes, TokenIterator $originalTokens, int &$tokenIndex, string $parentNodeClass, string $subNodeName): ?string + { + $diff = $this->differ->diffWithReplacements($originalNodes, $nodes); + $mapKey = $parentNodeClass . '->' . $subNodeName; + $insertStr = $this->listInsertionMap[$mapKey] ?? null; + $result = ''; + $beforeFirstKeepOrReplace = true; + $delayedAdd = []; + + $insertNewline = false; + [$isMultiline, $beforeAsteriskIndent, $afterAsteriskIndent] = $this->isMultiline($tokenIndex, $originalNodes, $originalTokens); + + if ($insertStr === "\n * ") { + $insertStr = sprintf('%s%s*%s', $originalTokens->getDetectedNewline() ?? "\n", $beforeAsteriskIndent, $afterAsteriskIndent); + } + + foreach ($diff as $i => $diffElem) { + $diffType = $diffElem->type; + $newNode = $diffElem->new; + $originalNode = $diffElem->old; + if ($diffType === DiffElem::TYPE_KEEP || $diffType === DiffElem::TYPE_REPLACE) { + $beforeFirstKeepOrReplace = false; + if (!$newNode instanceof Node || !$originalNode instanceof Node) { + return null; + } + $itemStartPos = $originalNode->getAttribute(Attribute::START_INDEX); + $itemEndPos = $originalNode->getAttribute(Attribute::END_INDEX); + if ($itemStartPos < 0 || $itemEndPos < 0 || $itemStartPos < $tokenIndex) { + throw new LogicException(); + } + + $result .= $originalTokens->getContentBetween($tokenIndex, $itemStartPos); + + if (count($delayedAdd) > 0) { + foreach ($delayedAdd as $delayedAddNode) { + $parenthesesNeeded = isset($this->parenthesesListMap[$mapKey]) + && in_array(get_class($delayedAddNode), $this->parenthesesListMap[$mapKey], true); + if ($parenthesesNeeded) { + $result .= '('; + } + $result .= $this->printNodeFormatPreserving($delayedAddNode, $originalTokens); + if ($parenthesesNeeded) { + $result .= ')'; + } + + if ($insertNewline) { + $result .= $insertStr . sprintf('%s%s*%s', $originalTokens->getDetectedNewline() ?? "\n", $beforeAsteriskIndent, $afterAsteriskIndent); + } else { + $result .= $insertStr; + } + } + + $delayedAdd = []; + } + + $parenthesesNeeded = isset($this->parenthesesListMap[$mapKey]) + && in_array(get_class($newNode), $this->parenthesesListMap[$mapKey], true) + && !in_array(get_class($originalNode), $this->parenthesesListMap[$mapKey], true); + $addParentheses = $parenthesesNeeded && !$originalTokens->hasParentheses($itemStartPos, $itemEndPos); + if ($addParentheses) { + $result .= '('; + } + + $result .= $this->printNodeFormatPreserving($newNode, $originalTokens); + if ($addParentheses) { + $result .= ')'; + } + $tokenIndex = $itemEndPos + 1; + + } elseif ($diffType === DiffElem::TYPE_ADD) { + if ($insertStr === null) { + return null; + } + if (!$newNode instanceof Node) { + return null; + } + + if ($insertStr === ', ' && $isMultiline) { + $insertStr = ','; + $insertNewline = true; + } + + if ($beforeFirstKeepOrReplace) { + // Will be inserted at the next "replace" or "keep" element + $delayedAdd[] = $newNode; + continue; + } + + $itemEndPos = $tokenIndex - 1; + if ($insertNewline) { + $result .= $insertStr . sprintf('%s%s*%s', $originalTokens->getDetectedNewline() ?? "\n", $beforeAsteriskIndent, $afterAsteriskIndent); + } else { + $result .= $insertStr; + } + + $parenthesesNeeded = isset($this->parenthesesListMap[$mapKey]) + && in_array(get_class($newNode), $this->parenthesesListMap[$mapKey], true); + if ($parenthesesNeeded) { + $result .= '('; + } + + $result .= $this->printNodeFormatPreserving($newNode, $originalTokens); + if ($parenthesesNeeded) { + $result .= ')'; + } + + $tokenIndex = $itemEndPos + 1; + + } elseif ($diffType === DiffElem::TYPE_REMOVE) { + if (!$originalNode instanceof Node) { + return null; + } + + $itemStartPos = $originalNode->getAttribute(Attribute::START_INDEX); + $itemEndPos = $originalNode->getAttribute(Attribute::END_INDEX); + if ($itemStartPos < 0 || $itemEndPos < 0) { + throw new LogicException(); + } + + if ($i === 0) { + // If we're removing from the start, keep the tokens before the node and drop those after it, + // instead of the other way around. + $originalTokensArray = $originalTokens->getTokens(); + for ($j = $tokenIndex; $j < $itemStartPos; $j++) { + if ($originalTokensArray[$j][Lexer::TYPE_OFFSET] === Lexer::TOKEN_PHPDOC_EOL) { + break; + } + $result .= $originalTokensArray[$j][Lexer::VALUE_OFFSET]; + } + } + + $tokenIndex = $itemEndPos + 1; + } + } + + if (count($delayedAdd) > 0) { + if (!isset($this->emptyListInsertionMap[$mapKey])) { + return null; + } + + [$findToken, $extraLeft, $extraRight] = $this->emptyListInsertionMap[$mapKey]; + if ($findToken !== null) { + $originalTokensArray = $originalTokens->getTokens(); + for (; $tokenIndex < count($originalTokensArray); $tokenIndex++) { + $result .= $originalTokensArray[$tokenIndex][Lexer::VALUE_OFFSET]; + if ($originalTokensArray[$tokenIndex][Lexer::VALUE_OFFSET] !== $findToken) { + continue; + } + + $tokenIndex++; + break; + } + } + $first = true; + $result .= $extraLeft; + foreach ($delayedAdd as $delayedAddNode) { + if (!$first) { + $result .= $insertStr; + if ($insertNewline) { + $result .= sprintf('%s%s*%s', $originalTokens->getDetectedNewline() ?? "\n", $beforeAsteriskIndent, $afterAsteriskIndent); + } + } + + $result .= $this->printNodeFormatPreserving($delayedAddNode, $originalTokens); + $first = false; + } + $result .= $extraRight; + } + + return $result; + } + + /** + * @param Node[] $nodes + * @return array{bool, string, string} + */ + private function isMultiline(int $initialIndex, array $nodes, TokenIterator $originalTokens): array + { + $isMultiline = count($nodes) > 1; + $pos = $initialIndex; + $allText = ''; + /** @var Node|null $node */ + foreach ($nodes as $node) { + if (!$node instanceof Node) { + continue; + } + + $endPos = $node->getAttribute(Attribute::END_INDEX) + 1; + $text = $originalTokens->getContentBetween($pos, $endPos); + $allText .= $text; + if (strpos($text, "\n") === false) { + // We require that a newline is present between *every* item. If the formatting + // is inconsistent, with only some items having newlines, we don't consider it + // as multiline + $isMultiline = false; + } + $pos = $endPos; + } + + $c = preg_match_all('~\n(?[\\x09\\x20]*)\*(?\\x20*)~', $allText, $matches, PREG_SET_ORDER); + if ($c === 0) { + return [$isMultiline, '', '']; + } + + $before = ''; + $after = ''; + foreach ($matches as $match) { + if (strlen($match['before']) > strlen($before)) { + $before = $match['before']; + } + if (strlen($match['after']) <= strlen($after)) { + continue; + } + + $after = $match['after']; + } + + return [$isMultiline, $before, $after]; + } + + private function printNodeFormatPreserving(Node $node, TokenIterator $originalTokens): string + { + /** @var Node|null $originalNode */ + $originalNode = $node->getAttribute(Attribute::ORIGINAL_NODE); + if ($originalNode === null) { + return $this->print($node); + } + + $class = get_class($node); + if ($class !== get_class($originalNode)) { + throw new LogicException(); + } + + $startPos = $originalNode->getAttribute(Attribute::START_INDEX); + $endPos = $originalNode->getAttribute(Attribute::END_INDEX); + if ($startPos < 0 || $endPos < 0) { + throw new LogicException(); + } + + $result = ''; + $pos = $startPos; + $subNodeNames = array_keys(get_object_vars($node)); + foreach ($subNodeNames as $subNodeName) { + $subNode = $node->$subNodeName; + $origSubNode = $originalNode->$subNodeName; + + if ( + (!$subNode instanceof Node && $subNode !== null) + || (!$origSubNode instanceof Node && $origSubNode !== null) + ) { + if ($subNode === $origSubNode) { + // Unchanged, can reuse old code + continue; + } + + if (is_array($subNode) && is_array($origSubNode)) { + // Array subnode changed, we might be able to reconstruct it + $listResult = $this->printArrayFormatPreserving( + $subNode, + $origSubNode, + $originalTokens, + $pos, + $class, + $subNodeName + ); + + if ($listResult === null) { + return $this->print($node); + } + + $result .= $listResult; + continue; + } + + return $this->print($node); + } + + if ($origSubNode === null) { + if ($subNode === null) { + // Both null, nothing to do + continue; + } + + return $this->print($node); + } + + $subStartPos = $origSubNode->getAttribute(Attribute::START_INDEX); + $subEndPos = $origSubNode->getAttribute(Attribute::END_INDEX); + if ($subStartPos < 0 || $subEndPos < 0) { + throw new LogicException(); + } + + if ($subEndPos < $subStartPos) { + return $this->print($node); + } + + if ($subNode === null) { + return $this->print($node); + } + + $result .= $originalTokens->getContentBetween($pos, $subStartPos); + $mapKey = get_class($node) . '->' . $subNodeName; + $parenthesesNeeded = isset($this->parenthesesMap[$mapKey]) + && in_array(get_class($subNode), $this->parenthesesMap[$mapKey], true); + + if ($subNode->getAttribute(Attribute::ORIGINAL_NODE) !== null) { + $parenthesesNeeded = $parenthesesNeeded + && !in_array(get_class($subNode->getAttribute(Attribute::ORIGINAL_NODE)), $this->parenthesesMap[$mapKey], true); + } + + $addParentheses = $parenthesesNeeded && !$originalTokens->hasParentheses($subStartPos, $subEndPos); + if ($addParentheses) { + $result .= '('; + } + + $result .= $this->printNodeFormatPreserving($subNode, $originalTokens); + if ($addParentheses) { + $result .= ')'; + } + + $pos = $subEndPos + 1; + } + + return $result . $originalTokens->getContentBetween($pos, $endPos + 1); + } + +} diff --git a/vendor/phpunit/php-code-coverage/.gitattributes b/vendor/phpunit/php-code-coverage/.gitattributes new file mode 100644 index 00000000..461090b7 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/.gitattributes @@ -0,0 +1 @@ +*.php diff=php diff --git a/vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md b/vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md new file mode 100644 index 00000000..33392505 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/.github/CONTRIBUTING.md @@ -0,0 +1 @@ +Please refer to [https://github.com/sebastianbergmann/phpunit/blob/master/CONTRIBUTING.md](https://github.com/sebastianbergmann/phpunit/blob/master/.github/CONTRIBUTING.md) for details on how to contribute to this project. diff --git a/vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md b/vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..dc8e3b02 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,18 @@ +| Q | A +| --------------------------| --------------- +| php-code-coverage version | x.y.z +| PHP version | x.y.z +| Driver | Xdebug / PHPDBG +| Xdebug version (if used) | x.y.z +| Installation Method | Composer / PHPUnit PHAR +| Usage Method | PHPUnit / other +| PHPUnit version (if used) | x.y.z + + + diff --git a/vendor/phpunit/php-code-coverage/.github/stale.yml b/vendor/phpunit/php-code-coverage/.github/stale.yml new file mode 100644 index 00000000..51adfaca --- /dev/null +++ b/vendor/phpunit/php-code-coverage/.github/stale.yml @@ -0,0 +1,44 @@ +# Configuration for probot-stale - https://github.com/probot/stale + +# Number of days of inactivity before an Issue or Pull Request becomes stale +daysUntilStale: 60 + +# Number of days of inactivity before a stale Issue or Pull Request is closed. +# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale. +daysUntilClose: 7 + +# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable +exemptLabels: + - breaking-change + - enhancement + - discussion + - cleanup + - refactoring + +# Set to true to ignore issues in a project (defaults to false) +exemptProjects: false + +# Set to true to ignore issues in a milestone (defaults to false) +exemptMilestones: false + +# Label to use when marking as stale +staleLabel: stale + +# Comment to post when marking as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not had activity within the last 60 days. It will be closed after 7 days if no further activity occurs. Thank you for your contributions. + +# Comment to post when removing the stale label. +# unmarkComment: > +# Your comment here. + +# Comment to post when closing a stale Issue or Pull Request. +closeComment: > + This issue has been automatically closed because it has not had activity since it was marked as stale. Thank you for your contributions. + +# Limit the number of actions per hour, from 1-30. Default is 30 +limitPerRun: 30 + +# Limit to only `issues` or `pulls` +only: issues + diff --git a/vendor/phpunit/php-code-coverage/.gitignore b/vendor/phpunit/php-code-coverage/.gitignore new file mode 100644 index 00000000..f25d115f --- /dev/null +++ b/vendor/phpunit/php-code-coverage/.gitignore @@ -0,0 +1,7 @@ +/tests/_files/tmp +/vendor +/composer.lock +/.idea +/.php_cs +/.php_cs.cache + diff --git a/vendor/phpunit/php-code-coverage/.php_cs.dist b/vendor/phpunit/php-code-coverage/.php_cs.dist new file mode 100644 index 00000000..59495cf0 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/.php_cs.dist @@ -0,0 +1,189 @@ + + +For the full copyright and license information, please view the LICENSE +file that was distributed with this source code. +EOF; + +return PhpCsFixer\Config::create() + ->setRiskyAllowed(true) + ->setRules( + [ + 'align_multiline_comment' => true, + 'array_indentation' => true, + 'array_syntax' => ['syntax' => 'short'], + 'binary_operator_spaces' => [ + 'operators' => [ + '=' => 'align', + '=>' => 'align', + ], + ], + 'blank_line_after_namespace' => true, + 'blank_line_before_statement' => [ + 'statements' => [ + 'break', + 'continue', + 'declare', + 'do', + 'for', + 'foreach', + 'if', + 'include', + 'include_once', + 'require', + 'require_once', + 'return', + 'switch', + 'throw', + 'try', + 'while', + 'yield', + ], + ], + 'braces' => true, + 'cast_spaces' => true, + 'class_attributes_separation' => ['elements' => ['const', 'method', 'property']], + 'combine_consecutive_issets' => true, + 'combine_consecutive_unsets' => true, + 'compact_nullable_typehint' => true, + 'concat_space' => ['spacing' => 'one'], + 'declare_equal_normalize' => ['space' => 'none'], + 'dir_constant' => true, + 'elseif' => true, + 'encoding' => true, + 'full_opening_tag' => true, + 'function_declaration' => true, + 'header_comment' => ['header' => $header, 'separate' => 'none'], + 'indentation_type' => true, + 'is_null' => true, + 'line_ending' => true, + 'list_syntax' => ['syntax' => 'short'], + 'logical_operators' => true, + 'lowercase_cast' => true, + 'lowercase_constants' => true, + 'lowercase_keywords' => true, + 'lowercase_static_reference' => true, + 'magic_constant_casing' => true, + 'method_argument_space' => ['ensure_fully_multiline' => true], + 'modernize_types_casting' => true, + 'multiline_comment_opening_closing' => true, + 'multiline_whitespace_before_semicolons' => true, + 'native_constant_invocation' => true, + 'native_function_casing' => true, + 'native_function_invocation' => true, + 'new_with_braces' => false, + 'no_alias_functions' => true, + 'no_alternative_syntax' => true, + 'no_blank_lines_after_class_opening' => true, + 'no_blank_lines_after_phpdoc' => true, + 'no_blank_lines_before_namespace' => true, + 'no_closing_tag' => true, + 'no_empty_comment' => true, + 'no_empty_phpdoc' => true, + 'no_empty_statement' => true, + 'no_extra_blank_lines' => true, + 'no_homoglyph_names' => true, + 'no_leading_import_slash' => true, + 'no_leading_namespace_whitespace' => true, + 'no_mixed_echo_print' => ['use' => 'print'], + 'no_multiline_whitespace_around_double_arrow' => true, + 'no_null_property_initialization' => true, + 'no_php4_constructor' => true, + 'no_short_bool_cast' => true, + 'no_short_echo_tag' => true, + 'no_singleline_whitespace_before_semicolons' => true, + 'no_spaces_after_function_name' => true, + 'no_spaces_inside_parenthesis' => true, + 'no_superfluous_elseif' => true, + 'no_superfluous_phpdoc_tags' => true, + 'no_trailing_comma_in_list_call' => true, + 'no_trailing_comma_in_singleline_array' => true, + 'no_trailing_whitespace' => true, + 'no_trailing_whitespace_in_comment' => true, + 'no_unneeded_control_parentheses' => true, + 'no_unneeded_curly_braces' => true, + 'no_unneeded_final_method' => true, + 'no_unreachable_default_argument_value' => true, + 'no_unset_on_property' => true, + 'no_unused_imports' => true, + 'no_useless_else' => true, + 'no_useless_return' => true, + 'no_whitespace_before_comma_in_array' => true, + 'no_whitespace_in_blank_line' => true, + 'non_printable_character' => true, + 'normalize_index_brace' => true, + 'object_operator_without_whitespace' => true, + 'ordered_class_elements' => [ + 'order' => [ + 'use_trait', + 'constant_public', + 'constant_protected', + 'constant_private', + 'property_public_static', + 'property_protected_static', + 'property_private_static', + 'property_public', + 'property_protected', + 'property_private', + 'method_public_static', + 'construct', + 'destruct', + 'magic', + 'phpunit', + 'method_public', + 'method_protected', + 'method_private', + 'method_protected_static', + 'method_private_static', + ], + ], + 'ordered_imports' => true, + 'phpdoc_add_missing_param_annotation' => true, + 'phpdoc_align' => true, + 'phpdoc_annotation_without_dot' => true, + 'phpdoc_indent' => true, + 'phpdoc_no_access' => true, + 'phpdoc_no_empty_return' => true, + 'phpdoc_no_package' => true, + 'phpdoc_order' => true, + 'phpdoc_return_self_reference' => true, + 'phpdoc_scalar' => true, + 'phpdoc_separation' => true, + 'phpdoc_single_line_var_spacing' => true, + 'phpdoc_to_comment' => true, + 'phpdoc_trim' => true, + 'phpdoc_trim_consecutive_blank_line_separation' => true, + 'phpdoc_types' => true, + 'phpdoc_types_order' => true, + 'phpdoc_var_without_name' => true, + 'pow_to_exponentiation' => true, + 'protected_to_private' => true, + 'return_assignment' => true, + 'return_type_declaration' => ['space_before' => 'none'], + 'self_accessor' => true, + 'semicolon_after_instruction' => true, + 'set_type_to_cast' => true, + 'short_scalar_cast' => true, + 'simplified_null_return' => true, + 'single_blank_line_at_eof' => true, + 'single_import_per_statement' => true, + 'single_line_after_imports' => true, + 'single_quote' => true, + 'standardize_not_equals' => true, + 'ternary_to_null_coalescing' => true, + 'trailing_comma_in_multiline_array' => true, + 'trim_array_spaces' => true, + 'unary_operator_spaces' => true, + 'visibility_required' => true, + 'void_return' => true, + 'whitespace_after_comma_in_array' => true, + ] + ) + ->setFinder( + PhpCsFixer\Finder::create() + ->files() + ->in(__DIR__ . '/src') + ); diff --git a/vendor/phpunit/php-code-coverage/.travis.yml b/vendor/phpunit/php-code-coverage/.travis.yml new file mode 100644 index 00000000..e881f45c --- /dev/null +++ b/vendor/phpunit/php-code-coverage/.travis.yml @@ -0,0 +1,40 @@ +language: php + +sudo: false + +php: + - 7.1 + - 7.2 + - 7.3 + - master + +matrix: + allow_failures: + - php: master + fast_finish: true + +env: + matrix: + - DEPENDENCIES="high" + - DEPENDENCIES="low" + global: + - DEFAULT_COMPOSER_FLAGS="--no-interaction --no-ansi --no-progress --no-suggest" + +before_install: + - composer self-update + - composer clear-cache + +install: + - if [[ "$DEPENDENCIES" = 'high' ]]; then travis_retry composer update $DEFAULT_COMPOSER_FLAGS; fi + - if [[ "$DEPENDENCIES" = 'low' ]]; then travis_retry composer update $DEFAULT_COMPOSER_FLAGS --prefer-lowest; fi + +script: + - if [[ "$DRIVER" = 'phpdbg' ]]; then phpdbg -qrr vendor/bin/phpunit --coverage-clover=coverage.xml; fi + - if [[ "$DRIVER" = 'xdebug' ]]; then vendor/bin/phpunit --coverage-clover=coverage.xml; fi + +after_success: + - bash <(curl -s https://codecov.io/bash) + +notifications: + email: false + diff --git a/vendor/phpunit/php-code-coverage/ChangeLog-6.1.md b/vendor/phpunit/php-code-coverage/ChangeLog-6.1.md new file mode 100644 index 00000000..716a1246 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/ChangeLog-6.1.md @@ -0,0 +1,41 @@ +# Changes in php-code-coverage 6.1 + +All notable changes of the php-code-coverage 6.1 release series are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [6.1.4] - 2018-10-31 + +### Fixed + +* Fixed [#650](https://github.com/sebastianbergmann/php-code-coverage/issues/650): Wasted screen space in HTML code coverage report + +## [6.1.3] - 2018-10-23 + +### Changed + +* Use `^3.1` of `sebastian/environment` again due to [regression](https://github.com/sebastianbergmann/environment/issues/31) + +## [6.1.2] - 2018-10-23 + +### Fixed + +* Fixed [#645](https://github.com/sebastianbergmann/php-code-coverage/pull/645): Crash that can occur when php-token-stream parses invalid files + +## [6.1.1] - 2018-10-18 + +### Changed + +* This component now allows `^4` of `sebastian/environment` + +## [6.1.0] - 2018-10-16 + +### Changed + +* Class names are now abbreviated (unqualified name shown, fully qualified name shown on hover) in the file view of the HTML report +* Update HTML report to Bootstrap 4 + +[6.1.4]: https://github.com/sebastianbergmann/php-code-coverage/compare/6.1.3...6.1.4 +[6.1.3]: https://github.com/sebastianbergmann/php-code-coverage/compare/6.1.2...6.1.3 +[6.1.2]: https://github.com/sebastianbergmann/php-code-coverage/compare/6.1.1...6.1.2 +[6.1.1]: https://github.com/sebastianbergmann/php-code-coverage/compare/6.1.0...6.1.1 +[6.1.0]: https://github.com/sebastianbergmann/php-code-coverage/compare/6.0...6.1.0 + diff --git a/vendor/phpunit/php-code-coverage/LICENSE b/vendor/phpunit/php-code-coverage/LICENSE new file mode 100644 index 00000000..f198e20f --- /dev/null +++ b/vendor/phpunit/php-code-coverage/LICENSE @@ -0,0 +1,33 @@ +php-code-coverage + +Copyright (c) 2009-2018, Sebastian Bergmann . +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Sebastian Bergmann nor the names of his + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/phpunit/php-code-coverage/README.md b/vendor/phpunit/php-code-coverage/README.md new file mode 100644 index 00000000..bd4a1692 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/README.md @@ -0,0 +1,40 @@ +[![Latest Stable Version](https://poser.pugx.org/phpunit/php-code-coverage/v/stable.png)](https://packagist.org/packages/phpunit/php-code-coverage) +[![Build Status](https://travis-ci.org/sebastianbergmann/php-code-coverage.svg?branch=master)](https://travis-ci.org/sebastianbergmann/php-code-coverage) + +# SebastianBergmann\CodeCoverage + +**SebastianBergmann\CodeCoverage** is a library that provides collection, processing, and rendering functionality for PHP code coverage information. + +## Installation + +You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): + + composer require phpunit/php-code-coverage + +If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: + + composer require --dev phpunit/php-code-coverage + +## Using the SebastianBergmann\CodeCoverage API + +```php +filter()->addDirectoryToWhitelist('/path/to/src'); + +$coverage->start(''); + +// ... + +$coverage->stop(); + +$writer = new \SebastianBergmann\CodeCoverage\Report\Clover; +$writer->process($coverage, '/tmp/clover.xml'); + +$writer = new \SebastianBergmann\CodeCoverage\Report\Html\Facade; +$writer->process($coverage, '/tmp/code-coverage-report'); +``` + diff --git a/vendor/phpunit/php-code-coverage/build.xml b/vendor/phpunit/php-code-coverage/build.xml new file mode 100644 index 00000000..40eeeec4 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/build.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/php-code-coverage/composer.json b/vendor/phpunit/php-code-coverage/composer.json new file mode 100644 index 00000000..bb27256f --- /dev/null +++ b/vendor/phpunit/php-code-coverage/composer.json @@ -0,0 +1,55 @@ +{ + "name": "phpunit/php-code-coverage", + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "type": "library", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues" + }, + "config": { + "optimize-autoloader": true, + "sort-packages": true + }, + "prefer-stable": true, + "require": { + "php": "^7.1", + "ext-dom": "*", + "ext-xmlwriter": "*", + "phpunit/php-file-iterator": "^2.0", + "phpunit/php-token-stream": "^3.0", + "phpunit/php-text-template": "^1.2.1", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^3.1 || ^4.0", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "suggest": { + "ext-xdebug": "^2.6.0" + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "6.1-dev" + } + } +} diff --git a/vendor/phpunit/php-code-coverage/phpunit.xml b/vendor/phpunit/php-code-coverage/phpunit.xml new file mode 100644 index 00000000..37e22199 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/phpunit.xml @@ -0,0 +1,21 @@ + + + + tests/tests + + + + + src + + + + + + + + diff --git a/vendor/phpunit/php-code-coverage/src/CodeCoverage.php b/vendor/phpunit/php-code-coverage/src/CodeCoverage.php new file mode 100644 index 00000000..67ba4035 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/CodeCoverage.php @@ -0,0 +1,1008 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage; + +use PHPUnit\Framework\TestCase; +use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Util\Test; +use SebastianBergmann\CodeCoverage\Driver\Driver; +use SebastianBergmann\CodeCoverage\Driver\PHPDBG; +use SebastianBergmann\CodeCoverage\Driver\Xdebug; +use SebastianBergmann\CodeCoverage\Node\Builder; +use SebastianBergmann\CodeCoverage\Node\Directory; +use SebastianBergmann\CodeUnitReverseLookup\Wizard; +use SebastianBergmann\Environment\Runtime; + +/** + * Provides collection functionality for PHP code coverage information. + */ +final class CodeCoverage +{ + /** + * @var Driver + */ + private $driver; + + /** + * @var Filter + */ + private $filter; + + /** + * @var Wizard + */ + private $wizard; + + /** + * @var bool + */ + private $cacheTokens = false; + + /** + * @var bool + */ + private $checkForUnintentionallyCoveredCode = false; + + /** + * @var bool + */ + private $forceCoversAnnotation = false; + + /** + * @var bool + */ + private $checkForUnexecutedCoveredCode = false; + + /** + * @var bool + */ + private $checkForMissingCoversAnnotation = false; + + /** + * @var bool + */ + private $addUncoveredFilesFromWhitelist = true; + + /** + * @var bool + */ + private $processUncoveredFilesFromWhitelist = false; + + /** + * @var bool + */ + private $ignoreDeprecatedCode = false; + + /** + * @var PhptTestCase|string|TestCase + */ + private $currentId; + + /** + * Code coverage data. + * + * @var array + */ + private $data = []; + + /** + * @var array + */ + private $ignoredLines = []; + + /** + * @var bool + */ + private $disableIgnoredLines = false; + + /** + * Test data. + * + * @var array + */ + private $tests = []; + + /** + * @var string[] + */ + private $unintentionallyCoveredSubclassesWhitelist = []; + + /** + * Determine if the data has been initialized or not + * + * @var bool + */ + private $isInitialized = false; + + /** + * Determine whether we need to check for dead and unused code on each test + * + * @var bool + */ + private $shouldCheckForDeadAndUnused = true; + + /** + * @var Directory + */ + private $report; + + /** + * @throws RuntimeException + */ + public function __construct(Driver $driver = null, Filter $filter = null) + { + if ($filter === null) { + $filter = new Filter; + } + + if ($driver === null) { + $driver = $this->selectDriver($filter); + } + + $this->driver = $driver; + $this->filter = $filter; + + $this->wizard = new Wizard; + } + + /** + * Returns the code coverage information as a graph of node objects. + */ + public function getReport(): Directory + { + if ($this->report === null) { + $builder = new Builder; + + $this->report = $builder->build($this); + } + + return $this->report; + } + + /** + * Clears collected code coverage data. + */ + public function clear(): void + { + $this->isInitialized = false; + $this->currentId = null; + $this->data = []; + $this->tests = []; + $this->report = null; + } + + /** + * Returns the filter object used. + */ + public function filter(): Filter + { + return $this->filter; + } + + /** + * Returns the collected code coverage data. + */ + public function getData(bool $raw = false): array + { + if (!$raw && $this->addUncoveredFilesFromWhitelist) { + $this->addUncoveredFilesFromWhitelist(); + } + + return $this->data; + } + + /** + * Sets the coverage data. + */ + public function setData(array $data): void + { + $this->data = $data; + $this->report = null; + } + + /** + * Returns the test data. + */ + public function getTests(): array + { + return $this->tests; + } + + /** + * Sets the test data. + */ + public function setTests(array $tests): void + { + $this->tests = $tests; + } + + /** + * Start collection of code coverage information. + * + * @param PhptTestCase|string|TestCase $id + * + * @throws RuntimeException + */ + public function start($id, bool $clear = false): void + { + if ($clear) { + $this->clear(); + } + + if ($this->isInitialized === false) { + $this->initializeData(); + } + + $this->currentId = $id; + + $this->driver->start($this->shouldCheckForDeadAndUnused); + } + + /** + * Stop collection of code coverage information. + * + * @param array|false $linesToBeCovered + * + * @throws MissingCoversAnnotationException + * @throws CoveredCodeNotExecutedException + * @throws RuntimeException + * @throws InvalidArgumentException + * @throws \ReflectionException + */ + public function stop(bool $append = true, $linesToBeCovered = [], array $linesToBeUsed = [], bool $ignoreForceCoversAnnotation = false): array + { + if (!\is_array($linesToBeCovered) && $linesToBeCovered !== false) { + throw InvalidArgumentException::create( + 2, + 'array or false' + ); + } + + $data = $this->driver->stop(); + $this->append($data, null, $append, $linesToBeCovered, $linesToBeUsed, $ignoreForceCoversAnnotation); + + $this->currentId = null; + + return $data; + } + + /** + * Appends code coverage data. + * + * @param PhptTestCase|string|TestCase $id + * @param array|false $linesToBeCovered + * + * @throws \SebastianBergmann\CodeCoverage\UnintentionallyCoveredCodeException + * @throws \SebastianBergmann\CodeCoverage\MissingCoversAnnotationException + * @throws \SebastianBergmann\CodeCoverage\CoveredCodeNotExecutedException + * @throws \ReflectionException + * @throws \SebastianBergmann\CodeCoverage\InvalidArgumentException + * @throws RuntimeException + */ + public function append(array $data, $id = null, bool $append = true, $linesToBeCovered = [], array $linesToBeUsed = [], bool $ignoreForceCoversAnnotation = false): void + { + if ($id === null) { + $id = $this->currentId; + } + + if ($id === null) { + throw new RuntimeException; + } + + $this->applyWhitelistFilter($data); + $this->applyIgnoredLinesFilter($data); + $this->initializeFilesThatAreSeenTheFirstTime($data); + + if (!$append) { + return; + } + + if ($id !== 'UNCOVERED_FILES_FROM_WHITELIST') { + $this->applyCoversAnnotationFilter( + $data, + $linesToBeCovered, + $linesToBeUsed, + $ignoreForceCoversAnnotation + ); + } + + if (empty($data)) { + return; + } + + $size = 'unknown'; + $status = -1; + + if ($id instanceof TestCase) { + $_size = $id->getSize(); + + if ($_size === Test::SMALL) { + $size = 'small'; + } elseif ($_size === Test::MEDIUM) { + $size = 'medium'; + } elseif ($_size === Test::LARGE) { + $size = 'large'; + } + + $status = $id->getStatus(); + $id = \get_class($id) . '::' . $id->getName(); + } elseif ($id instanceof PhptTestCase) { + $size = 'large'; + $id = $id->getName(); + } + + $this->tests[$id] = ['size' => $size, 'status' => $status]; + + foreach ($data as $file => $lines) { + if (!$this->filter->isFile($file)) { + continue; + } + + foreach ($lines as $k => $v) { + if ($v === Driver::LINE_EXECUTED) { + if (empty($this->data[$file][$k]) || !\in_array($id, $this->data[$file][$k])) { + $this->data[$file][$k][] = $id; + } + } + } + } + + $this->report = null; + } + + /** + * Merges the data from another instance. + * + * @param CodeCoverage $that + */ + public function merge(self $that): void + { + $this->filter->setWhitelistedFiles( + \array_merge($this->filter->getWhitelistedFiles(), $that->filter()->getWhitelistedFiles()) + ); + + foreach ($that->data as $file => $lines) { + if (!isset($this->data[$file])) { + if (!$this->filter->isFiltered($file)) { + $this->data[$file] = $lines; + } + + continue; + } + + // we should compare the lines if any of two contains data + $compareLineNumbers = \array_unique( + \array_merge( + \array_keys($this->data[$file]), + \array_keys($that->data[$file]) + ) + ); + + foreach ($compareLineNumbers as $line) { + $thatPriority = $this->getLinePriority($that->data[$file], $line); + $thisPriority = $this->getLinePriority($this->data[$file], $line); + + if ($thatPriority > $thisPriority) { + $this->data[$file][$line] = $that->data[$file][$line]; + } elseif ($thatPriority === $thisPriority && \is_array($this->data[$file][$line])) { + $this->data[$file][$line] = \array_unique( + \array_merge($this->data[$file][$line], $that->data[$file][$line]) + ); + } + } + } + + $this->tests = \array_merge($this->tests, $that->getTests()); + $this->report = null; + } + + public function setCacheTokens(bool $flag): void + { + $this->cacheTokens = $flag; + } + + public function getCacheTokens(): bool + { + return $this->cacheTokens; + } + + public function setCheckForUnintentionallyCoveredCode(bool $flag): void + { + $this->checkForUnintentionallyCoveredCode = $flag; + } + + public function setForceCoversAnnotation(bool $flag): void + { + $this->forceCoversAnnotation = $flag; + } + + public function setCheckForMissingCoversAnnotation(bool $flag): void + { + $this->checkForMissingCoversAnnotation = $flag; + } + + public function setCheckForUnexecutedCoveredCode(bool $flag): void + { + $this->checkForUnexecutedCoveredCode = $flag; + } + + public function setAddUncoveredFilesFromWhitelist(bool $flag): void + { + $this->addUncoveredFilesFromWhitelist = $flag; + } + + public function setProcessUncoveredFilesFromWhitelist(bool $flag): void + { + $this->processUncoveredFilesFromWhitelist = $flag; + } + + public function setDisableIgnoredLines(bool $flag): void + { + $this->disableIgnoredLines = $flag; + } + + public function setIgnoreDeprecatedCode(bool $flag): void + { + $this->ignoreDeprecatedCode = $flag; + } + + public function setUnintentionallyCoveredSubclassesWhitelist(array $whitelist): void + { + $this->unintentionallyCoveredSubclassesWhitelist = $whitelist; + } + + /** + * Determine the priority for a line + * + * 1 = the line is not set + * 2 = the line has not been tested + * 3 = the line is dead code + * 4 = the line has been tested + * + * During a merge, a higher number is better. + * + * @param array $data + * @param int $line + * + * @return int + */ + private function getLinePriority($data, $line) + { + if (!\array_key_exists($line, $data)) { + return 1; + } + + if (\is_array($data[$line]) && \count($data[$line]) === 0) { + return 2; + } + + if ($data[$line] === null) { + return 3; + } + + return 4; + } + + /** + * Applies the @covers annotation filtering. + * + * @param array|false $linesToBeCovered + * + * @throws \SebastianBergmann\CodeCoverage\CoveredCodeNotExecutedException + * @throws \ReflectionException + * @throws MissingCoversAnnotationException + * @throws UnintentionallyCoveredCodeException + */ + private function applyCoversAnnotationFilter(array &$data, $linesToBeCovered, array $linesToBeUsed, bool $ignoreForceCoversAnnotation): void + { + if ($linesToBeCovered === false || + ($this->forceCoversAnnotation && empty($linesToBeCovered) && !$ignoreForceCoversAnnotation)) { + if ($this->checkForMissingCoversAnnotation) { + throw new MissingCoversAnnotationException; + } + + $data = []; + + return; + } + + if (empty($linesToBeCovered)) { + return; + } + + if ($this->checkForUnintentionallyCoveredCode && + (!$this->currentId instanceof TestCase || + (!$this->currentId->isMedium() && !$this->currentId->isLarge()))) { + $this->performUnintentionallyCoveredCodeCheck($data, $linesToBeCovered, $linesToBeUsed); + } + + if ($this->checkForUnexecutedCoveredCode) { + $this->performUnexecutedCoveredCodeCheck($data, $linesToBeCovered, $linesToBeUsed); + } + + $data = \array_intersect_key($data, $linesToBeCovered); + + foreach (\array_keys($data) as $filename) { + $_linesToBeCovered = \array_flip($linesToBeCovered[$filename]); + $data[$filename] = \array_intersect_key($data[$filename], $_linesToBeCovered); + } + } + + private function applyWhitelistFilter(array &$data): void + { + foreach (\array_keys($data) as $filename) { + if ($this->filter->isFiltered($filename)) { + unset($data[$filename]); + } + } + } + + /** + * @throws \SebastianBergmann\CodeCoverage\InvalidArgumentException + */ + private function applyIgnoredLinesFilter(array &$data): void + { + foreach (\array_keys($data) as $filename) { + if (!$this->filter->isFile($filename)) { + continue; + } + + foreach ($this->getLinesToBeIgnored($filename) as $line) { + unset($data[$filename][$line]); + } + } + } + + private function initializeFilesThatAreSeenTheFirstTime(array $data): void + { + foreach ($data as $file => $lines) { + if (!isset($this->data[$file]) && $this->filter->isFile($file)) { + $this->data[$file] = []; + + foreach ($lines as $k => $v) { + $this->data[$file][$k] = $v === -2 ? null : []; + } + } + } + } + + /** + * @throws CoveredCodeNotExecutedException + * @throws InvalidArgumentException + * @throws MissingCoversAnnotationException + * @throws RuntimeException + * @throws UnintentionallyCoveredCodeException + * @throws \ReflectionException + */ + private function addUncoveredFilesFromWhitelist(): void + { + $data = []; + $uncoveredFiles = \array_diff( + $this->filter->getWhitelist(), + \array_keys($this->data) + ); + + foreach ($uncoveredFiles as $uncoveredFile) { + if (!\file_exists($uncoveredFile)) { + continue; + } + + $data[$uncoveredFile] = []; + + $lines = \count(\file($uncoveredFile)); + + for ($i = 1; $i <= $lines; $i++) { + $data[$uncoveredFile][$i] = Driver::LINE_NOT_EXECUTED; + } + } + + $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST'); + } + + private function getLinesToBeIgnored(string $fileName): array + { + if (isset($this->ignoredLines[$fileName])) { + return $this->ignoredLines[$fileName]; + } + + try { + return $this->getLinesToBeIgnoredInner($fileName); + } catch (\OutOfBoundsException $e) { + // This can happen with PHP_Token_Stream if the file is syntactically invalid, + // and probably affects a file that wasn't executed. + return []; + } + } + + private function getLinesToBeIgnoredInner(string $fileName): array + { + $this->ignoredLines[$fileName] = []; + + $lines = \file($fileName); + + foreach ($lines as $index => $line) { + if (!\trim($line)) { + $this->ignoredLines[$fileName][] = $index + 1; + } + } + + if ($this->cacheTokens) { + $tokens = \PHP_Token_Stream_CachingFactory::get($fileName); + } else { + $tokens = new \PHP_Token_Stream($fileName); + } + + foreach ($tokens->getInterfaces() as $interface) { + $interfaceStartLine = $interface['startLine']; + $interfaceEndLine = $interface['endLine']; + + foreach (\range($interfaceStartLine, $interfaceEndLine) as $line) { + $this->ignoredLines[$fileName][] = $line; + } + } + + foreach (\array_merge($tokens->getClasses(), $tokens->getTraits()) as $classOrTrait) { + $classOrTraitStartLine = $classOrTrait['startLine']; + $classOrTraitEndLine = $classOrTrait['endLine']; + + if (empty($classOrTrait['methods'])) { + foreach (\range($classOrTraitStartLine, $classOrTraitEndLine) as $line) { + $this->ignoredLines[$fileName][] = $line; + } + + continue; + } + + $firstMethod = \array_shift($classOrTrait['methods']); + $firstMethodStartLine = $firstMethod['startLine']; + $firstMethodEndLine = $firstMethod['endLine']; + $lastMethodEndLine = $firstMethodEndLine; + + do { + $lastMethod = \array_pop($classOrTrait['methods']); + } while ($lastMethod !== null && 0 === \strpos($lastMethod['signature'], 'anonymousFunction')); + + if ($lastMethod !== null) { + $lastMethodEndLine = $lastMethod['endLine']; + } + + foreach (\range($classOrTraitStartLine, $firstMethodStartLine) as $line) { + $this->ignoredLines[$fileName][] = $line; + } + + foreach (\range($lastMethodEndLine + 1, $classOrTraitEndLine) as $line) { + $this->ignoredLines[$fileName][] = $line; + } + } + + if ($this->disableIgnoredLines) { + $this->ignoredLines[$fileName] = \array_unique($this->ignoredLines[$fileName]); + \sort($this->ignoredLines[$fileName]); + + return $this->ignoredLines[$fileName]; + } + + $ignore = false; + $stop = false; + + foreach ($tokens->tokens() as $token) { + switch (\get_class($token)) { + case \PHP_Token_COMMENT::class: + case \PHP_Token_DOC_COMMENT::class: + $_token = \trim($token); + $_line = \trim($lines[$token->getLine() - 1]); + + if ($_token === '// @codeCoverageIgnore' || + $_token === '//@codeCoverageIgnore') { + $ignore = true; + $stop = true; + } elseif ($_token === '// @codeCoverageIgnoreStart' || + $_token === '//@codeCoverageIgnoreStart') { + $ignore = true; + } elseif ($_token === '// @codeCoverageIgnoreEnd' || + $_token === '//@codeCoverageIgnoreEnd') { + $stop = true; + } + + if (!$ignore) { + $start = $token->getLine(); + $end = $start + \substr_count($token, "\n"); + + // Do not ignore the first line when there is a token + // before the comment + if (0 !== \strpos($_token, $_line)) { + $start++; + } + + for ($i = $start; $i < $end; $i++) { + $this->ignoredLines[$fileName][] = $i; + } + + // A DOC_COMMENT token or a COMMENT token starting with "/*" + // does not contain the final \n character in its text + if (isset($lines[$i - 1]) && 0 === \strpos($_token, '/*') && '*/' === \substr(\trim($lines[$i - 1]), -2)) { + $this->ignoredLines[$fileName][] = $i; + } + } + + break; + + case \PHP_Token_INTERFACE::class: + case \PHP_Token_TRAIT::class: + case \PHP_Token_CLASS::class: + case \PHP_Token_FUNCTION::class: + /* @var \PHP_Token_Interface $token */ + + $docblock = $token->getDocblock(); + + $this->ignoredLines[$fileName][] = $token->getLine(); + + if (\strpos($docblock, '@codeCoverageIgnore') || ($this->ignoreDeprecatedCode && \strpos($docblock, '@deprecated'))) { + $endLine = $token->getEndLine(); + + for ($i = $token->getLine(); $i <= $endLine; $i++) { + $this->ignoredLines[$fileName][] = $i; + } + } + + break; + + /* @noinspection PhpMissingBreakStatementInspection */ + case \PHP_Token_NAMESPACE::class: + $this->ignoredLines[$fileName][] = $token->getEndLine(); + + // Intentional fallthrough + case \PHP_Token_DECLARE::class: + case \PHP_Token_OPEN_TAG::class: + case \PHP_Token_CLOSE_TAG::class: + case \PHP_Token_USE::class: + $this->ignoredLines[$fileName][] = $token->getLine(); + + break; + } + + if ($ignore) { + $this->ignoredLines[$fileName][] = $token->getLine(); + + if ($stop) { + $ignore = false; + $stop = false; + } + } + } + + $this->ignoredLines[$fileName][] = \count($lines) + 1; + + $this->ignoredLines[$fileName] = \array_unique( + $this->ignoredLines[$fileName] + ); + + $this->ignoredLines[$fileName] = \array_unique($this->ignoredLines[$fileName]); + \sort($this->ignoredLines[$fileName]); + + return $this->ignoredLines[$fileName]; + } + + /** + * @throws \ReflectionException + * @throws UnintentionallyCoveredCodeException + */ + private function performUnintentionallyCoveredCodeCheck(array &$data, array $linesToBeCovered, array $linesToBeUsed): void + { + $allowedLines = $this->getAllowedLines( + $linesToBeCovered, + $linesToBeUsed + ); + + $unintentionallyCoveredUnits = []; + + foreach ($data as $file => $_data) { + foreach ($_data as $line => $flag) { + if ($flag === 1 && !isset($allowedLines[$file][$line])) { + $unintentionallyCoveredUnits[] = $this->wizard->lookup($file, $line); + } + } + } + + $unintentionallyCoveredUnits = $this->processUnintentionallyCoveredUnits($unintentionallyCoveredUnits); + + if (!empty($unintentionallyCoveredUnits)) { + throw new UnintentionallyCoveredCodeException( + $unintentionallyCoveredUnits + ); + } + } + + /** + * @throws CoveredCodeNotExecutedException + */ + private function performUnexecutedCoveredCodeCheck(array &$data, array $linesToBeCovered, array $linesToBeUsed): void + { + $executedCodeUnits = $this->coverageToCodeUnits($data); + $message = ''; + + foreach ($this->linesToCodeUnits($linesToBeCovered) as $codeUnit) { + if (!\in_array($codeUnit, $executedCodeUnits)) { + $message .= \sprintf( + '- %s is expected to be executed (@covers) but was not executed' . "\n", + $codeUnit + ); + } + } + + foreach ($this->linesToCodeUnits($linesToBeUsed) as $codeUnit) { + if (!\in_array($codeUnit, $executedCodeUnits)) { + $message .= \sprintf( + '- %s is expected to be executed (@uses) but was not executed' . "\n", + $codeUnit + ); + } + } + + if (!empty($message)) { + throw new CoveredCodeNotExecutedException($message); + } + } + + private function getAllowedLines(array $linesToBeCovered, array $linesToBeUsed): array + { + $allowedLines = []; + + foreach (\array_keys($linesToBeCovered) as $file) { + if (!isset($allowedLines[$file])) { + $allowedLines[$file] = []; + } + + $allowedLines[$file] = \array_merge( + $allowedLines[$file], + $linesToBeCovered[$file] + ); + } + + foreach (\array_keys($linesToBeUsed) as $file) { + if (!isset($allowedLines[$file])) { + $allowedLines[$file] = []; + } + + $allowedLines[$file] = \array_merge( + $allowedLines[$file], + $linesToBeUsed[$file] + ); + } + + foreach (\array_keys($allowedLines) as $file) { + $allowedLines[$file] = \array_flip( + \array_unique($allowedLines[$file]) + ); + } + + return $allowedLines; + } + + /** + * @throws RuntimeException + */ + private function selectDriver(Filter $filter): Driver + { + $runtime = new Runtime; + + if (!$runtime->canCollectCodeCoverage()) { + throw new RuntimeException('No code coverage driver available'); + } + + if ($runtime->isPHPDBG()) { + return new PHPDBG; + } + + if ($runtime->hasXdebug()) { + return new Xdebug($filter); + } + + throw new RuntimeException('No code coverage driver available'); + } + + private function processUnintentionallyCoveredUnits(array $unintentionallyCoveredUnits): array + { + $unintentionallyCoveredUnits = \array_unique($unintentionallyCoveredUnits); + \sort($unintentionallyCoveredUnits); + + foreach (\array_keys($unintentionallyCoveredUnits) as $k => $v) { + $unit = \explode('::', $unintentionallyCoveredUnits[$k]); + + if (\count($unit) !== 2) { + continue; + } + + $class = new \ReflectionClass($unit[0]); + + foreach ($this->unintentionallyCoveredSubclassesWhitelist as $whitelisted) { + if ($class->isSubclassOf($whitelisted)) { + unset($unintentionallyCoveredUnits[$k]); + + break; + } + } + } + + return \array_values($unintentionallyCoveredUnits); + } + + /** + * @throws CoveredCodeNotExecutedException + * @throws InvalidArgumentException + * @throws MissingCoversAnnotationException + * @throws RuntimeException + * @throws UnintentionallyCoveredCodeException + * @throws \ReflectionException + */ + private function initializeData(): void + { + $this->isInitialized = true; + + if ($this->processUncoveredFilesFromWhitelist) { + $this->shouldCheckForDeadAndUnused = false; + + $this->driver->start(); + + foreach ($this->filter->getWhitelist() as $file) { + if ($this->filter->isFile($file)) { + include_once $file; + } + } + + $data = []; + $coverage = $this->driver->stop(); + + foreach ($coverage as $file => $fileCoverage) { + if ($this->filter->isFiltered($file)) { + continue; + } + + foreach (\array_keys($fileCoverage) as $key) { + if ($fileCoverage[$key] === Driver::LINE_EXECUTED) { + $fileCoverage[$key] = Driver::LINE_NOT_EXECUTED; + } + } + + $data[$file] = $fileCoverage; + } + + $this->append($data, 'UNCOVERED_FILES_FROM_WHITELIST'); + } + } + + private function coverageToCodeUnits(array $data): array + { + $codeUnits = []; + + foreach ($data as $filename => $lines) { + foreach ($lines as $line => $flag) { + if ($flag === 1) { + $codeUnits[] = $this->wizard->lookup($filename, $line); + } + } + } + + return \array_unique($codeUnits); + } + + private function linesToCodeUnits(array $data): array + { + $codeUnits = []; + + foreach ($data as $filename => $lines) { + foreach ($lines as $line) { + $codeUnits[] = $this->wizard->lookup($filename, $line); + } + } + + return \array_unique($codeUnits); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Driver/Driver.php b/vendor/phpunit/php-code-coverage/src/Driver/Driver.php new file mode 100644 index 00000000..38419966 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Driver/Driver.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Driver; + +/** + * Interface for code coverage drivers. + */ +interface Driver +{ + /** + * @var int + * + * @see http://xdebug.org/docs/code_coverage + */ + public const LINE_EXECUTED = 1; + + /** + * @var int + * + * @see http://xdebug.org/docs/code_coverage + */ + public const LINE_NOT_EXECUTED = -1; + + /** + * @var int + * + * @see http://xdebug.org/docs/code_coverage + */ + public const LINE_NOT_EXECUTABLE = -2; + + /** + * Start collection of code coverage information. + */ + public function start(bool $determineUnusedAndDead = true): void; + + /** + * Stop collection of code coverage information. + */ + public function stop(): array; +} diff --git a/vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php b/vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php new file mode 100644 index 00000000..a26267b4 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Driver/PHPDBG.php @@ -0,0 +1,96 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Driver; + +use SebastianBergmann\CodeCoverage\RuntimeException; + +/** + * Driver for PHPDBG's code coverage functionality. + * + * @codeCoverageIgnore + */ +final class PHPDBG implements Driver +{ + /** + * @throws RuntimeException + */ + public function __construct() + { + if (\PHP_SAPI !== 'phpdbg') { + throw new RuntimeException( + 'This driver requires the PHPDBG SAPI' + ); + } + + if (!\function_exists('phpdbg_start_oplog')) { + throw new RuntimeException( + 'This build of PHPDBG does not support code coverage' + ); + } + } + + /** + * Start collection of code coverage information. + */ + public function start(bool $determineUnusedAndDead = true): void + { + \phpdbg_start_oplog(); + } + + /** + * Stop collection of code coverage information. + */ + public function stop(): array + { + static $fetchedLines = []; + + $dbgData = \phpdbg_end_oplog(); + + if ($fetchedLines == []) { + $sourceLines = \phpdbg_get_executable(); + } else { + $newFiles = \array_diff(\get_included_files(), \array_keys($fetchedLines)); + + $sourceLines = []; + + if ($newFiles) { + $sourceLines = phpdbg_get_executable(['files' => $newFiles]); + } + } + + foreach ($sourceLines as $file => $lines) { + foreach ($lines as $lineNo => $numExecuted) { + $sourceLines[$file][$lineNo] = self::LINE_NOT_EXECUTED; + } + } + + $fetchedLines = \array_merge($fetchedLines, $sourceLines); + + return $this->detectExecutedLines($fetchedLines, $dbgData); + } + + /** + * Convert phpdbg based data into the format CodeCoverage expects + */ + private function detectExecutedLines(array $sourceLines, array $dbgData): array + { + foreach ($dbgData as $file => $coveredLines) { + foreach ($coveredLines as $lineNo => $numExecuted) { + // phpdbg also reports $lineNo=0 when e.g. exceptions get thrown. + // make sure we only mark lines executed which are actually executable. + if (isset($sourceLines[$file][$lineNo])) { + $sourceLines[$file][$lineNo] = self::LINE_EXECUTED; + } + } + } + + return $sourceLines; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php b/vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php new file mode 100644 index 00000000..8c11f88e --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Driver/Xdebug.php @@ -0,0 +1,112 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Driver; + +use SebastianBergmann\CodeCoverage\Filter; +use SebastianBergmann\CodeCoverage\RuntimeException; + +/** + * Driver for Xdebug's code coverage functionality. + * + * @codeCoverageIgnore + */ +final class Xdebug implements Driver +{ + /** + * @var array + */ + private $cacheNumLines = []; + + /** + * @var Filter + */ + private $filter; + + /** + * @throws RuntimeException + */ + public function __construct(Filter $filter = null) + { + if (!\extension_loaded('xdebug')) { + throw new RuntimeException('This driver requires Xdebug'); + } + + if (!\ini_get('xdebug.coverage_enable')) { + throw new RuntimeException('xdebug.coverage_enable=On has to be set in php.ini'); + } + + if ($filter === null) { + $filter = new Filter; + } + + $this->filter = $filter; + } + + /** + * Start collection of code coverage information. + */ + public function start(bool $determineUnusedAndDead = true): void + { + if ($determineUnusedAndDead) { + \xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE); + } else { + \xdebug_start_code_coverage(); + } + } + + /** + * Stop collection of code coverage information. + */ + public function stop(): array + { + $data = \xdebug_get_code_coverage(); + + \xdebug_stop_code_coverage(); + + return $this->cleanup($data); + } + + private function cleanup(array $data): array + { + foreach (\array_keys($data) as $file) { + unset($data[$file][0]); + + if (!$this->filter->isFile($file)) { + continue; + } + + $numLines = $this->getNumberOfLinesInFile($file); + + foreach (\array_keys($data[$file]) as $line) { + if ($line > $numLines) { + unset($data[$file][$line]); + } + } + } + + return $data; + } + + private function getNumberOfLinesInFile(string $fileName): int + { + if (!isset($this->cacheNumLines[$fileName])) { + $buffer = \file_get_contents($fileName); + $lines = \substr_count($buffer, "\n"); + + if (\substr($buffer, -1) !== "\n") { + $lines++; + } + + $this->cacheNumLines[$fileName] = $lines; + } + + return $this->cacheNumLines[$fileName]; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php b/vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php new file mode 100644 index 00000000..7cd14ae9 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Exception/CoveredCodeNotExecutedException.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage; + +/** + * Exception that is raised when covered code is not executed. + */ +final class CoveredCodeNotExecutedException extends RuntimeException +{ +} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/Exception.php b/vendor/phpunit/php-code-coverage/src/Exception/Exception.php new file mode 100644 index 00000000..155e7db0 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Exception/Exception.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage; + +/** + * Exception interface for php-code-coverage component. + */ +interface Exception +{ +} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php b/vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php new file mode 100644 index 00000000..cc4defe1 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Exception/InvalidArgumentException.php @@ -0,0 +1,36 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage; + +final class InvalidArgumentException extends \InvalidArgumentException implements Exception +{ + /** + * @param int $argument + * @param string $type + * @param null|mixed $value + * + * @return InvalidArgumentException + */ + public static function create($argument, $type, $value = null): self + { + $stack = \debug_backtrace(0); + + return new self( + \sprintf( + 'Argument #%d%sof %s::%s() must be a %s', + $argument, + $value !== null ? ' (' . \gettype($value) . '#' . $value . ')' : ' (No Value) ', + $stack[1]['class'], + $stack[1]['function'], + $type + ) + ); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php b/vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php new file mode 100644 index 00000000..1f8edbb8 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Exception/MissingCoversAnnotationException.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage; + +/** + * Exception that is raised when @covers must be used but is not. + */ +final class MissingCoversAnnotationException extends RuntimeException +{ +} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php b/vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php new file mode 100644 index 00000000..fe0e4347 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Exception/RuntimeException.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage; + +class RuntimeException extends \RuntimeException implements Exception +{ +} diff --git a/vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php b/vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php new file mode 100644 index 00000000..ae593bd0 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php @@ -0,0 +1,44 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage; + +/** + * Exception that is raised when code is unintentionally covered. + */ +final class UnintentionallyCoveredCodeException extends RuntimeException +{ + /** + * @var array + */ + private $unintentionallyCoveredUnits = []; + + public function __construct(array $unintentionallyCoveredUnits) + { + $this->unintentionallyCoveredUnits = $unintentionallyCoveredUnits; + + parent::__construct($this->toString()); + } + + public function getUnintentionallyCoveredUnits(): array + { + return $this->unintentionallyCoveredUnits; + } + + private function toString(): string + { + $message = ''; + + foreach ($this->unintentionallyCoveredUnits as $unit) { + $message .= '- ' . $unit . "\n"; + } + + return $message; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Filter.php b/vendor/phpunit/php-code-coverage/src/Filter.php new file mode 100644 index 00000000..631e22c1 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Filter.php @@ -0,0 +1,164 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage; + +use SebastianBergmann\FileIterator\Facade as FileIteratorFacade; + +/** + * Filter for whitelisting of code coverage information. + */ +final class Filter +{ + /** + * Source files that are whitelisted. + * + * @var array + */ + private $whitelistedFiles = []; + + /** + * Remembers the result of the `is_file()` calls. + * + * @var bool[] + */ + private $isFileCallsCache = []; + + /** + * Adds a directory to the whitelist (recursively). + */ + public function addDirectoryToWhitelist(string $directory, string $suffix = '.php', string $prefix = ''): void + { + $facade = new FileIteratorFacade; + $files = $facade->getFilesAsArray($directory, $suffix, $prefix); + + foreach ($files as $file) { + $this->addFileToWhitelist($file); + } + } + + /** + * Adds a file to the whitelist. + */ + public function addFileToWhitelist(string $filename): void + { + $this->whitelistedFiles[\realpath($filename)] = true; + } + + /** + * Adds files to the whitelist. + * + * @param string[] $files + */ + public function addFilesToWhitelist(array $files): void + { + foreach ($files as $file) { + $this->addFileToWhitelist($file); + } + } + + /** + * Removes a directory from the whitelist (recursively). + */ + public function removeDirectoryFromWhitelist(string $directory, string $suffix = '.php', string $prefix = ''): void + { + $facade = new FileIteratorFacade; + $files = $facade->getFilesAsArray($directory, $suffix, $prefix); + + foreach ($files as $file) { + $this->removeFileFromWhitelist($file); + } + } + + /** + * Removes a file from the whitelist. + */ + public function removeFileFromWhitelist(string $filename): void + { + $filename = \realpath($filename); + + unset($this->whitelistedFiles[$filename]); + } + + /** + * Checks whether a filename is a real filename. + */ + public function isFile(string $filename): bool + { + if (isset($this->isFileCallsCache[$filename])) { + return $this->isFileCallsCache[$filename]; + } + + if ($filename === '-' || + \strpos($filename, 'vfs://') === 0 || + \strpos($filename, 'xdebug://debug-eval') !== false || + \strpos($filename, 'eval()\'d code') !== false || + \strpos($filename, 'runtime-created function') !== false || + \strpos($filename, 'runkit created function') !== false || + \strpos($filename, 'assert code') !== false || + \strpos($filename, 'regexp code') !== false || + \strpos($filename, 'Standard input code') !== false) { + $isFile = false; + } else { + $isFile = \file_exists($filename); + } + + $this->isFileCallsCache[$filename] = $isFile; + + return $isFile; + } + + /** + * Checks whether or not a file is filtered. + */ + public function isFiltered(string $filename): bool + { + if (!$this->isFile($filename)) { + return true; + } + + return !isset($this->whitelistedFiles[$filename]); + } + + /** + * Returns the list of whitelisted files. + * + * @return string[] + */ + public function getWhitelist(): array + { + return \array_keys($this->whitelistedFiles); + } + + /** + * Returns whether this filter has a whitelist. + */ + public function hasWhitelist(): bool + { + return !empty($this->whitelistedFiles); + } + + /** + * Returns the whitelisted files. + * + * @return string[] + */ + public function getWhitelistedFiles(): array + { + return $this->whitelistedFiles; + } + + /** + * Sets the whitelisted files. + */ + public function setWhitelistedFiles(array $whitelistedFiles): void + { + $this->whitelistedFiles = $whitelistedFiles; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php b/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php new file mode 100644 index 00000000..5c892611 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Node/AbstractNode.php @@ -0,0 +1,328 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Node; + +use SebastianBergmann\CodeCoverage\Util; + +/** + * Base class for nodes in the code coverage information tree. + */ +abstract class AbstractNode implements \Countable +{ + /** + * @var string + */ + private $name; + + /** + * @var string + */ + private $path; + + /** + * @var array + */ + private $pathArray; + + /** + * @var AbstractNode + */ + private $parent; + + /** + * @var string + */ + private $id; + + public function __construct(string $name, self $parent = null) + { + if (\substr($name, -1) == \DIRECTORY_SEPARATOR) { + $name = \substr($name, 0, -1); + } + + $this->name = $name; + $this->parent = $parent; + } + + public function getName(): string + { + return $this->name; + } + + public function getId(): string + { + if ($this->id === null) { + $parent = $this->getParent(); + + if ($parent === null) { + $this->id = 'index'; + } else { + $parentId = $parent->getId(); + + if ($parentId === 'index') { + $this->id = \str_replace(':', '_', $this->name); + } else { + $this->id = $parentId . '/' . $this->name; + } + } + } + + return $this->id; + } + + public function getPath(): string + { + if ($this->path === null) { + if ($this->parent === null || $this->parent->getPath() === null || $this->parent->getPath() === false) { + $this->path = $this->name; + } else { + $this->path = $this->parent->getPath() . \DIRECTORY_SEPARATOR . $this->name; + } + } + + return $this->path; + } + + public function getPathAsArray(): array + { + if ($this->pathArray === null) { + if ($this->parent === null) { + $this->pathArray = []; + } else { + $this->pathArray = $this->parent->getPathAsArray(); + } + + $this->pathArray[] = $this; + } + + return $this->pathArray; + } + + public function getParent(): ?self + { + return $this->parent; + } + + /** + * Returns the percentage of classes that has been tested. + * + * @return int|string + */ + public function getTestedClassesPercent(bool $asString = true) + { + return Util::percent( + $this->getNumTestedClasses(), + $this->getNumClasses(), + $asString + ); + } + + /** + * Returns the percentage of traits that has been tested. + * + * @return int|string + */ + public function getTestedTraitsPercent(bool $asString = true) + { + return Util::percent( + $this->getNumTestedTraits(), + $this->getNumTraits(), + $asString + ); + } + + /** + * Returns the percentage of classes and traits that has been tested. + * + * @return int|string + */ + public function getTestedClassesAndTraitsPercent(bool $asString = true) + { + return Util::percent( + $this->getNumTestedClassesAndTraits(), + $this->getNumClassesAndTraits(), + $asString + ); + } + + /** + * Returns the percentage of functions that has been tested. + * + * @return int|string + */ + public function getTestedFunctionsPercent(bool $asString = true) + { + return Util::percent( + $this->getNumTestedFunctions(), + $this->getNumFunctions(), + $asString + ); + } + + /** + * Returns the percentage of methods that has been tested. + * + * @return int|string + */ + public function getTestedMethodsPercent(bool $asString = true) + { + return Util::percent( + $this->getNumTestedMethods(), + $this->getNumMethods(), + $asString + ); + } + + /** + * Returns the percentage of functions and methods that has been tested. + * + * @return int|string + */ + public function getTestedFunctionsAndMethodsPercent(bool $asString = true) + { + return Util::percent( + $this->getNumTestedFunctionsAndMethods(), + $this->getNumFunctionsAndMethods(), + $asString + ); + } + + /** + * Returns the percentage of executed lines. + * + * @return int|string + */ + public function getLineExecutedPercent(bool $asString = true) + { + return Util::percent( + $this->getNumExecutedLines(), + $this->getNumExecutableLines(), + $asString + ); + } + + /** + * Returns the number of classes and traits. + */ + public function getNumClassesAndTraits(): int + { + return $this->getNumClasses() + $this->getNumTraits(); + } + + /** + * Returns the number of tested classes and traits. + */ + public function getNumTestedClassesAndTraits(): int + { + return $this->getNumTestedClasses() + $this->getNumTestedTraits(); + } + + /** + * Returns the classes and traits of this node. + */ + public function getClassesAndTraits(): array + { + return \array_merge($this->getClasses(), $this->getTraits()); + } + + /** + * Returns the number of functions and methods. + */ + public function getNumFunctionsAndMethods(): int + { + return $this->getNumFunctions() + $this->getNumMethods(); + } + + /** + * Returns the number of tested functions and methods. + */ + public function getNumTestedFunctionsAndMethods(): int + { + return $this->getNumTestedFunctions() + $this->getNumTestedMethods(); + } + + /** + * Returns the functions and methods of this node. + */ + public function getFunctionsAndMethods(): array + { + return \array_merge($this->getFunctions(), $this->getMethods()); + } + + /** + * Returns the classes of this node. + */ + abstract public function getClasses(): array; + + /** + * Returns the traits of this node. + */ + abstract public function getTraits(): array; + + /** + * Returns the functions of this node. + */ + abstract public function getFunctions(): array; + + /** + * Returns the LOC/CLOC/NCLOC of this node. + */ + abstract public function getLinesOfCode(): array; + + /** + * Returns the number of executable lines. + */ + abstract public function getNumExecutableLines(): int; + + /** + * Returns the number of executed lines. + */ + abstract public function getNumExecutedLines(): int; + + /** + * Returns the number of classes. + */ + abstract public function getNumClasses(): int; + + /** + * Returns the number of tested classes. + */ + abstract public function getNumTestedClasses(): int; + + /** + * Returns the number of traits. + */ + abstract public function getNumTraits(): int; + + /** + * Returns the number of tested traits. + */ + abstract public function getNumTestedTraits(): int; + + /** + * Returns the number of methods. + */ + abstract public function getNumMethods(): int; + + /** + * Returns the number of tested methods. + */ + abstract public function getNumTestedMethods(): int; + + /** + * Returns the number of functions. + */ + abstract public function getNumFunctions(): int; + + /** + * Returns the number of tested functions. + */ + abstract public function getNumTestedFunctions(): int; +} diff --git a/vendor/phpunit/php-code-coverage/src/Node/Builder.php b/vendor/phpunit/php-code-coverage/src/Node/Builder.php new file mode 100644 index 00000000..9e4ac24a --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Node/Builder.php @@ -0,0 +1,225 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Node; + +use SebastianBergmann\CodeCoverage\CodeCoverage; + +final class Builder +{ + public function build(CodeCoverage $coverage): Directory + { + $files = $coverage->getData(); + $commonPath = $this->reducePaths($files); + $root = new Directory( + $commonPath, + null + ); + + $this->addItems( + $root, + $this->buildDirectoryStructure($files), + $coverage->getTests(), + $coverage->getCacheTokens() + ); + + return $root; + } + + private function addItems(Directory $root, array $items, array $tests, bool $cacheTokens): void + { + foreach ($items as $key => $value) { + if (\substr($key, -2) == '/f') { + $key = \substr($key, 0, -2); + + if (\file_exists($root->getPath() . \DIRECTORY_SEPARATOR . $key)) { + $root->addFile($key, $value, $tests, $cacheTokens); + } + } else { + $child = $root->addDirectory($key); + $this->addItems($child, $value, $tests, $cacheTokens); + } + } + } + + /** + * Builds an array representation of the directory structure. + * + * For instance, + * + * + * Array + * ( + * [Money.php] => Array + * ( + * ... + * ) + * + * [MoneyBag.php] => Array + * ( + * ... + * ) + * ) + * + * + * is transformed into + * + * + * Array + * ( + * [.] => Array + * ( + * [Money.php] => Array + * ( + * ... + * ) + * + * [MoneyBag.php] => Array + * ( + * ... + * ) + * ) + * ) + * + */ + private function buildDirectoryStructure(array $files): array + { + $result = []; + + foreach ($files as $path => $file) { + $path = \explode(\DIRECTORY_SEPARATOR, $path); + $pointer = &$result; + $max = \count($path); + + for ($i = 0; $i < $max; $i++) { + $type = ''; + + if ($i == ($max - 1)) { + $type = '/f'; + } + + $pointer = &$pointer[$path[$i] . $type]; + } + + $pointer = $file; + } + + return $result; + } + + /** + * Reduces the paths by cutting the longest common start path. + * + * For instance, + * + * + * Array + * ( + * [/home/sb/Money/Money.php] => Array + * ( + * ... + * ) + * + * [/home/sb/Money/MoneyBag.php] => Array + * ( + * ... + * ) + * ) + * + * + * is reduced to + * + * + * Array + * ( + * [Money.php] => Array + * ( + * ... + * ) + * + * [MoneyBag.php] => Array + * ( + * ... + * ) + * ) + * + */ + private function reducePaths(array &$files): string + { + if (empty($files)) { + return '.'; + } + + $commonPath = ''; + $paths = \array_keys($files); + + if (\count($files) === 1) { + $commonPath = \dirname($paths[0]) . \DIRECTORY_SEPARATOR; + $files[\basename($paths[0])] = $files[$paths[0]]; + + unset($files[$paths[0]]); + + return $commonPath; + } + + $max = \count($paths); + + for ($i = 0; $i < $max; $i++) { + // strip phar:// prefixes + if (\strpos($paths[$i], 'phar://') === 0) { + $paths[$i] = \substr($paths[$i], 7); + $paths[$i] = \str_replace('/', \DIRECTORY_SEPARATOR, $paths[$i]); + } + $paths[$i] = \explode(\DIRECTORY_SEPARATOR, $paths[$i]); + + if (empty($paths[$i][0])) { + $paths[$i][0] = \DIRECTORY_SEPARATOR; + } + } + + $done = false; + $max = \count($paths); + + while (!$done) { + for ($i = 0; $i < $max - 1; $i++) { + if (!isset($paths[$i][0]) || + !isset($paths[$i + 1][0]) || + $paths[$i][0] != $paths[$i + 1][0]) { + $done = true; + + break; + } + } + + if (!$done) { + $commonPath .= $paths[0][0]; + + if ($paths[0][0] != \DIRECTORY_SEPARATOR) { + $commonPath .= \DIRECTORY_SEPARATOR; + } + + for ($i = 0; $i < $max; $i++) { + \array_shift($paths[$i]); + } + } + } + + $original = \array_keys($files); + $max = \count($original); + + for ($i = 0; $i < $max; $i++) { + $files[\implode(\DIRECTORY_SEPARATOR, $paths[$i])] = $files[$original[$i]]; + unset($files[$original[$i]]); + } + + \ksort($files); + + return \substr($commonPath, 0, -1); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Node/Directory.php b/vendor/phpunit/php-code-coverage/src/Node/Directory.php new file mode 100644 index 00000000..a82b8ea9 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Node/Directory.php @@ -0,0 +1,427 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Node; + +use SebastianBergmann\CodeCoverage\InvalidArgumentException; + +/** + * Represents a directory in the code coverage information tree. + */ +final class Directory extends AbstractNode implements \IteratorAggregate +{ + /** + * @var AbstractNode[] + */ + private $children = []; + + /** + * @var Directory[] + */ + private $directories = []; + + /** + * @var File[] + */ + private $files = []; + + /** + * @var array + */ + private $classes; + + /** + * @var array + */ + private $traits; + + /** + * @var array + */ + private $functions; + + /** + * @var array + */ + private $linesOfCode; + + /** + * @var int + */ + private $numFiles = -1; + + /** + * @var int + */ + private $numExecutableLines = -1; + + /** + * @var int + */ + private $numExecutedLines = -1; + + /** + * @var int + */ + private $numClasses = -1; + + /** + * @var int + */ + private $numTestedClasses = -1; + + /** + * @var int + */ + private $numTraits = -1; + + /** + * @var int + */ + private $numTestedTraits = -1; + + /** + * @var int + */ + private $numMethods = -1; + + /** + * @var int + */ + private $numTestedMethods = -1; + + /** + * @var int + */ + private $numFunctions = -1; + + /** + * @var int + */ + private $numTestedFunctions = -1; + + /** + * Returns the number of files in/under this node. + */ + public function count(): int + { + if ($this->numFiles === -1) { + $this->numFiles = 0; + + foreach ($this->children as $child) { + $this->numFiles += \count($child); + } + } + + return $this->numFiles; + } + + /** + * Returns an iterator for this node. + */ + public function getIterator(): \RecursiveIteratorIterator + { + return new \RecursiveIteratorIterator( + new Iterator($this), + \RecursiveIteratorIterator::SELF_FIRST + ); + } + + /** + * Adds a new directory. + */ + public function addDirectory(string $name): self + { + $directory = new self($name, $this); + + $this->children[] = $directory; + $this->directories[] = &$this->children[\count($this->children) - 1]; + + return $directory; + } + + /** + * Adds a new file. + * + * @throws InvalidArgumentException + */ + public function addFile(string $name, array $coverageData, array $testData, bool $cacheTokens): File + { + $file = new File($name, $this, $coverageData, $testData, $cacheTokens); + + $this->children[] = $file; + $this->files[] = &$this->children[\count($this->children) - 1]; + + $this->numExecutableLines = -1; + $this->numExecutedLines = -1; + + return $file; + } + + /** + * Returns the directories in this directory. + */ + public function getDirectories(): array + { + return $this->directories; + } + + /** + * Returns the files in this directory. + */ + public function getFiles(): array + { + return $this->files; + } + + /** + * Returns the child nodes of this node. + */ + public function getChildNodes(): array + { + return $this->children; + } + + /** + * Returns the classes of this node. + */ + public function getClasses(): array + { + if ($this->classes === null) { + $this->classes = []; + + foreach ($this->children as $child) { + $this->classes = \array_merge( + $this->classes, + $child->getClasses() + ); + } + } + + return $this->classes; + } + + /** + * Returns the traits of this node. + */ + public function getTraits(): array + { + if ($this->traits === null) { + $this->traits = []; + + foreach ($this->children as $child) { + $this->traits = \array_merge( + $this->traits, + $child->getTraits() + ); + } + } + + return $this->traits; + } + + /** + * Returns the functions of this node. + */ + public function getFunctions(): array + { + if ($this->functions === null) { + $this->functions = []; + + foreach ($this->children as $child) { + $this->functions = \array_merge( + $this->functions, + $child->getFunctions() + ); + } + } + + return $this->functions; + } + + /** + * Returns the LOC/CLOC/NCLOC of this node. + */ + public function getLinesOfCode(): array + { + if ($this->linesOfCode === null) { + $this->linesOfCode = ['loc' => 0, 'cloc' => 0, 'ncloc' => 0]; + + foreach ($this->children as $child) { + $linesOfCode = $child->getLinesOfCode(); + + $this->linesOfCode['loc'] += $linesOfCode['loc']; + $this->linesOfCode['cloc'] += $linesOfCode['cloc']; + $this->linesOfCode['ncloc'] += $linesOfCode['ncloc']; + } + } + + return $this->linesOfCode; + } + + /** + * Returns the number of executable lines. + */ + public function getNumExecutableLines(): int + { + if ($this->numExecutableLines === -1) { + $this->numExecutableLines = 0; + + foreach ($this->children as $child) { + $this->numExecutableLines += $child->getNumExecutableLines(); + } + } + + return $this->numExecutableLines; + } + + /** + * Returns the number of executed lines. + */ + public function getNumExecutedLines(): int + { + if ($this->numExecutedLines === -1) { + $this->numExecutedLines = 0; + + foreach ($this->children as $child) { + $this->numExecutedLines += $child->getNumExecutedLines(); + } + } + + return $this->numExecutedLines; + } + + /** + * Returns the number of classes. + */ + public function getNumClasses(): int + { + if ($this->numClasses === -1) { + $this->numClasses = 0; + + foreach ($this->children as $child) { + $this->numClasses += $child->getNumClasses(); + } + } + + return $this->numClasses; + } + + /** + * Returns the number of tested classes. + */ + public function getNumTestedClasses(): int + { + if ($this->numTestedClasses === -1) { + $this->numTestedClasses = 0; + + foreach ($this->children as $child) { + $this->numTestedClasses += $child->getNumTestedClasses(); + } + } + + return $this->numTestedClasses; + } + + /** + * Returns the number of traits. + */ + public function getNumTraits(): int + { + if ($this->numTraits === -1) { + $this->numTraits = 0; + + foreach ($this->children as $child) { + $this->numTraits += $child->getNumTraits(); + } + } + + return $this->numTraits; + } + + /** + * Returns the number of tested traits. + */ + public function getNumTestedTraits(): int + { + if ($this->numTestedTraits === -1) { + $this->numTestedTraits = 0; + + foreach ($this->children as $child) { + $this->numTestedTraits += $child->getNumTestedTraits(); + } + } + + return $this->numTestedTraits; + } + + /** + * Returns the number of methods. + */ + public function getNumMethods(): int + { + if ($this->numMethods === -1) { + $this->numMethods = 0; + + foreach ($this->children as $child) { + $this->numMethods += $child->getNumMethods(); + } + } + + return $this->numMethods; + } + + /** + * Returns the number of tested methods. + */ + public function getNumTestedMethods(): int + { + if ($this->numTestedMethods === -1) { + $this->numTestedMethods = 0; + + foreach ($this->children as $child) { + $this->numTestedMethods += $child->getNumTestedMethods(); + } + } + + return $this->numTestedMethods; + } + + /** + * Returns the number of functions. + */ + public function getNumFunctions(): int + { + if ($this->numFunctions === -1) { + $this->numFunctions = 0; + + foreach ($this->children as $child) { + $this->numFunctions += $child->getNumFunctions(); + } + } + + return $this->numFunctions; + } + + /** + * Returns the number of tested functions. + */ + public function getNumTestedFunctions(): int + { + if ($this->numTestedFunctions === -1) { + $this->numTestedFunctions = 0; + + foreach ($this->children as $child) { + $this->numTestedFunctions += $child->getNumTestedFunctions(); + } + } + + return $this->numTestedFunctions; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Node/File.php b/vendor/phpunit/php-code-coverage/src/Node/File.php new file mode 100644 index 00000000..8355cda5 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Node/File.php @@ -0,0 +1,611 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Node; + +/** + * Represents a file in the code coverage information tree. + */ +final class File extends AbstractNode +{ + /** + * @var array + */ + private $coverageData; + + /** + * @var array + */ + private $testData; + + /** + * @var int + */ + private $numExecutableLines = 0; + + /** + * @var int + */ + private $numExecutedLines = 0; + + /** + * @var array + */ + private $classes = []; + + /** + * @var array + */ + private $traits = []; + + /** + * @var array + */ + private $functions = []; + + /** + * @var array + */ + private $linesOfCode = []; + + /** + * @var int + */ + private $numClasses; + + /** + * @var int + */ + private $numTestedClasses = 0; + + /** + * @var int + */ + private $numTraits; + + /** + * @var int + */ + private $numTestedTraits = 0; + + /** + * @var int + */ + private $numMethods; + + /** + * @var int + */ + private $numTestedMethods; + + /** + * @var int + */ + private $numTestedFunctions; + + /** + * @var bool + */ + private $cacheTokens; + + /** + * @var array + */ + private $codeUnitsByLine = []; + + public function __construct(string $name, AbstractNode $parent, array $coverageData, array $testData, bool $cacheTokens) + { + parent::__construct($name, $parent); + + $this->coverageData = $coverageData; + $this->testData = $testData; + $this->cacheTokens = $cacheTokens; + + $this->calculateStatistics(); + } + + /** + * Returns the number of files in/under this node. + */ + public function count(): int + { + return 1; + } + + /** + * Returns the code coverage data of this node. + */ + public function getCoverageData(): array + { + return $this->coverageData; + } + + /** + * Returns the test data of this node. + */ + public function getTestData(): array + { + return $this->testData; + } + + /** + * Returns the classes of this node. + */ + public function getClasses(): array + { + return $this->classes; + } + + /** + * Returns the traits of this node. + */ + public function getTraits(): array + { + return $this->traits; + } + + /** + * Returns the functions of this node. + */ + public function getFunctions(): array + { + return $this->functions; + } + + /** + * Returns the LOC/CLOC/NCLOC of this node. + */ + public function getLinesOfCode(): array + { + return $this->linesOfCode; + } + + /** + * Returns the number of executable lines. + */ + public function getNumExecutableLines(): int + { + return $this->numExecutableLines; + } + + /** + * Returns the number of executed lines. + */ + public function getNumExecutedLines(): int + { + return $this->numExecutedLines; + } + + /** + * Returns the number of classes. + */ + public function getNumClasses(): int + { + if ($this->numClasses === null) { + $this->numClasses = 0; + + foreach ($this->classes as $class) { + foreach ($class['methods'] as $method) { + if ($method['executableLines'] > 0) { + $this->numClasses++; + + continue 2; + } + } + } + } + + return $this->numClasses; + } + + /** + * Returns the number of tested classes. + */ + public function getNumTestedClasses(): int + { + return $this->numTestedClasses; + } + + /** + * Returns the number of traits. + */ + public function getNumTraits(): int + { + if ($this->numTraits === null) { + $this->numTraits = 0; + + foreach ($this->traits as $trait) { + foreach ($trait['methods'] as $method) { + if ($method['executableLines'] > 0) { + $this->numTraits++; + + continue 2; + } + } + } + } + + return $this->numTraits; + } + + /** + * Returns the number of tested traits. + */ + public function getNumTestedTraits(): int + { + return $this->numTestedTraits; + } + + /** + * Returns the number of methods. + */ + public function getNumMethods(): int + { + if ($this->numMethods === null) { + $this->numMethods = 0; + + foreach ($this->classes as $class) { + foreach ($class['methods'] as $method) { + if ($method['executableLines'] > 0) { + $this->numMethods++; + } + } + } + + foreach ($this->traits as $trait) { + foreach ($trait['methods'] as $method) { + if ($method['executableLines'] > 0) { + $this->numMethods++; + } + } + } + } + + return $this->numMethods; + } + + /** + * Returns the number of tested methods. + */ + public function getNumTestedMethods(): int + { + if ($this->numTestedMethods === null) { + $this->numTestedMethods = 0; + + foreach ($this->classes as $class) { + foreach ($class['methods'] as $method) { + if ($method['executableLines'] > 0 && + $method['coverage'] === 100) { + $this->numTestedMethods++; + } + } + } + + foreach ($this->traits as $trait) { + foreach ($trait['methods'] as $method) { + if ($method['executableLines'] > 0 && + $method['coverage'] === 100) { + $this->numTestedMethods++; + } + } + } + } + + return $this->numTestedMethods; + } + + /** + * Returns the number of functions. + */ + public function getNumFunctions(): int + { + return \count($this->functions); + } + + /** + * Returns the number of tested functions. + */ + public function getNumTestedFunctions(): int + { + if ($this->numTestedFunctions === null) { + $this->numTestedFunctions = 0; + + foreach ($this->functions as $function) { + if ($function['executableLines'] > 0 && + $function['coverage'] === 100) { + $this->numTestedFunctions++; + } + } + } + + return $this->numTestedFunctions; + } + + private function calculateStatistics(): void + { + if ($this->cacheTokens) { + $tokens = \PHP_Token_Stream_CachingFactory::get($this->getPath()); + } else { + $tokens = new \PHP_Token_Stream($this->getPath()); + } + + $this->linesOfCode = $tokens->getLinesOfCode(); + + foreach (\range(1, $this->linesOfCode['loc']) as $lineNumber) { + $this->codeUnitsByLine[$lineNumber] = []; + } + + try { + $this->processClasses($tokens); + $this->processTraits($tokens); + $this->processFunctions($tokens); + } catch (\OutOfBoundsException $e) { + // This can happen with PHP_Token_Stream if the file is syntactically invalid, + // and probably affects a file that wasn't executed. + } + unset($tokens); + + foreach (\range(1, $this->linesOfCode['loc']) as $lineNumber) { + if (isset($this->coverageData[$lineNumber])) { + foreach ($this->codeUnitsByLine[$lineNumber] as &$codeUnit) { + $codeUnit['executableLines']++; + } + + unset($codeUnit); + + $this->numExecutableLines++; + + if (\count($this->coverageData[$lineNumber]) > 0) { + foreach ($this->codeUnitsByLine[$lineNumber] as &$codeUnit) { + $codeUnit['executedLines']++; + } + + unset($codeUnit); + + $this->numExecutedLines++; + } + } + } + + foreach ($this->traits as &$trait) { + foreach ($trait['methods'] as &$method) { + if ($method['executableLines'] > 0) { + $method['coverage'] = ($method['executedLines'] / + $method['executableLines']) * 100; + } else { + $method['coverage'] = 100; + } + + $method['crap'] = $this->crap( + $method['ccn'], + $method['coverage'] + ); + + $trait['ccn'] += $method['ccn']; + } + + unset($method); + + if ($trait['executableLines'] > 0) { + $trait['coverage'] = ($trait['executedLines'] / + $trait['executableLines']) * 100; + + if ($trait['coverage'] === 100) { + $this->numTestedClasses++; + } + } else { + $trait['coverage'] = 100; + } + + $trait['crap'] = $this->crap( + $trait['ccn'], + $trait['coverage'] + ); + } + + unset($trait); + + foreach ($this->classes as &$class) { + foreach ($class['methods'] as &$method) { + if ($method['executableLines'] > 0) { + $method['coverage'] = ($method['executedLines'] / + $method['executableLines']) * 100; + } else { + $method['coverage'] = 100; + } + + $method['crap'] = $this->crap( + $method['ccn'], + $method['coverage'] + ); + + $class['ccn'] += $method['ccn']; + } + + unset($method); + + if ($class['executableLines'] > 0) { + $class['coverage'] = ($class['executedLines'] / + $class['executableLines']) * 100; + + if ($class['coverage'] === 100) { + $this->numTestedClasses++; + } + } else { + $class['coverage'] = 100; + } + + $class['crap'] = $this->crap( + $class['ccn'], + $class['coverage'] + ); + } + + unset($class); + + foreach ($this->functions as &$function) { + if ($function['executableLines'] > 0) { + $function['coverage'] = ($function['executedLines'] / + $function['executableLines']) * 100; + } else { + $function['coverage'] = 100; + } + + if ($function['coverage'] === 100) { + $this->numTestedFunctions++; + } + + $function['crap'] = $this->crap( + $function['ccn'], + $function['coverage'] + ); + } + } + + private function processClasses(\PHP_Token_Stream $tokens): void + { + $classes = $tokens->getClasses(); + $link = $this->getId() . '.html#'; + + foreach ($classes as $className => $class) { + if (\strpos($className, 'anonymous') === 0) { + continue; + } + + if (!empty($class['package']['namespace'])) { + $className = $class['package']['namespace'] . '\\' . $className; + } + + $this->classes[$className] = [ + 'className' => $className, + 'methods' => [], + 'startLine' => $class['startLine'], + 'executableLines' => 0, + 'executedLines' => 0, + 'ccn' => 0, + 'coverage' => 0, + 'crap' => 0, + 'package' => $class['package'], + 'link' => $link . $class['startLine'], + ]; + + foreach ($class['methods'] as $methodName => $method) { + if (\strpos($methodName, 'anonymous') === 0) { + continue; + } + + $this->classes[$className]['methods'][$methodName] = $this->newMethod($methodName, $method, $link); + + foreach (\range($method['startLine'], $method['endLine']) as $lineNumber) { + $this->codeUnitsByLine[$lineNumber] = [ + &$this->classes[$className], + &$this->classes[$className]['methods'][$methodName], + ]; + } + } + } + } + + private function processTraits(\PHP_Token_Stream $tokens): void + { + $traits = $tokens->getTraits(); + $link = $this->getId() . '.html#'; + + foreach ($traits as $traitName => $trait) { + $this->traits[$traitName] = [ + 'traitName' => $traitName, + 'methods' => [], + 'startLine' => $trait['startLine'], + 'executableLines' => 0, + 'executedLines' => 0, + 'ccn' => 0, + 'coverage' => 0, + 'crap' => 0, + 'package' => $trait['package'], + 'link' => $link . $trait['startLine'], + ]; + + foreach ($trait['methods'] as $methodName => $method) { + if (\strpos($methodName, 'anonymous') === 0) { + continue; + } + + $this->traits[$traitName]['methods'][$methodName] = $this->newMethod($methodName, $method, $link); + + foreach (\range($method['startLine'], $method['endLine']) as $lineNumber) { + $this->codeUnitsByLine[$lineNumber] = [ + &$this->traits[$traitName], + &$this->traits[$traitName]['methods'][$methodName], + ]; + } + } + } + } + + private function processFunctions(\PHP_Token_Stream $tokens): void + { + $functions = $tokens->getFunctions(); + $link = $this->getId() . '.html#'; + + foreach ($functions as $functionName => $function) { + if (\strpos($functionName, 'anonymous') === 0) { + continue; + } + + $this->functions[$functionName] = [ + 'functionName' => $functionName, + 'signature' => $function['signature'], + 'startLine' => $function['startLine'], + 'executableLines' => 0, + 'executedLines' => 0, + 'ccn' => $function['ccn'], + 'coverage' => 0, + 'crap' => 0, + 'link' => $link . $function['startLine'], + ]; + + foreach (\range($function['startLine'], $function['endLine']) as $lineNumber) { + $this->codeUnitsByLine[$lineNumber] = [&$this->functions[$functionName]]; + } + } + } + + private function crap(int $ccn, float $coverage): string + { + if ($coverage === 0) { + return (string) ($ccn ** 2 + $ccn); + } + + if ($coverage >= 95) { + return (string) $ccn; + } + + return \sprintf( + '%01.2F', + $ccn ** 2 * (1 - $coverage / 100) ** 3 + $ccn + ); + } + + private function newMethod(string $methodName, array $method, string $link): array + { + return [ + 'methodName' => $methodName, + 'visibility' => $method['visibility'], + 'signature' => $method['signature'], + 'startLine' => $method['startLine'], + 'endLine' => $method['endLine'], + 'executableLines' => 0, + 'executedLines' => 0, + 'ccn' => $method['ccn'], + 'coverage' => 0, + 'crap' => 0, + 'link' => $link . $method['startLine'], + ]; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Node/Iterator.php b/vendor/phpunit/php-code-coverage/src/Node/Iterator.php new file mode 100644 index 00000000..81af4f0d --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Node/Iterator.php @@ -0,0 +1,89 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Node; + +/** + * Recursive iterator for node object graphs. + */ +final class Iterator implements \RecursiveIterator +{ + /** + * @var int + */ + private $position; + + /** + * @var AbstractNode[] + */ + private $nodes; + + public function __construct(Directory $node) + { + $this->nodes = $node->getChildNodes(); + } + + /** + * Rewinds the Iterator to the first element. + */ + public function rewind(): void + { + $this->position = 0; + } + + /** + * Checks if there is a current element after calls to rewind() or next(). + */ + public function valid(): bool + { + return $this->position < \count($this->nodes); + } + + /** + * Returns the key of the current element. + */ + public function key(): int + { + return $this->position; + } + + /** + * Returns the current element. + */ + public function current(): AbstractNode + { + return $this->valid() ? $this->nodes[$this->position] : null; + } + + /** + * Moves forward to next element. + */ + public function next(): void + { + $this->position++; + } + + /** + * Returns the sub iterator for the current element. + * + * @return Iterator + */ + public function getChildren(): self + { + return new self($this->nodes[$this->position]); + } + + /** + * Checks whether the current element has children. + */ + public function hasChildren(): bool + { + return $this->nodes[$this->position] instanceof Directory; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Clover.php b/vendor/phpunit/php-code-coverage/src/Report/Clover.php new file mode 100644 index 00000000..2b28e60b --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Clover.php @@ -0,0 +1,258 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Report; + +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Node\File; +use SebastianBergmann\CodeCoverage\RuntimeException; + +/** + * Generates a Clover XML logfile from a code coverage object. + */ +final class Clover +{ + /** + * @throws \RuntimeException + */ + public function process(CodeCoverage $coverage, ?string $target = null, ?string $name = null): string + { + $xmlDocument = new \DOMDocument('1.0', 'UTF-8'); + $xmlDocument->formatOutput = true; + + $xmlCoverage = $xmlDocument->createElement('coverage'); + $xmlCoverage->setAttribute('generated', (int) $_SERVER['REQUEST_TIME']); + $xmlDocument->appendChild($xmlCoverage); + + $xmlProject = $xmlDocument->createElement('project'); + $xmlProject->setAttribute('timestamp', (int) $_SERVER['REQUEST_TIME']); + + if (\is_string($name)) { + $xmlProject->setAttribute('name', $name); + } + + $xmlCoverage->appendChild($xmlProject); + + $packages = []; + $report = $coverage->getReport(); + + foreach ($report as $item) { + if (!$item instanceof File) { + continue; + } + + /* @var File $item */ + + $xmlFile = $xmlDocument->createElement('file'); + $xmlFile->setAttribute('name', $item->getPath()); + + $classes = $item->getClassesAndTraits(); + $coverageData = $item->getCoverageData(); + $lines = []; + $namespace = 'global'; + + foreach ($classes as $className => $class) { + $classStatements = 0; + $coveredClassStatements = 0; + $coveredMethods = 0; + $classMethods = 0; + + foreach ($class['methods'] as $methodName => $method) { + if ($method['executableLines'] == 0) { + continue; + } + + $classMethods++; + $classStatements += $method['executableLines']; + $coveredClassStatements += $method['executedLines']; + + if ($method['coverage'] == 100) { + $coveredMethods++; + } + + $methodCount = 0; + + foreach (\range($method['startLine'], $method['endLine']) as $line) { + if (isset($coverageData[$line]) && ($coverageData[$line] !== null)) { + $methodCount = \max($methodCount, \count($coverageData[$line])); + } + } + + $lines[$method['startLine']] = [ + 'ccn' => $method['ccn'], + 'count' => $methodCount, + 'crap' => $method['crap'], + 'type' => 'method', + 'visibility' => $method['visibility'], + 'name' => $methodName, + ]; + } + + if (!empty($class['package']['namespace'])) { + $namespace = $class['package']['namespace']; + } + + $xmlClass = $xmlDocument->createElement('class'); + $xmlClass->setAttribute('name', $className); + $xmlClass->setAttribute('namespace', $namespace); + + if (!empty($class['package']['fullPackage'])) { + $xmlClass->setAttribute( + 'fullPackage', + $class['package']['fullPackage'] + ); + } + + if (!empty($class['package']['category'])) { + $xmlClass->setAttribute( + 'category', + $class['package']['category'] + ); + } + + if (!empty($class['package']['package'])) { + $xmlClass->setAttribute( + 'package', + $class['package']['package'] + ); + } + + if (!empty($class['package']['subpackage'])) { + $xmlClass->setAttribute( + 'subpackage', + $class['package']['subpackage'] + ); + } + + $xmlFile->appendChild($xmlClass); + + $xmlMetrics = $xmlDocument->createElement('metrics'); + $xmlMetrics->setAttribute('complexity', $class['ccn']); + $xmlMetrics->setAttribute('methods', $classMethods); + $xmlMetrics->setAttribute('coveredmethods', $coveredMethods); + $xmlMetrics->setAttribute('conditionals', 0); + $xmlMetrics->setAttribute('coveredconditionals', 0); + $xmlMetrics->setAttribute('statements', $classStatements); + $xmlMetrics->setAttribute('coveredstatements', $coveredClassStatements); + $xmlMetrics->setAttribute('elements', $classMethods + $classStatements /* + conditionals */); + $xmlMetrics->setAttribute('coveredelements', $coveredMethods + $coveredClassStatements /* + coveredconditionals */); + $xmlClass->appendChild($xmlMetrics); + } + + foreach ($coverageData as $line => $data) { + if ($data === null || isset($lines[$line])) { + continue; + } + + $lines[$line] = [ + 'count' => \count($data), 'type' => 'stmt', + ]; + } + + \ksort($lines); + + foreach ($lines as $line => $data) { + $xmlLine = $xmlDocument->createElement('line'); + $xmlLine->setAttribute('num', $line); + $xmlLine->setAttribute('type', $data['type']); + + if (isset($data['name'])) { + $xmlLine->setAttribute('name', $data['name']); + } + + if (isset($data['visibility'])) { + $xmlLine->setAttribute('visibility', $data['visibility']); + } + + if (isset($data['ccn'])) { + $xmlLine->setAttribute('complexity', $data['ccn']); + } + + if (isset($data['crap'])) { + $xmlLine->setAttribute('crap', $data['crap']); + } + + $xmlLine->setAttribute('count', $data['count']); + $xmlFile->appendChild($xmlLine); + } + + $linesOfCode = $item->getLinesOfCode(); + + $xmlMetrics = $xmlDocument->createElement('metrics'); + $xmlMetrics->setAttribute('loc', $linesOfCode['loc']); + $xmlMetrics->setAttribute('ncloc', $linesOfCode['ncloc']); + $xmlMetrics->setAttribute('classes', $item->getNumClassesAndTraits()); + $xmlMetrics->setAttribute('methods', $item->getNumMethods()); + $xmlMetrics->setAttribute('coveredmethods', $item->getNumTestedMethods()); + $xmlMetrics->setAttribute('conditionals', 0); + $xmlMetrics->setAttribute('coveredconditionals', 0); + $xmlMetrics->setAttribute('statements', $item->getNumExecutableLines()); + $xmlMetrics->setAttribute('coveredstatements', $item->getNumExecutedLines()); + $xmlMetrics->setAttribute('elements', $item->getNumMethods() + $item->getNumExecutableLines() /* + conditionals */); + $xmlMetrics->setAttribute('coveredelements', $item->getNumTestedMethods() + $item->getNumExecutedLines() /* + coveredconditionals */); + $xmlFile->appendChild($xmlMetrics); + + if ($namespace === 'global') { + $xmlProject->appendChild($xmlFile); + } else { + if (!isset($packages[$namespace])) { + $packages[$namespace] = $xmlDocument->createElement( + 'package' + ); + + $packages[$namespace]->setAttribute('name', $namespace); + $xmlProject->appendChild($packages[$namespace]); + } + + $packages[$namespace]->appendChild($xmlFile); + } + } + + $linesOfCode = $report->getLinesOfCode(); + + $xmlMetrics = $xmlDocument->createElement('metrics'); + $xmlMetrics->setAttribute('files', \count($report)); + $xmlMetrics->setAttribute('loc', $linesOfCode['loc']); + $xmlMetrics->setAttribute('ncloc', $linesOfCode['ncloc']); + $xmlMetrics->setAttribute('classes', $report->getNumClassesAndTraits()); + $xmlMetrics->setAttribute('methods', $report->getNumMethods()); + $xmlMetrics->setAttribute('coveredmethods', $report->getNumTestedMethods()); + $xmlMetrics->setAttribute('conditionals', 0); + $xmlMetrics->setAttribute('coveredconditionals', 0); + $xmlMetrics->setAttribute('statements', $report->getNumExecutableLines()); + $xmlMetrics->setAttribute('coveredstatements', $report->getNumExecutedLines()); + $xmlMetrics->setAttribute('elements', $report->getNumMethods() + $report->getNumExecutableLines() /* + conditionals */); + $xmlMetrics->setAttribute('coveredelements', $report->getNumTestedMethods() + $report->getNumExecutedLines() /* + coveredconditionals */); + $xmlProject->appendChild($xmlMetrics); + + $buffer = $xmlDocument->saveXML(); + + if ($target !== null) { + if (!$this->createDirectory(\dirname($target))) { + throw new \RuntimeException(\sprintf('Directory "%s" was not created', \dirname($target))); + } + + if (@\file_put_contents($target, $buffer) === false) { + throw new RuntimeException( + \sprintf( + 'Could not write to "%s', + $target + ) + ); + } + } + + return $buffer; + } + + private function createDirectory(string $directory): bool + { + return !(!\is_dir($directory) && !@\mkdir($directory, 0777, true) && !\is_dir($directory)); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php b/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php new file mode 100644 index 00000000..bd3c3975 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php @@ -0,0 +1,165 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Report; + +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Node\File; +use SebastianBergmann\CodeCoverage\RuntimeException; + +final class Crap4j +{ + /** + * @var int + */ + private $threshold; + + public function __construct(int $threshold = 30) + { + $this->threshold = $threshold; + } + + /** + * @throws \RuntimeException + */ + public function process(CodeCoverage $coverage, ?string $target = null, ?string $name = null): string + { + $document = new \DOMDocument('1.0', 'UTF-8'); + $document->formatOutput = true; + + $root = $document->createElement('crap_result'); + $document->appendChild($root); + + $project = $document->createElement('project', \is_string($name) ? $name : ''); + $root->appendChild($project); + $root->appendChild($document->createElement('timestamp', \date('Y-m-d H:i:s', (int) $_SERVER['REQUEST_TIME']))); + + $stats = $document->createElement('stats'); + $methodsNode = $document->createElement('methods'); + + $report = $coverage->getReport(); + unset($coverage); + + $fullMethodCount = 0; + $fullCrapMethodCount = 0; + $fullCrapLoad = 0; + $fullCrap = 0; + + foreach ($report as $item) { + $namespace = 'global'; + + if (!$item instanceof File) { + continue; + } + + $file = $document->createElement('file'); + $file->setAttribute('name', $item->getPath()); + + $classes = $item->getClassesAndTraits(); + + foreach ($classes as $className => $class) { + foreach ($class['methods'] as $methodName => $method) { + $crapLoad = $this->getCrapLoad($method['crap'], $method['ccn'], $method['coverage']); + + $fullCrap += $method['crap']; + $fullCrapLoad += $crapLoad; + $fullMethodCount++; + + if ($method['crap'] >= $this->threshold) { + $fullCrapMethodCount++; + } + + $methodNode = $document->createElement('method'); + + if (!empty($class['package']['namespace'])) { + $namespace = $class['package']['namespace']; + } + + $methodNode->appendChild($document->createElement('package', $namespace)); + $methodNode->appendChild($document->createElement('className', $className)); + $methodNode->appendChild($document->createElement('methodName', $methodName)); + $methodNode->appendChild($document->createElement('methodSignature', \htmlspecialchars($method['signature']))); + $methodNode->appendChild($document->createElement('fullMethod', \htmlspecialchars($method['signature']))); + $methodNode->appendChild($document->createElement('crap', $this->roundValue($method['crap']))); + $methodNode->appendChild($document->createElement('complexity', $method['ccn'])); + $methodNode->appendChild($document->createElement('coverage', $this->roundValue($method['coverage']))); + $methodNode->appendChild($document->createElement('crapLoad', \round($crapLoad))); + + $methodsNode->appendChild($methodNode); + } + } + } + + $stats->appendChild($document->createElement('name', 'Method Crap Stats')); + $stats->appendChild($document->createElement('methodCount', $fullMethodCount)); + $stats->appendChild($document->createElement('crapMethodCount', $fullCrapMethodCount)); + $stats->appendChild($document->createElement('crapLoad', \round($fullCrapLoad))); + $stats->appendChild($document->createElement('totalCrap', $fullCrap)); + + $crapMethodPercent = 0; + + if ($fullMethodCount > 0) { + $crapMethodPercent = $this->roundValue((100 * $fullCrapMethodCount) / $fullMethodCount); + } + + $stats->appendChild($document->createElement('crapMethodPercent', $crapMethodPercent)); + + $root->appendChild($stats); + $root->appendChild($methodsNode); + + $buffer = $document->saveXML(); + + if ($target !== null) { + if (!$this->createDirectory(\dirname($target))) { + throw new \RuntimeException(\sprintf('Directory "%s" was not created', \dirname($target))); + } + + if (@\file_put_contents($target, $buffer) === false) { + throw new RuntimeException( + \sprintf( + 'Could not write to "%s', + $target + ) + ); + } + } + + return $buffer; + } + + /** + * @param float $crapValue + * @param int $cyclomaticComplexity + * @param float $coveragePercent + */ + private function getCrapLoad($crapValue, $cyclomaticComplexity, $coveragePercent): float + { + $crapLoad = 0; + + if ($crapValue >= $this->threshold) { + $crapLoad += $cyclomaticComplexity * (1.0 - $coveragePercent / 100); + $crapLoad += $cyclomaticComplexity / $this->threshold; + } + + return $crapLoad; + } + + /** + * @param float $value + */ + private function roundValue($value): float + { + return \round($value, 2); + } + + private function createDirectory(string $directory): bool + { + return !(!\is_dir($directory) && !@\mkdir($directory, 0777, true) && !\is_dir($directory)); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php new file mode 100644 index 00000000..60441bca --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php @@ -0,0 +1,167 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Report\Html; + +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; +use SebastianBergmann\CodeCoverage\RuntimeException; + +/** + * Generates an HTML report from a code coverage object. + */ +final class Facade +{ + /** + * @var string + */ + private $templatePath; + + /** + * @var string + */ + private $generator; + + /** + * @var int + */ + private $lowUpperBound; + + /** + * @var int + */ + private $highLowerBound; + + public function __construct(int $lowUpperBound = 50, int $highLowerBound = 90, string $generator = '') + { + $this->generator = $generator; + $this->highLowerBound = $highLowerBound; + $this->lowUpperBound = $lowUpperBound; + $this->templatePath = __DIR__ . '/Renderer/Template/'; + } + + /** + * @throws RuntimeException + * @throws \InvalidArgumentException + * @throws \RuntimeException + */ + public function process(CodeCoverage $coverage, string $target): void + { + $target = $this->getDirectory($target); + $report = $coverage->getReport(); + + if (!isset($_SERVER['REQUEST_TIME'])) { + $_SERVER['REQUEST_TIME'] = \time(); + } + + $date = \date('D M j G:i:s T Y', $_SERVER['REQUEST_TIME']); + + $dashboard = new Dashboard( + $this->templatePath, + $this->generator, + $date, + $this->lowUpperBound, + $this->highLowerBound + ); + + $directory = new Directory( + $this->templatePath, + $this->generator, + $date, + $this->lowUpperBound, + $this->highLowerBound + ); + + $file = new File( + $this->templatePath, + $this->generator, + $date, + $this->lowUpperBound, + $this->highLowerBound + ); + + $directory->render($report, $target . 'index.html'); + $dashboard->render($report, $target . 'dashboard.html'); + + foreach ($report as $node) { + $id = $node->getId(); + + if ($node instanceof DirectoryNode) { + if (!$this->createDirectory($target . $id)) { + throw new \RuntimeException(\sprintf('Directory "%s" was not created', $target . $id)); + } + + $directory->render($node, $target . $id . '/index.html'); + $dashboard->render($node, $target . $id . '/dashboard.html'); + } else { + $dir = \dirname($target . $id); + + if (!$this->createDirectory($dir)) { + throw new \RuntimeException(\sprintf('Directory "%s" was not created', $dir)); + } + + $file->render($node, $target . $id . '.html'); + } + } + + $this->copyFiles($target); + } + + /** + * @throws RuntimeException + */ + private function copyFiles(string $target): void + { + $dir = $this->getDirectory($target . '.css'); + + \copy($this->templatePath . 'css/bootstrap.min.css', $dir . 'bootstrap.min.css'); + \copy($this->templatePath . 'css/nv.d3.min.css', $dir . 'nv.d3.min.css'); + \copy($this->templatePath . 'css/style.css', $dir . 'style.css'); + \copy($this->templatePath . 'css/custom.css', $dir . 'custom.css'); + \copy($this->templatePath . 'css/octicons.css', $dir . 'octicons.css'); + + $dir = $this->getDirectory($target . '.icons'); + \copy($this->templatePath . 'icons/file-code.svg', $dir . 'file-code.svg'); + \copy($this->templatePath . 'icons/file-directory.svg', $dir . 'file-directory.svg'); + + $dir = $this->getDirectory($target . '.js'); + \copy($this->templatePath . 'js/bootstrap.min.js', $dir . 'bootstrap.min.js'); + \copy($this->templatePath . 'js/popper.min.js', $dir . 'popper.min.js'); + \copy($this->templatePath . 'js/d3.min.js', $dir . 'd3.min.js'); + \copy($this->templatePath . 'js/jquery.min.js', $dir . 'jquery.min.js'); + \copy($this->templatePath . 'js/nv.d3.min.js', $dir . 'nv.d3.min.js'); + \copy($this->templatePath . 'js/file.js', $dir . 'file.js'); + } + + /** + * @throws RuntimeException + */ + private function getDirectory(string $directory): string + { + if (\substr($directory, -1, 1) != \DIRECTORY_SEPARATOR) { + $directory .= \DIRECTORY_SEPARATOR; + } + + if (!$this->createDirectory($directory)) { + throw new RuntimeException( + \sprintf( + 'Directory "%s" does not exist.', + $directory + ) + ); + } + + return $directory; + } + + private function createDirectory(string $directory): bool + { + return !(!\is_dir($directory) && !@\mkdir($directory, 0777, true) && !\is_dir($directory)); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php new file mode 100644 index 00000000..b39ff4c9 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php @@ -0,0 +1,270 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Report\Html; + +use SebastianBergmann\CodeCoverage\Node\AbstractNode; +use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; +use SebastianBergmann\CodeCoverage\Node\File as FileNode; +use SebastianBergmann\CodeCoverage\Version; +use SebastianBergmann\Environment\Runtime; + +/** + * Base class for node renderers. + */ +abstract class Renderer +{ + /** + * @var string + */ + protected $templatePath; + + /** + * @var string + */ + protected $generator; + + /** + * @var string + */ + protected $date; + + /** + * @var int + */ + protected $lowUpperBound; + + /** + * @var int + */ + protected $highLowerBound; + + /** + * @var string + */ + protected $version; + + public function __construct(string $templatePath, string $generator, string $date, int $lowUpperBound, int $highLowerBound) + { + $this->templatePath = $templatePath; + $this->generator = $generator; + $this->date = $date; + $this->lowUpperBound = $lowUpperBound; + $this->highLowerBound = $highLowerBound; + $this->version = Version::id(); + } + + protected function renderItemTemplate(\Text_Template $template, array $data): string + { + $numSeparator = ' / '; + + if (isset($data['numClasses']) && $data['numClasses'] > 0) { + $classesLevel = $this->getColorLevel($data['testedClassesPercent']); + + $classesNumber = $data['numTestedClasses'] . $numSeparator . + $data['numClasses']; + + $classesBar = $this->getCoverageBar( + $data['testedClassesPercent'] + ); + } else { + $classesLevel = ''; + $classesNumber = '0' . $numSeparator . '0'; + $classesBar = ''; + $data['testedClassesPercentAsString'] = 'n/a'; + } + + if ($data['numMethods'] > 0) { + $methodsLevel = $this->getColorLevel($data['testedMethodsPercent']); + + $methodsNumber = $data['numTestedMethods'] . $numSeparator . + $data['numMethods']; + + $methodsBar = $this->getCoverageBar( + $data['testedMethodsPercent'] + ); + } else { + $methodsLevel = ''; + $methodsNumber = '0' . $numSeparator . '0'; + $methodsBar = ''; + $data['testedMethodsPercentAsString'] = 'n/a'; + } + + if ($data['numExecutableLines'] > 0) { + $linesLevel = $this->getColorLevel($data['linesExecutedPercent']); + + $linesNumber = $data['numExecutedLines'] . $numSeparator . + $data['numExecutableLines']; + + $linesBar = $this->getCoverageBar( + $data['linesExecutedPercent'] + ); + } else { + $linesLevel = ''; + $linesNumber = '0' . $numSeparator . '0'; + $linesBar = ''; + $data['linesExecutedPercentAsString'] = 'n/a'; + } + + $template->setVar( + [ + 'icon' => $data['icon'] ?? '', + 'crap' => $data['crap'] ?? '', + 'name' => $data['name'], + 'lines_bar' => $linesBar, + 'lines_executed_percent' => $data['linesExecutedPercentAsString'], + 'lines_level' => $linesLevel, + 'lines_number' => $linesNumber, + 'methods_bar' => $methodsBar, + 'methods_tested_percent' => $data['testedMethodsPercentAsString'], + 'methods_level' => $methodsLevel, + 'methods_number' => $methodsNumber, + 'classes_bar' => $classesBar, + 'classes_tested_percent' => $data['testedClassesPercentAsString'] ?? '', + 'classes_level' => $classesLevel, + 'classes_number' => $classesNumber, + ] + ); + + return $template->render(); + } + + protected function setCommonTemplateVariables(\Text_Template $template, AbstractNode $node): void + { + $template->setVar( + [ + 'id' => $node->getId(), + 'full_path' => $node->getPath(), + 'path_to_root' => $this->getPathToRoot($node), + 'breadcrumbs' => $this->getBreadcrumbs($node), + 'date' => $this->date, + 'version' => $this->version, + 'runtime' => $this->getRuntimeString(), + 'generator' => $this->generator, + 'low_upper_bound' => $this->lowUpperBound, + 'high_lower_bound' => $this->highLowerBound, + ] + ); + } + + protected function getBreadcrumbs(AbstractNode $node): string + { + $breadcrumbs = ''; + $path = $node->getPathAsArray(); + $pathToRoot = []; + $max = \count($path); + + if ($node instanceof FileNode) { + $max--; + } + + for ($i = 0; $i < $max; $i++) { + $pathToRoot[] = \str_repeat('../', $i); + } + + foreach ($path as $step) { + if ($step !== $node) { + $breadcrumbs .= $this->getInactiveBreadcrumb( + $step, + \array_pop($pathToRoot) + ); + } else { + $breadcrumbs .= $this->getActiveBreadcrumb($step); + } + } + + return $breadcrumbs; + } + + protected function getActiveBreadcrumb(AbstractNode $node): string + { + $buffer = \sprintf( + ' ' . "\n", + $node->getName() + ); + + if ($node instanceof DirectoryNode) { + $buffer .= ' ' . "\n"; + } + + return $buffer; + } + + protected function getInactiveBreadcrumb(AbstractNode $node, string $pathToRoot): string + { + return \sprintf( + ' ' . "\n", + $pathToRoot, + $node->getName() + ); + } + + protected function getPathToRoot(AbstractNode $node): string + { + $id = $node->getId(); + $depth = \substr_count($id, '/'); + + if ($id !== 'index' && + $node instanceof DirectoryNode) { + $depth++; + } + + return \str_repeat('../', $depth); + } + + protected function getCoverageBar(float $percent): string + { + $level = $this->getColorLevel($percent); + + $template = new \Text_Template( + $this->templatePath . 'coverage_bar.html', + '{{', + '}}' + ); + + $template->setVar(['level' => $level, 'percent' => \sprintf('%.2F', $percent)]); + + return $template->render(); + } + + protected function getColorLevel(float $percent): string + { + if ($percent <= $this->lowUpperBound) { + return 'danger'; + } + + if ($percent > $this->lowUpperBound && + $percent < $this->highLowerBound) { + return 'warning'; + } + + return 'success'; + } + + private function getRuntimeString(): string + { + $runtime = new Runtime; + + $buffer = \sprintf( + '%s %s', + $runtime->getVendorUrl(), + $runtime->getName(), + $runtime->getVersion() + ); + + if ($runtime->hasXdebug() && !$runtime->hasPHPDBGCodeCoverage()) { + $buffer .= \sprintf( + ' with Xdebug %s', + \phpversion('xdebug') + ); + } + + return $buffer; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php new file mode 100644 index 00000000..68dfd402 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Dashboard.php @@ -0,0 +1,281 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Report\Html; + +use SebastianBergmann\CodeCoverage\Node\AbstractNode; +use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; + +/** + * Renders the dashboard for a directory node. + */ +final class Dashboard extends Renderer +{ + /** + * @throws \InvalidArgumentException + * @throws \RuntimeException + */ + public function render(DirectoryNode $node, string $file): void + { + $classes = $node->getClassesAndTraits(); + $template = new \Text_Template( + $this->templatePath . 'dashboard.html', + '{{', + '}}' + ); + + $this->setCommonTemplateVariables($template, $node); + + $baseLink = $node->getId() . '/'; + $complexity = $this->complexity($classes, $baseLink); + $coverageDistribution = $this->coverageDistribution($classes); + $insufficientCoverage = $this->insufficientCoverage($classes, $baseLink); + $projectRisks = $this->projectRisks($classes, $baseLink); + + $template->setVar( + [ + 'insufficient_coverage_classes' => $insufficientCoverage['class'], + 'insufficient_coverage_methods' => $insufficientCoverage['method'], + 'project_risks_classes' => $projectRisks['class'], + 'project_risks_methods' => $projectRisks['method'], + 'complexity_class' => $complexity['class'], + 'complexity_method' => $complexity['method'], + 'class_coverage_distribution' => $coverageDistribution['class'], + 'method_coverage_distribution' => $coverageDistribution['method'], + ] + ); + + $template->renderTo($file); + } + + /** + * Returns the data for the Class/Method Complexity charts. + */ + protected function complexity(array $classes, string $baseLink): array + { + $result = ['class' => [], 'method' => []]; + + foreach ($classes as $className => $class) { + foreach ($class['methods'] as $methodName => $method) { + if ($className !== '*') { + $methodName = $className . '::' . $methodName; + } + + $result['method'][] = [ + $method['coverage'], + $method['ccn'], + \sprintf( + '%s', + \str_replace($baseLink, '', $method['link']), + $methodName + ), + ]; + } + + $result['class'][] = [ + $class['coverage'], + $class['ccn'], + \sprintf( + '%s', + \str_replace($baseLink, '', $class['link']), + $className + ), + ]; + } + + return [ + 'class' => \json_encode($result['class']), + 'method' => \json_encode($result['method']), + ]; + } + + /** + * Returns the data for the Class / Method Coverage Distribution chart. + */ + protected function coverageDistribution(array $classes): array + { + $result = [ + 'class' => [ + '0%' => 0, + '0-10%' => 0, + '10-20%' => 0, + '20-30%' => 0, + '30-40%' => 0, + '40-50%' => 0, + '50-60%' => 0, + '60-70%' => 0, + '70-80%' => 0, + '80-90%' => 0, + '90-100%' => 0, + '100%' => 0, + ], + 'method' => [ + '0%' => 0, + '0-10%' => 0, + '10-20%' => 0, + '20-30%' => 0, + '30-40%' => 0, + '40-50%' => 0, + '50-60%' => 0, + '60-70%' => 0, + '70-80%' => 0, + '80-90%' => 0, + '90-100%' => 0, + '100%' => 0, + ], + ]; + + foreach ($classes as $class) { + foreach ($class['methods'] as $methodName => $method) { + if ($method['coverage'] === 0) { + $result['method']['0%']++; + } elseif ($method['coverage'] === 100) { + $result['method']['100%']++; + } else { + $key = \floor($method['coverage'] / 10) * 10; + $key = $key . '-' . ($key + 10) . '%'; + $result['method'][$key]++; + } + } + + if ($class['coverage'] === 0) { + $result['class']['0%']++; + } elseif ($class['coverage'] === 100) { + $result['class']['100%']++; + } else { + $key = \floor($class['coverage'] / 10) * 10; + $key = $key . '-' . ($key + 10) . '%'; + $result['class'][$key]++; + } + } + + return [ + 'class' => \json_encode(\array_values($result['class'])), + 'method' => \json_encode(\array_values($result['method'])), + ]; + } + + /** + * Returns the classes / methods with insufficient coverage. + */ + protected function insufficientCoverage(array $classes, string $baseLink): array + { + $leastTestedClasses = []; + $leastTestedMethods = []; + $result = ['class' => '', 'method' => '']; + + foreach ($classes as $className => $class) { + foreach ($class['methods'] as $methodName => $method) { + if ($method['coverage'] < $this->highLowerBound) { + $key = $methodName; + + if ($className !== '*') { + $key = $className . '::' . $methodName; + } + + $leastTestedMethods[$key] = $method['coverage']; + } + } + + if ($class['coverage'] < $this->highLowerBound) { + $leastTestedClasses[$className] = $class['coverage']; + } + } + + \asort($leastTestedClasses); + \asort($leastTestedMethods); + + foreach ($leastTestedClasses as $className => $coverage) { + $result['class'] .= \sprintf( + '
    ' . "\n", + \str_replace($baseLink, '', $classes[$className]['link']), + $className, + $coverage + ); + } + + foreach ($leastTestedMethods as $methodName => $coverage) { + [$class, $method] = \explode('::', $methodName); + + $result['method'] .= \sprintf( + ' ' . "\n", + \str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']), + $methodName, + $method, + $coverage + ); + } + + return $result; + } + + /** + * Returns the project risks according to the CRAP index. + */ + protected function projectRisks(array $classes, string $baseLink): array + { + $classRisks = []; + $methodRisks = []; + $result = ['class' => '', 'method' => '']; + + foreach ($classes as $className => $class) { + foreach ($class['methods'] as $methodName => $method) { + if ($method['coverage'] < $this->highLowerBound && $method['ccn'] > 1) { + $key = $methodName; + + if ($className !== '*') { + $key = $className . '::' . $methodName; + } + + $methodRisks[$key] = $method['crap']; + } + } + + if ($class['coverage'] < $this->highLowerBound && + $class['ccn'] > \count($class['methods'])) { + $classRisks[$className] = $class['crap']; + } + } + + \arsort($classRisks); + \arsort($methodRisks); + + foreach ($classRisks as $className => $crap) { + $result['class'] .= \sprintf( + ' ' . "\n", + \str_replace($baseLink, '', $classes[$className]['link']), + $className, + $crap + ); + } + + foreach ($methodRisks as $methodName => $crap) { + [$class, $method] = \explode('::', $methodName); + + $result['method'] .= \sprintf( + ' ' . "\n", + \str_replace($baseLink, '', $classes[$class]['methods'][$method]['link']), + $methodName, + $method, + $crap + ); + } + + return $result; + } + + protected function getActiveBreadcrumb(AbstractNode $node): string + { + return \sprintf( + ' ' . "\n" . + ' ' . "\n", + $node->getName() + ); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php new file mode 100644 index 00000000..711d1534 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Directory.php @@ -0,0 +1,98 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Report\Html; + +use SebastianBergmann\CodeCoverage\Node\AbstractNode as Node; +use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode; + +/** + * Renders a directory node. + */ +final class Directory extends Renderer +{ + /** + * @throws \InvalidArgumentException + * @throws \RuntimeException + */ + public function render(DirectoryNode $node, string $file): void + { + $template = new \Text_Template($this->templatePath . 'directory.html', '{{', '}}'); + + $this->setCommonTemplateVariables($template, $node); + + $items = $this->renderItem($node, true); + + foreach ($node->getDirectories() as $item) { + $items .= $this->renderItem($item); + } + + foreach ($node->getFiles() as $item) { + $items .= $this->renderItem($item); + } + + $template->setVar( + [ + 'id' => $node->getId(), + 'items' => $items, + ] + ); + + $template->renderTo($file); + } + + protected function renderItem(Node $node, bool $total = false): string + { + $data = [ + 'numClasses' => $node->getNumClassesAndTraits(), + 'numTestedClasses' => $node->getNumTestedClassesAndTraits(), + 'numMethods' => $node->getNumFunctionsAndMethods(), + 'numTestedMethods' => $node->getNumTestedFunctionsAndMethods(), + 'linesExecutedPercent' => $node->getLineExecutedPercent(false), + 'linesExecutedPercentAsString' => $node->getLineExecutedPercent(), + 'numExecutedLines' => $node->getNumExecutedLines(), + 'numExecutableLines' => $node->getNumExecutableLines(), + 'testedMethodsPercent' => $node->getTestedFunctionsAndMethodsPercent(false), + 'testedMethodsPercentAsString' => $node->getTestedFunctionsAndMethodsPercent(), + 'testedClassesPercent' => $node->getTestedClassesAndTraitsPercent(false), + 'testedClassesPercentAsString' => $node->getTestedClassesAndTraitsPercent(), + ]; + + if ($total) { + $data['name'] = 'Total'; + } else { + if ($node instanceof DirectoryNode) { + $data['name'] = \sprintf( + '%s', + $node->getName(), + $node->getName() + ); + + $up = \str_repeat('../', \count($node->getPathAsArray()) - 2); + + $data['icon'] = \sprintf('', $up); + } else { + $data['name'] = \sprintf( + '%s', + $node->getName(), + $node->getName() + ); + + $up = \str_repeat('../', \count($node->getPathAsArray()) - 2); + + $data['icon'] = \sprintf('', $up); + } + } + + return $this->renderItemTemplate( + new \Text_Template($this->templatePath . 'directory_item.html', '{{', '}}'), + $data + ); + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php new file mode 100644 index 00000000..2e88d198 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php @@ -0,0 +1,529 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\CodeCoverage\Report\Html; + +use SebastianBergmann\CodeCoverage\Node\File as FileNode; +use SebastianBergmann\CodeCoverage\Util; + +/** + * Renders a file node. + */ +final class File extends Renderer +{ + /** + * @var int + */ + private $htmlSpecialCharsFlags = \ENT_COMPAT | \ENT_HTML401 | \ENT_SUBSTITUTE; + + /** + * @throws \RuntimeException + */ + public function render(FileNode $node, string $file): void + { + $template = new \Text_Template($this->templatePath . 'file.html', '{{', '}}'); + + $template->setVar( + [ + 'items' => $this->renderItems($node), + 'lines' => $this->renderSource($node), + ] + ); + + $this->setCommonTemplateVariables($template, $node); + + $template->renderTo($file); + } + + protected function renderItems(FileNode $node): string + { + $template = new \Text_Template($this->templatePath . 'file_item.html', '{{', '}}'); + + $methodItemTemplate = new \Text_Template( + $this->templatePath . 'method_item.html', + '{{', + '}}' + ); + + $items = $this->renderItemTemplate( + $template, + [ + 'name' => 'Total', + 'numClasses' => $node->getNumClassesAndTraits(), + 'numTestedClasses' => $node->getNumTestedClassesAndTraits(), + 'numMethods' => $node->getNumFunctionsAndMethods(), + 'numTestedMethods' => $node->getNumTestedFunctionsAndMethods(), + 'linesExecutedPercent' => $node->getLineExecutedPercent(false), + 'linesExecutedPercentAsString' => $node->getLineExecutedPercent(), + 'numExecutedLines' => $node->getNumExecutedLines(), + 'numExecutableLines' => $node->getNumExecutableLines(), + 'testedMethodsPercent' => $node->getTestedFunctionsAndMethodsPercent(false), + 'testedMethodsPercentAsString' => $node->getTestedFunctionsAndMethodsPercent(), + 'testedClassesPercent' => $node->getTestedClassesAndTraitsPercent(false), + 'testedClassesPercentAsString' => $node->getTestedClassesAndTraitsPercent(), + 'crap' => 'CRAP', + ] + ); + + $items .= $this->renderFunctionItems( + $node->getFunctions(), + $methodItemTemplate + ); + + $items .= $this->renderTraitOrClassItems( + $node->getTraits(), + $template, + $methodItemTemplate + ); + + $items .= $this->renderTraitOrClassItems( + $node->getClasses(), + $template, + $methodItemTemplate + ); + + return $items; + } + + protected function renderTraitOrClassItems(array $items, \Text_Template $template, \Text_Template $methodItemTemplate): string + { + $buffer = ''; + + if (empty($items)) { + return $buffer; + } + + foreach ($items as $name => $item) { + $numMethods = 0; + $numTestedMethods = 0; + + foreach ($item['methods'] as $method) { + if ($method['executableLines'] > 0) { + $numMethods++; + + if ($method['executedLines'] === $method['executableLines']) { + $numTestedMethods++; + } + } + } + + if ($item['executableLines'] > 0) { + $numClasses = 1; + $numTestedClasses = $numTestedMethods == $numMethods ? 1 : 0; + $linesExecutedPercentAsString = Util::percent( + $item['executedLines'], + $item['executableLines'], + true + ); + } else { + $numClasses = 'n/a'; + $numTestedClasses = 'n/a'; + $linesExecutedPercentAsString = 'n/a'; + } + + $buffer .= $this->renderItemTemplate( + $template, + [ + 'name' => $this->abbreviateClassName($name), + 'numClasses' => $numClasses, + 'numTestedClasses' => $numTestedClasses, + 'numMethods' => $numMethods, + 'numTestedMethods' => $numTestedMethods, + 'linesExecutedPercent' => Util::percent( + $item['executedLines'], + $item['executableLines'], + false + ), + 'linesExecutedPercentAsString' => $linesExecutedPercentAsString, + 'numExecutedLines' => $item['executedLines'], + 'numExecutableLines' => $item['executableLines'], + 'testedMethodsPercent' => Util::percent( + $numTestedMethods, + $numMethods + ), + 'testedMethodsPercentAsString' => Util::percent( + $numTestedMethods, + $numMethods, + true + ), + 'testedClassesPercent' => Util::percent( + $numTestedMethods == $numMethods ? 1 : 0, + 1 + ), + 'testedClassesPercentAsString' => Util::percent( + $numTestedMethods == $numMethods ? 1 : 0, + 1, + true + ), + 'crap' => $item['crap'], + ] + ); + + foreach ($item['methods'] as $method) { + $buffer .= $this->renderFunctionOrMethodItem( + $methodItemTemplate, + $method, + ' ' + ); + } + } + + return $buffer; + } + + protected function renderFunctionItems(array $functions, \Text_Template $template): string + { + if (empty($functions)) { + return ''; + } + + $buffer = ''; + + foreach ($functions as $function) { + $buffer .= $this->renderFunctionOrMethodItem( + $template, + $function + ); + } + + return $buffer; + } + + protected function renderFunctionOrMethodItem(\Text_Template $template, array $item, string $indent = ''): string + { + $numMethods = 0; + $numTestedMethods = 0; + + if ($item['executableLines'] > 0) { + $numMethods = 1; + + if ($item['executedLines'] === $item['executableLines']) { + $numTestedMethods = 1; + } + } + + return $this->renderItemTemplate( + $template, + [ + 'name' => \sprintf( + '%s%s', + $indent, + $item['startLine'], + \htmlspecialchars($item['signature'], $this->htmlSpecialCharsFlags), + $item['functionName'] ?? $item['methodName'] + ), + 'numMethods' => $numMethods, + 'numTestedMethods' => $numTestedMethods, + 'linesExecutedPercent' => Util::percent( + $item['executedLines'], + $item['executableLines'] + ), + 'linesExecutedPercentAsString' => Util::percent( + $item['executedLines'], + $item['executableLines'], + true + ), + 'numExecutedLines' => $item['executedLines'], + 'numExecutableLines' => $item['executableLines'], + 'testedMethodsPercent' => Util::percent( + $numTestedMethods, + 1 + ), + 'testedMethodsPercentAsString' => Util::percent( + $numTestedMethods, + 1, + true + ), + 'crap' => $item['crap'], + ] + ); + } + + protected function renderSource(FileNode $node): string + { + $coverageData = $node->getCoverageData(); + $testData = $node->getTestData(); + $codeLines = $this->loadFile($node->getPath()); + $lines = ''; + $i = 1; + + foreach ($codeLines as $line) { + $trClass = ''; + $popoverContent = ''; + $popoverTitle = ''; + + if (\array_key_exists($i, $coverageData)) { + $numTests = ($coverageData[$i] ? \count($coverageData[$i]) : 0); + + if ($coverageData[$i] === null) { + $trClass = ' class="warning"'; + } elseif ($numTests == 0) { + $trClass = ' class="danger"'; + } else { + $lineCss = 'covered-by-large-tests'; + $popoverContent = '
      '; + + if ($numTests > 1) { + $popoverTitle = $numTests . ' tests cover line ' . $i; + } else { + $popoverTitle = '1 test covers line ' . $i; + } + + foreach ($coverageData[$i] as $test) { + if ($lineCss == 'covered-by-large-tests' && $testData[$test]['size'] == 'medium') { + $lineCss = 'covered-by-medium-tests'; + } elseif ($testData[$test]['size'] == 'small') { + $lineCss = 'covered-by-small-tests'; + } + + switch ($testData[$test]['status']) { + case 0: + switch ($testData[$test]['size']) { + case 'small': + $testCSS = ' class="covered-by-small-tests"'; + + break; + + case 'medium': + $testCSS = ' class="covered-by-medium-tests"'; + + break; + + default: + $testCSS = ' class="covered-by-large-tests"'; + + break; + } + + break; + + case 1: + case 2: + $testCSS = ' class="warning"'; + + break; + + case 3: + $testCSS = ' class="danger"'; + + break; + + case 4: + $testCSS = ' class="danger"'; + + break; + + default: + $testCSS = ''; + } + + $popoverContent .= \sprintf( + '%s', + $testCSS, + \htmlspecialchars($test, $this->htmlSpecialCharsFlags) + ); + } + + $popoverContent .= '
    '; + $trClass = ' class="' . $lineCss . ' popin"'; + } + } + + $popover = ''; + + if (!empty($popoverTitle)) { + $popover = \sprintf( + ' data-title="%s" data-content="%s" data-placement="bottom" data-html="true"', + $popoverTitle, + \htmlspecialchars($popoverContent, $this->htmlSpecialCharsFlags) + ); + } + + $lines .= \sprintf( + ' ' . "\n", + $trClass, + $popover, + $i, + $i, + $i, + $line + ); + + $i++; + } + + return $lines; + } + + /** + * @param string $file + */ + protected function loadFile($file): array + { + $buffer = \file_get_contents($file); + $tokens = \token_get_all($buffer); + $result = ['']; + $i = 0; + $stringFlag = false; + $fileEndsWithNewLine = \substr($buffer, -1) == "\n"; + + unset($buffer); + + foreach ($tokens as $j => $token) { + if (\is_string($token)) { + if ($token === '"' && $tokens[$j - 1] !== '\\') { + $result[$i] .= \sprintf( + '%s', + \htmlspecialchars($token, $this->htmlSpecialCharsFlags) + ); + + $stringFlag = !$stringFlag; + } else { + $result[$i] .= \sprintf( + '%s', + \htmlspecialchars($token, $this->htmlSpecialCharsFlags) + ); + } + + continue; + } + + [$token, $value] = $token; + + $value = \str_replace( + ["\t", ' '], + ['    ', ' '], + \htmlspecialchars($value, $this->htmlSpecialCharsFlags) + ); + + if ($value === "\n") { + $result[++$i] = ''; + } else { + $lines = \explode("\n", $value); + + foreach ($lines as $jj => $line) { + $line = \trim($line); + + if ($line !== '') { + if ($stringFlag) { + $colour = 'string'; + } else { + switch ($token) { + case \T_INLINE_HTML: + $colour = 'html'; + + break; + + case \T_COMMENT: + case \T_DOC_COMMENT: + $colour = 'comment'; + + break; + + case \T_ABSTRACT: + case \T_ARRAY: + case \T_AS: + case \T_BREAK: + case \T_CALLABLE: + case \T_CASE: + case \T_CATCH: + case \T_CLASS: + case \T_CLONE: + case \T_CONTINUE: + case \T_DEFAULT: + case \T_ECHO: + case \T_ELSE: + case \T_ELSEIF: + case \T_EMPTY: + case \T_ENDDECLARE: + case \T_ENDFOR: + case \T_ENDFOREACH: + case \T_ENDIF: + case \T_ENDSWITCH: + case \T_ENDWHILE: + case \T_EXIT: + case \T_EXTENDS: + case \T_FINAL: + case \T_FINALLY: + case \T_FOREACH: + case \T_FUNCTION: + case \T_GLOBAL: + case \T_IF: + case \T_IMPLEMENTS: + case \T_INCLUDE: + case \T_INCLUDE_ONCE: + case \T_INSTANCEOF: + case \T_INSTEADOF: + case \T_INTERFACE: + case \T_ISSET: + case \T_LOGICAL_AND: + case \T_LOGICAL_OR: + case \T_LOGICAL_XOR: + case \T_NAMESPACE: + case \T_NEW: + case \T_PRIVATE: + case \T_PROTECTED: + case \T_PUBLIC: + case \T_REQUIRE: + case \T_REQUIRE_ONCE: + case \T_RETURN: + case \T_STATIC: + case \T_THROW: + case \T_TRAIT: + case \T_TRY: + case \T_UNSET: + case \T_USE: + case \T_VAR: + case \T_WHILE: + case \T_YIELD: + $colour = 'keyword'; + + break; + + default: + $colour = 'default'; + } + } + + $result[$i] .= \sprintf( + '%s', + $colour, + $line + ); + } + + if (isset($lines[$jj + 1])) { + $result[++$i] = ''; + } + } + } + } + + if ($fileEndsWithNewLine) { + unset($result[\count($result) - 1]); + } + + return $result; + } + + private function abbreviateClassName(string $className): string + { + $tmp = \explode('\\', $className); + + if (\count($tmp) > 1) { + $className = \sprintf( + '%s', + $className, + \array_pop($tmp) + ); + } + + return $className; + } +} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/coverage_bar.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/coverage_bar.html.dist new file mode 100644 index 00000000..7fcf6f49 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/coverage_bar.html.dist @@ -0,0 +1,5 @@ +
    +
    + {{percent}}% covered ({{level}}) +
    +
    diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/bootstrap.min.css b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/bootstrap.min.css new file mode 100644 index 00000000..74a3ca17 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.1.3 (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors + * Copyright 2011-2018 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;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}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(2.25rem + 2px);padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.8125rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(2.875rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::after,.was-validated .custom-file-input:valid~.custom-file-label::after{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::after,.was-validated .custom-file-input:invalid~.custom-file-label::after{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{height:calc(2.875rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{height:calc(1.8125rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:2.25rem;padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media screen and (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:not(:disabled):not(.disabled){cursor:pointer}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{color:#000;text-decoration:none;opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-dialog-centered::before{display:block;height:calc(100vh - (.5rem * 2));content:""}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-dialog-centered::before{height:calc(100vh - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-ms-flex-align:center;align-items:center;width:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease}@media screen and (prefers-reduced-motion:reduce){.carousel-item-next,.carousel-item-prev,.carousel-item.active{transition:none}}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} +/*# sourceMappingURL=bootstrap.min.css.map */ diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/custom.css b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/custom.css new file mode 100644 index 00000000..e69de29b diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css new file mode 100644 index 00000000..7a6f7fe9 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/nv.d3.min.css @@ -0,0 +1 @@ +.nvd3 .nv-axis{pointer-events:none;opacity:1}.nvd3 .nv-axis path{fill:none;stroke:#000;stroke-opacity:.75;shape-rendering:crispEdges}.nvd3 .nv-axis path.domain{stroke-opacity:.75}.nvd3 .nv-axis.nv-x path.domain{stroke-opacity:0}.nvd3 .nv-axis line{fill:none;stroke:#e5e5e5;shape-rendering:crispEdges}.nvd3 .nv-axis .zero line,.nvd3 .nv-axis line.zero{stroke-opacity:.75}.nvd3 .nv-axis .nv-axisMaxMin text{font-weight:700}.nvd3 .x .nv-axis .nv-axisMaxMin text,.nvd3 .x2 .nv-axis .nv-axisMaxMin text,.nvd3 .x3 .nv-axis .nv-axisMaxMin text{text-anchor:middle}.nvd3 .nv-axis.nv-disabled{opacity:0}.nvd3 .nv-bars rect{fill-opacity:.75;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-bars rect.hover{fill-opacity:1}.nvd3 .nv-bars .hover rect{fill:#add8e6}.nvd3 .nv-bars text{fill:rgba(0,0,0,0)}.nvd3 .nv-bars .hover text{fill:rgba(0,0,0,1)}.nvd3 .nv-multibar .nv-groups rect,.nvd3 .nv-multibarHorizontal .nv-groups rect,.nvd3 .nv-discretebar .nv-groups rect{stroke-opacity:0;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-multibar .nv-groups rect:hover,.nvd3 .nv-multibarHorizontal .nv-groups rect:hover,.nvd3 .nv-candlestickBar .nv-ticks rect:hover,.nvd3 .nv-discretebar .nv-groups rect:hover{fill-opacity:1}.nvd3 .nv-discretebar .nv-groups text,.nvd3 .nv-multibarHorizontal .nv-groups text{font-weight:700;fill:rgba(0,0,0,1);stroke:rgba(0,0,0,0)}.nvd3 .nv-boxplot circle{fill-opacity:.5}.nvd3 .nv-boxplot circle:hover{fill-opacity:1}.nvd3 .nv-boxplot rect:hover{fill-opacity:1}.nvd3 line.nv-boxplot-median{stroke:#000}.nv-boxplot-tick:hover{stroke-width:2.5px}.nvd3.nv-bullet{font:10px sans-serif}.nvd3.nv-bullet .nv-measure{fill-opacity:.8}.nvd3.nv-bullet .nv-measure:hover{fill-opacity:1}.nvd3.nv-bullet .nv-marker{stroke:#000;stroke-width:2px}.nvd3.nv-bullet .nv-markerTriangle{stroke:#000;fill:#fff;stroke-width:1.5px}.nvd3.nv-bullet .nv-tick line{stroke:#666;stroke-width:.5px}.nvd3.nv-bullet .nv-range.nv-s0{fill:#eee}.nvd3.nv-bullet .nv-range.nv-s1{fill:#ddd}.nvd3.nv-bullet .nv-range.nv-s2{fill:#ccc}.nvd3.nv-bullet .nv-title{font-size:14px;font-weight:700}.nvd3.nv-bullet .nv-subtitle{fill:#999}.nvd3.nv-bullet .nv-range{fill:#bababa;fill-opacity:.4}.nvd3.nv-bullet .nv-range:hover{fill-opacity:.7}.nvd3.nv-candlestickBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect{stroke:#d62728;fill:#d62728}.with-transitions .nv-candlestickBar .nv-ticks .nv-tick{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-candlestickBar .nv-ticks line{stroke:#333}.nvd3 .nv-legend .nv-disabled rect{}.nvd3 .nv-check-box .nv-box{fill-opacity:0;stroke-width:2}.nvd3 .nv-check-box .nv-check{fill-opacity:0;stroke-width:4}.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check{opacity:0}.nvd3.nv-linePlusBar .nv-bar rect{fill-opacity:.75}.nvd3.nv-linePlusBar .nv-bar rect:hover{fill-opacity:1}.nvd3 .nv-groups path.nv-line{fill:none}.nvd3 .nv-groups path.nv-area{stroke:none}.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point{fill-opacity:0;stroke-opacity:0}.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point{fill-opacity:.5!important;stroke-opacity:.5!important}.with-transitions .nvd3 .nv-groups .nv-point{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-scatter .nv-groups .nv-point.hover,.nvd3 .nv-groups .nv-point.hover{stroke-width:7px;fill-opacity:.95!important;stroke-opacity:.95!important}.nvd3 .nv-point-paths path{stroke:#aaa;stroke-opacity:0;fill:#eee;fill-opacity:0}.nvd3 .nv-indexLine{cursor:ew-resize}svg.nvd3-svg{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-ms-user-select:none;-moz-user-select:none;user-select:none;display:block;width:100%;height:100%}.nvtooltip.with-3d-shadow,.with-3d-shadow .nvtooltip{-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nvd3 text{font:400 12px Arial}.nvd3 .title{font:700 14px Arial}.nvd3 .nv-background{fill:#fff;fill-opacity:0}.nvd3.nv-noData{font-size:18px;font-weight:700}.nv-brush .extent{fill-opacity:.125;shape-rendering:crispEdges}.nv-brush .resize path{fill:#eee;stroke:#666}.nvd3 .nv-legend .nv-series{cursor:pointer}.nvd3 .nv-legend .nv-disabled circle{fill-opacity:0}.nvd3 .nv-brush .extent{fill-opacity:0!important}.nvd3 .nv-brushBackground rect{stroke:#000;stroke-width:.4;fill:#fff;fill-opacity:.7}.nvd3.nv-ohlcBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive{stroke:#2ca02c}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative{stroke:#d62728}.nvd3 .background path{fill:none;stroke:#EEE;stroke-opacity:.4;shape-rendering:crispEdges}.nvd3 .foreground path{fill:none;stroke-opacity:.7}.nvd3 .nv-parallelCoordinates-brush .extent{fill:#fff;fill-opacity:.6;stroke:gray;shape-rendering:crispEdges}.nvd3 .nv-parallelCoordinates .hover{fill-opacity:1;stroke-width:3px}.nvd3 .missingValuesline line{fill:none;stroke:#000;stroke-width:1;stroke-opacity:1;stroke-dasharray:5,5}.nvd3.nv-pie path{stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-pie .nv-pie-title{font-size:24px;fill:rgba(19,196,249,.59)}.nvd3.nv-pie .nv-slice text{stroke:#000;stroke-width:0}.nvd3.nv-pie path{stroke:#fff;stroke-width:1px;stroke-opacity:1}.nvd3.nv-pie .hover path{fill-opacity:.7}.nvd3.nv-pie .nv-label{pointer-events:none}.nvd3.nv-pie .nv-label rect{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-groups .nv-point.hover{stroke-width:20px;stroke-opacity:.5}.nvd3 .nv-scatter .nv-point.hover{fill-opacity:1}.nv-noninteractive{pointer-events:none}.nv-distx,.nv-disty{pointer-events:none}.nvd3.nv-sparkline path{fill:none}.nvd3.nv-sparklineplus g.nv-hoverValue{pointer-events:none}.nvd3.nv-sparklineplus .nv-hoverValue line{stroke:#333;stroke-width:1.5px}.nvd3.nv-sparklineplus,.nvd3.nv-sparklineplus g{pointer-events:all}.nvd3 .nv-hoverArea{fill-opacity:0;stroke-opacity:0}.nvd3.nv-sparklineplus .nv-xValue,.nvd3.nv-sparklineplus .nv-yValue{stroke-width:0;font-size:.9em;font-weight:400}.nvd3.nv-sparklineplus .nv-yValue{stroke:#f66}.nvd3.nv-sparklineplus .nv-maxValue{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-sparklineplus .nv-minValue{stroke:#d62728;fill:#d62728}.nvd3.nv-sparklineplus .nv-currentValue{font-weight:700;font-size:1.1em}.nvd3.nv-stackedarea path.nv-area{fill-opacity:.7;stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-stackedarea path.nv-area.hover{fill-opacity:.9}.nvd3.nv-stackedarea .nv-groups .nv-point{stroke-opacity:0;fill-opacity:0}.nvtooltip{position:absolute;background-color:rgba(255,255,255,1);color:rgba(0,0,0,1);padding:1px;border:1px solid rgba(0,0,0,.2);z-index:10000;display:block;font-family:Arial;font-size:13px;text-align:left;pointer-events:none;white-space:nowrap;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.nvtooltip{background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.5);border-radius:4px}.nvtooltip.with-transitions,.with-transitions .nvtooltip{transition:opacity 50ms linear;-moz-transition:opacity 50ms linear;-webkit-transition:opacity 50ms linear;transition-delay:200ms;-moz-transition-delay:200ms;-webkit-transition-delay:200ms}.nvtooltip.x-nvtooltip,.nvtooltip.y-nvtooltip{padding:8px}.nvtooltip h3{margin:0;padding:4px 14px;line-height:18px;font-weight:400;background-color:rgba(247,247,247,.75);color:rgba(0,0,0,1);text-align:center;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.nvtooltip p{margin:0;padding:5px 14px;text-align:center}.nvtooltip span{display:inline-block;margin:2px 0}.nvtooltip table{margin:6px;border-spacing:0}.nvtooltip table td{padding:2px 9px 2px 0;vertical-align:middle}.nvtooltip table td.key{font-weight:400}.nvtooltip table td.value{text-align:right;font-weight:700}.nvtooltip table tr.highlight td{padding:1px 9px 1px 0;border-bottom-style:solid;border-bottom-width:1px;border-top-style:solid;border-top-width:1px}.nvtooltip table td.legend-color-guide div{width:8px;height:8px;vertical-align:middle}.nvtooltip table td.legend-color-guide div{width:12px;height:12px;border:1px solid #999}.nvtooltip .footer{padding:3px;text-align:center}.nvtooltip-pending-removal{pointer-events:none;display:none}.nvd3 .nv-interactiveGuideLine{pointer-events:none}.nvd3 line.nv-guideline{stroke:#ccc} \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/octicons.css b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/octicons.css new file mode 100644 index 00000000..31d97867 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/octicons.css @@ -0,0 +1,5 @@ +.octicon { + display: inline-block; + vertical-align: text-top; + fill: currentColor; +} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css new file mode 100644 index 00000000..6d9c21e8 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/css/style.css @@ -0,0 +1,122 @@ +body { + padding-top: 10px; +} + +.popover { + max-width: none; +} + +.octicon { + margin-right:.25em; +} + +.table-bordered>thead>tr>td { + border-bottom-width: 1px; +} + +.table tbody>tr>td, .table thead>tr>td { + padding-top: 3px; + padding-bottom: 3px; +} + +.table-condensed tbody>tr>td { + padding-top: 0; + padding-bottom: 0; +} + +.table .progress { + margin-bottom: inherit; +} + +.table-borderless th, .table-borderless td { + border: 0 !important; +} + +.table tbody tr.covered-by-large-tests, li.covered-by-large-tests, tr.success, td.success, li.success, span.success { + background-color: #dff0d8; +} + +.table tbody tr.covered-by-medium-tests, li.covered-by-medium-tests { + background-color: #c3e3b5; +} + +.table tbody tr.covered-by-small-tests, li.covered-by-small-tests { + background-color: #99cb84; +} + +.table tbody tr.danger, .table tbody td.danger, li.danger, span.danger { + background-color: #f2dede; +} + +.table tbody td.warning, li.warning, span.warning { + background-color: #fcf8e3; +} + +.table tbody td.info { + background-color: #d9edf7; +} + +td.big { + width: 117px; +} + +td.small { +} + +td.codeLine { + font-family: "Source Code Pro", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + white-space: pre; +} + +td span.comment { + color: #888a85; +} + +td span.default { + color: #2e3436; +} + +td span.html { + color: #888a85; +} + +td span.keyword { + color: #2e3436; + font-weight: bold; +} + +pre span.string { + color: #2e3436; +} + +span.success, span.warning, span.danger { + margin-right: 2px; + padding-left: 10px; + padding-right: 10px; + text-align: center; +} + +#classCoverageDistribution, #classComplexity { + height: 200px; + width: 475px; +} + +#toplink { + position: fixed; + left: 5px; + bottom: 5px; + outline: 0; +} + +svg text { + font-family: "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif; + font-size: 11px; + color: #666; + fill: #666; +} + +.scrollbox { + height:245px; + overflow-x:hidden; + overflow-y:scroll; +} diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist new file mode 100644 index 00000000..cfa57687 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/dashboard.html.dist @@ -0,0 +1,281 @@ + + + + + Dashboard for {{full_path}} + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +

    Classes

    +
    +
    +
    +
    +

    Coverage Distribution

    +
    + +
    +
    +
    +

    Complexity

    +
    + +
    +
    +
    +
    +
    +

    Insufficient Coverage

    +
    +
    @@ -29,8 +28,8 @@ export function FieldsData( props ) { - { 'null' === field - ? '' + { Array.isArray( field ) + ? field.join( ', ' ) : decodeEntities( field ) } { __( 'Form ID', 'formello' ) } - { form?.title.raw || __( '(No title)', 'formello' ) } + { form?.title.raw || + __( '(No title)', 'formello' ) }
    %s%d%%
    %s%d%%
    %s%d
    %s%d
    %s
    + + + + + + + +{{insufficient_coverage_classes}} + +
    ClassCoverage
    +
    +
    +
    +

    Project Risks

    +
    + + + + + + + + +{{project_risks_classes}} + +
    ClassCRAP
    +
    +
    + +
    +
    +

    Methods

    +
    +
    +
    +
    +

    Coverage Distribution

    +
    + +
    +
    +
    +

    Complexity

    +
    + +
    +
    +
    +
    +
    +

    Insufficient Coverage

    +
    + + + + + + + + +{{insufficient_coverage_methods}} + +
    MethodCoverage
    +
    +
    +
    +

    Project Risks

    +
    + + + + + + + + +{{project_risks_methods}} + +
    MethodCRAP
    +
    +
    +
    + + + + + + + + diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory.html.dist new file mode 100644 index 00000000..2fbf691b --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory.html.dist @@ -0,0 +1,60 @@ + + + + + Code Coverage for {{full_path}} + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + +{{items}} + +
     
    Code Coverage
     
    Lines
    Functions and Methods
    Classes and Traits
    +
    +
    +
    +

    Legend

    +

    + Low: 0% to {{low_upper_bound}}% + Medium: {{low_upper_bound}}% to {{high_lower_bound}}% + High: {{high_lower_bound}}% to 100% +

    +

    + Generated by php-code-coverage {{version}} using {{runtime}}{{generator}} at {{date}}. +

    +
    +
    + + diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory_item.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory_item.html.dist new file mode 100644 index 00000000..f6941a43 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/directory_item.html.dist @@ -0,0 +1,13 @@ + + {{icon}}{{name}} + {{lines_bar}} +
    {{lines_executed_percent}}
    +
    {{lines_number}}
    + {{methods_bar}} +
    {{methods_tested_percent}}
    +
    {{methods_number}}
    + {{classes_bar}} +
    {{classes_tested_percent}}
    +
    {{classes_number}}
    + + diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file.html.dist new file mode 100644 index 00000000..1c33503c --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file.html.dist @@ -0,0 +1,72 @@ + + + + + Code Coverage for {{full_path}} + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + +{{items}} + +
     
    Code Coverage
     
    Classes and Traits
    Functions and Methods
    Lines
    +
    + + +{{lines}} + +
    + +
    + + + + + + diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist new file mode 100644 index 00000000..dc754b3c --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/file_item.html.dist @@ -0,0 +1,14 @@ + + {{name}} + {{classes_bar}} +
    {{classes_tested_percent}}
    +
    {{classes_number}}
    + {{methods_bar}} +
    {{methods_tested_percent}}
    +
    {{methods_number}}
    + {{crap}} + {{lines_bar}} +
    {{lines_executed_percent}}
    +
    {{lines_number}}
    + + diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/icons/file-code.svg b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/icons/file-code.svg new file mode 100644 index 00000000..5b4b1995 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/icons/file-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/icons/file-directory.svg b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/icons/file-directory.svg new file mode 100644 index 00000000..4bf1f1ca --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/icons/file-directory.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js new file mode 100644 index 00000000..1a477123 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.1.3 (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,h){"use strict";function i(t,e){for(var n=0;nthis._items.length-1||t<0))if(this._isSliding)P(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=ndocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
    ',trigger:"hover focus",title:"",delay:0,html:!(Ie={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(Se={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},we="out",Ne={HIDE:"hide"+Ee,HIDDEN:"hidden"+Ee,SHOW:(De="show")+Ee,SHOWN:"shown"+Ee,INSERTED:"inserted"+Ee,CLICK:"click"+Ee,FOCUSIN:"focusin"+Ee,FOCUSOUT:"focusout"+Ee,MOUSEENTER:"mouseenter"+Ee,MOUSELEAVE:"mouseleave"+Ee},Oe="fade",ke="show",Pe=".tooltip-inner",je=".arrow",He="hover",Le="focus",Re="click",xe="manual",We=function(){function i(t,e){if("undefined"==typeof h)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=pe(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),pe(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(pe(this.getTipElement()).hasClass(ke))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),pe.removeData(this.element,this.constructor.DATA_KEY),pe(this.element).off(this.constructor.EVENT_KEY),pe(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&pe(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===pe(this.element).css("display"))throw new Error("Please use show on visible elements");var t=pe.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){pe(this.element).trigger(t);var n=pe.contains(this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=Fn.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&pe(i).addClass(Oe);var o="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,s=this._getAttachment(o);this.addAttachmentClass(s);var a=!1===this.config.container?document.body:pe(document).find(this.config.container);pe(i).data(this.constructor.DATA_KEY,this),pe.contains(this.element.ownerDocument.documentElement,this.tip)||pe(i).appendTo(a),pe(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new h(this.element,i,{placement:s,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:je},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),pe(i).addClass(ke),"ontouchstart"in document.documentElement&&pe(document.body).children().on("mouseover",null,pe.noop);var l=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,pe(e.element).trigger(e.constructor.Event.SHOWN),t===we&&e._leave(null,e)};if(pe(this.tip).hasClass(Oe)){var c=Fn.getTransitionDurationFromElement(this.tip);pe(this.tip).one(Fn.TRANSITION_END,l).emulateTransitionEnd(c)}else l()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=pe.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==De&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),pe(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(pe(this.element).trigger(i),!i.isDefaultPrevented()){if(pe(n).removeClass(ke),"ontouchstart"in document.documentElement&&pe(document.body).children().off("mouseover",null,pe.noop),this._activeTrigger[Re]=!1,this._activeTrigger[Le]=!1,this._activeTrigger[He]=!1,pe(this.tip).hasClass(Oe)){var o=Fn.getTransitionDurationFromElement(n);pe(n).one(Fn.TRANSITION_END,r).emulateTransitionEnd(o)}else r();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){pe(this.getTipElement()).addClass(Te+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||pe(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(pe(t.querySelectorAll(Pe)),this.getTitle()),pe(t).removeClass(Oe+" "+ke)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?pe(e).parent().is(t)||t.empty().append(e):t.text(pe(e).text()):t[n?"html":"text"](e)},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getAttachment=function(t){return Ie[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)pe(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==xe){var e=t===He?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===He?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;pe(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}pe(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||pe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),pe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Le:He]=!0),pe(e.getTipElement()).hasClass(ke)||e._hoverState===De?e._hoverState=De:(clearTimeout(e._timeout),e._hoverState=De,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===De&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||pe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),pe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Le:He]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=we,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===we&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return"number"==typeof(t=l({},this.constructor.Default,pe(this.element).data(),"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),Fn.typeCheckConfig(ve,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=pe(this.getTipElement()),e=t.attr("class").match(be);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(pe(t).removeClass(Oe),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=pe(this).data(ye),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),pe(this).data(ye,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return Ae}},{key:"NAME",get:function(){return ve}},{key:"DATA_KEY",get:function(){return ye}},{key:"Event",get:function(){return Ne}},{key:"EVENT_KEY",get:function(){return Ee}},{key:"DefaultType",get:function(){return Se}}]),i}(),pe.fn[ve]=We._jQueryInterface,pe.fn[ve].Constructor=We,pe.fn[ve].noConflict=function(){return pe.fn[ve]=Ce,We._jQueryInterface},We),Jn=(qe="popover",Ke="."+(Fe="bs.popover"),Me=(Ue=e).fn[qe],Qe="bs-popover",Be=new RegExp("(^|\\s)"+Qe+"\\S+","g"),Ve=l({},zn.Default,{placement:"right",trigger:"click",content:"",template:''}),Ye=l({},zn.DefaultType,{content:"(string|element|function)"}),ze="fade",Ze=".popover-header",Ge=".popover-body",$e={HIDE:"hide"+Ke,HIDDEN:"hidden"+Ke,SHOW:(Je="show")+Ke,SHOWN:"shown"+Ke,INSERTED:"inserted"+Ke,CLICK:"click"+Ke,FOCUSIN:"focusin"+Ke,FOCUSOUT:"focusout"+Ke,MOUSEENTER:"mouseenter"+Ke,MOUSELEAVE:"mouseleave"+Ke},Xe=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){Ue(this.getTipElement()).addClass(Qe+"-"+t)},r.getTipElement=function(){return this.tip=this.tip||Ue(this.config.template)[0],this.tip},r.setContent=function(){var t=Ue(this.getTipElement());this.setElementContent(t.find(Ze),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Ge),e),t.removeClass(ze+" "+Je)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=Ue(this.getTipElement()),e=t.attr("class").match(Be);null!==e&&0=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||tn?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++ie;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++aa;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)0?0:3:xo(r[0]-e)0?2:1:xo(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){ +r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)Uo?{x:s,y:xo(t-s)Uo?{x:xo(e-g)Uo?{x:h,y:xo(t-h)Uo?{x:xo(e-p)=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.yd||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.yr||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.yp){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return ur;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oe;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.ro;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++oe?[NaN,NaN]:[e>0?a[e-1]:n[0],et?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}else{for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++ii){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++rr;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++uu;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], +shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rn?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.xy&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++lt;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++cs?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u0)for(u=-1;++u=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.xg.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++it?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oe&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0; +if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++ue&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++au;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}(); \ No newline at end of file diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/file.js b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/file.js new file mode 100644 index 00000000..756cc08a --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/file.js @@ -0,0 +1,61 @@ + $(function() { + var $window = $(window) + , $top_link = $('#toplink') + , $body = $('body, html') + , offset = $('#code').offset().top + , hidePopover = function ($target) { + $target.data('popover-hover', false); + + setTimeout(function () { + if (!$target.data('popover-hover')) { + $target.popover('hide'); + } + }, 300); + }; + + $top_link.hide().click(function(event) { + event.preventDefault(); + $body.animate({scrollTop:0}, 800); + }); + + $window.scroll(function() { + if($window.scrollTop() > offset) { + $top_link.fadeIn(); + } else { + $top_link.fadeOut(); + } + }).scroll(); + + $('.popin') + .popover({trigger: 'manual'}) + .on({ + 'mouseenter.popover': function () { + var $target = $(this); + + $target.data('popover-hover', true); + + // popover already displayed + if ($target.next('.popover').length) { + return; + } + + // show the popover + $target.popover('show'); + + // register mouse events on the popover + $target.next('.popover:not(.popover-initialized)') + .on({ + 'mouseenter': function () { + $target.data('popover-hover', true); + }, + 'mouseleave': function () { + hidePopover($target); + } + }) + .addClass('popover-initialized'); + }, + 'mouseleave.popover': function () { + hidePopover($(this)); + } + }); + }); diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/jquery.min.js b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/jquery.min.js new file mode 100644 index 00000000..4d9b3a25 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/Template/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w(" + + + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/dashboard.html b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/dashboard.html new file mode 100644 index 00000000..6605ff96 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/dashboard.html @@ -0,0 +1,287 @@ + + + + + Dashboard for %s + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +

    Classes

    +
    +
    +
    +
    +

    Coverage Distribution

    +
    + +
    +
    +
    +

    Complexity

    +
    + +
    +
    +
    +
    +
    +

    Insufficient Coverage

    +
    + + + + + + + + + + + +
    ClassCoverage
    BankAccount50%
    +
    +
    +
    +

    Project Risks

    +
    + + + + + + + + + + + +
    ClassCRAP
    BankAccount8
    +
    +
    +
    +
    +
    +

    Methods

    +
    +
    +
    +
    +

    Coverage Distribution

    +
    + +
    +
    +
    +

    Complexity

    +
    + +
    +
    +
    +
    +
    +

    Insufficient Coverage

    +
    + + + + + + + + + + + +
    MethodCoverage
    setBalance0%
    +
    +
    +
    +

    Project Risks

    +
    + + + + + + + + + + + +
    MethodCRAP
    setBalance6
    +
    +
    +
    + +
    + + + + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/index.html b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/index.html new file mode 100644 index 00000000..bd0e78a3 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForBankAccount/index.html @@ -0,0 +1,118 @@ + + + + + Code Coverage for %s + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    Code Coverage
     
    Lines
    Functions and Methods
    Classes and Traits
    Total
    +
    + 50.00% covered (danger) +
    +
    +
    50.00%
    5 / 10
    +
    + 75.00% covered (warning) +
    +
    +
    75.00%
    3 / 4
    +
    + 0.00% covered (danger) +
    +
    +
    0.00%
    0 / 1
    BankAccount.php
    +
    + 50.00% covered (danger) +
    +
    +
    50.00%
    5 / 10
    +
    + 75.00% covered (warning) +
    +
    +
    75.00%
    3 / 4
    +
    + 0.00% covered (danger) +
    +
    +
    0.00%
    0 / 1
    +
    +
    +
    +

    Legend

    +

    + Low: 0% to 50% + Medium: 50% to 90% + High: 90% to 100% +

    +

    + Generated by php-code-coverage %s using %s at %s. +

    +
    +
    + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/dashboard.html b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/dashboard.html new file mode 100644 index 00000000..07f7eaeb --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/dashboard.html @@ -0,0 +1,285 @@ + + + + + Dashboard for %s + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +

    Classes

    +
    +
    +
    +
    +

    Coverage Distribution

    +
    + +
    +
    +
    +

    Complexity

    +
    + +
    +
    +
    +
    +
    +

    Insufficient Coverage

    +
    + + + + + + + + + + + +
    ClassCoverage
    CoveredClassWithAnonymousFunctionInStaticMethod87%
    +
    +
    +
    +

    Project Risks

    +
    + + + + + + + + + + +
    ClassCRAP
    +
    +
    +
    +
    +
    +

    Methods

    +
    +
    +
    +
    +

    Coverage Distribution

    +
    + +
    +
    +
    +

    Complexity

    +
    + +
    +
    +
    +
    +
    +

    Insufficient Coverage

    +
    + + + + + + + + + + + +
    MethodCoverage
    runAnonymous87%
    +
    +
    +
    +

    Project Risks

    +
    + + + + + + + + + + +
    MethodCRAP
    +
    +
    +
    + +
    + + + + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/index.html b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/index.html new file mode 100644 index 00000000..90a15c26 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/index.html @@ -0,0 +1,118 @@ + + + + + Code Coverage for %s + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    Code Coverage
     
    Lines
    Functions and Methods
    Classes and Traits
    Total
    +
    + 87.50% covered (warning) +
    +
    +
    87.50%
    7 / 8
    +
    + 0.00% covered (danger) +
    +
    +
    0.00%
    0 / 1
    +
    + 0.00% covered (danger) +
    +
    +
    0.00%
    0 / 1
    source_with_class_and_anonymous_function.php
    +
    + 87.50% covered (warning) +
    +
    +
    87.50%
    7 / 8
    +
    + 0.00% covered (danger) +
    +
    +
    0.00%
    0 / 1
    +
    + 0.00% covered (danger) +
    +
    +
    0.00%
    0 / 1
    +
    +
    +
    +

    Legend

    +

    + Low: 0% to 50% + Medium: 50% to 90% + High: 90% to 100% +

    +

    + Generated by php-code-coverage %s using %s at %s. +

    +
    +
    + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.html b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.html new file mode 100644 index 00000000..85c43160 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.html @@ -0,0 +1,172 @@ + + + + + Code Coverage for %s%esource_with_class_and_anonymous_function.php + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    Code Coverage
     
    Classes and Traits
    Functions and Methods
    Lines
    Total
    +
    + 0.00% covered (danger) +
    +
    +
    0.00%
    0 / 1
    +
    + 0.00% covered (danger) +
    +
    +
    0.00%
    0 / 1
    CRAP
    +
    + 87.50% covered (warning) +
    +
    +
    87.50%
    7 / 8
    CoveredClassWithAnonymousFunctionInStaticMethod
    +
    + 0.00% covered (danger) +
    +
    +
    0.00%
    0 / 1
    +
    + 0.00% covered (danger) +
    +
    +
    0.00%
    0 / 1
    1.00
    +
    + 87.50% covered (warning) +
    +
    +
    87.50%
    7 / 8
     runAnonymous
    +
    + 0.00% covered (danger) +
    +
    +
    0.00%
    0 / 1
    1.00
    +
    + 87.50% covered (warning) +
    +
    +
    87.50%
    7 / 8
    +
    + + + + + + + + + + + + + + + + + + + + + + + +
    <?php
    class CoveredClassWithAnonymousFunctionInStaticMethod
    {
        public static function runAnonymous()
        {
            $filter = ['abc124', 'abc123', '123'];
            array_walk(
                $filter,
                function (&$val, $key) {
                    $val = preg_replace('|[^0-9]|', '', $val);
                }
            );
            // Should be covered
            $extravar = true;
        }
    }
    + +
    + + + + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/dashboard.html b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/dashboard.html new file mode 100644 index 00000000..360409af --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/dashboard.html @@ -0,0 +1,283 @@ + + + + + Dashboard for %s + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +

    Classes

    +
    +
    +
    +
    +

    Coverage Distribution

    +
    + +
    +
    +
    +

    Complexity

    +
    + +
    +
    +
    +
    +
    +

    Insufficient Coverage

    +
    + + + + + + + + + + +
    ClassCoverage
    +
    +
    +
    +

    Project Risks

    +
    + + + + + + + + + + +
    ClassCRAP
    +
    +
    +
    +
    +
    +

    Methods

    +
    +
    +
    +
    +

    Coverage Distribution

    +
    + +
    +
    +
    +

    Complexity

    +
    + +
    +
    +
    +
    +
    +

    Insufficient Coverage

    +
    + + + + + + + + + + +
    MethodCoverage
    +
    +
    +
    +

    Project Risks

    +
    + + + + + + + + + + +
    MethodCRAP
    +
    +
    +
    + +
    + + + + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/index.html b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/index.html new file mode 100644 index 00000000..8f55038b --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/index.html @@ -0,0 +1,108 @@ + + + + + Code Coverage for %s + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    Code Coverage
     
    Lines
    Functions and Methods
    Classes and Traits
    Total
    +
    + 50.00% covered (danger) +
    +
    +
    50.00%
    1 / 2
    +
    + 100.00% covered (success) +
    +
    +
    100.00%
    1 / 1
    n/a
    0 / 0
    source_with_ignore.php
    +
    + 50.00% covered (danger) +
    +
    +
    50.00%
    1 / 2
    +
    + 100.00% covered (success) +
    +
    +
    100.00%
    1 / 1
    n/a
    0 / 0
    +
    +
    +
    +

    Legend

    +

    + Low: 0% to 50% + Medium: 50% to 90% + High: 90% to 100% +

    +

    + Generated by php-code-coverage %s using %s at %s. +

    +
    +
    + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/source_with_ignore.php.html b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/source_with_ignore.php.html new file mode 100644 index 00000000..0949edad --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/Report/HTML/CoverageForFileWithIgnoredLines/source_with_ignore.php.html @@ -0,0 +1,196 @@ + + + + + Code Coverage for %s/source_with_ignore.php + + + + + + + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     
    Code Coverage
     
    Classes and Traits
    Functions and Methods
    Lines
    Total
    n/a
    0 / 0
    +
    + 100.00% covered (success) +
    +
    +
    100.00%
    1 / 1
    CRAP
    +
    + 50.00% covered (danger) +
    +
    +
    50.00%
    1 / 2
    baz
    n/a
    0 / 0
    1
    n/a
    0 / 0
    Foo
    n/a
    0 / 0
    n/a
    0 / 0
    1
    n/a
    0 / 0
     bar
    n/a
    0 / 0
    1
    n/a
    0 / 0
    Bar
    n/a
    0 / 0
    n/a
    0 / 0
    1
    n/a
    0 / 0
     foo
    n/a
    0 / 0
    1
    n/a
    0 / 0
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    <?php
    if ($neverHappens) {
        // @codeCoverageIgnoreStart
        print '*';
        // @codeCoverageIgnoreEnd
    }
    /**
     * @codeCoverageIgnore
     */
    class Foo
    {
        public function bar()
        {
        }
    }
    class Bar
    {
        /**
         * @codeCoverageIgnore
         */
        public function foo()
        {
        }
    }
    function baz()
    {
        print '*'; // @codeCoverageIgnore
    }
    interface Bor
    {
        public function foo();
    }
    + +
    + + + + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/BankAccount.php.xml b/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/BankAccount.php.xml new file mode 100644 index 00000000..359f6a3c --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/BankAccount.php.xml @@ -0,0 +1,262 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + class + + BankAccount + + + { + + + + protected + + $balance + + = + + 0 + ; + + + + + public + + function + + getBalance + ( + ) + + + + { + + + + return + + $this + -> + balance + ; + + + + } + + + + + protected + + function + + setBalance + ( + $balance + ) + + + + { + + + + if + + ( + $balance + + >= + + 0 + ) + + { + + + + $this + -> + balance + + = + + $balance + ; + + + + } + + else + + { + + + + throw + + new + + RuntimeException + ; + + + + } + + + + } + + + + + public + + function + + depositMoney + ( + $balance + ) + + + + { + + + + $this + -> + setBalance + ( + $this + -> + getBalance + ( + ) + + + + + $balance + ) + ; + + + + + return + + $this + -> + getBalance + ( + ) + ; + + + + } + + + + + public + + function + + withdrawMoney + ( + $balance + ) + + + + { + + + + $this + -> + setBalance + ( + $this + -> + getBalance + ( + ) + + - + + $balance + ) + ; + + + + + return + + $this + -> + getBalance + ( + ) + ; + + + + } + + + } + + + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/index.xml b/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/index.xml new file mode 100644 index 00000000..3d73a56a --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForBankAccount/index.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml b/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml new file mode 100644 index 00000000..a2e6ad47 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/index.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.xml b/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.xml new file mode 100644 index 00000000..a4131745 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForClassWithAnonymousFunction/source_with_class_and_anonymous_function.php.xml @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + + class + + CoveredClassWithAnonymousFunctionInStaticMethod + + + { + + + + public + + static + + function + + runAnonymous + ( + ) + + + + { + + + + $filter + + = + + [ + 'abc124' + , + + 'abc123' + , + + '123' + ] + ; + + + + + array_walk + ( + + + + $filter + , + + + + function + + ( + & + $val + , + + $key + ) + + { + + + + $val + + = + + preg_replace + ( + '|[^0-9]|' + , + + '' + , + + $val + ) + ; + + + + } + + + + ) + ; + + + + + // Should be covered + + + + $extravar + + = + + true + ; + + + + } + + + } + + + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml b/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml new file mode 100644 index 00000000..1fe281ed --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/index.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/source_with_ignore.php.xml b/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/source_with_ignore.php.xml new file mode 100644 index 00000000..5ff1d6b8 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/Report/XML/CoverageForFileWithIgnoredLines/source_with_ignore.php.xml @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php + + + if + + ( + $neverHappens + ) + + { + + + + // @codeCoverageIgnoreStart + + + + print + + '*' + ; + + + + // @codeCoverageIgnoreEnd + + + } + + + + /** + + + * @codeCoverageIgnore + + + */ + + + class + + Foo + + + { + + + + public + + function + + bar + ( + ) + + + + { + + + + } + + + } + + + + class + + Bar + + + { + + + + /** + + + * @codeCoverageIgnore + + + */ + + + + public + + function + + foo + ( + ) + + + + { + + + + } + + + } + + + + function + + baz + ( + ) + + + { + + + + print + + '*' + ; + + // @codeCoverageIgnore + + + } + + + + interface + + Bor + + + { + + + + public + + function + + foo + ( + ) + ; + + + + } + + + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-clover.xml b/vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-clover.xml new file mode 100644 index 00000000..008db55f --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-clover.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-crap4j.xml b/vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-crap4j.xml new file mode 100644 index 00000000..5bd2535e --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-crap4j.xml @@ -0,0 +1,26 @@ + + + CoverageForClassWithAnonymousFunction + %s + + Method Crap Stats + 1 + 0 + 0 + 1 + 0 + + + + global + CoveredClassWithAnonymousFunctionInStaticMethod + runAnonymous + runAnonymous() + runAnonymous() + 1 + 1 + 87.5 + 0 + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-text.txt b/vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-text.txt new file mode 100644 index 00000000..e4204cc6 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/class-with-anonymous-function-text.txt @@ -0,0 +1,12 @@ + + +Code Coverage Report: + %s + + Summary: + Classes: 0.00% (0/1) + Methods: 0.00% (0/1) + Lines: 87.50% (7/8) + +CoveredClassWithAnonymousFunctionInStaticMethod + Methods: 0.00% ( 0/ 1) Lines: 87.50% ( 7/ 8) diff --git a/vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-clover.xml b/vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-clover.xml new file mode 100644 index 00000000..efd38014 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-clover.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-crap4j.xml b/vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-crap4j.xml new file mode 100644 index 00000000..2607b59a --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-crap4j.xml @@ -0,0 +1,37 @@ + + + CoverageForFileWithIgnoredLines + %s + + Method Crap Stats + 2 + 0 + 0 + 2 + 0 + + + + global + Foo + bar + bar() + bar() + 1 + 1 + 100 + 0 + + + global + Bar + foo + foo() + foo() + 1 + 1 + 100 + 0 + + + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-text.txt b/vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-text.txt new file mode 100644 index 00000000..6e8e1494 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/ignored-lines-text.txt @@ -0,0 +1,10 @@ + + +Code Coverage Report:%w + %s +%w + Summary:%w + Classes: (0/0) + Methods: (0/0) + Lines: 50.00% (1/2) + diff --git a/vendor/phpunit/php-code-coverage/tests/_files/source_with_class_and_anonymous_function.php b/vendor/phpunit/php-code-coverage/tests/_files/source_with_class_and_anonymous_function.php new file mode 100644 index 00000000..72aa938e --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/_files/source_with_class_and_anonymous_function.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Report; + +use SebastianBergmann\CodeCoverage\Driver\Driver; +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Filter; +use SebastianBergmann\CodeCoverage\TestCase; +use SebastianBergmann\CodeCoverage\Node\Builder; + +class BuilderTest extends TestCase +{ + protected $factory; + + protected function setUp() + { + $this->factory = new Builder; + } + + public function testSomething() + { + $root = $this->getCoverageForBankAccount()->getReport(); + + $expectedPath = rtrim(TEST_FILES_PATH, DIRECTORY_SEPARATOR); + $this->assertEquals($expectedPath, $root->getName()); + $this->assertEquals($expectedPath, $root->getPath()); + $this->assertEquals(10, $root->getNumExecutableLines()); + $this->assertEquals(5, $root->getNumExecutedLines()); + $this->assertEquals(1, $root->getNumClasses()); + $this->assertEquals(0, $root->getNumTestedClasses()); + $this->assertEquals(4, $root->getNumMethods()); + $this->assertEquals(3, $root->getNumTestedMethods()); + $this->assertEquals('0.00%', $root->getTestedClassesPercent()); + $this->assertEquals('75.00%', $root->getTestedMethodsPercent()); + $this->assertEquals('50.00%', $root->getLineExecutedPercent()); + $this->assertEquals(0, $root->getNumFunctions()); + $this->assertEquals(0, $root->getNumTestedFunctions()); + $this->assertNull($root->getParent()); + $this->assertEquals([], $root->getDirectories()); + #$this->assertEquals(array(), $root->getFiles()); + #$this->assertEquals(array(), $root->getChildNodes()); + + $this->assertEquals( + [ + 'BankAccount' => [ + 'methods' => [ + 'getBalance' => [ + 'signature' => 'getBalance()', + 'startLine' => 6, + 'endLine' => 9, + 'executableLines' => 1, + 'executedLines' => 1, + 'ccn' => 1, + 'coverage' => 100, + 'crap' => '1', + 'link' => 'BankAccount.php.html#6', + 'methodName' => 'getBalance', + 'visibility' => 'public', + ], + 'setBalance' => [ + 'signature' => 'setBalance($balance)', + 'startLine' => 11, + 'endLine' => 18, + 'executableLines' => 5, + 'executedLines' => 0, + 'ccn' => 2, + 'coverage' => 0, + 'crap' => 6, + 'link' => 'BankAccount.php.html#11', + 'methodName' => 'setBalance', + 'visibility' => 'protected', + ], + 'depositMoney' => [ + 'signature' => 'depositMoney($balance)', + 'startLine' => 20, + 'endLine' => 25, + 'executableLines' => 2, + 'executedLines' => 2, + 'ccn' => 1, + 'coverage' => 100, + 'crap' => '1', + 'link' => 'BankAccount.php.html#20', + 'methodName' => 'depositMoney', + 'visibility' => 'public', + ], + 'withdrawMoney' => [ + 'signature' => 'withdrawMoney($balance)', + 'startLine' => 27, + 'endLine' => 32, + 'executableLines' => 2, + 'executedLines' => 2, + 'ccn' => 1, + 'coverage' => 100, + 'crap' => '1', + 'link' => 'BankAccount.php.html#27', + 'methodName' => 'withdrawMoney', + 'visibility' => 'public', + ], + ], + 'startLine' => 2, + 'executableLines' => 10, + 'executedLines' => 5, + 'ccn' => 5, + 'coverage' => 50, + 'crap' => '8.12', + 'package' => [ + 'namespace' => '', + 'fullPackage' => '', + 'category' => '', + 'package' => '', + 'subpackage' => '' + ], + 'link' => 'BankAccount.php.html#2', + 'className' => 'BankAccount' + ] + ], + $root->getClasses() + ); + + $this->assertEquals([], $root->getFunctions()); + } + + public function testNotCrashParsing() + { + $coverage = $this->getCoverageForCrashParsing(); + $root = $coverage->getReport(); + + $expectedPath = rtrim(TEST_FILES_PATH, DIRECTORY_SEPARATOR); + $this->assertEquals($expectedPath, $root->getName()); + $this->assertEquals($expectedPath, $root->getPath()); + $this->assertEquals(2, $root->getNumExecutableLines()); + $this->assertEquals(0, $root->getNumExecutedLines()); + $data = $coverage->getData(); + $expectedFile = $expectedPath . DIRECTORY_SEPARATOR . 'Crash.php'; + $this->assertSame([$expectedFile => [1 => [], 2 => []]], $data); + } + + public function testBuildDirectoryStructure() + { + $s = \DIRECTORY_SEPARATOR; + + $method = new \ReflectionMethod( + Builder::class, + 'buildDirectoryStructure' + ); + + $method->setAccessible(true); + + $this->assertEquals( + [ + 'src' => [ + 'Money.php/f' => [], + 'MoneyBag.php/f' => [], + 'Foo' => [ + 'Bar' => [ + 'Baz' => [ + 'Foo.php/f' => [], + ], + ], + ], + ] + ], + $method->invoke( + $this->factory, + [ + "src{$s}Money.php" => [], + "src{$s}MoneyBag.php" => [], + "src{$s}Foo{$s}Bar{$s}Baz{$s}Foo.php" => [], + ] + ) + ); + } + + /** + * @dataProvider reducePathsProvider + */ + public function testReducePaths($reducedPaths, $commonPath, $paths) + { + $method = new \ReflectionMethod( + Builder::class, + 'reducePaths' + ); + + $method->setAccessible(true); + + $_commonPath = $method->invokeArgs($this->factory, [&$paths]); + + $this->assertEquals($reducedPaths, $paths); + $this->assertEquals($commonPath, $_commonPath); + } + + public function reducePathsProvider() + { + $s = \DIRECTORY_SEPARATOR; + + yield [ + [], + ".", + [] + ]; + + $prefixes = ["C:$s", "$s"]; + + foreach($prefixes as $p){ + yield [ + [ + "Money.php" => [] + ], + "{$p}home{$s}sb{$s}Money{$s}", + [ + "{$p}home{$s}sb{$s}Money{$s}Money.php" => [] + ] + ]; + + yield [ + [ + "Money.php" => [], + "MoneyBag.php" => [] + ], + "{$p}home{$s}sb{$s}Money", + [ + "{$p}home{$s}sb{$s}Money{$s}Money.php" => [], + "{$p}home{$s}sb{$s}Money{$s}MoneyBag.php" => [] + ] + ]; + + yield [ + [ + "Money.php" => [], + "MoneyBag.php" => [], + "Cash.phar{$s}Cash.php" => [], + ], + "{$p}home{$s}sb{$s}Money", + [ + "{$p}home{$s}sb{$s}Money{$s}Money.php" => [], + "{$p}home{$s}sb{$s}Money{$s}MoneyBag.php" => [], + "phar://{$p}home{$s}sb{$s}Money{$s}Cash.phar{$s}Cash.php" => [], + ], + ]; + } + } +} diff --git a/vendor/phpunit/php-code-coverage/tests/tests/CloverTest.php b/vendor/phpunit/php-code-coverage/tests/tests/CloverTest.php new file mode 100644 index 00000000..85743abc --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/tests/CloverTest.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Report; + +use SebastianBergmann\CodeCoverage\TestCase; + +/** + * @covers SebastianBergmann\CodeCoverage\Report\Clover + */ +class CloverTest extends TestCase +{ + public function testCloverForBankAccountTest() + { + $clover = new Clover; + + $this->assertStringMatchesFormatFile( + TEST_FILES_PATH . 'BankAccount-clover.xml', + $clover->process($this->getCoverageForBankAccount(), null, 'BankAccount') + ); + } + + public function testCloverForFileWithIgnoredLines() + { + $clover = new Clover; + + $this->assertStringMatchesFormatFile( + TEST_FILES_PATH . 'ignored-lines-clover.xml', + $clover->process($this->getCoverageForFileWithIgnoredLines()) + ); + } + + public function testCloverForClassWithAnonymousFunction() + { + $clover = new Clover; + + $this->assertStringMatchesFormatFile( + TEST_FILES_PATH . 'class-with-anonymous-function-clover.xml', + $clover->process($this->getCoverageForClassWithAnonymousFunction()) + ); + } +} diff --git a/vendor/phpunit/php-code-coverage/tests/tests/CodeCoverageTest.php b/vendor/phpunit/php-code-coverage/tests/tests/CodeCoverageTest.php new file mode 100644 index 00000000..f217f8d7 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/tests/CodeCoverageTest.php @@ -0,0 +1,499 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage; + +require __DIR__ . '/../_files/BankAccount.php'; +require __DIR__ . '/../_files/BankAccountTest.php'; + +use SebastianBergmann\CodeCoverage\Driver\Driver; +use SebastianBergmann\CodeCoverage\Driver\PHPDBG; +use SebastianBergmann\CodeCoverage\Driver\Xdebug; + +/** + * @covers SebastianBergmann\CodeCoverage\CodeCoverage + */ +class CodeCoverageTest extends TestCase +{ + /** + * @var CodeCoverage + */ + private $coverage; + + protected function setUp() + { + $this->coverage = new CodeCoverage; + } + + public function testCanBeConstructedForXdebugWithoutGivenFilterObject() + { + if (PHP_SAPI == 'phpdbg') { + $this->markTestSkipped('Requires PHP CLI and Xdebug'); + } + + $this->assertAttributeInstanceOf( + Xdebug::class, + 'driver', + $this->coverage + ); + + $this->assertAttributeInstanceOf( + Filter::class, + 'filter', + $this->coverage + ); + } + + public function testCanBeConstructedForXdebugWithGivenFilterObject() + { + if (PHP_SAPI == 'phpdbg') { + $this->markTestSkipped('Requires PHP CLI and Xdebug'); + } + + $filter = new Filter; + $coverage = new CodeCoverage(null, $filter); + + $this->assertAttributeInstanceOf( + Xdebug::class, + 'driver', + $coverage + ); + + $this->assertSame($filter, $coverage->filter()); + } + + public function testCanBeConstructedForPhpdbgWithoutGivenFilterObject() + { + if (PHP_SAPI != 'phpdbg') { + $this->markTestSkipped('Requires PHPDBG'); + } + + $this->assertAttributeInstanceOf( + PHPDBG::class, + 'driver', + $this->coverage + ); + + $this->assertAttributeInstanceOf( + Filter::class, + 'filter', + $this->coverage + ); + } + + public function testCanBeConstructedForPhpdbgWithGivenFilterObject() + { + if (PHP_SAPI != 'phpdbg') { + $this->markTestSkipped('Requires PHPDBG'); + } + + $filter = new Filter; + $coverage = new CodeCoverage(null, $filter); + + $this->assertAttributeInstanceOf( + PHPDBG::class, + 'driver', + $coverage + ); + + $this->assertSame($filter, $coverage->filter()); + } + + public function testCannotStopWithInvalidSecondArgument() + { + $this->expectException(Exception::class); + + $this->coverage->stop(true, null); + } + + public function testCannotAppendWithInvalidArgument() + { + $this->expectException(Exception::class); + + $this->coverage->append([], null); + } + + public function testSetCacheTokens() + { + $this->coverage->setCacheTokens(true); + + $this->assertAttributeEquals(true, 'cacheTokens', $this->coverage); + } + + public function testSetCheckForUnintentionallyCoveredCode() + { + $this->coverage->setCheckForUnintentionallyCoveredCode(true); + + $this->assertAttributeEquals( + true, + 'checkForUnintentionallyCoveredCode', + $this->coverage + ); + } + + public function testSetCheckForMissingCoversAnnotation() + { + $this->coverage->setCheckForMissingCoversAnnotation(true); + + $this->assertAttributeEquals( + true, + 'checkForMissingCoversAnnotation', + $this->coverage + ); + } + + public function testSetForceCoversAnnotation() + { + $this->coverage->setForceCoversAnnotation(true); + + $this->assertAttributeEquals( + true, + 'forceCoversAnnotation', + $this->coverage + ); + } + + public function testSetCheckForUnexecutedCoveredCode() + { + $this->coverage->setCheckForUnexecutedCoveredCode(true); + + $this->assertAttributeEquals( + true, + 'checkForUnexecutedCoveredCode', + $this->coverage + ); + } + + public function testSetAddUncoveredFilesFromWhitelist() + { + $this->coverage->setAddUncoveredFilesFromWhitelist(true); + + $this->assertAttributeEquals( + true, + 'addUncoveredFilesFromWhitelist', + $this->coverage + ); + } + + public function testSetProcessUncoveredFilesFromWhitelist() + { + $this->coverage->setProcessUncoveredFilesFromWhitelist(true); + + $this->assertAttributeEquals( + true, + 'processUncoveredFilesFromWhitelist', + $this->coverage + ); + } + + public function testSetIgnoreDeprecatedCode() + { + $this->coverage->setIgnoreDeprecatedCode(true); + + $this->assertAttributeEquals( + true, + 'ignoreDeprecatedCode', + $this->coverage + ); + } + + public function testClear() + { + $this->coverage->clear(); + + $this->assertAttributeEquals(null, 'currentId', $this->coverage); + $this->assertAttributeEquals([], 'data', $this->coverage); + $this->assertAttributeEquals([], 'tests', $this->coverage); + } + + public function testCollect() + { + $coverage = $this->getCoverageForBankAccount(); + + $this->assertEquals( + $this->getExpectedDataArrayForBankAccount(), + $coverage->getData() + ); + + $this->assertEquals( + [ + 'BankAccountTest::testBalanceIsInitiallyZero' => ['size' => 'unknown', 'status' => -1], + 'BankAccountTest::testBalanceCannotBecomeNegative' => ['size' => 'unknown', 'status' => -1], + 'BankAccountTest::testBalanceCannotBecomeNegative2' => ['size' => 'unknown', 'status' => -1], + 'BankAccountTest::testDepositWithdrawMoney' => ['size' => 'unknown', 'status' => -1] + ], + $coverage->getTests() + ); + } + + public function testMerge() + { + $coverage = $this->getCoverageForBankAccountForFirstTwoTests(); + $coverage->merge($this->getCoverageForBankAccountForLastTwoTests()); + + $this->assertEquals( + $this->getExpectedDataArrayForBankAccount(), + $coverage->getData() + ); + } + + public function testMergeReverseOrder() + { + $coverage = $this->getCoverageForBankAccountForLastTwoTests(); + $coverage->merge($this->getCoverageForBankAccountForFirstTwoTests()); + + $this->assertEquals( + $this->getExpectedDataArrayForBankAccountInReverseOrder(), + $coverage->getData() + ); + } + + public function testMerge2() + { + $coverage = new CodeCoverage( + $this->createMock(Driver::class), + new Filter + ); + + $coverage->merge($this->getCoverageForBankAccount()); + + $this->assertEquals( + $this->getExpectedDataArrayForBankAccount(), + $coverage->getData() + ); + } + + public function testGetLinesToBeIgnored() + { + $this->assertEquals( + [ + 1, + 3, + 4, + 5, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 30, + 32, + 33, + 34, + 35, + 36, + 37, + 38 + ], + $this->getLinesToBeIgnored()->invoke( + $this->coverage, + TEST_FILES_PATH . 'source_with_ignore.php' + ) + ); + } + + public function testGetLinesToBeIgnored2() + { + $this->assertEquals( + [1, 5], + $this->getLinesToBeIgnored()->invoke( + $this->coverage, + TEST_FILES_PATH . 'source_without_ignore.php' + ) + ); + } + + public function testGetLinesToBeIgnored3() + { + $this->assertEquals( + [ + 1, + 2, + 3, + 4, + 5, + 8, + 11, + 15, + 16, + 19, + 20 + ], + $this->getLinesToBeIgnored()->invoke( + $this->coverage, + TEST_FILES_PATH . 'source_with_class_and_anonymous_function.php' + ) + ); + } + + public function testGetLinesToBeIgnoredOneLineAnnotations() + { + $this->assertEquals( + [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 14, + 15, + 16, + 18, + 20, + 21, + 23, + 24, + 25, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 37 + ], + $this->getLinesToBeIgnored()->invoke( + $this->coverage, + TEST_FILES_PATH . 'source_with_oneline_annotations.php' + ) + ); + } + + /** + * @return \ReflectionMethod + */ + private function getLinesToBeIgnored() + { + $getLinesToBeIgnored = new \ReflectionMethod( + 'SebastianBergmann\CodeCoverage\CodeCoverage', + 'getLinesToBeIgnored' + ); + + $getLinesToBeIgnored->setAccessible(true); + + return $getLinesToBeIgnored; + } + + public function testGetLinesToBeIgnoredWhenIgnoreIsDisabled() + { + $this->coverage->setDisableIgnoredLines(true); + + $this->assertEquals( + [ + 7, + 11, + 12, + 13, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 26, + 27, + 32, + 33, + 34, + 35, + 36, + 37 + ], + $this->getLinesToBeIgnored()->invoke( + $this->coverage, + TEST_FILES_PATH . 'source_with_ignore.php' + ) + ); + } + + public function testAppendThrowsExceptionIfCoveredCodeWasNotExecuted() + { + $this->coverage->filter()->addDirectoryToWhitelist(TEST_FILES_PATH); + $this->coverage->setCheckForUnexecutedCoveredCode(true); + + $data = [ + TEST_FILES_PATH . 'BankAccount.php' => [ + 29 => -1, + 31 => -1 + ] + ]; + + $linesToBeCovered = [ + TEST_FILES_PATH . 'BankAccount.php' => [ + 22, + 24 + ] + ]; + + $linesToBeUsed = []; + + $this->expectException(CoveredCodeNotExecutedException::class); + + $this->coverage->append($data, 'File1.php', true, $linesToBeCovered, $linesToBeUsed); + } + + public function testAppendThrowsExceptionIfUsedCodeWasNotExecuted() + { + $this->coverage->filter()->addDirectoryToWhitelist(TEST_FILES_PATH); + $this->coverage->setCheckForUnexecutedCoveredCode(true); + + $data = [ + TEST_FILES_PATH . 'BankAccount.php' => [ + 29 => -1, + 31 => -1 + ] + ]; + + $linesToBeCovered = [ + TEST_FILES_PATH . 'BankAccount.php' => [ + 29, + 31 + ] + ]; + + $linesToBeUsed = [ + TEST_FILES_PATH . 'BankAccount.php' => [ + 22, + 24 + ] + ]; + + $this->expectException(CoveredCodeNotExecutedException::class); + + $this->coverage->append($data, 'File1.php', true, $linesToBeCovered, $linesToBeUsed); + } +} diff --git a/vendor/phpunit/php-code-coverage/tests/tests/Crap4jTest.php b/vendor/phpunit/php-code-coverage/tests/tests/Crap4jTest.php new file mode 100644 index 00000000..faa1ac51 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/tests/Crap4jTest.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Report; + +use SebastianBergmann\CodeCoverage\TestCase; + +/** + * @covers SebastianBergmann\CodeCoverage\Report\Crap4j + */ +class Crap4jTest extends TestCase +{ + public function testForBankAccountTest() + { + $crap4j = new Crap4j; + + $this->assertStringMatchesFormatFile( + TEST_FILES_PATH . 'BankAccount-crap4j.xml', + $crap4j->process($this->getCoverageForBankAccount(), null, 'BankAccount') + ); + } + + public function testForFileWithIgnoredLines() + { + $crap4j = new Crap4j; + + $this->assertStringMatchesFormatFile( + TEST_FILES_PATH . 'ignored-lines-crap4j.xml', + $crap4j->process($this->getCoverageForFileWithIgnoredLines(), null, 'CoverageForFileWithIgnoredLines') + ); + } + + public function testForClassWithAnonymousFunction() + { + $crap4j = new Crap4j; + + $this->assertStringMatchesFormatFile( + TEST_FILES_PATH . 'class-with-anonymous-function-crap4j.xml', + $crap4j->process($this->getCoverageForClassWithAnonymousFunction(), null, 'CoverageForClassWithAnonymousFunction') + ); + } +} diff --git a/vendor/phpunit/php-code-coverage/tests/tests/FilterTest.php b/vendor/phpunit/php-code-coverage/tests/tests/FilterTest.php new file mode 100644 index 00000000..4c90fca6 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/tests/FilterTest.php @@ -0,0 +1,198 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage; + +use PHPUnit\Framework\TestCase; +use SebastianBergmann\FileIterator\Facade as FileIteratorFacade; + +class FilterTest extends TestCase +{ + /** + * @var Filter + */ + private $filter; + + /** + * @var array + */ + private $files = []; + + protected function setUp() + { + $this->filter = unserialize('O:37:"SebastianBergmann\CodeCoverage\Filter":0:{}'); + + $this->files = [ + TEST_FILES_PATH . 'BankAccount.php', + TEST_FILES_PATH . 'BankAccountTest.php', + TEST_FILES_PATH . 'CoverageClassExtendedTest.php', + TEST_FILES_PATH . 'CoverageClassTest.php', + TEST_FILES_PATH . 'CoverageFunctionParenthesesTest.php', + TEST_FILES_PATH . 'CoverageFunctionParenthesesWhitespaceTest.php', + TEST_FILES_PATH . 'CoverageFunctionTest.php', + TEST_FILES_PATH . 'CoverageMethodOneLineAnnotationTest.php', + TEST_FILES_PATH . 'CoverageMethodParenthesesTest.php', + TEST_FILES_PATH . 'CoverageMethodParenthesesWhitespaceTest.php', + TEST_FILES_PATH . 'CoverageMethodTest.php', + TEST_FILES_PATH . 'CoverageNoneTest.php', + TEST_FILES_PATH . 'CoverageNotPrivateTest.php', + TEST_FILES_PATH . 'CoverageNotProtectedTest.php', + TEST_FILES_PATH . 'CoverageNotPublicTest.php', + TEST_FILES_PATH . 'CoverageNothingTest.php', + TEST_FILES_PATH . 'CoveragePrivateTest.php', + TEST_FILES_PATH . 'CoverageProtectedTest.php', + TEST_FILES_PATH . 'CoveragePublicTest.php', + TEST_FILES_PATH . 'CoverageTwoDefaultClassAnnotations.php', + TEST_FILES_PATH . 'CoveredClass.php', + TEST_FILES_PATH . 'CoveredFunction.php', + TEST_FILES_PATH . 'Crash.php', + TEST_FILES_PATH . 'NamespaceCoverageClassExtendedTest.php', + TEST_FILES_PATH . 'NamespaceCoverageClassTest.php', + TEST_FILES_PATH . 'NamespaceCoverageCoversClassPublicTest.php', + TEST_FILES_PATH . 'NamespaceCoverageCoversClassTest.php', + TEST_FILES_PATH . 'NamespaceCoverageMethodTest.php', + TEST_FILES_PATH . 'NamespaceCoverageNotPrivateTest.php', + TEST_FILES_PATH . 'NamespaceCoverageNotProtectedTest.php', + TEST_FILES_PATH . 'NamespaceCoverageNotPublicTest.php', + TEST_FILES_PATH . 'NamespaceCoveragePrivateTest.php', + TEST_FILES_PATH . 'NamespaceCoverageProtectedTest.php', + TEST_FILES_PATH . 'NamespaceCoveragePublicTest.php', + TEST_FILES_PATH . 'NamespaceCoveredClass.php', + TEST_FILES_PATH . 'NotExistingCoveredElementTest.php', + TEST_FILES_PATH . 'source_with_class_and_anonymous_function.php', + TEST_FILES_PATH . 'source_with_ignore.php', + TEST_FILES_PATH . 'source_with_namespace.php', + TEST_FILES_PATH . 'source_with_oneline_annotations.php', + TEST_FILES_PATH . 'source_without_ignore.php', + TEST_FILES_PATH . 'source_without_namespace.php' + ]; + } + + /** + * @covers SebastianBergmann\CodeCoverage\Filter::addFileToWhitelist + * @covers SebastianBergmann\CodeCoverage\Filter::getWhitelist + */ + public function testAddingAFileToTheWhitelistWorks() + { + $this->filter->addFileToWhitelist($this->files[0]); + + $this->assertEquals( + [$this->files[0]], + $this->filter->getWhitelist() + ); + } + + /** + * @covers SebastianBergmann\CodeCoverage\Filter::removeFileFromWhitelist + * @covers SebastianBergmann\CodeCoverage\Filter::getWhitelist + */ + public function testRemovingAFileFromTheWhitelistWorks() + { + $this->filter->addFileToWhitelist($this->files[0]); + $this->filter->removeFileFromWhitelist($this->files[0]); + + $this->assertEquals([], $this->filter->getWhitelist()); + } + + /** + * @covers SebastianBergmann\CodeCoverage\Filter::addDirectoryToWhitelist + * @covers SebastianBergmann\CodeCoverage\Filter::getWhitelist + * @depends testAddingAFileToTheWhitelistWorks + */ + public function testAddingADirectoryToTheWhitelistWorks() + { + $this->filter->addDirectoryToWhitelist(TEST_FILES_PATH); + + $whitelist = $this->filter->getWhitelist(); + sort($whitelist); + + $this->assertEquals($this->files, $whitelist); + } + + /** + * @covers SebastianBergmann\CodeCoverage\Filter::addFilesToWhitelist + * @covers SebastianBergmann\CodeCoverage\Filter::getWhitelist + */ + public function testAddingFilesToTheWhitelistWorks() + { + $facade = new FileIteratorFacade; + + $files = $facade->getFilesAsArray( + TEST_FILES_PATH, + $suffixes = '.php' + ); + + $this->filter->addFilesToWhitelist($files); + + $whitelist = $this->filter->getWhitelist(); + sort($whitelist); + + $this->assertEquals($this->files, $whitelist); + } + + /** + * @covers SebastianBergmann\CodeCoverage\Filter::removeDirectoryFromWhitelist + * @covers SebastianBergmann\CodeCoverage\Filter::getWhitelist + * @depends testAddingADirectoryToTheWhitelistWorks + */ + public function testRemovingADirectoryFromTheWhitelistWorks() + { + $this->filter->addDirectoryToWhitelist(TEST_FILES_PATH); + $this->filter->removeDirectoryFromWhitelist(TEST_FILES_PATH); + + $this->assertEquals([], $this->filter->getWhitelist()); + } + + /** + * @covers SebastianBergmann\CodeCoverage\Filter::isFile + */ + public function testIsFile() + { + $this->assertFalse($this->filter->isFile('vfs://root/a/path')); + $this->assertFalse($this->filter->isFile('xdebug://debug-eval')); + $this->assertFalse($this->filter->isFile('eval()\'d code')); + $this->assertFalse($this->filter->isFile('runtime-created function')); + $this->assertFalse($this->filter->isFile('assert code')); + $this->assertFalse($this->filter->isFile('regexp code')); + $this->assertTrue($this->filter->isFile(__FILE__)); + } + + /** + * @covers SebastianBergmann\CodeCoverage\Filter::isFiltered + */ + public function testWhitelistedFileIsNotFiltered() + { + $this->filter->addFileToWhitelist($this->files[0]); + $this->assertFalse($this->filter->isFiltered($this->files[0])); + } + + /** + * @covers SebastianBergmann\CodeCoverage\Filter::isFiltered + */ + public function testNotWhitelistedFileIsFiltered() + { + $this->filter->addFileToWhitelist($this->files[0]); + $this->assertTrue($this->filter->isFiltered($this->files[1])); + } + + /** + * @covers SebastianBergmann\CodeCoverage\Filter::isFiltered + * @covers SebastianBergmann\CodeCoverage\Filter::isFile + */ + public function testNonFilesAreFiltered() + { + $this->assertTrue($this->filter->isFiltered('vfs://root/a/path')); + $this->assertTrue($this->filter->isFiltered('xdebug://debug-eval')); + $this->assertTrue($this->filter->isFiltered('eval()\'d code')); + $this->assertTrue($this->filter->isFiltered('runtime-created function')); + $this->assertTrue($this->filter->isFiltered('assert code')); + $this->assertTrue($this->filter->isFiltered('regexp code')); + } +} diff --git a/vendor/phpunit/php-code-coverage/tests/tests/HTMLTest.php b/vendor/phpunit/php-code-coverage/tests/tests/HTMLTest.php new file mode 100644 index 00000000..48353f07 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/tests/HTMLTest.php @@ -0,0 +1,103 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Report\Html; + +use SebastianBergmann\CodeCoverage\TestCase; + +class HTMLTest extends TestCase +{ + private static $TEST_REPORT_PATH_SOURCE; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + self::$TEST_REPORT_PATH_SOURCE = TEST_FILES_PATH . 'Report' . DIRECTORY_SEPARATOR . 'HTML'; + } + + protected function tearDown() + { + parent::tearDown(); + + $tmpFilesIterator = new \RecursiveIteratorIterator( + new \RecursiveDirectoryIterator(self::$TEST_TMP_PATH, \RecursiveDirectoryIterator::SKIP_DOTS), + \RecursiveIteratorIterator::CHILD_FIRST + ); + + foreach ($tmpFilesIterator as $path => $fileInfo) { + /* @var \SplFileInfo $fileInfo */ + $pathname = $fileInfo->getPathname(); + $fileInfo->isDir() ? rmdir($pathname) : unlink($pathname); + } + } + + public function testForBankAccountTest() + { + $expectedFilesPath = self::$TEST_REPORT_PATH_SOURCE . DIRECTORY_SEPARATOR . 'CoverageForBankAccount'; + + $report = new Facade; + $report->process($this->getCoverageForBankAccount(), self::$TEST_TMP_PATH); + + $this->assertFilesEquals($expectedFilesPath, self::$TEST_TMP_PATH); + } + + public function testForFileWithIgnoredLines() + { + $expectedFilesPath = self::$TEST_REPORT_PATH_SOURCE . DIRECTORY_SEPARATOR . 'CoverageForFileWithIgnoredLines'; + + $report = new Facade; + $report->process($this->getCoverageForFileWithIgnoredLines(), self::$TEST_TMP_PATH); + + $this->assertFilesEquals($expectedFilesPath, self::$TEST_TMP_PATH); + } + + public function testForClassWithAnonymousFunction() + { + $expectedFilesPath = + self::$TEST_REPORT_PATH_SOURCE . DIRECTORY_SEPARATOR . 'CoverageForClassWithAnonymousFunction'; + + $report = new Facade; + $report->process($this->getCoverageForClassWithAnonymousFunction(), self::$TEST_TMP_PATH); + + $this->assertFilesEquals($expectedFilesPath, self::$TEST_TMP_PATH); + } + + /** + * @param string $expectedFilesPath + * @param string $actualFilesPath + */ + private function assertFilesEquals($expectedFilesPath, $actualFilesPath) + { + $expectedFilesIterator = new \FilesystemIterator($expectedFilesPath); + $actualFilesIterator = new \RegexIterator(new \FilesystemIterator($actualFilesPath), '/.html/'); + + $this->assertEquals( + iterator_count($expectedFilesIterator), + iterator_count($actualFilesIterator), + 'Generated files and expected files not match' + ); + + foreach ($expectedFilesIterator as $path => $fileInfo) { + /* @var \SplFileInfo $fileInfo */ + $filename = $fileInfo->getFilename(); + + $actualFile = $actualFilesPath . DIRECTORY_SEPARATOR . $filename; + + $this->assertFileExists($actualFile); + + $this->assertStringMatchesFormatFile( + $fileInfo->getPathname(), + str_replace(PHP_EOL, "\n", file_get_contents($actualFile)), + "${filename} not match" + ); + } + } +} diff --git a/vendor/phpunit/php-code-coverage/tests/tests/TextTest.php b/vendor/phpunit/php-code-coverage/tests/tests/TextTest.php new file mode 100644 index 00000000..04da00ab --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/tests/TextTest.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Report; + +use SebastianBergmann\CodeCoverage\TestCase; + +/** + * @covers SebastianBergmann\CodeCoverage\Report\Text + */ +class TextTest extends TestCase +{ + public function testTextForBankAccountTest() + { + $text = new Text(50, 90, false, false); + + $this->assertStringMatchesFormatFile( + TEST_FILES_PATH . 'BankAccount-text.txt', + str_replace(PHP_EOL, "\n", $text->process($this->getCoverageForBankAccount())) + ); + } + + public function testTextForFileWithIgnoredLines() + { + $text = new Text(50, 90, false, false); + + $this->assertStringMatchesFormatFile( + TEST_FILES_PATH . 'ignored-lines-text.txt', + str_replace(PHP_EOL, "\n", $text->process($this->getCoverageForFileWithIgnoredLines())) + ); + } + + public function testTextForClassWithAnonymousFunction() + { + $text = new Text(50, 90, false, false); + + $this->assertStringMatchesFormatFile( + TEST_FILES_PATH . 'class-with-anonymous-function-text.txt', + str_replace(PHP_EOL, "\n", $text->process($this->getCoverageForClassWithAnonymousFunction())) + ); + } +} diff --git a/vendor/phpunit/php-code-coverage/tests/tests/UtilTest.php b/vendor/phpunit/php-code-coverage/tests/tests/UtilTest.php new file mode 100644 index 00000000..a6f19ea3 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/tests/UtilTest.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage; + +use PHPUnit\Framework\TestCase; + +/** + * @covers SebastianBergmann\CodeCoverage\Util + */ +class UtilTest extends TestCase +{ + public function testPercent() + { + $this->assertEquals(100, Util::percent(100, 0)); + $this->assertEquals(100, Util::percent(100, 100)); + $this->assertEquals( + '100.00%', + Util::percent(100, 100, true) + ); + } +} diff --git a/vendor/phpunit/php-code-coverage/tests/tests/XmlTest.php b/vendor/phpunit/php-code-coverage/tests/tests/XmlTest.php new file mode 100644 index 00000000..624bb2a5 --- /dev/null +++ b/vendor/phpunit/php-code-coverage/tests/tests/XmlTest.php @@ -0,0 +1,98 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\CodeCoverage\Report\Xml; + +use SebastianBergmann\CodeCoverage\TestCase; + +class XmlTest extends TestCase +{ + private static $TEST_REPORT_PATH_SOURCE; + + public static function setUpBeforeClass() + { + parent::setUpBeforeClass(); + + self::$TEST_REPORT_PATH_SOURCE = TEST_FILES_PATH . 'Report' . DIRECTORY_SEPARATOR . 'XML'; + } + + protected function tearDown() + { + parent::tearDown(); + + $tmpFilesIterator = new \FilesystemIterator(self::$TEST_TMP_PATH); + + foreach ($tmpFilesIterator as $path => $fileInfo) { + /* @var \SplFileInfo $fileInfo */ + unlink($fileInfo->getPathname()); + } + } + + public function testForBankAccountTest() + { + $expectedFilesPath = self::$TEST_REPORT_PATH_SOURCE . DIRECTORY_SEPARATOR . 'CoverageForBankAccount'; + + $xml = new Facade('1.0.0'); + $xml->process($this->getCoverageForBankAccount(), self::$TEST_TMP_PATH); + + $this->assertFilesEquals($expectedFilesPath, self::$TEST_TMP_PATH); + } + + public function testForFileWithIgnoredLines() + { + $expectedFilesPath = self::$TEST_REPORT_PATH_SOURCE . DIRECTORY_SEPARATOR . 'CoverageForFileWithIgnoredLines'; + + $xml = new Facade('1.0.0'); + $xml->process($this->getCoverageForFileWithIgnoredLines(), self::$TEST_TMP_PATH); + + $this->assertFilesEquals($expectedFilesPath, self::$TEST_TMP_PATH); + } + + public function testForClassWithAnonymousFunction() + { + $expectedFilesPath = self::$TEST_REPORT_PATH_SOURCE . DIRECTORY_SEPARATOR . 'CoverageForClassWithAnonymousFunction'; + + $xml = new Facade('1.0.0'); + $xml->process($this->getCoverageForClassWithAnonymousFunction(), self::$TEST_TMP_PATH); + + $this->assertFilesEquals($expectedFilesPath, self::$TEST_TMP_PATH); + } + + /** + * @param string $expectedFilesPath + * @param string $actualFilesPath + */ + private function assertFilesEquals($expectedFilesPath, $actualFilesPath) + { + $expectedFilesIterator = new \FilesystemIterator($expectedFilesPath); + $actualFilesIterator = new \FilesystemIterator($actualFilesPath); + + $this->assertEquals( + iterator_count($expectedFilesIterator), + iterator_count($actualFilesIterator), + 'Generated files and expected files not match' + ); + + foreach ($expectedFilesIterator as $path => $fileInfo) { + /* @var \SplFileInfo $fileInfo */ + $filename = $fileInfo->getFilename(); + + $actualFile = $actualFilesPath . DIRECTORY_SEPARATOR . $filename; + + $this->assertFileExists($actualFile); + + $this->assertStringMatchesFormatFile( + $fileInfo->getPathname(), + file_get_contents($actualFile), + "${filename} not match" + ); + } + } +} diff --git a/vendor/phpunit/php-file-iterator/ChangeLog.md b/vendor/phpunit/php-file-iterator/ChangeLog.md new file mode 100644 index 00000000..085aa22a --- /dev/null +++ b/vendor/phpunit/php-file-iterator/ChangeLog.md @@ -0,0 +1,100 @@ +# Change Log + +All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). + +## [2.0.6] - 2024-03-01 + +* No code changes, only updated `.gitattributes` to not export non-essential files. + +## [2.0.5] - 2021-12-02 + +### Changed + +* [#73](https://github.com/sebastianbergmann/php-file-iterator/pull/73): Micro performance improvements on parsing paths + +### Fixed + +* [#74](https://github.com/sebastianbergmann/php-file-iterator/pull/74): Document return type of `SebastianBergmann\FileIterator\Iterator::accept()` so that Symfony's `DebugClassLoader` does not trigger a deprecation warning + +## [2.0.4] - 2021-07-19 + +### Changed + +* Added `ReturnTypeWillChange` attribute to `SebastianBergmann\FileIterator\Iterator::accept()` because the return type of `\FilterIterator::accept()` will change in PHP 8.1 + +## [2.0.3] - 2020-11-30 + +### Changed + +* Changed PHP version constraint in `composer.json` from `^7.1` to `>=7.1` + +## [2.0.2] - 2018-09-13 + +### Fixed + +* [#48](https://github.com/sebastianbergmann/php-file-iterator/issues/48): Excluding an array that contains false ends up excluding the current working directory + +## [2.0.1] - 2018-06-11 + +### Fixed + +* [#46](https://github.com/sebastianbergmann/php-file-iterator/issues/46): Regression with hidden parent directory + +## [2.0.0] - 2018-05-28 + +### Fixed + +* [#30](https://github.com/sebastianbergmann/php-file-iterator/issues/30): Exclude is not considered if it is a parent of the base path + +### Changed + +* This component now uses namespaces + +### Removed + +* This component is no longer supported on PHP 5.3, PHP 5.4, PHP 5.5, PHP 5.6, and PHP 7.0 + +## [1.4.5] - 2017-11-27 + +### Fixed + +* [#37](https://github.com/sebastianbergmann/php-file-iterator/issues/37): Regression caused by fix for [#30](https://github.com/sebastianbergmann/php-file-iterator/issues/30) + +## [1.4.4] - 2017-11-27 + +### Fixed + +* [#30](https://github.com/sebastianbergmann/php-file-iterator/issues/30): Exclude is not considered if it is a parent of the base path + +## [1.4.3] - 2017-11-25 + +### Fixed + +* [#34](https://github.com/sebastianbergmann/php-file-iterator/issues/34): Factory should use canonical directory names + +## [1.4.2] - 2016-11-26 + +No changes + +## [1.4.1] - 2015-07-26 + +No changes + +## 1.4.0 - 2015-04-02 + +### Added + +* [Added support for wildcards (glob) in exclude](https://github.com/sebastianbergmann/php-file-iterator/pull/23) + +[2.0.6]: https://github.com/sebastianbergmann/php-file-iterator/compare/2.0.5...2.0.6 +[2.0.5]: https://github.com/sebastianbergmann/php-file-iterator/compare/2.0.4...2.0.5 +[2.0.4]: https://github.com/sebastianbergmann/php-file-iterator/compare/2.0.3...2.0.4 +[2.0.3]: https://github.com/sebastianbergmann/php-file-iterator/compare/2.0.2...2.0.3 +[2.0.2]: https://github.com/sebastianbergmann/php-file-iterator/compare/2.0.1...2.0.2 +[2.0.1]: https://github.com/sebastianbergmann/php-file-iterator/compare/2.0.0...2.0.1 +[2.0.0]: https://github.com/sebastianbergmann/php-file-iterator/compare/1.4...2.0.0 +[1.4.5]: https://github.com/sebastianbergmann/php-file-iterator/compare/1.4.4...1.4.5 +[1.4.4]: https://github.com/sebastianbergmann/php-file-iterator/compare/1.4.3...1.4.4 +[1.4.3]: https://github.com/sebastianbergmann/php-file-iterator/compare/1.4.2...1.4.3 +[1.4.2]: https://github.com/sebastianbergmann/php-file-iterator/compare/1.4.1...1.4.2 +[1.4.1]: https://github.com/sebastianbergmann/php-file-iterator/compare/1.4.0...1.4.1 diff --git a/vendor/phpunit/php-file-iterator/LICENSE b/vendor/phpunit/php-file-iterator/LICENSE new file mode 100644 index 00000000..87c3b512 --- /dev/null +++ b/vendor/phpunit/php-file-iterator/LICENSE @@ -0,0 +1,33 @@ +php-file-iterator + +Copyright (c) 2009-2018, Sebastian Bergmann . +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Sebastian Bergmann nor the names of his + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/phpunit/php-file-iterator/README.md b/vendor/phpunit/php-file-iterator/README.md new file mode 100644 index 00000000..3cbfdaae --- /dev/null +++ b/vendor/phpunit/php-file-iterator/README.md @@ -0,0 +1,14 @@ +[![Build Status](https://travis-ci.org/sebastianbergmann/php-file-iterator.svg?branch=master)](https://travis-ci.org/sebastianbergmann/php-file-iterator) + +# php-file-iterator + +## Installation + +You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): + + composer require phpunit/php-file-iterator + +If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: + + composer require --dev phpunit/php-file-iterator + diff --git a/vendor/phpunit/php-file-iterator/composer.json b/vendor/phpunit/php-file-iterator/composer.json new file mode 100644 index 00000000..b1717b8a --- /dev/null +++ b/vendor/phpunit/php-file-iterator/composer.json @@ -0,0 +1,37 @@ +{ + "name": "phpunit/php-file-iterator", + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "type": "library", + "keywords": [ + "iterator", + "filesystem" + ], + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + } +} diff --git a/vendor/phpunit/php-file-iterator/src/Facade.php b/vendor/phpunit/php-file-iterator/src/Facade.php new file mode 100644 index 00000000..2456e16d --- /dev/null +++ b/vendor/phpunit/php-file-iterator/src/Facade.php @@ -0,0 +1,112 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\FileIterator; + +class Facade +{ + /** + * @param array|string $paths + * @param array|string $suffixes + * @param array|string $prefixes + * @param array $exclude + * @param bool $commonPath + * + * @return array + */ + public function getFilesAsArray($paths, $suffixes = '', $prefixes = '', array $exclude = [], bool $commonPath = false): array + { + if (\is_string($paths)) { + $paths = [$paths]; + } + + $factory = new Factory; + + $iterator = $factory->getFileIterator($paths, $suffixes, $prefixes, $exclude); + + $files = []; + + foreach ($iterator as $file) { + $file = $file->getRealPath(); + + if ($file) { + $files[] = $file; + } + } + + foreach ($paths as $path) { + if (\is_file($path)) { + $files[] = \realpath($path); + } + } + + $files = \array_unique($files); + \sort($files); + + if ($commonPath) { + return [ + 'commonPath' => $this->getCommonPath($files), + 'files' => $files + ]; + } + + return $files; + } + + protected function getCommonPath(array $files): string + { + $count = \count($files); + + if ($count === 0) { + return ''; + } + + if ($count === 1) { + return \dirname($files[0]) . DIRECTORY_SEPARATOR; + } + + $_files = []; + + foreach ($files as $file) { + $_files[] = $_fileParts = \explode(DIRECTORY_SEPARATOR, $file); + + if (empty($_fileParts[0])) { + $_fileParts[0] = DIRECTORY_SEPARATOR; + } + } + + $common = ''; + $done = false; + $j = 0; + $count--; + + while (!$done) { + for ($i = 0; $i < $count; $i++) { + if ($_files[$i][$j] != $_files[$i + 1][$j]) { + $done = true; + + break; + } + } + + if (!$done) { + $common .= $_files[0][$j]; + + if ($j > 0) { + $common .= DIRECTORY_SEPARATOR; + } + } + + $j++; + } + + return DIRECTORY_SEPARATOR . $common; + } +} diff --git a/vendor/phpunit/php-file-iterator/src/Factory.php b/vendor/phpunit/php-file-iterator/src/Factory.php new file mode 100644 index 00000000..9172ad71 --- /dev/null +++ b/vendor/phpunit/php-file-iterator/src/Factory.php @@ -0,0 +1,83 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\FileIterator; + +class Factory +{ + /** + * @param array|string $paths + * @param array|string $suffixes + * @param array|string $prefixes + * @param array $exclude + * + * @return \AppendIterator + */ + public function getFileIterator($paths, $suffixes = '', $prefixes = '', array $exclude = []): \AppendIterator + { + if (\is_string($paths)) { + $paths = [$paths]; + } + + $paths = $this->getPathsAfterResolvingWildcards($paths); + $exclude = $this->getPathsAfterResolvingWildcards($exclude); + + if (\is_string($prefixes)) { + if ($prefixes !== '') { + $prefixes = [$prefixes]; + } else { + $prefixes = []; + } + } + + if (\is_string($suffixes)) { + if ($suffixes !== '') { + $suffixes = [$suffixes]; + } else { + $suffixes = []; + } + } + + $iterator = new \AppendIterator; + + foreach ($paths as $path) { + if (\is_dir($path)) { + $iterator->append( + new Iterator( + $path, + new \RecursiveIteratorIterator( + new \RecursiveDirectoryIterator($path, \RecursiveDirectoryIterator::FOLLOW_SYMLINKS | \RecursiveDirectoryIterator::SKIP_DOTS) + ), + $suffixes, + $prefixes, + $exclude + ) + ); + } + } + + return $iterator; + } + + protected function getPathsAfterResolvingWildcards(array $paths): array + { + $_paths = [[]]; + + foreach ($paths as $path) { + if ($locals = \glob($path, GLOB_ONLYDIR)) { + $_paths[] = \array_map('\realpath', $locals); + } else { + $_paths[] = [\realpath($path)]; + } + } + + return \array_filter(\array_merge(...$_paths)); + } +} diff --git a/vendor/phpunit/php-file-iterator/src/Iterator.php b/vendor/phpunit/php-file-iterator/src/Iterator.php new file mode 100644 index 00000000..4f7127de --- /dev/null +++ b/vendor/phpunit/php-file-iterator/src/Iterator.php @@ -0,0 +1,116 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SebastianBergmann\FileIterator; + +class Iterator extends \FilterIterator +{ + const PREFIX = 0; + const SUFFIX = 1; + + /** + * @var string + */ + private $basePath; + + /** + * @var array + */ + private $suffixes = []; + + /** + * @var array + */ + private $prefixes = []; + + /** + * @var array + */ + private $exclude = []; + + /** + * @param string $basePath + * @param \Iterator $iterator + * @param array $suffixes + * @param array $prefixes + * @param array $exclude + */ + public function __construct(string $basePath, \Iterator $iterator, array $suffixes = [], array $prefixes = [], array $exclude = []) + { + $this->basePath = \realpath($basePath); + $this->prefixes = $prefixes; + $this->suffixes = $suffixes; + $this->exclude = \array_filter(\array_map('realpath', $exclude)); + + parent::__construct($iterator); + } + + /** + * @return bool + */ + #[\ReturnTypeWillChange] + public function accept() + { + $current = $this->getInnerIterator()->current(); + $filename = $current->getFilename(); + $realPath = $current->getRealPath(); + + return $this->acceptPath($realPath) && + $this->acceptPrefix($filename) && + $this->acceptSuffix($filename); + } + + private function acceptPath(string $path): bool + { + // Filter files in hidden directories by checking path that is relative to the base path. + if (\preg_match('=/\.[^/]*/=', \str_replace($this->basePath, '', $path))) { + return false; + } + + foreach ($this->exclude as $exclude) { + if (\strpos($path, $exclude) === 0) { + return false; + } + } + + return true; + } + + private function acceptPrefix(string $filename): bool + { + return $this->acceptSubString($filename, $this->prefixes, self::PREFIX); + } + + private function acceptSuffix(string $filename): bool + { + return $this->acceptSubString($filename, $this->suffixes, self::SUFFIX); + } + + private function acceptSubString(string $filename, array $subStrings, int $type): bool + { + if (empty($subStrings)) { + return true; + } + + $matched = false; + + foreach ($subStrings as $string) { + if (($type === self::PREFIX && \strpos($filename, $string) === 0) || + ($type === self::SUFFIX && + \substr($filename, -1 * \strlen($string)) === $string)) { + $matched = true; + + break; + } + } + + return $matched; + } +} diff --git a/vendor/phpunit/php-text-template/.gitattributes b/vendor/phpunit/php-text-template/.gitattributes new file mode 100644 index 00000000..461090b7 --- /dev/null +++ b/vendor/phpunit/php-text-template/.gitattributes @@ -0,0 +1 @@ +*.php diff=php diff --git a/vendor/phpunit/php-text-template/.gitignore b/vendor/phpunit/php-text-template/.gitignore new file mode 100644 index 00000000..c5992124 --- /dev/null +++ b/vendor/phpunit/php-text-template/.gitignore @@ -0,0 +1,5 @@ +/composer.lock +/composer.phar +/.idea +/vendor + diff --git a/vendor/phpunit/php-text-template/LICENSE b/vendor/phpunit/php-text-template/LICENSE new file mode 100644 index 00000000..9f9a32d9 --- /dev/null +++ b/vendor/phpunit/php-text-template/LICENSE @@ -0,0 +1,33 @@ +Text_Template + +Copyright (c) 2009-2015, Sebastian Bergmann . +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Sebastian Bergmann nor the names of his + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/phpunit/php-text-template/README.md b/vendor/phpunit/php-text-template/README.md new file mode 100644 index 00000000..ec8f5936 --- /dev/null +++ b/vendor/phpunit/php-text-template/README.md @@ -0,0 +1,14 @@ +# Text_Template + +## Installation + +## Installation + +To add this package as a local, per-project dependency to your project, simply add a dependency on `phpunit/php-text-template` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on Text_Template: + + { + "require": { + "phpunit/php-text-template": "~1.2" + } + } + diff --git a/vendor/phpunit/php-text-template/composer.json b/vendor/phpunit/php-text-template/composer.json new file mode 100644 index 00000000..a5779c83 --- /dev/null +++ b/vendor/phpunit/php-text-template/composer.json @@ -0,0 +1,29 @@ +{ + "name": "phpunit/php-text-template", + "description": "Simple template engine.", + "type": "library", + "keywords": [ + "template" + ], + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues" + }, + "require": { + "php": ">=5.3.3" + }, + "autoload": { + "classmap": [ + "src/" + ] + } +} + diff --git a/vendor/phpunit/php-text-template/src/Template.php b/vendor/phpunit/php-text-template/src/Template.php new file mode 100644 index 00000000..9eb39ad5 --- /dev/null +++ b/vendor/phpunit/php-text-template/src/Template.php @@ -0,0 +1,135 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * A simple template engine. + * + * @since Class available since Release 1.0.0 + */ +class Text_Template +{ + /** + * @var string + */ + protected $template = ''; + + /** + * @var string + */ + protected $openDelimiter = '{'; + + /** + * @var string + */ + protected $closeDelimiter = '}'; + + /** + * @var array + */ + protected $values = array(); + + /** + * Constructor. + * + * @param string $file + * @throws InvalidArgumentException + */ + public function __construct($file = '', $openDelimiter = '{', $closeDelimiter = '}') + { + $this->setFile($file); + $this->openDelimiter = $openDelimiter; + $this->closeDelimiter = $closeDelimiter; + } + + /** + * Sets the template file. + * + * @param string $file + * @throws InvalidArgumentException + */ + public function setFile($file) + { + $distFile = $file . '.dist'; + + if (file_exists($file)) { + $this->template = file_get_contents($file); + } + + else if (file_exists($distFile)) { + $this->template = file_get_contents($distFile); + } + + else { + throw new InvalidArgumentException( + 'Template file could not be loaded.' + ); + } + } + + /** + * Sets one or more template variables. + * + * @param array $values + * @param bool $merge + */ + public function setVar(array $values, $merge = TRUE) + { + if (!$merge || empty($this->values)) { + $this->values = $values; + } else { + $this->values = array_merge($this->values, $values); + } + } + + /** + * Renders the template and returns the result. + * + * @return string + */ + public function render() + { + $keys = array(); + + foreach ($this->values as $key => $value) { + $keys[] = $this->openDelimiter . $key . $this->closeDelimiter; + } + + return str_replace($keys, $this->values, $this->template); + } + + /** + * Renders the template and writes the result to a file. + * + * @param string $target + */ + public function renderTo($target) + { + $fp = @fopen($target, 'wt'); + + if ($fp) { + fwrite($fp, $this->render()); + fclose($fp); + } else { + $error = error_get_last(); + + throw new RuntimeException( + sprintf( + 'Could not write to %s: %s', + $target, + substr( + $error['message'], + strpos($error['message'], ':') + 2 + ) + ) + ); + } + } +} + diff --git a/vendor/phpunit/php-timer/ChangeLog.md b/vendor/phpunit/php-timer/ChangeLog.md new file mode 100644 index 00000000..ac9e5857 --- /dev/null +++ b/vendor/phpunit/php-timer/ChangeLog.md @@ -0,0 +1,48 @@ +# ChangeLog + +All notable changes are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [2.1.4] - 2024-03-01 + +* No code changes, only updated `.gitattributes` to not export non-essential files. + +## [2.1.3] - 2020-11-30 + +### Changed + +* Changed PHP version constraint in `composer.json` from `^7.1` to `>=7.1` + +## [2.1.2] - 2019-06-07 + +### Fixed + +* Fixed [#21](https://github.com/sebastianbergmann/php-timer/pull/3352): Formatting of memory consumption does not work on 32bit systems + +## [2.1.1] - 2019-02-20 + +### Changed + +* Improved formatting of memory consumption for `resourceUsage()` + +## [2.1.0] - 2019-02-20 + +### Changed + +* Improved formatting of memory consumption for `resourceUsage()` + +## [2.0.0] - 2018-02-01 + +### Changed + +* This component now uses namespaces + +### Removed + +* This component is no longer supported on PHP 5.3, PHP 5.4, PHP 5.5, PHP 5.6, and PHP 7.0 + +[2.1.4]: https://github.com/sebastianbergmann/diff/compare/2.1.3...2.1.4 +[2.1.3]: https://github.com/sebastianbergmann/diff/compare/2.1.2...2.1.3 +[2.1.2]: https://github.com/sebastianbergmann/diff/compare/2.1.1...2.1.2 +[2.1.1]: https://github.com/sebastianbergmann/diff/compare/2.1.0...2.1.1 +[2.1.0]: https://github.com/sebastianbergmann/diff/compare/2.0.0...2.1.0 +[2.0.0]: https://github.com/sebastianbergmann/diff/compare/1.0.9...2.0.0 diff --git a/vendor/phpunit/php-timer/LICENSE b/vendor/phpunit/php-timer/LICENSE new file mode 100644 index 00000000..a4eb9446 --- /dev/null +++ b/vendor/phpunit/php-timer/LICENSE @@ -0,0 +1,33 @@ +phpunit/php-timer + +Copyright (c) 2010-2019, Sebastian Bergmann . +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Sebastian Bergmann nor the names of his + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/phpunit/php-timer/README.md b/vendor/phpunit/php-timer/README.md new file mode 100644 index 00000000..61725c20 --- /dev/null +++ b/vendor/phpunit/php-timer/README.md @@ -0,0 +1,49 @@ +[![Build Status](https://travis-ci.org/sebastianbergmann/php-timer.svg?branch=master)](https://travis-ci.org/sebastianbergmann/php-timer) + +# phpunit/php-timer + +Utility class for timing things, factored out of PHPUnit into a stand-alone component. + +## Installation + +You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): + + composer require phpunit/php-timer + +If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: + + composer require --dev phpunit/php-timer + +## Usage + +### Basic Timing + +```php +use SebastianBergmann\Timer\Timer; + +Timer::start(); + +// ... + +$time = Timer::stop(); +var_dump($time); + +print Timer::secondsToTimeString($time); +``` + +The code above yields the output below: + + double(1.0967254638672E-5) + 0 ms + +### Resource Consumption Since PHP Startup + +```php +use SebastianBergmann\Timer\Timer; + +print Timer::resourceUsage(); +``` + +The code above yields the output below: + + Time: 0 ms, Memory: 0.50MB diff --git a/vendor/phpunit/php-timer/composer.json b/vendor/phpunit/php-timer/composer.json new file mode 100644 index 00000000..340d944b --- /dev/null +++ b/vendor/phpunit/php-timer/composer.json @@ -0,0 +1,42 @@ +{ + "name": "phpunit/php-timer", + "description": "Utility class for timing", + "type": "library", + "keywords": [ + "timer" + ], + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues" + }, + "prefer-stable": true, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "config": { + "optimize-autoloader": true, + "sort-packages": true + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + } +} + diff --git a/vendor/phpunit/php-timer/src/Exception.php b/vendor/phpunit/php-timer/src/Exception.php new file mode 100644 index 00000000..7f9a26b2 --- /dev/null +++ b/vendor/phpunit/php-timer/src/Exception.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Timer; + +interface Exception +{ +} diff --git a/vendor/phpunit/php-timer/src/RuntimeException.php b/vendor/phpunit/php-timer/src/RuntimeException.php new file mode 100644 index 00000000..aff06fa3 --- /dev/null +++ b/vendor/phpunit/php-timer/src/RuntimeException.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Timer; + +final class RuntimeException extends \RuntimeException implements Exception +{ +} diff --git a/vendor/phpunit/php-timer/src/Timer.php b/vendor/phpunit/php-timer/src/Timer.php new file mode 100644 index 00000000..378ff724 --- /dev/null +++ b/vendor/phpunit/php-timer/src/Timer.php @@ -0,0 +1,100 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace SebastianBergmann\Timer; + +final class Timer +{ + /** + * @var int[] + */ + private static $sizes = [ + 'GB' => 1073741824, + 'MB' => 1048576, + 'KB' => 1024, + ]; + + /** + * @var int[] + */ + private static $times = [ + 'hour' => 3600000, + 'minute' => 60000, + 'second' => 1000, + ]; + + /** + * @var float[] + */ + private static $startTimes = []; + + public static function start(): void + { + self::$startTimes[] = \microtime(true); + } + + public static function stop(): float + { + return \microtime(true) - \array_pop(self::$startTimes); + } + + public static function bytesToString(float $bytes): string + { + foreach (self::$sizes as $unit => $value) { + if ($bytes >= $value) { + return \sprintf('%.2f %s', $bytes >= 1024 ? $bytes / $value : $bytes, $unit); + } + } + + return $bytes . ' byte' . ((int) $bytes !== 1 ? 's' : ''); + } + + public static function secondsToTimeString(float $time): string + { + $ms = \round($time * 1000); + + foreach (self::$times as $unit => $value) { + if ($ms >= $value) { + $time = \floor($ms / $value * 100.0) / 100.0; + + return $time . ' ' . ($time == 1 ? $unit : $unit . 's'); + } + } + + return $ms . ' ms'; + } + + /** + * @throws RuntimeException + */ + public static function timeSinceStartOfRequest(): string + { + if (isset($_SERVER['REQUEST_TIME_FLOAT'])) { + $startOfRequest = $_SERVER['REQUEST_TIME_FLOAT']; + } elseif (isset($_SERVER['REQUEST_TIME'])) { + $startOfRequest = $_SERVER['REQUEST_TIME']; + } else { + throw new RuntimeException('Cannot determine time at which the request started'); + } + + return self::secondsToTimeString(\microtime(true) - $startOfRequest); + } + + /** + * @throws RuntimeException + */ + public static function resourceUsage(): string + { + return \sprintf( + 'Time: %s, Memory: %s', + self::timeSinceStartOfRequest(), + self::bytesToString(\memory_get_peak_usage(true)) + ); + } +} diff --git a/vendor/phpunit/php-token-stream/.gitattributes b/vendor/phpunit/php-token-stream/.gitattributes new file mode 100644 index 00000000..461090b7 --- /dev/null +++ b/vendor/phpunit/php-token-stream/.gitattributes @@ -0,0 +1 @@ +*.php diff=php diff --git a/vendor/phpunit/php-token-stream/.github/FUNDING.yml b/vendor/phpunit/php-token-stream/.github/FUNDING.yml new file mode 100644 index 00000000..b19ea81a --- /dev/null +++ b/vendor/phpunit/php-token-stream/.github/FUNDING.yml @@ -0,0 +1 @@ +patreon: s_bergmann diff --git a/vendor/phpunit/php-token-stream/.gitignore b/vendor/phpunit/php-token-stream/.gitignore new file mode 100644 index 00000000..77aae3df --- /dev/null +++ b/vendor/phpunit/php-token-stream/.gitignore @@ -0,0 +1,3 @@ +/.idea +/composer.lock +/vendor diff --git a/vendor/phpunit/php-token-stream/.travis.yml b/vendor/phpunit/php-token-stream/.travis.yml new file mode 100644 index 00000000..4e8056d8 --- /dev/null +++ b/vendor/phpunit/php-token-stream/.travis.yml @@ -0,0 +1,26 @@ +language: php + +php: + - 7.1 + - 7.2 + - 7.3 + - 7.4snapshot + +sudo: false + +before_install: + - composer self-update + - composer clear-cache + +install: + - travis_retry composer update --no-interaction --no-ansi --no-progress --no-suggest + +script: + - ./vendor/bin/phpunit --coverage-clover=coverage.xml + +after_success: + - bash <(curl -s https://codecov.io/bash) + +notifications: + email: false + diff --git a/vendor/phpunit/php-token-stream/ChangeLog.md b/vendor/phpunit/php-token-stream/ChangeLog.md new file mode 100644 index 00000000..bf59ea4d --- /dev/null +++ b/vendor/phpunit/php-token-stream/ChangeLog.md @@ -0,0 +1,71 @@ +# Change Log + +All notable changes to `sebastianbergmann/php-token-stream` are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles. + +## [3.1.3] - 2021-07-26 + +### Changed + +* The declarations of methods in `PHP_Token_Stream` that implement the `ArrayAccess`, `Countable`, and `SeekableIterator` interfaces are now compatible with PHP 8.1 + +## [3.1.2] - 2020-11-30 + +### Changed + +* Changed PHP version constraint in `composer.json` from `^7.1` to `>=7.1` to allow installation of this version of this library on PHP 8. However, this version of this library does not work on PHP 8. PHPUnit 8.5, which uses this version of this library (through phpunit/php-code-coverage), does not call into this library and instead shows a message that code coverage functionality is not available for PHPUnit 8.5 on PHP 8. + +## [3.1.1] - 2019-09-17 + +### Fixed + +* Fixed [#84](https://github.com/sebastianbergmann/php-token-stream/issues/84): Methods named `class` are not handled correctly + +## [3.1.0] - 2019-07-25 + +### Added + +* Added support for `FN` and `COALESCE_EQUAL` tokens introduced in PHP 7.4 + +## [3.0.2] - 2019-07-08 + +### Changed + +* Implemented [#82](https://github.com/sebastianbergmann/php-token-stream/issues/82): Make sure this component works when its classes are prefixed using php-scoper + +## [3.0.1] - 2018-10-30 + +### Fixed + +* Fixed [#78](https://github.com/sebastianbergmann/php-token-stream/pull/78): `getEndTokenId()` does not handle string-dollar (`"${var}"`) interpolation + +## [3.0.0] - 2018-02-01 + +### Removed + +* Implemented [#71](https://github.com/sebastianbergmann/php-token-stream/issues/71): Remove code specific to Hack language constructs +* Implemented [#72](https://github.com/sebastianbergmann/php-token-stream/issues/72): Drop support for PHP 7.0 + +## [2.0.2] - 2017-11-27 + +### Fixed + +* Fixed [#69](https://github.com/sebastianbergmann/php-token-stream/issues/69): `PHP_Token_USE_FUNCTION` does not serialize correctly + +## [2.0.1] - 2017-08-20 + +### Fixed + +* Fixed [#68](https://github.com/sebastianbergmann/php-token-stream/issues/68): Method with name `empty` wrongly recognized as anonymous function + +## [2.0.0] - 2017-08-03 + +[3.1.3]: https://github.com/sebastianbergmann/php-token-stream/compare/3.1.2...3.1.3 +[3.1.2]: https://github.com/sebastianbergmann/php-token-stream/compare/3.1.1...3.1.2 +[3.1.1]: https://github.com/sebastianbergmann/php-token-stream/compare/3.1.0...3.1.1 +[3.1.0]: https://github.com/sebastianbergmann/php-token-stream/compare/3.0.2...3.1.0 +[3.0.2]: https://github.com/sebastianbergmann/php-token-stream/compare/3.0.1...3.0.2 +[3.0.1]: https://github.com/sebastianbergmann/php-token-stream/compare/3.0.0...3.0.1 +[3.0.0]: https://github.com/sebastianbergmann/php-token-stream/compare/2.0...3.0.0 +[2.0.2]: https://github.com/sebastianbergmann/php-token-stream/compare/2.0.1...2.0.2 +[2.0.1]: https://github.com/sebastianbergmann/php-token-stream/compare/2.0.0...2.0.1 +[2.0.0]: https://github.com/sebastianbergmann/php-token-stream/compare/1.4.11...2.0.0 diff --git a/vendor/phpunit/php-token-stream/LICENSE b/vendor/phpunit/php-token-stream/LICENSE new file mode 100644 index 00000000..2cad5be4 --- /dev/null +++ b/vendor/phpunit/php-token-stream/LICENSE @@ -0,0 +1,33 @@ +php-token-stream + +Copyright (c) 2009-2019, Sebastian Bergmann . +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Sebastian Bergmann nor the names of his + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/phpunit/php-token-stream/README.md b/vendor/phpunit/php-token-stream/README.md new file mode 100644 index 00000000..149b7e2d --- /dev/null +++ b/vendor/phpunit/php-token-stream/README.md @@ -0,0 +1,14 @@ +[![Build Status](https://travis-ci.org/sebastianbergmann/php-token-stream.svg?branch=master)](https://travis-ci.org/sebastianbergmann/php-token-stream) + +# php-token-stream + +## Installation + +You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): + + composer require phpunit/php-token-stream + +If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: + + composer require --dev phpunit/php-token-stream + diff --git a/vendor/phpunit/php-token-stream/build.xml b/vendor/phpunit/php-token-stream/build.xml new file mode 100644 index 00000000..0da8056e --- /dev/null +++ b/vendor/phpunit/php-token-stream/build.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/php-token-stream/composer.json b/vendor/phpunit/php-token-stream/composer.json new file mode 100644 index 00000000..afaabacd --- /dev/null +++ b/vendor/phpunit/php-token-stream/composer.json @@ -0,0 +1,39 @@ +{ + "name": "phpunit/php-token-stream", + "description": "Wrapper around PHP's tokenizer extension.", + "type": "library", + "keywords": ["tokenizer"], + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-token-stream/issues" + }, + "prefer-stable": true, + "require": { + "php": ">=7.1", + "ext-tokenizer": "*" + }, + "require-dev": { + "phpunit/phpunit": "^7.0" + }, + "config": { + "optimize-autoloader": true, + "sort-packages": true + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + } +} diff --git a/vendor/phpunit/php-token-stream/phpunit.xml b/vendor/phpunit/php-token-stream/phpunit.xml new file mode 100644 index 00000000..8f159fbd --- /dev/null +++ b/vendor/phpunit/php-token-stream/phpunit.xml @@ -0,0 +1,21 @@ + + + + + tests + + + + + + src + + + diff --git a/vendor/phpunit/php-token-stream/src/Token.php b/vendor/phpunit/php-token-stream/src/Token.php new file mode 100644 index 00000000..65fdb067 --- /dev/null +++ b/vendor/phpunit/php-token-stream/src/Token.php @@ -0,0 +1,1361 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * A PHP token. + */ +abstract class PHP_Token +{ + /** + * @var string + */ + protected $text; + + /** + * @var int + */ + protected $line; + + /** + * @var PHP_Token_Stream + */ + protected $tokenStream; + + /** + * @var int + */ + protected $id; + + /** + * @param string $text + * @param int $line + * @param PHP_Token_Stream $tokenStream + * @param int $id + */ + public function __construct($text, $line, PHP_Token_Stream $tokenStream, $id) + { + $this->text = $text; + $this->line = $line; + $this->tokenStream = $tokenStream; + $this->id = $id; + } + + /** + * @return string + */ + public function __toString() + { + return $this->text; + } + + /** + * @return int + */ + public function getLine() + { + return $this->line; + } + + /** + * @return int + */ + public function getId() + { + return $this->id; + } +} + +abstract class PHP_TokenWithScope extends PHP_Token +{ + /** + * @var int + */ + protected $endTokenId; + + /** + * Get the docblock for this token + * + * This method will fetch the docblock belonging to the current token. The + * docblock must be placed on the line directly above the token to be + * recognized. + * + * @return string|null Returns the docblock as a string if found + */ + public function getDocblock() + { + $tokens = $this->tokenStream->tokens(); + $currentLineNumber = $tokens[$this->id]->getLine(); + $prevLineNumber = $currentLineNumber - 1; + + for ($i = $this->id - 1; $i; $i--) { + if (!isset($tokens[$i])) { + return; + } + + if ($tokens[$i] instanceof PHP_Token_FUNCTION || + $tokens[$i] instanceof PHP_Token_CLASS || + $tokens[$i] instanceof PHP_Token_TRAIT) { + // Some other trait, class or function, no docblock can be + // used for the current token + break; + } + + $line = $tokens[$i]->getLine(); + + if ($line == $currentLineNumber || + ($line == $prevLineNumber && + $tokens[$i] instanceof PHP_Token_WHITESPACE)) { + continue; + } + + if ($line < $currentLineNumber && + !$tokens[$i] instanceof PHP_Token_DOC_COMMENT) { + break; + } + + return (string) $tokens[$i]; + } + } + + /** + * @return int + */ + public function getEndTokenId() + { + $block = 0; + $i = $this->id; + $tokens = $this->tokenStream->tokens(); + + while ($this->endTokenId === null && isset($tokens[$i])) { + if ($tokens[$i] instanceof PHP_Token_OPEN_CURLY || + $tokens[$i] instanceof PHP_Token_DOLLAR_OPEN_CURLY_BRACES || + $tokens[$i] instanceof PHP_Token_CURLY_OPEN) { + $block++; + } elseif ($tokens[$i] instanceof PHP_Token_CLOSE_CURLY) { + $block--; + + if ($block === 0) { + $this->endTokenId = $i; + } + } elseif (($this instanceof PHP_Token_FUNCTION || + $this instanceof PHP_Token_NAMESPACE) && + $tokens[$i] instanceof PHP_Token_SEMICOLON) { + if ($block === 0) { + $this->endTokenId = $i; + } + } + + $i++; + } + + if ($this->endTokenId === null) { + $this->endTokenId = $this->id; + } + + return $this->endTokenId; + } + + /** + * @return int + */ + public function getEndLine() + { + return $this->tokenStream[$this->getEndTokenId()]->getLine(); + } +} + +abstract class PHP_TokenWithScopeAndVisibility extends PHP_TokenWithScope +{ + /** + * @return string + */ + public function getVisibility() + { + $tokens = $this->tokenStream->tokens(); + + for ($i = $this->id - 2; $i > $this->id - 7; $i -= 2) { + if (isset($tokens[$i]) && + ($tokens[$i] instanceof PHP_Token_PRIVATE || + $tokens[$i] instanceof PHP_Token_PROTECTED || + $tokens[$i] instanceof PHP_Token_PUBLIC)) { + return strtolower( + str_replace('PHP_Token_', '', PHP_Token_Util::getClass($tokens[$i])) + ); + } + if (isset($tokens[$i]) && + !($tokens[$i] instanceof PHP_Token_STATIC || + $tokens[$i] instanceof PHP_Token_FINAL || + $tokens[$i] instanceof PHP_Token_ABSTRACT)) { + // no keywords; stop visibility search + break; + } + } + } + + /** + * @return string + */ + public function getKeywords() + { + $keywords = []; + $tokens = $this->tokenStream->tokens(); + + for ($i = $this->id - 2; $i > $this->id - 7; $i -= 2) { + if (isset($tokens[$i]) && + ($tokens[$i] instanceof PHP_Token_PRIVATE || + $tokens[$i] instanceof PHP_Token_PROTECTED || + $tokens[$i] instanceof PHP_Token_PUBLIC)) { + continue; + } + + if (isset($tokens[$i]) && + ($tokens[$i] instanceof PHP_Token_STATIC || + $tokens[$i] instanceof PHP_Token_FINAL || + $tokens[$i] instanceof PHP_Token_ABSTRACT)) { + $keywords[] = strtolower( + str_replace('PHP_Token_', '', PHP_Token_Util::getClass($tokens[$i])) + ); + } + } + + return implode(',', $keywords); + } +} + +abstract class PHP_Token_Includes extends PHP_Token +{ + /** + * @var string + */ + protected $name; + + /** + * @var string + */ + protected $type; + + /** + * @return string + */ + public function getName() + { + if ($this->name === null) { + $this->process(); + } + + return $this->name; + } + + /** + * @return string + */ + public function getType() + { + if ($this->type === null) { + $this->process(); + } + + return $this->type; + } + + private function process() + { + $tokens = $this->tokenStream->tokens(); + + if ($tokens[$this->id + 2] instanceof PHP_Token_CONSTANT_ENCAPSED_STRING) { + $this->name = trim($tokens[$this->id + 2], "'\""); + $this->type = strtolower( + str_replace('PHP_Token_', '', PHP_Token_Util::getClass($tokens[$this->id])) + ); + } + } +} + +class PHP_Token_FUNCTION extends PHP_TokenWithScopeAndVisibility +{ + /** + * @var array + */ + protected $arguments; + + /** + * @var int + */ + protected $ccn; + + /** + * @var string + */ + protected $name; + + /** + * @var string + */ + protected $signature; + + /** + * @var bool + */ + private $anonymous = false; + + /** + * @return array + */ + public function getArguments() + { + if ($this->arguments !== null) { + return $this->arguments; + } + + $this->arguments = []; + $tokens = $this->tokenStream->tokens(); + $typeDeclaration = null; + + // Search for first token inside brackets + $i = $this->id + 2; + + while (!$tokens[$i - 1] instanceof PHP_Token_OPEN_BRACKET) { + $i++; + } + + while (!$tokens[$i] instanceof PHP_Token_CLOSE_BRACKET) { + if ($tokens[$i] instanceof PHP_Token_STRING) { + $typeDeclaration = (string) $tokens[$i]; + } elseif ($tokens[$i] instanceof PHP_Token_VARIABLE) { + $this->arguments[(string) $tokens[$i]] = $typeDeclaration; + $typeDeclaration = null; + } + + $i++; + } + + return $this->arguments; + } + + /** + * @return string + */ + public function getName() + { + if ($this->name !== null) { + return $this->name; + } + + $tokens = $this->tokenStream->tokens(); + + $i = $this->id + 1; + + if ($tokens[$i] instanceof PHP_Token_WHITESPACE) { + $i++; + } + + if ($tokens[$i] instanceof PHP_Token_AMPERSAND) { + $i++; + } + + if ($tokens[$i + 1] instanceof PHP_Token_OPEN_BRACKET) { + $this->name = (string) $tokens[$i]; + } elseif ($tokens[$i + 1] instanceof PHP_Token_WHITESPACE && $tokens[$i + 2] instanceof PHP_Token_OPEN_BRACKET) { + $this->name = (string) $tokens[$i]; + } else { + $this->anonymous = true; + + $this->name = sprintf( + 'anonymousFunction:%s#%s', + $this->getLine(), + $this->getId() + ); + } + + if (!$this->isAnonymous()) { + for ($i = $this->id; $i; --$i) { + if ($tokens[$i] instanceof PHP_Token_NAMESPACE) { + $this->name = $tokens[$i]->getName() . '\\' . $this->name; + + break; + } + + if ($tokens[$i] instanceof PHP_Token_INTERFACE) { + break; + } + } + } + + return $this->name; + } + + /** + * @return int + */ + public function getCCN() + { + if ($this->ccn !== null) { + return $this->ccn; + } + + $this->ccn = 1; + $end = $this->getEndTokenId(); + $tokens = $this->tokenStream->tokens(); + + for ($i = $this->id; $i <= $end; $i++) { + switch (PHP_Token_Util::getClass($tokens[$i])) { + case 'PHP_Token_IF': + case 'PHP_Token_ELSEIF': + case 'PHP_Token_FOR': + case 'PHP_Token_FOREACH': + case 'PHP_Token_WHILE': + case 'PHP_Token_CASE': + case 'PHP_Token_CATCH': + case 'PHP_Token_BOOLEAN_AND': + case 'PHP_Token_LOGICAL_AND': + case 'PHP_Token_BOOLEAN_OR': + case 'PHP_Token_LOGICAL_OR': + case 'PHP_Token_QUESTION_MARK': + $this->ccn++; + break; + } + } + + return $this->ccn; + } + + /** + * @return string + */ + public function getSignature() + { + if ($this->signature !== null) { + return $this->signature; + } + + if ($this->isAnonymous()) { + $this->signature = 'anonymousFunction'; + $i = $this->id + 1; + } else { + $this->signature = ''; + $i = $this->id + 2; + } + + $tokens = $this->tokenStream->tokens(); + + while (isset($tokens[$i]) && + !$tokens[$i] instanceof PHP_Token_OPEN_CURLY && + !$tokens[$i] instanceof PHP_Token_SEMICOLON) { + $this->signature .= $tokens[$i++]; + } + + $this->signature = trim($this->signature); + + return $this->signature; + } + + /** + * @return bool + */ + public function isAnonymous() + { + return $this->anonymous; + } +} + +class PHP_Token_INTERFACE extends PHP_TokenWithScopeAndVisibility +{ + /** + * @var array + */ + protected $interfaces; + + /** + * @return string + */ + public function getName() + { + return (string) $this->tokenStream[$this->id + 2]; + } + + /** + * @return bool + */ + public function hasParent() + { + return $this->tokenStream[$this->id + 4] instanceof PHP_Token_EXTENDS; + } + + /** + * @return array + */ + public function getPackage() + { + $className = $this->getName(); + $docComment = $this->getDocblock(); + + $result = [ + 'namespace' => '', + 'fullPackage' => '', + 'category' => '', + 'package' => '', + 'subpackage' => '' + ]; + + for ($i = $this->id; $i; --$i) { + if ($this->tokenStream[$i] instanceof PHP_Token_NAMESPACE) { + $result['namespace'] = $this->tokenStream[$i]->getName(); + break; + } + } + + if (preg_match('/@category[\s]+([\.\w]+)/', $docComment, $matches)) { + $result['category'] = $matches[1]; + } + + if (preg_match('/@package[\s]+([\.\w]+)/', $docComment, $matches)) { + $result['package'] = $matches[1]; + $result['fullPackage'] = $matches[1]; + } + + if (preg_match('/@subpackage[\s]+([\.\w]+)/', $docComment, $matches)) { + $result['subpackage'] = $matches[1]; + $result['fullPackage'] .= '.' . $matches[1]; + } + + if (empty($result['fullPackage'])) { + $result['fullPackage'] = $this->arrayToName( + explode('_', str_replace('\\', '_', $className)), + '.' + ); + } + + return $result; + } + + /** + * @param array $parts + * @param string $join + * + * @return string + */ + protected function arrayToName(array $parts, $join = '\\') + { + $result = ''; + + if (count($parts) > 1) { + array_pop($parts); + + $result = implode($join, $parts); + } + + return $result; + } + + /** + * @return bool|string + */ + public function getParent() + { + if (!$this->hasParent()) { + return false; + } + + $i = $this->id + 6; + $tokens = $this->tokenStream->tokens(); + $className = (string) $tokens[$i]; + + while (isset($tokens[$i + 1]) && + !$tokens[$i + 1] instanceof PHP_Token_WHITESPACE) { + $className .= (string) $tokens[++$i]; + } + + return $className; + } + + /** + * @return bool + */ + public function hasInterfaces() + { + return (isset($this->tokenStream[$this->id + 4]) && + $this->tokenStream[$this->id + 4] instanceof PHP_Token_IMPLEMENTS) || + (isset($this->tokenStream[$this->id + 8]) && + $this->tokenStream[$this->id + 8] instanceof PHP_Token_IMPLEMENTS); + } + + /** + * @return array|bool + */ + public function getInterfaces() + { + if ($this->interfaces !== null) { + return $this->interfaces; + } + + if (!$this->hasInterfaces()) { + return ($this->interfaces = false); + } + + if ($this->tokenStream[$this->id + 4] instanceof PHP_Token_IMPLEMENTS) { + $i = $this->id + 3; + } else { + $i = $this->id + 7; + } + + $tokens = $this->tokenStream->tokens(); + + while (!$tokens[$i + 1] instanceof PHP_Token_OPEN_CURLY) { + $i++; + + if ($tokens[$i] instanceof PHP_Token_STRING) { + $this->interfaces[] = (string) $tokens[$i]; + } + } + + return $this->interfaces; + } +} + +class PHP_Token_ABSTRACT extends PHP_Token +{ +} + +class PHP_Token_AMPERSAND extends PHP_Token +{ +} + +class PHP_Token_AND_EQUAL extends PHP_Token +{ +} + +class PHP_Token_ARRAY extends PHP_Token +{ +} + +class PHP_Token_ARRAY_CAST extends PHP_Token +{ +} + +class PHP_Token_AS extends PHP_Token +{ +} + +class PHP_Token_AT extends PHP_Token +{ +} + +class PHP_Token_BACKTICK extends PHP_Token +{ +} + +class PHP_Token_BAD_CHARACTER extends PHP_Token +{ +} + +class PHP_Token_BOOLEAN_AND extends PHP_Token +{ +} + +class PHP_Token_BOOLEAN_OR extends PHP_Token +{ +} + +class PHP_Token_BOOL_CAST extends PHP_Token +{ +} + +class PHP_Token_BREAK extends PHP_Token +{ +} + +class PHP_Token_CARET extends PHP_Token +{ +} + +class PHP_Token_CASE extends PHP_Token +{ +} + +class PHP_Token_CATCH extends PHP_Token +{ +} + +class PHP_Token_CHARACTER extends PHP_Token +{ +} + +class PHP_Token_CLASS extends PHP_Token_INTERFACE +{ + /** + * @var bool + */ + private $anonymous = false; + + /** + * @var string + */ + private $name; + + /** + * @return string + */ + public function getName() + { + if ($this->name !== null) { + return $this->name; + } + + $next = $this->tokenStream[$this->id + 1]; + + if ($next instanceof PHP_Token_WHITESPACE) { + $next = $this->tokenStream[$this->id + 2]; + } + + if ($next instanceof PHP_Token_STRING) { + $this->name =(string) $next; + + return $this->name; + } + + if ($next instanceof PHP_Token_OPEN_CURLY || + $next instanceof PHP_Token_EXTENDS || + $next instanceof PHP_Token_IMPLEMENTS) { + + $this->name = sprintf( + 'AnonymousClass:%s#%s', + $this->getLine(), + $this->getId() + ); + + $this->anonymous = true; + + return $this->name; + } + } + + public function isAnonymous() + { + return $this->anonymous; + } +} + +class PHP_Token_CLASS_C extends PHP_Token +{ +} + +class PHP_Token_CLASS_NAME_CONSTANT extends PHP_Token +{ +} + +class PHP_Token_CLONE extends PHP_Token +{ +} + +class PHP_Token_CLOSE_BRACKET extends PHP_Token +{ +} + +class PHP_Token_CLOSE_CURLY extends PHP_Token +{ +} + +class PHP_Token_CLOSE_SQUARE extends PHP_Token +{ +} + +class PHP_Token_CLOSE_TAG extends PHP_Token +{ +} + +class PHP_Token_COLON extends PHP_Token +{ +} + +class PHP_Token_COMMA extends PHP_Token +{ +} + +class PHP_Token_COMMENT extends PHP_Token +{ +} + +class PHP_Token_CONCAT_EQUAL extends PHP_Token +{ +} + +class PHP_Token_CONST extends PHP_Token +{ +} + +class PHP_Token_CONSTANT_ENCAPSED_STRING extends PHP_Token +{ +} + +class PHP_Token_CONTINUE extends PHP_Token +{ +} + +class PHP_Token_CURLY_OPEN extends PHP_Token +{ +} + +class PHP_Token_DEC extends PHP_Token +{ +} + +class PHP_Token_DECLARE extends PHP_Token +{ +} + +class PHP_Token_DEFAULT extends PHP_Token +{ +} + +class PHP_Token_DIV extends PHP_Token +{ +} + +class PHP_Token_DIV_EQUAL extends PHP_Token +{ +} + +class PHP_Token_DNUMBER extends PHP_Token +{ +} + +class PHP_Token_DO extends PHP_Token +{ +} + +class PHP_Token_DOC_COMMENT extends PHP_Token +{ +} + +class PHP_Token_DOLLAR extends PHP_Token +{ +} + +class PHP_Token_DOLLAR_OPEN_CURLY_BRACES extends PHP_Token +{ +} + +class PHP_Token_DOT extends PHP_Token +{ +} + +class PHP_Token_DOUBLE_ARROW extends PHP_Token +{ +} + +class PHP_Token_DOUBLE_CAST extends PHP_Token +{ +} + +class PHP_Token_DOUBLE_COLON extends PHP_Token +{ +} + +class PHP_Token_DOUBLE_QUOTES extends PHP_Token +{ +} + +class PHP_Token_ECHO extends PHP_Token +{ +} + +class PHP_Token_ELSE extends PHP_Token +{ +} + +class PHP_Token_ELSEIF extends PHP_Token +{ +} + +class PHP_Token_EMPTY extends PHP_Token +{ +} + +class PHP_Token_ENCAPSED_AND_WHITESPACE extends PHP_Token +{ +} + +class PHP_Token_ENDDECLARE extends PHP_Token +{ +} + +class PHP_Token_ENDFOR extends PHP_Token +{ +} + +class PHP_Token_ENDFOREACH extends PHP_Token +{ +} + +class PHP_Token_ENDIF extends PHP_Token +{ +} + +class PHP_Token_ENDSWITCH extends PHP_Token +{ +} + +class PHP_Token_ENDWHILE extends PHP_Token +{ +} + +class PHP_Token_END_HEREDOC extends PHP_Token +{ +} + +class PHP_Token_EQUAL extends PHP_Token +{ +} + +class PHP_Token_EVAL extends PHP_Token +{ +} + +class PHP_Token_EXCLAMATION_MARK extends PHP_Token +{ +} + +class PHP_Token_EXIT extends PHP_Token +{ +} + +class PHP_Token_EXTENDS extends PHP_Token +{ +} + +class PHP_Token_FILE extends PHP_Token +{ +} + +class PHP_Token_FINAL extends PHP_Token +{ +} + +class PHP_Token_FOR extends PHP_Token +{ +} + +class PHP_Token_FOREACH extends PHP_Token +{ +} + +class PHP_Token_FUNC_C extends PHP_Token +{ +} + +class PHP_Token_GLOBAL extends PHP_Token +{ +} + +class PHP_Token_GT extends PHP_Token +{ +} + +class PHP_Token_IF extends PHP_Token +{ +} + +class PHP_Token_IMPLEMENTS extends PHP_Token +{ +} + +class PHP_Token_INC extends PHP_Token +{ +} + +class PHP_Token_INCLUDE extends PHP_Token_Includes +{ +} + +class PHP_Token_INCLUDE_ONCE extends PHP_Token_Includes +{ +} + +class PHP_Token_INLINE_HTML extends PHP_Token +{ +} + +class PHP_Token_INSTANCEOF extends PHP_Token +{ +} + +class PHP_Token_INT_CAST extends PHP_Token +{ +} + +class PHP_Token_ISSET extends PHP_Token +{ +} + +class PHP_Token_IS_EQUAL extends PHP_Token +{ +} + +class PHP_Token_IS_GREATER_OR_EQUAL extends PHP_Token +{ +} + +class PHP_Token_IS_IDENTICAL extends PHP_Token +{ +} + +class PHP_Token_IS_NOT_EQUAL extends PHP_Token +{ +} + +class PHP_Token_IS_NOT_IDENTICAL extends PHP_Token +{ +} + +class PHP_Token_IS_SMALLER_OR_EQUAL extends PHP_Token +{ +} + +class PHP_Token_LINE extends PHP_Token +{ +} + +class PHP_Token_LIST extends PHP_Token +{ +} + +class PHP_Token_LNUMBER extends PHP_Token +{ +} + +class PHP_Token_LOGICAL_AND extends PHP_Token +{ +} + +class PHP_Token_LOGICAL_OR extends PHP_Token +{ +} + +class PHP_Token_LOGICAL_XOR extends PHP_Token +{ +} + +class PHP_Token_LT extends PHP_Token +{ +} + +class PHP_Token_METHOD_C extends PHP_Token +{ +} + +class PHP_Token_MINUS extends PHP_Token +{ +} + +class PHP_Token_MINUS_EQUAL extends PHP_Token +{ +} + +class PHP_Token_MOD_EQUAL extends PHP_Token +{ +} + +class PHP_Token_MULT extends PHP_Token +{ +} + +class PHP_Token_MUL_EQUAL extends PHP_Token +{ +} + +class PHP_Token_NEW extends PHP_Token +{ +} + +class PHP_Token_NUM_STRING extends PHP_Token +{ +} + +class PHP_Token_OBJECT_CAST extends PHP_Token +{ +} + +class PHP_Token_OBJECT_OPERATOR extends PHP_Token +{ +} + +class PHP_Token_OPEN_BRACKET extends PHP_Token +{ +} + +class PHP_Token_OPEN_CURLY extends PHP_Token +{ +} + +class PHP_Token_OPEN_SQUARE extends PHP_Token +{ +} + +class PHP_Token_OPEN_TAG extends PHP_Token +{ +} + +class PHP_Token_OPEN_TAG_WITH_ECHO extends PHP_Token +{ +} + +class PHP_Token_OR_EQUAL extends PHP_Token +{ +} + +class PHP_Token_PAAMAYIM_NEKUDOTAYIM extends PHP_Token +{ +} + +class PHP_Token_PERCENT extends PHP_Token +{ +} + +class PHP_Token_PIPE extends PHP_Token +{ +} + +class PHP_Token_PLUS extends PHP_Token +{ +} + +class PHP_Token_PLUS_EQUAL extends PHP_Token +{ +} + +class PHP_Token_PRINT extends PHP_Token +{ +} + +class PHP_Token_PRIVATE extends PHP_Token +{ +} + +class PHP_Token_PROTECTED extends PHP_Token +{ +} + +class PHP_Token_PUBLIC extends PHP_Token +{ +} + +class PHP_Token_QUESTION_MARK extends PHP_Token +{ +} + +class PHP_Token_REQUIRE extends PHP_Token_Includes +{ +} + +class PHP_Token_REQUIRE_ONCE extends PHP_Token_Includes +{ +} + +class PHP_Token_RETURN extends PHP_Token +{ +} + +class PHP_Token_SEMICOLON extends PHP_Token +{ +} + +class PHP_Token_SL extends PHP_Token +{ +} + +class PHP_Token_SL_EQUAL extends PHP_Token +{ +} + +class PHP_Token_SR extends PHP_Token +{ +} + +class PHP_Token_SR_EQUAL extends PHP_Token +{ +} + +class PHP_Token_START_HEREDOC extends PHP_Token +{ +} + +class PHP_Token_STATIC extends PHP_Token +{ +} + +class PHP_Token_STRING extends PHP_Token +{ +} + +class PHP_Token_STRING_CAST extends PHP_Token +{ +} + +class PHP_Token_STRING_VARNAME extends PHP_Token +{ +} + +class PHP_Token_SWITCH extends PHP_Token +{ +} + +class PHP_Token_THROW extends PHP_Token +{ +} + +class PHP_Token_TILDE extends PHP_Token +{ +} + +class PHP_Token_TRY extends PHP_Token +{ +} + +class PHP_Token_UNSET extends PHP_Token +{ +} + +class PHP_Token_UNSET_CAST extends PHP_Token +{ +} + +class PHP_Token_USE extends PHP_Token +{ +} + +class PHP_Token_USE_FUNCTION extends PHP_Token +{ +} + +class PHP_Token_VAR extends PHP_Token +{ +} + +class PHP_Token_VARIABLE extends PHP_Token +{ +} + +class PHP_Token_WHILE extends PHP_Token +{ +} + +class PHP_Token_WHITESPACE extends PHP_Token +{ +} + +class PHP_Token_XOR_EQUAL extends PHP_Token +{ +} + +// Tokens introduced in PHP 5.1 +class PHP_Token_HALT_COMPILER extends PHP_Token +{ +} + +// Tokens introduced in PHP 5.3 +class PHP_Token_DIR extends PHP_Token +{ +} + +class PHP_Token_GOTO extends PHP_Token +{ +} + +class PHP_Token_NAMESPACE extends PHP_TokenWithScope +{ + /** + * @return string + */ + public function getName() + { + $tokens = $this->tokenStream->tokens(); + $namespace = (string) $tokens[$this->id + 2]; + + for ($i = $this->id + 3;; $i += 2) { + if (isset($tokens[$i]) && + $tokens[$i] instanceof PHP_Token_NS_SEPARATOR) { + $namespace .= '\\' . $tokens[$i + 1]; + } else { + break; + } + } + + return $namespace; + } +} + +class PHP_Token_NS_C extends PHP_Token +{ +} + +class PHP_Token_NS_SEPARATOR extends PHP_Token +{ +} + +// Tokens introduced in PHP 5.4 +class PHP_Token_CALLABLE extends PHP_Token +{ +} + +class PHP_Token_INSTEADOF extends PHP_Token +{ +} + +class PHP_Token_TRAIT extends PHP_Token_INTERFACE +{ +} + +class PHP_Token_TRAIT_C extends PHP_Token +{ +} + +// Tokens introduced in PHP 5.5 +class PHP_Token_FINALLY extends PHP_Token +{ +} + +class PHP_Token_YIELD extends PHP_Token +{ +} + +// Tokens introduced in PHP 5.6 +class PHP_Token_ELLIPSIS extends PHP_Token +{ +} + +class PHP_Token_POW extends PHP_Token +{ +} + +class PHP_Token_POW_EQUAL extends PHP_Token +{ +} + +// Tokens introduced in PHP 7.0 +class PHP_Token_COALESCE extends PHP_Token +{ +} + +class PHP_Token_SPACESHIP extends PHP_Token +{ +} + +class PHP_Token_YIELD_FROM extends PHP_Token +{ +} + +// Tokens introduced in PHP 7.4 +class PHP_Token_COALESCE_EQUAL extends PHP_Token +{ +} + +class PHP_Token_FN extends PHP_Token +{ +} diff --git a/vendor/phpunit/php-token-stream/src/Token/Stream.php b/vendor/phpunit/php-token-stream/src/Token/Stream.php new file mode 100644 index 00000000..c2817b16 --- /dev/null +++ b/vendor/phpunit/php-token-stream/src/Token/Stream.php @@ -0,0 +1,587 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * A stream of PHP tokens. + */ +class PHP_Token_Stream implements ArrayAccess, Countable, SeekableIterator +{ + /** + * @var array + */ + protected static $customTokens = [ + '(' => 'PHP_Token_OPEN_BRACKET', + ')' => 'PHP_Token_CLOSE_BRACKET', + '[' => 'PHP_Token_OPEN_SQUARE', + ']' => 'PHP_Token_CLOSE_SQUARE', + '{' => 'PHP_Token_OPEN_CURLY', + '}' => 'PHP_Token_CLOSE_CURLY', + ';' => 'PHP_Token_SEMICOLON', + '.' => 'PHP_Token_DOT', + ',' => 'PHP_Token_COMMA', + '=' => 'PHP_Token_EQUAL', + '<' => 'PHP_Token_LT', + '>' => 'PHP_Token_GT', + '+' => 'PHP_Token_PLUS', + '-' => 'PHP_Token_MINUS', + '*' => 'PHP_Token_MULT', + '/' => 'PHP_Token_DIV', + '?' => 'PHP_Token_QUESTION_MARK', + '!' => 'PHP_Token_EXCLAMATION_MARK', + ':' => 'PHP_Token_COLON', + '"' => 'PHP_Token_DOUBLE_QUOTES', + '@' => 'PHP_Token_AT', + '&' => 'PHP_Token_AMPERSAND', + '%' => 'PHP_Token_PERCENT', + '|' => 'PHP_Token_PIPE', + '$' => 'PHP_Token_DOLLAR', + '^' => 'PHP_Token_CARET', + '~' => 'PHP_Token_TILDE', + '`' => 'PHP_Token_BACKTICK' + ]; + + /** + * @var string + */ + protected $filename; + + /** + * @var array + */ + protected $tokens = []; + + /** + * @var int + */ + protected $position = 0; + + /** + * @var array + */ + protected $linesOfCode = ['loc' => 0, 'cloc' => 0, 'ncloc' => 0]; + + /** + * @var array + */ + protected $classes; + + /** + * @var array + */ + protected $functions; + + /** + * @var array + */ + protected $includes; + + /** + * @var array + */ + protected $interfaces; + + /** + * @var array + */ + protected $traits; + + /** + * @var array + */ + protected $lineToFunctionMap = []; + + /** + * Constructor. + * + * @param string $sourceCode + */ + public function __construct($sourceCode) + { + if (is_file($sourceCode)) { + $this->filename = $sourceCode; + $sourceCode = file_get_contents($sourceCode); + } + + $this->scan($sourceCode); + } + + /** + * Destructor. + */ + public function __destruct() + { + $this->tokens = []; + } + + /** + * @return string + */ + public function __toString() + { + $buffer = ''; + + foreach ($this as $token) { + $buffer .= $token; + } + + return $buffer; + } + + /** + * @return string + */ + public function getFilename() + { + return $this->filename; + } + + /** + * Scans the source for sequences of characters and converts them into a + * stream of tokens. + * + * @param string $sourceCode + */ + protected function scan($sourceCode) + { + $id = 0; + $line = 1; + $tokens = token_get_all($sourceCode); + $numTokens = count($tokens); + + $lastNonWhitespaceTokenWasDoubleColon = false; + + for ($i = 0; $i < $numTokens; ++$i) { + $token = $tokens[$i]; + $skip = 0; + + if (is_array($token)) { + $name = substr(token_name($token[0]), 2); + $text = $token[1]; + + if ($lastNonWhitespaceTokenWasDoubleColon && $name == 'CLASS') { + $name = 'CLASS_NAME_CONSTANT'; + } elseif ($name == 'USE' && isset($tokens[$i + 2][0]) && $tokens[$i + 2][0] == T_FUNCTION) { + $name = 'USE_FUNCTION'; + $text .= $tokens[$i + 1][1] . $tokens[$i + 2][1]; + $skip = 2; + } + + $tokenClass = 'PHP_Token_' . $name; + } else { + $text = $token; + $tokenClass = self::$customTokens[$token]; + } + + $this->tokens[] = new $tokenClass($text, $line, $this, $id++); + $lines = substr_count($text, "\n"); + $line += $lines; + + if ($tokenClass == 'PHP_Token_HALT_COMPILER') { + break; + } elseif ($tokenClass == 'PHP_Token_COMMENT' || + $tokenClass == 'PHP_Token_DOC_COMMENT') { + $this->linesOfCode['cloc'] += $lines + 1; + } + + if ($name == 'DOUBLE_COLON') { + $lastNonWhitespaceTokenWasDoubleColon = true; + } elseif ($name != 'WHITESPACE') { + $lastNonWhitespaceTokenWasDoubleColon = false; + } + + $i += $skip; + } + + $this->linesOfCode['loc'] = substr_count($sourceCode, "\n"); + $this->linesOfCode['ncloc'] = $this->linesOfCode['loc'] - + $this->linesOfCode['cloc']; + } + + public function count(): int + { + return count($this->tokens); + } + + /** + * @return PHP_Token[] + */ + public function tokens() + { + return $this->tokens; + } + + /** + * @return array + */ + public function getClasses() + { + if ($this->classes !== null) { + return $this->classes; + } + + $this->parse(); + + return $this->classes; + } + + /** + * @return array + */ + public function getFunctions() + { + if ($this->functions !== null) { + return $this->functions; + } + + $this->parse(); + + return $this->functions; + } + + /** + * @return array + */ + public function getInterfaces() + { + if ($this->interfaces !== null) { + return $this->interfaces; + } + + $this->parse(); + + return $this->interfaces; + } + + /** + * @return array + */ + public function getTraits() + { + if ($this->traits !== null) { + return $this->traits; + } + + $this->parse(); + + return $this->traits; + } + + /** + * Gets the names of all files that have been included + * using include(), include_once(), require() or require_once(). + * + * Parameter $categorize set to TRUE causing this function to return a + * multi-dimensional array with categories in the keys of the first dimension + * and constants and their values in the second dimension. + * + * Parameter $category allow to filter following specific inclusion type + * + * @param bool $categorize OPTIONAL + * @param string $category OPTIONAL Either 'require_once', 'require', + * 'include_once', 'include'. + * + * @return array + */ + public function getIncludes($categorize = false, $category = null) + { + if ($this->includes === null) { + $this->includes = [ + 'require_once' => [], + 'require' => [], + 'include_once' => [], + 'include' => [] + ]; + + foreach ($this->tokens as $token) { + switch (PHP_Token_Util::getClass($token)) { + case 'PHP_Token_REQUIRE_ONCE': + case 'PHP_Token_REQUIRE': + case 'PHP_Token_INCLUDE_ONCE': + case 'PHP_Token_INCLUDE': + $this->includes[$token->getType()][] = $token->getName(); + break; + } + } + } + + if (isset($this->includes[$category])) { + $includes = $this->includes[$category]; + } elseif ($categorize === false) { + $includes = array_merge( + $this->includes['require_once'], + $this->includes['require'], + $this->includes['include_once'], + $this->includes['include'] + ); + } else { + $includes = $this->includes; + } + + return $includes; + } + + /** + * Returns the name of the function or method a line belongs to. + * + * @return string or null if the line is not in a function or method + */ + public function getFunctionForLine($line) + { + $this->parse(); + + if (isset($this->lineToFunctionMap[$line])) { + return $this->lineToFunctionMap[$line]; + } + } + + protected function parse() + { + $this->interfaces = []; + $this->classes = []; + $this->traits = []; + $this->functions = []; + $class = []; + $classEndLine = []; + $trait = false; + $traitEndLine = false; + $interface = false; + $interfaceEndLine = false; + + foreach ($this->tokens as $token) { + switch (PHP_Token_Util::getClass($token)) { + case 'PHP_Token_HALT_COMPILER': + return; + + case 'PHP_Token_INTERFACE': + $interface = $token->getName(); + $interfaceEndLine = $token->getEndLine(); + + $this->interfaces[$interface] = [ + 'methods' => [], + 'parent' => $token->getParent(), + 'keywords' => $token->getKeywords(), + 'docblock' => $token->getDocblock(), + 'startLine' => $token->getLine(), + 'endLine' => $interfaceEndLine, + 'package' => $token->getPackage(), + 'file' => $this->filename + ]; + break; + + case 'PHP_Token_CLASS': + case 'PHP_Token_TRAIT': + $tmp = [ + 'methods' => [], + 'parent' => $token->getParent(), + 'interfaces'=> $token->getInterfaces(), + 'keywords' => $token->getKeywords(), + 'docblock' => $token->getDocblock(), + 'startLine' => $token->getLine(), + 'endLine' => $token->getEndLine(), + 'package' => $token->getPackage(), + 'file' => $this->filename + ]; + + if ($token->getName() !== null) { + if ($token instanceof PHP_Token_CLASS) { + $class[] = $token->getName(); + $classEndLine[] = $token->getEndLine(); + + $this->classes[$class[count($class) - 1]] = $tmp; + } else { + $trait = $token->getName(); + $traitEndLine = $token->getEndLine(); + $this->traits[$trait] = $tmp; + } + } + break; + + case 'PHP_Token_FUNCTION': + $name = $token->getName(); + $tmp = [ + 'docblock' => $token->getDocblock(), + 'keywords' => $token->getKeywords(), + 'visibility'=> $token->getVisibility(), + 'signature' => $token->getSignature(), + 'startLine' => $token->getLine(), + 'endLine' => $token->getEndLine(), + 'ccn' => $token->getCCN(), + 'file' => $this->filename + ]; + + if (empty($class) && + $trait === false && + $interface === false) { + $this->functions[$name] = $tmp; + + $this->addFunctionToMap( + $name, + $tmp['startLine'], + $tmp['endLine'] + ); + } elseif (!empty($class)) { + $this->classes[$class[count($class) - 1]]['methods'][$name] = $tmp; + + $this->addFunctionToMap( + $class[count($class) - 1] . '::' . $name, + $tmp['startLine'], + $tmp['endLine'] + ); + } elseif ($trait !== false) { + $this->traits[$trait]['methods'][$name] = $tmp; + + $this->addFunctionToMap( + $trait . '::' . $name, + $tmp['startLine'], + $tmp['endLine'] + ); + } else { + $this->interfaces[$interface]['methods'][$name] = $tmp; + } + break; + + case 'PHP_Token_CLOSE_CURLY': + if (!empty($classEndLine) && + $classEndLine[count($classEndLine) - 1] == $token->getLine()) { + array_pop($classEndLine); + array_pop($class); + } elseif ($traitEndLine !== false && + $traitEndLine == $token->getLine()) { + $trait = false; + $traitEndLine = false; + } elseif ($interfaceEndLine !== false && + $interfaceEndLine == $token->getLine()) { + $interface = false; + $interfaceEndLine = false; + } + break; + } + } + } + + /** + * @return array + */ + public function getLinesOfCode() + { + return $this->linesOfCode; + } + + public function rewind(): void + { + $this->position = 0; + } + + public function valid(): bool + { + return isset($this->tokens[$this->position]); + } + + #[\ReturnTypeWillChange] + public function key() + { + return $this->position; + } + + #[\ReturnTypeWillChange] + public function current() + { + return $this->tokens[$this->position]; + } + + public function next(): void + { + $this->position++; + } + + /** + * @param int $offset + */ + public function offsetExists($offset): bool + { + return isset($this->tokens[$offset]); + } + + #[\ReturnTypeWillChange] + public function offsetGet($offset) + { + if (!$this->offsetExists($offset)) { + throw new OutOfBoundsException( + sprintf( + 'No token at position "%s"', + $offset + ) + ); + } + + return $this->tokens[$offset]; + } + + /** + * @param int $offset + * @param mixed $value + */ + public function offsetSet($offset, $value): void + { + $this->tokens[$offset] = $value; + } + + /** + * @param int $offset + * + * @throws OutOfBoundsException + */ + public function offsetUnset($offset): void + { + if (!$this->offsetExists($offset)) { + throw new OutOfBoundsException( + sprintf( + 'No token at position "%s"', + $offset + ) + ); + } + + unset($this->tokens[$offset]); + } + + /** + * Seek to an absolute position. + * + * @param int $position + * + * @throws OutOfBoundsException + */ + public function seek($position): void + { + $this->position = $position; + + if (!$this->valid()) { + throw new OutOfBoundsException( + sprintf( + 'No token at position "%s"', + $this->position + ) + ); + } + } + + /** + * @param string $name + * @param int $startLine + * @param int $endLine + */ + private function addFunctionToMap($name, $startLine, $endLine) + { + for ($line = $startLine; $line <= $endLine; $line++) { + $this->lineToFunctionMap[$line] = $name; + } + } +} diff --git a/vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php b/vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php new file mode 100644 index 00000000..9d693938 --- /dev/null +++ b/vendor/phpunit/php-token-stream/src/Token/Stream/CachingFactory.php @@ -0,0 +1,46 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * A caching factory for token stream objects. + */ +class PHP_Token_Stream_CachingFactory +{ + /** + * @var array + */ + protected static $cache = []; + + /** + * @param string $filename + * + * @return PHP_Token_Stream + */ + public static function get($filename) + { + if (!isset(self::$cache[$filename])) { + self::$cache[$filename] = new PHP_Token_Stream($filename); + } + + return self::$cache[$filename]; + } + + /** + * @param string $filename + */ + public static function clear($filename = null) + { + if (is_string($filename)) { + unset(self::$cache[$filename]); + } else { + self::$cache = []; + } + } +} diff --git a/vendor/phpunit/php-token-stream/src/Token/Util.php b/vendor/phpunit/php-token-stream/src/Token/Util.php new file mode 100644 index 00000000..4d82f1a8 --- /dev/null +++ b/vendor/phpunit/php-token-stream/src/Token/Util.php @@ -0,0 +1,19 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +final class PHP_Token_Util +{ + public static function getClass($object): string + { + $parts = explode('\\', get_class($object)); + + return array_pop($parts); + } +} \ No newline at end of file diff --git a/vendor/phpunit/php-token-stream/tests/Token/ClassTest.php b/vendor/phpunit/php-token-stream/tests/Token/ClassTest.php new file mode 100644 index 00000000..05eca32f --- /dev/null +++ b/vendor/phpunit/php-token-stream/tests/Token/ClassTest.php @@ -0,0 +1,152 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use PHPUnit\Framework\TestCase; + +class PHP_Token_ClassTest extends TestCase +{ + /** + * @var PHP_Token_CLASS + */ + private $class; + + /** + * @var PHP_Token_FUNCTION + */ + private $function; + + protected function setUp() + { + foreach (new PHP_Token_Stream(TEST_FILES_PATH . 'source2.php') as $token) { + if ($token instanceof PHP_Token_CLASS) { + $this->class = $token; + } + + if ($token instanceof PHP_Token_FUNCTION) { + $this->function = $token; + break; + } + } + } + + public function testGetClassKeywords() + { + $this->assertEquals('abstract', $this->class->getKeywords()); + } + + public function testGetFunctionKeywords() + { + $this->assertEquals('abstract,static', $this->function->getKeywords()); + } + + public function testGetFunctionVisibility() + { + $this->assertEquals('public', $this->function->getVisibility()); + } + + public function testIssue19() + { + foreach (new PHP_Token_Stream(TEST_FILES_PATH . 'issue19.php') as $token) { + if ($token instanceof PHP_Token_CLASS) { + $this->assertFalse($token->hasInterfaces()); + } + } + } + + public function testIssue30() + { + $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'issue30.php'); + $this->assertCount(1, $ts->getClasses()); + } + + public function testAnonymousClassesAreHandledCorrectly() + { + $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'class_with_method_that_declares_anonymous_class.php'); + + $classes = $ts->getClasses(); + + $this->assertEquals( + [ + 'class_with_method_that_declares_anonymous_class', + 'AnonymousClass:9#31', + 'AnonymousClass:10#55', + 'AnonymousClass:11#75', + 'AnonymousClass:12#91', + 'AnonymousClass:13#107' + ], + array_keys($classes) + ); + } + + /** + * @ticket https://github.com/sebastianbergmann/php-token-stream/issues/52 + */ + public function testAnonymousClassesAreHandledCorrectly2() + { + $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'class_with_method_that_declares_anonymous_class2.php'); + + $classes = $ts->getClasses(); + + $this->assertEquals(['Test', 'AnonymousClass:4#23'], array_keys($classes)); + $this->assertEquals(['methodOne', 'methodTwo'], array_keys($classes['Test']['methods'])); + + $this->assertEmpty($ts->getFunctions()); + } + + public function testImportedFunctionsAreHandledCorrectly() + { + $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'classUsesNamespacedFunction.php'); + + $this->assertEmpty($ts->getFunctions()); + $this->assertCount(1, $ts->getClasses()); + } + + /** + * @ticket https://github.com/sebastianbergmann/php-code-coverage/issues/543 + */ + public function testClassWithMultipleAnonymousClassesAndFunctionsIsHandledCorrectly() + { + $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'class_with_multiple_anonymous_classes_and_functions.php'); + + $classes = $ts->getClasses(); + + $this->assertArrayHasKey('class_with_multiple_anonymous_classes_and_functions', $classes); + $this->assertArrayHasKey('AnonymousClass:6#23', $classes); + $this->assertArrayHasKey('AnonymousClass:12#53', $classes); + $this->assertArrayHasKey('m', $classes['class_with_multiple_anonymous_classes_and_functions']['methods']); + $this->assertArrayHasKey('anonymousFunction:18#81', $classes['class_with_multiple_anonymous_classes_and_functions']['methods']); + $this->assertArrayHasKey('anonymousFunction:22#108', $classes['class_with_multiple_anonymous_classes_and_functions']['methods']); + } + + /** + * @ticket https://github.com/sebastianbergmann/php-token-stream/issues/68 + */ + public function testClassWithMethodNamedEmptyIsHandledCorrectly() + { + $classes = (new PHP_Token_Stream(TEST_FILES_PATH . 'class_with_method_named_empty.php'))->getClasses(); + + $this->assertArrayHasKey('class_with_method_named_empty', $classes); + $this->assertArrayHasKey('empty', $classes['class_with_method_named_empty']['methods']); + } + + /** + * @ticket https://github.com/sebastianbergmann/php-code-coverage/issues/424 + */ + public function testAnonymousFunctionDoesNotAffectStartAndEndLineOfMethod() + { + $classes = (new PHP_Token_Stream(TEST_FILES_PATH . 'php-code-coverage-issue-424.php'))->getClasses(); + + $this->assertSame(5, $classes['Example']['methods']['even']['startLine']); + $this->assertSame(12, $classes['Example']['methods']['even']['endLine']); + + $this->assertSame(7, $classes['Example']['methods']['anonymousFunction:7#28']['startLine']); + $this->assertSame(9, $classes['Example']['methods']['anonymousFunction:7#28']['endLine']); + } +} diff --git a/vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php b/vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php new file mode 100644 index 00000000..4e893d8d --- /dev/null +++ b/vendor/phpunit/php-token-stream/tests/Token/ClosureTest.php @@ -0,0 +1,64 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use PHPUnit\Framework\TestCase; + +class PHP_Token_ClosureTest extends TestCase +{ + /** + * @var PHP_Token_FUNCTION[] + */ + private $functions; + + protected function setUp() + { + foreach (new PHP_Token_Stream(TEST_FILES_PATH . 'closure.php') as $token) { + if ($token instanceof PHP_Token_FUNCTION) { + $this->functions[] = $token; + } + } + } + + public function testGetArguments() + { + $this->assertEquals(['$foo' => null, '$bar' => null], $this->functions[0]->getArguments()); + $this->assertEquals(['$foo' => 'Foo', '$bar' => null], $this->functions[1]->getArguments()); + $this->assertEquals(['$foo' => null, '$bar' => null, '$baz' => null], $this->functions[2]->getArguments()); + $this->assertEquals(['$foo' => 'Foo', '$bar' => null, '$baz' => null], $this->functions[3]->getArguments()); + $this->assertEquals([], $this->functions[4]->getArguments()); + $this->assertEquals([], $this->functions[5]->getArguments()); + } + + public function testGetName() + { + $this->assertEquals('anonymousFunction:2#5', $this->functions[0]->getName()); + $this->assertEquals('anonymousFunction:3#27', $this->functions[1]->getName()); + $this->assertEquals('anonymousFunction:4#51', $this->functions[2]->getName()); + $this->assertEquals('anonymousFunction:5#71', $this->functions[3]->getName()); + $this->assertEquals('anonymousFunction:6#93', $this->functions[4]->getName()); + $this->assertEquals('anonymousFunction:7#106', $this->functions[5]->getName()); + } + + public function testGetLine() + { + $this->assertEquals(2, $this->functions[0]->getLine()); + $this->assertEquals(3, $this->functions[1]->getLine()); + $this->assertEquals(4, $this->functions[2]->getLine()); + $this->assertEquals(5, $this->functions[3]->getLine()); + } + + public function testGetEndLine() + { + $this->assertEquals(2, $this->functions[0]->getLine()); + $this->assertEquals(3, $this->functions[1]->getLine()); + $this->assertEquals(4, $this->functions[2]->getLine()); + $this->assertEquals(5, $this->functions[3]->getLine()); + } +} diff --git a/vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php b/vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php new file mode 100644 index 00000000..c88454b9 --- /dev/null +++ b/vendor/phpunit/php-token-stream/tests/Token/FunctionTest.php @@ -0,0 +1,124 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use PHPUnit\Framework\TestCase; + +class PHP_Token_FunctionTest extends TestCase +{ + /** + * @var PHP_Token_FUNCTION[] + */ + private $functions; + + protected function setUp() + { + foreach (new PHP_Token_Stream(TEST_FILES_PATH . 'source.php') as $token) { + if ($token instanceof PHP_Token_FUNCTION) { + $this->functions[] = $token; + } + } + } + + public function testGetArguments() + { + $this->assertEquals([], $this->functions[0]->getArguments()); + + $this->assertEquals( + ['$baz' => 'Baz'], $this->functions[1]->getArguments() + ); + + $this->assertEquals( + ['$foobar' => 'Foobar'], $this->functions[2]->getArguments() + ); + + $this->assertEquals( + ['$barfoo' => 'Barfoo'], $this->functions[3]->getArguments() + ); + + $this->assertEquals([], $this->functions[4]->getArguments()); + + $this->assertEquals(['$x' => null, '$y' => null], $this->functions[5]->getArguments()); + } + + public function testGetName() + { + $this->assertEquals('foo', $this->functions[0]->getName()); + $this->assertEquals('bar', $this->functions[1]->getName()); + $this->assertEquals('foobar', $this->functions[2]->getName()); + $this->assertEquals('barfoo', $this->functions[3]->getName()); + $this->assertEquals('baz', $this->functions[4]->getName()); + } + + public function testGetLine() + { + $this->assertEquals(5, $this->functions[0]->getLine()); + $this->assertEquals(10, $this->functions[1]->getLine()); + $this->assertEquals(17, $this->functions[2]->getLine()); + $this->assertEquals(21, $this->functions[3]->getLine()); + $this->assertEquals(29, $this->functions[4]->getLine()); + $this->assertEquals(37, $this->functions[6]->getLine()); + } + + public function testGetEndLine() + { + $this->assertEquals(5, $this->functions[0]->getEndLine()); + $this->assertEquals(12, $this->functions[1]->getEndLine()); + $this->assertEquals(19, $this->functions[2]->getEndLine()); + $this->assertEquals(23, $this->functions[3]->getEndLine()); + $this->assertEquals(31, $this->functions[4]->getEndLine()); + $this->assertEquals(41, $this->functions[6]->getEndLine()); + } + + public function testGetDocblock() + { + $this->assertNull($this->functions[0]->getDocblock()); + + $this->assertEquals( + "/**\n * @param Baz \$baz\n */", + $this->functions[1]->getDocblock() + ); + + $this->assertEquals( + "/**\n * @param Foobar \$foobar\n */", + $this->functions[2]->getDocblock() + ); + + $this->assertNull($this->functions[3]->getDocblock()); + $this->assertNull($this->functions[4]->getDocblock()); + } + + public function testSignature() + { + $tokens = new PHP_Token_Stream(TEST_FILES_PATH . 'source5.php'); + $functions = $tokens->getFunctions(); + $classes = $tokens->getClasses(); + $interfaces = $tokens->getInterfaces(); + + $this->assertEquals( + 'foo($a, array $b, array $c = array())', + $functions['foo']['signature'] + ); + + $this->assertEquals( + 'm($a, array $b, array $c = array())', + $classes['c']['methods']['m']['signature'] + ); + + $this->assertEquals( + 'm($a, array $b, array $c = array())', + $classes['a']['methods']['m']['signature'] + ); + + $this->assertEquals( + 'm($a, array $b, array $c = array())', + $interfaces['i']['methods']['m']['signature'] + ); + } +} diff --git a/vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php b/vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php new file mode 100644 index 00000000..7f83a736 --- /dev/null +++ b/vendor/phpunit/php-token-stream/tests/Token/IncludeTest.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use PHPUnit\Framework\TestCase; + +class PHP_Token_IncludeTest extends TestCase +{ + /** + * @var PHP_Token_Stream + */ + private $ts; + + protected function setUp() + { + $this->ts = new PHP_Token_Stream(TEST_FILES_PATH . 'source3.php'); + } + + public function testGetIncludes() + { + $this->assertSame( + ['test4.php', 'test3.php', 'test2.php', 'test1.php'], + $this->ts->getIncludes() + ); + } + + public function testGetIncludesCategorized() + { + $this->assertSame( + [ + 'require_once' => ['test4.php'], + 'require' => ['test3.php'], + 'include_once' => ['test2.php'], + 'include' => ['test1.php'] + ], + $this->ts->getIncludes(true) + ); + } + + public function testGetIncludesCategory() + { + $this->assertSame( + ['test4.php'], + $this->ts->getIncludes(true, 'require_once') + ); + } +} diff --git a/vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php b/vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php new file mode 100644 index 00000000..c61ec387 --- /dev/null +++ b/vendor/phpunit/php-token-stream/tests/Token/InterfaceTest.php @@ -0,0 +1,169 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use PHPUnit\Framework\TestCase; + +class PHP_Token_InterfaceTest extends TestCase +{ + /** + * @var PHP_Token_CLASS + */ + private $class; + + /** + * @var PHP_Token_INTERFACE[] + */ + private $interfaces; + + protected function setUp() + { + $ts = new PHP_Token_Stream(TEST_FILES_PATH . 'source4.php'); + $i = 0; + + foreach ($ts as $token) { + if ($token instanceof PHP_Token_CLASS) { + $this->class = $token; + } elseif ($token instanceof PHP_Token_INTERFACE) { + $this->interfaces[$i] = $token; + $i++; + } + } + } + + public function testGetName() + { + $this->assertEquals( + 'iTemplate', $this->interfaces[0]->getName() + ); + } + + public function testGetParentNotExists() + { + $this->assertFalse( + $this->interfaces[0]->getParent() + ); + } + + public function testHasParentNotExists() + { + $this->assertFalse( + $this->interfaces[0]->hasParent() + ); + } + + public function testGetParentExists() + { + $this->assertEquals( + 'a', $this->interfaces[2]->getParent() + ); + } + + public function testHasParentExists() + { + $this->assertTrue( + $this->interfaces[2]->hasParent() + ); + } + + public function testGetInterfacesExists() + { + $this->assertEquals( + ['b'], + $this->class->getInterfaces() + ); + } + + public function testHasInterfacesExists() + { + $this->assertTrue( + $this->class->hasInterfaces() + ); + } + + public function testGetPackageNamespace() + { + foreach (new PHP_Token_Stream(TEST_FILES_PATH . 'classInNamespace.php') as $token) { + if ($token instanceof PHP_Token_INTERFACE) { + $package = $token->getPackage(); + $this->assertSame('Foo\\Bar', $package['namespace']); + } + } + } + + public function provideFilesWithClassesWithinMultipleNamespaces() + { + return [ + [TEST_FILES_PATH . 'multipleNamespacesWithOneClassUsingBraces.php'], + [TEST_FILES_PATH . 'multipleNamespacesWithOneClassUsingNonBraceSyntax.php'], + ]; + } + + /** + * @dataProvider provideFilesWithClassesWithinMultipleNamespaces + */ + public function testGetPackageNamespaceForFileWithMultipleNamespaces($filepath) + { + $tokenStream = new PHP_Token_Stream($filepath); + $firstClassFound = false; + + foreach ($tokenStream as $token) { + if ($firstClassFound === false && $token instanceof PHP_Token_INTERFACE) { + $package = $token->getPackage(); + $this->assertSame('TestClassInBar', $token->getName()); + $this->assertSame('Foo\\Bar', $package['namespace']); + $firstClassFound = true; + continue; + } + // Secound class + if ($token instanceof PHP_Token_INTERFACE) { + $package = $token->getPackage(); + $this->assertSame('TestClassInBaz', $token->getName()); + $this->assertSame('Foo\\Baz', $package['namespace']); + + return; + } + } + $this->fail('Searching for 2 classes failed'); + } + + public function testGetPackageNamespaceIsEmptyForInterfacesThatAreNotWithinNamespaces() + { + foreach ($this->interfaces as $token) { + $package = $token->getPackage(); + $this->assertSame('', $package['namespace']); + } + } + + public function testGetPackageNamespaceWhenExtentingFromNamespaceClass() + { + $tokenStream = new PHP_Token_Stream(TEST_FILES_PATH . 'classExtendsNamespacedClass.php'); + $firstClassFound = false; + + foreach ($tokenStream as $token) { + if ($firstClassFound === false && $token instanceof PHP_Token_INTERFACE) { + $package = $token->getPackage(); + $this->assertSame('Baz', $token->getName()); + $this->assertSame('Foo\\Bar', $package['namespace']); + $firstClassFound = true; + continue; + } + + if ($token instanceof PHP_Token_INTERFACE) { + $package = $token->getPackage(); + $this->assertSame('Extender', $token->getName()); + $this->assertSame('Other\\Space', $package['namespace']); + + return; + } + } + + $this->fail('Searching for 2 classes failed'); + } +} diff --git a/vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php b/vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php new file mode 100644 index 00000000..97a92249 --- /dev/null +++ b/vendor/phpunit/php-token-stream/tests/Token/NamespaceTest.php @@ -0,0 +1,62 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use PHPUnit\Framework\TestCase; + +class PHP_Token_NamespaceTest extends TestCase +{ + public function testGetName() + { + $tokenStream = new PHP_Token_Stream( + TEST_FILES_PATH . 'classInNamespace.php' + ); + + foreach ($tokenStream as $token) { + if ($token instanceof PHP_Token_NAMESPACE) { + $this->assertSame('Foo\\Bar', $token->getName()); + } + } + } + + public function testGetStartLineWithUnscopedNamespace() + { + foreach (new PHP_Token_Stream(TEST_FILES_PATH . 'classInNamespace.php') as $token) { + if ($token instanceof PHP_Token_NAMESPACE) { + $this->assertSame(2, $token->getLine()); + } + } + } + + public function testGetEndLineWithUnscopedNamespace() + { + foreach (new PHP_Token_Stream(TEST_FILES_PATH . 'classInNamespace.php') as $token) { + if ($token instanceof PHP_Token_NAMESPACE) { + $this->assertSame(2, $token->getEndLine()); + } + } + } + public function testGetStartLineWithScopedNamespace() + { + foreach (new PHP_Token_Stream(TEST_FILES_PATH . 'classInScopedNamespace.php') as $token) { + if ($token instanceof PHP_Token_NAMESPACE) { + $this->assertSame(2, $token->getLine()); + } + } + } + + public function testGetEndLineWithScopedNamespace() + { + foreach (new PHP_Token_Stream(TEST_FILES_PATH . 'classInScopedNamespace.php') as $token) { + if ($token instanceof PHP_Token_NAMESPACE) { + $this->assertSame(8, $token->getEndLine()); + } + } + } +} diff --git a/vendor/phpunit/php-token-stream/tests/_fixture/classExtendsNamespacedClass.php b/vendor/phpunit/php-token-stream/tests/_fixture/classExtendsNamespacedClass.php new file mode 100644 index 00000000..560eec94 --- /dev/null +++ b/vendor/phpunit/php-token-stream/tests/_fixture/classExtendsNamespacedClass.php @@ -0,0 +1,10 @@ +method_in_anonymous_class(); + } + + public function methodTwo() { + return false; + } +} diff --git a/vendor/phpunit/php-token-stream/tests/_fixture/class_with_multiple_anonymous_classes_and_functions.php b/vendor/phpunit/php-token-stream/tests/_fixture/class_with_multiple_anonymous_classes_and_functions.php new file mode 100644 index 00000000..3267ba56 --- /dev/null +++ b/vendor/phpunit/php-token-stream/tests/_fixture/class_with_multiple_anonymous_classes_and_functions.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +require __DIR__ . '/../vendor/autoload.php'; + +define( + 'TEST_FILES_PATH', + __DIR__ . DIRECTORY_SEPARATOR . '_fixture' . DIRECTORY_SEPARATOR +); diff --git a/vendor/phpunit/phpunit/.editorconfig b/vendor/phpunit/phpunit/.editorconfig new file mode 100644 index 00000000..536f29a3 --- /dev/null +++ b/vendor/phpunit/phpunit/.editorconfig @@ -0,0 +1,14 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 4 +charset = utf-8 + +[*.yml] +indent_size = 2 + +[tests/_files/*_result_cache.txt] +insert_final_newline = false diff --git a/vendor/phpunit/phpunit/.gitattributes b/vendor/phpunit/phpunit/.gitattributes new file mode 100644 index 00000000..2abe0805 --- /dev/null +++ b/vendor/phpunit/phpunit/.gitattributes @@ -0,0 +1,7 @@ +/.docker export-ignore +/build export-ignore +/tools export-ignore +/tools/* binary + +*.php diff=php + diff --git a/vendor/phpunit/phpunit/.github/CODE_OF_CONDUCT.md b/vendor/phpunit/phpunit/.github/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..ee242a80 --- /dev/null +++ b/vendor/phpunit/phpunit/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,28 @@ +# Contributor Code of Conduct + +As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. + +We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, such as physical or electronic + addresses, without explicit permission +* Other unethical or unprofessional conduct + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team. + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project maintainer at sebastian@phpunit.de. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. Maintainers are obligated to maintain confidentiality with regard to the reporter of an incident. + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.3.0, available at [https://contributor-covenant.org/version/1/3/0/][version] + +[homepage]: https://contributor-covenant.org +[version]: https://contributor-covenant.org/version/1/3/0/ diff --git a/vendor/phpunit/phpunit/.github/CONTRIBUTING.md b/vendor/phpunit/phpunit/.github/CONTRIBUTING.md new file mode 100644 index 00000000..6f593dfd --- /dev/null +++ b/vendor/phpunit/phpunit/.github/CONTRIBUTING.md @@ -0,0 +1,68 @@ +# Contributing to PHPUnit + +## Contributor Code of Conduct + +Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms. + +## Workflow + +* Fork the project. +* Make your bug fix or feature addition. +* Add tests for it. This is important so we don't break it in a future version unintentionally. +* Send a pull request. Bonus points for topic branches. + +Please make sure that you have [set up your user name and email address](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup) for use with Git. Strings such as `silly nick name ` look really stupid in the commit history of a project. + +Pull requests for bug fixes must be made for the oldest branch that is [supported](https://phpunit.de/supported-versions.html). Pull requests for new features must be based on the `master` branch. + +We are trying to keep backwards compatibility breaks in PHPUnit to an absolute minimum. Please take this into account when proposing changes. + +Due to time constraints, we are not always able to respond as quickly as we would like. Please do not take delays personal and feel free to remind us if you feel that we forgot to respond. + +## Coding Guidelines + +This project comes with a configuration file and an executable for [php-cs-fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) (`.php_cs`) that you can use to (re)format your source code for compliance with this project's coding guidelines: + +```bash +$ ./tools/php-cs-fixer fix +``` + +## Using PHPUnit from a Git checkout + +The following commands can be used to perform the initial checkout of PHPUnit: + +```bash +$ git clone git://github.com/sebastianbergmann/phpunit.git + +$ cd phpunit +``` + +Retrieve PHPUnit's dependencies using [Composer](https://getcomposer.org/): + +```bash +$ ./tools/composer install +``` + +The `phpunit` script can be used to invoke the PHPUnit test runner: + +```bash +$ ./phpunit --version +``` + +## Running PHPUnit's own test suite + +After following the steps shown above, PHPUnit's own test suite is run like this: + +```bash +$ ./phpunit +``` + +## Reporting issues + +Please use the most specific issue tracker to search for existing tickets and to open new tickets: + +* [General problems](https://github.com/sebastianbergmann/phpunit/issues) +* [Code Coverage](https://github.com/sebastianbergmann/php-code-coverage/issues) +* [Documentation](https://github.com/sebastianbergmann/phpunit-documentation-english/issues) +* [Website](https://github.com/sebastianbergmann/phpunit-website/issues) + diff --git a/vendor/phpunit/phpunit/.github/ISSUE_TEMPLATE.md b/vendor/phpunit/phpunit/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..ad1dc39a --- /dev/null +++ b/vendor/phpunit/phpunit/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,15 @@ +| Q | A +| --------------------| --------------- +| PHPUnit version | x.y.z +| PHP version | x.y.z +| Installation Method | Composer / PHAR + + + diff --git a/vendor/phpunit/phpunit/.github/workflows/ci.yml b/vendor/phpunit/phpunit/.github/workflows/ci.yml new file mode 100644 index 00000000..aa2403a8 --- /dev/null +++ b/vendor/phpunit/phpunit/.github/workflows/ci.yml @@ -0,0 +1,84 @@ +# https://help.github.com/en/categories/automating-your-workflow-with-github-actions + +on: + - pull_request + - push + +name: CI + +jobs: + coding-guidelines: + name: Coding Guidelines + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Run friendsofphp/php-cs-fixer + run: php7.3 ./tools/php-cs-fixer fix --diff-format=udiff --dry-run --show-progress=dots --using-cache=no --verbose + + lint-xml-configuration: + name: Lint XML Configuration + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Build Docker image + uses: ./.docker/lint-xml-configuration + + - name: Lint XML configuration files + uses: ./.docker/lint-xml-configuration + with: + args: bash ./build/lint-xml-configuration + + tests: + name: Tests + + runs-on: ubuntu-latest + + strategy: + matrix: + php-binary: + - php7.1 + - php7.2 + - php7.3 + + dependencies: + - lowest + - highest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: "Cache dependencies installed with composer" + uses: actions/cache@v1 + with: + path: ~/.composer/cache + key: ${{ matrix.php-binary }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.json') }} + restore-keys: | + ${{ matrix.php-binary }}-composer-${{ matrix.dependencies }}- + + - name: Install lowest dependencies with composer + if: matrix.dependencies == 'lowest' + run: ${{ matrix.php-binary }} ./tools/composer update --no-ansi --no-interaction --no-progress --no-suggest --prefer-lowest + + - name: Install highest dependencies with composer + if: matrix.dependencies == 'highest' + run: ${{ matrix.php-binary }} ./tools/composer update --no-ansi --no-interaction --no-progress --no-suggest + + - name: Run sanity check + run: PHP_BINARY=${{ matrix.php-binary }} bash ./build/sanity-check + + - name: Run tests with phpunit + run: ${{ matrix.php-binary }} -d assert.exception=1 -d zend.assertions=1 ./phpunit --coverage-clover=coverage.xml + + - name: Send code coverage report to Codecov.io + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + run: bash <(curl -s https://codecov.io/bash) || true diff --git a/vendor/phpunit/phpunit/.gitignore b/vendor/phpunit/phpunit/.gitignore new file mode 100644 index 00000000..d3658584 --- /dev/null +++ b/vendor/phpunit/phpunit/.gitignore @@ -0,0 +1,21 @@ +/.ant_targets +/.idea +/.php_cs +/.php_cs.cache +/build/documentation +/build/logfiles +/build/phar +/build/phpdox +/build/*.phar +/build/*.phar.asc +/build/binary-phar-autoload.php +/cache.properties +/composer.lock +/tests/end-to-end/*.diff +/tests/end-to-end/*.exp +/tests/end-to-end/*.log +/tests/end-to-end/*.out +/tests/end-to-end/*.php +/vendor +.phpunit.result.cache +.psalm diff --git a/vendor/phpunit/phpunit/.php_cs.dist b/vendor/phpunit/phpunit/.php_cs.dist new file mode 100644 index 00000000..30439ff2 --- /dev/null +++ b/vendor/phpunit/phpunit/.php_cs.dist @@ -0,0 +1,201 @@ + + +For the full copyright and license information, please view the LICENSE +file that was distributed with this source code. +EOF; + +return PhpCsFixer\Config::create() + ->setRiskyAllowed(true) + ->setRules( + [ + 'align_multiline_comment' => true, + 'array_indentation' => true, + 'array_syntax' => ['syntax' => 'short'], + 'binary_operator_spaces' => [ + 'operators' => [ + '=' => 'align', + '=>' => 'align', + ], + ], + 'blank_line_after_namespace' => true, + 'blank_line_before_statement' => [ + 'statements' => [ + 'break', + 'continue', + 'declare', + 'do', + 'for', + 'foreach', + 'if', + 'include', + 'include_once', + 'require', + 'require_once', + 'return', + 'switch', + 'throw', + 'try', + 'while', + 'yield', + ], + ], + 'braces' => true, + 'cast_spaces' => true, + 'class_attributes_separation' => ['elements' => ['const', 'method', 'property']], + 'combine_consecutive_issets' => true, + 'combine_consecutive_unsets' => true, + 'compact_nullable_typehint' => true, + 'concat_space' => ['spacing' => 'one'], + 'declare_equal_normalize' => ['space' => 'none'], + 'dir_constant' => true, + 'elseif' => true, + 'encoding' => true, + 'full_opening_tag' => true, + 'function_declaration' => true, + 'header_comment' => ['header' => $header, 'separate' => 'none'], + 'indentation_type' => true, + 'is_null' => true, + 'line_ending' => true, + 'list_syntax' => ['syntax' => 'short'], + 'logical_operators' => true, + 'lowercase_cast' => true, + 'lowercase_constants' => true, + 'lowercase_keywords' => true, + 'lowercase_static_reference' => true, + 'magic_constant_casing' => true, + 'method_argument_space' => ['ensure_fully_multiline' => true], + 'modernize_types_casting' => true, + 'multiline_comment_opening_closing' => true, + 'multiline_whitespace_before_semicolons' => true, + 'native_constant_invocation' => true, + 'native_function_casing' => true, + 'native_function_invocation' => true, + 'new_with_braces' => false, + 'no_alias_functions' => true, + 'no_alternative_syntax' => true, + 'no_blank_lines_after_class_opening' => true, + 'no_blank_lines_after_phpdoc' => true, + 'no_blank_lines_before_namespace' => true, + 'no_closing_tag' => true, + 'no_empty_comment' => true, + 'no_empty_phpdoc' => true, + 'no_empty_statement' => true, + 'no_extra_blank_lines' => true, + 'no_homoglyph_names' => true, + 'no_leading_import_slash' => true, + 'no_leading_namespace_whitespace' => true, + 'no_mixed_echo_print' => ['use' => 'print'], + 'no_multiline_whitespace_around_double_arrow' => true, + 'no_null_property_initialization' => true, + 'no_php4_constructor' => true, + 'no_short_bool_cast' => true, + 'no_short_echo_tag' => true, + 'no_singleline_whitespace_before_semicolons' => true, + 'no_spaces_after_function_name' => true, + 'no_spaces_inside_parenthesis' => true, + 'no_superfluous_elseif' => true, + 'no_superfluous_phpdoc_tags' => true, + 'no_trailing_comma_in_list_call' => true, + 'no_trailing_comma_in_singleline_array' => true, + 'no_trailing_whitespace' => true, + 'no_trailing_whitespace_in_comment' => true, + 'no_unneeded_control_parentheses' => true, + 'no_unneeded_curly_braces' => true, + 'no_unneeded_final_method' => true, + 'no_unreachable_default_argument_value' => true, + 'no_unset_on_property' => true, + 'no_unused_imports' => true, + 'no_useless_else' => true, + 'no_useless_return' => true, + 'no_whitespace_before_comma_in_array' => true, + 'no_whitespace_in_blank_line' => true, + 'non_printable_character' => true, + 'normalize_index_brace' => true, + 'object_operator_without_whitespace' => true, + 'ordered_class_elements' => [ + 'order' => [ + 'use_trait', + 'constant_public', + 'constant_protected', + 'constant_private', + 'property_public_static', + 'property_protected_static', + 'property_private_static', + 'property_public', + 'property_protected', + 'property_private', + 'method_public_static', + 'construct', + 'destruct', + 'magic', + 'phpunit', + 'method_public', + 'method_protected', + 'method_private', + 'method_protected_static', + 'method_private_static', + ], + ], + 'ordered_imports' => true, + 'ordered_interfaces' => [ + 'direction' => 'ascend', + 'order' => 'alpha', + ], + 'phpdoc_add_missing_param_annotation' => true, + 'phpdoc_align' => true, + 'phpdoc_annotation_without_dot' => true, + 'phpdoc_indent' => true, + 'phpdoc_no_access' => true, + 'phpdoc_no_empty_return' => true, + 'phpdoc_no_package' => true, + 'phpdoc_order' => true, + 'phpdoc_return_self_reference' => true, + 'phpdoc_scalar' => true, + 'phpdoc_separation' => true, + 'phpdoc_single_line_var_spacing' => true, + 'phpdoc_to_comment' => true, + 'phpdoc_trim' => true, + 'phpdoc_trim_consecutive_blank_line_separation' => true, + 'phpdoc_types' => ['groups' => ['simple', 'meta']], + 'phpdoc_types_order' => true, + 'phpdoc_var_without_name' => true, + 'pow_to_exponentiation' => true, + 'protected_to_private' => true, + 'return_assignment' => true, + 'return_type_declaration' => ['space_before' => 'none'], + 'self_accessor' => true, + 'semicolon_after_instruction' => true, + 'set_type_to_cast' => true, + 'short_scalar_cast' => true, + 'simplified_null_return' => false, + 'single_blank_line_at_eof' => true, + 'single_import_per_statement' => true, + 'single_line_after_imports' => true, + 'single_quote' => true, + 'standardize_not_equals' => true, + 'ternary_to_null_coalescing' => true, + 'trailing_comma_in_multiline_array' => true, + 'trim_array_spaces' => true, + 'unary_operator_spaces' => true, + 'visibility_required' => [ + 'elements' => [ + 'const', + 'method', + 'property', + ], + ], + //'void_return' => true, + 'whitespace_after_comma_in_array' => true, + ] + ) + ->setFinder( + PhpCsFixer\Finder::create() + ->files() + ->in(__DIR__ . '/src') + ->in(__DIR__ . '/tests') + ->notName('*.phpt') + ); diff --git a/vendor/phpunit/phpunit/.travis.yml b/vendor/phpunit/phpunit/.travis.yml new file mode 100644 index 00000000..4e10de44 --- /dev/null +++ b/vendor/phpunit/phpunit/.travis.yml @@ -0,0 +1,38 @@ +language: php + +jobs: + include: + - &COLLECT_CODE_COVERAGE + + stage: Collect Code Coverage + + php: 7.1 + + if: type = pull_request + + before_install: + - ./tools/composer clear-cache + + install: + - travis_retry ./tools/composer update --no-ansi --no-interaction --no-progress --no-suggest + + before_script: + - echo 'zend.assertions=1' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini + - echo 'assert.exception=On' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini + + script: + - ./phpunit --coverage-clover=coverage.xml + + after_success: + - bash <(curl -s https://codecov.io/bash) + + - <<: *COLLECT_CODE_COVERAGE + + php: 7.2 + + - <<: *COLLECT_CODE_COVERAGE + + php: 7.3 + +notifications: + email: false diff --git a/vendor/phpunit/phpunit/ChangeLog-7.5.md b/vendor/phpunit/phpunit/ChangeLog-7.5.md new file mode 100644 index 00000000..c57c5e8c --- /dev/null +++ b/vendor/phpunit/phpunit/ChangeLog-7.5.md @@ -0,0 +1,195 @@ +# Changes in PHPUnit 7.5 + +All notable changes of the PHPUnit 7.5 release series are documented in this file using the [Keep a CHANGELOG](https://keepachangelog.com/) principles. + +## [7.5.20] - 2020-01-08 + +### Removed + +* `eval-stdin.php` has been removed, it was not used anymore since PHPUnit 7.2.7 + +## [7.5.19] - 2020-01-06 + +### Changed + +* `eval-stdin.php` can now only be executed with `cli` and `phpdbg` + +## [7.5.18] - 2019-12-06 + +### Fixed + +* Fixed [#3967](https://github.com/sebastianbergmann/phpunit/issues/3967): Cannot double interface that extends interface that extends `\Throwable` +* Fixed [#3968](https://github.com/sebastianbergmann/phpunit/pull/3968): Test class run in a separate PHP process are passing when `exit` called inside + +## [7.5.17] - 2019-10-28 + +### Fixed + +* Fixed [#3727](https://github.com/sebastianbergmann/phpunit/issues/3727): Problem hidden by PHPUnit's error handler +* Fixed [#3863](https://github.com/sebastianbergmann/phpunit/pull/3863): `\Countable` needs to be checked before `\EmptyIterator` + +## [7.5.16] - 2019-09-14 + +### Fixed + +* Fixed [#3801](https://github.com/sebastianbergmann/phpunit/issues/3801): Class constant as default parameter is undefined +* Fixed [#3834](https://github.com/sebastianbergmann/phpunit/issues/3834): Trailing slash breaks code coverage on Windows + +## [7.5.15] - 2019-08-21 + +### Changed + +* Implemented [#3765](https://github.com/sebastianbergmann/phpunit/pull/3765): Use `ReflectionType::getName()` instead of `ReflectionType::__toString()` (which is deprecated in PHP 7.4) + +## [7.5.14] - 2019-07-15 + +### Fixed + +* Fixed [#3743](https://github.com/sebastianbergmann/phpunit/issues/3743): `EmptyIterator` instances are not handled correctly by `Count` and `IsEmpty` constraints + +## [7.5.13] - 2019-06-19 + +### Fixed + +* Fixed [#3722](https://github.com/sebastianbergmann/phpunit/issues/3722): `getObjectForTrait()` does not work for traits that declare a constructor +* Fixed [#3723](https://github.com/sebastianbergmann/phpunit/pull/3723): Unescaped dash in character group in regular expression + +## [7.5.12] - 2019-05-28 + +### Changed + +* After each test, `libxml_clear_errors()` is now called to clear the libxml error buffer + +### Fixed + +* Fixed [#3694](https://github.com/sebastianbergmann/phpunit/pull/3694): Constructor arguments for `Throwable` and `Exception` are ignored +* Fixed [#3709](https://github.com/sebastianbergmann/phpunit/pull/3709): Method-level `@coversNothing` annotation does not prevent code coverage data collection + +## [7.5.11] - 2019-05-14 + +### Fixed + +* Fixed [#3683](https://github.com/sebastianbergmann/phpunit/issues/3683): Regression in PHPUnit 7.5.10 with regard to Exception stubbing/mocking + +## [7.5.10] - 2019-05-09 + +### Fixed + +* Fixed [#3414](https://github.com/sebastianbergmann/phpunit/pull/3414): `willThrowException()` only accepts `Exception`, not `Throwable` +* Fixed [#3587](https://github.com/sebastianbergmann/phpunit/issues/3587): `.phpunit.result.cache` file is all over the place +* Fixed [#3596](https://github.com/sebastianbergmann/phpunit/issues/3596): Mocking an interface that extends another interface forgets to mock its own methods +* Fixed [#3674](https://github.com/sebastianbergmann/phpunit/issues/3674): `TypeError` when an incorrect file path is given + +## [7.5.9] - 2019-04-19 + +### Fixed + +* Fixed [#3607](https://github.com/sebastianbergmann/phpunit/issues/3607): Return value generation interferes with proxying to original method + +## [7.5.8] - 2019-03-26 + +### Fixed + +* Fixed [#3564](https://github.com/sebastianbergmann/phpunit/issues/3564): Production code uses class from test suite's fixture + +## [7.5.7] - 2019-03-16 + +### Fixed + +* Fixed [#3480](https://github.com/sebastianbergmann/phpunit/issues/3480): Wrong return type declaration for `TestCase::getExpectedExceptionMessage()` and `TestCase::getExpectedExceptionMessageRegExp()` +* Fixed [#3550](https://github.com/sebastianbergmann/phpunit/issues/3550): Check for valid attribute names in `assertObjectHasAttribute()` is too strict + +## [7.5.6] - 2019-02-18 + +### Fixed + +* Fixed [#3530](https://github.com/sebastianbergmann/phpunit/issues/3530): `generateClassFromWsdl()` does not handle methods with multiple output values +* Fixed [#3531](https://github.com/sebastianbergmann/phpunit/issues/3531): Test suite fails on warning +* Fixed [#3534](https://github.com/sebastianbergmann/phpunit/pull/3534): Wrong message in `ConstraintTestCase` + +## [7.5.5] - 2019-02-15 + +### Fixed + +* Fixed [#3011](https://github.com/sebastianbergmann/phpunit/issues/3011): Unsupported PHPT `--SECTION--` throws unhandled exception +* Fixed [#3461](https://github.com/sebastianbergmann/phpunit/issues/3461): `StringEndsWith` matches too loosely +* Fixed [#3515](https://github.com/sebastianbergmann/phpunit/issues/3515): Random order seed is only printed in verbose mode +* Fixed [#3517](https://github.com/sebastianbergmann/phpunit/issues/3517): Useless error message when depending on test that does not exist + +## [7.5.4] - 2019-02-07 + +### Fixed + +* Fixed [#3352](https://github.com/sebastianbergmann/phpunit/issues/3352): Using `phpunit.phar` with PHPDBG does not work with `auto_globals_jit=On` +* Fixed [#3502](https://github.com/sebastianbergmann/phpunit/issues/3502): Numeric `@ticket` or `@group` annotations no longer work + +## [7.5.3] - 2019-02-01 + +### Fixed + +* Fixed [#3490](https://github.com/sebastianbergmann/phpunit/pull/3490): Exceptions in `tearDownAfterClass()` kill PHPUnit + +### Deprecated + +* The method `assertArraySubset()` is now deprecated. There is no behavioral change in this version of PHPUnit. Using this method will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 this method will be removed. + +## [7.5.2] - 2019-01-15 + +### Fixed + +* Fixed [#3456](https://github.com/sebastianbergmann/phpunit/pull/3456): Generator for Xdebug filter script does not handle directories with leading `.` correctly +* Fixed [#3459](https://github.com/sebastianbergmann/phpunit/issues/3459): `@requires` function swallows digits at the end of function name + +## [7.5.1] - 2018-12-12 + +### Fixed + +* Fixed [#3441](https://github.com/sebastianbergmann/phpunit/issues/3441): Call to undefined method `DataProviderTestSuite::usesDataProvider()` + +## [7.5.0] - 2018-12-07 + +### Added + +* Implemented [#3340](https://github.com/sebastianbergmann/phpunit/issues/3340): Added `assertEqualsCanonicalizing()`, `assertEqualsIgnoringCase()`, `assertEqualsWithDelta()`, `assertNotEqualsCanonicalizing()`, `assertNotEqualsIgnoringCase()`, and `assertNotEqualsWithDelta()` as alternatives to using `assertEquals()` and `assertNotEquals()` with the `$delta`, `$canonicalize`, or `$ignoreCase` parameters +* Implemented [#3368](https://github.com/sebastianbergmann/phpunit/issues/3368): Added `assertIsArray()`, `assertIsBool()`, `assertIsFloat()`, `assertIsInt()`, `assertIsNumeric()`, `assertIsObject()`, `assertIsResource()`, `assertIsString()`, `assertIsScalar()`, `assertIsCallable()`, `assertIsIterable()`, `assertIsNotArray()`, `assertIsNotBool()`, `assertIsNotFloat()`, `assertIsNotInt()`, `assertIsNotNumeric()`, `assertIsNotObject()`, `assertIsNotResource()`, `assertIsNotString()`, `assertIsNotScalar()`, `assertIsNotCallable()`, `assertIsNotIterable()` as alternatives to `assertInternalType()` and `assertNotInternalType()` +* Implemented [#3391](https://github.com/sebastianbergmann/phpunit/issues/3391): Added a `TestHook` that fires after each test, regardless of result +* Implemented [#3417](https://github.com/sebastianbergmann/phpunit/pull/3417): Refinements related to test suite sorting and TestDox result printer +* Implemented [#3422](https://github.com/sebastianbergmann/phpunit/issues/3422): Added `assertStringContainsString()`, `assertStringContainsStringIgnoringCase()`, `assertStringNotContainsString()`, and `assertStringNotContainsStringIgnoringCase()` + +### Deprecated + +* The methods `assertInternalType()` and `assertNotInternalType()` are now deprecated. There is no behavioral change in this version of PHPUnit. Using these methods will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these methods will be removed. +* The methods `assertAttributeContains()`, `assertAttributeNotContains()`, `assertAttributeContainsOnly()`, `assertAttributeNotContainsOnly()`, `assertAttributeCount()`, `assertAttributeNotCount()`, `assertAttributeEquals()`, `assertAttributeNotEquals()`, `assertAttributeEmpty()`, `assertAttributeNotEmpty()`, `assertAttributeGreaterThan()`, `assertAttributeGreaterThanOrEqual()`, `assertAttributeLessThan()`, `assertAttributeLessThanOrEqual()`, `assertAttributeSame()`, `assertAttributeNotSame()`, `assertAttributeInstanceOf()`, `assertAttributeNotInstanceOf()`, `assertAttributeInternalType()`, `assertAttributeNotInternalType()`, `attributeEqualTo()`, `readAttribute()`, `getStaticAttribute()`, and `getObjectAttribute()` are now deprecated. There is no behavioral change in this version of PHPUnit. Using these methods will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these methods will be removed. +* The optional parameters `$delta`, `$maxDepth`, `$canonicalize`, and `$ignoreCase` of `assertEquals()` and `assertNotEquals()` are now deprecated. There is no behavioral change in this version of PHPUnit. Using these parameters will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these parameters will be removed. +* The annotations `@expectedException`, `@expectedExceptionCode`, `@expectedExceptionMessage`, and `@expectedExceptionMessageRegExp` are now deprecated. There is no behavioral change in this version of PHPUnit. Using these annotations will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these annotations will be removed. +* Using the methods `assertContains()` and `assertNotContains()` on `string` haystacks is now deprecated. There is no behavioral change in this version of PHPUnit. Using these methods on `string` haystacks will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these methods cannot be used on on `string` haystacks anymore. +* The optional parameters `$ignoreCase`, `$checkForObjectIdentity`, and `$checkForNonObjectIdentity` of `assertContains()` and `assertNotContains()` are now deprecated. There is no behavioral change in this version of PHPUnit. Using these parameters will trigger a deprecation warning in PHPUnit 8 and in PHPUnit 9 these parameters will be removed. + +### Fixed + +* Fixed [#3428](https://github.com/sebastianbergmann/phpunit/pull/3428): `TestSuite` setup failures are not logged correctly +* Fixed [#3429](https://github.com/sebastianbergmann/phpunit/pull/3429): Inefficient loop in `getHookMethods()` +* Fixed [#3437](https://github.com/sebastianbergmann/phpunit/pull/3437): JUnit logger skips PHPT tests + +[7.5.20]: https://github.com/sebastianbergmann/phpunit/compare/7.5.19...7.5.20 +[7.5.19]: https://github.com/sebastianbergmann/phpunit/compare/7.5.18...7.5.19 +[7.5.18]: https://github.com/sebastianbergmann/phpunit/compare/7.5.17...7.5.18 +[7.5.17]: https://github.com/sebastianbergmann/phpunit/compare/7.5.16...7.5.17 +[7.5.16]: https://github.com/sebastianbergmann/phpunit/compare/7.5.15...7.5.16 +[7.5.15]: https://github.com/sebastianbergmann/phpunit/compare/7.5.14...7.5.15 +[7.5.14]: https://github.com/sebastianbergmann/phpunit/compare/7.5.13...7.5.14 +[7.5.13]: https://github.com/sebastianbergmann/phpunit/compare/7.5.12...7.5.13 +[7.5.12]: https://github.com/sebastianbergmann/phpunit/compare/7.5.11...7.5.12 +[7.5.11]: https://github.com/sebastianbergmann/phpunit/compare/7.5.10...7.5.11 +[7.5.10]: https://github.com/sebastianbergmann/phpunit/compare/7.5.9...7.5.10 +[7.5.9]: https://github.com/sebastianbergmann/phpunit/compare/7.5.8...7.5.9 +[7.5.8]: https://github.com/sebastianbergmann/phpunit/compare/7.5.7...7.5.8 +[7.5.7]: https://github.com/sebastianbergmann/phpunit/compare/7.5.6...7.5.7 +[7.5.6]: https://github.com/sebastianbergmann/phpunit/compare/7.5.5...7.5.6 +[7.5.5]: https://github.com/sebastianbergmann/phpunit/compare/7.5.4...7.5.5 +[7.5.4]: https://github.com/sebastianbergmann/phpunit/compare/7.5.3...7.5.4 +[7.5.3]: https://github.com/sebastianbergmann/phpunit/compare/7.5.2...7.5.3 +[7.5.2]: https://github.com/sebastianbergmann/phpunit/compare/7.5.1...7.5.2 +[7.5.1]: https://github.com/sebastianbergmann/phpunit/compare/7.5.0...7.5.1 +[7.5.0]: https://github.com/sebastianbergmann/phpunit/compare/7.4.5...7.5.0 + diff --git a/vendor/phpunit/phpunit/LICENSE b/vendor/phpunit/phpunit/LICENSE new file mode 100644 index 00000000..46fabcbd --- /dev/null +++ b/vendor/phpunit/phpunit/LICENSE @@ -0,0 +1,33 @@ +PHPUnit + +Copyright (c) 2001-2019, Sebastian Bergmann . +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of Sebastian Bergmann nor the names of his + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/phpunit/phpunit/README.md b/vendor/phpunit/phpunit/README.md new file mode 100644 index 00000000..59b604b2 --- /dev/null +++ b/vendor/phpunit/phpunit/README.md @@ -0,0 +1,40 @@ +# PHPUnit + +PHPUnit is a programmer-oriented testing framework for PHP. It is an instance of the xUnit architecture for unit testing frameworks. + +[![Latest Stable Version](https://img.shields.io/packagist/v/phpunit/phpunit.svg?style=flat-square)](https://packagist.org/packages/phpunit/phpunit) +[![Minimum PHP Version](https://img.shields.io/badge/php-%3E%3D%207.1-8892BF.svg?style=flat-square)](https://php.net/) +[![CI Status](https://github.com/sebastianbergmann/phpunit/workflows/CI/badge.svg)](https://github.com/sebastianbergmann/phpunit/actions) + +## Installation + +We distribute a [PHP Archive (PHAR)](https://php.net/phar) that has all required (as well as some optional) dependencies of PHPUnit 7.5 bundled in a single file: + +```bash +$ wget https://phar.phpunit.de/phpunit-7.5.phar + +$ php phpunit-7.5.phar --version +``` + +Alternatively, you may use [Composer](https://getcomposer.org/) to download and install PHPUnit as well as its dependencies. Please refer to the "[Getting Started](https://phpunit.de/getting-started-with-phpunit.html)" guide for details on how to install PHPUnit. + +## Contribute + +Please refer to [CONTRIBUTING.md](https://github.com/sebastianbergmann/phpunit/blob/master/.github/CONTRIBUTING.md) for information on how to contribute to PHPUnit and its related projects. + +## List of Contributors + +Thanks to everyone who has contributed to PHPUnit! You can find a detailed list of contributors on every PHPUnit related package on GitHub. This list shows only the major components: + +* [PHPUnit](https://github.com/sebastianbergmann/phpunit/graphs/contributors) +* [php-code-coverage](https://github.com/sebastianbergmann/php-code-coverage/graphs/contributors) + +A very special thanks to everyone who has contributed to the documentation and helps maintain the translations: + +* [English](https://github.com/sebastianbergmann/phpunit-documentation-english/graphs/contributors) +* [Spanish](https://github.com/sebastianbergmann/phpunit-documentation-spanish/graphs/contributors) +* [French](https://github.com/sebastianbergmann/phpunit-documentation-french/graphs/contributors) +* [Japanese](https://github.com/sebastianbergmann/phpunit-documentation-japanese/graphs/contributors) +* [Brazilian Portuguese](https://github.com/sebastianbergmann/phpunit-documentation-brazilian-portuguese/graphs/contributors) +* [Simplified Chinese](https://github.com/sebastianbergmann/phpunit-documentation-chinese/graphs/contributors) + diff --git a/vendor/phpunit/phpunit/build.xml b/vendor/phpunit/phpunit/build.xml new file mode 100644 index 00000000..2bdb1a48 --- /dev/null +++ b/vendor/phpunit/phpunit/build.xml @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/phpunit/composer.json b/vendor/phpunit/phpunit/composer.json new file mode 100644 index 00000000..d690b5e1 --- /dev/null +++ b/vendor/phpunit/phpunit/composer.json @@ -0,0 +1,90 @@ +{ + "name": "phpunit/phpunit", + "description": "The PHP Unit Testing framework.", + "type": "library", + "keywords": [ + "phpunit", + "xunit", + "testing" + ], + "homepage": "https://phpunit.de/", + "license": "BSD-3-Clause", + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues" + }, + "prefer-stable": true, + "require": { + "php": "^7.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "doctrine/instantiator": "^1.1", + "myclabs/deep-copy": "^1.7", + "phar-io/manifest": "^1.0.2", + "phar-io/version": "^2.0", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^6.0.7", + "phpunit/php-file-iterator": "^2.0.1", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.1", + "sebastian/comparator": "^3.0", + "sebastian/diff": "^3.0", + "sebastian/environment": "^4.0", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^2.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.0", + "sebastian/version": "^2.0.1" + }, + "require-dev": { + "ext-PDO": "*" + }, + "conflict": { + "phpunit/phpunit-mock-objects": "*" + }, + "config": { + "platform": { + "php": "7.1.0" + }, + "optimize-autoloader": true, + "sort-packages": true + }, + "suggest": { + "phpunit/php-invoker": "^2.0", + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], + "autoload": { + "classmap": [ + "src/" + ] + }, + "autoload-dev": { + "classmap": [ + "tests/" + ], + "files": [ + "src/Framework/Assert/Functions.php", + "tests/_files/CoverageNamespacedFunctionTest.php", + "tests/_files/CoveredFunction.php", + "tests/_files/NamespaceCoveredFunction.php" + ] + }, + "extra": { + "branch-alias": { + "dev-master": "7.5-dev" + } + } +} diff --git a/vendor/phpunit/phpunit/phive.xml b/vendor/phpunit/phpunit/phive.xml new file mode 100644 index 00000000..43eafbb8 --- /dev/null +++ b/vendor/phpunit/phpunit/phive.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/vendor/phpunit/phpunit/phpunit b/vendor/phpunit/phpunit/phpunit new file mode 100644 index 00000000..2b5749a8 --- /dev/null +++ b/vendor/phpunit/phpunit/phpunit @@ -0,0 +1,61 @@ +#!/usr/bin/env php + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if (version_compare('7.1.0', PHP_VERSION, '>')) { + fwrite( + STDERR, + sprintf( + 'This version of PHPUnit is supported on PHP 7.1, PHP 7.2, and PHP 7.3.' . PHP_EOL . + 'You are using PHP %s (%s).' . PHP_EOL, + PHP_VERSION, + PHP_BINARY + ) + ); + + die(1); +} + +if (!ini_get('date.timezone')) { + ini_set('date.timezone', 'UTC'); +} + +foreach (array(__DIR__ . '/../../autoload.php', __DIR__ . '/../vendor/autoload.php', __DIR__ . '/vendor/autoload.php') as $file) { + if (file_exists($file)) { + define('PHPUNIT_COMPOSER_INSTALL', $file); + + break; + } +} + +unset($file); + +if (!defined('PHPUNIT_COMPOSER_INSTALL')) { + fwrite( + STDERR, + 'You need to set up the project dependencies using Composer:' . PHP_EOL . PHP_EOL . + ' composer install' . PHP_EOL . PHP_EOL . + 'You can learn all about Composer on https://getcomposer.org/.' . PHP_EOL + ); + + die(1); +} + +$options = getopt('', array('prepend:')); + +if (isset($options['prepend'])) { + require $options['prepend']; +} + +unset($options); + +require PHPUNIT_COMPOSER_INSTALL; + +PHPUnit\TextUI\Command::main(); diff --git a/vendor/phpunit/phpunit/phpunit.xml b/vendor/phpunit/phpunit/phpunit.xml new file mode 100644 index 00000000..673e3c93 --- /dev/null +++ b/vendor/phpunit/phpunit/phpunit.xml @@ -0,0 +1,32 @@ + + + + + tests/unit + + + + tests/end-to-end + tests/end-to-end/_files + + + + + + src + + src/Framework/Assert/Functions.php + src/Util/PHP/eval-stdin.php + + + + + + + + diff --git a/vendor/phpunit/phpunit/phpunit.xsd b/vendor/phpunit/phpunit/phpunit.xsd new file mode 100644 index 00000000..ceafb101 --- /dev/null +++ b/vendor/phpunit/phpunit/phpunit.xsd @@ -0,0 +1,307 @@ + + + + + This Schema file defines the rules by which the XML configuration file of PHPUnit 7.5 may be structured. + + + + + + Root Element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The main type specifying the document structure + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vendor/phpunit/phpunit/src/Exception.php b/vendor/phpunit/phpunit/src/Exception.php new file mode 100644 index 00000000..b2ce026a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Exception.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit; + +/** + * Marker interface for PHPUnit exceptions. + */ +interface Exception extends \Throwable +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/Assert.php b/vendor/phpunit/phpunit/src/Framework/Assert.php new file mode 100644 index 00000000..5e93c12d --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Assert.php @@ -0,0 +1,2896 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +use ArrayAccess; +use Countable; +use DOMDocument; +use DOMElement; +use PHPUnit\Framework\Constraint\ArrayHasKey; +use PHPUnit\Framework\Constraint\ArraySubset; +use PHPUnit\Framework\Constraint\Attribute; +use PHPUnit\Framework\Constraint\Callback; +use PHPUnit\Framework\Constraint\ClassHasAttribute; +use PHPUnit\Framework\Constraint\ClassHasStaticAttribute; +use PHPUnit\Framework\Constraint\Constraint; +use PHPUnit\Framework\Constraint\Count; +use PHPUnit\Framework\Constraint\DirectoryExists; +use PHPUnit\Framework\Constraint\FileExists; +use PHPUnit\Framework\Constraint\GreaterThan; +use PHPUnit\Framework\Constraint\IsAnything; +use PHPUnit\Framework\Constraint\IsEmpty; +use PHPUnit\Framework\Constraint\IsEqual; +use PHPUnit\Framework\Constraint\IsFalse; +use PHPUnit\Framework\Constraint\IsFinite; +use PHPUnit\Framework\Constraint\IsIdentical; +use PHPUnit\Framework\Constraint\IsInfinite; +use PHPUnit\Framework\Constraint\IsInstanceOf; +use PHPUnit\Framework\Constraint\IsJson; +use PHPUnit\Framework\Constraint\IsNan; +use PHPUnit\Framework\Constraint\IsNull; +use PHPUnit\Framework\Constraint\IsReadable; +use PHPUnit\Framework\Constraint\IsTrue; +use PHPUnit\Framework\Constraint\IsType; +use PHPUnit\Framework\Constraint\IsWritable; +use PHPUnit\Framework\Constraint\JsonMatches; +use PHPUnit\Framework\Constraint\LessThan; +use PHPUnit\Framework\Constraint\LogicalAnd; +use PHPUnit\Framework\Constraint\LogicalNot; +use PHPUnit\Framework\Constraint\LogicalOr; +use PHPUnit\Framework\Constraint\LogicalXor; +use PHPUnit\Framework\Constraint\ObjectHasAttribute; +use PHPUnit\Framework\Constraint\RegularExpression; +use PHPUnit\Framework\Constraint\SameSize; +use PHPUnit\Framework\Constraint\StringContains; +use PHPUnit\Framework\Constraint\StringEndsWith; +use PHPUnit\Framework\Constraint\StringMatchesFormatDescription; +use PHPUnit\Framework\Constraint\StringStartsWith; +use PHPUnit\Framework\Constraint\TraversableContains; +use PHPUnit\Framework\Constraint\TraversableContainsOnly; +use PHPUnit\Util\InvalidArgumentHelper; +use PHPUnit\Util\Type; +use PHPUnit\Util\Xml; +use ReflectionClass; +use ReflectionException; +use ReflectionObject; +use Traversable; + +/** + * A set of assertion methods. + */ +abstract class Assert +{ + /** + * @var int + */ + private static $count = 0; + + /** + * Asserts that an array has a specified key. + * + * @param int|string $key + * @param array|ArrayAccess $array + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertArrayHasKey($key, $array, string $message = ''): void + { + if (!(\is_int($key) || \is_string($key))) { + throw InvalidArgumentHelper::factory( + 1, + 'integer or string' + ); + } + + if (!(\is_array($array) || $array instanceof ArrayAccess)) { + throw InvalidArgumentHelper::factory( + 2, + 'array or ArrayAccess' + ); + } + + $constraint = new ArrayHasKey($key); + + static::assertThat($array, $constraint, $message); + } + + /** + * Asserts that an array has a specified subset. + * + * @param array|ArrayAccess $subset + * @param array|ArrayAccess $array + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3494 + */ + public static function assertArraySubset($subset, $array, bool $checkForObjectIdentity = false, string $message = ''): void + { + if (!(\is_array($subset) || $subset instanceof ArrayAccess)) { + throw InvalidArgumentHelper::factory( + 1, + 'array or ArrayAccess' + ); + } + + if (!(\is_array($array) || $array instanceof ArrayAccess)) { + throw InvalidArgumentHelper::factory( + 2, + 'array or ArrayAccess' + ); + } + + $constraint = new ArraySubset($subset, $checkForObjectIdentity); + + static::assertThat($array, $constraint, $message); + } + + /** + * Asserts that an array does not have a specified key. + * + * @param int|string $key + * @param array|ArrayAccess $array + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertArrayNotHasKey($key, $array, string $message = ''): void + { + if (!(\is_int($key) || \is_string($key))) { + throw InvalidArgumentHelper::factory( + 1, + 'integer or string' + ); + } + + if (!(\is_array($array) || $array instanceof ArrayAccess)) { + throw InvalidArgumentHelper::factory( + 2, + 'array or ArrayAccess' + ); + } + + $constraint = new LogicalNot( + new ArrayHasKey($key) + ); + + static::assertThat($array, $constraint, $message); + } + + /** + * Asserts that a haystack contains a needle. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertContains($needle, $haystack, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void + { + if (\is_array($haystack) || + (\is_object($haystack) && $haystack instanceof Traversable)) { + $constraint = new TraversableContains( + $needle, + $checkForObjectIdentity, + $checkForNonObjectIdentity + ); + } elseif (\is_string($haystack)) { + if (!\is_string($needle)) { + throw InvalidArgumentHelper::factory( + 1, + 'string' + ); + } + + $constraint = new StringContains( + $needle, + $ignoreCase + ); + } else { + throw InvalidArgumentHelper::factory( + 2, + 'array, traversable or string' + ); + } + + static::assertThat($haystack, $constraint, $message); + } + + /** + * Asserts that a haystack that is stored in a static attribute of a class + * or an attribute of an object contains a needle. + * + * @param object|string $haystackClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeContains($needle, string $haystackAttributeName, $haystackClassOrObject, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void + { + static::assertContains( + $needle, + static::readAttribute($haystackClassOrObject, $haystackAttributeName), + $message, + $ignoreCase, + $checkForObjectIdentity, + $checkForNonObjectIdentity + ); + } + + /** + * Asserts that a haystack does not contain a needle. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotContains($needle, $haystack, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void + { + if (\is_array($haystack) || + (\is_object($haystack) && $haystack instanceof Traversable)) { + $constraint = new LogicalNot( + new TraversableContains( + $needle, + $checkForObjectIdentity, + $checkForNonObjectIdentity + ) + ); + } elseif (\is_string($haystack)) { + if (!\is_string($needle)) { + throw InvalidArgumentHelper::factory( + 1, + 'string' + ); + } + + $constraint = new LogicalNot( + new StringContains( + $needle, + $ignoreCase + ) + ); + } else { + throw InvalidArgumentHelper::factory( + 2, + 'array, traversable or string' + ); + } + + static::assertThat($haystack, $constraint, $message); + } + + /** + * Asserts that a haystack that is stored in a static attribute of a class + * or an attribute of an object does not contain a needle. + * + * @param object|string $haystackClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeNotContains($needle, string $haystackAttributeName, $haystackClassOrObject, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void + { + static::assertNotContains( + $needle, + static::readAttribute($haystackClassOrObject, $haystackAttributeName), + $message, + $ignoreCase, + $checkForObjectIdentity, + $checkForNonObjectIdentity + ); + } + + /** + * Asserts that a haystack contains only values of a given type. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertContainsOnly(string $type, iterable $haystack, ?bool $isNativeType = null, string $message = ''): void + { + if ($isNativeType === null) { + $isNativeType = Type::isType($type); + } + + static::assertThat( + $haystack, + new TraversableContainsOnly( + $type, + $isNativeType + ), + $message + ); + } + + /** + * Asserts that a haystack contains only instances of a given class name. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertContainsOnlyInstancesOf(string $className, iterable $haystack, string $message = ''): void + { + static::assertThat( + $haystack, + new TraversableContainsOnly( + $className, + false + ), + $message + ); + } + + /** + * Asserts that a haystack that is stored in a static attribute of a class + * or an attribute of an object contains only values of a given type. + * + * @param object|string $haystackClassOrObject + * @param bool $isNativeType + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeContainsOnly(string $type, string $haystackAttributeName, $haystackClassOrObject, ?bool $isNativeType = null, string $message = ''): void + { + static::assertContainsOnly( + $type, + static::readAttribute($haystackClassOrObject, $haystackAttributeName), + $isNativeType, + $message + ); + } + + /** + * Asserts that a haystack does not contain only values of a given type. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotContainsOnly(string $type, iterable $haystack, ?bool $isNativeType = null, string $message = ''): void + { + if ($isNativeType === null) { + $isNativeType = Type::isType($type); + } + + static::assertThat( + $haystack, + new LogicalNot( + new TraversableContainsOnly( + $type, + $isNativeType + ) + ), + $message + ); + } + + /** + * Asserts that a haystack that is stored in a static attribute of a class + * or an attribute of an object does not contain only values of a given + * type. + * + * @param object|string $haystackClassOrObject + * @param bool $isNativeType + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeNotContainsOnly(string $type, string $haystackAttributeName, $haystackClassOrObject, ?bool $isNativeType = null, string $message = ''): void + { + static::assertNotContainsOnly( + $type, + static::readAttribute($haystackClassOrObject, $haystackAttributeName), + $isNativeType, + $message + ); + } + + /** + * Asserts the number of elements of an array, Countable or Traversable. + * + * @param Countable|iterable $haystack + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertCount(int $expectedCount, $haystack, string $message = ''): void + { + if (!$haystack instanceof Countable && !\is_iterable($haystack)) { + throw InvalidArgumentHelper::factory(2, 'countable or iterable'); + } + + static::assertThat( + $haystack, + new Count($expectedCount), + $message + ); + } + + /** + * Asserts the number of elements of an array, Countable or Traversable + * that is stored in an attribute. + * + * @param object|string $haystackClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeCount(int $expectedCount, string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void + { + static::assertCount( + $expectedCount, + static::readAttribute($haystackClassOrObject, $haystackAttributeName), + $message + ); + } + + /** + * Asserts the number of elements of an array, Countable or Traversable. + * + * @param Countable|iterable $haystack + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotCount(int $expectedCount, $haystack, string $message = ''): void + { + if (!$haystack instanceof Countable && !\is_iterable($haystack)) { + throw InvalidArgumentHelper::factory(2, 'countable or iterable'); + } + + $constraint = new LogicalNot( + new Count($expectedCount) + ); + + static::assertThat($haystack, $constraint, $message); + } + + /** + * Asserts the number of elements of an array, Countable or Traversable + * that is stored in an attribute. + * + * @param object|string $haystackClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeNotCount(int $expectedCount, string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void + { + static::assertNotCount( + $expectedCount, + static::readAttribute($haystackClassOrObject, $haystackAttributeName), + $message + ); + } + + /** + * Asserts that two variables are equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertEquals($expected, $actual, string $message = '', float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): void + { + $constraint = new IsEqual( + $expected, + $delta, + $maxDepth, + $canonicalize, + $ignoreCase + ); + + static::assertThat($actual, $constraint, $message); + } + + /** + * Asserts that two variables are equal (canonicalizing). + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertEqualsCanonicalizing($expected, $actual, string $message = ''): void + { + $constraint = new IsEqual( + $expected, + 0.0, + 10, + true, + false + ); + + static::assertThat($actual, $constraint, $message); + } + + /** + * Asserts that two variables are equal (ignoring case). + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertEqualsIgnoringCase($expected, $actual, string $message = ''): void + { + $constraint = new IsEqual( + $expected, + 0.0, + 10, + false, + true + ); + + static::assertThat($actual, $constraint, $message); + } + + /** + * Asserts that two variables are equal (with delta). + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertEqualsWithDelta($expected, $actual, float $delta, string $message = ''): void + { + $constraint = new IsEqual( + $expected, + $delta + ); + + static::assertThat($actual, $constraint, $message); + } + + /** + * Asserts that a variable is equal to an attribute of an object. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeEquals($expected, string $actualAttributeName, $actualClassOrObject, string $message = '', float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): void + { + static::assertEquals( + $expected, + static::readAttribute($actualClassOrObject, $actualAttributeName), + $message, + $delta, + $maxDepth, + $canonicalize, + $ignoreCase + ); + } + + /** + * Asserts that two variables are not equal. + * + * @param float $delta + * @param int $maxDepth + * @param bool $canonicalize + * @param bool $ignoreCase + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotEquals($expected, $actual, string $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false): void + { + $constraint = new LogicalNot( + new IsEqual( + $expected, + $delta, + $maxDepth, + $canonicalize, + $ignoreCase + ) + ); + + static::assertThat($actual, $constraint, $message); + } + + /** + * Asserts that two variables are not equal (canonicalizing). + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotEqualsCanonicalizing($expected, $actual, string $message = ''): void + { + $constraint = new LogicalNot( + new IsEqual( + $expected, + 0.0, + 10, + true, + false + ) + ); + + static::assertThat($actual, $constraint, $message); + } + + /** + * Asserts that two variables are not equal (ignoring case). + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotEqualsIgnoringCase($expected, $actual, string $message = ''): void + { + $constraint = new LogicalNot( + new IsEqual( + $expected, + 0.0, + 10, + false, + true + ) + ); + + static::assertThat($actual, $constraint, $message); + } + + /** + * Asserts that two variables are not equal (with delta). + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotEqualsWithDelta($expected, $actual, float $delta, string $message = ''): void + { + $constraint = new LogicalNot( + new IsEqual( + $expected, + $delta + ) + ); + + static::assertThat($actual, $constraint, $message); + } + + /** + * Asserts that a variable is not equal to an attribute of an object. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeNotEquals($expected, string $actualAttributeName, $actualClassOrObject, string $message = '', float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): void + { + static::assertNotEquals( + $expected, + static::readAttribute($actualClassOrObject, $actualAttributeName), + $message, + $delta, + $maxDepth, + $canonicalize, + $ignoreCase + ); + } + + /** + * Asserts that a variable is empty. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertEmpty($actual, string $message = ''): void + { + static::assertThat($actual, static::isEmpty(), $message); + } + + /** + * Asserts that a static attribute of a class or an attribute of an object + * is empty. + * + * @param object|string $haystackClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeEmpty(string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void + { + static::assertEmpty( + static::readAttribute($haystackClassOrObject, $haystackAttributeName), + $message + ); + } + + /** + * Asserts that a variable is not empty. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotEmpty($actual, string $message = ''): void + { + static::assertThat($actual, static::logicalNot(static::isEmpty()), $message); + } + + /** + * Asserts that a static attribute of a class or an attribute of an object + * is not empty. + * + * @param object|string $haystackClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeNotEmpty(string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void + { + static::assertNotEmpty( + static::readAttribute($haystackClassOrObject, $haystackAttributeName), + $message + ); + } + + /** + * Asserts that a value is greater than another value. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertGreaterThan($expected, $actual, string $message = ''): void + { + static::assertThat($actual, static::greaterThan($expected), $message); + } + + /** + * Asserts that an attribute is greater than another value. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeGreaterThan($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void + { + static::assertGreaterThan( + $expected, + static::readAttribute($actualClassOrObject, $actualAttributeName), + $message + ); + } + + /** + * Asserts that a value is greater than or equal to another value. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertGreaterThanOrEqual($expected, $actual, string $message = ''): void + { + static::assertThat( + $actual, + static::greaterThanOrEqual($expected), + $message + ); + } + + /** + * Asserts that an attribute is greater than or equal to another value. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeGreaterThanOrEqual($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void + { + static::assertGreaterThanOrEqual( + $expected, + static::readAttribute($actualClassOrObject, $actualAttributeName), + $message + ); + } + + /** + * Asserts that a value is smaller than another value. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertLessThan($expected, $actual, string $message = ''): void + { + static::assertThat($actual, static::lessThan($expected), $message); + } + + /** + * Asserts that an attribute is smaller than another value. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeLessThan($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void + { + static::assertLessThan( + $expected, + static::readAttribute($actualClassOrObject, $actualAttributeName), + $message + ); + } + + /** + * Asserts that a value is smaller than or equal to another value. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertLessThanOrEqual($expected, $actual, string $message = ''): void + { + static::assertThat($actual, static::lessThanOrEqual($expected), $message); + } + + /** + * Asserts that an attribute is smaller than or equal to another value. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeLessThanOrEqual($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void + { + static::assertLessThanOrEqual( + $expected, + static::readAttribute($actualClassOrObject, $actualAttributeName), + $message + ); + } + + /** + * Asserts that the contents of one file is equal to the contents of another + * file. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertFileEquals(string $expected, string $actual, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void + { + static::assertFileExists($expected, $message); + static::assertFileExists($actual, $message); + + static::assertEquals( + \file_get_contents($expected), + \file_get_contents($actual), + $message, + 0, + 10, + $canonicalize, + $ignoreCase + ); + } + + /** + * Asserts that the contents of one file is not equal to the contents of + * another file. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertFileNotEquals(string $expected, string $actual, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void + { + static::assertFileExists($expected, $message); + static::assertFileExists($actual, $message); + + static::assertNotEquals( + \file_get_contents($expected), + \file_get_contents($actual), + $message, + 0, + 10, + $canonicalize, + $ignoreCase + ); + } + + /** + * Asserts that the contents of a string is equal + * to the contents of a file. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertStringEqualsFile(string $expectedFile, string $actualString, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void + { + static::assertFileExists($expectedFile, $message); + + /** @noinspection PhpUnitTestsInspection */ + static::assertEquals( + \file_get_contents($expectedFile), + $actualString, + $message, + 0, + 10, + $canonicalize, + $ignoreCase + ); + } + + /** + * Asserts that the contents of a string is not equal + * to the contents of a file. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertStringNotEqualsFile(string $expectedFile, string $actualString, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void + { + static::assertFileExists($expectedFile, $message); + + static::assertNotEquals( + \file_get_contents($expectedFile), + $actualString, + $message, + 0, + 10, + $canonicalize, + $ignoreCase + ); + } + + /** + * Asserts that a file/dir is readable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertIsReadable(string $filename, string $message = ''): void + { + static::assertThat($filename, new IsReadable, $message); + } + + /** + * Asserts that a file/dir exists and is not readable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotIsReadable(string $filename, string $message = ''): void + { + static::assertThat($filename, new LogicalNot(new IsReadable), $message); + } + + /** + * Asserts that a file/dir exists and is writable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertIsWritable(string $filename, string $message = ''): void + { + static::assertThat($filename, new IsWritable, $message); + } + + /** + * Asserts that a file/dir exists and is not writable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotIsWritable(string $filename, string $message = ''): void + { + static::assertThat($filename, new LogicalNot(new IsWritable), $message); + } + + /** + * Asserts that a directory exists. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertDirectoryExists(string $directory, string $message = ''): void + { + static::assertThat($directory, new DirectoryExists, $message); + } + + /** + * Asserts that a directory does not exist. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertDirectoryNotExists(string $directory, string $message = ''): void + { + static::assertThat($directory, new LogicalNot(new DirectoryExists), $message); + } + + /** + * Asserts that a directory exists and is readable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertDirectoryIsReadable(string $directory, string $message = ''): void + { + self::assertDirectoryExists($directory, $message); + self::assertIsReadable($directory, $message); + } + + /** + * Asserts that a directory exists and is not readable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertDirectoryNotIsReadable(string $directory, string $message = ''): void + { + self::assertDirectoryExists($directory, $message); + self::assertNotIsReadable($directory, $message); + } + + /** + * Asserts that a directory exists and is writable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertDirectoryIsWritable(string $directory, string $message = ''): void + { + self::assertDirectoryExists($directory, $message); + self::assertIsWritable($directory, $message); + } + + /** + * Asserts that a directory exists and is not writable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertDirectoryNotIsWritable(string $directory, string $message = ''): void + { + self::assertDirectoryExists($directory, $message); + self::assertNotIsWritable($directory, $message); + } + + /** + * Asserts that a file exists. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertFileExists(string $filename, string $message = ''): void + { + static::assertThat($filename, new FileExists, $message); + } + + /** + * Asserts that a file does not exist. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertFileNotExists(string $filename, string $message = ''): void + { + static::assertThat($filename, new LogicalNot(new FileExists), $message); + } + + /** + * Asserts that a file exists and is readable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertFileIsReadable(string $file, string $message = ''): void + { + self::assertFileExists($file, $message); + self::assertIsReadable($file, $message); + } + + /** + * Asserts that a file exists and is not readable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertFileNotIsReadable(string $file, string $message = ''): void + { + self::assertFileExists($file, $message); + self::assertNotIsReadable($file, $message); + } + + /** + * Asserts that a file exists and is writable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertFileIsWritable(string $file, string $message = ''): void + { + self::assertFileExists($file, $message); + self::assertIsWritable($file, $message); + } + + /** + * Asserts that a file exists and is not writable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertFileNotIsWritable(string $file, string $message = ''): void + { + self::assertFileExists($file, $message); + self::assertNotIsWritable($file, $message); + } + + /** + * Asserts that a condition is true. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertTrue($condition, string $message = ''): void + { + static::assertThat($condition, static::isTrue(), $message); + } + + /** + * Asserts that a condition is not true. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotTrue($condition, string $message = ''): void + { + static::assertThat($condition, static::logicalNot(static::isTrue()), $message); + } + + /** + * Asserts that a condition is false. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertFalse($condition, string $message = ''): void + { + static::assertThat($condition, static::isFalse(), $message); + } + + /** + * Asserts that a condition is not false. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotFalse($condition, string $message = ''): void + { + static::assertThat($condition, static::logicalNot(static::isFalse()), $message); + } + + /** + * Asserts that a variable is null. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNull($actual, string $message = ''): void + { + static::assertThat($actual, static::isNull(), $message); + } + + /** + * Asserts that a variable is not null. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotNull($actual, string $message = ''): void + { + static::assertThat($actual, static::logicalNot(static::isNull()), $message); + } + + /** + * Asserts that a variable is finite. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertFinite($actual, string $message = ''): void + { + static::assertThat($actual, static::isFinite(), $message); + } + + /** + * Asserts that a variable is infinite. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertInfinite($actual, string $message = ''): void + { + static::assertThat($actual, static::isInfinite(), $message); + } + + /** + * Asserts that a variable is nan. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNan($actual, string $message = ''): void + { + static::assertThat($actual, static::isNan(), $message); + } + + /** + * Asserts that a class has a specified attribute. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertClassHasAttribute(string $attributeName, string $className, string $message = ''): void + { + if (!self::isValidClassAttributeName($attributeName)) { + throw InvalidArgumentHelper::factory(1, 'valid attribute name'); + } + + if (!\class_exists($className)) { + throw InvalidArgumentHelper::factory(2, 'class name', $className); + } + + static::assertThat($className, new ClassHasAttribute($attributeName), $message); + } + + /** + * Asserts that a class does not have a specified attribute. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertClassNotHasAttribute(string $attributeName, string $className, string $message = ''): void + { + if (!self::isValidClassAttributeName($attributeName)) { + throw InvalidArgumentHelper::factory(1, 'valid attribute name'); + } + + if (!\class_exists($className)) { + throw InvalidArgumentHelper::factory(2, 'class name', $className); + } + + static::assertThat( + $className, + new LogicalNot( + new ClassHasAttribute($attributeName) + ), + $message + ); + } + + /** + * Asserts that a class has a specified static attribute. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertClassHasStaticAttribute(string $attributeName, string $className, string $message = ''): void + { + if (!self::isValidClassAttributeName($attributeName)) { + throw InvalidArgumentHelper::factory(1, 'valid attribute name'); + } + + if (!\class_exists($className)) { + throw InvalidArgumentHelper::factory(2, 'class name', $className); + } + + static::assertThat( + $className, + new ClassHasStaticAttribute($attributeName), + $message + ); + } + + /** + * Asserts that a class does not have a specified static attribute. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertClassNotHasStaticAttribute(string $attributeName, string $className, string $message = ''): void + { + if (!self::isValidClassAttributeName($attributeName)) { + throw InvalidArgumentHelper::factory(1, 'valid attribute name'); + } + + if (!\class_exists($className)) { + throw InvalidArgumentHelper::factory(2, 'class name', $className); + } + + static::assertThat( + $className, + new LogicalNot( + new ClassHasStaticAttribute($attributeName) + ), + $message + ); + } + + /** + * Asserts that an object has a specified attribute. + * + * @param object $object + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertObjectHasAttribute(string $attributeName, $object, string $message = ''): void + { + if (!self::isValidObjectAttributeName($attributeName)) { + throw InvalidArgumentHelper::factory(1, 'valid attribute name'); + } + + if (!\is_object($object)) { + throw InvalidArgumentHelper::factory(2, 'object'); + } + + static::assertThat( + $object, + new ObjectHasAttribute($attributeName), + $message + ); + } + + /** + * Asserts that an object does not have a specified attribute. + * + * @param object $object + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertObjectNotHasAttribute(string $attributeName, $object, string $message = ''): void + { + if (!self::isValidObjectAttributeName($attributeName)) { + throw InvalidArgumentHelper::factory(1, 'valid attribute name'); + } + + if (!\is_object($object)) { + throw InvalidArgumentHelper::factory(2, 'object'); + } + + static::assertThat( + $object, + new LogicalNot( + new ObjectHasAttribute($attributeName) + ), + $message + ); + } + + /** + * Asserts that two variables have the same type and value. + * Used on objects, it asserts that two variables reference + * the same object. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertSame($expected, $actual, string $message = ''): void + { + static::assertThat( + $actual, + new IsIdentical($expected), + $message + ); + } + + /** + * Asserts that a variable and an attribute of an object have the same type + * and value. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeSame($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void + { + static::assertSame( + $expected, + static::readAttribute($actualClassOrObject, $actualAttributeName), + $message + ); + } + + /** + * Asserts that two variables do not have the same type and value. + * Used on objects, it asserts that two variables do not reference + * the same object. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotSame($expected, $actual, string $message = ''): void + { + if (\is_bool($expected) && \is_bool($actual)) { + static::assertNotEquals($expected, $actual, $message); + } + + static::assertThat( + $actual, + new LogicalNot( + new IsIdentical($expected) + ), + $message + ); + } + + /** + * Asserts that a variable and an attribute of an object do not have the + * same type and value. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeNotSame($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void + { + static::assertNotSame( + $expected, + static::readAttribute($actualClassOrObject, $actualAttributeName), + $message + ); + } + + /** + * Asserts that a variable is of a given type. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertInstanceOf(string $expected, $actual, string $message = ''): void + { + if (!\class_exists($expected) && !\interface_exists($expected)) { + throw InvalidArgumentHelper::factory(1, 'class or interface name'); + } + + static::assertThat( + $actual, + new IsInstanceOf($expected), + $message + ); + } + + /** + * Asserts that an attribute is of a given type. + * + * @param object|string $classOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeInstanceOf(string $expected, string $attributeName, $classOrObject, string $message = ''): void + { + static::assertInstanceOf( + $expected, + static::readAttribute($classOrObject, $attributeName), + $message + ); + } + + /** + * Asserts that a variable is not of a given type. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotInstanceOf(string $expected, $actual, string $message = ''): void + { + if (!\class_exists($expected) && !\interface_exists($expected)) { + throw InvalidArgumentHelper::factory(1, 'class or interface name'); + } + + static::assertThat( + $actual, + new LogicalNot( + new IsInstanceOf($expected) + ), + $message + ); + } + + /** + * Asserts that an attribute is of a given type. + * + * @param object|string $classOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeNotInstanceOf(string $expected, string $attributeName, $classOrObject, string $message = ''): void + { + static::assertNotInstanceOf( + $expected, + static::readAttribute($classOrObject, $attributeName), + $message + ); + } + + /** + * Asserts that a variable is of a given type. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3369 + */ + public static function assertInternalType(string $expected, $actual, string $message = ''): void + { + static::assertThat( + $actual, + new IsType($expected), + $message + ); + } + + /** + * Asserts that an attribute is of a given type. + * + * @param object|string $classOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeInternalType(string $expected, string $attributeName, $classOrObject, string $message = ''): void + { + static::assertInternalType( + $expected, + static::readAttribute($classOrObject, $attributeName), + $message + ); + } + + /** + * Asserts that a variable is of type array. + */ + public static function assertIsArray($actual, string $message = ''): void + { + static::assertThat( + $actual, + new IsType(IsType::TYPE_ARRAY), + $message + ); + } + + /** + * Asserts that a variable is of type bool. + */ + public static function assertIsBool($actual, string $message = ''): void + { + static::assertThat( + $actual, + new IsType(IsType::TYPE_BOOL), + $message + ); + } + + /** + * Asserts that a variable is of type float. + */ + public static function assertIsFloat($actual, string $message = ''): void + { + static::assertThat( + $actual, + new IsType(IsType::TYPE_FLOAT), + $message + ); + } + + /** + * Asserts that a variable is of type int. + */ + public static function assertIsInt($actual, string $message = ''): void + { + static::assertThat( + $actual, + new IsType(IsType::TYPE_INT), + $message + ); + } + + /** + * Asserts that a variable is of type numeric. + */ + public static function assertIsNumeric($actual, string $message = ''): void + { + static::assertThat( + $actual, + new IsType(IsType::TYPE_NUMERIC), + $message + ); + } + + /** + * Asserts that a variable is of type object. + */ + public static function assertIsObject($actual, string $message = ''): void + { + static::assertThat( + $actual, + new IsType(IsType::TYPE_OBJECT), + $message + ); + } + + /** + * Asserts that a variable is of type resource. + */ + public static function assertIsResource($actual, string $message = ''): void + { + static::assertThat( + $actual, + new IsType(IsType::TYPE_RESOURCE), + $message + ); + } + + /** + * Asserts that a variable is of type string. + */ + public static function assertIsString($actual, string $message = ''): void + { + static::assertThat( + $actual, + new IsType(IsType::TYPE_STRING), + $message + ); + } + + /** + * Asserts that a variable is of type scalar. + */ + public static function assertIsScalar($actual, string $message = ''): void + { + static::assertThat( + $actual, + new IsType(IsType::TYPE_SCALAR), + $message + ); + } + + /** + * Asserts that a variable is of type callable. + */ + public static function assertIsCallable($actual, string $message = ''): void + { + static::assertThat( + $actual, + new IsType(IsType::TYPE_CALLABLE), + $message + ); + } + + /** + * Asserts that a variable is of type iterable. + */ + public static function assertIsIterable($actual, string $message = ''): void + { + static::assertThat( + $actual, + new IsType(IsType::TYPE_ITERABLE), + $message + ); + } + + /** + * Asserts that a variable is not of a given type. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3369 + */ + public static function assertNotInternalType(string $expected, $actual, string $message = ''): void + { + static::assertThat( + $actual, + new LogicalNot( + new IsType($expected) + ), + $message + ); + } + + /** + * Asserts that a variable is not of type array. + */ + public static function assertIsNotArray($actual, string $message = ''): void + { + static::assertThat( + $actual, + new LogicalNot(new IsType(IsType::TYPE_ARRAY)), + $message + ); + } + + /** + * Asserts that a variable is not of type bool. + */ + public static function assertIsNotBool($actual, string $message = ''): void + { + static::assertThat( + $actual, + new LogicalNot(new IsType(IsType::TYPE_BOOL)), + $message + ); + } + + /** + * Asserts that a variable is not of type float. + */ + public static function assertIsNotFloat($actual, string $message = ''): void + { + static::assertThat( + $actual, + new LogicalNot(new IsType(IsType::TYPE_FLOAT)), + $message + ); + } + + /** + * Asserts that a variable is not of type int. + */ + public static function assertIsNotInt($actual, string $message = ''): void + { + static::assertThat( + $actual, + new LogicalNot(new IsType(IsType::TYPE_INT)), + $message + ); + } + + /** + * Asserts that a variable is not of type numeric. + */ + public static function assertIsNotNumeric($actual, string $message = ''): void + { + static::assertThat( + $actual, + new LogicalNot(new IsType(IsType::TYPE_NUMERIC)), + $message + ); + } + + /** + * Asserts that a variable is not of type object. + */ + public static function assertIsNotObject($actual, string $message = ''): void + { + static::assertThat( + $actual, + new LogicalNot(new IsType(IsType::TYPE_OBJECT)), + $message + ); + } + + /** + * Asserts that a variable is not of type resource. + */ + public static function assertIsNotResource($actual, string $message = ''): void + { + static::assertThat( + $actual, + new LogicalNot(new IsType(IsType::TYPE_RESOURCE)), + $message + ); + } + + /** + * Asserts that a variable is not of type string. + */ + public static function assertIsNotString($actual, string $message = ''): void + { + static::assertThat( + $actual, + new LogicalNot(new IsType(IsType::TYPE_STRING)), + $message + ); + } + + /** + * Asserts that a variable is not of type scalar. + */ + public static function assertIsNotScalar($actual, string $message = ''): void + { + static::assertThat( + $actual, + new LogicalNot(new IsType(IsType::TYPE_SCALAR)), + $message + ); + } + + /** + * Asserts that a variable is not of type callable. + */ + public static function assertIsNotCallable($actual, string $message = ''): void + { + static::assertThat( + $actual, + new LogicalNot(new IsType(IsType::TYPE_CALLABLE)), + $message + ); + } + + /** + * Asserts that a variable is not of type iterable. + */ + public static function assertIsNotIterable($actual, string $message = ''): void + { + static::assertThat( + $actual, + new LogicalNot(new IsType(IsType::TYPE_ITERABLE)), + $message + ); + } + + /** + * Asserts that an attribute is of a given type. + * + * @param object|string $classOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function assertAttributeNotInternalType(string $expected, string $attributeName, $classOrObject, string $message = ''): void + { + static::assertNotInternalType( + $expected, + static::readAttribute($classOrObject, $attributeName), + $message + ); + } + + /** + * Asserts that a string matches a given regular expression. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertRegExp(string $pattern, string $string, string $message = ''): void + { + static::assertThat($string, new RegularExpression($pattern), $message); + } + + /** + * Asserts that a string does not match a given regular expression. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotRegExp(string $pattern, string $string, string $message = ''): void + { + static::assertThat( + $string, + new LogicalNot( + new RegularExpression($pattern) + ), + $message + ); + } + + /** + * Assert that the size of two arrays (or `Countable` or `Traversable` objects) + * is the same. + * + * @param Countable|iterable $expected + * @param Countable|iterable $actual + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertSameSize($expected, $actual, string $message = ''): void + { + if (!$expected instanceof Countable && !\is_iterable($expected)) { + throw InvalidArgumentHelper::factory(1, 'countable or iterable'); + } + + if (!$actual instanceof Countable && !\is_iterable($actual)) { + throw InvalidArgumentHelper::factory(2, 'countable or iterable'); + } + + static::assertThat( + $actual, + new SameSize($expected), + $message + ); + } + + /** + * Assert that the size of two arrays (or `Countable` or `Traversable` objects) + * is not the same. + * + * @param Countable|iterable $expected + * @param Countable|iterable $actual + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertNotSameSize($expected, $actual, string $message = ''): void + { + if (!$expected instanceof Countable && !\is_iterable($expected)) { + throw InvalidArgumentHelper::factory(1, 'countable or iterable'); + } + + if (!$actual instanceof Countable && !\is_iterable($actual)) { + throw InvalidArgumentHelper::factory(2, 'countable or iterable'); + } + + static::assertThat( + $actual, + new LogicalNot( + new SameSize($expected) + ), + $message + ); + } + + /** + * Asserts that a string matches a given format string. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertStringMatchesFormat(string $format, string $string, string $message = ''): void + { + static::assertThat($string, new StringMatchesFormatDescription($format), $message); + } + + /** + * Asserts that a string does not match a given format string. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertStringNotMatchesFormat(string $format, string $string, string $message = ''): void + { + static::assertThat( + $string, + new LogicalNot( + new StringMatchesFormatDescription($format) + ), + $message + ); + } + + /** + * Asserts that a string matches a given format file. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertStringMatchesFormatFile(string $formatFile, string $string, string $message = ''): void + { + static::assertFileExists($formatFile, $message); + + static::assertThat( + $string, + new StringMatchesFormatDescription( + \file_get_contents($formatFile) + ), + $message + ); + } + + /** + * Asserts that a string does not match a given format string. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertStringNotMatchesFormatFile(string $formatFile, string $string, string $message = ''): void + { + static::assertFileExists($formatFile, $message); + + static::assertThat( + $string, + new LogicalNot( + new StringMatchesFormatDescription( + \file_get_contents($formatFile) + ) + ), + $message + ); + } + + /** + * Asserts that a string starts with a given prefix. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertStringStartsWith(string $prefix, string $string, string $message = ''): void + { + static::assertThat($string, new StringStartsWith($prefix), $message); + } + + /** + * Asserts that a string starts not with a given prefix. + * + * @param string $prefix + * @param string $string + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertStringStartsNotWith($prefix, $string, string $message = ''): void + { + static::assertThat( + $string, + new LogicalNot( + new StringStartsWith($prefix) + ), + $message + ); + } + + public static function assertStringContainsString(string $needle, string $haystack, string $message = ''): void + { + $constraint = new StringContains($needle, false); + + static::assertThat($haystack, $constraint, $message); + } + + public static function assertStringContainsStringIgnoringCase(string $needle, string $haystack, string $message = ''): void + { + $constraint = new StringContains($needle, true); + + static::assertThat($haystack, $constraint, $message); + } + + public static function assertStringNotContainsString(string $needle, string $haystack, string $message = ''): void + { + $constraint = new LogicalNot(new StringContains($needle)); + + static::assertThat($haystack, $constraint, $message); + } + + public static function assertStringNotContainsStringIgnoringCase(string $needle, string $haystack, string $message = ''): void + { + $constraint = new LogicalNot(new StringContains($needle, true)); + + static::assertThat($haystack, $constraint, $message); + } + + /** + * Asserts that a string ends with a given suffix. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertStringEndsWith(string $suffix, string $string, string $message = ''): void + { + static::assertThat($string, new StringEndsWith($suffix), $message); + } + + /** + * Asserts that a string ends not with a given suffix. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertStringEndsNotWith(string $suffix, string $string, string $message = ''): void + { + static::assertThat( + $string, + new LogicalNot( + new StringEndsWith($suffix) + ), + $message + ); + } + + /** + * Asserts that two XML files are equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertXmlFileEqualsXmlFile(string $expectedFile, string $actualFile, string $message = ''): void + { + $expected = Xml::loadFile($expectedFile); + $actual = Xml::loadFile($actualFile); + + static::assertEquals($expected, $actual, $message); + } + + /** + * Asserts that two XML files are not equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertXmlFileNotEqualsXmlFile(string $expectedFile, string $actualFile, string $message = ''): void + { + $expected = Xml::loadFile($expectedFile); + $actual = Xml::loadFile($actualFile); + + static::assertNotEquals($expected, $actual, $message); + } + + /** + * Asserts that two XML documents are equal. + * + * @param DOMDocument|string $actualXml + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertXmlStringEqualsXmlFile(string $expectedFile, $actualXml, string $message = ''): void + { + $expected = Xml::loadFile($expectedFile); + $actual = Xml::load($actualXml); + + static::assertEquals($expected, $actual, $message); + } + + /** + * Asserts that two XML documents are not equal. + * + * @param DOMDocument|string $actualXml + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertXmlStringNotEqualsXmlFile(string $expectedFile, $actualXml, string $message = ''): void + { + $expected = Xml::loadFile($expectedFile); + $actual = Xml::load($actualXml); + + static::assertNotEquals($expected, $actual, $message); + } + + /** + * Asserts that two XML documents are equal. + * + * @param DOMDocument|string $expectedXml + * @param DOMDocument|string $actualXml + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertXmlStringEqualsXmlString($expectedXml, $actualXml, string $message = ''): void + { + $expected = Xml::load($expectedXml); + $actual = Xml::load($actualXml); + + static::assertEquals($expected, $actual, $message); + } + + /** + * Asserts that two XML documents are not equal. + * + * @param DOMDocument|string $expectedXml + * @param DOMDocument|string $actualXml + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertXmlStringNotEqualsXmlString($expectedXml, $actualXml, string $message = ''): void + { + $expected = Xml::load($expectedXml); + $actual = Xml::load($actualXml); + + static::assertNotEquals($expected, $actual, $message); + } + + /** + * Asserts that a hierarchy of DOMElements matches. + * + * @throws AssertionFailedError + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertEqualXMLStructure(DOMElement $expectedElement, DOMElement $actualElement, bool $checkAttributes = false, string $message = ''): void + { + $expectedElement = Xml::import($expectedElement); + $actualElement = Xml::import($actualElement); + + static::assertSame( + $expectedElement->tagName, + $actualElement->tagName, + $message + ); + + if ($checkAttributes) { + static::assertSame( + $expectedElement->attributes->length, + $actualElement->attributes->length, + \sprintf( + '%s%sNumber of attributes on node "%s" does not match', + $message, + !empty($message) ? "\n" : '', + $expectedElement->tagName + ) + ); + + for ($i = 0; $i < $expectedElement->attributes->length; $i++) { + /** @var \DOMAttr $expectedAttribute */ + $expectedAttribute = $expectedElement->attributes->item($i); + + /** @var \DOMAttr $actualAttribute */ + $actualAttribute = $actualElement->attributes->getNamedItem( + $expectedAttribute->name + ); + + if (!$actualAttribute) { + static::fail( + \sprintf( + '%s%sCould not find attribute "%s" on node "%s"', + $message, + !empty($message) ? "\n" : '', + $expectedAttribute->name, + $expectedElement->tagName + ) + ); + } + } + } + + Xml::removeCharacterDataNodes($expectedElement); + Xml::removeCharacterDataNodes($actualElement); + + static::assertSame( + $expectedElement->childNodes->length, + $actualElement->childNodes->length, + \sprintf( + '%s%sNumber of child nodes of "%s" differs', + $message, + !empty($message) ? "\n" : '', + $expectedElement->tagName + ) + ); + + for ($i = 0; $i < $expectedElement->childNodes->length; $i++) { + static::assertEqualXMLStructure( + $expectedElement->childNodes->item($i), + $actualElement->childNodes->item($i), + $checkAttributes, + $message + ); + } + } + + /** + * Evaluates a PHPUnit\Framework\Constraint matcher object. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertThat($value, Constraint $constraint, string $message = ''): void + { + self::$count += \count($constraint); + + $constraint->evaluate($value, $message); + } + + /** + * Asserts that a string is a valid JSON string. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertJson(string $actualJson, string $message = ''): void + { + static::assertThat($actualJson, static::isJson(), $message); + } + + /** + * Asserts that two given JSON encoded objects or arrays are equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertJsonStringEqualsJsonString(string $expectedJson, string $actualJson, string $message = ''): void + { + static::assertJson($expectedJson, $message); + static::assertJson($actualJson, $message); + + static::assertThat($actualJson, new JsonMatches($expectedJson), $message); + } + + /** + * Asserts that two given JSON encoded objects or arrays are not equal. + * + * @param string $expectedJson + * @param string $actualJson + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertJsonStringNotEqualsJsonString($expectedJson, $actualJson, string $message = ''): void + { + static::assertJson($expectedJson, $message); + static::assertJson($actualJson, $message); + + static::assertThat( + $actualJson, + new LogicalNot( + new JsonMatches($expectedJson) + ), + $message + ); + } + + /** + * Asserts that the generated JSON encoded object and the content of the given file are equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertJsonStringEqualsJsonFile(string $expectedFile, string $actualJson, string $message = ''): void + { + static::assertFileExists($expectedFile, $message); + $expectedJson = \file_get_contents($expectedFile); + + static::assertJson($expectedJson, $message); + static::assertJson($actualJson, $message); + + static::assertThat($actualJson, new JsonMatches($expectedJson), $message); + } + + /** + * Asserts that the generated JSON encoded object and the content of the given file are not equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertJsonStringNotEqualsJsonFile(string $expectedFile, string $actualJson, string $message = ''): void + { + static::assertFileExists($expectedFile, $message); + $expectedJson = \file_get_contents($expectedFile); + + static::assertJson($expectedJson, $message); + static::assertJson($actualJson, $message); + + static::assertThat( + $actualJson, + new LogicalNot( + new JsonMatches($expectedJson) + ), + $message + ); + } + + /** + * Asserts that two JSON files are equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertJsonFileEqualsJsonFile(string $expectedFile, string $actualFile, string $message = ''): void + { + static::assertFileExists($expectedFile, $message); + static::assertFileExists($actualFile, $message); + + $actualJson = \file_get_contents($actualFile); + $expectedJson = \file_get_contents($expectedFile); + + static::assertJson($expectedJson, $message); + static::assertJson($actualJson, $message); + + $constraintExpected = new JsonMatches( + $expectedJson + ); + + $constraintActual = new JsonMatches($actualJson); + + static::assertThat($expectedJson, $constraintActual, $message); + static::assertThat($actualJson, $constraintExpected, $message); + } + + /** + * Asserts that two JSON files are not equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public static function assertJsonFileNotEqualsJsonFile(string $expectedFile, string $actualFile, string $message = ''): void + { + static::assertFileExists($expectedFile, $message); + static::assertFileExists($actualFile, $message); + + $actualJson = \file_get_contents($actualFile); + $expectedJson = \file_get_contents($expectedFile); + + static::assertJson($expectedJson, $message); + static::assertJson($actualJson, $message); + + $constraintExpected = new JsonMatches( + $expectedJson + ); + + $constraintActual = new JsonMatches($actualJson); + + static::assertThat($expectedJson, new LogicalNot($constraintActual), $message); + static::assertThat($actualJson, new LogicalNot($constraintExpected), $message); + } + + public static function logicalAnd(): LogicalAnd + { + $constraints = \func_get_args(); + + $constraint = new LogicalAnd; + $constraint->setConstraints($constraints); + + return $constraint; + } + + public static function logicalOr(): LogicalOr + { + $constraints = \func_get_args(); + + $constraint = new LogicalOr; + $constraint->setConstraints($constraints); + + return $constraint; + } + + public static function logicalNot(Constraint $constraint): LogicalNot + { + return new LogicalNot($constraint); + } + + public static function logicalXor(): LogicalXor + { + $constraints = \func_get_args(); + + $constraint = new LogicalXor; + $constraint->setConstraints($constraints); + + return $constraint; + } + + public static function anything(): IsAnything + { + return new IsAnything; + } + + public static function isTrue(): IsTrue + { + return new IsTrue; + } + + public static function callback(callable $callback): Callback + { + return new Callback($callback); + } + + public static function isFalse(): IsFalse + { + return new IsFalse; + } + + public static function isJson(): IsJson + { + return new IsJson; + } + + public static function isNull(): IsNull + { + return new IsNull; + } + + public static function isFinite(): IsFinite + { + return new IsFinite; + } + + public static function isInfinite(): IsInfinite + { + return new IsInfinite; + } + + public static function isNan(): IsNan + { + return new IsNan; + } + + /** + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function attribute(Constraint $constraint, string $attributeName): Attribute + { + return new Attribute($constraint, $attributeName); + } + + public static function contains($value, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): TraversableContains + { + return new TraversableContains($value, $checkForObjectIdentity, $checkForNonObjectIdentity); + } + + public static function containsOnly(string $type): TraversableContainsOnly + { + return new TraversableContainsOnly($type); + } + + public static function containsOnlyInstancesOf(string $className): TraversableContainsOnly + { + return new TraversableContainsOnly($className, false); + } + + /** + * @param int|string $key + */ + public static function arrayHasKey($key): ArrayHasKey + { + return new ArrayHasKey($key); + } + + public static function equalTo($value, float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): IsEqual + { + return new IsEqual($value, $delta, $maxDepth, $canonicalize, $ignoreCase); + } + + /** + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function attributeEqualTo(string $attributeName, $value, float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): Attribute + { + return static::attribute( + static::equalTo( + $value, + $delta, + $maxDepth, + $canonicalize, + $ignoreCase + ), + $attributeName + ); + } + + public static function isEmpty(): IsEmpty + { + return new IsEmpty; + } + + public static function isWritable(): IsWritable + { + return new IsWritable; + } + + public static function isReadable(): IsReadable + { + return new IsReadable; + } + + public static function directoryExists(): DirectoryExists + { + return new DirectoryExists; + } + + public static function fileExists(): FileExists + { + return new FileExists; + } + + public static function greaterThan($value): GreaterThan + { + return new GreaterThan($value); + } + + public static function greaterThanOrEqual($value): LogicalOr + { + return static::logicalOr( + new IsEqual($value), + new GreaterThan($value) + ); + } + + public static function classHasAttribute(string $attributeName): ClassHasAttribute + { + return new ClassHasAttribute($attributeName); + } + + public static function classHasStaticAttribute(string $attributeName): ClassHasStaticAttribute + { + return new ClassHasStaticAttribute($attributeName); + } + + public static function objectHasAttribute($attributeName): ObjectHasAttribute + { + return new ObjectHasAttribute($attributeName); + } + + public static function identicalTo($value): IsIdentical + { + return new IsIdentical($value); + } + + public static function isInstanceOf(string $className): IsInstanceOf + { + return new IsInstanceOf($className); + } + + public static function isType(string $type): IsType + { + return new IsType($type); + } + + public static function lessThan($value): LessThan + { + return new LessThan($value); + } + + public static function lessThanOrEqual($value): LogicalOr + { + return static::logicalOr( + new IsEqual($value), + new LessThan($value) + ); + } + + public static function matchesRegularExpression(string $pattern): RegularExpression + { + return new RegularExpression($pattern); + } + + public static function matches(string $string): StringMatchesFormatDescription + { + return new StringMatchesFormatDescription($string); + } + + public static function stringStartsWith($prefix): StringStartsWith + { + return new StringStartsWith($prefix); + } + + public static function stringContains(string $string, bool $case = true): StringContains + { + return new StringContains($string, $case); + } + + public static function stringEndsWith(string $suffix): StringEndsWith + { + return new StringEndsWith($suffix); + } + + public static function countOf(int $count): Count + { + return new Count($count); + } + + /** + * Fails a test with the given message. + * + * @throws AssertionFailedError + */ + public static function fail(string $message = ''): void + { + self::$count++; + + throw new AssertionFailedError($message); + } + + /** + * Returns the value of an attribute of a class or an object. + * This also works for attributes that are declared protected or private. + * + * @param object|string $classOrObject + * + * @throws Exception + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function readAttribute($classOrObject, string $attributeName) + { + if (!self::isValidClassAttributeName($attributeName)) { + throw InvalidArgumentHelper::factory(2, 'valid attribute name'); + } + + if (\is_string($classOrObject)) { + if (!\class_exists($classOrObject)) { + throw InvalidArgumentHelper::factory( + 1, + 'class name' + ); + } + + return static::getStaticAttribute( + $classOrObject, + $attributeName + ); + } + + if (\is_object($classOrObject)) { + return static::getObjectAttribute( + $classOrObject, + $attributeName + ); + } + + throw InvalidArgumentHelper::factory( + 1, + 'class name or object' + ); + } + + /** + * Returns the value of a static attribute. + * This also works for attributes that are declared protected or private. + * + * @throws Exception + * @throws ReflectionException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function getStaticAttribute(string $className, string $attributeName) + { + if (!\class_exists($className)) { + throw InvalidArgumentHelper::factory(1, 'class name'); + } + + if (!self::isValidClassAttributeName($attributeName)) { + throw InvalidArgumentHelper::factory(2, 'valid attribute name'); + } + + $class = new ReflectionClass($className); + + while ($class) { + $attributes = $class->getStaticProperties(); + + if (\array_key_exists($attributeName, $attributes)) { + return $attributes[$attributeName]; + } + + $class = $class->getParentClass(); + } + + throw new Exception( + \sprintf( + 'Attribute "%s" not found in class.', + $attributeName + ) + ); + } + + /** + * Returns the value of an object's attribute. + * This also works for attributes that are declared protected or private. + * + * @param object $object + * + * @throws Exception + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3338 + */ + public static function getObjectAttribute($object, string $attributeName) + { + if (!\is_object($object)) { + throw InvalidArgumentHelper::factory(1, 'object'); + } + + if (!self::isValidClassAttributeName($attributeName)) { + throw InvalidArgumentHelper::factory(2, 'valid attribute name'); + } + + try { + $reflector = new ReflectionObject($object); + + do { + try { + $attribute = $reflector->getProperty($attributeName); + + if (!$attribute || $attribute->isPublic()) { + return $object->$attributeName; + } + + $attribute->setAccessible(true); + $value = $attribute->getValue($object); + $attribute->setAccessible(false); + + return $value; + } catch (ReflectionException $e) { + } + } while ($reflector = $reflector->getParentClass()); + } catch (ReflectionException $e) { + } + + throw new Exception( + \sprintf( + 'Attribute "%s" not found in object.', + $attributeName + ) + ); + } + + /** + * Mark the test as incomplete. + * + * @throws IncompleteTestError + */ + public static function markTestIncomplete(string $message = ''): void + { + throw new IncompleteTestError($message); + } + + /** + * Mark the test as skipped. + * + * @throws SkippedTestError + */ + public static function markTestSkipped(string $message = ''): void + { + throw new SkippedTestError($message); + } + + /** + * Return the current assertion count. + */ + public static function getCount(): int + { + return self::$count; + } + + /** + * Reset the assertion counter. + */ + public static function resetCount(): void + { + self::$count = 0; + } + + private static function isValidObjectAttributeName(string $attributeName): bool + { + return \preg_match('/[^\x00-\x1f\x7f-\x9f]+/', $attributeName); + } + + private static function isValidClassAttributeName(string $attributeName): bool + { + return \preg_match('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/', $attributeName); + } + + private static function createWarning(string $warning): void + { + foreach (\debug_backtrace() as $step) { + if (isset($step['object']) && $step['object'] instanceof TestCase) { + $step['object']->addWarning($warning); + + break; + } + } + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php b/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php new file mode 100644 index 00000000..ba6f79f6 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php @@ -0,0 +1,1668 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use PHPUnit\Framework\Assert; +use PHPUnit\Framework\Constraint\ArrayHasKey; +use PHPUnit\Framework\Constraint\Attribute; +use PHPUnit\Framework\Constraint\Callback; +use PHPUnit\Framework\Constraint\ClassHasAttribute; +use PHPUnit\Framework\Constraint\ClassHasStaticAttribute; +use PHPUnit\Framework\Constraint\Constraint; +use PHPUnit\Framework\Constraint\Count; +use PHPUnit\Framework\Constraint\DirectoryExists; +use PHPUnit\Framework\Constraint\FileExists; +use PHPUnit\Framework\Constraint\GreaterThan; +use PHPUnit\Framework\Constraint\IsAnything; +use PHPUnit\Framework\Constraint\IsEmpty; +use PHPUnit\Framework\Constraint\IsEqual; +use PHPUnit\Framework\Constraint\IsFalse; +use PHPUnit\Framework\Constraint\IsFinite; +use PHPUnit\Framework\Constraint\IsIdentical; +use PHPUnit\Framework\Constraint\IsInfinite; +use PHPUnit\Framework\Constraint\IsInstanceOf; +use PHPUnit\Framework\Constraint\IsJson; +use PHPUnit\Framework\Constraint\IsNan; +use PHPUnit\Framework\Constraint\IsNull; +use PHPUnit\Framework\Constraint\IsReadable; +use PHPUnit\Framework\Constraint\IsTrue; +use PHPUnit\Framework\Constraint\IsType; +use PHPUnit\Framework\Constraint\IsWritable; +use PHPUnit\Framework\Constraint\LessThan; +use PHPUnit\Framework\Constraint\LogicalAnd; +use PHPUnit\Framework\Constraint\LogicalNot; +use PHPUnit\Framework\Constraint\LogicalOr; +use PHPUnit\Framework\Constraint\LogicalXor; +use PHPUnit\Framework\Constraint\ObjectHasAttribute; +use PHPUnit\Framework\Constraint\RegularExpression; +use PHPUnit\Framework\Constraint\StringContains; +use PHPUnit\Framework\Constraint\StringEndsWith; +use PHPUnit\Framework\Constraint\StringMatchesFormatDescription; +use PHPUnit\Framework\Constraint\StringStartsWith; +use PHPUnit\Framework\Constraint\TraversableContains; +use PHPUnit\Framework\Constraint\TraversableContainsOnly; +use PHPUnit\Framework\ExpectationFailedException; +use PHPUnit\Framework\MockObject\Matcher\AnyInvokedCount as AnyInvokedCountMatcher; +use PHPUnit\Framework\MockObject\Matcher\InvokedAtIndex as InvokedAtIndexMatcher; +use PHPUnit\Framework\MockObject\Matcher\InvokedAtLeastCount as InvokedAtLeastCountMatcher; +use PHPUnit\Framework\MockObject\Matcher\InvokedAtLeastOnce as InvokedAtLeastOnceMatcher; +use PHPUnit\Framework\MockObject\Matcher\InvokedAtMostCount as InvokedAtMostCountMatcher; +use PHPUnit\Framework\MockObject\Matcher\InvokedCount as InvokedCountMatcher; +use PHPUnit\Framework\MockObject\Stub\ConsecutiveCalls as ConsecutiveCallsStub; +use PHPUnit\Framework\MockObject\Stub\Exception as ExceptionStub; +use PHPUnit\Framework\MockObject\Stub\ReturnArgument as ReturnArgumentStub; +use PHPUnit\Framework\MockObject\Stub\ReturnCallback as ReturnCallbackStub; +use PHPUnit\Framework\MockObject\Stub\ReturnSelf as ReturnSelfStub; +use PHPUnit\Framework\MockObject\Stub\ReturnStub; +use PHPUnit\Framework\MockObject\Stub\ReturnValueMap as ReturnValueMapStub; + +/** + * Asserts that an array has a specified key. + * + * @param int|string $key + * @param array|ArrayAccess $array + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertArrayHasKey($key, $array, string $message = ''): void +{ + Assert::assertArrayHasKey(...\func_get_args()); +} + +/** + * Asserts that an array has a specified subset. + * + * @param array|ArrayAccess $subset + * @param array|ArrayAccess $array + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3494 + */ +function assertArraySubset($subset, $array, bool $checkForObjectIdentity = false, string $message = ''): void +{ + Assert::assertArraySubset(...\func_get_args()); +} + +/** + * Asserts that an array does not have a specified key. + * + * @param int|string $key + * @param array|ArrayAccess $array + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertArrayNotHasKey($key, $array, string $message = ''): void +{ + Assert::assertArrayNotHasKey(...\func_get_args()); +} + +/** + * Asserts that a haystack contains a needle. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertContains($needle, $haystack, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void +{ + Assert::assertContains(...\func_get_args()); +} + +/** + * Asserts that a haystack that is stored in a static attribute of a class + * or an attribute of an object contains a needle. + * + * @param object|string $haystackClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeContains($needle, string $haystackAttributeName, $haystackClassOrObject, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void +{ + Assert::assertAttributeContains(...\func_get_args()); +} + +/** + * Asserts that a haystack does not contain a needle. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotContains($needle, $haystack, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void +{ + Assert::assertNotContains(...\func_get_args()); +} + +/** + * Asserts that a haystack that is stored in a static attribute of a class + * or an attribute of an object does not contain a needle. + * + * @param object|string $haystackClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeNotContains($needle, string $haystackAttributeName, $haystackClassOrObject, string $message = '', bool $ignoreCase = false, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): void +{ + Assert::assertAttributeNotContains(...\func_get_args()); +} + +/** + * Asserts that a haystack contains only values of a given type. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertContainsOnly(string $type, iterable $haystack, ?bool $isNativeType = null, string $message = ''): void +{ + Assert::assertContainsOnly(...\func_get_args()); +} + +/** + * Asserts that a haystack contains only instances of a given class name. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertContainsOnlyInstancesOf(string $className, iterable $haystack, string $message = ''): void +{ + Assert::assertContainsOnlyInstancesOf(...\func_get_args()); +} + +/** + * Asserts that a haystack that is stored in a static attribute of a class + * or an attribute of an object contains only values of a given type. + * + * @param object|string $haystackClassOrObject + * @param bool $isNativeType + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeContainsOnly(string $type, string $haystackAttributeName, $haystackClassOrObject, ?bool $isNativeType = null, string $message = ''): void +{ + Assert::assertAttributeContainsOnly(...\func_get_args()); +} + +/** + * Asserts that a haystack does not contain only values of a given type. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotContainsOnly(string $type, iterable $haystack, ?bool $isNativeType = null, string $message = ''): void +{ + Assert::assertNotContainsOnly(...\func_get_args()); +} + +/** + * Asserts that a haystack that is stored in a static attribute of a class + * or an attribute of an object does not contain only values of a given + * type. + * + * @param object|string $haystackClassOrObject + * @param bool $isNativeType + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeNotContainsOnly(string $type, string $haystackAttributeName, $haystackClassOrObject, ?bool $isNativeType = null, string $message = ''): void +{ + Assert::assertAttributeNotContainsOnly(...\func_get_args()); +} + +/** + * Asserts the number of elements of an array, Countable or Traversable. + * + * @param Countable|iterable $haystack + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertCount(int $expectedCount, $haystack, string $message = ''): void +{ + Assert::assertCount(...\func_get_args()); +} + +/** + * Asserts the number of elements of an array, Countable or Traversable + * that is stored in an attribute. + * + * @param object|string $haystackClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeCount(int $expectedCount, string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void +{ + Assert::assertAttributeCount(...\func_get_args()); +} + +/** + * Asserts the number of elements of an array, Countable or Traversable. + * + * @param Countable|iterable $haystack + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotCount(int $expectedCount, $haystack, string $message = ''): void +{ + Assert::assertNotCount(...\func_get_args()); +} + +/** + * Asserts the number of elements of an array, Countable or Traversable + * that is stored in an attribute. + * + * @param object|string $haystackClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeNotCount(int $expectedCount, string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void +{ + Assert::assertAttributeNotCount(...\func_get_args()); +} + +/** + * Asserts that two variables are equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertEquals($expected, $actual, string $message = '', float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): void +{ + Assert::assertEquals(...\func_get_args()); +} + +/** + * Asserts that a variable is equal to an attribute of an object. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeEquals($expected, string $actualAttributeName, $actualClassOrObject, string $message = '', float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): void +{ + Assert::assertAttributeEquals(...\func_get_args()); +} + +/** + * Asserts that two variables are not equal. + * + * @param float $delta + * @param int $maxDepth + * @param bool $canonicalize + * @param bool $ignoreCase + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotEquals($expected, $actual, string $message = '', $delta = 0.0, $maxDepth = 10, $canonicalize = false, $ignoreCase = false): void +{ + Assert::assertNotEquals(...\func_get_args()); +} + +/** + * Asserts that a variable is not equal to an attribute of an object. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeNotEquals($expected, string $actualAttributeName, $actualClassOrObject, string $message = '', float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): void +{ + Assert::assertAttributeNotEquals(...\func_get_args()); +} + +/** + * Asserts that a variable is empty. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertEmpty($actual, string $message = ''): void +{ + Assert::assertEmpty(...\func_get_args()); +} + +/** + * Asserts that a static attribute of a class or an attribute of an object + * is empty. + * + * @param object|string $haystackClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeEmpty(string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void +{ + Assert::assertAttributeEmpty(...\func_get_args()); +} + +/** + * Asserts that a variable is not empty. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotEmpty($actual, string $message = ''): void +{ + Assert::assertNotEmpty(...\func_get_args()); +} + +/** + * Asserts that a static attribute of a class or an attribute of an object + * is not empty. + * + * @param object|string $haystackClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeNotEmpty(string $haystackAttributeName, $haystackClassOrObject, string $message = ''): void +{ + Assert::assertAttributeNotEmpty(...\func_get_args()); +} + +/** + * Asserts that a value is greater than another value. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertGreaterThan($expected, $actual, string $message = ''): void +{ + Assert::assertGreaterThan(...\func_get_args()); +} + +/** + * Asserts that an attribute is greater than another value. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeGreaterThan($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void +{ + Assert::assertAttributeGreaterThan(...\func_get_args()); +} + +/** + * Asserts that a value is greater than or equal to another value. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertGreaterThanOrEqual($expected, $actual, string $message = ''): void +{ + Assert::assertGreaterThanOrEqual(...\func_get_args()); +} + +/** + * Asserts that an attribute is greater than or equal to another value. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeGreaterThanOrEqual($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void +{ + Assert::assertAttributeGreaterThanOrEqual(...\func_get_args()); +} + +/** + * Asserts that a value is smaller than another value. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertLessThan($expected, $actual, string $message = ''): void +{ + Assert::assertLessThan(...\func_get_args()); +} + +/** + * Asserts that an attribute is smaller than another value. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeLessThan($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void +{ + Assert::assertAttributeLessThan(...\func_get_args()); +} + +/** + * Asserts that a value is smaller than or equal to another value. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertLessThanOrEqual($expected, $actual, string $message = ''): void +{ + Assert::assertLessThanOrEqual(...\func_get_args()); +} + +/** + * Asserts that an attribute is smaller than or equal to another value. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeLessThanOrEqual($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void +{ + Assert::assertAttributeLessThanOrEqual(...\func_get_args()); +} + +/** + * Asserts that the contents of one file is equal to the contents of another + * file. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertFileEquals(string $expected, string $actual, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void +{ + Assert::assertFileEquals(...\func_get_args()); +} + +/** + * Asserts that the contents of one file is not equal to the contents of + * another file. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertFileNotEquals(string $expected, string $actual, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void +{ + Assert::assertFileNotEquals(...\func_get_args()); +} + +/** + * Asserts that the contents of a string is equal + * to the contents of a file. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertStringEqualsFile(string $expectedFile, string $actualString, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void +{ + Assert::assertStringEqualsFile(...\func_get_args()); +} + +/** + * Asserts that the contents of a string is not equal + * to the contents of a file. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertStringNotEqualsFile(string $expectedFile, string $actualString, string $message = '', bool $canonicalize = false, bool $ignoreCase = false): void +{ + Assert::assertStringNotEqualsFile(...\func_get_args()); +} + +/** + * Asserts that a file/dir is readable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertIsReadable(string $filename, string $message = ''): void +{ + Assert::assertIsReadable(...\func_get_args()); +} + +/** + * Asserts that a file/dir exists and is not readable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotIsReadable(string $filename, string $message = ''): void +{ + Assert::assertNotIsReadable(...\func_get_args()); +} + +/** + * Asserts that a file/dir exists and is writable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertIsWritable(string $filename, string $message = ''): void +{ + Assert::assertIsWritable(...\func_get_args()); +} + +/** + * Asserts that a file/dir exists and is not writable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotIsWritable(string $filename, string $message = ''): void +{ + Assert::assertNotIsWritable(...\func_get_args()); +} + +/** + * Asserts that a directory exists. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertDirectoryExists(string $directory, string $message = ''): void +{ + Assert::assertDirectoryExists(...\func_get_args()); +} + +/** + * Asserts that a directory does not exist. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertDirectoryNotExists(string $directory, string $message = ''): void +{ + Assert::assertDirectoryNotExists(...\func_get_args()); +} + +/** + * Asserts that a directory exists and is readable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertDirectoryIsReadable(string $directory, string $message = ''): void +{ + Assert::assertDirectoryIsReadable(...\func_get_args()); +} + +/** + * Asserts that a directory exists and is not readable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertDirectoryNotIsReadable(string $directory, string $message = ''): void +{ + Assert::assertDirectoryNotIsReadable(...\func_get_args()); +} + +/** + * Asserts that a directory exists and is writable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertDirectoryIsWritable(string $directory, string $message = ''): void +{ + Assert::assertDirectoryIsWritable(...\func_get_args()); +} + +/** + * Asserts that a directory exists and is not writable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertDirectoryNotIsWritable(string $directory, string $message = ''): void +{ + Assert::assertDirectoryNotIsWritable(...\func_get_args()); +} + +/** + * Asserts that a file exists. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertFileExists(string $filename, string $message = ''): void +{ + Assert::assertFileExists(...\func_get_args()); +} + +/** + * Asserts that a file does not exist. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertFileNotExists(string $filename, string $message = ''): void +{ + Assert::assertFileNotExists(...\func_get_args()); +} + +/** + * Asserts that a file exists and is readable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertFileIsReadable(string $file, string $message = ''): void +{ + Assert::assertFileIsReadable(...\func_get_args()); +} + +/** + * Asserts that a file exists and is not readable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertFileNotIsReadable(string $file, string $message = ''): void +{ + Assert::assertFileNotIsReadable(...\func_get_args()); +} + +/** + * Asserts that a file exists and is writable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertFileIsWritable(string $file, string $message = ''): void +{ + Assert::assertFileIsWritable(...\func_get_args()); +} + +/** + * Asserts that a file exists and is not writable. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertFileNotIsWritable(string $file, string $message = ''): void +{ + Assert::assertFileNotIsWritable(...\func_get_args()); +} + +/** + * Asserts that a condition is true. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertTrue($condition, string $message = ''): void +{ + Assert::assertTrue(...\func_get_args()); +} + +/** + * Asserts that a condition is not true. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotTrue($condition, string $message = ''): void +{ + Assert::assertNotTrue(...\func_get_args()); +} + +/** + * Asserts that a condition is false. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertFalse($condition, string $message = ''): void +{ + Assert::assertFalse(...\func_get_args()); +} + +/** + * Asserts that a condition is not false. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotFalse($condition, string $message = ''): void +{ + Assert::assertNotFalse(...\func_get_args()); +} + +/** + * Asserts that a variable is null. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNull($actual, string $message = ''): void +{ + Assert::assertNull(...\func_get_args()); +} + +/** + * Asserts that a variable is not null. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotNull($actual, string $message = ''): void +{ + Assert::assertNotNull(...\func_get_args()); +} + +/** + * Asserts that a variable is finite. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertFinite($actual, string $message = ''): void +{ + Assert::assertFinite(...\func_get_args()); +} + +/** + * Asserts that a variable is infinite. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertInfinite($actual, string $message = ''): void +{ + Assert::assertInfinite(...\func_get_args()); +} + +/** + * Asserts that a variable is nan. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNan($actual, string $message = ''): void +{ + Assert::assertNan(...\func_get_args()); +} + +/** + * Asserts that a class has a specified attribute. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertClassHasAttribute(string $attributeName, string $className, string $message = ''): void +{ + Assert::assertClassHasAttribute(...\func_get_args()); +} + +/** + * Asserts that a class does not have a specified attribute. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertClassNotHasAttribute(string $attributeName, string $className, string $message = ''): void +{ + Assert::assertClassNotHasAttribute(...\func_get_args()); +} + +/** + * Asserts that a class has a specified static attribute. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertClassHasStaticAttribute(string $attributeName, string $className, string $message = ''): void +{ + Assert::assertClassHasStaticAttribute(...\func_get_args()); +} + +/** + * Asserts that a class does not have a specified static attribute. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertClassNotHasStaticAttribute(string $attributeName, string $className, string $message = ''): void +{ + Assert::assertClassNotHasStaticAttribute(...\func_get_args()); +} + +/** + * Asserts that an object has a specified attribute. + * + * @param object $object + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertObjectHasAttribute(string $attributeName, $object, string $message = ''): void +{ + Assert::assertObjectHasAttribute(...\func_get_args()); +} + +/** + * Asserts that an object does not have a specified attribute. + * + * @param object $object + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertObjectNotHasAttribute(string $attributeName, $object, string $message = ''): void +{ + Assert::assertObjectNotHasAttribute(...\func_get_args()); +} + +/** + * Asserts that two variables have the same type and value. + * Used on objects, it asserts that two variables reference + * the same object. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertSame($expected, $actual, string $message = ''): void +{ + Assert::assertSame(...\func_get_args()); +} + +/** + * Asserts that a variable and an attribute of an object have the same type + * and value. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeSame($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void +{ + Assert::assertAttributeSame(...\func_get_args()); +} + +/** + * Asserts that two variables do not have the same type and value. + * Used on objects, it asserts that two variables do not reference + * the same object. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotSame($expected, $actual, string $message = ''): void +{ + Assert::assertNotSame(...\func_get_args()); +} + +/** + * Asserts that a variable and an attribute of an object do not have the + * same type and value. + * + * @param object|string $actualClassOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeNotSame($expected, string $actualAttributeName, $actualClassOrObject, string $message = ''): void +{ + Assert::assertAttributeNotSame(...\func_get_args()); +} + +/** + * Asserts that a variable is of a given type. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertInstanceOf(string $expected, $actual, string $message = ''): void +{ + Assert::assertInstanceOf(...\func_get_args()); +} + +/** + * Asserts that an attribute is of a given type. + * + * @param object|string $classOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeInstanceOf(string $expected, string $attributeName, $classOrObject, string $message = ''): void +{ + Assert::assertAttributeInstanceOf(...\func_get_args()); +} + +/** + * Asserts that a variable is not of a given type. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotInstanceOf(string $expected, $actual, string $message = ''): void +{ + Assert::assertNotInstanceOf(...\func_get_args()); +} + +/** + * Asserts that an attribute is of a given type. + * + * @param object|string $classOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeNotInstanceOf(string $expected, string $attributeName, $classOrObject, string $message = ''): void +{ + Assert::assertAttributeNotInstanceOf(...\func_get_args()); +} + +/** + * Asserts that a variable is of a given type. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertInternalType(string $expected, $actual, string $message = ''): void +{ + Assert::assertInternalType(...\func_get_args()); +} + +/** + * Asserts that an attribute is of a given type. + * + * @param object|string $classOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeInternalType(string $expected, string $attributeName, $classOrObject, string $message = ''): void +{ + Assert::assertAttributeInternalType(...\func_get_args()); +} + +/** + * Asserts that a variable is not of a given type. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotInternalType(string $expected, $actual, string $message = ''): void +{ + Assert::assertNotInternalType(...\func_get_args()); +} + +/** + * Asserts that an attribute is of a given type. + * + * @param object|string $classOrObject + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertAttributeNotInternalType(string $expected, string $attributeName, $classOrObject, string $message = ''): void +{ + Assert::assertAttributeNotInternalType(...\func_get_args()); +} + +/** + * Asserts that a string matches a given regular expression. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertRegExp(string $pattern, string $string, string $message = ''): void +{ + Assert::assertRegExp(...\func_get_args()); +} + +/** + * Asserts that a string does not match a given regular expression. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotRegExp(string $pattern, string $string, string $message = ''): void +{ + Assert::assertNotRegExp(...\func_get_args()); +} + +/** + * Assert that the size of two arrays (or `Countable` or `Traversable` objects) + * is the same. + * + * @param Countable|iterable $expected + * @param Countable|iterable $actual + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertSameSize($expected, $actual, string $message = ''): void +{ + Assert::assertSameSize(...\func_get_args()); +} + +/** + * Assert that the size of two arrays (or `Countable` or `Traversable` objects) + * is not the same. + * + * @param Countable|iterable $expected + * @param Countable|iterable $actual + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertNotSameSize($expected, $actual, string $message = ''): void +{ + Assert::assertNotSameSize(...\func_get_args()); +} + +/** + * Asserts that a string matches a given format string. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertStringMatchesFormat(string $format, string $string, string $message = ''): void +{ + Assert::assertStringMatchesFormat(...\func_get_args()); +} + +/** + * Asserts that a string does not match a given format string. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertStringNotMatchesFormat(string $format, string $string, string $message = ''): void +{ + Assert::assertStringNotMatchesFormat(...\func_get_args()); +} + +/** + * Asserts that a string matches a given format file. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertStringMatchesFormatFile(string $formatFile, string $string, string $message = ''): void +{ + Assert::assertStringMatchesFormatFile(...\func_get_args()); +} + +/** + * Asserts that a string does not match a given format string. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertStringNotMatchesFormatFile(string $formatFile, string $string, string $message = ''): void +{ + Assert::assertStringNotMatchesFormatFile(...\func_get_args()); +} + +/** + * Asserts that a string starts with a given prefix. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertStringStartsWith(string $prefix, string $string, string $message = ''): void +{ + Assert::assertStringStartsWith(...\func_get_args()); +} + +/** + * Asserts that a string starts not with a given prefix. + * + * @param string $prefix + * @param string $string + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertStringStartsNotWith($prefix, $string, string $message = ''): void +{ + Assert::assertStringStartsNotWith(...\func_get_args()); +} + +/** + * Asserts that a string ends with a given suffix. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertStringEndsWith(string $suffix, string $string, string $message = ''): void +{ + Assert::assertStringEndsWith(...\func_get_args()); +} + +/** + * Asserts that a string ends not with a given suffix. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertStringEndsNotWith(string $suffix, string $string, string $message = ''): void +{ + Assert::assertStringEndsNotWith(...\func_get_args()); +} + +/** + * Asserts that two XML files are equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertXmlFileEqualsXmlFile(string $expectedFile, string $actualFile, string $message = ''): void +{ + Assert::assertXmlFileEqualsXmlFile(...\func_get_args()); +} + +/** + * Asserts that two XML files are not equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertXmlFileNotEqualsXmlFile(string $expectedFile, string $actualFile, string $message = ''): void +{ + Assert::assertXmlFileNotEqualsXmlFile(...\func_get_args()); +} + +/** + * Asserts that two XML documents are equal. + * + * @param DOMDocument|string $actualXml + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertXmlStringEqualsXmlFile(string $expectedFile, $actualXml, string $message = ''): void +{ + Assert::assertXmlStringEqualsXmlFile(...\func_get_args()); +} + +/** + * Asserts that two XML documents are not equal. + * + * @param DOMDocument|string $actualXml + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertXmlStringNotEqualsXmlFile(string $expectedFile, $actualXml, string $message = ''): void +{ + Assert::assertXmlStringNotEqualsXmlFile(...\func_get_args()); +} + +/** + * Asserts that two XML documents are equal. + * + * @param DOMDocument|string $expectedXml + * @param DOMDocument|string $actualXml + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertXmlStringEqualsXmlString($expectedXml, $actualXml, string $message = ''): void +{ + Assert::assertXmlStringEqualsXmlString(...\func_get_args()); +} + +/** + * Asserts that two XML documents are not equal. + * + * @param DOMDocument|string $expectedXml + * @param DOMDocument|string $actualXml + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertXmlStringNotEqualsXmlString($expectedXml, $actualXml, string $message = ''): void +{ + Assert::assertXmlStringNotEqualsXmlString(...\func_get_args()); +} + +/** + * Asserts that a hierarchy of DOMElements matches. + * + * @throws AssertionFailedError + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertEqualXMLStructure(DOMElement $expectedElement, DOMElement $actualElement, bool $checkAttributes = false, string $message = ''): void +{ + Assert::assertEqualXMLStructure(...\func_get_args()); +} + +/** + * Evaluates a PHPUnit\Framework\Constraint matcher object. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertThat($value, Constraint $constraint, string $message = ''): void +{ + Assert::assertThat(...\func_get_args()); +} + +/** + * Asserts that a string is a valid JSON string. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertJson(string $actualJson, string $message = ''): void +{ + Assert::assertJson(...\func_get_args()); +} + +/** + * Asserts that two given JSON encoded objects or arrays are equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertJsonStringEqualsJsonString(string $expectedJson, string $actualJson, string $message = ''): void +{ + Assert::assertJsonStringEqualsJsonString(...\func_get_args()); +} + +/** + * Asserts that two given JSON encoded objects or arrays are not equal. + * + * @param string $expectedJson + * @param string $actualJson + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertJsonStringNotEqualsJsonString($expectedJson, $actualJson, string $message = ''): void +{ + Assert::assertJsonStringNotEqualsJsonString(...\func_get_args()); +} + +/** + * Asserts that the generated JSON encoded object and the content of the given file are equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertJsonStringEqualsJsonFile(string $expectedFile, string $actualJson, string $message = ''): void +{ + Assert::assertJsonStringEqualsJsonFile(...\func_get_args()); +} + +/** + * Asserts that the generated JSON encoded object and the content of the given file are not equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertJsonStringNotEqualsJsonFile(string $expectedFile, string $actualJson, string $message = ''): void +{ + Assert::assertJsonStringNotEqualsJsonFile(...\func_get_args()); +} + +/** + * Asserts that two JSON files are equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertJsonFileEqualsJsonFile(string $expectedFile, string $actualFile, string $message = ''): void +{ + Assert::assertJsonFileEqualsJsonFile(...\func_get_args()); +} + +/** + * Asserts that two JSON files are not equal. + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ +function assertJsonFileNotEqualsJsonFile(string $expectedFile, string $actualFile, string $message = ''): void +{ + Assert::assertJsonFileNotEqualsJsonFile(...\func_get_args()); +} + +function logicalAnd(): LogicalAnd +{ + return Assert::logicalAnd(...\func_get_args()); +} + +function logicalOr(): LogicalOr +{ + return Assert::logicalOr(...\func_get_args()); +} + +function logicalNot(Constraint $constraint): LogicalNot +{ + return Assert::logicalNot(...\func_get_args()); +} + +function logicalXor(): LogicalXor +{ + return Assert::logicalXor(...\func_get_args()); +} + +function anything(): IsAnything +{ + return Assert::anything(); +} + +function isTrue(): IsTrue +{ + return Assert::isTrue(); +} + +function callback(callable $callback): Callback +{ + return Assert::callback(...\func_get_args()); +} + +function isFalse(): IsFalse +{ + return Assert::isFalse(); +} + +function isJson(): IsJson +{ + return Assert::isJson(); +} + +function isNull(): IsNull +{ + return Assert::isNull(); +} + +function isFinite(): IsFinite +{ + return Assert::isFinite(); +} + +function isInfinite(): IsInfinite +{ + return Assert::isInfinite(); +} + +function isNan(): IsNan +{ + return Assert::isNan(); +} + +function attribute(Constraint $constraint, string $attributeName): Attribute +{ + return Assert::attribute(...\func_get_args()); +} + +function contains($value, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false): TraversableContains +{ + return Assert::contains(...\func_get_args()); +} + +function containsOnly(string $type): TraversableContainsOnly +{ + return Assert::containsOnly(...\func_get_args()); +} + +function containsOnlyInstancesOf(string $className): TraversableContainsOnly +{ + return Assert::containsOnlyInstancesOf(...\func_get_args()); +} + +function arrayHasKey($key): ArrayHasKey +{ + return Assert::arrayHasKey(...\func_get_args()); +} + +function equalTo($value, float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): IsEqual +{ + return Assert::equalTo(...\func_get_args()); +} + +function attributeEqualTo(string $attributeName, $value, float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false): Attribute +{ + return Assert::attributeEqualTo(...\func_get_args()); +} + +function isEmpty(): IsEmpty +{ + return Assert::isEmpty(); +} + +function isWritable(): IsWritable +{ + return Assert::isWritable(); +} + +function isReadable(): IsReadable +{ + return Assert::isReadable(); +} + +function directoryExists(): DirectoryExists +{ + return Assert::directoryExists(); +} + +function fileExists(): FileExists +{ + return Assert::fileExists(); +} + +function greaterThan($value): GreaterThan +{ + return Assert::greaterThan(...\func_get_args()); +} + +function greaterThanOrEqual($value): LogicalOr +{ + return Assert::greaterThanOrEqual(...\func_get_args()); +} + +function classHasAttribute(string $attributeName): ClassHasAttribute +{ + return Assert::classHasAttribute(...\func_get_args()); +} + +function classHasStaticAttribute(string $attributeName): ClassHasStaticAttribute +{ + return Assert::classHasStaticAttribute(...\func_get_args()); +} + +function objectHasAttribute($attributeName): ObjectHasAttribute +{ + return Assert::objectHasAttribute(...\func_get_args()); +} + +function identicalTo($value): IsIdentical +{ + return Assert::identicalTo(...\func_get_args()); +} + +function isInstanceOf(string $className): IsInstanceOf +{ + return Assert::isInstanceOf(...\func_get_args()); +} + +function isType(string $type): IsType +{ + return Assert::isType(...\func_get_args()); +} + +function lessThan($value): LessThan +{ + return Assert::lessThan(...\func_get_args()); +} + +function lessThanOrEqual($value): LogicalOr +{ + return Assert::lessThanOrEqual(...\func_get_args()); +} + +function matchesRegularExpression(string $pattern): RegularExpression +{ + return Assert::matchesRegularExpression(...\func_get_args()); +} + +function matches(string $string): StringMatchesFormatDescription +{ + return Assert::matches(...\func_get_args()); +} + +function stringStartsWith($prefix): StringStartsWith +{ + return Assert::stringStartsWith(...\func_get_args()); +} + +function stringContains(string $string, bool $case = true): StringContains +{ + return Assert::stringContains(...\func_get_args()); +} + +function stringEndsWith(string $suffix): StringEndsWith +{ + return Assert::stringEndsWith(...\func_get_args()); +} + +function countOf(int $count): Count +{ + return Assert::countOf(...\func_get_args()); +} + +/** + * Returns a matcher that matches when the method is executed + * zero or more times. + */ +function any(): AnyInvokedCountMatcher +{ + return new AnyInvokedCountMatcher; +} + +/** + * Returns a matcher that matches when the method is never executed. + */ +function never(): InvokedCountMatcher +{ + return new InvokedCountMatcher(0); +} + +/** + * Returns a matcher that matches when the method is executed + * at least N times. + * + * @param int $requiredInvocations + */ +function atLeast($requiredInvocations): InvokedAtLeastCountMatcher +{ + return new InvokedAtLeastCountMatcher( + $requiredInvocations + ); +} + +/** + * Returns a matcher that matches when the method is executed at least once. + */ +function atLeastOnce(): InvokedAtLeastOnceMatcher +{ + return new InvokedAtLeastOnceMatcher; +} + +/** + * Returns a matcher that matches when the method is executed exactly once. + */ +function once(): InvokedCountMatcher +{ + return new InvokedCountMatcher(1); +} + +/** + * Returns a matcher that matches when the method is executed + * exactly $count times. + * + * @param int $count + */ +function exactly($count): InvokedCountMatcher +{ + return new InvokedCountMatcher($count); +} + +/** + * Returns a matcher that matches when the method is executed + * at most N times. + * + * @param int $allowedInvocations + */ +function atMost($allowedInvocations): InvokedAtMostCountMatcher +{ + return new InvokedAtMostCountMatcher($allowedInvocations); +} + +/** + * Returns a matcher that matches when the method is executed + * at the given index. + * + * @param int $index + */ +function at($index): InvokedAtIndexMatcher +{ + return new InvokedAtIndexMatcher($index); +} + +function returnValue($value): ReturnStub +{ + return new ReturnStub($value); +} + +function returnValueMap(array $valueMap): ReturnValueMapStub +{ + return new ReturnValueMapStub($valueMap); +} + +/** + * @param int $argumentIndex + */ +function returnArgument($argumentIndex): ReturnArgumentStub +{ + return new ReturnArgumentStub($argumentIndex); +} + +function returnCallback($callback): ReturnCallbackStub +{ + return new ReturnCallbackStub($callback); +} + +/** + * Returns the current object. + * + * This method is useful when mocking a fluent interface. + */ +function returnSelf(): ReturnSelfStub +{ + return new ReturnSelfStub; +} + +function throwException(Throwable $exception): ExceptionStub +{ + return new ExceptionStub($exception); +} + +function onConsecutiveCalls(): ConsecutiveCallsStub +{ + $args = \func_get_args(); + + return new ConsecutiveCallsStub($args); +} diff --git a/vendor/phpunit/phpunit/src/Framework/AssertionFailedError.php b/vendor/phpunit/phpunit/src/Framework/AssertionFailedError.php new file mode 100644 index 00000000..a402e579 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/AssertionFailedError.php @@ -0,0 +1,24 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +/** + * Thrown when an assertion failed. + */ +class AssertionFailedError extends Exception implements SelfDescribing +{ + /** + * Wrapper for getMessage() which is declared as final. + */ + public function toString(): string + { + return $this->getMessage(); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/CodeCoverageException.php b/vendor/phpunit/phpunit/src/Framework/CodeCoverageException.php new file mode 100644 index 00000000..298f5c44 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/CodeCoverageException.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +class CodeCoverageException extends Exception +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php b/vendor/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php new file mode 100644 index 00000000..c60dd185 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/ArrayHasKey.php @@ -0,0 +1,81 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use ArrayAccess; + +/** + * Constraint that asserts that the array it is evaluated for has a given key. + * + * Uses array_key_exists() to check if the key is found in the input array, if + * not found the evaluation fails. + * + * The array key is passed in the constructor. + */ +class ArrayHasKey extends Constraint +{ + /** + * @var int|string + */ + private $key; + + /** + * @param int|string $key + */ + public function __construct($key) + { + parent::__construct(); + $this->key = $key; + } + + /** + * Returns a string representation of the constraint. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function toString(): string + { + return 'has the key ' . $this->exporter->export($this->key); + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + if (\is_array($other)) { + return \array_key_exists($this->key, $other); + } + + if ($other instanceof ArrayAccess) { + return $other->offsetExists($this->key); + } + + return false; + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + protected function failureDescription($other): string + { + return 'an array ' . $this->toString(); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php b/vendor/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php new file mode 100644 index 00000000..62943726 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php @@ -0,0 +1,133 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Framework\ExpectationFailedException; +use SebastianBergmann\Comparator\ComparisonFailure; + +/** + * Constraint that asserts that the array it is evaluated for has a specified subset. + * + * Uses array_replace_recursive() to check if a key value subset is part of the + * subject array. + * + * @deprecated https://github.com/sebastianbergmann/phpunit/issues/3494 + */ +class ArraySubset extends Constraint +{ + /** + * @var iterable + */ + private $subset; + + /** + * @var bool + */ + private $strict; + + public function __construct(iterable $subset, bool $strict = false) + { + parent::__construct(); + + $this->strict = $strict; + $this->subset = $subset; + } + + /** + * Evaluates the constraint for parameter $other + * + * If $returnResult is set to false (the default), an exception is thrown + * in case of a failure. null is returned otherwise. + * + * If $returnResult is true, the result of the evaluation is returned as + * a boolean value instead: true in case of success, false in case of a + * failure. + * + * @param mixed $other value or object to evaluate + * @param string $description Additional information about the test + * @param bool $returnResult Whether to return a result or throw an exception + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function evaluate($other, $description = '', $returnResult = false) + { + //type cast $other & $this->subset as an array to allow + //support in standard array functions. + $other = $this->toArray($other); + $this->subset = $this->toArray($this->subset); + + $patched = \array_replace_recursive($other, $this->subset); + + if ($this->strict) { + $result = $other === $patched; + } else { + $result = $other == $patched; + } + + if ($returnResult) { + return $result; + } + + if (!$result) { + $f = new ComparisonFailure( + $patched, + $other, + \var_export($patched, true), + \var_export($other, true) + ); + + $this->fail($other, $description, $f); + } + } + + /** + * Returns a string representation of the constraint. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function toString(): string + { + return 'has the subset ' . $this->exporter->export($this->subset); + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + protected function failureDescription($other): string + { + return 'an array ' . $this->toString(); + } + + private function toArray(iterable $other): array + { + if (\is_array($other)) { + return $other; + } + + if ($other instanceof \ArrayObject) { + return $other->getArrayCopy(); + } + + if ($other instanceof \Traversable) { + return \iterator_to_array($other); + } + + // Keep BC even if we know that array would not be the expected one + return (array) $other; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Attribute.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Attribute.php new file mode 100644 index 00000000..36321f30 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Attribute.php @@ -0,0 +1,79 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Framework\Assert; +use PHPUnit\Framework\ExpectationFailedException; + +class Attribute extends Composite +{ + /** + * @var string + */ + private $attributeName; + + public function __construct(Constraint $constraint, string $attributeName) + { + parent::__construct($constraint); + + $this->attributeName = $attributeName; + } + + /** + * Evaluates the constraint for parameter $other + * + * If $returnResult is set to false (the default), an exception is thrown + * in case of a failure. null is returned otherwise. + * + * If $returnResult is true, the result of the evaluation is returned as + * a boolean value instead: true in case of success, false in case of a + * failure. + * + * @param mixed $other value or object to evaluate + * @param string $description Additional information about the test + * @param bool $returnResult Whether to return a result or throw an exception + * + * @throws ExpectationFailedException + * @throws \PHPUnit\Framework\Exception + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function evaluate($other, $description = '', $returnResult = false) + { + return parent::evaluate( + Assert::readAttribute( + $other, + $this->attributeName + ), + $description, + $returnResult + ); + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'attribute "' . $this->attributeName . '" ' . $this->innerConstraint()->toString(); + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + */ + protected function failureDescription($other): string + { + return $this->toString(); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Callback.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Callback.php new file mode 100644 index 00000000..489d8044 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Callback.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that evaluates against a specified closure. + */ +class Callback extends Constraint +{ + /** + * @var callable + */ + private $callback; + + public function __construct(callable $callback) + { + parent::__construct(); + + $this->callback = $callback; + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'is accepted by specified callback'; + } + + /** + * Evaluates the constraint for parameter $value. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return \call_user_func($this->callback, $other); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php b/vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php new file mode 100644 index 00000000..fb70d5b0 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasAttribute.php @@ -0,0 +1,80 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use ReflectionClass; + +/** + * Constraint that asserts that the class it is evaluated for has a given + * attribute. + * + * The attribute name is passed in the constructor. + */ +class ClassHasAttribute extends Constraint +{ + /** + * @var string + */ + private $attributeName; + + public function __construct(string $attributeName) + { + parent::__construct(); + + $this->attributeName = $attributeName; + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return \sprintf( + 'has attribute "%s"', + $this->attributeName + ); + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + $class = new ReflectionClass($other); + + return $class->hasProperty($this->attributeName); + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + */ + protected function failureDescription($other): string + { + return \sprintf( + '%sclass "%s" %s', + \is_object($other) ? 'object of ' : '', + \is_object($other) ? \get_class($other) : $other, + $this->toString() + ); + } + + protected function attributeName(): string + { + return $this->attributeName; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php b/vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php new file mode 100644 index 00000000..b68d070a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/ClassHasStaticAttribute.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use ReflectionClass; + +/** + * Constraint that asserts that the class it is evaluated for has a given + * static attribute. + * + * The attribute name is passed in the constructor. + */ +class ClassHasStaticAttribute extends ClassHasAttribute +{ + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return \sprintf( + 'has static attribute "%s"', + $this->attributeName() + ); + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + $class = new ReflectionClass($other); + + if ($class->hasProperty($this->attributeName())) { + $attribute = $class->getProperty($this->attributeName()); + + return $attribute->isStatic(); + } + + return false; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Composite.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Composite.php new file mode 100644 index 00000000..3b19df30 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Composite.php @@ -0,0 +1,70 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Framework\ExpectationFailedException; + +abstract class Composite extends Constraint +{ + /** + * @var Constraint + */ + private $innerConstraint; + + public function __construct(Constraint $innerConstraint) + { + parent::__construct(); + + $this->innerConstraint = $innerConstraint; + } + + /** + * Evaluates the constraint for parameter $other + * + * If $returnResult is set to false (the default), an exception is thrown + * in case of a failure. null is returned otherwise. + * + * If $returnResult is true, the result of the evaluation is returned as + * a boolean value instead: true in case of success, false in case of a + * failure. + * + * @param mixed $other value or object to evaluate + * @param string $description Additional information about the test + * @param bool $returnResult Whether to return a result or throw an exception + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function evaluate($other, $description = '', $returnResult = false) + { + try { + return $this->innerConstraint->evaluate( + $other, + $description, + $returnResult + ); + } catch (ExpectationFailedException $e) { + $this->fail($other, $description, $e->getComparisonFailure()); + } + } + + /** + * Counts the number of constraint elements. + */ + public function count(): int + { + return \count($this->innerConstraint); + } + + protected function innerConstraint(): Constraint + { + return $this->innerConstraint; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php new file mode 100644 index 00000000..175557d2 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php @@ -0,0 +1,148 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use Countable; +use PHPUnit\Framework\ExpectationFailedException; +use PHPUnit\Framework\SelfDescribing; +use SebastianBergmann\Comparator\ComparisonFailure; +use SebastianBergmann\Exporter\Exporter; + +/** + * Abstract base class for constraints which can be applied to any value. + */ +abstract class Constraint implements Countable, SelfDescribing +{ + protected $exporter; + + public function __construct() + { + $this->exporter = new Exporter; + } + + /** + * Evaluates the constraint for parameter $other + * + * If $returnResult is set to false (the default), an exception is thrown + * in case of a failure. null is returned otherwise. + * + * If $returnResult is true, the result of the evaluation is returned as + * a boolean value instead: true in case of success, false in case of a + * failure. + * + * @param mixed $other value or object to evaluate + * @param string $description Additional information about the test + * @param bool $returnResult Whether to return a result or throw an exception + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function evaluate($other, $description = '', $returnResult = false) + { + $success = false; + + if ($this->matches($other)) { + $success = true; + } + + if ($returnResult) { + return $success; + } + + if (!$success) { + $this->fail($other, $description); + } + } + + /** + * Counts the number of constraint elements. + */ + public function count(): int + { + return 1; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * This method can be overridden to implement the evaluation algorithm. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return false; + } + + /** + * Throws an exception for the given compared value and test description + * + * @param mixed $other evaluated value or object + * @param string $description Additional information about the test + * @param ComparisonFailure $comparisonFailure + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + protected function fail($other, $description, ComparisonFailure $comparisonFailure = null): void + { + $failureDescription = \sprintf( + 'Failed asserting that %s.', + $this->failureDescription($other) + ); + + $additionalFailureDescription = $this->additionalFailureDescription($other); + + if ($additionalFailureDescription) { + $failureDescription .= "\n" . $additionalFailureDescription; + } + + if (!empty($description)) { + $failureDescription = $description . "\n" . $failureDescription; + } + + throw new ExpectationFailedException( + $failureDescription, + $comparisonFailure + ); + } + + /** + * Return additional failure description where needed + * + * The function can be overridden to provide additional failure + * information like a diff + * + * @param mixed $other evaluated value or object + */ + protected function additionalFailureDescription($other): string + { + return ''; + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * To provide additional failure information additionalFailureDescription + * can be used. + * + * @param mixed $other evaluated value or object + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + protected function failureDescription($other): string + { + return $this->exporter->export($other) . ' ' . $this->toString(); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Count.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Count.php new file mode 100644 index 00000000..d6f09dc0 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Count.php @@ -0,0 +1,123 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use Countable; +use Generator; +use Iterator; +use IteratorAggregate; +use Traversable; + +class Count extends Constraint +{ + /** + * @var int + */ + private $expectedCount; + + public function __construct(int $expected) + { + parent::__construct(); + + $this->expectedCount = $expected; + } + + public function toString(): string + { + return \sprintf( + 'count matches %d', + $this->expectedCount + ); + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + */ + protected function matches($other): bool + { + return $this->expectedCount === $this->getCountOf($other); + } + + /** + * @param iterable $other + */ + protected function getCountOf($other): ?int + { + if ($other instanceof Countable || \is_array($other)) { + return \count($other); + } + + if ($other instanceof \EmptyIterator) { + return 0; + } + + if ($other instanceof Traversable) { + while ($other instanceof IteratorAggregate) { + $other = $other->getIterator(); + } + + $iterator = $other; + + if ($iterator instanceof Generator) { + return $this->getCountOfGenerator($iterator); + } + + if (!$iterator instanceof Iterator) { + return \iterator_count($iterator); + } + + $key = $iterator->key(); + $count = \iterator_count($iterator); + + // Manually rewind $iterator to previous key, since iterator_count + // moves pointer. + if ($key !== null) { + $iterator->rewind(); + + while ($iterator->valid() && $key !== $iterator->key()) { + $iterator->next(); + } + } + + return $count; + } + } + + /** + * Returns the total number of iterations from a generator. + * This will fully exhaust the generator. + */ + protected function getCountOfGenerator(Generator $generator): int + { + for ($count = 0; $generator->valid(); $generator->next()) { + ++$count; + } + + return $count; + } + + /** + * Returns the description of the failure. + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + */ + protected function failureDescription($other): string + { + return \sprintf( + 'actual size %d matches expected size %d', + $this->getCountOf($other), + $this->expectedCount + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php b/vendor/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php new file mode 100644 index 00000000..09f1f4a5 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/DirectoryExists.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that checks if the directory(name) that it is evaluated for exists. + * + * The file path to check is passed as $other in evaluate(). + */ +class DirectoryExists extends Constraint +{ + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'directory exists'; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return \is_dir($other); + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + */ + protected function failureDescription($other): string + { + return \sprintf( + 'directory "%s" exists', + $other + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/Exception.php b/vendor/phpunit/phpunit/src/Framework/Constraint/Exception.php new file mode 100644 index 00000000..7e0c021f --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/Exception.php @@ -0,0 +1,82 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Util\Filter; +use Throwable; + +class Exception extends Constraint +{ + /** + * @var string + */ + private $className; + + public function __construct(string $className) + { + parent::__construct(); + + $this->className = $className; + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return \sprintf( + 'exception of type "%s"', + $this->className + ); + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return $other instanceof $this->className; + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + */ + protected function failureDescription($other): string + { + if ($other !== null) { + $message = ''; + + if ($other instanceof Throwable) { + $message = '. Message was: "' . $other->getMessage() . '" at' + . "\n" . Filter::getFilteredStacktrace($other); + } + + return \sprintf( + 'exception of type "%s" matches expected exception "%s"%s', + \get_class($other), + $this->className, + $message + ); + } + + return \sprintf( + 'exception of type "%s" is thrown', + $this->className + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php b/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php new file mode 100644 index 00000000..6cb2ac09 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionCode.php @@ -0,0 +1,63 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +class ExceptionCode extends Constraint +{ + /** + * @var int|string + */ + private $expectedCode; + + /** + * @param int|string $expected + */ + public function __construct($expected) + { + parent::__construct(); + + $this->expectedCode = $expected; + } + + public function toString(): string + { + return 'exception code is '; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param \Throwable $other + */ + protected function matches($other): bool + { + return (string) $other->getCode() === (string) $this->expectedCode; + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + protected function failureDescription($other): string + { + return \sprintf( + '%s is equal to expected exception code %s', + $this->exporter->export($other->getCode()), + $this->exporter->export($this->expectedCode) + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php b/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php new file mode 100644 index 00000000..299d512e --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessage.php @@ -0,0 +1,73 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +class ExceptionMessage extends Constraint +{ + /** + * @var string + */ + private $expectedMessage; + + public function __construct(string $expected) + { + parent::__construct(); + + $this->expectedMessage = $expected; + } + + public function toString(): string + { + if ($this->expectedMessage === '') { + return 'exception message is empty'; + } + + return 'exception message contains '; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param \Throwable $other + */ + protected function matches($other): bool + { + if ($this->expectedMessage === '') { + return $other->getMessage() === ''; + } + + return \strpos($other->getMessage(), $this->expectedMessage) !== false; + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + */ + protected function failureDescription($other): string + { + if ($this->expectedMessage === '') { + return \sprintf( + "exception message is empty but is '%s'", + $other->getMessage() + ); + } + + return \sprintf( + "exception message '%s' contains '%s'", + $other->getMessage(), + $this->expectedMessage + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php b/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php new file mode 100644 index 00000000..63f323aa --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/ExceptionMessageRegularExpression.php @@ -0,0 +1,71 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Util\RegularExpression as RegularExpressionUtil; + +class ExceptionMessageRegularExpression extends Constraint +{ + /** + * @var string + */ + private $expectedMessageRegExp; + + public function __construct(string $expected) + { + parent::__construct(); + + $this->expectedMessageRegExp = $expected; + } + + public function toString(): string + { + return 'exception message matches '; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param \PHPUnit\Framework\Exception $other + * + * @throws \Exception + * @throws \PHPUnit\Framework\Exception + */ + protected function matches($other): bool + { + $match = RegularExpressionUtil::safeMatch($this->expectedMessageRegExp, $other->getMessage()); + + if ($match === false) { + throw new \PHPUnit\Framework\Exception( + "Invalid expected exception message regex given: '{$this->expectedMessageRegExp}'" + ); + } + + return $match === 1; + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + */ + protected function failureDescription($other): string + { + return \sprintf( + "exception message '%s' matches '%s'", + $other->getMessage(), + $this->expectedMessageRegExp + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/FileExists.php b/vendor/phpunit/phpunit/src/Framework/Constraint/FileExists.php new file mode 100644 index 00000000..35e2962f --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/FileExists.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that checks if the file(name) that it is evaluated for exists. + * + * The file path to check is passed as $other in evaluate(). + */ +class FileExists extends Constraint +{ + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'file exists'; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return \file_exists($other); + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + */ + protected function failureDescription($other): string + { + return \sprintf( + 'file "%s" exists', + $other + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php b/vendor/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php new file mode 100644 index 00000000..890e13d3 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/GreaterThan.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that asserts that the value it is evaluated for is greater + * than a given value. + */ +class GreaterThan extends Constraint +{ + /** + * @var float|int + */ + private $value; + + /** + * @param float|int $value + */ + public function __construct($value) + { + parent::__construct(); + + $this->value = $value; + } + + /** + * Returns a string representation of the constraint. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function toString(): string + { + return 'is greater than ' . $this->exporter->export($this->value); + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return $this->value < $other; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsAnything.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsAnything.php new file mode 100644 index 00000000..526cc371 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsAnything.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Framework\ExpectationFailedException; + +/** + * Constraint that accepts any input value. + */ +class IsAnything extends Constraint +{ + /** + * Evaluates the constraint for parameter $other + * + * If $returnResult is set to false (the default), an exception is thrown + * in case of a failure. null is returned otherwise. + * + * If $returnResult is true, the result of the evaluation is returned as + * a boolean value instead: true in case of success, false in case of a + * failure. + * + * @param mixed $other value or object to evaluate + * @param string $description Additional information about the test + * @param bool $returnResult Whether to return a result or throw an exception + * + * @throws ExpectationFailedException + */ + public function evaluate($other, $description = '', $returnResult = false) + { + return $returnResult ? true : null; + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'is anything'; + } + + /** + * Counts the number of constraint elements. + */ + public function count(): int + { + return 0; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php new file mode 100644 index 00000000..1ffe4170 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsEmpty.php @@ -0,0 +1,65 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use Countable; + +/** + * Constraint that checks whether a variable is empty(). + */ +class IsEmpty extends Constraint +{ + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'is empty'; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + if ($other instanceof \EmptyIterator) { + return true; + } + + if ($other instanceof Countable) { + return \count($other) === 0; + } + + return empty($other); + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + */ + protected function failureDescription($other): string + { + $type = \gettype($other); + + return \sprintf( + '%s %s %s', + $type[0] == 'a' || $type[0] == 'o' ? 'an' : 'a', + $type, + $this->toString() + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php new file mode 100644 index 00000000..0cc999e6 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsEqual.php @@ -0,0 +1,150 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Framework\ExpectationFailedException; +use SebastianBergmann\Comparator\ComparisonFailure; +use SebastianBergmann\Comparator\Factory as ComparatorFactory; + +/** + * Constraint that checks if one value is equal to another. + * + * Equality is checked with PHP's == operator, the operator is explained in + * detail at {@url https://php.net/manual/en/types.comparisons.php}. + * Two values are equal if they have the same value disregarding type. + * + * The expected value is passed in the constructor. + */ +class IsEqual extends Constraint +{ + /** + * @var mixed + */ + private $value; + + /** + * @var float + */ + private $delta; + + /** + * @var int + */ + private $maxDepth; + + /** + * @var bool + */ + private $canonicalize; + + /** + * @var bool + */ + private $ignoreCase; + + public function __construct($value, float $delta = 0.0, int $maxDepth = 10, bool $canonicalize = false, bool $ignoreCase = false) + { + parent::__construct(); + + $this->value = $value; + $this->delta = $delta; + $this->maxDepth = $maxDepth; + $this->canonicalize = $canonicalize; + $this->ignoreCase = $ignoreCase; + } + + /** + * Evaluates the constraint for parameter $other + * + * If $returnResult is set to false (the default), an exception is thrown + * in case of a failure. null is returned otherwise. + * + * If $returnResult is true, the result of the evaluation is returned as + * a boolean value instead: true in case of success, false in case of a + * failure. + * + * @param mixed $other value or object to evaluate + * @param string $description Additional information about the test + * @param bool $returnResult Whether to return a result or throw an exception + * + * @throws ExpectationFailedException + */ + public function evaluate($other, $description = '', $returnResult = false) + { + // If $this->value and $other are identical, they are also equal. + // This is the most common path and will allow us to skip + // initialization of all the comparators. + if ($this->value === $other) { + return true; + } + + $comparatorFactory = ComparatorFactory::getInstance(); + + try { + $comparator = $comparatorFactory->getComparatorFor( + $this->value, + $other + ); + + $comparator->assertEquals( + $this->value, + $other, + $this->delta, + $this->canonicalize, + $this->ignoreCase + ); + } catch (ComparisonFailure $f) { + if ($returnResult) { + return false; + } + + throw new ExpectationFailedException( + \trim($description . "\n" . $f->getMessage()), + $f + ); + } + + return true; + } + + /** + * Returns a string representation of the constraint. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function toString(): string + { + $delta = ''; + + if (\is_string($this->value)) { + if (\strpos($this->value, "\n") !== false) { + return 'is equal to '; + } + + return \sprintf( + "is equal to '%s'", + $this->value + ); + } + + if ($this->delta != 0) { + $delta = \sprintf( + ' with delta <%F>', + $this->delta + ); + } + + return \sprintf( + 'is equal to %s%s', + $this->exporter->export($this->value), + $delta + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsFalse.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsFalse.php new file mode 100644 index 00000000..82858a75 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsFalse.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that accepts false. + */ +class IsFalse extends Constraint +{ + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'is false'; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return $other === false; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsFinite.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsFinite.php new file mode 100644 index 00000000..3d369001 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsFinite.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that accepts finite. + */ +class IsFinite extends Constraint +{ + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'is finite'; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return \is_finite($other); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php new file mode 100644 index 00000000..c4362f00 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsIdentical.php @@ -0,0 +1,144 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Framework\ExpectationFailedException; +use SebastianBergmann\Comparator\ComparisonFailure; + +/** + * Constraint that asserts that one value is identical to another. + * + * Identical check is performed with PHP's === operator, the operator is + * explained in detail at + * {@url https://php.net/manual/en/types.comparisons.php}. + * Two values are identical if they have the same value and are of the same + * type. + * + * The expected value is passed in the constructor. + */ +class IsIdentical extends Constraint +{ + /** + * @var float + */ + private const EPSILON = 0.0000000001; + + /** + * @var mixed + */ + private $value; + + public function __construct($value) + { + parent::__construct(); + + $this->value = $value; + } + + /** + * Evaluates the constraint for parameter $other + * + * If $returnResult is set to false (the default), an exception is thrown + * in case of a failure. null is returned otherwise. + * + * If $returnResult is true, the result of the evaluation is returned as + * a boolean value instead: true in case of success, false in case of a + * failure. + * + * @param mixed $other value or object to evaluate + * @param string $description Additional information about the test + * @param bool $returnResult Whether to return a result or throw an exception + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function evaluate($other, $description = '', $returnResult = false) + { + if (\is_float($this->value) && \is_float($other) && + !\is_infinite($this->value) && !\is_infinite($other) && + !\is_nan($this->value) && !\is_nan($other)) { + $success = \abs($this->value - $other) < self::EPSILON; + } else { + $success = $this->value === $other; + } + + if ($returnResult) { + return $success; + } + + if (!$success) { + $f = null; + + // if both values are strings, make sure a diff is generated + if (\is_string($this->value) && \is_string($other)) { + $f = new ComparisonFailure( + $this->value, + $other, + \sprintf("'%s'", $this->value), + \sprintf("'%s'", $other) + ); + } + + // if both values are array, make sure a diff is generated + if (\is_array($this->value) && \is_array($other)) { + $f = new ComparisonFailure( + $this->value, + $other, + $this->exporter->export($this->value), + $this->exporter->export($other) + ); + } + + $this->fail($other, $description, $f); + } + } + + /** + * Returns a string representation of the constraint. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function toString(): string + { + if (\is_object($this->value)) { + return 'is identical to an object of class "' . + \get_class($this->value) . '"'; + } + + return 'is identical to ' . $this->exporter->export($this->value); + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + protected function failureDescription($other): string + { + if (\is_object($this->value) && \is_object($other)) { + return 'two variables reference the same object'; + } + + if (\is_string($this->value) && \is_string($other)) { + return 'two strings are identical'; + } + + if (\is_array($this->value) && \is_array($other)) { + return 'two arrays are identical'; + } + + return parent::failureDescription($other); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php new file mode 100644 index 00000000..8ac16d25 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsInfinite.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that accepts infinite. + */ +class IsInfinite extends Constraint +{ + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'is infinite'; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return \is_infinite($other); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php new file mode 100644 index 00000000..b7c70ff2 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsInstanceOf.php @@ -0,0 +1,91 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use ReflectionClass; +use ReflectionException; + +/** + * Constraint that asserts that the object it is evaluated for is an instance + * of a given class. + * + * The expected class name is passed in the constructor. + */ +class IsInstanceOf extends Constraint +{ + /** + * @var string + */ + private $className; + + public function __construct(string $className) + { + parent::__construct(); + + $this->className = $className; + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return \sprintf( + 'is instance of %s "%s"', + $this->getType(), + $this->className + ); + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return $other instanceof $this->className; + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + protected function failureDescription($other): string + { + return \sprintf( + '%s is an instance of %s "%s"', + $this->exporter->shortenedExport($other), + $this->getType(), + $this->className + ); + } + + private function getType(): string + { + try { + $reflection = new ReflectionClass($this->className); + + if ($reflection->isInterface()) { + return 'interface'; + } + } catch (ReflectionException $e) { + } + + return 'class'; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsJson.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsJson.php new file mode 100644 index 00000000..ad06ec1a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsJson.php @@ -0,0 +1,73 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that asserts that a string is valid JSON. + */ +class IsJson extends Constraint +{ + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'is valid JSON'; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + if ($other === '') { + return false; + } + + \json_decode($other); + + if (\json_last_error()) { + return false; + } + + return true; + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + protected function failureDescription($other): string + { + if ($other === '') { + return 'an empty string is valid JSON'; + } + + \json_decode($other); + $error = JsonMatchesErrorMessageProvider::determineJsonError( + \json_last_error() + ); + + return \sprintf( + '%s is valid JSON (%s)', + $this->exporter->shortenedExport($other), + $error + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsNan.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsNan.php new file mode 100644 index 00000000..2a62b618 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsNan.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that accepts nan. + */ +class IsNan extends Constraint +{ + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'is nan'; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return \is_nan($other); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsNull.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsNull.php new file mode 100644 index 00000000..620eae24 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsNull.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that accepts null. + */ +class IsNull extends Constraint +{ + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'is null'; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return $other === null; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsReadable.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsReadable.php new file mode 100644 index 00000000..bdc8ca35 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsReadable.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that checks if the file/dir(name) that it is evaluated for is readable. + * + * The file path to check is passed as $other in evaluate(). + */ +class IsReadable extends Constraint +{ + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'is readable'; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return \is_readable($other); + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + */ + protected function failureDescription($other): string + { + return \sprintf( + '"%s" is readable', + $other + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsTrue.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsTrue.php new file mode 100644 index 00000000..c0a47568 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsTrue.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that accepts true. + */ +class IsTrue extends Constraint +{ + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'is true'; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return $other === true; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsType.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsType.php new file mode 100644 index 00000000..4f684778 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsType.php @@ -0,0 +1,152 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that asserts that the value it is evaluated for is of a + * specified type. + * + * The expected value is passed in the constructor. + */ +class IsType extends Constraint +{ + public const TYPE_ARRAY = 'array'; + + public const TYPE_BOOL = 'bool'; + + public const TYPE_FLOAT = 'float'; + + public const TYPE_INT = 'int'; + + public const TYPE_NULL = 'null'; + + public const TYPE_NUMERIC = 'numeric'; + + public const TYPE_OBJECT = 'object'; + + public const TYPE_RESOURCE = 'resource'; + + public const TYPE_STRING = 'string'; + + public const TYPE_SCALAR = 'scalar'; + + public const TYPE_CALLABLE = 'callable'; + + public const TYPE_ITERABLE = 'iterable'; + + /** + * @var array + */ + private const KNOWN_TYPES = [ + 'array' => true, + 'boolean' => true, + 'bool' => true, + 'double' => true, + 'float' => true, + 'integer' => true, + 'int' => true, + 'null' => true, + 'numeric' => true, + 'object' => true, + 'real' => true, + 'resource' => true, + 'string' => true, + 'scalar' => true, + 'callable' => true, + 'iterable' => true, + ]; + + /** + * @var string + */ + private $type; + + /** + * @throws \PHPUnit\Framework\Exception + */ + public function __construct(string $type) + { + parent::__construct(); + + if (!isset(self::KNOWN_TYPES[$type])) { + throw new \PHPUnit\Framework\Exception( + \sprintf( + 'Type specified for PHPUnit\Framework\Constraint\IsType <%s> ' . + 'is not a valid type.', + $type + ) + ); + } + + $this->type = $type; + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return \sprintf( + 'is of type "%s"', + $this->type + ); + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + switch ($this->type) { + case 'numeric': + return \is_numeric($other); + + case 'integer': + case 'int': + return \is_int($other); + + case 'double': + case 'float': + case 'real': + return \is_float($other); + + case 'string': + return \is_string($other); + + case 'boolean': + case 'bool': + return \is_bool($other); + + case 'null': + return null === $other; + + case 'array': + return \is_array($other); + + case 'object': + return \is_object($other); + + case 'resource': + return \is_resource($other) || \is_string(@\get_resource_type($other)); + + case 'scalar': + return \is_scalar($other); + + case 'callable': + return \is_callable($other); + + case 'iterable': + return \is_iterable($other); + } + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/IsWritable.php b/vendor/phpunit/phpunit/src/Framework/Constraint/IsWritable.php new file mode 100644 index 00000000..f19cea9e --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/IsWritable.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that checks if the file/dir(name) that it is evaluated for is writable. + * + * The file path to check is passed as $other in evaluate(). + */ +class IsWritable extends Constraint +{ + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'is writable'; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return \is_writable($other); + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + */ + protected function failureDescription($other): string + { + return \sprintf( + '"%s" is writable', + $other + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php b/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php new file mode 100644 index 00000000..22461993 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatches.php @@ -0,0 +1,111 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Framework\ExpectationFailedException; +use PHPUnit\Util\Json; +use SebastianBergmann\Comparator\ComparisonFailure; + +/** + * Asserts whether or not two JSON objects are equal. + */ +class JsonMatches extends Constraint +{ + /** + * @var string + */ + private $value; + + public function __construct(string $value) + { + parent::__construct(); + + $this->value = $value; + } + + /** + * Returns a string representation of the object. + */ + public function toString(): string + { + return \sprintf( + 'matches JSON string "%s"', + $this->value + ); + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * This method can be overridden to implement the evaluation algorithm. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + [$error, $recodedOther] = Json::canonicalize($other); + + if ($error) { + return false; + } + + [$error, $recodedValue] = Json::canonicalize($this->value); + + if ($error) { + return false; + } + + return $recodedOther == $recodedValue; + } + + /** + * Throws an exception for the given compared value and test description + * + * @param mixed $other evaluated value or object + * @param string $description Additional information about the test + * @param ComparisonFailure $comparisonFailure + * + * @throws ExpectationFailedException + * @throws \PHPUnit\Framework\Exception + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + protected function fail($other, $description, ComparisonFailure $comparisonFailure = null): void + { + if ($comparisonFailure === null) { + [$error] = Json::canonicalize($other); + + if ($error) { + parent::fail($other, $description); + + return; + } + + [$error] = Json::canonicalize($this->value); + + if ($error) { + parent::fail($other, $description); + + return; + } + + $comparisonFailure = new ComparisonFailure( + \json_decode($this->value), + \json_decode($other), + Json::prettify($this->value), + Json::prettify($other), + false, + 'Failed asserting that two json values are equal.' + ); + } + + parent::fail($other, $description, $comparisonFailure); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php b/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php new file mode 100644 index 00000000..9b3659a3 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/JsonMatchesErrorMessageProvider.php @@ -0,0 +1,62 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Provides human readable messages for each JSON error. + */ +class JsonMatchesErrorMessageProvider +{ + /** + * Translates JSON error to a human readable string. + */ + public static function determineJsonError(string $error, string $prefix = ''): ?string + { + switch ($error) { + case \JSON_ERROR_NONE: + return null; + case \JSON_ERROR_DEPTH: + return $prefix . 'Maximum stack depth exceeded'; + case \JSON_ERROR_STATE_MISMATCH: + return $prefix . 'Underflow or the modes mismatch'; + case \JSON_ERROR_CTRL_CHAR: + return $prefix . 'Unexpected control character found'; + case \JSON_ERROR_SYNTAX: + return $prefix . 'Syntax error, malformed JSON'; + case \JSON_ERROR_UTF8: + return $prefix . 'Malformed UTF-8 characters, possibly incorrectly encoded'; + default: + return $prefix . 'Unknown error'; + } + } + + /** + * Translates a given type to a human readable message prefix. + */ + public static function translateTypeToPrefix(string $type): string + { + switch (\strtolower($type)) { + case 'expected': + $prefix = 'Expected value JSON decode error - '; + + break; + case 'actual': + $prefix = 'Actual value JSON decode error - '; + + break; + default: + $prefix = ''; + + break; + } + + return $prefix; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/LessThan.php b/vendor/phpunit/phpunit/src/Framework/Constraint/LessThan.php new file mode 100644 index 00000000..8e8d9e5a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/LessThan.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that asserts that the value it is evaluated for is less than + * a given value. + */ +class LessThan extends Constraint +{ + /** + * @var float|int + */ + private $value; + + /** + * @param float|int $value + */ + public function __construct($value) + { + parent::__construct(); + + $this->value = $value; + } + + /** + * Returns a string representation of the constraint. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function toString(): string + { + return 'is less than ' . $this->exporter->export($this->value); + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return $this->value > $other; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php b/vendor/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php new file mode 100644 index 00000000..fd7fa29f --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/LogicalAnd.php @@ -0,0 +1,123 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Framework\ExpectationFailedException; + +/** + * Logical AND. + */ +class LogicalAnd extends Constraint +{ + /** + * @var Constraint[] + */ + private $constraints = []; + + public static function fromConstraints(Constraint ...$constraints): self + { + $constraint = new self; + + $constraint->constraints = \array_values($constraints); + + return $constraint; + } + + /** + * @param Constraint[] $constraints + * + * @throws \PHPUnit\Framework\Exception + */ + public function setConstraints(array $constraints): void + { + $this->constraints = []; + + foreach ($constraints as $constraint) { + if (!($constraint instanceof Constraint)) { + throw new \PHPUnit\Framework\Exception( + 'All parameters to ' . __CLASS__ . + ' must be a constraint object.' + ); + } + + $this->constraints[] = $constraint; + } + } + + /** + * Evaluates the constraint for parameter $other + * + * If $returnResult is set to false (the default), an exception is thrown + * in case of a failure. null is returned otherwise. + * + * If $returnResult is true, the result of the evaluation is returned as + * a boolean value instead: true in case of success, false in case of a + * failure. + * + * @param mixed $other value or object to evaluate + * @param string $description Additional information about the test + * @param bool $returnResult Whether to return a result or throw an exception + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function evaluate($other, $description = '', $returnResult = false) + { + $success = true; + + foreach ($this->constraints as $constraint) { + if (!$constraint->evaluate($other, $description, true)) { + $success = false; + + break; + } + } + + if ($returnResult) { + return $success; + } + + if (!$success) { + $this->fail($other, $description); + } + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + $text = ''; + + foreach ($this->constraints as $key => $constraint) { + if ($key > 0) { + $text .= ' and '; + } + + $text .= $constraint->toString(); + } + + return $text; + } + + /** + * Counts the number of constraint elements. + */ + public function count(): int + { + $count = 0; + + foreach ($this->constraints as $constraint) { + $count += \count($constraint); + } + + return $count; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php b/vendor/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php new file mode 100644 index 00000000..0d3b001f --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/LogicalNot.php @@ -0,0 +1,171 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Framework\ExpectationFailedException; + +/** + * Logical NOT. + */ +class LogicalNot extends Constraint +{ + /** + * @var Constraint + */ + private $constraint; + + public static function negate(string $string): string + { + $positives = [ + 'contains ', + 'exists', + 'has ', + 'is ', + 'are ', + 'matches ', + 'starts with ', + 'ends with ', + 'reference ', + 'not not ', + ]; + + $negatives = [ + 'does not contain ', + 'does not exist', + 'does not have ', + 'is not ', + 'are not ', + 'does not match ', + 'starts not with ', + 'ends not with ', + 'don\'t reference ', + 'not ', + ]; + + \preg_match('/(\'[\w\W]*\')([\w\W]*)("[\w\W]*")/i', $string, $matches); + + if (\count($matches) > 0) { + $nonInput = $matches[2]; + + $negatedString = \str_replace( + $nonInput, + \str_replace( + $positives, + $negatives, + $nonInput + ), + $string + ); + } else { + $negatedString = \str_replace( + $positives, + $negatives, + $string + ); + } + + return $negatedString; + } + + /** + * @param Constraint|mixed $constraint + */ + public function __construct($constraint) + { + parent::__construct(); + + if (!($constraint instanceof Constraint)) { + $constraint = new IsEqual($constraint); + } + + $this->constraint = $constraint; + } + + /** + * Evaluates the constraint for parameter $other + * + * If $returnResult is set to false (the default), an exception is thrown + * in case of a failure. null is returned otherwise. + * + * If $returnResult is true, the result of the evaluation is returned as + * a boolean value instead: true in case of success, false in case of a + * failure. + * + * @param mixed $other value or object to evaluate + * @param string $description Additional information about the test + * @param bool $returnResult Whether to return a result or throw an exception + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function evaluate($other, $description = '', $returnResult = false) + { + $success = !$this->constraint->evaluate($other, $description, true); + + if ($returnResult) { + return $success; + } + + if (!$success) { + $this->fail($other, $description); + } + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + switch (\get_class($this->constraint)) { + case LogicalAnd::class: + case self::class: + case LogicalOr::class: + return 'not( ' . $this->constraint->toString() . ' )'; + + default: + return self::negate( + $this->constraint->toString() + ); + } + } + + /** + * Counts the number of constraint elements. + */ + public function count(): int + { + return \count($this->constraint); + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + protected function failureDescription($other): string + { + switch (\get_class($this->constraint)) { + case LogicalAnd::class: + case self::class: + case LogicalOr::class: + return 'not( ' . $this->constraint->failureDescription($other) . ' )'; + + default: + return self::negate( + $this->constraint->failureDescription($other) + ); + } + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php b/vendor/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php new file mode 100644 index 00000000..dd1fda85 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/LogicalOr.php @@ -0,0 +1,120 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Framework\ExpectationFailedException; + +/** + * Logical OR. + */ +class LogicalOr extends Constraint +{ + /** + * @var Constraint[] + */ + private $constraints = []; + + public static function fromConstraints(Constraint ...$constraints): self + { + $constraint = new self; + + $constraint->constraints = \array_values($constraints); + + return $constraint; + } + + /** + * @param Constraint[] $constraints + */ + public function setConstraints(array $constraints): void + { + $this->constraints = []; + + foreach ($constraints as $constraint) { + if (!($constraint instanceof Constraint)) { + $constraint = new IsEqual( + $constraint + ); + } + + $this->constraints[] = $constraint; + } + } + + /** + * Evaluates the constraint for parameter $other + * + * If $returnResult is set to false (the default), an exception is thrown + * in case of a failure. null is returned otherwise. + * + * If $returnResult is true, the result of the evaluation is returned as + * a boolean value instead: true in case of success, false in case of a + * failure. + * + * @param mixed $other value or object to evaluate + * @param string $description Additional information about the test + * @param bool $returnResult Whether to return a result or throw an exception + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function evaluate($other, $description = '', $returnResult = false) + { + $success = false; + + foreach ($this->constraints as $constraint) { + if ($constraint->evaluate($other, $description, true)) { + $success = true; + + break; + } + } + + if ($returnResult) { + return $success; + } + + if (!$success) { + $this->fail($other, $description); + } + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + $text = ''; + + foreach ($this->constraints as $key => $constraint) { + if ($key > 0) { + $text .= ' or '; + } + + $text .= $constraint->toString(); + } + + return $text; + } + + /** + * Counts the number of constraint elements. + */ + public function count(): int + { + $count = 0; + + foreach ($this->constraints as $constraint) { + $count += \count($constraint); + } + + return $count; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php b/vendor/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php new file mode 100644 index 00000000..b8a2802e --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php @@ -0,0 +1,125 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Framework\ExpectationFailedException; + +/** + * Logical XOR. + */ +class LogicalXor extends Constraint +{ + /** + * @var Constraint[] + */ + private $constraints = []; + + public static function fromConstraints(Constraint ...$constraints): self + { + $constraint = new self; + + $constraint->constraints = \array_values($constraints); + + return $constraint; + } + + /** + * @param Constraint[] $constraints + */ + public function setConstraints(array $constraints): void + { + $this->constraints = []; + + foreach ($constraints as $constraint) { + if (!($constraint instanceof Constraint)) { + $constraint = new IsEqual( + $constraint + ); + } + + $this->constraints[] = $constraint; + } + } + + /** + * Evaluates the constraint for parameter $other + * + * If $returnResult is set to false (the default), an exception is thrown + * in case of a failure. null is returned otherwise. + * + * If $returnResult is true, the result of the evaluation is returned as + * a boolean value instead: true in case of success, false in case of a + * failure. + * + * @param mixed $other value or object to evaluate + * @param string $description Additional information about the test + * @param bool $returnResult Whether to return a result or throw an exception + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function evaluate($other, $description = '', $returnResult = false) + { + $success = true; + $lastResult = null; + + foreach ($this->constraints as $constraint) { + $result = $constraint->evaluate($other, $description, true); + + if ($result === $lastResult) { + $success = false; + + break; + } + + $lastResult = $result; + } + + if ($returnResult) { + return $success; + } + + if (!$success) { + $this->fail($other, $description); + } + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + $text = ''; + + foreach ($this->constraints as $key => $constraint) { + if ($key > 0) { + $text .= ' xor '; + } + + $text .= $constraint->toString(); + } + + return $text; + } + + /** + * Counts the number of constraint elements. + */ + public function count(): int + { + $count = 0; + + foreach ($this->constraints as $constraint) { + $count += \count($constraint); + } + + return $count; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php b/vendor/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php new file mode 100644 index 00000000..15127c07 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/ObjectHasAttribute.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use ReflectionObject; + +/** + * Constraint that asserts that the object it is evaluated for has a given + * attribute. + * + * The attribute name is passed in the constructor. + */ +class ObjectHasAttribute extends ClassHasAttribute +{ + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + $object = new ReflectionObject($other); + + return $object->hasProperty($this->attributeName()); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php b/vendor/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php new file mode 100644 index 00000000..cb1f665a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/RegularExpression.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that asserts that the string it is evaluated for matches + * a regular expression. + * + * Checks a given value using the Perl Compatible Regular Expression extension + * in PHP. The pattern is matched by executing preg_match(). + * + * The pattern string passed in the constructor. + */ +class RegularExpression extends Constraint +{ + /** + * @var string + */ + private $pattern; + + public function __construct(string $pattern) + { + parent::__construct(); + + $this->pattern = $pattern; + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return \sprintf( + 'matches PCRE pattern "%s"', + $this->pattern + ); + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return \preg_match($this->pattern, $other) > 0; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/SameSize.php b/vendor/phpunit/phpunit/src/Framework/Constraint/SameSize.php new file mode 100644 index 00000000..dc9b0033 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/SameSize.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +class SameSize extends Count +{ + public function __construct(iterable $expected) + { + parent::__construct($this->getCountOf($expected)); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/StringContains.php b/vendor/phpunit/phpunit/src/Framework/Constraint/StringContains.php new file mode 100644 index 00000000..cc72c323 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/StringContains.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that asserts that the string it is evaluated for contains + * a given string. + * + * Uses mb_strpos() to find the position of the string in the input, if not + * found the evaluation fails. + * + * The sub-string is passed in the constructor. + */ +class StringContains extends Constraint +{ + /** + * @var string + */ + private $string; + + /** + * @var bool + */ + private $ignoreCase; + + public function __construct(string $string, bool $ignoreCase = false) + { + parent::__construct(); + + $this->string = $string; + $this->ignoreCase = $ignoreCase; + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + if ($this->ignoreCase) { + $string = \mb_strtolower($this->string); + } else { + $string = $this->string; + } + + return \sprintf( + 'contains "%s"', + $string + ); + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + if ('' === $this->string) { + return true; + } + + if ($this->ignoreCase) { + return \mb_stripos($other, $this->string) !== false; + } + + return \mb_strpos($other, $this->string) !== false; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php b/vendor/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php new file mode 100644 index 00000000..3856078e --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/StringEndsWith.php @@ -0,0 +1,48 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +/** + * Constraint that asserts that the string it is evaluated for ends with a given + * suffix. + */ +class StringEndsWith extends Constraint +{ + /** + * @var string + */ + private $suffix; + + public function __construct(string $suffix) + { + parent::__construct(); + + $this->suffix = $suffix; + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'ends with "' . $this->suffix . '"'; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return \substr($other, 0 - \strlen($this->suffix)) === $this->suffix; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php b/vendor/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php new file mode 100644 index 00000000..5b27e53f --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/StringMatchesFormatDescription.php @@ -0,0 +1,103 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use SebastianBergmann\Diff\Differ; + +/** + * ... + */ +class StringMatchesFormatDescription extends RegularExpression +{ + /** + * @var string + */ + private $string; + + public function __construct(string $string) + { + parent::__construct( + $this->createPatternFromFormat( + $this->convertNewlines($string) + ) + ); + + $this->string = $string; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return parent::matches( + $this->convertNewlines($other) + ); + } + + protected function failureDescription($other): string + { + return 'string matches format description'; + } + + protected function additionalFailureDescription($other): string + { + $from = \explode("\n", $this->string); + $to = \explode("\n", $this->convertNewlines($other)); + + foreach ($from as $index => $line) { + if (isset($to[$index]) && $line !== $to[$index]) { + $line = $this->createPatternFromFormat($line); + + if (\preg_match($line, $to[$index]) > 0) { + $from[$index] = $to[$index]; + } + } + } + + $this->string = \implode("\n", $from); + $other = \implode("\n", $to); + + $differ = new Differ("--- Expected\n+++ Actual\n"); + + return $differ->diff($this->string, $other); + } + + private function createPatternFromFormat(string $string): string + { + $string = \strtr( + \preg_quote($string, '/'), + [ + '%%' => '%', + '%e' => '\\' . \DIRECTORY_SEPARATOR, + '%s' => '[^\r\n]+', + '%S' => '[^\r\n]*', + '%a' => '.+', + '%A' => '.*', + '%w' => '\s*', + '%i' => '[+-]?\d+', + '%d' => '\d+', + '%x' => '[0-9a-fA-F]+', + '%f' => '[+-]?\.?\d+\.?\d*(?:[Ee][+-]?\d+)?', + '%c' => '.', + ] + ); + + return '/^' . $string . '$/s'; + } + + private function convertNewlines($text): string + { + return \preg_replace('/\r\n/', "\n", $text); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php b/vendor/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php new file mode 100644 index 00000000..a169d94f --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/StringStartsWith.php @@ -0,0 +1,54 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Util\InvalidArgumentHelper; + +/** + * Constraint that asserts that the string it is evaluated for begins with a + * given prefix. + */ +class StringStartsWith extends Constraint +{ + /** + * @var string + */ + private $prefix; + + public function __construct(string $prefix) + { + parent::__construct(); + + if (\strlen($prefix) === 0) { + throw InvalidArgumentHelper::factory(1, 'non-empty string'); + } + + $this->prefix = $prefix; + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'starts with "' . $this->prefix . '"'; + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + return \strpos($other, $this->prefix) === 0; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php b/vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php new file mode 100644 index 00000000..80b7b3a8 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php @@ -0,0 +1,118 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use SplObjectStorage; + +/** + * Constraint that asserts that the Traversable it is applied to contains + * a given value. + */ +class TraversableContains extends Constraint +{ + /** + * @var bool + */ + private $checkForObjectIdentity; + + /** + * @var bool + */ + private $checkForNonObjectIdentity; + + /** + * @var mixed + */ + private $value; + + /** + * @throws \PHPUnit\Framework\Exception + */ + public function __construct($value, bool $checkForObjectIdentity = true, bool $checkForNonObjectIdentity = false) + { + parent::__construct(); + + $this->checkForObjectIdentity = $checkForObjectIdentity; + $this->checkForNonObjectIdentity = $checkForNonObjectIdentity; + $this->value = $value; + } + + /** + * Returns a string representation of the constraint. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function toString(): string + { + if (\is_string($this->value) && \strpos($this->value, "\n") !== false) { + return 'contains "' . $this->value . '"'; + } + + return 'contains ' . $this->exporter->export($this->value); + } + + /** + * Evaluates the constraint for parameter $other. Returns true if the + * constraint is met, false otherwise. + * + * @param mixed $other value or object to evaluate + */ + protected function matches($other): bool + { + if ($other instanceof SplObjectStorage) { + return $other->contains($this->value); + } + + if (\is_object($this->value)) { + foreach ($other as $element) { + if ($this->checkForObjectIdentity && $element === $this->value) { + return true; + } + + /* @noinspection TypeUnsafeComparisonInspection */ + if (!$this->checkForObjectIdentity && $element == $this->value) { + return true; + } + } + } else { + foreach ($other as $element) { + if ($this->checkForNonObjectIdentity && $element === $this->value) { + return true; + } + + /* @noinspection TypeUnsafeComparisonInspection */ + if (!$this->checkForNonObjectIdentity && $element == $this->value) { + return true; + } + } + } + + return false; + } + + /** + * Returns the description of the failure + * + * The beginning of failure messages is "Failed asserting that" in most + * cases. This method should return the second part of that sentence. + * + * @param mixed $other evaluated value or object + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + protected function failureDescription($other): string + { + return \sprintf( + '%s %s', + \is_array($other) ? 'an array' : 'a traversable', + $this->toString() + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php b/vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php new file mode 100644 index 00000000..20c5134d --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php @@ -0,0 +1,93 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Constraint; + +use PHPUnit\Framework\ExpectationFailedException; + +/** + * Constraint that asserts that the Traversable it is applied to contains + * only values of a given type. + */ +class TraversableContainsOnly extends Constraint +{ + /** + * @var Constraint + */ + private $constraint; + + /** + * @var string + */ + private $type; + + /** + * @throws \PHPUnit\Framework\Exception + */ + public function __construct(string $type, bool $isNativeType = true) + { + parent::__construct(); + + if ($isNativeType) { + $this->constraint = new IsType($type); + } else { + $this->constraint = new IsInstanceOf( + $type + ); + } + + $this->type = $type; + } + + /** + * Evaluates the constraint for parameter $other + * + * If $returnResult is set to false (the default), an exception is thrown + * in case of a failure. null is returned otherwise. + * + * If $returnResult is true, the result of the evaluation is returned as + * a boolean value instead: true in case of success, false in case of a + * failure. + * + * @param mixed $other value or object to evaluate + * @param string $description Additional information about the test + * @param bool $returnResult Whether to return a result or throw an exception + * + * @throws ExpectationFailedException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function evaluate($other, $description = '', $returnResult = false) + { + $success = true; + + foreach ($other as $item) { + if (!$this->constraint->evaluate($item, '', true)) { + $success = false; + + break; + } + } + + if ($returnResult) { + return $success; + } + + if (!$success) { + $this->fail($other, $description); + } + } + + /** + * Returns a string representation of the constraint. + */ + public function toString(): string + { + return 'contains only values of type "' . $this->type . '"'; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php b/vendor/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php new file mode 100644 index 00000000..45deaaae --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/CoveredCodeNotExecutedException.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +class CoveredCodeNotExecutedException extends RiskyTestError +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/DataProviderTestSuite.php b/vendor/phpunit/phpunit/src/Framework/DataProviderTestSuite.php new file mode 100644 index 00000000..15380b5a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/DataProviderTestSuite.php @@ -0,0 +1,44 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +class DataProviderTestSuite extends TestSuite +{ + /** + * @var string[] + */ + private $dependencies = []; + + /** + * @param string[] $dependencies + */ + public function setDependencies(array $dependencies): void + { + $this->dependencies = $dependencies; + + foreach ($this->tests as $test) { + if (!$test instanceof TestCase) { + continue; + } + + $test->setDependencies($dependencies); + } + } + + public function getDependencies(): array + { + return $this->dependencies; + } + + public function hasDependencies(): bool + { + return \count($this->dependencies) > 0; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Error/Deprecated.php b/vendor/phpunit/phpunit/src/Framework/Error/Deprecated.php new file mode 100644 index 00000000..f43b8f92 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Error/Deprecated.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Error; + +class Deprecated extends Error +{ + public static $enabled = true; +} diff --git a/vendor/phpunit/phpunit/src/Framework/Error/Error.php b/vendor/phpunit/phpunit/src/Framework/Error/Error.php new file mode 100644 index 00000000..34787037 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Error/Error.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Error; + +use PHPUnit\Framework\Exception; + +/** + * Wrapper for PHP errors. + */ +class Error extends Exception +{ + public function __construct(string $message, int $code, string $file, int $line, \Exception $previous = null) + { + parent::__construct($message, $code, $previous); + + $this->file = $file; + $this->line = $line; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Error/Notice.php b/vendor/phpunit/phpunit/src/Framework/Error/Notice.php new file mode 100644 index 00000000..0275c092 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Error/Notice.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Error; + +class Notice extends Error +{ + public static $enabled = true; +} diff --git a/vendor/phpunit/phpunit/src/Framework/Error/Warning.php b/vendor/phpunit/phpunit/src/Framework/Error/Warning.php new file mode 100644 index 00000000..decb33e8 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Error/Warning.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\Error; + +class Warning extends Error +{ + public static $enabled = true; +} diff --git a/vendor/phpunit/phpunit/src/Framework/Exception.php b/vendor/phpunit/phpunit/src/Framework/Exception.php new file mode 100644 index 00000000..2ea2a1bc --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Exception.php @@ -0,0 +1,78 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +use PHPUnit\Util\Filter; + +/** + * Base class for all PHPUnit Framework exceptions. + * + * Ensures that exceptions thrown during a test run do not leave stray + * references behind. + * + * Every Exception contains a stack trace. Each stack frame contains the 'args' + * of the called function. The function arguments can contain references to + * instantiated objects. The references prevent the objects from being + * destructed (until test results are eventually printed), so memory cannot be + * freed up. + * + * With enabled process isolation, test results are serialized in the child + * process and unserialized in the parent process. The stack trace of Exceptions + * may contain objects that cannot be serialized or unserialized (e.g., PDO + * connections). Unserializing user-space objects from the child process into + * the parent would break the intended encapsulation of process isolation. + * + * @see http://fabien.potencier.org/article/9/php-serialization-stack-traces-and-exceptions + */ +class Exception extends \RuntimeException implements \PHPUnit\Exception +{ + /** + * @var array + */ + protected $serializableTrace; + + public function __construct($message = '', $code = 0, \Exception $previous = null) + { + parent::__construct($message, $code, $previous); + + $this->serializableTrace = $this->getTrace(); + + foreach ($this->serializableTrace as $i => $call) { + unset($this->serializableTrace[$i]['args']); + } + } + + /** + * @throws \InvalidArgumentException + */ + public function __toString(): string + { + $string = TestFailure::exceptionToString($this); + + if ($trace = Filter::getFilteredStacktrace($this)) { + $string .= "\n" . $trace; + } + + return $string; + } + + public function __sleep(): array + { + return \array_keys(\get_object_vars($this)); + } + + /** + * Returns the serializable trace (without 'args'). + */ + public function getSerializableTrace(): array + { + return $this->serializableTrace; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/ExceptionWrapper.php b/vendor/phpunit/phpunit/src/Framework/ExceptionWrapper.php new file mode 100644 index 00000000..702712a3 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/ExceptionWrapper.php @@ -0,0 +1,118 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +use PHPUnit\Util\Filter; +use Throwable; + +/** + * Wraps Exceptions thrown by code under test. + * + * Re-instantiates Exceptions thrown by user-space code to retain their original + * class names, properties, and stack traces (but without arguments). + * + * Unlike PHPUnit\Framework_\Exception, the complete stack of previous Exceptions + * is processed. + */ +class ExceptionWrapper extends Exception +{ + /** + * @var string + */ + protected $className; + + /** + * @var null|ExceptionWrapper + */ + protected $previous; + + public function __construct(Throwable $t) + { + // PDOException::getCode() is a string. + // @see https://php.net/manual/en/class.pdoexception.php#95812 + parent::__construct($t->getMessage(), (int) $t->getCode()); + $this->setOriginalException($t); + } + + /** + * @throws \InvalidArgumentException + */ + public function __toString(): string + { + $string = TestFailure::exceptionToString($this); + + if ($trace = Filter::getFilteredStacktrace($this)) { + $string .= "\n" . $trace; + } + + if ($this->previous) { + $string .= "\nCaused by\n" . $this->previous; + } + + return $string; + } + + public function getClassName(): string + { + return $this->className; + } + + public function getPreviousWrapped(): ?self + { + return $this->previous; + } + + public function setClassName(string $className): void + { + $this->className = $className; + } + + public function setOriginalException(\Throwable $t): void + { + $this->originalException($t); + + $this->className = \get_class($t); + $this->file = $t->getFile(); + $this->line = $t->getLine(); + + $this->serializableTrace = $t->getTrace(); + + foreach ($this->serializableTrace as $i => $call) { + unset($this->serializableTrace[$i]['args']); + } + + if ($t->getPrevious()) { + $this->previous = new self($t->getPrevious()); + } + } + + public function getOriginalException(): ?Throwable + { + return $this->originalException(); + } + + /** + * Method to contain static originalException to exclude it from stacktrace to prevent the stacktrace contents, + * which can be quite big, from being garbage-collected, thus blocking memory until shutdown. + * Approach works both for var_dump() and var_export() and print_r() + */ + private function originalException(Throwable $exceptionToStore = null): ?Throwable + { + static $originalExceptions; + + $instanceId = \spl_object_hash($this); + + if ($exceptionToStore) { + $originalExceptions[$instanceId] = $exceptionToStore; + } + + return $originalExceptions[$instanceId] ?? null; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/ExpectationFailedException.php b/vendor/phpunit/phpunit/src/Framework/ExpectationFailedException.php new file mode 100644 index 00000000..2771d9b1 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/ExpectationFailedException.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +use SebastianBergmann\Comparator\ComparisonFailure; + +/** + * Exception for expectations which failed their check. + * + * The exception contains the error message and optionally a + * SebastianBergmann\Comparator\ComparisonFailure which is used to + * generate diff output of the failed expectations. + */ +class ExpectationFailedException extends AssertionFailedError +{ + /** + * @var ComparisonFailure + */ + protected $comparisonFailure; + + public function __construct(string $message, ComparisonFailure $comparisonFailure = null, \Exception $previous = null) + { + $this->comparisonFailure = $comparisonFailure; + + parent::__construct($message, 0, $previous); + } + + public function getComparisonFailure(): ?ComparisonFailure + { + return $this->comparisonFailure; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/IncompleteTest.php b/vendor/phpunit/phpunit/src/Framework/IncompleteTest.php new file mode 100644 index 00000000..53654f9e --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/IncompleteTest.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +/** + * A marker interface for marking any exception/error as result of an unit + * test as incomplete implementation or currently not implemented. + */ +interface IncompleteTest +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php b/vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php new file mode 100644 index 00000000..0092532e --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/IncompleteTestCase.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +/** + * An incomplete test case + */ +class IncompleteTestCase extends TestCase +{ + /** + * @var string + */ + protected $message = ''; + + /** + * @var bool + */ + protected $backupGlobals = false; + + /** + * @var bool + */ + protected $backupStaticAttributes = false; + + /** + * @var bool + */ + protected $runTestInSeparateProcess = false; + + /** + * @var bool + */ + protected $useErrorHandler = false; + + /** + * @var bool + */ + protected $useOutputBuffering = false; + + public function __construct(string $className, string $methodName, string $message = '') + { + parent::__construct($className . '::' . $methodName); + + $this->message = $message; + } + + public function getMessage(): string + { + return $this->message; + } + + /** + * Returns a string representation of the test case. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function toString(): string + { + return $this->getName(); + } + + /** + * @throws Exception + */ + protected function runTest(): void + { + $this->markTestIncomplete($this->message); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/IncompleteTestError.php b/vendor/phpunit/phpunit/src/Framework/IncompleteTestError.php new file mode 100644 index 00000000..0921f07d --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/IncompleteTestError.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +class IncompleteTestError extends AssertionFailedError implements IncompleteTest +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php b/vendor/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php new file mode 100644 index 00000000..40e9c337 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/InvalidCoversTargetException.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +class InvalidCoversTargetException extends CodeCoverageException +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/InvalidParameterGroupException.php b/vendor/phpunit/phpunit/src/Framework/InvalidParameterGroupException.php new file mode 100644 index 00000000..feb9cc98 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/InvalidParameterGroupException.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +/** + * @internal This class is not covered by the backward compatibility promise for PHPUnit + */ +final class InvalidParameterGroupException extends Exception +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php b/vendor/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php new file mode 100644 index 00000000..ed3bcb62 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MissingCoversAnnotationException.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +class MissingCoversAnnotationException extends RiskyTestError +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php new file mode 100644 index 00000000..9db235fd --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Identity.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Builder; + +/** + * Builder interface for unique identifiers. + * + * Defines the interface for recording unique identifiers. The identifiers + * can be used to define the invocation order of expectations. The expectation + * is recorded using id() and then defined in order using + * PHPUnit\Framework\MockObject\Builder\Match::after(). + */ +interface Identity +{ + /** + * Sets the identification of the expectation to $id. + * + * @note The identifier is unique per mock object. + * + * @param string $id unique identification of expectation + */ + public function id($id); +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php new file mode 100644 index 00000000..35b44f2a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/InvocationMocker.php @@ -0,0 +1,277 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Builder; + +use PHPUnit\Framework\Constraint\Constraint; +use PHPUnit\Framework\MockObject\Matcher; +use PHPUnit\Framework\MockObject\Matcher\Invocation; +use PHPUnit\Framework\MockObject\RuntimeException; +use PHPUnit\Framework\MockObject\Stub; +use PHPUnit\Framework\MockObject\Stub\MatcherCollection; + +/** + * Builder for mocked or stubbed invocations. + * + * Provides methods for building expectations without having to resort to + * instantiating the various matchers manually. These methods also form a + * more natural way of reading the expectation. This class should be together + * with the test case PHPUnit\Framework\MockObject\TestCase. + */ +class InvocationMocker implements MethodNameMatch +{ + /** + * @var MatcherCollection + */ + private $collection; + + /** + * @var Matcher + */ + private $matcher; + + /** + * @var string[] + */ + private $configurableMethods; + + public function __construct(MatcherCollection $collection, Invocation $invocationMatcher, array $configurableMethods) + { + $this->collection = $collection; + $this->matcher = new Matcher($invocationMatcher); + + $this->collection->addMatcher($this->matcher); + + $this->configurableMethods = $configurableMethods; + } + + /** + * @return Matcher + */ + public function getMatcher() + { + return $this->matcher; + } + + /** + * @return InvocationMocker + */ + public function id($id) + { + $this->collection->registerId($id, $this); + + return $this; + } + + /** + * @return InvocationMocker + */ + public function will(Stub $stub) + { + $this->matcher->setStub($stub); + + return $this; + } + + /** + * @return InvocationMocker + */ + public function willReturn($value, ...$nextValues) + { + if (\count($nextValues) === 0) { + $stub = new Stub\ReturnStub($value); + } else { + $stub = new Stub\ConsecutiveCalls( + \array_merge([$value], $nextValues) + ); + } + + return $this->will($stub); + } + + /** + * @param mixed $reference + * + * @return InvocationMocker + */ + public function willReturnReference(&$reference) + { + $stub = new Stub\ReturnReference($reference); + + return $this->will($stub); + } + + /** + * @return InvocationMocker + */ + public function willReturnMap(array $valueMap) + { + $stub = new Stub\ReturnValueMap($valueMap); + + return $this->will($stub); + } + + /** + * @return InvocationMocker + */ + public function willReturnArgument($argumentIndex) + { + $stub = new Stub\ReturnArgument($argumentIndex); + + return $this->will($stub); + } + + /** + * @param callable $callback + * + * @return InvocationMocker + */ + public function willReturnCallback($callback) + { + $stub = new Stub\ReturnCallback($callback); + + return $this->will($stub); + } + + /** + * @return InvocationMocker + */ + public function willReturnSelf() + { + $stub = new Stub\ReturnSelf; + + return $this->will($stub); + } + + /** + * @return InvocationMocker + */ + public function willReturnOnConsecutiveCalls(...$values) + { + $stub = new Stub\ConsecutiveCalls($values); + + return $this->will($stub); + } + + /** + * @return InvocationMocker + */ + public function willThrowException(\Throwable $exception) + { + $stub = new Stub\Exception($exception); + + return $this->will($stub); + } + + /** + * @return InvocationMocker + */ + public function after($id) + { + $this->matcher->setAfterMatchBuilderId($id); + + return $this; + } + + /** + * @param array ...$arguments + * + * @throws RuntimeException + * + * @return InvocationMocker + */ + public function with(...$arguments) + { + $this->canDefineParameters(); + + $this->matcher->setParametersMatcher(new Matcher\Parameters($arguments)); + + return $this; + } + + /** + * @param array ...$arguments + * + * @throws RuntimeException + * + * @return InvocationMocker + */ + public function withConsecutive(...$arguments) + { + $this->canDefineParameters(); + + $this->matcher->setParametersMatcher(new Matcher\ConsecutiveParameters($arguments)); + + return $this; + } + + /** + * @throws RuntimeException + * + * @return InvocationMocker + */ + public function withAnyParameters() + { + $this->canDefineParameters(); + + $this->matcher->setParametersMatcher(new Matcher\AnyParameters); + + return $this; + } + + /** + * @param Constraint|string $constraint + * + * @throws RuntimeException + * + * @return InvocationMocker + */ + public function method($constraint) + { + if ($this->matcher->hasMethodNameMatcher()) { + throw new RuntimeException( + 'Method name matcher is already defined, cannot redefine' + ); + } + + if (\is_string($constraint) && !\in_array(\strtolower($constraint), $this->configurableMethods, true)) { + throw new RuntimeException( + \sprintf( + 'Trying to configure method "%s" which cannot be configured because it does not exist, has not been specified, is final, or is static', + $constraint + ) + ); + } + + $this->matcher->setMethodNameMatcher(new Matcher\MethodName($constraint)); + + return $this; + } + + /** + * Validate that a parameters matcher can be defined, throw exceptions otherwise. + * + * @throws RuntimeException + */ + private function canDefineParameters(): void + { + if (!$this->matcher->hasMethodNameMatcher()) { + throw new RuntimeException( + 'Method name matcher is not defined, cannot define parameter ' . + 'matcher without one' + ); + } + + if ($this->matcher->hasParametersMatcher()) { + throw new RuntimeException( + 'Parameter matcher is already defined, cannot redefine' + ); + } + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Match.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Match.php new file mode 100644 index 00000000..eeace166 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Match.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Builder; + +/** + * Builder interface for invocation order matches. + */ +interface Match extends Stub +{ + /** + * Defines the expectation which must occur before the current is valid. + * + * @param string $id the identification of the expectation that should + * occur before this one + * + * @return Stub + */ + public function after($id); +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php new file mode 100644 index 00000000..55816a3a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/MethodNameMatch.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Builder; + +/** + * Builder interface for matcher of method names. + */ +interface MethodNameMatch extends ParametersMatch +{ + /** + * Adds a new method name match and returns the parameter match object for + * further matching possibilities. + * + * @param \PHPUnit\Framework\Constraint\Constraint $name Constraint for matching method, if a string is passed it will use the PHPUnit_Framework_Constraint_IsEqual + * + * @return ParametersMatch + */ + public function method($name); +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/NamespaceMatch.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/NamespaceMatch.php new file mode 100644 index 00000000..9e1b0634 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/NamespaceMatch.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Builder; + +/** + * Interface for builders which can register builders with a given identification. + * + * This interface relates to Identity. + */ +interface NamespaceMatch +{ + /** + * Looks up the match builder with identification $id and returns it. + * + * @param string $id The identification of the match builder + * + * @return Match + */ + public function lookupId($id); + + /** + * Registers the match builder $builder with the identification $id. The + * builder can later be looked up using lookupId() to figure out if it + * has been invoked. + * + * @param string $id The identification of the match builder + * @param Match $builder The builder which is being registered + */ + public function registerId($id, Match $builder); +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php new file mode 100644 index 00000000..957ded16 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/ParametersMatch.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Builder; + +use PHPUnit\Framework\MockObject\Matcher\AnyParameters; + +/** + * Builder interface for parameter matchers. + */ +interface ParametersMatch extends Match +{ + /** + * Sets the parameters to match for, each parameter to this function will + * be part of match. To perform specific matches or constraints create a + * new PHPUnit\Framework\Constraint\Constraint and use it for the parameter. + * If the parameter value is not a constraint it will use the + * PHPUnit\Framework\Constraint\IsEqual for the value. + * + * Some examples: + * + * // match first parameter with value 2 + * $b->with(2); + * // match first parameter with value 'smock' and second identical to 42 + * $b->with('smock', new PHPUnit\Framework\Constraint\IsEqual(42)); + * + * + * @return ParametersMatch + */ + public function with(...$arguments); + + /** + * Sets a matcher which allows any kind of parameters. + * + * Some examples: + * + * // match any number of parameters + * $b->withAnyParameters(); + * + * + * @return AnyParameters + */ + public function withAnyParameters(); +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php new file mode 100644 index 00000000..ad9e6c18 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Builder/Stub.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Builder; + +use PHPUnit\Framework\MockObject\Stub as BaseStub; + +/** + * Builder interface for stubs which are actions replacing an invocation. + */ +interface Stub extends Identity +{ + /** + * Stubs the matching method with the stub object $stub. Any invocations of + * the matched method will now be handled by the stub instead. + * + * @return Identity + */ + public function will(BaseStub $stub); +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php new file mode 100644 index 00000000..c0a01285 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/BadMethodCallException.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +class BadMethodCallException extends \BadMethodCallException implements Exception +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php new file mode 100644 index 00000000..b79d6f91 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/Exception.php @@ -0,0 +1,17 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +/** + * Interface for exceptions used by PHPUnit_MockObject. + */ +interface Exception extends \Throwable +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php new file mode 100644 index 00000000..b2867367 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Exception/RuntimeException.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +class RuntimeException extends \RuntimeException implements Exception +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/ForwardCompatibility/MockObject.php b/vendor/phpunit/phpunit/src/Framework/MockObject/ForwardCompatibility/MockObject.php new file mode 100644 index 00000000..f020e8c3 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/ForwardCompatibility/MockObject.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +use PHPUnit_Framework_MockObject_MockObject; + +interface MockObject extends PHPUnit_Framework_MockObject_MockObject +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator.php new file mode 100644 index 00000000..9ead92a2 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator.php @@ -0,0 +1,1030 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +use Doctrine\Instantiator\Exception\ExceptionInterface as InstantiatorException; +use Doctrine\Instantiator\Instantiator; +use Iterator; +use IteratorAggregate; +use PHPUnit\Framework\Exception; +use PHPUnit\Util\InvalidArgumentHelper; +use ReflectionClass; +use ReflectionMethod; +use SoapClient; +use Text_Template; +use Traversable; + +/** + * Mock Object Code Generator + */ +class Generator +{ + /** + * @var array + */ + private const BLACKLISTED_METHOD_NAMES = [ + '__CLASS__' => true, + '__DIR__' => true, + '__FILE__' => true, + '__FUNCTION__' => true, + '__LINE__' => true, + '__METHOD__' => true, + '__NAMESPACE__' => true, + '__TRAIT__' => true, + '__clone' => true, + '__halt_compiler' => true, + ]; + + /** + * @var array + */ + private static $cache = []; + + /** + * @var Text_Template[] + */ + private static $templates = []; + + /** + * Returns a mock object for the specified class. + * + * @param string|string[] $type + * @param array $methods + * @param string $mockClassName + * @param bool $callOriginalConstructor + * @param bool $callOriginalClone + * @param bool $callAutoload + * @param bool $cloneArguments + * @param bool $callOriginalMethods + * @param object $proxyTarget + * @param bool $allowMockingUnknownTypes + * @param bool $returnValueGeneration + * + * @throws Exception + * @throws RuntimeException + * @throws \PHPUnit\Framework\Exception + * @throws \ReflectionException + * + * @return MockObject + */ + public function getMock($type, $methods = [], array $arguments = [], $mockClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true, $cloneArguments = true, $callOriginalMethods = false, $proxyTarget = null, $allowMockingUnknownTypes = true, $returnValueGeneration = true) + { + if (!\is_array($type) && !\is_string($type)) { + throw InvalidArgumentHelper::factory(1, 'array or string'); + } + + if (!\is_string($mockClassName)) { + throw InvalidArgumentHelper::factory(4, 'string'); + } + + if (!\is_array($methods) && null !== $methods) { + throw InvalidArgumentHelper::factory(2, 'array', $methods); + } + + if ($type === 'Traversable' || $type === '\\Traversable') { + $type = 'Iterator'; + } + + if (\is_array($type)) { + $type = \array_unique( + \array_map( + function ($type) { + if ($type === 'Traversable' || + $type === '\\Traversable' || + $type === '\\Iterator') { + return 'Iterator'; + } + + return $type; + }, + $type + ) + ); + } + + if (!$allowMockingUnknownTypes) { + if (\is_array($type)) { + foreach ($type as $_type) { + if (!\class_exists($_type, $callAutoload) && + !\interface_exists($_type, $callAutoload)) { + throw new RuntimeException( + \sprintf( + 'Cannot stub or mock class or interface "%s" which does not exist', + $_type + ) + ); + } + } + } else { + if (!\class_exists($type, $callAutoload) && + !\interface_exists($type, $callAutoload) + ) { + throw new RuntimeException( + \sprintf( + 'Cannot stub or mock class or interface "%s" which does not exist', + $type + ) + ); + } + } + } + + if (null !== $methods) { + foreach ($methods as $method) { + if (!\preg_match('~[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*~', $method)) { + throw new RuntimeException( + \sprintf( + 'Cannot stub or mock method with invalid name "%s"', + $method + ) + ); + } + } + + if ($methods !== \array_unique($methods)) { + throw new RuntimeException( + \sprintf( + 'Cannot stub or mock using a method list that contains duplicates: "%s" (duplicate: "%s")', + \implode(', ', $methods), + \implode(', ', \array_unique(\array_diff_assoc($methods, \array_unique($methods)))) + ) + ); + } + } + + if ($mockClassName !== '' && \class_exists($mockClassName, false)) { + $reflect = new ReflectionClass($mockClassName); + + if (!$reflect->implementsInterface(MockObject::class)) { + throw new RuntimeException( + \sprintf( + 'Class "%s" already exists.', + $mockClassName + ) + ); + } + } + + if ($callOriginalConstructor === false && $callOriginalMethods === true) { + throw new RuntimeException( + 'Proxying to original methods requires invoking the original constructor' + ); + } + + $mock = $this->generate( + $type, + $methods, + $mockClassName, + $callOriginalClone, + $callAutoload, + $cloneArguments, + $callOriginalMethods + ); + + return $this->getObject( + $mock['code'], + $mock['mockClassName'], + $type, + $callOriginalConstructor, + $callAutoload, + $arguments, + $callOriginalMethods, + $proxyTarget, + $returnValueGeneration + ); + } + + /** + * Returns a mock object for the specified abstract class with all abstract + * methods of the class mocked. Concrete methods to mock can be specified with + * the last parameter + * + * @param string $originalClassName + * @param string $mockClassName + * @param bool $callOriginalConstructor + * @param bool $callOriginalClone + * @param bool $callAutoload + * @param array $mockedMethods + * @param bool $cloneArguments + * + * @throws \ReflectionException + * @throws RuntimeException + * @throws Exception + * + * @return MockObject + */ + public function getMockForAbstractClass($originalClassName, array $arguments = [], $mockClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true, $mockedMethods = [], $cloneArguments = true) + { + if (!\is_string($originalClassName)) { + throw InvalidArgumentHelper::factory(1, 'string'); + } + + if (!\is_string($mockClassName)) { + throw InvalidArgumentHelper::factory(3, 'string'); + } + + if (\class_exists($originalClassName, $callAutoload) || + \interface_exists($originalClassName, $callAutoload)) { + $reflector = new ReflectionClass($originalClassName); + $methods = $mockedMethods; + + foreach ($reflector->getMethods() as $method) { + if ($method->isAbstract() && !\in_array($method->getName(), $methods, true)) { + $methods[] = $method->getName(); + } + } + + if (empty($methods)) { + $methods = null; + } + + return $this->getMock( + $originalClassName, + $methods, + $arguments, + $mockClassName, + $callOriginalConstructor, + $callOriginalClone, + $callAutoload, + $cloneArguments + ); + } + + throw new RuntimeException( + \sprintf('Class "%s" does not exist.', $originalClassName) + ); + } + + /** + * Returns a mock object for the specified trait with all abstract methods + * of the trait mocked. Concrete methods to mock can be specified with the + * `$mockedMethods` parameter. + * + * @param string $traitName + * @param string $mockClassName + * @param bool $callOriginalConstructor + * @param bool $callOriginalClone + * @param bool $callAutoload + * @param array $mockedMethods + * @param bool $cloneArguments + * + * @throws \ReflectionException + * @throws RuntimeException + * @throws Exception + * + * @return MockObject + */ + public function getMockForTrait($traitName, array $arguments = [], $mockClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true, $mockedMethods = [], $cloneArguments = true) + { + if (!\is_string($traitName)) { + throw InvalidArgumentHelper::factory(1, 'string'); + } + + if (!\is_string($mockClassName)) { + throw InvalidArgumentHelper::factory(3, 'string'); + } + + if (!\trait_exists($traitName, $callAutoload)) { + throw new RuntimeException( + \sprintf( + 'Trait "%s" does not exist.', + $traitName + ) + ); + } + + $className = $this->generateClassName( + $traitName, + '', + 'Trait_' + ); + + $classTemplate = $this->getTemplate('trait_class.tpl'); + + $classTemplate->setVar( + [ + 'prologue' => 'abstract ', + 'class_name' => $className['className'], + 'trait_name' => $traitName, + ] + ); + + $this->evalClass( + $classTemplate->render(), + $className['className'] + ); + + return $this->getMockForAbstractClass($className['className'], $arguments, $mockClassName, $callOriginalConstructor, $callOriginalClone, $callAutoload, $mockedMethods, $cloneArguments); + } + + /** + * Returns an object for the specified trait. + * + * @param string $traitName + * @param string $traitClassName + * @param bool $callOriginalConstructor + * @param bool $callOriginalClone + * @param bool $callAutoload + * + * @throws \ReflectionException + * @throws RuntimeException + * @throws Exception + * + * @return object + */ + public function getObjectForTrait($traitName, array $arguments = [], $traitClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true) + { + if (!\is_string($traitName)) { + throw InvalidArgumentHelper::factory(1, 'string'); + } + + if (!\is_string($traitClassName)) { + throw InvalidArgumentHelper::factory(3, 'string'); + } + + if (!\trait_exists($traitName, $callAutoload)) { + throw new RuntimeException( + \sprintf( + 'Trait "%s" does not exist.', + $traitName + ) + ); + } + + $className = $this->generateClassName( + $traitName, + $traitClassName, + 'Trait_' + ); + + $classTemplate = $this->getTemplate('trait_class.tpl'); + + $classTemplate->setVar( + [ + 'prologue' => '', + 'class_name' => $className['className'], + 'trait_name' => $traitName, + ] + ); + + return $this->getObject( + $classTemplate->render(), + $className['className'], + '', + $callOriginalConstructor, + $callAutoload, + $arguments + ); + } + + /** + * @param array|string $type + * @param array $methods + * @param string $mockClassName + * @param bool $callOriginalClone + * @param bool $callAutoload + * @param bool $cloneArguments + * @param bool $callOriginalMethods + * + * @throws \ReflectionException + * @throws \PHPUnit\Framework\MockObject\RuntimeException + * + * @return array + */ + public function generate($type, array $methods = null, $mockClassName = '', $callOriginalClone = true, $callAutoload = true, $cloneArguments = true, $callOriginalMethods = false) + { + if (\is_array($type)) { + \sort($type); + } + + if ($mockClassName !== '') { + return $this->generateMock( + $type, + $methods, + $mockClassName, + $callOriginalClone, + $callAutoload, + $cloneArguments, + $callOriginalMethods + ); + } + $key = \md5( + \is_array($type) ? \implode('_', $type) : $type . + \serialize($methods) . + \serialize($callOriginalClone) . + \serialize($cloneArguments) . + \serialize($callOriginalMethods) + ); + + if (!isset(self::$cache[$key])) { + self::$cache[$key] = $this->generateMock( + $type, + $methods, + $mockClassName, + $callOriginalClone, + $callAutoload, + $cloneArguments, + $callOriginalMethods + ); + } + + return self::$cache[$key]; + } + + /** + * @param string $wsdlFile + * @param string $className + * + * @throws RuntimeException + * + * @return string + */ + public function generateClassFromWsdl($wsdlFile, $className, array $methods = [], array $options = []) + { + if (!\extension_loaded('soap')) { + throw new RuntimeException( + 'The SOAP extension is required to generate a mock object from WSDL.' + ); + } + + $options = \array_merge($options, ['cache_wsdl' => \WSDL_CACHE_NONE]); + $client = new SoapClient($wsdlFile, $options); + $_methods = \array_unique($client->__getFunctions()); + unset($client); + + \sort($_methods); + + $methodTemplate = $this->getTemplate('wsdl_method.tpl'); + $methodsBuffer = ''; + + foreach ($_methods as $method) { + \preg_match_all('/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*\(/', $method, $matches, \PREG_OFFSET_CAPTURE); + $lastFunction = \array_pop($matches[0]); + $nameStart = $lastFunction[1]; + $nameEnd = $nameStart + \strlen($lastFunction[0]) - 1; + $name = \str_replace('(', '', $lastFunction[0]); + + if (empty($methods) || \in_array($name, $methods, true)) { + $args = \explode( + ',', + \str_replace(')', '', \substr($method, $nameEnd + 1)) + ); + + foreach (\range(0, \count($args) - 1) as $i) { + $args[$i] = \substr($args[$i], \strpos($args[$i], '$')); + } + + $methodTemplate->setVar( + [ + 'method_name' => $name, + 'arguments' => \implode(', ', $args), + ] + ); + + $methodsBuffer .= $methodTemplate->render(); + } + } + + $optionsBuffer = '['; + + foreach ($options as $key => $value) { + $optionsBuffer .= $key . ' => ' . $value; + } + + $optionsBuffer .= ']'; + + $classTemplate = $this->getTemplate('wsdl_class.tpl'); + $namespace = ''; + + if (\strpos($className, '\\') !== false) { + $parts = \explode('\\', $className); + $className = \array_pop($parts); + $namespace = 'namespace ' . \implode('\\', $parts) . ';' . "\n\n"; + } + + $classTemplate->setVar( + [ + 'namespace' => $namespace, + 'class_name' => $className, + 'wsdl' => $wsdlFile, + 'options' => $optionsBuffer, + 'methods' => $methodsBuffer, + ] + ); + + return $classTemplate->render(); + } + + /** + * @param string $className + * + * @throws \ReflectionException + * + * @return string[] + */ + public function getClassMethods($className): array + { + $class = new ReflectionClass($className); + $methods = []; + + foreach ($class->getMethods() as $method) { + if ($method->isPublic() || $method->isAbstract()) { + $methods[] = $method->getName(); + } + } + + return $methods; + } + + /** + * @throws \ReflectionException + * + * @return MockMethod[] + */ + public function mockClassMethods(string $className, bool $callOriginalMethods, bool $cloneArguments): array + { + $class = new ReflectionClass($className); + $methods = []; + + foreach ($class->getMethods() as $method) { + if (($method->isPublic() || $method->isAbstract()) && $this->canMockMethod($method)) { + $methods[] = MockMethod::fromReflection($method, $callOriginalMethods, $cloneArguments); + } + } + + return $methods; + } + + /** + * @throws \ReflectionException + * + * @return \ReflectionMethod[] + */ + private function userDefinedInterfaceMethods(string $interfaceName): array + { + $interface = new ReflectionClass($interfaceName); + $methods = []; + + foreach ($interface->getMethods() as $method) { + if (!$method->isUserDefined()) { + continue; + } + + $methods[] = $method; + } + + return $methods; + } + + /** + * @param string $code + * @param string $className + * @param array|string $type + * @param bool $callOriginalConstructor + * @param bool $callAutoload + * @param bool $callOriginalMethods + * @param object $proxyTarget + * @param bool $returnValueGeneration + * + * @throws \ReflectionException + * @throws RuntimeException + * + * @return MockObject + */ + private function getObject($code, $className, $type = '', $callOriginalConstructor = false, $callAutoload = false, array $arguments = [], $callOriginalMethods = false, $proxyTarget = null, $returnValueGeneration = true) + { + $this->evalClass($code, $className); + + if ($callOriginalConstructor) { + if (\count($arguments) === 0) { + $object = new $className; + } else { + $class = new ReflectionClass($className); + $object = $class->newInstanceArgs($arguments); + } + } else { + try { + $instantiator = new Instantiator; + $object = $instantiator->instantiate($className); + } catch (InstantiatorException $exception) { + throw new RuntimeException($exception->getMessage()); + } + } + + if ($callOriginalMethods) { + if (!\is_object($proxyTarget)) { + if (\count($arguments) === 0) { + $proxyTarget = new $type; + } else { + $class = new ReflectionClass($type); + $proxyTarget = $class->newInstanceArgs($arguments); + } + } + + $object->__phpunit_setOriginalObject($proxyTarget); + } + + if ($object instanceof MockObject) { + $object->__phpunit_setReturnValueGeneration($returnValueGeneration); + } + + return $object; + } + + /** + * @param string $code + * @param string $className + */ + private function evalClass($code, $className): void + { + if (!\class_exists($className, false)) { + eval($code); + } + } + + /** + * @param array|string $type + * @param null|array $explicitMethods + * @param string $mockClassName + * @param bool $callOriginalClone + * @param bool $callAutoload + * @param bool $cloneArguments + * @param bool $callOriginalMethods + * + * @throws \InvalidArgumentException + * @throws \ReflectionException + * @throws RuntimeException + * + * @return array + */ + private function generateMock($type, $explicitMethods, $mockClassName, $callOriginalClone, $callAutoload, $cloneArguments, $callOriginalMethods) + { + $classTemplate = $this->getTemplate('mocked_class.tpl'); + + $additionalInterfaces = []; + $cloneTemplate = ''; + $isClass = false; + $isInterface = false; + $class = null; + $mockMethods = new MockMethodSet; + + if (\is_array($type)) { + $interfaceMethods = []; + + foreach ($type as $_type) { + if (!\interface_exists($_type, $callAutoload)) { + throw new RuntimeException( + \sprintf( + 'Interface "%s" does not exist.', + $_type + ) + ); + } + + $additionalInterfaces[] = $_type; + $typeClass = new ReflectionClass($_type); + + foreach ($this->getClassMethods($_type) as $method) { + if (\in_array($method, $interfaceMethods, true)) { + throw new RuntimeException( + \sprintf( + 'Duplicate method "%s" not allowed.', + $method + ) + ); + } + + $methodReflection = $typeClass->getMethod($method); + + if ($this->canMockMethod($methodReflection)) { + $mockMethods->addMethods( + MockMethod::fromReflection($methodReflection, $callOriginalMethods, $cloneArguments) + ); + + $interfaceMethods[] = $method; + } + } + } + + unset($interfaceMethods); + } + + $mockClassName = $this->generateClassName( + $type, + $mockClassName, + 'Mock_' + ); + + if (\class_exists($mockClassName['fullClassName'], $callAutoload)) { + $isClass = true; + } elseif (\interface_exists($mockClassName['fullClassName'], $callAutoload)) { + $isInterface = true; + } + + if (!$isClass && !$isInterface) { + $prologue = 'class ' . $mockClassName['originalClassName'] . "\n{\n}\n\n"; + + if (!empty($mockClassName['namespaceName'])) { + $prologue = 'namespace ' . $mockClassName['namespaceName'] . + " {\n\n" . $prologue . "}\n\n" . + "namespace {\n\n"; + + $epilogue = "\n\n}"; + } + + $cloneTemplate = $this->getTemplate('mocked_clone.tpl'); + } else { + $class = new ReflectionClass($mockClassName['fullClassName']); + + if ($class->isFinal()) { + throw new RuntimeException( + \sprintf( + 'Class "%s" is declared "final" and cannot be mocked.', + $mockClassName['fullClassName'] + ) + ); + } + + // @see https://github.com/sebastianbergmann/phpunit/issues/2995 + if ($isInterface && $class->implementsInterface(\Throwable::class)) { + $actualClassName = \Exception::class; + $additionalInterfaces[] = $class->getName(); + $isInterface = false; + + try { + $class = new \ReflectionClass($actualClassName); + } catch (\ReflectionException $e) { + throw new RuntimeException( + $e->getMessage(), + (int) $e->getCode(), + $e + ); + } + + foreach ($this->userDefinedInterfaceMethods($mockClassName['fullClassName']) as $method) { + $methodName = $method->getName(); + + if ($class->hasMethod($methodName)) { + try { + $classMethod = $class->getMethod($methodName); + } catch (\ReflectionException $e) { + throw new RuntimeException( + $e->getMessage(), + (int) $e->getCode(), + $e + ); + } + + if (!$this->canMockMethod($classMethod)) { + continue; + } + } + + $mockMethods->addMethods( + MockMethod::fromReflection($method, $callOriginalMethods, $cloneArguments) + ); + } + + $mockClassName = $this->generateClassName( + $actualClassName, + $mockClassName['className'], + 'Mock_' + ); + } + + // https://github.com/sebastianbergmann/phpunit-mock-objects/issues/103 + if ($isInterface && $class->implementsInterface(Traversable::class) && + !$class->implementsInterface(Iterator::class) && + !$class->implementsInterface(IteratorAggregate::class)) { + $additionalInterfaces[] = Iterator::class; + + $mockMethods->addMethods( + ...$this->mockClassMethods(Iterator::class, $callOriginalMethods, $cloneArguments) + ); + } + + if ($class->hasMethod('__clone')) { + $cloneMethod = $class->getMethod('__clone'); + + if (!$cloneMethod->isFinal()) { + if ($callOriginalClone && !$isInterface) { + $cloneTemplate = $this->getTemplate('unmocked_clone.tpl'); + } else { + $cloneTemplate = $this->getTemplate('mocked_clone.tpl'); + } + } + } else { + $cloneTemplate = $this->getTemplate('mocked_clone.tpl'); + } + } + + if (\is_object($cloneTemplate)) { + $cloneTemplate = $cloneTemplate->render(); + } + + if ($explicitMethods === [] && + ($isClass || $isInterface)) { + $mockMethods->addMethods( + ...$this->mockClassMethods($mockClassName['fullClassName'], $callOriginalMethods, $cloneArguments) + ); + } + + if (\is_array($explicitMethods)) { + foreach ($explicitMethods as $methodName) { + if ($class !== null && $class->hasMethod($methodName)) { + $method = $class->getMethod($methodName); + + if ($this->canMockMethod($method)) { + $mockMethods->addMethods( + MockMethod::fromReflection($method, $callOriginalMethods, $cloneArguments) + ); + } + } else { + $mockMethods->addMethods( + MockMethod::fromName( + $mockClassName['fullClassName'], + $methodName, + $cloneArguments + ) + ); + } + } + } + + $mockedMethods = ''; + $configurable = []; + + /** @var MockMethod $mockMethod */ + foreach ($mockMethods->asArray() as $mockMethod) { + $mockedMethods .= $mockMethod->generateCode(); + $configurable[] = \strtolower($mockMethod->getName()); + } + + $method = ''; + + if (!$mockMethods->hasMethod('method') && (!isset($class) || !$class->hasMethod('method'))) { + $methodTemplate = $this->getTemplate('mocked_class_method.tpl'); + + $method = $methodTemplate->render(); + } + + $classTemplate->setVar( + [ + 'prologue' => $prologue ?? '', + 'epilogue' => $epilogue ?? '', + 'class_declaration' => $this->generateMockClassDeclaration( + $mockClassName, + $isInterface, + $additionalInterfaces + ), + 'clone' => $cloneTemplate, + 'mock_class_name' => $mockClassName['className'], + 'mocked_methods' => $mockedMethods, + 'method' => $method, + 'configurable' => '[' . \implode( + ', ', + \array_map( + function ($m) { + return '\'' . $m . '\''; + }, + $configurable + ) + ) . ']', + ] + ); + + return [ + 'code' => $classTemplate->render(), + 'mockClassName' => $mockClassName['className'], + ]; + } + + /** + * @param array|string $type + * @param string $className + * @param string $prefix + * + * @return array + */ + private function generateClassName($type, $className, $prefix) + { + if (\is_array($type)) { + $type = \implode('_', $type); + } + + if ($type[0] === '\\') { + $type = \substr($type, 1); + } + + $classNameParts = \explode('\\', $type); + + if (\count($classNameParts) > 1) { + $type = \array_pop($classNameParts); + $namespaceName = \implode('\\', $classNameParts); + $fullClassName = $namespaceName . '\\' . $type; + } else { + $namespaceName = ''; + $fullClassName = $type; + } + + if ($className === '') { + do { + $className = $prefix . $type . '_' . + \substr(\md5(\mt_rand()), 0, 8); + } while (\class_exists($className, false)); + } + + return [ + 'className' => $className, + 'originalClassName' => $type, + 'fullClassName' => $fullClassName, + 'namespaceName' => $namespaceName, + ]; + } + + /** + * @param bool $isInterface + * + * @return string + */ + private function generateMockClassDeclaration(array $mockClassName, $isInterface, array $additionalInterfaces = []) + { + $buffer = 'class '; + + $additionalInterfaces[] = MockObject::class; + $interfaces = \implode(', ', $additionalInterfaces); + + if ($isInterface) { + $buffer .= \sprintf( + '%s implements %s', + $mockClassName['className'], + $interfaces + ); + + if (!\in_array($mockClassName['originalClassName'], $additionalInterfaces)) { + $buffer .= ', '; + + if (!empty($mockClassName['namespaceName'])) { + $buffer .= $mockClassName['namespaceName'] . '\\'; + } + + $buffer .= $mockClassName['originalClassName']; + } + } else { + $buffer .= \sprintf( + '%s extends %s%s implements %s', + $mockClassName['className'], + !empty($mockClassName['namespaceName']) ? $mockClassName['namespaceName'] . '\\' : '', + $mockClassName['originalClassName'], + $interfaces + ); + } + + return $buffer; + } + + /** + * @return bool + */ + private function canMockMethod(ReflectionMethod $method) + { + return !($method->isConstructor() || $method->isFinal() || $method->isPrivate() || $this->isMethodNameBlacklisted($method->getName())); + } + + /** + * Returns whether a method name is blacklisted + * + * @param string $name + * + * @return bool + */ + private function isMethodNameBlacklisted($name) + { + return isset(self::BLACKLISTED_METHOD_NAMES[$name]); + } + + /** + * @param string $template + * + * @throws \InvalidArgumentException + * + * @return Text_Template + */ + private function getTemplate($template) + { + $filename = __DIR__ . \DIRECTORY_SEPARATOR . 'Generator' . \DIRECTORY_SEPARATOR . $template; + + if (!isset(self::$templates[$filename])) { + self::$templates[$filename] = new Text_Template($filename); + } + + return self::$templates[$filename]; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/deprecation.tpl.dist b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/deprecation.tpl.dist new file mode 100644 index 00000000..5bf06f52 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/deprecation.tpl.dist @@ -0,0 +1,2 @@ + + @trigger_error({deprecation}, E_USER_DEPRECATED); diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_class.tpl.dist b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_class.tpl.dist new file mode 100644 index 00000000..4b68a2b2 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_class.tpl.dist @@ -0,0 +1,46 @@ +{prologue}{class_declaration} +{ + private $__phpunit_invocationMocker; + private $__phpunit_originalObject; + private $__phpunit_configurable = {configurable}; + private $__phpunit_returnValueGeneration = true; + +{clone}{mocked_methods} + public function expects(\PHPUnit\Framework\MockObject\Matcher\Invocation $matcher) + { + return $this->__phpunit_getInvocationMocker()->expects($matcher); + } +{method} + public function __phpunit_setOriginalObject($originalObject) + { + $this->__phpunit_originalObject = $originalObject; + } + + public function __phpunit_setReturnValueGeneration(bool $returnValueGeneration) + { + $this->__phpunit_returnValueGeneration = $returnValueGeneration; + } + + public function __phpunit_getInvocationMocker() + { + if ($this->__phpunit_invocationMocker === null) { + $this->__phpunit_invocationMocker = new \PHPUnit\Framework\MockObject\InvocationMocker($this->__phpunit_configurable, $this->__phpunit_returnValueGeneration); + } + + return $this->__phpunit_invocationMocker; + } + + public function __phpunit_hasMatchers() + { + return $this->__phpunit_getInvocationMocker()->hasMatchers(); + } + + public function __phpunit_verify(bool $unsetInvocationMocker = true) + { + $this->__phpunit_getInvocationMocker()->verify(); + + if ($unsetInvocationMocker) { + $this->__phpunit_invocationMocker = null; + } + } +}{epilogue} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_class_method.tpl.dist b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_class_method.tpl.dist new file mode 100644 index 00000000..d6a036f4 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_class_method.tpl.dist @@ -0,0 +1,8 @@ + + public function method() + { + $any = new \PHPUnit\Framework\MockObject\Matcher\AnyInvokedCount; + $expects = $this->expects($any); + + return call_user_func_array([$expects, 'method'], func_get_args()); + } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_clone.tpl.dist b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_clone.tpl.dist new file mode 100644 index 00000000..bd846dee --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_clone.tpl.dist @@ -0,0 +1,4 @@ + public function __clone() + { + $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker(); + } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_method.tpl.dist b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_method.tpl.dist new file mode 100644 index 00000000..3adf2f02 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_method.tpl.dist @@ -0,0 +1,22 @@ + + {modifier} function {reference}{method_name}({arguments_decl}){return_delim}{return_type} + {{deprecation} + $__phpunit_arguments = [{arguments_call}]; + $__phpunit_count = func_num_args(); + + if ($__phpunit_count > {arguments_count}) { + $__phpunit_arguments_tmp = func_get_args(); + + for ($__phpunit_i = {arguments_count}; $__phpunit_i < $__phpunit_count; $__phpunit_i++) { + $__phpunit_arguments[] = $__phpunit_arguments_tmp[$__phpunit_i]; + } + } + + $__phpunit_result = $this->__phpunit_getInvocationMocker()->invoke( + new \PHPUnit\Framework\MockObject\Invocation\ObjectInvocation( + '{class_name}', '{method_name}', $__phpunit_arguments, '{return_type}', $this, {clone_arguments} + ) + ); + + return $__phpunit_result; + } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_method_void.tpl.dist b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_method_void.tpl.dist new file mode 100644 index 00000000..3813fe4b --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_method_void.tpl.dist @@ -0,0 +1,20 @@ + + {modifier} function {reference}{method_name}({arguments_decl}){return_delim}{return_type} + {{deprecation} + $__phpunit_arguments = [{arguments_call}]; + $__phpunit_count = func_num_args(); + + if ($__phpunit_count > {arguments_count}) { + $__phpunit_arguments_tmp = func_get_args(); + + for ($__phpunit_i = {arguments_count}; $__phpunit_i < $__phpunit_count; $__phpunit_i++) { + $__phpunit_arguments[] = $__phpunit_arguments_tmp[$__phpunit_i]; + } + } + + $this->__phpunit_getInvocationMocker()->invoke( + new \PHPUnit\Framework\MockObject\Invocation\ObjectInvocation( + '{class_name}', '{method_name}', $__phpunit_arguments, '{return_type}', $this, {clone_arguments} + ) + ); + } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_static_method.tpl.dist b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_static_method.tpl.dist new file mode 100644 index 00000000..56b561b6 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/mocked_static_method.tpl.dist @@ -0,0 +1,5 @@ + + {modifier} function {reference}{method_name}({arguments_decl}){return_delim}{return_type} + { + throw new \PHPUnit\Framework\MockObject\BadMethodCallException('Static method "{method_name}" cannot be invoked on mock object'); + } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/proxied_method.tpl.dist b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/proxied_method.tpl.dist new file mode 100644 index 00000000..4dd87cd7 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/proxied_method.tpl.dist @@ -0,0 +1,26 @@ + + {modifier} function {reference}{method_name}({arguments_decl}){return_delim}{return_type} + { + $__phpunit_arguments = [{arguments_call}]; + $__phpunit_count = func_num_args(); + + if ($__phpunit_count > {arguments_count}) { + $__phpunit_arguments_tmp = func_get_args(); + + for ($__phpunit_i = {arguments_count}; $__phpunit_i < $__phpunit_count; $__phpunit_i++) { + $__phpunit_arguments[] = $__phpunit_arguments_tmp[$__phpunit_i]; + } + } + + $__phpunit_invocation = new \PHPUnit\Framework\MockObject\Invocation\ObjectInvocation( + '{class_name}', '{method_name}', $__phpunit_arguments, '{return_type}', $this, {clone_arguments} + ); + + $__phpunit_invocation->setProxiedCall(); + + $this->__phpunit_getInvocationMocker()->invoke($__phpunit_invocation); + + unset($__phpunit_invocation); + + return call_user_func_array(array($this->__phpunit_originalObject, "{method_name}"), $__phpunit_arguments); + } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/proxied_method_void.tpl.dist b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/proxied_method_void.tpl.dist new file mode 100644 index 00000000..0d868f25 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/proxied_method_void.tpl.dist @@ -0,0 +1,26 @@ + + {modifier} function {reference}{method_name}({arguments_decl}){return_delim}{return_type} + { + $__phpunit_arguments = [{arguments_call}]; + $__phpunit_count = func_num_args(); + + if ($__phpunit_count > {arguments_count}) { + $__phpunit_arguments_tmp = func_get_args(); + + for ($__phpunit_i = {arguments_count}; $__phpunit_i < $__phpunit_count; $__phpunit_i++) { + $__phpunit_arguments[] = $__phpunit_arguments_tmp[$__phpunit_i]; + } + } + + $__phpunit_invocation = new \PHPUnit\Framework\MockObject\Invocation\ObjectInvocation( + '{class_name}', '{method_name}', $__phpunit_arguments, '{return_type}', $this, {clone_arguments} + ); + + $__phpunit_invocation->setProxiedCall(); + + $this->__phpunit_getInvocationMocker()->invoke($__phpunit_invocation); + + unset($__phpunit_invocation); + + call_user_func_array(array($this->__phpunit_originalObject, "{method_name}"), $__phpunit_arguments); + } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/trait_class.tpl.dist b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/trait_class.tpl.dist new file mode 100644 index 00000000..4143b0f6 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/trait_class.tpl.dist @@ -0,0 +1,4 @@ +{prologue}class {class_name} +{ + use {trait_name}; +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/unmocked_clone.tpl.dist b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/unmocked_clone.tpl.dist new file mode 100644 index 00000000..fa0e70ab --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/unmocked_clone.tpl.dist @@ -0,0 +1,5 @@ + public function __clone() + { + $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker(); + parent::__clone(); + } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/wsdl_class.tpl.dist b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/wsdl_class.tpl.dist new file mode 100644 index 00000000..cc69fd34 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/wsdl_class.tpl.dist @@ -0,0 +1,7 @@ +{namespace}class {class_name} extends \SoapClient +{ + public function __construct($wsdl, array $options) + { + parent::__construct('{wsdl}', $options); + } +{methods}} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/wsdl_method.tpl.dist b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/wsdl_method.tpl.dist new file mode 100644 index 00000000..bb16e763 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Generator/wsdl_method.tpl.dist @@ -0,0 +1,4 @@ + + public function {method_name}({arguments}) + { + } diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/Invocation.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/Invocation.php new file mode 100644 index 00000000..73738678 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/Invocation.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +/** + * Interface for invocations. + */ +interface Invocation +{ + /** + * @return mixed mocked return value + */ + public function generateReturnValue(); + + public function getClassName(): string; + + public function getMethodName(): string; + + public function getParameters(): array; + + public function getReturnType(): string; + + public function isReturnTypeNullable(): bool; +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/ObjectInvocation.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/ObjectInvocation.php new file mode 100644 index 00000000..eb4475f2 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/ObjectInvocation.php @@ -0,0 +1,40 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Invocation; + +/** + * Represents a non-static invocation. + */ +class ObjectInvocation extends StaticInvocation +{ + /** + * @var object + */ + private $object; + + /** + * @param string $className + * @param string $methodName + * @param string $returnType + * @param object $object + * @param bool $cloneObjects + */ + public function __construct($className, $methodName, array $parameters, $returnType, $object, $cloneObjects = false) + { + parent::__construct($className, $methodName, $parameters, $returnType, $cloneObjects); + + $this->object = $object; + } + + public function getObject() + { + return $this->object; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php new file mode 100644 index 00000000..7d87488c --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Invocation/StaticInvocation.php @@ -0,0 +1,268 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Invocation; + +use PHPUnit\Framework\MockObject\Generator; +use PHPUnit\Framework\MockObject\Invocation; +use PHPUnit\Framework\SelfDescribing; +use ReflectionObject; +use SebastianBergmann\Exporter\Exporter; + +/** + * Represents a static invocation. + */ +class StaticInvocation implements Invocation, SelfDescribing +{ + /** + * @var array + */ + private static $uncloneableExtensions = [ + 'mysqli' => true, + 'SQLite' => true, + 'sqlite3' => true, + 'tidy' => true, + 'xmlwriter' => true, + 'xsl' => true, + ]; + + /** + * @var array + */ + private static $uncloneableClasses = [ + 'Closure', + 'COMPersistHelper', + 'IteratorIterator', + 'RecursiveIteratorIterator', + 'SplFileObject', + 'PDORow', + 'ZipArchive', + ]; + + /** + * @var string + */ + private $className; + + /** + * @var string + */ + private $methodName; + + /** + * @var array + */ + private $parameters; + + /** + * @var string + */ + private $returnType; + + /** + * @var bool + */ + private $isReturnTypeNullable = false; + + /** + * @var bool + */ + private $proxiedCall = false; + + /** + * @param string $className + * @param string $methodName + * @param string $returnType + * @param bool $cloneObjects + */ + public function __construct($className, $methodName, array $parameters, $returnType, $cloneObjects = false) + { + $this->className = $className; + $this->methodName = $methodName; + $this->parameters = $parameters; + + if (\strtolower($methodName) === '__tostring') { + $returnType = 'string'; + } + + if (\strpos($returnType, '?') === 0) { + $returnType = \substr($returnType, 1); + $this->isReturnTypeNullable = true; + } + + $this->returnType = $returnType; + + if (!$cloneObjects) { + return; + } + + foreach ($this->parameters as $key => $value) { + if (\is_object($value)) { + $this->parameters[$key] = $this->cloneObject($value); + } + } + } + + public function getClassName(): string + { + return $this->className; + } + + public function getMethodName(): string + { + return $this->methodName; + } + + public function getParameters(): array + { + return $this->parameters; + } + + public function getReturnType(): string + { + return $this->returnType; + } + + public function isReturnTypeNullable(): bool + { + return $this->isReturnTypeNullable; + } + + /** + * @throws \ReflectionException + * @throws \PHPUnit\Framework\MockObject\RuntimeException + * @throws \PHPUnit\Framework\Exception + * + * @return mixed Mocked return value + */ + public function generateReturnValue() + { + if ($this->isReturnTypeNullable || $this->proxiedCall) { + return; + } + + switch (\strtolower($this->returnType)) { + case '': + case 'void': + return; + + case 'string': + return ''; + + case 'float': + return 0.0; + + case 'int': + return 0; + + case 'bool': + return false; + + case 'array': + return []; + + case 'object': + return new \stdClass; + + case 'callable': + case 'closure': + return function (): void { + }; + + case 'traversable': + case 'generator': + case 'iterable': + $generator = function () { + yield; + }; + + return $generator(); + + default: + $generator = new Generator; + + return $generator->getMock($this->returnType, [], [], '', false); + } + } + + public function setProxiedCall(): void + { + $this->proxiedCall = true; + } + + public function toString(): string + { + $exporter = new Exporter; + + return \sprintf( + '%s::%s(%s)%s', + $this->className, + $this->methodName, + \implode( + ', ', + \array_map( + [$exporter, 'shortenedExport'], + $this->parameters + ) + ), + $this->returnType ? \sprintf(': %s', $this->returnType) : '' + ); + } + + /** + * @param object $original + * + * @return object + */ + private function cloneObject($original) + { + $cloneable = null; + $object = new ReflectionObject($original); + + // Check the blacklist before asking PHP reflection to work around + // https://bugs.php.net/bug.php?id=53967 + if ($object->isInternal() && + isset(self::$uncloneableExtensions[$object->getExtensionName()])) { + $cloneable = false; + } + + if ($cloneable === null) { + foreach (self::$uncloneableClasses as $class) { + if ($original instanceof $class) { + $cloneable = false; + + break; + } + } + } + + if ($cloneable === null) { + $cloneable = $object->isCloneable(); + } + + if ($cloneable === null && $object->hasMethod('__clone')) { + $method = $object->getMethod('__clone'); + $cloneable = $method->isPublic(); + } + + if ($cloneable === null) { + $cloneable = true; + } + + if ($cloneable) { + try { + return clone $original; + } catch (\Exception $e) { + return $original; + } + } else { + return $original; + } + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php b/vendor/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php new file mode 100644 index 00000000..72e59b15 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/InvocationMocker.php @@ -0,0 +1,186 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +use Exception; +use PHPUnit\Framework\ExpectationFailedException; +use PHPUnit\Framework\MockObject\Builder\InvocationMocker as BuilderInvocationMocker; +use PHPUnit\Framework\MockObject\Builder\Match; +use PHPUnit\Framework\MockObject\Builder\NamespaceMatch; +use PHPUnit\Framework\MockObject\Matcher\DeferredError; +use PHPUnit\Framework\MockObject\Matcher\Invocation as MatcherInvocation; +use PHPUnit\Framework\MockObject\Stub\MatcherCollection; + +/** + * Mocker for invocations which are sent from + * MockObject objects. + * + * Keeps track of all expectations and stubs as well as registering + * identifications for builders. + */ +class InvocationMocker implements Invokable, MatcherCollection, NamespaceMatch +{ + /** + * @var MatcherInvocation[] + */ + private $matchers = []; + + /** + * @var Match[] + */ + private $builderMap = []; + + /** + * @var string[] + */ + private $configurableMethods; + + /** + * @var bool + */ + private $returnValueGeneration; + + public function __construct(array $configurableMethods, bool $returnValueGeneration) + { + $this->configurableMethods = $configurableMethods; + $this->returnValueGeneration = $returnValueGeneration; + } + + public function addMatcher(MatcherInvocation $matcher): void + { + $this->matchers[] = $matcher; + } + + public function hasMatchers() + { + foreach ($this->matchers as $matcher) { + if ($matcher->hasMatchers()) { + return true; + } + } + + return false; + } + + /** + * @return null|bool + */ + public function lookupId($id) + { + if (isset($this->builderMap[$id])) { + return $this->builderMap[$id]; + } + } + + /** + * @throws RuntimeException + */ + public function registerId($id, Match $builder): void + { + if (isset($this->builderMap[$id])) { + throw new RuntimeException( + 'Match builder with id <' . $id . '> is already registered.' + ); + } + + $this->builderMap[$id] = $builder; + } + + /** + * @return BuilderInvocationMocker + */ + public function expects(MatcherInvocation $matcher) + { + return new BuilderInvocationMocker( + $this, + $matcher, + $this->configurableMethods + ); + } + + /** + * @throws Exception + */ + public function invoke(Invocation $invocation) + { + $exception = null; + $hasReturnValue = false; + $returnValue = null; + + foreach ($this->matchers as $match) { + try { + if ($match->matches($invocation)) { + $value = $match->invoked($invocation); + + if (!$hasReturnValue) { + $returnValue = $value; + $hasReturnValue = true; + } + } + } catch (Exception $e) { + $exception = $e; + } + } + + if ($exception !== null) { + throw $exception; + } + + if ($hasReturnValue) { + return $returnValue; + } + + if ($this->returnValueGeneration === false) { + $exception = new ExpectationFailedException( + \sprintf( + 'Return value inference disabled and no expectation set up for %s::%s()', + $invocation->getClassName(), + $invocation->getMethodName() + ) + ); + + if (\strtolower($invocation->getMethodName()) === '__tostring') { + $this->addMatcher(new DeferredError($exception)); + + return ''; + } + + throw $exception; + } + + return $invocation->generateReturnValue(); + } + + /** + * @return bool + */ + public function matches(Invocation $invocation) + { + foreach ($this->matchers as $matcher) { + if (!$matcher->matches($invocation)) { + return false; + } + } + + return true; + } + + /** + * @throws \PHPUnit\Framework\ExpectationFailedException + * + * @return bool + */ + public function verify() + { + foreach ($this->matchers as $matcher) { + $matcher->verify(); + } + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Invokable.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Invokable.php new file mode 100644 index 00000000..34118957 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Invokable.php @@ -0,0 +1,38 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +/** + * Interface for classes which can be invoked. + * + * The invocation will be taken from a mock object and passed to an object + * of this class. + */ +interface Invokable extends Verifiable +{ + /** + * Invokes the invocation object $invocation so that it can be checked for + * expectations or matched against stubs. + * + * @param Invocation $invocation The invocation object passed from mock object + * + * @return object + */ + public function invoke(Invocation $invocation); + + /** + * Checks if the invocation matches. + * + * @param Invocation $invocation The invocation object passed from mock object + * + * @return bool + */ + public function matches(Invocation $invocation); +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher.php new file mode 100644 index 00000000..e0552a6d --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher.php @@ -0,0 +1,309 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +use PHPUnit\Framework\ExpectationFailedException; +use PHPUnit\Framework\MockObject\Matcher\AnyInvokedCount; +use PHPUnit\Framework\MockObject\Matcher\AnyParameters; +use PHPUnit\Framework\MockObject\Matcher\Invocation as MatcherInvocation; +use PHPUnit\Framework\MockObject\Matcher\InvokedCount; +use PHPUnit\Framework\MockObject\Matcher\MethodName; +use PHPUnit\Framework\MockObject\Matcher\Parameters; +use PHPUnit\Framework\TestFailure; + +/** + * Main matcher which defines a full expectation using method, parameter and + * invocation matchers. + * This matcher encapsulates all the other matchers and allows the builder to + * set the specific matchers when the appropriate methods are called (once(), + * where() etc.). + * + * All properties are public so that they can easily be accessed by the builder. + */ +class Matcher implements MatcherInvocation +{ + /** + * @var MatcherInvocation + */ + private $invocationMatcher; + + /** + * @var mixed + */ + private $afterMatchBuilderId; + + /** + * @var bool + */ + private $afterMatchBuilderIsInvoked = false; + + /** + * @var MethodName + */ + private $methodNameMatcher; + + /** + * @var Parameters + */ + private $parametersMatcher; + + /** + * @var Stub + */ + private $stub; + + public function __construct(MatcherInvocation $invocationMatcher) + { + $this->invocationMatcher = $invocationMatcher; + } + + public function hasMatchers(): bool + { + return $this->invocationMatcher !== null && !$this->invocationMatcher instanceof AnyInvokedCount; + } + + public function hasMethodNameMatcher(): bool + { + return $this->methodNameMatcher !== null; + } + + public function getMethodNameMatcher(): MethodName + { + return $this->methodNameMatcher; + } + + public function setMethodNameMatcher(MethodName $matcher): void + { + $this->methodNameMatcher = $matcher; + } + + public function hasParametersMatcher(): bool + { + return $this->parametersMatcher !== null; + } + + public function getParametersMatcher(): Parameters + { + return $this->parametersMatcher; + } + + public function setParametersMatcher($matcher): void + { + $this->parametersMatcher = $matcher; + } + + public function setStub($stub): void + { + $this->stub = $stub; + } + + public function setAfterMatchBuilderId($id): void + { + $this->afterMatchBuilderId = $id; + } + + /** + * @throws \Exception + * @throws RuntimeException + * @throws ExpectationFailedException + */ + public function invoked(Invocation $invocation) + { + if ($this->invocationMatcher === null) { + throw new RuntimeException( + 'No invocation matcher is set' + ); + } + + if ($this->methodNameMatcher === null) { + throw new RuntimeException('No method matcher is set'); + } + + if ($this->afterMatchBuilderId !== null) { + $builder = $invocation->getObject() + ->__phpunit_getInvocationMocker() + ->lookupId($this->afterMatchBuilderId); + + if (!$builder) { + throw new RuntimeException( + \sprintf( + 'No builder found for match builder identification <%s>', + $this->afterMatchBuilderId + ) + ); + } + + $matcher = $builder->getMatcher(); + + if ($matcher && $matcher->invocationMatcher->hasBeenInvoked()) { + $this->afterMatchBuilderIsInvoked = true; + } + } + + $this->invocationMatcher->invoked($invocation); + + try { + if ($this->parametersMatcher !== null && + !$this->parametersMatcher->matches($invocation)) { + $this->parametersMatcher->verify(); + } + } catch (ExpectationFailedException $e) { + throw new ExpectationFailedException( + \sprintf( + "Expectation failed for %s when %s\n%s", + $this->methodNameMatcher->toString(), + $this->invocationMatcher->toString(), + $e->getMessage() + ), + $e->getComparisonFailure() + ); + } + + if ($this->stub) { + return $this->stub->invoke($invocation); + } + + return $invocation->generateReturnValue(); + } + + /** + * @throws RuntimeException + * @throws ExpectationFailedException + * + * @return bool + */ + public function matches(Invocation $invocation) + { + if ($this->afterMatchBuilderId !== null) { + $builder = $invocation->getObject() + ->__phpunit_getInvocationMocker() + ->lookupId($this->afterMatchBuilderId); + + if (!$builder) { + throw new RuntimeException( + \sprintf( + 'No builder found for match builder identification <%s>', + $this->afterMatchBuilderId + ) + ); + } + + $matcher = $builder->getMatcher(); + + if (!$matcher) { + return false; + } + + if (!$matcher->invocationMatcher->hasBeenInvoked()) { + return false; + } + } + + if ($this->invocationMatcher === null) { + throw new RuntimeException( + 'No invocation matcher is set' + ); + } + + if ($this->methodNameMatcher === null) { + throw new RuntimeException('No method matcher is set'); + } + + if (!$this->invocationMatcher->matches($invocation)) { + return false; + } + + try { + if (!$this->methodNameMatcher->matches($invocation)) { + return false; + } + } catch (ExpectationFailedException $e) { + throw new ExpectationFailedException( + \sprintf( + "Expectation failed for %s when %s\n%s", + $this->methodNameMatcher->toString(), + $this->invocationMatcher->toString(), + $e->getMessage() + ), + $e->getComparisonFailure() + ); + } + + return true; + } + + /** + * @throws RuntimeException + * @throws ExpectationFailedException + */ + public function verify(): void + { + if ($this->invocationMatcher === null) { + throw new RuntimeException( + 'No invocation matcher is set' + ); + } + + if ($this->methodNameMatcher === null) { + throw new RuntimeException('No method matcher is set'); + } + + try { + $this->invocationMatcher->verify(); + + if ($this->parametersMatcher === null) { + $this->parametersMatcher = new AnyParameters; + } + + $invocationIsAny = $this->invocationMatcher instanceof AnyInvokedCount; + $invocationIsNever = $this->invocationMatcher instanceof InvokedCount && $this->invocationMatcher->isNever(); + + if (!$invocationIsAny && !$invocationIsNever) { + $this->parametersMatcher->verify(); + } + } catch (ExpectationFailedException $e) { + throw new ExpectationFailedException( + \sprintf( + "Expectation failed for %s when %s.\n%s", + $this->methodNameMatcher->toString(), + $this->invocationMatcher->toString(), + TestFailure::exceptionToString($e) + ) + ); + } + } + + public function toString(): string + { + $list = []; + + if ($this->invocationMatcher !== null) { + $list[] = $this->invocationMatcher->toString(); + } + + if ($this->methodNameMatcher !== null) { + $list[] = 'where ' . $this->methodNameMatcher->toString(); + } + + if ($this->parametersMatcher !== null) { + $list[] = 'and ' . $this->parametersMatcher->toString(); + } + + if ($this->afterMatchBuilderId !== null) { + $list[] = 'after ' . $this->afterMatchBuilderId; + } + + if ($this->stub !== null) { + $list[] = 'will ' . $this->stub->toString(); + } + + return \implode(' ', $list); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyInvokedCount.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyInvokedCount.php new file mode 100644 index 00000000..ddabf92e --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyInvokedCount.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Matcher; + +/** + * Invocation matcher which checks if a method has been invoked zero or more + * times. This matcher will always match. + */ +class AnyInvokedCount extends InvokedRecorder +{ + public function toString(): string + { + return 'invoked zero or more times'; + } + + public function verify(): void + { + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyParameters.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyParameters.php new file mode 100644 index 00000000..48eb5610 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/AnyParameters.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Matcher; + +use PHPUnit\Framework\MockObject\Invocation as BaseInvocation; + +/** + * Invocation matcher which allows any parameters to a method. + */ +class AnyParameters extends StatelessInvocation +{ + public function toString(): string + { + return 'with any parameters'; + } + + /** + * @return bool + */ + public function matches(BaseInvocation $invocation) + { + return true; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php new file mode 100644 index 00000000..dca7f480 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/ConsecutiveParameters.php @@ -0,0 +1,137 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Matcher; + +use PHPUnit\Framework\Constraint\Constraint; +use PHPUnit\Framework\Constraint\IsEqual; +use PHPUnit\Framework\ExpectationFailedException; +use PHPUnit\Framework\InvalidParameterGroupException; +use PHPUnit\Framework\MockObject\Invocation as BaseInvocation; + +/** + * Invocation matcher which looks for sets of specific parameters in the invocations. + * + * Checks the parameters of the incoming invocations, the parameter list is + * checked against the defined constraints in $parameters. If the constraint + * is met it will return true in matches(). + * + * It takes a list of match groups and and increases a call index after each invocation. + * So the first invocation uses the first group of constraints, the second the next and so on. + */ +class ConsecutiveParameters extends StatelessInvocation +{ + /** + * @var array + */ + private $parameterGroups = []; + + /** + * @var array + */ + private $invocations = []; + + /** + * @throws \PHPUnit\Framework\Exception + */ + public function __construct(array $parameterGroups) + { + foreach ($parameterGroups as $index => $parameters) { + if (!\is_iterable($parameters)) { + throw new InvalidParameterGroupException( + \sprintf( + 'Parameter group #%d must be an array or Traversable, got %s', + $index, + \gettype($parameters) + ) + ); + } + + foreach ($parameters as $parameter) { + if (!$parameter instanceof Constraint) { + $parameter = new IsEqual($parameter); + } + + $this->parameterGroups[$index][] = $parameter; + } + } + } + + public function toString(): string + { + return 'with consecutive parameters'; + } + + /** + * @throws \PHPUnit\Framework\ExpectationFailedException + * + * @return bool + */ + public function matches(BaseInvocation $invocation) + { + $this->invocations[] = $invocation; + $callIndex = \count($this->invocations) - 1; + + $this->verifyInvocation($invocation, $callIndex); + + return false; + } + + public function verify(): void + { + foreach ($this->invocations as $callIndex => $invocation) { + $this->verifyInvocation($invocation, $callIndex); + } + } + + /** + * Verify a single invocation + * + * @param int $callIndex + * + * @throws ExpectationFailedException + */ + private function verifyInvocation(BaseInvocation $invocation, $callIndex): void + { + if (!isset($this->parameterGroups[$callIndex])) { + // no parameter assertion for this call index + return; + } + + if ($invocation === null) { + throw new ExpectationFailedException( + 'Mocked method does not exist.' + ); + } + + $parameters = $this->parameterGroups[$callIndex]; + + if (\count($invocation->getParameters()) < \count($parameters)) { + throw new ExpectationFailedException( + \sprintf( + 'Parameter count for invocation %s is too low.', + $invocation->toString() + ) + ); + } + + foreach ($parameters as $i => $parameter) { + $parameter->evaluate( + $invocation->getParameters()[$i], + \sprintf( + 'Parameter %s for invocation #%d %s does not match expected ' . + 'value.', + $i, + $callIndex, + $invocation->toString() + ) + ); + } + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/DeferredError.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/DeferredError.php new file mode 100644 index 00000000..fae95e4c --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/DeferredError.php @@ -0,0 +1,40 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Matcher; + +use PHPUnit\Framework\MockObject\Invocation as BaseInvocation; + +class DeferredError extends StatelessInvocation +{ + /** + * @var \Throwable + */ + private $exception; + + public function __construct(\Throwable $exception) + { + $this->exception = $exception; + } + + public function verify(): void + { + throw $this->exception; + } + + public function toString(): string + { + return ''; + } + + public function matches(BaseInvocation $invocation): bool + { + return true; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/Invocation.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/Invocation.php new file mode 100644 index 00000000..d3f93b29 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/Invocation.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Matcher; + +use PHPUnit\Framework\MockObject\Invocation as BaseInvocation; +use PHPUnit\Framework\MockObject\Verifiable; +use PHPUnit\Framework\SelfDescribing; + +/** + * Interface for classes which matches an invocation based on its + * method name, argument, order or call count. + */ +interface Invocation extends SelfDescribing, Verifiable +{ + /** + * Registers the invocation $invocation in the object as being invoked. + * This will only occur after matches() returns true which means the + * current invocation is the correct one. + * + * The matcher can store information from the invocation which can later + * be checked in verify(), or it can check the values directly and throw + * and exception if an expectation is not met. + * + * If the matcher is a stub it will also have a return value. + * + * @param BaseInvocation $invocation Object containing information on a mocked or stubbed method which was invoked + */ + public function invoked(BaseInvocation $invocation); + + /** + * Checks if the invocation $invocation matches the current rules. If it does + * the matcher will get the invoked() method called which should check if an + * expectation is met. + * + * @param BaseInvocation $invocation Object containing information on a mocked or stubbed method which was invoked + * + * @return bool + */ + public function matches(BaseInvocation $invocation); +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtIndex.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtIndex.php new file mode 100644 index 00000000..2584ef3b --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtIndex.php @@ -0,0 +1,81 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Matcher; + +use PHPUnit\Framework\ExpectationFailedException; +use PHPUnit\Framework\MockObject\Invocation as BaseInvocation; + +/** + * Invocation matcher which checks if a method was invoked at a certain index. + * + * If the expected index number does not match the current invocation index it + * will not match which means it skips all method and parameter matching. Only + * once the index is reached will the method and parameter start matching and + * verifying. + * + * If the index is never reached it will throw an exception in index. + */ +class InvokedAtIndex implements Invocation +{ + /** + * @var int + */ + private $sequenceIndex; + + /** + * @var int + */ + private $currentIndex = -1; + + /** + * @param int $sequenceIndex + */ + public function __construct($sequenceIndex) + { + $this->sequenceIndex = $sequenceIndex; + } + + public function toString(): string + { + return 'invoked at sequence index ' . $this->sequenceIndex; + } + + /** + * @return bool + */ + public function matches(BaseInvocation $invocation) + { + $this->currentIndex++; + + return $this->currentIndex == $this->sequenceIndex; + } + + public function invoked(BaseInvocation $invocation): void + { + } + + /** + * Verifies that the current expectation is valid. If everything is OK the + * code should just return, if not it must throw an exception. + * + * @throws ExpectationFailedException + */ + public function verify(): void + { + if ($this->currentIndex < $this->sequenceIndex) { + throw new ExpectationFailedException( + \sprintf( + 'The expected invocation at index %s was never reached.', + $this->sequenceIndex + ) + ); + } + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php new file mode 100644 index 00000000..ada506f6 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastCount.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Matcher; + +use PHPUnit\Framework\ExpectationFailedException; + +/** + * Invocation matcher which checks if a method has been invoked at least + * N times. + */ +class InvokedAtLeastCount extends InvokedRecorder +{ + /** + * @var int + */ + private $requiredInvocations; + + /** + * @param int $requiredInvocations + */ + public function __construct($requiredInvocations) + { + $this->requiredInvocations = $requiredInvocations; + } + + public function toString(): string + { + return 'invoked at least ' . $this->requiredInvocations . ' times'; + } + + /** + * Verifies that the current expectation is valid. If everything is OK the + * code should just return, if not it must throw an exception. + * + * @throws ExpectationFailedException + */ + public function verify(): void + { + $count = $this->getInvocationCount(); + + if ($count < $this->requiredInvocations) { + throw new ExpectationFailedException( + 'Expected invocation at least ' . $this->requiredInvocations . + ' times but it occurred ' . $count . ' time(s).' + ); + } + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php new file mode 100644 index 00000000..33b6b8fb --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtLeastOnce.php @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Matcher; + +use PHPUnit\Framework\ExpectationFailedException; + +/** + * Invocation matcher which checks if a method has been invoked at least one + * time. + * + * If the number of invocations is 0 it will throw an exception in verify. + */ +class InvokedAtLeastOnce extends InvokedRecorder +{ + public function toString(): string + { + return 'invoked at least once'; + } + + /** + * Verifies that the current expectation is valid. If everything is OK the + * code should just return, if not it must throw an exception. + * + * @throws ExpectationFailedException + */ + public function verify(): void + { + $count = $this->getInvocationCount(); + + if ($count < 1) { + throw new ExpectationFailedException( + 'Expected invocation at least once but it never occurred.' + ); + } + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtMostCount.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtMostCount.php new file mode 100644 index 00000000..981ef362 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedAtMostCount.php @@ -0,0 +1,55 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Matcher; + +use PHPUnit\Framework\ExpectationFailedException; + +/** + * Invocation matcher which checks if a method has been invoked at least + * N times. + */ +class InvokedAtMostCount extends InvokedRecorder +{ + /** + * @var int + */ + private $allowedInvocations; + + /** + * @param int $allowedInvocations + */ + public function __construct($allowedInvocations) + { + $this->allowedInvocations = $allowedInvocations; + } + + public function toString(): string + { + return 'invoked at most ' . $this->allowedInvocations . ' times'; + } + + /** + * Verifies that the current expectation is valid. If everything is OK the + * code should just return, if not it must throw an exception. + * + * @throws ExpectationFailedException + */ + public function verify(): void + { + $count = $this->getInvocationCount(); + + if ($count > $this->allowedInvocations) { + throw new ExpectationFailedException( + 'Expected invocation at most ' . $this->allowedInvocations . + ' times but it occurred ' . $count . ' time(s).' + ); + } + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedCount.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedCount.php new file mode 100644 index 00000000..f4cb1ab2 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedCount.php @@ -0,0 +1,106 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Matcher; + +use PHPUnit\Framework\ExpectationFailedException; +use PHPUnit\Framework\MockObject\Invocation as BaseInvocation; + +/** + * Invocation matcher which checks if a method has been invoked a certain amount + * of times. + * If the number of invocations exceeds the value it will immediately throw an + * exception, + * If the number is less it will later be checked in verify() and also throw an + * exception. + */ +class InvokedCount extends InvokedRecorder +{ + /** + * @var int + */ + private $expectedCount; + + /** + * @param int $expectedCount + */ + public function __construct($expectedCount) + { + $this->expectedCount = $expectedCount; + } + + /** + * @return bool + */ + public function isNever() + { + return $this->expectedCount === 0; + } + + public function toString(): string + { + return 'invoked ' . $this->expectedCount . ' time(s)'; + } + + /** + * @throws ExpectationFailedException + */ + public function invoked(BaseInvocation $invocation): void + { + parent::invoked($invocation); + + $count = $this->getInvocationCount(); + + if ($count > $this->expectedCount) { + $message = $invocation->toString() . ' '; + + switch ($this->expectedCount) { + case 0: + $message .= 'was not expected to be called.'; + + break; + + case 1: + $message .= 'was not expected to be called more than once.'; + + break; + + default: + $message .= \sprintf( + 'was not expected to be called more than %d times.', + $this->expectedCount + ); + } + + throw new ExpectationFailedException($message); + } + } + + /** + * Verifies that the current expectation is valid. If everything is OK the + * code should just return, if not it must throw an exception. + * + * @throws ExpectationFailedException + */ + public function verify(): void + { + $count = $this->getInvocationCount(); + + if ($count !== $this->expectedCount) { + throw new ExpectationFailedException( + \sprintf( + 'Method was expected to be called %d times, ' . + 'actually called %d times.', + $this->expectedCount, + $count + ) + ); + } + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedRecorder.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedRecorder.php new file mode 100644 index 00000000..216aae74 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/InvokedRecorder.php @@ -0,0 +1,63 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Matcher; + +use PHPUnit\Framework\MockObject\Invocation as BaseInvocation; + +/** + * Records invocations and provides convenience methods for checking them later + * on. + * This abstract class can be implemented by matchers which needs to check the + * number of times an invocation has occurred. + */ +abstract class InvokedRecorder implements Invocation +{ + /** + * @var BaseInvocation[] + */ + private $invocations = []; + + /** + * @return int + */ + public function getInvocationCount() + { + return \count($this->invocations); + } + + /** + * @return BaseInvocation[] + */ + public function getInvocations() + { + return $this->invocations; + } + + /** + * @return bool + */ + public function hasBeenInvoked() + { + return \count($this->invocations) > 0; + } + + public function invoked(BaseInvocation $invocation): void + { + $this->invocations[] = $invocation; + } + + /** + * @return bool + */ + public function matches(BaseInvocation $invocation) + { + return true; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/MethodName.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/MethodName.php new file mode 100644 index 00000000..7aea38a9 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/MethodName.php @@ -0,0 +1,68 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Matcher; + +use PHPUnit\Framework\Constraint\Constraint; +use PHPUnit\Framework\Constraint\IsEqual; +use PHPUnit\Framework\MockObject\Invocation as BaseInvocation; +use PHPUnit\Util\InvalidArgumentHelper; + +/** + * Invocation matcher which looks for a specific method name in the invocations. + * + * Checks the method name all incoming invocations, the name is checked against + * the defined constraint $constraint. If the constraint is met it will return + * true in matches(). + */ +class MethodName extends StatelessInvocation +{ + /** + * @var Constraint + */ + private $constraint; + + /** + * @param Constraint|string + * + * @throws Constraint + * @throws \PHPUnit\Framework\Exception + */ + public function __construct($constraint) + { + if (!$constraint instanceof Constraint) { + if (!\is_string($constraint)) { + throw InvalidArgumentHelper::factory(1, 'string'); + } + + $constraint = new IsEqual( + $constraint, + 0, + 10, + false, + true + ); + } + + $this->constraint = $constraint; + } + + public function toString(): string + { + return 'method name ' . $this->constraint->toString(); + } + + /** + * @return bool + */ + public function matches(BaseInvocation $invocation) + { + return $this->constraint->evaluate($invocation->getMethodName(), '', true); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/Parameters.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/Parameters.php new file mode 100644 index 00000000..a74e3a3f --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/Parameters.php @@ -0,0 +1,158 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Matcher; + +use PHPUnit\Framework\Constraint\Constraint; +use PHPUnit\Framework\Constraint\IsAnything; +use PHPUnit\Framework\Constraint\IsEqual; +use PHPUnit\Framework\ExpectationFailedException; +use PHPUnit\Framework\MockObject\Invocation as BaseInvocation; + +/** + * Invocation matcher which looks for specific parameters in the invocations. + * + * Checks the parameters of all incoming invocations, the parameter list is + * checked against the defined constraints in $parameters. If the constraint + * is met it will return true in matches(). + */ +class Parameters extends StatelessInvocation +{ + /** + * @var Constraint[] + */ + private $parameters = []; + + /** + * @var BaseInvocation + */ + private $invocation; + + /** + * @var ExpectationFailedException + */ + private $parameterVerificationResult; + + /** + * @throws \PHPUnit\Framework\Exception + */ + public function __construct(array $parameters) + { + foreach ($parameters as $parameter) { + if (!($parameter instanceof Constraint)) { + $parameter = new IsEqual( + $parameter + ); + } + + $this->parameters[] = $parameter; + } + } + + public function toString(): string + { + $text = 'with parameter'; + + foreach ($this->parameters as $index => $parameter) { + if ($index > 0) { + $text .= ' and'; + } + + $text .= ' ' . $index . ' ' . $parameter->toString(); + } + + return $text; + } + + /** + * @throws \Exception + * + * @return bool + */ + public function matches(BaseInvocation $invocation) + { + $this->invocation = $invocation; + $this->parameterVerificationResult = null; + + try { + $this->parameterVerificationResult = $this->verify(); + + return $this->parameterVerificationResult; + } catch (ExpectationFailedException $e) { + $this->parameterVerificationResult = $e; + + throw $this->parameterVerificationResult; + } + } + + /** + * Checks if the invocation $invocation matches the current rules. If it + * does the matcher will get the invoked() method called which should check + * if an expectation is met. + * + * @throws ExpectationFailedException + * + * @return bool + */ + public function verify() + { + if (isset($this->parameterVerificationResult)) { + return $this->guardAgainstDuplicateEvaluationOfParameterConstraints(); + } + + if ($this->invocation === null) { + throw new ExpectationFailedException('Mocked method does not exist.'); + } + + if (\count($this->invocation->getParameters()) < \count($this->parameters)) { + $message = 'Parameter count for invocation %s is too low.'; + + // The user called `->with($this->anything())`, but may have meant + // `->withAnyParameters()`. + // + // @see https://github.com/sebastianbergmann/phpunit-mock-objects/issues/199 + if (\count($this->parameters) === 1 && + \get_class($this->parameters[0]) === IsAnything::class) { + $message .= "\nTo allow 0 or more parameters with any value, omit ->with() or use ->withAnyParameters() instead."; + } + + throw new ExpectationFailedException( + \sprintf($message, $this->invocation->toString()) + ); + } + + foreach ($this->parameters as $i => $parameter) { + $parameter->evaluate( + $this->invocation->getParameters()[$i], + \sprintf( + 'Parameter %s for invocation %s does not match expected ' . + 'value.', + $i, + $this->invocation->toString() + ) + ); + } + + return true; + } + + /** + * @throws ExpectationFailedException + * + * @return bool + */ + private function guardAgainstDuplicateEvaluationOfParameterConstraints() + { + if ($this->parameterVerificationResult instanceof \Exception) { + throw $this->parameterVerificationResult; + } + + return (bool) $this->parameterVerificationResult; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/StatelessInvocation.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/StatelessInvocation.php new file mode 100644 index 00000000..f4e50a62 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Matcher/StatelessInvocation.php @@ -0,0 +1,50 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Matcher; + +use PHPUnit\Framework\MockObject\Invocation as BaseInvocation; + +/** + * Invocation matcher which does not care about previous state from earlier + * invocations. + * + * This abstract class can be implemented by matchers which does not care about + * state but only the current run-time value of the invocation itself. + */ +abstract class StatelessInvocation implements Invocation +{ + /** + * Registers the invocation $invocation in the object as being invoked. + * This will only occur after matches() returns true which means the + * current invocation is the correct one. + * + * The matcher can store information from the invocation which can later + * be checked in verify(), or it can check the values directly and throw + * and exception if an expectation is not met. + * + * If the matcher is a stub it will also have a return value. + * + * @param BaseInvocation $invocation Object containing information on a mocked or stubbed method which was invoked + */ + public function invoked(BaseInvocation $invocation) + { + } + + /** + * Checks if the invocation $invocation matches the current rules. If it does + * the matcher will get the invoked() method called which should check if an + * expectation is met. + * + * @return bool + */ + public function verify() + { + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php b/vendor/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php new file mode 100644 index 00000000..3199afd6 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/MockBuilder.php @@ -0,0 +1,408 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +use PHPUnit\Framework\TestCase; + +/** + * Implementation of the Builder pattern for Mock objects. + */ +class MockBuilder +{ + /** + * @var TestCase + */ + private $testCase; + + /** + * @var string + */ + private $type; + + /** + * @var array + */ + private $methods = []; + + /** + * @var array + */ + private $methodsExcept = []; + + /** + * @var string + */ + private $mockClassName = ''; + + /** + * @var array + */ + private $constructorArgs = []; + + /** + * @var bool + */ + private $originalConstructor = true; + + /** + * @var bool + */ + private $originalClone = true; + + /** + * @var bool + */ + private $autoload = true; + + /** + * @var bool + */ + private $cloneArguments = false; + + /** + * @var bool + */ + private $callOriginalMethods = false; + + /** + * @var object + */ + private $proxyTarget; + + /** + * @var bool + */ + private $allowMockingUnknownTypes = true; + + /** + * @var bool + */ + private $returnValueGeneration = true; + + /** + * @var Generator + */ + private $generator; + + /** + * @param array|string $type + */ + public function __construct(TestCase $testCase, $type) + { + $this->testCase = $testCase; + $this->type = $type; + $this->generator = new Generator; + } + + /** + * Creates a mock object using a fluent interface. + * + * @return MockObject + */ + public function getMock() + { + $object = $this->generator->getMock( + $this->type, + $this->methods, + $this->constructorArgs, + $this->mockClassName, + $this->originalConstructor, + $this->originalClone, + $this->autoload, + $this->cloneArguments, + $this->callOriginalMethods, + $this->proxyTarget, + $this->allowMockingUnknownTypes, + $this->returnValueGeneration + ); + + $this->testCase->registerMockObject($object); + + return $object; + } + + /** + * Creates a mock object for an abstract class using a fluent interface. + * + * @return MockObject + */ + public function getMockForAbstractClass() + { + $object = $this->generator->getMockForAbstractClass( + $this->type, + $this->constructorArgs, + $this->mockClassName, + $this->originalConstructor, + $this->originalClone, + $this->autoload, + $this->methods, + $this->cloneArguments + ); + + $this->testCase->registerMockObject($object); + + return $object; + } + + /** + * Creates a mock object for a trait using a fluent interface. + * + * @return MockObject + */ + public function getMockForTrait() + { + $object = $this->generator->getMockForTrait( + $this->type, + $this->constructorArgs, + $this->mockClassName, + $this->originalConstructor, + $this->originalClone, + $this->autoload, + $this->methods, + $this->cloneArguments + ); + + $this->testCase->registerMockObject($object); + + return $object; + } + + /** + * Specifies the subset of methods to mock. Default is to mock none of them. + * + * @return MockBuilder + */ + public function setMethods(array $methods = null) + { + $this->methods = $methods; + + return $this; + } + + /** + * Specifies the subset of methods to not mock. Default is to mock all of them. + * + * @return MockBuilder + */ + public function setMethodsExcept(array $methods = []) + { + $this->methodsExcept = $methods; + + $this->setMethods( + \array_diff( + $this->generator->getClassMethods($this->type), + $this->methodsExcept + ) + ); + + return $this; + } + + /** + * Specifies the arguments for the constructor. + * + * @return MockBuilder + */ + public function setConstructorArgs(array $args) + { + $this->constructorArgs = $args; + + return $this; + } + + /** + * Specifies the name for the mock class. + * + * @param string $name + * + * @return MockBuilder + */ + public function setMockClassName($name) + { + $this->mockClassName = $name; + + return $this; + } + + /** + * Disables the invocation of the original constructor. + * + * @return MockBuilder + */ + public function disableOriginalConstructor() + { + $this->originalConstructor = false; + + return $this; + } + + /** + * Enables the invocation of the original constructor. + * + * @return MockBuilder + */ + public function enableOriginalConstructor() + { + $this->originalConstructor = true; + + return $this; + } + + /** + * Disables the invocation of the original clone constructor. + * + * @return MockBuilder + */ + public function disableOriginalClone() + { + $this->originalClone = false; + + return $this; + } + + /** + * Enables the invocation of the original clone constructor. + * + * @return MockBuilder + */ + public function enableOriginalClone() + { + $this->originalClone = true; + + return $this; + } + + /** + * Disables the use of class autoloading while creating the mock object. + * + * @return MockBuilder + */ + public function disableAutoload() + { + $this->autoload = false; + + return $this; + } + + /** + * Enables the use of class autoloading while creating the mock object. + * + * @return MockBuilder + */ + public function enableAutoload() + { + $this->autoload = true; + + return $this; + } + + /** + * Disables the cloning of arguments passed to mocked methods. + * + * @return MockBuilder + */ + public function disableArgumentCloning() + { + $this->cloneArguments = false; + + return $this; + } + + /** + * Enables the cloning of arguments passed to mocked methods. + * + * @return MockBuilder + */ + public function enableArgumentCloning() + { + $this->cloneArguments = true; + + return $this; + } + + /** + * Enables the invocation of the original methods. + * + * @return MockBuilder + */ + public function enableProxyingToOriginalMethods() + { + $this->callOriginalMethods = true; + + return $this; + } + + /** + * Disables the invocation of the original methods. + * + * @return MockBuilder + */ + public function disableProxyingToOriginalMethods() + { + $this->callOriginalMethods = false; + $this->proxyTarget = null; + + return $this; + } + + /** + * Sets the proxy target. + * + * @param object $object + * + * @return MockBuilder + */ + public function setProxyTarget($object) + { + $this->proxyTarget = $object; + + return $this; + } + + /** + * @return MockBuilder + */ + public function allowMockingUnknownTypes() + { + $this->allowMockingUnknownTypes = true; + + return $this; + } + + /** + * @return MockBuilder + */ + public function disallowMockingUnknownTypes() + { + $this->allowMockingUnknownTypes = false; + + return $this; + } + + /** + * @return MockBuilder + */ + public function enableAutoReturnValueGeneration() + { + $this->returnValueGeneration = true; + + return $this; + } + + /** + * @return MockBuilder + */ + public function disableAutoReturnValueGeneration() + { + $this->returnValueGeneration = false; + + return $this; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/MockMethod.php b/vendor/phpunit/phpunit/src/Framework/MockObject/MockMethod.php new file mode 100644 index 00000000..f02ba756 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/MockMethod.php @@ -0,0 +1,355 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +use ReflectionClass; +use ReflectionException; +use ReflectionMethod; +use Text_Template; + +final class MockMethod +{ + /** + * @var Text_Template[] + */ + private static $templates = []; + + /** + * @var string + */ + private $className; + + /** + * @var string + */ + private $methodName; + + /** + * @var bool + */ + private $cloneArguments; + + /** + * @var string string + */ + private $modifier; + + /** + * @var string + */ + private $argumentsForDeclaration; + + /** + * @var string + */ + private $argumentsForCall; + + /** + * @var string + */ + private $returnType; + + /** + * @var string + */ + private $reference; + + /** + * @var bool + */ + private $callOriginalMethod; + + /** + * @var bool + */ + private $static; + + /** + * @var ?string + */ + private $deprecation; + + /** + * @var bool + */ + private $allowsReturnNull; + + public static function fromReflection(ReflectionMethod $method, bool $callOriginalMethod, bool $cloneArguments): self + { + if ($method->isPrivate()) { + $modifier = 'private'; + } elseif ($method->isProtected()) { + $modifier = 'protected'; + } else { + $modifier = 'public'; + } + + if ($method->isStatic()) { + $modifier .= ' static'; + } + + if ($method->returnsReference()) { + $reference = '&'; + } else { + $reference = ''; + } + + if ($method->hasReturnType()) { + $returnType = $method->getReturnType()->getName(); + } else { + $returnType = ''; + } + + $docComment = $method->getDocComment(); + + if (\is_string($docComment) + && \preg_match('#\*[ \t]*+@deprecated[ \t]*+(.*?)\r?+\n[ \t]*+\*(?:[ \t]*+@|/$)#s', $docComment, $deprecation) + ) { + $deprecation = \trim(\preg_replace('#[ \t]*\r?\n[ \t]*+\*[ \t]*+#', ' ', $deprecation[1])); + } else { + $deprecation = null; + } + + return new self( + $method->getDeclaringClass()->getName(), + $method->getName(), + $cloneArguments, + $modifier, + self::getMethodParameters($method), + self::getMethodParameters($method, true), + $returnType, + $reference, + $callOriginalMethod, + $method->isStatic(), + $deprecation, + $method->hasReturnType() && $method->getReturnType()->allowsNull() + ); + } + + public static function fromName(string $fullClassName, string $methodName, bool $cloneArguments): self + { + return new self( + $fullClassName, + $methodName, + $cloneArguments, + 'public', + '', + '', + '', + '', + false, + false, + null, + false + ); + } + + public function __construct(string $className, string $methodName, bool $cloneArguments, string $modifier, string $argumentsForDeclaration, string $argumentsForCall, string $returnType, string $reference, bool $callOriginalMethod, bool $static, ?string $deprecation, bool $allowsReturnNull) + { + $this->className = $className; + $this->methodName = $methodName; + $this->cloneArguments = $cloneArguments; + $this->modifier = $modifier; + $this->argumentsForDeclaration = $argumentsForDeclaration; + $this->argumentsForCall = $argumentsForCall; + $this->returnType = $returnType; + $this->reference = $reference; + $this->callOriginalMethod = $callOriginalMethod; + $this->static = $static; + $this->deprecation = $deprecation; + $this->allowsReturnNull = $allowsReturnNull; + } + + public function getName(): string + { + return $this->methodName; + } + + /** + * @throws \ReflectionException + * @throws \PHPUnit\Framework\MockObject\RuntimeException + * @throws \InvalidArgumentException + */ + public function generateCode(): string + { + if ($this->static) { + $templateFile = 'mocked_static_method.tpl'; + } elseif ($this->returnType === 'void') { + $templateFile = \sprintf( + '%s_method_void.tpl', + $this->callOriginalMethod ? 'proxied' : 'mocked' + ); + } else { + $templateFile = \sprintf( + '%s_method.tpl', + $this->callOriginalMethod ? 'proxied' : 'mocked' + ); + } + + $returnType = $this->returnType; + // @see https://bugs.php.net/bug.php?id=70722 + if ($returnType === 'self') { + $returnType = $this->className; + } + + // @see https://github.com/sebastianbergmann/phpunit-mock-objects/issues/406 + if ($returnType === 'parent') { + $reflector = new ReflectionClass($this->className); + + $parentClass = $reflector->getParentClass(); + + if ($parentClass === false) { + throw new RuntimeException( + \sprintf( + 'Cannot mock %s::%s because "parent" return type declaration is used but %s does not have a parent class', + $this->className, + $this->methodName, + $this->className + ) + ); + } + + $returnType = $parentClass->getName(); + } + + $deprecation = $this->deprecation; + + if (null !== $this->deprecation) { + $deprecation = "The $this->className::$this->methodName method is deprecated ($this->deprecation)."; + $deprecationTemplate = $this->getTemplate('deprecation.tpl'); + + $deprecationTemplate->setVar([ + 'deprecation' => \var_export($deprecation, true), + ]); + + $deprecation = $deprecationTemplate->render(); + } + + $template = $this->getTemplate($templateFile); + + $template->setVar( + [ + 'arguments_decl' => $this->argumentsForDeclaration, + 'arguments_call' => $this->argumentsForCall, + 'return_delim' => $returnType ? ': ' : '', + 'return_type' => $this->allowsReturnNull ? '?' . $returnType : $returnType, + 'arguments_count' => !empty($this->argumentsForCall) ? \substr_count($this->argumentsForCall, ',') + 1 : 0, + 'class_name' => $this->className, + 'method_name' => $this->methodName, + 'modifier' => $this->modifier, + 'reference' => $this->reference, + 'clone_arguments' => $this->cloneArguments ? 'true' : 'false', + 'deprecation' => $deprecation, + ] + ); + + return $template->render(); + } + + private function getTemplate(string $template): Text_Template + { + $filename = __DIR__ . \DIRECTORY_SEPARATOR . 'Generator' . \DIRECTORY_SEPARATOR . $template; + + if (!isset(self::$templates[$filename])) { + self::$templates[$filename] = new Text_Template($filename); + } + + return self::$templates[$filename]; + } + + /** + * Returns the parameters of a function or method. + * + * @throws RuntimeException + */ + private static function getMethodParameters(ReflectionMethod $method, bool $forCall = false): string + { + $parameters = []; + + foreach ($method->getParameters() as $i => $parameter) { + $name = '$' . $parameter->getName(); + + /* Note: PHP extensions may use empty names for reference arguments + * or "..." for methods taking a variable number of arguments. + */ + if ($name === '$' || $name === '$...') { + $name = '$arg' . $i; + } + + if ($parameter->isVariadic()) { + if ($forCall) { + continue; + } + + $name = '...' . $name; + } + + $nullable = ''; + $default = ''; + $reference = ''; + $typeDeclaration = ''; + + if (!$forCall) { + if ($parameter->hasType() && $parameter->allowsNull()) { + $nullable = '?'; + } + + if ($parameter->hasType() && $parameter->getType()->getName() !== 'self') { + $typeDeclaration = $parameter->getType()->getName() . ' '; + } else { + try { + $class = $parameter->getClass(); + } catch (ReflectionException $e) { + throw new RuntimeException( + \sprintf( + 'Cannot mock %s::%s() because a class or ' . + 'interface used in the signature is not loaded', + $method->getDeclaringClass()->getName(), + $method->getName() + ), + 0, + $e + ); + } + + if ($class !== null) { + $typeDeclaration = $class->getName() . ' '; + } + } + + if (!$parameter->isVariadic()) { + if ($parameter->isDefaultValueAvailable()) { + try { + $value = \var_export($parameter->getDefaultValue(), true); + } catch (\ReflectionException $e) { + throw new RuntimeException( + $e->getMessage(), + (int) $e->getCode(), + $e + ); + } + + $default = ' = ' . $value; + } elseif ($parameter->isOptional()) { + $default = ' = null'; + } + } + } + + if ($parameter->isPassedByReference()) { + $reference = '&'; + } + + $parameters[] = $nullable . $typeDeclaration . $reference . $name . $default; + } + + return \implode(', ', $parameters); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php b/vendor/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php new file mode 100644 index 00000000..b81536a7 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/MockMethodSet.php @@ -0,0 +1,36 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +final class MockMethodSet +{ + /** + * @var MockMethod[] + */ + private $methods = []; + + public function addMethods(MockMethod ...$methods): void + { + foreach ($methods as $method) { + $this->methods[\strtolower($method->getName())] = $method; + } + } + + public function asArray(): array + { + return \array_values($this->methods); + } + + public function hasMethod(string $methodName): bool + { + return \array_key_exists(\strtolower($methodName), $this->methods); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/MockObject.php b/vendor/phpunit/phpunit/src/Framework/MockObject/MockObject.php new file mode 100644 index 00000000..cb5e51e2 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/MockObject.php @@ -0,0 +1,57 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use PHPUnit\Framework\ExpectationFailedException; +use PHPUnit\Framework\MockObject\Builder\InvocationMocker; +use PHPUnit\Framework\MockObject\Matcher\Invocation; + +/** + * Interface for all mock objects which are generated by + * MockBuilder. + * + * @method InvocationMocker method($constraint) + * + * @deprecated Use PHPUnit\Framework\MockObject\MockObject instead + */ +interface PHPUnit_Framework_MockObject_MockObject /*extends Verifiable*/ +{ + /** + * @return InvocationMocker + */ + public function __phpunit_setOriginalObject($originalObject); + + /** + * @return InvocationMocker + */ + public function __phpunit_getInvocationMocker(); + + /** + * Verifies that the current expectation is valid. If everything is OK the + * code should just return, if not it must throw an exception. + * + * @throws ExpectationFailedException + */ + public function __phpunit_verify(bool $unsetInvocationMocker = true); + + /** + * @return bool + */ + public function __phpunit_hasMatchers(); + + public function __phpunit_setReturnValueGeneration(bool $returnValueGeneration); + + /** + * Registers a new expectation in the mock object and returns the match + * object which can be infused with further details. + * + * @return InvocationMocker + */ + public function expects(Invocation $matcher); +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub.php new file mode 100644 index 00000000..b0f04f52 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +use PHPUnit\Framework\SelfDescribing; + +/** + * An object that stubs the process of a normal method for a mock object. + * + * The stub object will replace the code for the stubbed method and return a + * specific value instead of the original value. + */ +interface Stub extends SelfDescribing +{ + /** + * Fakes the processing of the invocation $invocation by returning a + * specific value. + * + * @param Invocation $invocation The invocation which was mocked and matched by the current method and argument matchers + */ + public function invoke(Invocation $invocation); +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php new file mode 100644 index 00000000..ee60927a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ConsecutiveCalls.php @@ -0,0 +1,56 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Stub; + +use PHPUnit\Framework\MockObject\Invocation; +use PHPUnit\Framework\MockObject\Stub; +use SebastianBergmann\Exporter\Exporter; + +/** + * Stubs a method by returning a user-defined stack of values. + */ +class ConsecutiveCalls implements Stub +{ + /** + * @var array + */ + private $stack; + + /** + * @var mixed + */ + private $value; + + public function __construct(array $stack) + { + $this->stack = $stack; + } + + public function invoke(Invocation $invocation) + { + $this->value = \array_shift($this->stack); + + if ($this->value instanceof Stub) { + $this->value = $this->value->invoke($invocation); + } + + return $this->value; + } + + public function toString(): string + { + $exporter = new Exporter; + + return \sprintf( + 'return user-specified value %s', + $exporter->export($this->value) + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php new file mode 100644 index 00000000..3080a6e2 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/Exception.php @@ -0,0 +1,42 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Stub; + +use PHPUnit\Framework\MockObject\Invocation; +use PHPUnit\Framework\MockObject\Stub; +use SebastianBergmann\Exporter\Exporter; + +/** + * Stubs a method by raising a user-defined exception. + */ +class Exception implements Stub +{ + private $exception; + + public function __construct(\Throwable $exception) + { + $this->exception = $exception; + } + + public function invoke(Invocation $invocation): void + { + throw $this->exception; + } + + public function toString(): string + { + $exporter = new Exporter; + + return \sprintf( + 'raise user-specified exception %s', + $exporter->export($this->exception) + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/MatcherCollection.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/MatcherCollection.php new file mode 100644 index 00000000..f53834aa --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/MatcherCollection.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Stub; + +use PHPUnit\Framework\MockObject\Matcher\Invocation; + +/** + * Stubs a method by returning a user-defined value. + */ +interface MatcherCollection +{ + /** + * Adds a new matcher to the collection which can be used as an expectation + * or a stub. + * + * @param Invocation $matcher Matcher for invocations to mock objects + */ + public function addMatcher(Invocation $matcher); +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php new file mode 100644 index 00000000..3e63d787 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnArgument.php @@ -0,0 +1,41 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Stub; + +use PHPUnit\Framework\MockObject\Invocation; +use PHPUnit\Framework\MockObject\Stub; + +/** + * Stubs a method by returning an argument that was passed to the mocked method. + */ +class ReturnArgument implements Stub +{ + /** + * @var int + */ + private $argumentIndex; + + public function __construct($argumentIndex) + { + $this->argumentIndex = $argumentIndex; + } + + public function invoke(Invocation $invocation) + { + if (isset($invocation->getParameters()[$this->argumentIndex])) { + return $invocation->getParameters()[$this->argumentIndex]; + } + } + + public function toString(): string + { + return \sprintf('return argument #%d', $this->argumentIndex); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php new file mode 100644 index 00000000..933e9ca7 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnCallback.php @@ -0,0 +1,52 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Stub; + +use PHPUnit\Framework\MockObject\Invocation; +use PHPUnit\Framework\MockObject\Stub; + +class ReturnCallback implements Stub +{ + private $callback; + + public function __construct($callback) + { + $this->callback = $callback; + } + + public function invoke(Invocation $invocation) + { + return \call_user_func_array($this->callback, $invocation->getParameters()); + } + + public function toString(): string + { + if (\is_array($this->callback)) { + if (\is_object($this->callback[0])) { + $class = \get_class($this->callback[0]); + $type = '->'; + } else { + $class = $this->callback[0]; + $type = '::'; + } + + return \sprintf( + 'return result of user defined callback %s%s%s() with the ' . + 'passed arguments', + $class, + $type, + $this->callback[1] + ); + } + + return 'return result of user defined callback ' . $this->callback . + ' with the passed arguments'; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php new file mode 100644 index 00000000..2d784427 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnReference.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Stub; + +use PHPUnit\Framework\MockObject\Invocation; +use PHPUnit\Framework\MockObject\Stub; +use SebastianBergmann\Exporter\Exporter; + +/** + * Stubs a method by returning a user-defined reference to a value. + */ +class ReturnReference implements Stub +{ + /** + * @var mixed + */ + private $reference; + + public function __construct(&$reference) + { + $this->reference = &$reference; + } + + public function invoke(Invocation $invocation) + { + return $this->reference; + } + + public function toString(): string + { + $exporter = new Exporter; + + return \sprintf( + 'return user-specified reference %s', + $exporter->export($this->reference) + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php new file mode 100644 index 00000000..4261a6a6 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnSelf.php @@ -0,0 +1,38 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Stub; + +use PHPUnit\Framework\MockObject\Invocation; +use PHPUnit\Framework\MockObject\Invocation\ObjectInvocation; +use PHPUnit\Framework\MockObject\RuntimeException; +use PHPUnit\Framework\MockObject\Stub; + +/** + * Stubs a method by returning the current object. + */ +class ReturnSelf implements Stub +{ + public function invoke(Invocation $invocation) + { + if (!$invocation instanceof ObjectInvocation) { + throw new RuntimeException( + 'The current object can only be returned when mocking an ' . + 'object, not a static class.' + ); + } + + return $invocation->getObject(); + } + + public function toString(): string + { + return 'return the current object'; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php new file mode 100644 index 00000000..76dc7b64 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnStub.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Stub; + +use PHPUnit\Framework\MockObject\Invocation; +use PHPUnit\Framework\MockObject\Stub; +use SebastianBergmann\Exporter\Exporter; + +/** + * Stubs a method by returning a user-defined value. + */ +class ReturnStub implements Stub +{ + /** + * @var mixed + */ + private $value; + + public function __construct($value) + { + $this->value = $value; + } + + public function invoke(Invocation $invocation) + { + return $this->value; + } + + public function toString(): string + { + $exporter = new Exporter; + + return \sprintf( + 'return user-specified value %s', + $exporter->export($this->value) + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php new file mode 100644 index 00000000..195cc163 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Stub/ReturnValueMap.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject\Stub; + +use PHPUnit\Framework\MockObject\Invocation; +use PHPUnit\Framework\MockObject\Stub; + +/** + * Stubs a method by returning a value from a map. + */ +class ReturnValueMap implements Stub +{ + /** + * @var array + */ + private $valueMap; + + public function __construct(array $valueMap) + { + $this->valueMap = $valueMap; + } + + public function invoke(Invocation $invocation) + { + $parameterCount = \count($invocation->getParameters()); + + foreach ($this->valueMap as $map) { + if (!\is_array($map) || $parameterCount !== (\count($map) - 1)) { + continue; + } + + $return = \array_pop($map); + + if ($invocation->getParameters() === $map) { + return $return; + } + } + } + + public function toString(): string + { + return 'return value from a map'; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/MockObject/Verifiable.php b/vendor/phpunit/phpunit/src/Framework/MockObject/Verifiable.php new file mode 100644 index 00000000..1e18846b --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/MockObject/Verifiable.php @@ -0,0 +1,26 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework\MockObject; + +use PHPUnit\Framework\ExpectationFailedException; + +/** + * Interface for classes which must verify a given expectation. + */ +interface Verifiable +{ + /** + * Verifies that the current expectation is valid. If everything is OK the + * code should just return, if not it must throw an exception. + * + * @throws ExpectationFailedException + */ + public function verify(); +} diff --git a/vendor/phpunit/phpunit/src/Framework/OutputError.php b/vendor/phpunit/phpunit/src/Framework/OutputError.php new file mode 100644 index 00000000..5b1517b7 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/OutputError.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +class OutputError extends AssertionFailedError +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/RiskyTest.php b/vendor/phpunit/phpunit/src/Framework/RiskyTest.php new file mode 100644 index 00000000..e0132178 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/RiskyTest.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +interface RiskyTest +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/RiskyTestError.php b/vendor/phpunit/phpunit/src/Framework/RiskyTestError.php new file mode 100644 index 00000000..fe1e3a45 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/RiskyTestError.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +class RiskyTestError extends AssertionFailedError implements RiskyTest +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/SelfDescribing.php b/vendor/phpunit/phpunit/src/Framework/SelfDescribing.php new file mode 100644 index 00000000..faf92904 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/SelfDescribing.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +/** + * Interface for classes that can return a description of itself. + */ +interface SelfDescribing +{ + /** + * Returns a string representation of the object. + */ + public function toString(): string; +} diff --git a/vendor/phpunit/phpunit/src/Framework/SkippedTest.php b/vendor/phpunit/phpunit/src/Framework/SkippedTest.php new file mode 100644 index 00000000..8151f2d8 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/SkippedTest.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +interface SkippedTest +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/SkippedTestCase.php b/vendor/phpunit/phpunit/src/Framework/SkippedTestCase.php new file mode 100644 index 00000000..cf88d7b3 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/SkippedTestCase.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +/** + * A skipped test case + */ +class SkippedTestCase extends TestCase +{ + /** + * @var string + */ + protected $message = ''; + + /** + * @var bool + */ + protected $backupGlobals = false; + + /** + * @var bool + */ + protected $backupStaticAttributes = false; + + /** + * @var bool + */ + protected $runTestInSeparateProcess = false; + + /** + * @var bool + */ + protected $useErrorHandler = false; + + /** + * @var bool + */ + protected $useOutputBuffering = false; + + public function __construct(string $className, string $methodName, string $message = '') + { + parent::__construct($className . '::' . $methodName); + + $this->message = $message; + } + + public function getMessage(): string + { + return $this->message; + } + + /** + * Returns a string representation of the test case. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function toString(): string + { + return $this->getName(); + } + + /** + * @throws Exception + */ + protected function runTest(): void + { + $this->markTestSkipped($this->message); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/SkippedTestError.php b/vendor/phpunit/phpunit/src/Framework/SkippedTestError.php new file mode 100644 index 00000000..0893a5db --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/SkippedTestError.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +class SkippedTestError extends AssertionFailedError implements SkippedTest +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php b/vendor/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php new file mode 100644 index 00000000..c74015b2 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/SkippedTestSuiteError.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +class SkippedTestSuiteError extends AssertionFailedError implements SkippedTest +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/SyntheticError.php b/vendor/phpunit/phpunit/src/Framework/SyntheticError.php new file mode 100644 index 00000000..db2280f3 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/SyntheticError.php @@ -0,0 +1,61 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +/** + * Creates a synthetic failed assertion. + */ +class SyntheticError extends AssertionFailedError +{ + /** + * The synthetic file. + * + * @var string + */ + protected $syntheticFile = ''; + + /** + * The synthetic line number. + * + * @var int + */ + protected $syntheticLine = 0; + + /** + * The synthetic trace. + * + * @var array + */ + protected $syntheticTrace = []; + + public function __construct(string $message, int $code, string $file, int $line, array $trace) + { + parent::__construct($message, $code); + + $this->syntheticFile = $file; + $this->syntheticLine = $line; + $this->syntheticTrace = $trace; + } + + public function getSyntheticFile(): string + { + return $this->syntheticFile; + } + + public function getSyntheticLine(): int + { + return $this->syntheticLine; + } + + public function getSyntheticTrace(): array + { + return $this->syntheticTrace; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/Test.php b/vendor/phpunit/phpunit/src/Framework/Test.php new file mode 100644 index 00000000..347a63ff --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Test.php @@ -0,0 +1,23 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +use Countable; + +/** + * A Test can be run and collect its results. + */ +interface Test extends Countable +{ + /** + * Runs a test and collects its result in a TestResult instance. + */ + public function run(TestResult $result = null): TestResult; +} diff --git a/vendor/phpunit/phpunit/src/Framework/TestCase.php b/vendor/phpunit/phpunit/src/Framework/TestCase.php new file mode 100644 index 00000000..355d11f7 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/TestCase.php @@ -0,0 +1,2138 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +use DeepCopy\DeepCopy; +use PHPUnit\Framework\Constraint\Exception as ExceptionConstraint; +use PHPUnit\Framework\Constraint\ExceptionCode; +use PHPUnit\Framework\Constraint\ExceptionMessage; +use PHPUnit\Framework\Constraint\ExceptionMessageRegularExpression; +use PHPUnit\Framework\MockObject\Generator as MockGenerator; +use PHPUnit\Framework\MockObject\Matcher\AnyInvokedCount as AnyInvokedCountMatcher; +use PHPUnit\Framework\MockObject\Matcher\InvokedAtIndex as InvokedAtIndexMatcher; +use PHPUnit\Framework\MockObject\Matcher\InvokedAtLeastCount as InvokedAtLeastCountMatcher; +use PHPUnit\Framework\MockObject\Matcher\InvokedAtLeastOnce as InvokedAtLeastOnceMatcher; +use PHPUnit\Framework\MockObject\Matcher\InvokedAtMostCount as InvokedAtMostCountMatcher; +use PHPUnit\Framework\MockObject\Matcher\InvokedCount as InvokedCountMatcher; +use PHPUnit\Framework\MockObject\MockBuilder; +use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\MockObject\Stub\ConsecutiveCalls as ConsecutiveCallsStub; +use PHPUnit\Framework\MockObject\Stub\Exception as ExceptionStub; +use PHPUnit\Framework\MockObject\Stub\ReturnArgument as ReturnArgumentStub; +use PHPUnit\Framework\MockObject\Stub\ReturnCallback as ReturnCallbackStub; +use PHPUnit\Framework\MockObject\Stub\ReturnSelf as ReturnSelfStub; +use PHPUnit\Framework\MockObject\Stub\ReturnStub; +use PHPUnit\Framework\MockObject\Stub\ReturnValueMap as ReturnValueMapStub; +use PHPUnit\Runner\BaseTestRunner; +use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Util\GlobalState; +use PHPUnit\Util\PHP\AbstractPhpProcess; +use Prophecy; +use Prophecy\Exception\Prediction\PredictionException; +use Prophecy\Prophecy\MethodProphecy; +use Prophecy\Prophecy\ObjectProphecy; +use Prophecy\Prophet; +use ReflectionClass; +use ReflectionException; +use ReflectionObject; +use SebastianBergmann\Comparator\Comparator; +use SebastianBergmann\Comparator\Factory as ComparatorFactory; +use SebastianBergmann\Diff\Differ; +use SebastianBergmann\Exporter\Exporter; +use SebastianBergmann\GlobalState\Blacklist; +use SebastianBergmann\GlobalState\Restorer; +use SebastianBergmann\GlobalState\Snapshot; +use SebastianBergmann\ObjectEnumerator\Enumerator; +use Text_Template; +use Throwable; + +abstract class TestCase extends Assert implements SelfDescribing, Test +{ + private const LOCALE_CATEGORIES = [\LC_ALL, \LC_COLLATE, \LC_CTYPE, \LC_MONETARY, \LC_NUMERIC, \LC_TIME]; + + /** + * @var bool + */ + protected $backupGlobals; + + /** + * @var array + */ + protected $backupGlobalsBlacklist = []; + + /** + * @var bool + */ + protected $backupStaticAttributes; + + /** + * @var array + */ + protected $backupStaticAttributesBlacklist = []; + + /** + * @var bool + */ + protected $runTestInSeparateProcess; + + /** + * @var bool + */ + protected $preserveGlobalState = true; + + /** + * @var bool + */ + private $runClassInSeparateProcess; + + /** + * @var bool + */ + private $inIsolation = false; + + /** + * @var array + */ + private $data; + + /** + * @var string + */ + private $dataName; + + /** + * @var bool + */ + private $useErrorHandler; + + /** + * @var null|string + */ + private $expectedException; + + /** + * @var null|string + */ + private $expectedExceptionMessage; + + /** + * @var null|string + */ + private $expectedExceptionMessageRegExp; + + /** + * @var null|int|string + */ + private $expectedExceptionCode; + + /** + * @var string + */ + private $name; + + /** + * @var string[] + */ + private $dependencies = []; + + /** + * @var array + */ + private $dependencyInput = []; + + /** + * @var array + */ + private $iniSettings = []; + + /** + * @var array + */ + private $locale = []; + + /** + * @var array + */ + private $mockObjects = []; + + /** + * @var MockGenerator + */ + private $mockObjectGenerator; + + /** + * @var int + */ + private $status = BaseTestRunner::STATUS_UNKNOWN; + + /** + * @var string + */ + private $statusMessage = ''; + + /** + * @var int + */ + private $numAssertions = 0; + + /** + * @var TestResult + */ + private $result; + + /** + * @var mixed + */ + private $testResult; + + /** + * @var string + */ + private $output = ''; + + /** + * @var string + */ + private $outputExpectedRegex; + + /** + * @var string + */ + private $outputExpectedString; + + /** + * @var mixed + */ + private $outputCallback = false; + + /** + * @var bool + */ + private $outputBufferingActive = false; + + /** + * @var int + */ + private $outputBufferingLevel; + + /** + * @var Snapshot + */ + private $snapshot; + + /** + * @var Prophecy\Prophet + */ + private $prophet; + + /** + * @var bool + */ + private $beStrictAboutChangesToGlobalState = false; + + /** + * @var bool + */ + private $registerMockObjectsFromTestArgumentsRecursively = false; + + /** + * @var string[] + */ + private $warnings = []; + + /** + * @var array + */ + private $groups = []; + + /** + * @var bool + */ + private $doesNotPerformAssertions = false; + + /** + * @var Comparator[] + */ + private $customComparators = []; + + /** + * Returns a matcher that matches when the method is executed + * zero or more times. + */ + public static function any(): AnyInvokedCountMatcher + { + return new AnyInvokedCountMatcher; + } + + /** + * Returns a matcher that matches when the method is never executed. + */ + public static function never(): InvokedCountMatcher + { + return new InvokedCountMatcher(0); + } + + /** + * Returns a matcher that matches when the method is executed + * at least N times. + */ + public static function atLeast(int $requiredInvocations): InvokedAtLeastCountMatcher + { + return new InvokedAtLeastCountMatcher( + $requiredInvocations + ); + } + + /** + * Returns a matcher that matches when the method is executed at least once. + */ + public static function atLeastOnce(): InvokedAtLeastOnceMatcher + { + return new InvokedAtLeastOnceMatcher; + } + + /** + * Returns a matcher that matches when the method is executed exactly once. + */ + public static function once(): InvokedCountMatcher + { + return new InvokedCountMatcher(1); + } + + /** + * Returns a matcher that matches when the method is executed + * exactly $count times. + */ + public static function exactly(int $count): InvokedCountMatcher + { + return new InvokedCountMatcher($count); + } + + /** + * Returns a matcher that matches when the method is executed + * at most N times. + */ + public static function atMost(int $allowedInvocations): InvokedAtMostCountMatcher + { + return new InvokedAtMostCountMatcher($allowedInvocations); + } + + /** + * Returns a matcher that matches when the method is executed + * at the given index. + */ + public static function at(int $index): InvokedAtIndexMatcher + { + return new InvokedAtIndexMatcher($index); + } + + public static function returnValue($value): ReturnStub + { + return new ReturnStub($value); + } + + public static function returnValueMap(array $valueMap): ReturnValueMapStub + { + return new ReturnValueMapStub($valueMap); + } + + public static function returnArgument(int $argumentIndex): ReturnArgumentStub + { + return new ReturnArgumentStub($argumentIndex); + } + + public static function returnCallback($callback): ReturnCallbackStub + { + return new ReturnCallbackStub($callback); + } + + /** + * Returns the current object. + * + * This method is useful when mocking a fluent interface. + */ + public static function returnSelf(): ReturnSelfStub + { + return new ReturnSelfStub; + } + + public static function throwException(Throwable $exception): ExceptionStub + { + return new ExceptionStub($exception); + } + + public static function onConsecutiveCalls(...$args): ConsecutiveCallsStub + { + return new ConsecutiveCallsStub($args); + } + + /** + * @param string $name + * @param string $dataName + */ + public function __construct($name = null, array $data = [], $dataName = '') + { + if ($name !== null) { + $this->setName($name); + } + + $this->data = $data; + $this->dataName = $dataName; + } + + /** + * This method is called before the first test of this test class is run. + */ + public static function setUpBeforeClass()/* The :void return type declaration that should be here would cause a BC issue */ + { + } + + /** + * This method is called after the last test of this test class is run. + */ + public static function tearDownAfterClass()/* The :void return type declaration that should be here would cause a BC issue */ + { + } + + /** + * This method is called before each test. + */ + protected function setUp()/* The :void return type declaration that should be here would cause a BC issue */ + { + } + + /** + * This method is called after each test. + */ + protected function tearDown()/* The :void return type declaration that should be here would cause a BC issue */ + { + } + + /** + * Returns a string representation of the test case. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * @throws \ReflectionException + */ + public function toString(): string + { + $class = new ReflectionClass($this); + + $buffer = \sprintf( + '%s::%s', + $class->name, + $this->getName(false) + ); + + return $buffer . $this->getDataSetAsString(); + } + + public function count(): int + { + return 1; + } + + public function getGroups(): array + { + return $this->groups; + } + + public function setGroups(array $groups): void + { + $this->groups = $groups; + } + + public function getAnnotations(): array + { + return \PHPUnit\Util\Test::parseTestMethodAnnotations( + \get_class($this), + $this->name + ); + } + + /** + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function getName(bool $withDataSet = true): ?string + { + if ($withDataSet) { + return $this->name . $this->getDataSetAsString(false); + } + + return $this->name; + } + + /** + * Returns the size of the test. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function getSize(): int + { + return \PHPUnit\Util\Test::getSize( + \get_class($this), + $this->getName(false) + ); + } + + /** + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function hasSize(): bool + { + return $this->getSize() !== \PHPUnit\Util\Test::UNKNOWN; + } + + /** + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function isSmall(): bool + { + return $this->getSize() === \PHPUnit\Util\Test::SMALL; + } + + /** + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function isMedium(): bool + { + return $this->getSize() === \PHPUnit\Util\Test::MEDIUM; + } + + /** + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function isLarge(): bool + { + return $this->getSize() === \PHPUnit\Util\Test::LARGE; + } + + public function getActualOutput(): string + { + if (!$this->outputBufferingActive) { + return $this->output; + } + + return \ob_get_contents(); + } + + public function hasOutput(): bool + { + if ($this->output === '') { + return false; + } + + if ($this->hasExpectationOnOutput()) { + return false; + } + + return true; + } + + public function doesNotPerformAssertions(): bool + { + return $this->doesNotPerformAssertions; + } + + public function expectOutputRegex(string $expectedRegex): void + { + $this->outputExpectedRegex = $expectedRegex; + } + + public function expectOutputString(string $expectedString): void + { + $this->outputExpectedString = $expectedString; + } + + public function hasExpectationOnOutput(): bool + { + return \is_string($this->outputExpectedString) || \is_string($this->outputExpectedRegex); + } + + public function getExpectedException(): ?string + { + return $this->expectedException; + } + + /** + * @return null|int|string + */ + public function getExpectedExceptionCode() + { + return $this->expectedExceptionCode; + } + + public function getExpectedExceptionMessage(): ?string + { + return $this->expectedExceptionMessage; + } + + public function getExpectedExceptionMessageRegExp(): ?string + { + return $this->expectedExceptionMessageRegExp; + } + + public function expectException(string $exception): void + { + $this->expectedException = $exception; + } + + /** + * @param int|string $code + */ + public function expectExceptionCode($code): void + { + $this->expectedExceptionCode = $code; + } + + public function expectExceptionMessage(string $message): void + { + $this->expectedExceptionMessage = $message; + } + + public function expectExceptionMessageRegExp(string $messageRegExp): void + { + $this->expectedExceptionMessageRegExp = $messageRegExp; + } + + /** + * Sets up an expectation for an exception to be raised by the code under test. + * Information for expected exception class, expected exception message, and + * expected exception code are retrieved from a given Exception object. + */ + public function expectExceptionObject(\Exception $exception): void + { + $this->expectException(\get_class($exception)); + $this->expectExceptionMessage($exception->getMessage()); + $this->expectExceptionCode($exception->getCode()); + } + + public function expectNotToPerformAssertions() + { + $this->doesNotPerformAssertions = true; + } + + public function setRegisterMockObjectsFromTestArgumentsRecursively(bool $flag): void + { + $this->registerMockObjectsFromTestArgumentsRecursively = $flag; + } + + public function setUseErrorHandler(bool $useErrorHandler): void + { + $this->useErrorHandler = $useErrorHandler; + } + + public function getStatus(): int + { + return $this->status; + } + + public function markAsRisky(): void + { + $this->status = BaseTestRunner::STATUS_RISKY; + } + + public function getStatusMessage(): string + { + return $this->statusMessage; + } + + public function hasFailed(): bool + { + $status = $this->getStatus(); + + return $status === BaseTestRunner::STATUS_FAILURE || $status === BaseTestRunner::STATUS_ERROR; + } + + /** + * Runs the test case and collects the results in a TestResult object. + * If no TestResult object is passed a new one will be created. + * + * @throws CodeCoverageException + * @throws ReflectionException + * @throws \SebastianBergmann\CodeCoverage\CoveredCodeNotExecutedException + * @throws \SebastianBergmann\CodeCoverage\InvalidArgumentException + * @throws \SebastianBergmann\CodeCoverage\MissingCoversAnnotationException + * @throws \SebastianBergmann\CodeCoverage\RuntimeException + * @throws \SebastianBergmann\CodeCoverage\UnintentionallyCoveredCodeException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function run(TestResult $result = null): TestResult + { + if ($result === null) { + $result = $this->createResult(); + } + + if (!$this instanceof WarningTestCase) { + $this->setTestResultObject($result); + $this->setUseErrorHandlerFromAnnotation(); + } + + if ($this->useErrorHandler !== null) { + $oldErrorHandlerSetting = $result->getConvertErrorsToExceptions(); + $result->convertErrorsToExceptions($this->useErrorHandler); + } + + if (!$this instanceof WarningTestCase && + !$this instanceof SkippedTestCase && + !$this->handleDependencies()) { + return $result; + } + + if ($this->runInSeparateProcess()) { + $runEntireClass = $this->runClassInSeparateProcess && !$this->runTestInSeparateProcess; + + $class = new ReflectionClass($this); + + if ($runEntireClass) { + $template = new Text_Template( + __DIR__ . '/../Util/PHP/Template/TestCaseClass.tpl' + ); + } else { + $template = new Text_Template( + __DIR__ . '/../Util/PHP/Template/TestCaseMethod.tpl' + ); + } + + if ($this->preserveGlobalState) { + $constants = GlobalState::getConstantsAsString(); + $globals = GlobalState::getGlobalsAsString(); + $includedFiles = GlobalState::getIncludedFilesAsString(); + $iniSettings = GlobalState::getIniSettingsAsString(); + } else { + $constants = ''; + + if (!empty($GLOBALS['__PHPUNIT_BOOTSTRAP'])) { + $globals = '$GLOBALS[\'__PHPUNIT_BOOTSTRAP\'] = ' . \var_export($GLOBALS['__PHPUNIT_BOOTSTRAP'], true) . ";\n"; + } else { + $globals = ''; + } + $includedFiles = ''; + $iniSettings = ''; + } + + $coverage = $result->getCollectCodeCoverageInformation() ? 'true' : 'false'; + $isStrictAboutTestsThatDoNotTestAnything = $result->isStrictAboutTestsThatDoNotTestAnything() ? 'true' : 'false'; + $isStrictAboutOutputDuringTests = $result->isStrictAboutOutputDuringTests() ? 'true' : 'false'; + $enforcesTimeLimit = $result->enforcesTimeLimit() ? 'true' : 'false'; + $isStrictAboutTodoAnnotatedTests = $result->isStrictAboutTodoAnnotatedTests() ? 'true' : 'false'; + $isStrictAboutResourceUsageDuringSmallTests = $result->isStrictAboutResourceUsageDuringSmallTests() ? 'true' : 'false'; + + if (\defined('PHPUNIT_COMPOSER_INSTALL')) { + $composerAutoload = \var_export(PHPUNIT_COMPOSER_INSTALL, true); + } else { + $composerAutoload = '\'\''; + } + + if (\defined('__PHPUNIT_PHAR__')) { + $phar = \var_export(__PHPUNIT_PHAR__, true); + } else { + $phar = '\'\''; + } + + if ($result->getCodeCoverage()) { + $codeCoverageFilter = $result->getCodeCoverage()->filter(); + } else { + $codeCoverageFilter = null; + } + + $data = \var_export(\serialize($this->data), true); + $dataName = \var_export($this->dataName, true); + $dependencyInput = \var_export(\serialize($this->dependencyInput), true); + $includePath = \var_export(\get_include_path(), true); + $codeCoverageFilter = \var_export(\serialize($codeCoverageFilter), true); + // must do these fixes because TestCaseMethod.tpl has unserialize('{data}') in it, and we can't break BC + // the lines above used to use addcslashes() rather than var_export(), which breaks null byte escape sequences + $data = "'." . $data . ".'"; + $dataName = "'.(" . $dataName . ").'"; + $dependencyInput = "'." . $dependencyInput . ".'"; + $includePath = "'." . $includePath . ".'"; + $codeCoverageFilter = "'." . $codeCoverageFilter . ".'"; + + $configurationFilePath = $GLOBALS['__PHPUNIT_CONFIGURATION_FILE'] ?? ''; + + $var = [ + 'composerAutoload' => $composerAutoload, + 'phar' => $phar, + 'filename' => $class->getFileName(), + 'className' => $class->getName(), + 'collectCodeCoverageInformation' => $coverage, + 'data' => $data, + 'dataName' => $dataName, + 'dependencyInput' => $dependencyInput, + 'constants' => $constants, + 'globals' => $globals, + 'include_path' => $includePath, + 'included_files' => $includedFiles, + 'iniSettings' => $iniSettings, + 'isStrictAboutTestsThatDoNotTestAnything' => $isStrictAboutTestsThatDoNotTestAnything, + 'isStrictAboutOutputDuringTests' => $isStrictAboutOutputDuringTests, + 'enforcesTimeLimit' => $enforcesTimeLimit, + 'isStrictAboutTodoAnnotatedTests' => $isStrictAboutTodoAnnotatedTests, + 'isStrictAboutResourceUsageDuringSmallTests' => $isStrictAboutResourceUsageDuringSmallTests, + 'codeCoverageFilter' => $codeCoverageFilter, + 'configurationFilePath' => $configurationFilePath, + 'name' => $this->getName(false), + ]; + + if (!$runEntireClass) { + $var['methodName'] = $this->name; + } + + $template->setVar( + $var + ); + + $php = AbstractPhpProcess::factory(); + $php->runTestJob($template->render(), $this, $result); + } else { + $result->run($this); + } + + if (isset($oldErrorHandlerSetting)) { + $result->convertErrorsToExceptions($oldErrorHandlerSetting); + } + + $this->result = null; + + return $result; + } + + /** + * @throws \Throwable + */ + public function runBare(): void + { + $this->numAssertions = 0; + + $this->snapshotGlobalState(); + $this->startOutputBuffering(); + \clearstatcache(); + $currentWorkingDirectory = \getcwd(); + + $hookMethods = \PHPUnit\Util\Test::getHookMethods(\get_class($this)); + + $hasMetRequirements = false; + + try { + $this->checkRequirements(); + $hasMetRequirements = true; + + if ($this->inIsolation) { + foreach ($hookMethods['beforeClass'] as $method) { + $this->$method(); + } + } + + $this->setExpectedExceptionFromAnnotation(); + $this->setDoesNotPerformAssertionsFromAnnotation(); + + foreach ($hookMethods['before'] as $method) { + $this->$method(); + } + + $this->assertPreConditions(); + $this->testResult = $this->runTest(); + $this->verifyMockObjects(); + $this->assertPostConditions(); + + if (!empty($this->warnings)) { + throw new Warning( + \implode( + "\n", + \array_unique($this->warnings) + ) + ); + } + + $this->status = BaseTestRunner::STATUS_PASSED; + } catch (IncompleteTest $e) { + $this->status = BaseTestRunner::STATUS_INCOMPLETE; + $this->statusMessage = $e->getMessage(); + } catch (SkippedTest $e) { + $this->status = BaseTestRunner::STATUS_SKIPPED; + $this->statusMessage = $e->getMessage(); + } catch (Warning $e) { + $this->status = BaseTestRunner::STATUS_WARNING; + $this->statusMessage = $e->getMessage(); + } catch (AssertionFailedError $e) { + $this->status = BaseTestRunner::STATUS_FAILURE; + $this->statusMessage = $e->getMessage(); + } catch (PredictionException $e) { + $this->status = BaseTestRunner::STATUS_FAILURE; + $this->statusMessage = $e->getMessage(); + } catch (Throwable $_e) { + $e = $_e; + $this->status = BaseTestRunner::STATUS_ERROR; + $this->statusMessage = $_e->getMessage(); + } + + $this->mockObjects = []; + $this->prophet = null; + + // Tear down the fixture. An exception raised in tearDown() will be + // caught and passed on when no exception was raised before. + try { + if ($hasMetRequirements) { + foreach ($hookMethods['after'] as $method) { + $this->$method(); + } + + if ($this->inIsolation) { + foreach ($hookMethods['afterClass'] as $method) { + $this->$method(); + } + } + } + } catch (Throwable $_e) { + $e = $e ?? $_e; + } + + try { + $this->stopOutputBuffering(); + } catch (RiskyTestError $_e) { + $e = $e ?? $_e; + } + + if (isset($_e)) { + $this->status = BaseTestRunner::STATUS_ERROR; + $this->statusMessage = $_e->getMessage(); + } + + \clearstatcache(); + + if ($currentWorkingDirectory != \getcwd()) { + \chdir($currentWorkingDirectory); + } + + $this->restoreGlobalState(); + $this->unregisterCustomComparators(); + $this->cleanupIniSettings(); + $this->cleanupLocaleSettings(); + \libxml_clear_errors(); + + // Perform assertion on output. + if (!isset($e)) { + try { + if ($this->outputExpectedRegex !== null) { + $this->assertRegExp($this->outputExpectedRegex, $this->output); + } elseif ($this->outputExpectedString !== null) { + $this->assertEquals($this->outputExpectedString, $this->output); + } + } catch (Throwable $_e) { + $e = $_e; + } + } + + // Workaround for missing "finally". + if (isset($e)) { + if ($e instanceof PredictionException) { + $e = new AssertionFailedError($e->getMessage()); + } + + $this->onNotSuccessfulTest($e); + } + } + + public function setName(string $name): void + { + $this->name = $name; + } + + /** + * @param string[] $dependencies + */ + public function setDependencies(array $dependencies): void + { + $this->dependencies = $dependencies; + } + + public function getDependencies(): array + { + return $this->dependencies; + } + + public function hasDependencies(): bool + { + return \count($this->dependencies) > 0; + } + + public function setDependencyInput(array $dependencyInput): void + { + $this->dependencyInput = $dependencyInput; + } + + public function setBeStrictAboutChangesToGlobalState(?bool $beStrictAboutChangesToGlobalState): void + { + $this->beStrictAboutChangesToGlobalState = $beStrictAboutChangesToGlobalState; + } + + public function setBackupGlobals(?bool $backupGlobals): void + { + if ($this->backupGlobals === null && $backupGlobals !== null) { + $this->backupGlobals = $backupGlobals; + } + } + + public function setBackupStaticAttributes(?bool $backupStaticAttributes): void + { + if ($this->backupStaticAttributes === null && $backupStaticAttributes !== null) { + $this->backupStaticAttributes = $backupStaticAttributes; + } + } + + public function setRunTestInSeparateProcess(bool $runTestInSeparateProcess): void + { + if ($this->runTestInSeparateProcess === null) { + $this->runTestInSeparateProcess = $runTestInSeparateProcess; + } + } + + public function setRunClassInSeparateProcess(bool $runClassInSeparateProcess): void + { + if ($this->runClassInSeparateProcess === null) { + $this->runClassInSeparateProcess = $runClassInSeparateProcess; + } + } + + public function setPreserveGlobalState(bool $preserveGlobalState): void + { + $this->preserveGlobalState = $preserveGlobalState; + } + + public function setInIsolation(bool $inIsolation): void + { + $this->inIsolation = $inIsolation; + } + + public function isInIsolation(): bool + { + return $this->inIsolation; + } + + public function getResult() + { + return $this->testResult; + } + + public function setResult($result): void + { + $this->testResult = $result; + } + + public function setOutputCallback(callable $callback): void + { + $this->outputCallback = $callback; + } + + public function getTestResultObject(): ?TestResult + { + return $this->result; + } + + public function setTestResultObject(TestResult $result): void + { + $this->result = $result; + } + + public function registerMockObject(MockObject $mockObject): void + { + $this->mockObjects[] = $mockObject; + } + + /** + * Returns a builder object to create mock objects using a fluent interface. + * + * @param string|string[] $className + */ + public function getMockBuilder($className): MockBuilder + { + return new MockBuilder($this, $className); + } + + public function addToAssertionCount(int $count): void + { + $this->numAssertions += $count; + } + + /** + * Returns the number of assertions performed by this test. + */ + public function getNumAssertions(): int + { + return $this->numAssertions; + } + + public function usesDataProvider(): bool + { + return !empty($this->data); + } + + public function dataDescription(): string + { + return \is_string($this->dataName) ? $this->dataName : ''; + } + + /** + * @return int|string + */ + public function dataName() + { + return $this->dataName; + } + + public function registerComparator(Comparator $comparator): void + { + ComparatorFactory::getInstance()->register($comparator); + + $this->customComparators[] = $comparator; + } + + public function getDataSetAsString(bool $includeData = true): string + { + $buffer = ''; + + if (!empty($this->data)) { + if (\is_int($this->dataName)) { + $buffer .= \sprintf(' with data set #%d', $this->dataName); + } else { + $buffer .= \sprintf(' with data set "%s"', $this->dataName); + } + + $exporter = new Exporter; + + if ($includeData) { + $buffer .= \sprintf(' (%s)', $exporter->shortenedRecursiveExport($this->data)); + } + } + + return $buffer; + } + + /** + * Gets the data set of a TestCase. + */ + public function getProvidedData(): array + { + return $this->data; + } + + public function addWarning(string $warning): void + { + $this->warnings[] = $warning; + } + + /** + * Override to run the test and assert its state. + * + * @throws AssertionFailedError + * @throws Exception + * @throws ExpectationFailedException + * @throws \SebastianBergmann\ObjectEnumerator\InvalidArgumentException + * @throws Throwable + */ + protected function runTest() + { + if ($this->name === null) { + throw new Exception( + 'PHPUnit\Framework\TestCase::$name must not be null.' + ); + } + + $testArguments = \array_merge($this->data, $this->dependencyInput); + + $this->registerMockObjectsFromTestArguments($testArguments); + + try { + $testResult = $this->{$this->name}(...\array_values($testArguments)); + } catch (Throwable $exception) { + if (!$this->checkExceptionExpectations($exception)) { + throw $exception; + } + + if ($this->expectedException !== null) { + $this->assertThat( + $exception, + new ExceptionConstraint( + $this->expectedException + ) + ); + } + + if ($this->expectedExceptionMessage !== null) { + $this->assertThat( + $exception, + new ExceptionMessage( + $this->expectedExceptionMessage + ) + ); + } + + if ($this->expectedExceptionMessageRegExp !== null) { + $this->assertThat( + $exception, + new ExceptionMessageRegularExpression( + $this->expectedExceptionMessageRegExp + ) + ); + } + + if ($this->expectedExceptionCode !== null) { + $this->assertThat( + $exception, + new ExceptionCode( + $this->expectedExceptionCode + ) + ); + } + + return; + } + + if ($this->expectedException !== null) { + $this->assertThat( + null, + new ExceptionConstraint( + $this->expectedException + ) + ); + } elseif ($this->expectedExceptionMessage !== null) { + $this->numAssertions++; + + throw new AssertionFailedError( + \sprintf( + 'Failed asserting that exception with message "%s" is thrown', + $this->expectedExceptionMessage + ) + ); + } elseif ($this->expectedExceptionMessageRegExp !== null) { + $this->numAssertions++; + + throw new AssertionFailedError( + \sprintf( + 'Failed asserting that exception with message matching "%s" is thrown', + $this->expectedExceptionMessageRegExp + ) + ); + } elseif ($this->expectedExceptionCode !== null) { + $this->numAssertions++; + + throw new AssertionFailedError( + \sprintf( + 'Failed asserting that exception with code "%s" is thrown', + $this->expectedExceptionCode + ) + ); + } + + return $testResult; + } + + /** + * This method is a wrapper for the ini_set() function that automatically + * resets the modified php.ini setting to its original value after the + * test is run. + * + * @throws Exception + */ + protected function iniSet(string $varName, $newValue): void + { + $currentValue = \ini_set($varName, $newValue); + + if ($currentValue !== false) { + $this->iniSettings[$varName] = $currentValue; + } else { + throw new Exception( + \sprintf( + 'INI setting "%s" could not be set to "%s".', + $varName, + $newValue + ) + ); + } + } + + /** + * This method is a wrapper for the setlocale() function that automatically + * resets the locale to its original value after the test is run. + * + * @throws Exception + */ + protected function setLocale(...$args): void + { + if (\count($args) < 2) { + throw new Exception; + } + + [$category, $locale] = $args; + + if (\defined('LC_MESSAGES')) { + $categories[] = \LC_MESSAGES; + } + + if (!\in_array($category, self::LOCALE_CATEGORIES, true)) { + throw new Exception; + } + + if (!\is_array($locale) && !\is_string($locale)) { + throw new Exception; + } + + $this->locale[$category] = \setlocale($category, 0); + + $result = \setlocale(...$args); + + if ($result === false) { + throw new Exception( + 'The locale functionality is not implemented on your platform, ' . + 'the specified locale does not exist or the category name is ' . + 'invalid.' + ); + } + } + + /** + * Returns a test double for the specified class. + * + * @param string|string[] $originalClassName + * + * @throws Exception + * @throws \InvalidArgumentException + */ + protected function createMock($originalClassName): MockObject + { + return $this->getMockBuilder($originalClassName) + ->disableOriginalConstructor() + ->disableOriginalClone() + ->disableArgumentCloning() + ->disallowMockingUnknownTypes() + ->getMock(); + } + + /** + * Returns a configured test double for the specified class. + * + * @param string|string[] $originalClassName + * + * @throws Exception + * @throws \InvalidArgumentException + */ + protected function createConfiguredMock($originalClassName, array $configuration): MockObject + { + $o = $this->createMock($originalClassName); + + foreach ($configuration as $method => $return) { + $o->method($method)->willReturn($return); + } + + return $o; + } + + /** + * Returns a partial test double for the specified class. + * + * @param string|string[] $originalClassName + * @param string[] $methods + * + * @throws Exception + * @throws \InvalidArgumentException + */ + protected function createPartialMock($originalClassName, array $methods): MockObject + { + return $this->getMockBuilder($originalClassName) + ->disableOriginalConstructor() + ->disableOriginalClone() + ->disableArgumentCloning() + ->disallowMockingUnknownTypes() + ->setMethods(empty($methods) ? null : $methods) + ->getMock(); + } + + /** + * Returns a test proxy for the specified class. + * + * @throws Exception + * @throws \InvalidArgumentException + */ + protected function createTestProxy(string $originalClassName, array $constructorArguments = []): MockObject + { + return $this->getMockBuilder($originalClassName) + ->setConstructorArgs($constructorArguments) + ->enableProxyingToOriginalMethods() + ->getMock(); + } + + /** + * Mocks the specified class and returns the name of the mocked class. + * + * @param string $originalClassName + * @param array $methods + * @param string $mockClassName + * @param bool $callOriginalConstructor + * @param bool $callOriginalClone + * @param bool $callAutoload + * @param bool $cloneArguments + * + * @throws Exception + * @throws ReflectionException + * @throws \InvalidArgumentException + */ + protected function getMockClass($originalClassName, $methods = [], array $arguments = [], $mockClassName = '', $callOriginalConstructor = false, $callOriginalClone = true, $callAutoload = true, $cloneArguments = false): string + { + $mock = $this->getMockObjectGenerator()->getMock( + $originalClassName, + $methods, + $arguments, + $mockClassName, + $callOriginalConstructor, + $callOriginalClone, + $callAutoload, + $cloneArguments + ); + + return \get_class($mock); + } + + /** + * Returns a mock object for the specified abstract class with all abstract + * methods of the class mocked. Concrete methods are not mocked by default. + * To mock concrete methods, use the 7th parameter ($mockedMethods). + * + * @param string $originalClassName + * @param string $mockClassName + * @param bool $callOriginalConstructor + * @param bool $callOriginalClone + * @param bool $callAutoload + * @param array $mockedMethods + * @param bool $cloneArguments + * + * @throws Exception + * @throws ReflectionException + * @throws \InvalidArgumentException + */ + protected function getMockForAbstractClass($originalClassName, array $arguments = [], $mockClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true, $mockedMethods = [], $cloneArguments = false): MockObject + { + $mockObject = $this->getMockObjectGenerator()->getMockForAbstractClass( + $originalClassName, + $arguments, + $mockClassName, + $callOriginalConstructor, + $callOriginalClone, + $callAutoload, + $mockedMethods, + $cloneArguments + ); + + $this->registerMockObject($mockObject); + + return $mockObject; + } + + /** + * Returns a mock object based on the given WSDL file. + * + * @param string $wsdlFile + * @param string $originalClassName + * @param string $mockClassName + * @param bool $callOriginalConstructor + * @param array $options An array of options passed to SOAPClient::_construct + * + * @throws Exception + * @throws ReflectionException + * @throws \InvalidArgumentException + */ + protected function getMockFromWsdl($wsdlFile, $originalClassName = '', $mockClassName = '', array $methods = [], $callOriginalConstructor = true, array $options = []): MockObject + { + if ($originalClassName === '') { + $fileName = \pathinfo(\basename(\parse_url($wsdlFile)['path']), \PATHINFO_FILENAME); + $originalClassName = \preg_replace('/[^a-zA-Z0-9_]/', '', $fileName); + } + + if (!\class_exists($originalClassName)) { + eval( + $this->getMockObjectGenerator()->generateClassFromWsdl( + $wsdlFile, + $originalClassName, + $methods, + $options + ) + ); + } + + $mockObject = $this->getMockObjectGenerator()->getMock( + $originalClassName, + $methods, + ['', $options], + $mockClassName, + $callOriginalConstructor, + false, + false + ); + + $this->registerMockObject($mockObject); + + return $mockObject; + } + + /** + * Returns a mock object for the specified trait with all abstract methods + * of the trait mocked. Concrete methods to mock can be specified with the + * `$mockedMethods` parameter. + * + * @param string $traitName + * @param string $mockClassName + * @param bool $callOriginalConstructor + * @param bool $callOriginalClone + * @param bool $callAutoload + * @param array $mockedMethods + * @param bool $cloneArguments + * + * @throws Exception + * @throws ReflectionException + * @throws \InvalidArgumentException + */ + protected function getMockForTrait($traitName, array $arguments = [], $mockClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true, $mockedMethods = [], $cloneArguments = false): MockObject + { + $mockObject = $this->getMockObjectGenerator()->getMockForTrait( + $traitName, + $arguments, + $mockClassName, + $callOriginalConstructor, + $callOriginalClone, + $callAutoload, + $mockedMethods, + $cloneArguments + ); + + $this->registerMockObject($mockObject); + + return $mockObject; + } + + /** + * Returns an object for the specified trait. + * + * @param string $traitName + * @param string $traitClassName + * @param bool $callOriginalConstructor + * @param bool $callOriginalClone + * @param bool $callAutoload + * + * @throws Exception + * @throws ReflectionException + * @throws \InvalidArgumentException + * + * @return object + */ + protected function getObjectForTrait($traitName, array $arguments = [], $traitClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true)/*: object*/ + { + return $this->getMockObjectGenerator()->getObjectForTrait( + $traitName, + $arguments, + $traitClassName, + $callOriginalConstructor, + $callOriginalClone, + $callAutoload + ); + } + + /** + * @param null|string $classOrInterface + * + * @throws Prophecy\Exception\Doubler\ClassNotFoundException + * @throws Prophecy\Exception\Doubler\DoubleException + * @throws Prophecy\Exception\Doubler\InterfaceNotFoundException + */ + protected function prophesize($classOrInterface = null): ObjectProphecy + { + return $this->getProphet()->prophesize($classOrInterface); + } + + /** + * Creates a default TestResult object. + */ + protected function createResult(): TestResult + { + return new TestResult; + } + + /** + * Performs assertions shared by all tests of a test case. + * + * This method is called between setUp() and test. + */ + protected function assertPreConditions()/* The :void return type declaration that should be here would cause a BC issue */ + { + } + + /** + * Performs assertions shared by all tests of a test case. + * + * This method is called between test and tearDown(). + */ + protected function assertPostConditions()/* The :void return type declaration that should be here would cause a BC issue */ + { + } + + /** + * This method is called when a test method did not execute successfully. + * + * @throws Throwable + */ + protected function onNotSuccessfulTest(Throwable $t)/* The :void return type declaration that should be here would cause a BC issue */ + { + throw $t; + } + + private function setExpectedExceptionFromAnnotation(): void + { + try { + $expectedException = \PHPUnit\Util\Test::getExpectedException( + \get_class($this), + $this->name + ); + + if ($expectedException !== false) { + $this->expectException($expectedException['class']); + + if ($expectedException['code'] !== null) { + $this->expectExceptionCode($expectedException['code']); + } + + if ($expectedException['message'] !== '') { + $this->expectExceptionMessage($expectedException['message']); + } elseif ($expectedException['message_regex'] !== '') { + $this->expectExceptionMessageRegExp($expectedException['message_regex']); + } + } + } catch (ReflectionException $e) { + } + } + + private function setUseErrorHandlerFromAnnotation(): void + { + try { + $useErrorHandler = \PHPUnit\Util\Test::getErrorHandlerSettings( + \get_class($this), + $this->name + ); + + if ($useErrorHandler !== null) { + $this->setUseErrorHandler($useErrorHandler); + } + } catch (ReflectionException $e) { + } + } + + private function checkRequirements(): void + { + if (!$this->name || !\method_exists($this, $this->name)) { + return; + } + + $missingRequirements = \PHPUnit\Util\Test::getMissingRequirements( + \get_class($this), + $this->name + ); + + if (!empty($missingRequirements)) { + $this->markTestSkipped(\implode(\PHP_EOL, $missingRequirements)); + } + } + + private function verifyMockObjects(): void + { + foreach ($this->mockObjects as $mockObject) { + if ($mockObject->__phpunit_hasMatchers()) { + $this->numAssertions++; + } + + $mockObject->__phpunit_verify( + $this->shouldInvocationMockerBeReset($mockObject) + ); + } + + if ($this->prophet !== null) { + try { + $this->prophet->checkPredictions(); + } finally { + foreach ($this->prophet->getProphecies() as $objectProphecy) { + foreach ($objectProphecy->getMethodProphecies() as $methodProphecies) { + /** @var MethodProphecy[] $methodProphecies */ + foreach ($methodProphecies as $methodProphecy) { + $this->numAssertions += \count($methodProphecy->getCheckedPredictions()); + } + } + } + } + } + } + + private function handleDependencies(): bool + { + if (!empty($this->dependencies) && !$this->inIsolation) { + $className = \get_class($this); + $passed = $this->result->passed(); + $passedKeys = \array_keys($passed); + $numKeys = \count($passedKeys); + + for ($i = 0; $i < $numKeys; $i++) { + $pos = \strpos($passedKeys[$i], ' with data set'); + + if ($pos !== false) { + $passedKeys[$i] = \substr($passedKeys[$i], 0, $pos); + } + } + + $passedKeys = \array_flip(\array_unique($passedKeys)); + + foreach ($this->dependencies as $dependency) { + $deepClone = false; + $shallowClone = false; + + if (\strpos($dependency, 'clone ') === 0) { + $deepClone = true; + $dependency = \substr($dependency, \strlen('clone ')); + } elseif (\strpos($dependency, '!clone ') === 0) { + $deepClone = false; + $dependency = \substr($dependency, \strlen('!clone ')); + } + + if (\strpos($dependency, 'shallowClone ') === 0) { + $shallowClone = true; + $dependency = \substr($dependency, \strlen('shallowClone ')); + } elseif (\strpos($dependency, '!shallowClone ') === 0) { + $shallowClone = false; + $dependency = \substr($dependency, \strlen('!shallowClone ')); + } + + if (\strpos($dependency, '::') === false) { + $dependency = $className . '::' . $dependency; + } + + if (!isset($passedKeys[$dependency])) { + if (!\is_callable($dependency, false, $callableName) || $dependency !== $callableName) { + $this->markWarningForUncallableDependency($dependency); + } else { + $this->markSkippedForMissingDependecy($dependency); + } + + return false; + } + + if (isset($passed[$dependency])) { + if ($passed[$dependency]['size'] != \PHPUnit\Util\Test::UNKNOWN && + $this->getSize() != \PHPUnit\Util\Test::UNKNOWN && + $passed[$dependency]['size'] > $this->getSize()) { + $this->result->addError( + $this, + new SkippedTestError( + 'This test depends on a test that is larger than itself.' + ), + 0 + ); + + return false; + } + + if ($deepClone) { + $deepCopy = new DeepCopy; + $deepCopy->skipUncloneable(false); + + $this->dependencyInput[$dependency] = $deepCopy->copy($passed[$dependency]['result']); + } elseif ($shallowClone) { + $this->dependencyInput[$dependency] = clone $passed[$dependency]['result']; + } else { + $this->dependencyInput[$dependency] = $passed[$dependency]['result']; + } + } else { + $this->dependencyInput[$dependency] = null; + } + } + } + + return true; + } + + private function markSkippedForMissingDependecy(string $dependency): void + { + $this->status = BaseTestRunner::STATUS_SKIPPED; + $this->result->startTest($this); + $this->result->addError( + $this, + new SkippedTestError( + \sprintf( + 'This test depends on "%s" to pass.', + $dependency + ) + ), + 0 + ); + $this->result->endTest($this, 0); + } + + private function markWarningForUncallableDependency(string $dependency): void + { + $this->status = BaseTestRunner::STATUS_WARNING; + $this->result->startTest($this); + $this->result->addWarning( + $this, + new Warning( + \sprintf( + 'This test depends on "%s" which does not exist.', + $dependency + ) + ), + 0 + ); + $this->result->endTest($this, 0); + } + + /** + * Get the mock object generator, creating it if it doesn't exist. + */ + private function getMockObjectGenerator(): MockGenerator + { + if ($this->mockObjectGenerator === null) { + $this->mockObjectGenerator = new MockGenerator; + } + + return $this->mockObjectGenerator; + } + + private function startOutputBuffering(): void + { + \ob_start(); + + $this->outputBufferingActive = true; + $this->outputBufferingLevel = \ob_get_level(); + } + + /** + * @throws RiskyTestError + */ + private function stopOutputBuffering(): void + { + if (\ob_get_level() !== $this->outputBufferingLevel) { + while (\ob_get_level() >= $this->outputBufferingLevel) { + \ob_end_clean(); + } + + throw new RiskyTestError( + 'Test code or tested code did not (only) close its own output buffers' + ); + } + + $this->output = \ob_get_contents(); + + if ($this->outputCallback !== false) { + $this->output = (string) \call_user_func($this->outputCallback, $this->output); + } + + \ob_end_clean(); + + $this->outputBufferingActive = false; + $this->outputBufferingLevel = \ob_get_level(); + } + + private function snapshotGlobalState(): void + { + if ($this->runTestInSeparateProcess || $this->inIsolation || + (!$this->backupGlobals === true && !$this->backupStaticAttributes)) { + return; + } + + $this->snapshot = $this->createGlobalStateSnapshot($this->backupGlobals === true); + } + + /** + * @throws RiskyTestError + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * @throws \InvalidArgumentException + */ + private function restoreGlobalState(): void + { + if (!$this->snapshot instanceof Snapshot) { + return; + } + + if ($this->beStrictAboutChangesToGlobalState) { + try { + $this->compareGlobalStateSnapshots( + $this->snapshot, + $this->createGlobalStateSnapshot($this->backupGlobals === true) + ); + } catch (RiskyTestError $rte) { + // Intentionally left empty + } + } + + $restorer = new Restorer; + + if ($this->backupGlobals === true) { + $restorer->restoreGlobalVariables($this->snapshot); + } + + if ($this->backupStaticAttributes) { + $restorer->restoreStaticAttributes($this->snapshot); + } + + $this->snapshot = null; + + if (isset($rte)) { + throw $rte; + } + } + + private function createGlobalStateSnapshot(bool $backupGlobals): Snapshot + { + $blacklist = new Blacklist; + + foreach ($this->backupGlobalsBlacklist as $globalVariable) { + $blacklist->addGlobalVariable($globalVariable); + } + + if (!\defined('PHPUNIT_TESTSUITE')) { + $blacklist->addClassNamePrefix('PHPUnit'); + $blacklist->addClassNamePrefix('SebastianBergmann\CodeCoverage'); + $blacklist->addClassNamePrefix('SebastianBergmann\FileIterator'); + $blacklist->addClassNamePrefix('SebastianBergmann\Invoker'); + $blacklist->addClassNamePrefix('SebastianBergmann\Timer'); + $blacklist->addClassNamePrefix('PHP_Token'); + $blacklist->addClassNamePrefix('Symfony'); + $blacklist->addClassNamePrefix('Text_Template'); + $blacklist->addClassNamePrefix('Doctrine\Instantiator'); + $blacklist->addClassNamePrefix('Prophecy'); + + foreach ($this->backupStaticAttributesBlacklist as $class => $attributes) { + foreach ($attributes as $attribute) { + $blacklist->addStaticAttribute($class, $attribute); + } + } + } + + return new Snapshot( + $blacklist, + $backupGlobals, + (bool) $this->backupStaticAttributes, + false, + false, + false, + false, + false, + false, + false + ); + } + + /** + * @throws RiskyTestError + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * @throws \InvalidArgumentException + */ + private function compareGlobalStateSnapshots(Snapshot $before, Snapshot $after): void + { + $backupGlobals = $this->backupGlobals === null || $this->backupGlobals === true; + + if ($backupGlobals) { + $this->compareGlobalStateSnapshotPart( + $before->globalVariables(), + $after->globalVariables(), + "--- Global variables before the test\n+++ Global variables after the test\n" + ); + + $this->compareGlobalStateSnapshotPart( + $before->superGlobalVariables(), + $after->superGlobalVariables(), + "--- Super-global variables before the test\n+++ Super-global variables after the test\n" + ); + } + + if ($this->backupStaticAttributes) { + $this->compareGlobalStateSnapshotPart( + $before->staticAttributes(), + $after->staticAttributes(), + "--- Static attributes before the test\n+++ Static attributes after the test\n" + ); + } + } + + /** + * @throws RiskyTestError + */ + private function compareGlobalStateSnapshotPart(array $before, array $after, string $header): void + { + if ($before != $after) { + $differ = new Differ($header); + $exporter = new Exporter; + + $diff = $differ->diff( + $exporter->export($before), + $exporter->export($after) + ); + + throw new RiskyTestError( + $diff + ); + } + } + + private function getProphet(): Prophet + { + if ($this->prophet === null) { + $this->prophet = new Prophet; + } + + return $this->prophet; + } + + /** + * @throws \SebastianBergmann\ObjectEnumerator\InvalidArgumentException + */ + private function shouldInvocationMockerBeReset(MockObject $mock): bool + { + $enumerator = new Enumerator; + + foreach ($enumerator->enumerate($this->dependencyInput) as $object) { + if ($mock === $object) { + return false; + } + } + + if (!\is_array($this->testResult) && !\is_object($this->testResult)) { + return true; + } + + return !\in_array($mock, $enumerator->enumerate($this->testResult), true); + } + + /** + * @throws \SebastianBergmann\ObjectEnumerator\InvalidArgumentException + * @throws \SebastianBergmann\ObjectReflector\InvalidArgumentException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + private function registerMockObjectsFromTestArguments(array $testArguments, array &$visited = []): void + { + if ($this->registerMockObjectsFromTestArgumentsRecursively) { + $enumerator = new Enumerator; + + foreach ($enumerator->enumerate($testArguments) as $object) { + if ($object instanceof MockObject) { + $this->registerMockObject($object); + } + } + } else { + foreach ($testArguments as $testArgument) { + if ($testArgument instanceof MockObject) { + if ($this->isCloneable($testArgument)) { + $testArgument = clone $testArgument; + } + + $this->registerMockObject($testArgument); + } elseif (\is_array($testArgument) && !\in_array($testArgument, $visited, true)) { + $visited[] = $testArgument; + + $this->registerMockObjectsFromTestArguments( + $testArgument, + $visited + ); + } + } + } + } + + private function setDoesNotPerformAssertionsFromAnnotation(): void + { + $annotations = $this->getAnnotations(); + + if (isset($annotations['method']['doesNotPerformAssertions'])) { + $this->doesNotPerformAssertions = true; + } + } + + private function isCloneable(MockObject $testArgument): bool + { + $reflector = new ReflectionObject($testArgument); + + if (!$reflector->isCloneable()) { + return false; + } + + if ($reflector->hasMethod('__clone') && + $reflector->getMethod('__clone')->isPublic()) { + return true; + } + + return false; + } + + private function unregisterCustomComparators(): void + { + $factory = ComparatorFactory::getInstance(); + + foreach ($this->customComparators as $comparator) { + $factory->unregister($comparator); + } + + $this->customComparators = []; + } + + private function cleanupIniSettings(): void + { + foreach ($this->iniSettings as $varName => $oldValue) { + \ini_set($varName, $oldValue); + } + + $this->iniSettings = []; + } + + private function cleanupLocaleSettings(): void + { + foreach ($this->locale as $category => $locale) { + \setlocale($category, $locale); + } + + $this->locale = []; + } + + /** + * @throws ReflectionException + */ + private function checkExceptionExpectations(Throwable $throwable): bool + { + $result = false; + + if ($this->expectedException !== null || $this->expectedExceptionCode !== null || $this->expectedExceptionMessage !== null || $this->expectedExceptionMessageRegExp !== null) { + $result = true; + } + + if ($throwable instanceof Exception) { + $result = false; + } + + if (\is_string($this->expectedException)) { + $reflector = new ReflectionClass($this->expectedException); + + if ($this->expectedException === 'PHPUnit\Framework\Exception' || + $this->expectedException === '\PHPUnit\Framework\Exception' || + $reflector->isSubclassOf(Exception::class)) { + $result = true; + } + } + + return $result; + } + + private function runInSeparateProcess(): bool + { + return ($this->runTestInSeparateProcess === true || $this->runClassInSeparateProcess === true) && + $this->inIsolation !== true && !$this instanceof PhptTestCase; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/TestFailure.php b/vendor/phpunit/phpunit/src/Framework/TestFailure.php new file mode 100644 index 00000000..fce6af7a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/TestFailure.php @@ -0,0 +1,154 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +use PHPUnit\Framework\Error\Error; +use Throwable; + +/** + * A TestFailure collects a failed test together with the caught exception. + */ +class TestFailure +{ + /** + * @var null|Test + */ + protected $failedTest; + + /** + * @var Throwable + */ + protected $thrownException; + + /** + * @var string + */ + private $testName; + + /** + * Returns a description for an exception. + * + * @throws \InvalidArgumentException + */ + public static function exceptionToString(Throwable $e): string + { + if ($e instanceof SelfDescribing) { + $buffer = $e->toString(); + + if ($e instanceof ExpectationFailedException && $e->getComparisonFailure()) { + $buffer .= $e->getComparisonFailure()->getDiff(); + } + + if (!empty($buffer)) { + $buffer = \trim($buffer) . "\n"; + } + + return $buffer; + } + + if ($e instanceof Error) { + return $e->getMessage() . "\n"; + } + + if ($e instanceof ExceptionWrapper) { + return $e->getClassName() . ': ' . $e->getMessage() . "\n"; + } + + return \get_class($e) . ': ' . $e->getMessage() . "\n"; + } + + /** + * Constructs a TestFailure with the given test and exception. + * + * @param Throwable $t + */ + public function __construct(Test $failedTest, $t) + { + if ($failedTest instanceof SelfDescribing) { + $this->testName = $failedTest->toString(); + } else { + $this->testName = \get_class($failedTest); + } + + if (!$failedTest instanceof TestCase || !$failedTest->isInIsolation()) { + $this->failedTest = $failedTest; + } + + $this->thrownException = $t; + } + + /** + * Returns a short description of the failure. + */ + public function toString(): string + { + return \sprintf( + '%s: %s', + $this->testName, + $this->thrownException->getMessage() + ); + } + + /** + * Returns a description for the thrown exception. + * + * @throws \InvalidArgumentException + */ + public function getExceptionAsString(): string + { + return self::exceptionToString($this->thrownException); + } + + /** + * Returns the name of the failing test (including data set, if any). + */ + public function getTestName(): string + { + return $this->testName; + } + + /** + * Returns the failing test. + * + * Note: The test object is not set when the test is executed in process + * isolation. + * + * @see Exception + */ + public function failedTest(): ?Test + { + return $this->failedTest; + } + + /** + * Gets the thrown exception. + */ + public function thrownException(): Throwable + { + return $this->thrownException; + } + + /** + * Returns the exception's message. + */ + public function exceptionMessage(): string + { + return $this->thrownException()->getMessage(); + } + + /** + * Returns true if the thrown exception + * is of type AssertionFailedError. + */ + public function isFailure(): bool + { + return $this->thrownException() instanceof AssertionFailedError; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/TestListener.php b/vendor/phpunit/phpunit/src/Framework/TestListener.php new file mode 100644 index 00000000..e1c670c5 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/TestListener.php @@ -0,0 +1,66 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +/** + * A Listener for test progress. + */ +interface TestListener +{ + /** + * An error occurred. + */ + public function addError(Test $test, \Throwable $t, float $time): void; + + /** + * A warning occurred. + */ + public function addWarning(Test $test, Warning $e, float $time): void; + + /** + * A failure occurred. + */ + public function addFailure(Test $test, AssertionFailedError $e, float $time): void; + + /** + * Incomplete test. + */ + public function addIncompleteTest(Test $test, \Throwable $t, float $time): void; + + /** + * Risky test. + */ + public function addRiskyTest(Test $test, \Throwable $t, float $time): void; + + /** + * Skipped test. + */ + public function addSkippedTest(Test $test, \Throwable $t, float $time): void; + + /** + * A test suite started. + */ + public function startTestSuite(TestSuite $suite): void; + + /** + * A test suite ended. + */ + public function endTestSuite(TestSuite $suite): void; + + /** + * A test started. + */ + public function startTest(Test $test): void; + + /** + * A test ended. + */ + public function endTest(Test $test, float $time): void; +} diff --git a/vendor/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php b/vendor/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php new file mode 100644 index 00000000..df6416f7 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/TestListenerDefaultImplementation.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +trait TestListenerDefaultImplementation +{ + public function addError(Test $test, \Throwable $t, float $time): void + { + } + + public function addWarning(Test $test, Warning $e, float $time): void + { + } + + public function addFailure(Test $test, AssertionFailedError $e, float $time): void + { + } + + public function addIncompleteTest(Test $test, \Throwable $t, float $time): void + { + } + + public function addRiskyTest(Test $test, \Throwable $t, float $time): void + { + } + + public function addSkippedTest(Test $test, \Throwable $t, float $time): void + { + } + + public function startTestSuite(TestSuite $suite): void + { + } + + public function endTestSuite(TestSuite $suite): void + { + } + + public function startTest(Test $test): void + { + } + + public function endTest(Test $test, float $time): void + { + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/TestResult.php b/vendor/phpunit/phpunit/src/Framework/TestResult.php new file mode 100644 index 00000000..ce99a77e --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/TestResult.php @@ -0,0 +1,1146 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +use AssertionError; +use Countable; +use Error; +use PHPUnit\Framework\MockObject\Exception as MockObjectException; +use PHPUnit\Util\Blacklist; +use PHPUnit\Util\ErrorHandler; +use PHPUnit\Util\Printer; +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\CoveredCodeNotExecutedException as OriginalCoveredCodeNotExecutedException; +use SebastianBergmann\CodeCoverage\Exception as OriginalCodeCoverageException; +use SebastianBergmann\CodeCoverage\MissingCoversAnnotationException as OriginalMissingCoversAnnotationException; +use SebastianBergmann\CodeCoverage\UnintentionallyCoveredCodeException; +use SebastianBergmann\Invoker\Invoker; +use SebastianBergmann\Invoker\TimeoutException; +use SebastianBergmann\ResourceOperations\ResourceOperations; +use SebastianBergmann\Timer\Timer; +use Throwable; + +/** + * A TestResult collects the results of executing a test case. + */ +class TestResult implements Countable +{ + /** + * @var array + */ + protected $passed = []; + + /** + * @var TestFailure[] + */ + protected $errors = []; + + /** + * @var TestFailure[] + */ + protected $failures = []; + + /** + * @var TestFailure[] + */ + protected $warnings = []; + + /** + * @var TestFailure[] + */ + protected $notImplemented = []; + + /** + * @var TestFailure[] + */ + protected $risky = []; + + /** + * @var TestFailure[] + */ + protected $skipped = []; + + /** + * @var TestListener[] + */ + protected $listeners = []; + + /** + * @var int + */ + protected $runTests = 0; + + /** + * @var float + */ + protected $time = 0; + + /** + * @var TestSuite + */ + protected $topTestSuite; + + /** + * Code Coverage information. + * + * @var CodeCoverage + */ + protected $codeCoverage; + + /** + * @var bool + */ + protected $convertErrorsToExceptions = true; + + /** + * @var bool + */ + protected $stop = false; + + /** + * @var bool + */ + protected $stopOnError = false; + + /** + * @var bool + */ + protected $stopOnFailure = false; + + /** + * @var bool + */ + protected $stopOnWarning = false; + + /** + * @var bool + */ + protected $beStrictAboutTestsThatDoNotTestAnything = true; + + /** + * @var bool + */ + protected $beStrictAboutOutputDuringTests = false; + + /** + * @var bool + */ + protected $beStrictAboutTodoAnnotatedTests = false; + + /** + * @var bool + */ + protected $beStrictAboutResourceUsageDuringSmallTests = false; + + /** + * @var bool + */ + protected $enforceTimeLimit = false; + + /** + * @var int + */ + protected $timeoutForSmallTests = 1; + + /** + * @var int + */ + protected $timeoutForMediumTests = 10; + + /** + * @var int + */ + protected $timeoutForLargeTests = 60; + + /** + * @var bool + */ + protected $stopOnRisky = false; + + /** + * @var bool + */ + protected $stopOnIncomplete = false; + + /** + * @var bool + */ + protected $stopOnSkipped = false; + + /** + * @var bool + */ + protected $lastTestFailed = false; + + /** + * @var int + */ + private $defaultTimeLimit = 0; + + /** + * @var bool + */ + private $stopOnDefect = false; + + /** + * @var bool + */ + private $registerMockObjectsFromTestArgumentsRecursively = false; + + public static function isAnyCoverageRequired(TestCase $test) + { + $annotations = $test->getAnnotations(); + + // If there is a @coversNothing annotation on the test method then code + // coverage data does not need to be collected + if (isset($annotations['method']['coversNothing'])) { + return false; + } + + // If any methods have covers, coverage must me generated + if (isset($annotations['method']['covers'])) { + return true; + } + + // If there are no explicit covers, and the test class is + // marked as covers nothing, all coverage can be skipped + if (isset($annotations['class']['coversNothing'])) { + return false; + } + + // Otherwise each test method can generate coverage + return true; + } + + /** + * Registers a TestListener. + */ + public function addListener(TestListener $listener): void + { + $this->listeners[] = $listener; + } + + /** + * Unregisters a TestListener. + */ + public function removeListener(TestListener $listener): void + { + foreach ($this->listeners as $key => $_listener) { + if ($listener === $_listener) { + unset($this->listeners[$key]); + } + } + } + + /** + * Flushes all flushable TestListeners. + */ + public function flushListeners(): void + { + foreach ($this->listeners as $listener) { + if ($listener instanceof Printer) { + $listener->flush(); + } + } + } + + /** + * Adds an error to the list of errors. + */ + public function addError(Test $test, Throwable $t, float $time): void + { + if ($t instanceof RiskyTest) { + $this->risky[] = new TestFailure($test, $t); + $notifyMethod = 'addRiskyTest'; + + if ($test instanceof TestCase) { + $test->markAsRisky(); + } + + if ($this->stopOnRisky || $this->stopOnDefect) { + $this->stop(); + } + } elseif ($t instanceof IncompleteTest) { + $this->notImplemented[] = new TestFailure($test, $t); + $notifyMethod = 'addIncompleteTest'; + + if ($this->stopOnIncomplete) { + $this->stop(); + } + } elseif ($t instanceof SkippedTest) { + $this->skipped[] = new TestFailure($test, $t); + $notifyMethod = 'addSkippedTest'; + + if ($this->stopOnSkipped) { + $this->stop(); + } + } else { + $this->errors[] = new TestFailure($test, $t); + $notifyMethod = 'addError'; + + if ($this->stopOnError || $this->stopOnFailure) { + $this->stop(); + } + } + + // @see https://github.com/sebastianbergmann/phpunit/issues/1953 + if ($t instanceof Error) { + $t = new ExceptionWrapper($t); + } + + foreach ($this->listeners as $listener) { + $listener->$notifyMethod($test, $t, $time); + } + + $this->lastTestFailed = true; + $this->time += $time; + } + + /** + * Adds a warning to the list of warnings. + * The passed in exception caused the warning. + */ + public function addWarning(Test $test, Warning $e, float $time): void + { + if ($this->stopOnWarning || $this->stopOnDefect) { + $this->stop(); + } + + $this->warnings[] = new TestFailure($test, $e); + + foreach ($this->listeners as $listener) { + $listener->addWarning($test, $e, $time); + } + + $this->time += $time; + } + + /** + * Adds a failure to the list of failures. + * The passed in exception caused the failure. + */ + public function addFailure(Test $test, AssertionFailedError $e, float $time): void + { + if ($e instanceof RiskyTest || $e instanceof OutputError) { + $this->risky[] = new TestFailure($test, $e); + $notifyMethod = 'addRiskyTest'; + + if ($test instanceof TestCase) { + $test->markAsRisky(); + } + + if ($this->stopOnRisky || $this->stopOnDefect) { + $this->stop(); + } + } elseif ($e instanceof IncompleteTest) { + $this->notImplemented[] = new TestFailure($test, $e); + $notifyMethod = 'addIncompleteTest'; + + if ($this->stopOnIncomplete) { + $this->stop(); + } + } elseif ($e instanceof SkippedTest) { + $this->skipped[] = new TestFailure($test, $e); + $notifyMethod = 'addSkippedTest'; + + if ($this->stopOnSkipped) { + $this->stop(); + } + } else { + $this->failures[] = new TestFailure($test, $e); + $notifyMethod = 'addFailure'; + + if ($this->stopOnFailure || $this->stopOnDefect) { + $this->stop(); + } + } + + foreach ($this->listeners as $listener) { + $listener->$notifyMethod($test, $e, $time); + } + + $this->lastTestFailed = true; + $this->time += $time; + } + + /** + * Informs the result that a test suite will be started. + */ + public function startTestSuite(TestSuite $suite): void + { + if ($this->topTestSuite === null) { + $this->topTestSuite = $suite; + } + + foreach ($this->listeners as $listener) { + $listener->startTestSuite($suite); + } + } + + /** + * Informs the result that a test suite was completed. + */ + public function endTestSuite(TestSuite $suite): void + { + foreach ($this->listeners as $listener) { + $listener->endTestSuite($suite); + } + } + + /** + * Informs the result that a test will be started. + */ + public function startTest(Test $test): void + { + $this->lastTestFailed = false; + $this->runTests += \count($test); + + foreach ($this->listeners as $listener) { + $listener->startTest($test); + } + } + + /** + * Informs the result that a test was completed. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function endTest(Test $test, float $time): void + { + foreach ($this->listeners as $listener) { + $listener->endTest($test, $time); + } + + if (!$this->lastTestFailed && $test instanceof TestCase) { + $class = \get_class($test); + $key = $class . '::' . $test->getName(); + + $this->passed[$key] = [ + 'result' => $test->getResult(), + 'size' => \PHPUnit\Util\Test::getSize( + $class, + $test->getName(false) + ), + ]; + + $this->time += $time; + } + } + + /** + * Returns true if no risky test occurred. + */ + public function allHarmless(): bool + { + return $this->riskyCount() == 0; + } + + /** + * Gets the number of risky tests. + */ + public function riskyCount(): int + { + return \count($this->risky); + } + + /** + * Returns true if no incomplete test occurred. + */ + public function allCompletelyImplemented(): bool + { + return $this->notImplementedCount() == 0; + } + + /** + * Gets the number of incomplete tests. + */ + public function notImplementedCount(): int + { + return \count($this->notImplemented); + } + + /** + * Returns an array of TestFailure objects for the risky tests + * + * @return TestFailure[] + */ + public function risky(): array + { + return $this->risky; + } + + /** + * Returns an array of TestFailure objects for the incomplete tests + * + * @return TestFailure[] + */ + public function notImplemented(): array + { + return $this->notImplemented; + } + + /** + * Returns true if no test has been skipped. + */ + public function noneSkipped(): bool + { + return $this->skippedCount() == 0; + } + + /** + * Gets the number of skipped tests. + */ + public function skippedCount(): int + { + return \count($this->skipped); + } + + /** + * Returns an array of TestFailure objects for the skipped tests + * + * @return TestFailure[] + */ + public function skipped(): array + { + return $this->skipped; + } + + /** + * Gets the number of detected errors. + */ + public function errorCount(): int + { + return \count($this->errors); + } + + /** + * Returns an array of TestFailure objects for the errors + * + * @return TestFailure[] + */ + public function errors(): array + { + return $this->errors; + } + + /** + * Gets the number of detected failures. + */ + public function failureCount(): int + { + return \count($this->failures); + } + + /** + * Returns an array of TestFailure objects for the failures + * + * @return TestFailure[] + */ + public function failures(): array + { + return $this->failures; + } + + /** + * Gets the number of detected warnings. + */ + public function warningCount(): int + { + return \count($this->warnings); + } + + /** + * Returns an array of TestFailure objects for the warnings + * + * @return TestFailure[] + */ + public function warnings(): array + { + return $this->warnings; + } + + /** + * Returns the names of the tests that have passed. + */ + public function passed(): array + { + return $this->passed; + } + + /** + * Returns the (top) test suite. + */ + public function topTestSuite(): TestSuite + { + return $this->topTestSuite; + } + + /** + * Returns whether code coverage information should be collected. + */ + public function getCollectCodeCoverageInformation(): bool + { + return $this->codeCoverage !== null; + } + + /** + * Runs a TestCase. + * + * @throws CodeCoverageException + * @throws OriginalCoveredCodeNotExecutedException + * @throws OriginalMissingCoversAnnotationException + * @throws UnintentionallyCoveredCodeException + * @throws \ReflectionException + * @throws \SebastianBergmann\CodeCoverage\InvalidArgumentException + * @throws \SebastianBergmann\CodeCoverage\RuntimeException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function run(Test $test): void + { + Assert::resetCount(); + + $coversNothing = false; + + if ($test instanceof TestCase) { + $test->setRegisterMockObjectsFromTestArgumentsRecursively( + $this->registerMockObjectsFromTestArgumentsRecursively + ); + + $isAnyCoverageRequired = self::isAnyCoverageRequired($test); + } + + $error = false; + $failure = false; + $warning = false; + $incomplete = false; + $risky = false; + $skipped = false; + + $this->startTest($test); + + $errorHandlerSet = false; + + if ($this->convertErrorsToExceptions) { + $oldErrorHandler = \set_error_handler( + [ErrorHandler::class, 'handleError'], + \E_ALL | \E_STRICT + ); + + if ($oldErrorHandler === null) { + $errorHandlerSet = true; + } else { + \restore_error_handler(); + } + } + + $collectCodeCoverage = $this->codeCoverage !== null && + !$test instanceof WarningTestCase && + $isAnyCoverageRequired; + + if ($collectCodeCoverage) { + $this->codeCoverage->start($test); + } + + $monitorFunctions = $this->beStrictAboutResourceUsageDuringSmallTests && + !$test instanceof WarningTestCase && + $test->getSize() == \PHPUnit\Util\Test::SMALL && + \function_exists('xdebug_start_function_monitor'); + + if ($monitorFunctions) { + /* @noinspection ForgottenDebugOutputInspection */ + \xdebug_start_function_monitor(ResourceOperations::getFunctions()); + } + + Timer::start(); + + try { + if (!$test instanceof WarningTestCase && + $this->enforceTimeLimit && + ($this->defaultTimeLimit || $test->getSize() != \PHPUnit\Util\Test::UNKNOWN) && + \extension_loaded('pcntl') && \class_exists(Invoker::class)) { + switch ($test->getSize()) { + case \PHPUnit\Util\Test::SMALL: + $_timeout = $this->timeoutForSmallTests; + + break; + + case \PHPUnit\Util\Test::MEDIUM: + $_timeout = $this->timeoutForMediumTests; + + break; + + case \PHPUnit\Util\Test::LARGE: + $_timeout = $this->timeoutForLargeTests; + + break; + + case \PHPUnit\Util\Test::UNKNOWN: + $_timeout = $this->defaultTimeLimit; + + break; + } + + $invoker = new Invoker; + $invoker->invoke([$test, 'runBare'], [], $_timeout); + } else { + $test->runBare(); + } + } catch (TimeoutException $e) { + $this->addFailure( + $test, + new RiskyTestError( + $e->getMessage() + ), + $_timeout + ); + + $risky = true; + } catch (MockObjectException $e) { + $e = new Warning( + $e->getMessage() + ); + + $warning = true; + } catch (AssertionFailedError $e) { + $failure = true; + + if ($e instanceof RiskyTestError) { + $risky = true; + } elseif ($e instanceof IncompleteTestError) { + $incomplete = true; + } elseif ($e instanceof SkippedTestError) { + $skipped = true; + } + } catch (AssertionError $e) { + $test->addToAssertionCount(1); + + $failure = true; + $frame = $e->getTrace()[0]; + + $e = new AssertionFailedError( + \sprintf( + '%s in %s:%s', + $e->getMessage(), + $frame['file'], + $frame['line'] + ) + ); + } catch (Warning $e) { + $warning = true; + } catch (Exception $e) { + $error = true; + } catch (Throwable $e) { + $e = new ExceptionWrapper($e); + $error = true; + } + + $time = Timer::stop(); + $test->addToAssertionCount(Assert::getCount()); + + if ($monitorFunctions) { + $blacklist = new Blacklist; + + /** @noinspection ForgottenDebugOutputInspection */ + $functions = \xdebug_get_monitored_functions(); + + /* @noinspection ForgottenDebugOutputInspection */ + \xdebug_stop_function_monitor(); + + foreach ($functions as $function) { + if (!$blacklist->isBlacklisted($function['filename'])) { + $this->addFailure( + $test, + new RiskyTestError( + \sprintf( + '%s() used in %s:%s', + $function['function'], + $function['filename'], + $function['lineno'] + ) + ), + $time + ); + } + } + } + + if ($this->beStrictAboutTestsThatDoNotTestAnything && + $test->getNumAssertions() == 0) { + $risky = true; + } + + if ($collectCodeCoverage) { + $append = !$risky && !$incomplete && !$skipped; + $linesToBeCovered = []; + $linesToBeUsed = []; + + if ($append && $test instanceof TestCase) { + try { + $linesToBeCovered = \PHPUnit\Util\Test::getLinesToBeCovered( + \get_class($test), + $test->getName(false) + ); + + $linesToBeUsed = \PHPUnit\Util\Test::getLinesToBeUsed( + \get_class($test), + $test->getName(false) + ); + } catch (InvalidCoversTargetException $cce) { + $this->addWarning( + $test, + new Warning( + $cce->getMessage() + ), + $time + ); + } + } + + try { + $this->codeCoverage->stop( + $append, + $linesToBeCovered, + $linesToBeUsed + ); + } catch (UnintentionallyCoveredCodeException $cce) { + $this->addFailure( + $test, + new UnintentionallyCoveredCodeError( + 'This test executed code that is not listed as code to be covered or used:' . + \PHP_EOL . $cce->getMessage() + ), + $time + ); + } catch (OriginalCoveredCodeNotExecutedException $cce) { + $this->addFailure( + $test, + new CoveredCodeNotExecutedException( + 'This test did not execute all the code that is listed as code to be covered:' . + \PHP_EOL . $cce->getMessage() + ), + $time + ); + } catch (OriginalMissingCoversAnnotationException $cce) { + if ($linesToBeCovered !== false) { + $this->addFailure( + $test, + new MissingCoversAnnotationException( + 'This test does not have a @covers annotation but is expected to have one' + ), + $time + ); + } + } catch (OriginalCodeCoverageException $cce) { + $error = true; + + $e = $e ?? $cce; + } + } + + if ($errorHandlerSet === true) { + \restore_error_handler(); + } + + if ($error === true) { + $this->addError($test, $e, $time); + } elseif ($failure === true) { + $this->addFailure($test, $e, $time); + } elseif ($warning === true) { + $this->addWarning($test, $e, $time); + } elseif ($this->beStrictAboutTestsThatDoNotTestAnything && + !$test->doesNotPerformAssertions() && + $test->getNumAssertions() == 0) { + $reflected = new \ReflectionClass($test); + $name = $test->getName(false); + + if ($name && $reflected->hasMethod($name)) { + $reflected = $reflected->getMethod($name); + } + + $this->addFailure( + $test, + new RiskyTestError( + \sprintf( + "This test did not perform any assertions\n\n%s:%d", + $reflected->getFileName(), + $reflected->getStartLine() + ) + ), + $time + ); + } elseif ($this->beStrictAboutTestsThatDoNotTestAnything && + $test->doesNotPerformAssertions() && + $test->getNumAssertions() > 0) { + $this->addFailure( + $test, + new RiskyTestError( + \sprintf( + 'This test is annotated with "@doesNotPerformAssertions" but performed %d assertions', + $test->getNumAssertions() + ) + ), + $time + ); + } elseif ($this->beStrictAboutOutputDuringTests && $test->hasOutput()) { + $this->addFailure( + $test, + new OutputError( + \sprintf( + 'This test printed output: %s', + $test->getActualOutput() + ) + ), + $time + ); + } elseif ($this->beStrictAboutTodoAnnotatedTests && $test instanceof TestCase) { + $annotations = $test->getAnnotations(); + + if (isset($annotations['method']['todo'])) { + $this->addFailure( + $test, + new RiskyTestError( + 'Test method is annotated with @todo' + ), + $time + ); + } + } + + $this->endTest($test, $time); + } + + /** + * Gets the number of run tests. + */ + public function count(): int + { + return $this->runTests; + } + + /** + * Checks whether the test run should stop. + */ + public function shouldStop(): bool + { + return $this->stop; + } + + /** + * Marks that the test run should stop. + */ + public function stop(): void + { + $this->stop = true; + } + + /** + * Returns the code coverage object. + */ + public function getCodeCoverage(): ?CodeCoverage + { + return $this->codeCoverage; + } + + /** + * Sets the code coverage object. + */ + public function setCodeCoverage(CodeCoverage $codeCoverage): void + { + $this->codeCoverage = $codeCoverage; + } + + /** + * Enables or disables the error-to-exception conversion. + */ + public function convertErrorsToExceptions(bool $flag): void + { + $this->convertErrorsToExceptions = $flag; + } + + /** + * Returns the error-to-exception conversion setting. + */ + public function getConvertErrorsToExceptions(): bool + { + return $this->convertErrorsToExceptions; + } + + /** + * Enables or disables the stopping when an error occurs. + */ + public function stopOnError(bool $flag): void + { + $this->stopOnError = $flag; + } + + /** + * Enables or disables the stopping when a failure occurs. + */ + public function stopOnFailure(bool $flag): void + { + $this->stopOnFailure = $flag; + } + + /** + * Enables or disables the stopping when a warning occurs. + */ + public function stopOnWarning(bool $flag): void + { + $this->stopOnWarning = $flag; + } + + public function beStrictAboutTestsThatDoNotTestAnything(bool $flag): void + { + $this->beStrictAboutTestsThatDoNotTestAnything = $flag; + } + + public function isStrictAboutTestsThatDoNotTestAnything(): bool + { + return $this->beStrictAboutTestsThatDoNotTestAnything; + } + + public function beStrictAboutOutputDuringTests(bool $flag): void + { + $this->beStrictAboutOutputDuringTests = $flag; + } + + public function isStrictAboutOutputDuringTests(): bool + { + return $this->beStrictAboutOutputDuringTests; + } + + public function beStrictAboutResourceUsageDuringSmallTests(bool $flag): void + { + $this->beStrictAboutResourceUsageDuringSmallTests = $flag; + } + + public function isStrictAboutResourceUsageDuringSmallTests(): bool + { + return $this->beStrictAboutResourceUsageDuringSmallTests; + } + + public function enforceTimeLimit(bool $flag): void + { + $this->enforceTimeLimit = $flag; + } + + public function enforcesTimeLimit(): bool + { + return $this->enforceTimeLimit; + } + + public function beStrictAboutTodoAnnotatedTests(bool $flag): void + { + $this->beStrictAboutTodoAnnotatedTests = $flag; + } + + public function isStrictAboutTodoAnnotatedTests(): bool + { + return $this->beStrictAboutTodoAnnotatedTests; + } + + /** + * Enables or disables the stopping for risky tests. + */ + public function stopOnRisky(bool $flag): void + { + $this->stopOnRisky = $flag; + } + + /** + * Enables or disables the stopping for incomplete tests. + */ + public function stopOnIncomplete(bool $flag): void + { + $this->stopOnIncomplete = $flag; + } + + /** + * Enables or disables the stopping for skipped tests. + */ + public function stopOnSkipped(bool $flag): void + { + $this->stopOnSkipped = $flag; + } + + /** + * Enables or disables the stopping for defects: error, failure, warning + */ + public function stopOnDefect(bool $flag): void + { + $this->stopOnDefect = $flag; + } + + /** + * Returns the time spent running the tests. + */ + public function time(): float + { + return $this->time; + } + + /** + * Returns whether the entire test was successful or not. + */ + public function wasSuccessful(): bool + { + return $this->wasSuccessfulIgnoringWarnings() && empty($this->warnings); + } + + public function wasSuccessfulIgnoringWarnings(): bool + { + return empty($this->errors) && empty($this->failures); + } + + /** + * Sets the default timeout for tests + */ + public function setDefaultTimeLimit(int $timeout): void + { + $this->defaultTimeLimit = $timeout; + } + + /** + * Sets the timeout for small tests. + */ + public function setTimeoutForSmallTests(int $timeout): void + { + $this->timeoutForSmallTests = $timeout; + } + + /** + * Sets the timeout for medium tests. + */ + public function setTimeoutForMediumTests(int $timeout): void + { + $this->timeoutForMediumTests = $timeout; + } + + /** + * Sets the timeout for large tests. + */ + public function setTimeoutForLargeTests(int $timeout): void + { + $this->timeoutForLargeTests = $timeout; + } + + /** + * Returns the set timeout for large tests. + */ + public function getTimeoutForLargeTests(): int + { + return $this->timeoutForLargeTests; + } + + public function setRegisterMockObjectsFromTestArgumentsRecursively(bool $flag): void + { + $this->registerMockObjectsFromTestArgumentsRecursively = $flag; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/TestSuite.php b/vendor/phpunit/phpunit/src/Framework/TestSuite.php new file mode 100644 index 00000000..6f4b243b --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/TestSuite.php @@ -0,0 +1,962 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +use Iterator; +use IteratorAggregate; +use PHPUnit\Runner\BaseTestRunner; +use PHPUnit\Runner\Filter\Factory; +use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Util\FileLoader; +use PHPUnit\Util\InvalidArgumentHelper; +use ReflectionClass; +use ReflectionMethod; +use Throwable; + +/** + * A TestSuite is a composite of Tests. It runs a collection of test cases. + */ +class TestSuite implements IteratorAggregate, SelfDescribing, Test +{ + /** + * Enable or disable the backup and restoration of the $GLOBALS array. + * + * @var bool + */ + protected $backupGlobals; + + /** + * Enable or disable the backup and restoration of static attributes. + * + * @var bool + */ + protected $backupStaticAttributes; + + /** + * @var bool + */ + protected $runTestInSeparateProcess = false; + + /** + * The name of the test suite. + * + * @var string + */ + protected $name = ''; + + /** + * The test groups of the test suite. + * + * @var array + */ + protected $groups = []; + + /** + * The tests in the test suite. + * + * @var Test[] + */ + protected $tests = []; + + /** + * The number of tests in the test suite. + * + * @var int + */ + protected $numTests = -1; + + /** + * @var bool + */ + protected $testCase = false; + + /** + * @var array + */ + protected $foundClasses = []; + + /** + * Last count of tests in this suite. + * + * @var null|int + */ + private $cachedNumTests; + + /** + * @var bool + */ + private $beStrictAboutChangesToGlobalState; + + /** + * @var Factory + */ + private $iteratorFilter; + + /** + * @var string[] + */ + private $declaredClasses; + + /** + * @param string $name + * + * @throws Exception + */ + public static function createTest(ReflectionClass $theClass, $name): Test + { + $className = $theClass->getName(); + + if (!$theClass->isInstantiable()) { + return self::warning( + \sprintf('Cannot instantiate class "%s".', $className) + ); + } + + $backupSettings = \PHPUnit\Util\Test::getBackupSettings( + $className, + $name + ); + + $preserveGlobalState = \PHPUnit\Util\Test::getPreserveGlobalStateSettings( + $className, + $name + ); + + $runTestInSeparateProcess = \PHPUnit\Util\Test::getProcessIsolationSettings( + $className, + $name + ); + + $runClassInSeparateProcess = \PHPUnit\Util\Test::getClassProcessIsolationSettings( + $className, + $name + ); + + $constructor = $theClass->getConstructor(); + + if ($constructor === null) { + throw new Exception('No valid test provided.'); + } + $parameters = $constructor->getParameters(); + + // TestCase() or TestCase($name) + if (\count($parameters) < 2) { + $test = new $className; + } // TestCase($name, $data) + else { + try { + $data = \PHPUnit\Util\Test::getProvidedData( + $className, + $name + ); + } catch (IncompleteTestError $e) { + $message = \sprintf( + 'Test for %s::%s marked incomplete by data provider', + $className, + $name + ); + + $_message = $e->getMessage(); + + if (!empty($_message)) { + $message .= "\n" . $_message; + } + + $data = self::incompleteTest($className, $name, $message); + } catch (SkippedTestError $e) { + $message = \sprintf( + 'Test for %s::%s skipped by data provider', + $className, + $name + ); + + $_message = $e->getMessage(); + + if (!empty($_message)) { + $message .= "\n" . $_message; + } + + $data = self::skipTest($className, $name, $message); + } catch (Throwable $t) { + $message = \sprintf( + 'The data provider specified for %s::%s is invalid.', + $className, + $name + ); + + $_message = $t->getMessage(); + + if (!empty($_message)) { + $message .= "\n" . $_message; + } + + $data = self::warning($message); + } + + // Test method with @dataProvider. + if (isset($data)) { + $test = new DataProviderTestSuite( + $className . '::' . $name + ); + + if (empty($data)) { + $data = self::warning( + \sprintf( + 'No tests found in suite "%s".', + $test->getName() + ) + ); + } + + $groups = \PHPUnit\Util\Test::getGroups($className, $name); + + if ($data instanceof WarningTestCase || + $data instanceof SkippedTestCase || + $data instanceof IncompleteTestCase) { + $test->addTest($data, $groups); + } else { + foreach ($data as $_dataName => $_data) { + $_test = new $className($name, $_data, $_dataName); + + /* @var TestCase $_test */ + + if ($runTestInSeparateProcess) { + $_test->setRunTestInSeparateProcess(true); + + if ($preserveGlobalState !== null) { + $_test->setPreserveGlobalState($preserveGlobalState); + } + } + + if ($runClassInSeparateProcess) { + $_test->setRunClassInSeparateProcess(true); + + if ($preserveGlobalState !== null) { + $_test->setPreserveGlobalState($preserveGlobalState); + } + } + + if ($backupSettings['backupGlobals'] !== null) { + $_test->setBackupGlobals( + $backupSettings['backupGlobals'] + ); + } + + if ($backupSettings['backupStaticAttributes'] !== null) { + $_test->setBackupStaticAttributes( + $backupSettings['backupStaticAttributes'] + ); + } + + $test->addTest($_test, $groups); + } + } + } else { + $test = new $className; + } + } + + if ($test instanceof TestCase) { + $test->setName($name); + + if ($runTestInSeparateProcess) { + $test->setRunTestInSeparateProcess(true); + + if ($preserveGlobalState !== null) { + $test->setPreserveGlobalState($preserveGlobalState); + } + } + + if ($runClassInSeparateProcess) { + $test->setRunClassInSeparateProcess(true); + + if ($preserveGlobalState !== null) { + $test->setPreserveGlobalState($preserveGlobalState); + } + } + + if ($backupSettings['backupGlobals'] !== null) { + $test->setBackupGlobals($backupSettings['backupGlobals']); + } + + if ($backupSettings['backupStaticAttributes'] !== null) { + $test->setBackupStaticAttributes( + $backupSettings['backupStaticAttributes'] + ); + } + } + + return $test; + } + + public static function isTestMethod(ReflectionMethod $method): bool + { + if (\strpos($method->name, 'test') === 0) { + return true; + } + + $annotations = \PHPUnit\Util\Test::parseAnnotations($method->getDocComment()); + + return isset($annotations['test']); + } + + /** + * Constructs a new TestSuite: + * + * - PHPUnit\Framework\TestSuite() constructs an empty TestSuite. + * + * - PHPUnit\Framework\TestSuite(ReflectionClass) constructs a + * TestSuite from the given class. + * + * - PHPUnit\Framework\TestSuite(ReflectionClass, String) + * constructs a TestSuite from the given class with the given + * name. + * + * - PHPUnit\Framework\TestSuite(String) either constructs a + * TestSuite from the given class (if the passed string is the + * name of an existing class) or constructs an empty TestSuite + * with the given name. + * + * @param string $name + * + * @throws Exception + */ + public function __construct($theClass = '', $name = '') + { + $this->declaredClasses = \get_declared_classes(); + + $argumentsValid = false; + + if (\is_object($theClass) && + $theClass instanceof ReflectionClass) { + $argumentsValid = true; + } elseif (\is_string($theClass) && + $theClass !== '' && + \class_exists($theClass, true)) { + $argumentsValid = true; + + if ($name == '') { + $name = $theClass; + } + + $theClass = new ReflectionClass($theClass); + } elseif (\is_string($theClass)) { + $this->setName($theClass); + + return; + } + + if (!$argumentsValid) { + throw new Exception; + } + + if (!$theClass->isSubclassOf(TestCase::class)) { + $this->setName($theClass); + + return; + } + + if ($name != '') { + $this->setName($name); + } else { + $this->setName($theClass->getName()); + } + + $constructor = $theClass->getConstructor(); + + if ($constructor !== null && + !$constructor->isPublic()) { + $this->addTest( + self::warning( + \sprintf( + 'Class "%s" has no public constructor.', + $theClass->getName() + ) + ) + ); + + return; + } + + foreach ($theClass->getMethods() as $method) { + if ($method->getDeclaringClass()->getName() === Assert::class) { + continue; + } + + if ($method->getDeclaringClass()->getName() === TestCase::class) { + continue; + } + + $this->addTestMethod($theClass, $method); + } + + if (empty($this->tests)) { + $this->addTest( + self::warning( + \sprintf( + 'No tests found in class "%s".', + $theClass->getName() + ) + ) + ); + } + + $this->testCase = true; + } + + /** + * Template Method that is called before the tests + * of this test suite are run. + */ + protected function setUp(): void + { + } + + /** + * Template Method that is called after the tests + * of this test suite have finished running. + */ + protected function tearDown(): void + { + } + + /** + * Returns a string representation of the test suite. + */ + public function toString(): string + { + return $this->getName(); + } + + /** + * Adds a test to the suite. + * + * @param array $groups + */ + public function addTest(Test $test, $groups = []): void + { + $class = new ReflectionClass($test); + + if (!$class->isAbstract()) { + $this->tests[] = $test; + $this->numTests = -1; + + if ($test instanceof self && empty($groups)) { + $groups = $test->getGroups(); + } + + if (empty($groups)) { + $groups = ['default']; + } + + foreach ($groups as $group) { + if (!isset($this->groups[$group])) { + $this->groups[$group] = [$test]; + } else { + $this->groups[$group][] = $test; + } + } + + if ($test instanceof TestCase) { + $test->setGroups($groups); + } + } + } + + /** + * Adds the tests from the given class to the suite. + * + * @throws Exception + */ + public function addTestSuite($testClass): void + { + if (\is_string($testClass) && \class_exists($testClass)) { + $testClass = new ReflectionClass($testClass); + } + + if (!\is_object($testClass)) { + throw InvalidArgumentHelper::factory( + 1, + 'class name or object' + ); + } + + if ($testClass instanceof self) { + $this->addTest($testClass); + } elseif ($testClass instanceof ReflectionClass) { + $suiteMethod = false; + + if (!$testClass->isAbstract() && $testClass->hasMethod(BaseTestRunner::SUITE_METHODNAME)) { + $method = $testClass->getMethod( + BaseTestRunner::SUITE_METHODNAME + ); + + if ($method->isStatic()) { + $this->addTest( + $method->invoke(null, $testClass->getName()) + ); + + $suiteMethod = true; + } + } + + if (!$suiteMethod && !$testClass->isAbstract() && $testClass->isSubclassOf(TestCase::class)) { + $this->addTest(new self($testClass)); + } + } else { + throw new Exception; + } + } + + /** + * Wraps both addTest() and addTestSuite + * as well as the separate import statements for the user's convenience. + * + * If the named file cannot be read or there are no new tests that can be + * added, a PHPUnit\Framework\WarningTestCase will be created instead, + * leaving the current test run untouched. + * + * @throws Exception + */ + public function addTestFile(string $filename): void + { + if (\file_exists($filename) && \substr($filename, -5) == '.phpt') { + $this->addTest( + new PhptTestCase($filename) + ); + + return; + } + + // The given file may contain further stub classes in addition to the + // test class itself. Figure out the actual test class. + $filename = FileLoader::checkAndLoad($filename); + $newClasses = \array_diff(\get_declared_classes(), $this->declaredClasses); + + // The diff is empty in case a parent class (with test methods) is added + // AFTER a child class that inherited from it. To account for that case, + // accumulate all discovered classes, so the parent class may be found in + // a later invocation. + if (!empty($newClasses)) { + // On the assumption that test classes are defined first in files, + // process discovered classes in approximate LIFO order, so as to + // avoid unnecessary reflection. + $this->foundClasses = \array_merge($newClasses, $this->foundClasses); + $this->declaredClasses = \get_declared_classes(); + } + + // The test class's name must match the filename, either in full, or as + // a PEAR/PSR-0 prefixed short name ('NameSpace_ShortName'), or as a + // PSR-1 local short name ('NameSpace\ShortName'). The comparison must be + // anchored to prevent false-positive matches (e.g., 'OtherShortName'). + $shortName = \basename($filename, '.php'); + $shortNameRegEx = '/(?:^|_|\\\\)' . \preg_quote($shortName, '/') . '$/'; + + foreach ($this->foundClasses as $i => $className) { + if (\preg_match($shortNameRegEx, $className)) { + $class = new ReflectionClass($className); + + if ($class->getFileName() == $filename) { + $newClasses = [$className]; + unset($this->foundClasses[$i]); + + break; + } + } + } + + foreach ($newClasses as $className) { + $class = new ReflectionClass($className); + + if (\dirname($class->getFileName()) === __DIR__) { + continue; + } + + if (!$class->isAbstract()) { + if ($class->hasMethod(BaseTestRunner::SUITE_METHODNAME)) { + $method = $class->getMethod( + BaseTestRunner::SUITE_METHODNAME + ); + + if ($method->isStatic()) { + $this->addTest($method->invoke(null, $className)); + } + } elseif ($class->implementsInterface(Test::class)) { + $this->addTestSuite($class); + } + } + } + + $this->numTests = -1; + } + + /** + * Wrapper for addTestFile() that adds multiple test files. + * + * @param array|Iterator $fileNames + * + * @throws Exception + */ + public function addTestFiles($fileNames): void + { + if (!(\is_array($fileNames) || + (\is_object($fileNames) && $fileNames instanceof Iterator))) { + throw InvalidArgumentHelper::factory( + 1, + 'array or iterator' + ); + } + + foreach ($fileNames as $filename) { + $this->addTestFile((string) $filename); + } + } + + /** + * Counts the number of test cases that will be run by this test. + * + * @param bool $preferCache indicates if cache is preferred + */ + public function count($preferCache = false): int + { + if ($preferCache && $this->cachedNumTests !== null) { + return $this->cachedNumTests; + } + + $numTests = 0; + + foreach ($this as $test) { + $numTests += \count($test); + } + + $this->cachedNumTests = $numTests; + + return $numTests; + } + + /** + * Returns the name of the suite. + */ + public function getName(): string + { + return $this->name; + } + + /** + * Returns the test groups of the suite. + */ + public function getGroups(): array + { + return \array_keys($this->groups); + } + + public function getGroupDetails() + { + return $this->groups; + } + + /** + * Set tests groups of the test case + */ + public function setGroupDetails(array $groups): void + { + $this->groups = $groups; + } + + /** + * Runs the tests and collects their result in a TestResult. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function run(TestResult $result = null): TestResult + { + if ($result === null) { + $result = $this->createResult(); + } + + if (\count($this) == 0) { + return $result; + } + + $hookMethods = \PHPUnit\Util\Test::getHookMethods($this->name); + + $result->startTestSuite($this); + + try { + $this->setUp(); + + foreach ($hookMethods['beforeClass'] as $beforeClassMethod) { + if ($this->testCase === true && + \class_exists($this->name, false) && + \method_exists($this->name, $beforeClassMethod)) { + if ($missingRequirements = \PHPUnit\Util\Test::getMissingRequirements($this->name, $beforeClassMethod)) { + $this->markTestSuiteSkipped(\implode(\PHP_EOL, $missingRequirements)); + } + + \call_user_func([$this->name, $beforeClassMethod]); + } + } + } catch (SkippedTestSuiteError $error) { + foreach ($this->tests() as $test) { + $result->startTest($test); + $result->addFailure($test, $error, 0); + $result->endTest($test, 0); + } + + $this->tearDown(); + $result->endTestSuite($this); + + return $result; + } catch (Throwable $t) { + foreach ($this->tests() as $test) { + if ($result->shouldStop()) { + break; + } + + $result->startTest($test); + $result->addError($test, $t, 0); + $result->endTest($test, 0); + } + + $this->tearDown(); + $result->endTestSuite($this); + + return $result; + } + + foreach ($this as $test) { + if ($result->shouldStop()) { + break; + } + + if ($test instanceof TestCase || $test instanceof self) { + $test->setBeStrictAboutChangesToGlobalState($this->beStrictAboutChangesToGlobalState); + $test->setBackupGlobals($this->backupGlobals); + $test->setBackupStaticAttributes($this->backupStaticAttributes); + $test->setRunTestInSeparateProcess($this->runTestInSeparateProcess); + } + + $test->run($result); + } + + try { + foreach ($hookMethods['afterClass'] as $afterClassMethod) { + if ($this->testCase === true && \class_exists($this->name, false) && \method_exists( + $this->name, + $afterClassMethod + )) { + \call_user_func([$this->name, $afterClassMethod]); + } + } + } catch (Throwable $t) { + $message = "Exception in {$this->name}::$afterClassMethod" . \PHP_EOL . $t->getMessage(); + $error = new SyntheticError($message, 0, $t->getFile(), $t->getLine(), $t->getTrace()); + + $placeholderTest = clone $test; + $placeholderTest->setName($afterClassMethod); + + $result->startTest($placeholderTest); + $result->addFailure($placeholderTest, $error, 0); + $result->endTest($placeholderTest, 0); + } + + $this->tearDown(); + + $result->endTestSuite($this); + + return $result; + } + + public function setRunTestInSeparateProcess(bool $runTestInSeparateProcess): void + { + $this->runTestInSeparateProcess = $runTestInSeparateProcess; + } + + public function setName(string $name): void + { + $this->name = $name; + } + + /** + * Returns the test at the given index. + * + * @return false|Test + */ + public function testAt(int $index) + { + if (isset($this->tests[$index])) { + return $this->tests[$index]; + } + + return false; + } + + /** + * Returns the tests as an enumeration. + * + * @return Test[] + */ + public function tests(): array + { + return $this->tests; + } + + /** + * Set tests of the test suite + * + * @param Test[] $tests + */ + public function setTests(array $tests): void + { + $this->tests = $tests; + } + + /** + * Mark the test suite as skipped. + * + * @param string $message + * + * @throws SkippedTestSuiteError + */ + public function markTestSuiteSkipped($message = ''): void + { + throw new SkippedTestSuiteError($message); + } + + /** + * @param bool $beStrictAboutChangesToGlobalState + */ + public function setBeStrictAboutChangesToGlobalState($beStrictAboutChangesToGlobalState): void + { + if (null === $this->beStrictAboutChangesToGlobalState && \is_bool($beStrictAboutChangesToGlobalState)) { + $this->beStrictAboutChangesToGlobalState = $beStrictAboutChangesToGlobalState; + } + } + + /** + * @param bool $backupGlobals + */ + public function setBackupGlobals($backupGlobals): void + { + if (null === $this->backupGlobals && \is_bool($backupGlobals)) { + $this->backupGlobals = $backupGlobals; + } + } + + /** + * @param bool $backupStaticAttributes + */ + public function setBackupStaticAttributes($backupStaticAttributes): void + { + if (null === $this->backupStaticAttributes && \is_bool($backupStaticAttributes)) { + $this->backupStaticAttributes = $backupStaticAttributes; + } + } + + /** + * Returns an iterator for this test suite. + */ + public function getIterator(): Iterator + { + $iterator = new TestSuiteIterator($this); + + if ($this->iteratorFilter !== null) { + $iterator = $this->iteratorFilter->factory($iterator, $this); + } + + return $iterator; + } + + public function injectFilter(Factory $filter): void + { + $this->iteratorFilter = $filter; + + foreach ($this as $test) { + if ($test instanceof self) { + $test->injectFilter($filter); + } + } + } + + /** + * Creates a default TestResult object. + */ + protected function createResult(): TestResult + { + return new TestResult; + } + + /** + * @throws Exception + */ + protected function addTestMethod(ReflectionClass $class, ReflectionMethod $method): void + { + if (!$this->isTestMethod($method)) { + return; + } + + $name = $method->getName(); + + if (!$method->isPublic()) { + $this->addTest( + self::warning( + \sprintf( + 'Test method "%s" in test class "%s" is not public.', + $name, + $class->getName() + ) + ) + ); + + return; + } + + $test = self::createTest($class, $name); + + if ($test instanceof TestCase || $test instanceof DataProviderTestSuite) { + $test->setDependencies( + \PHPUnit\Util\Test::getDependencies($class->getName(), $name) + ); + } + + $this->addTest( + $test, + \PHPUnit\Util\Test::getGroups($class->getName(), $name) + ); + } + + /** + * @param string $message + */ + protected static function warning($message): WarningTestCase + { + return new WarningTestCase($message); + } + + /** + * @param string $class + * @param string $methodName + * @param string $message + */ + protected static function skipTest($class, $methodName, $message): SkippedTestCase + { + return new SkippedTestCase($class, $methodName, $message); + } + + /** + * @param string $class + * @param string $methodName + * @param string $message + */ + protected static function incompleteTest($class, $methodName, $message): IncompleteTestCase + { + return new IncompleteTestCase($class, $methodName, $message); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/TestSuiteIterator.php b/vendor/phpunit/phpunit/src/Framework/TestSuiteIterator.php new file mode 100644 index 00000000..79f9c5e4 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/TestSuiteIterator.php @@ -0,0 +1,101 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +use RecursiveIterator; + +/** + * Iterator for test suites. + */ +final class TestSuiteIterator implements RecursiveIterator +{ + /** + * @var int + */ + private $position = 0; + + /** + * @var Test[] + */ + private $tests; + + public function __construct(TestSuite $testSuite) + { + $this->tests = $testSuite->tests(); + } + + /** + * Rewinds the Iterator to the first element. + */ + public function rewind(): void + { + $this->position = 0; + } + + /** + * Checks if there is a current element after calls to rewind() or next(). + */ + public function valid(): bool + { + return $this->position < \count($this->tests); + } + + /** + * Returns the key of the current element. + */ + public function key(): int + { + return $this->position; + } + + /** + * Returns the current element. + */ + public function current(): ?Test + { + return $this->valid() ? $this->tests[$this->position] : null; + } + + /** + * Moves forward to next element. + */ + public function next(): void + { + $this->position++; + } + + /** + * Returns the sub iterator for the current element. + * + * @throws \UnexpectedValueException if the current element is no TestSuite + */ + public function getChildren(): self + { + if (!$this->hasChildren()) { + throw new UnexpectedValueException( + 'The current item is no TestSuite instance and hence cannot have any children.', + 1567849414 + ); + } + + /** @var TestSuite $current */ + $current = $this->current(); + + return new self($current); + } + + /** + * Checks whether the current element has children. + */ + public function hasChildren(): bool + { + return $this->current() instanceof TestSuite; + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/UnexpectedValueException.php b/vendor/phpunit/phpunit/src/Framework/UnexpectedValueException.php new file mode 100644 index 00000000..70cd3bd3 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/UnexpectedValueException.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +final class UnexpectedValueException extends Exception +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php b/vendor/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php new file mode 100644 index 00000000..af2623d8 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/UnintentionallyCoveredCodeError.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +/** + * Extension to PHPUnit\Framework\AssertionFailedError to mark the special + * case of a test that unintentionally covers code. + */ +class UnintentionallyCoveredCodeError extends RiskyTestError +{ +} diff --git a/vendor/phpunit/phpunit/src/Framework/Warning.php b/vendor/phpunit/phpunit/src/Framework/Warning.php new file mode 100644 index 00000000..726eb07b --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/Warning.php @@ -0,0 +1,24 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +/** + * Thrown when there is a warning. + */ +class Warning extends Exception implements SelfDescribing +{ + /** + * Wrapper for getMessage() which is declared as final. + */ + public function toString(): string + { + return $this->getMessage(); + } +} diff --git a/vendor/phpunit/phpunit/src/Framework/WarningTestCase.php b/vendor/phpunit/phpunit/src/Framework/WarningTestCase.php new file mode 100644 index 00000000..53f6bffc --- /dev/null +++ b/vendor/phpunit/phpunit/src/Framework/WarningTestCase.php @@ -0,0 +1,71 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Framework; + +/** + * A warning. + */ +class WarningTestCase extends TestCase +{ + /** + * @var string + */ + protected $message = ''; + + /** + * @var bool + */ + protected $backupGlobals = false; + + /** + * @var bool + */ + protected $backupStaticAttributes = false; + + /** + * @var bool + */ + protected $runTestInSeparateProcess = false; + + /** + * @var bool + */ + protected $useErrorHandler = false; + + /** + * @param string $message + */ + public function __construct($message = '') + { + $this->message = $message; + parent::__construct('Warning'); + } + + public function getMessage(): string + { + return $this->message; + } + + /** + * Returns a string representation of the test case. + */ + public function toString(): string + { + return 'Warning'; + } + + /** + * @throws Exception + */ + protected function runTest(): void + { + throw new Warning($this->message); + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php b/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php new file mode 100644 index 00000000..098b133d --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php @@ -0,0 +1,172 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +use PHPUnit\Framework\Exception; +use PHPUnit\Framework\Test; +use PHPUnit\Framework\TestSuite; +use ReflectionClass; +use ReflectionException; +use SebastianBergmann\FileIterator\Facade as FileIteratorFacade; + +/** + * Base class for all test runners. + */ +abstract class BaseTestRunner +{ + /** + * @var int + */ + public const STATUS_UNKNOWN = -1; + + /** + * @var int + */ + public const STATUS_PASSED = 0; + + /** + * @var int + */ + public const STATUS_SKIPPED = 1; + + /** + * @var int + */ + public const STATUS_INCOMPLETE = 2; + + /** + * @var int + */ + public const STATUS_FAILURE = 3; + + /** + * @var int + */ + public const STATUS_ERROR = 4; + + /** + * @var int + */ + public const STATUS_RISKY = 5; + + /** + * @var int + */ + public const STATUS_WARNING = 6; + + /** + * @var string + */ + public const SUITE_METHODNAME = 'suite'; + + /** + * Returns the loader to be used. + */ + public function getLoader(): TestSuiteLoader + { + return new StandardTestSuiteLoader; + } + + /** + * Returns the Test corresponding to the given suite. + * This is a template method, subclasses override + * the runFailed() and clearStatus() methods. + * + * @param string|string[] $suffixes + * + * @throws Exception + */ + public function getTest(string $suiteClassName, string $suiteClassFile = '', $suffixes = ''): ?Test + { + if (\is_dir($suiteClassName) && + !\is_file($suiteClassName . '.php') && empty($suiteClassFile)) { + $facade = new FileIteratorFacade; + $files = $facade->getFilesAsArray( + $suiteClassName, + $suffixes + ); + + $suite = new TestSuite($suiteClassName); + $suite->addTestFiles($files); + + return $suite; + } + + try { + $testClass = $this->loadSuiteClass( + $suiteClassName, + $suiteClassFile + ); + } catch (Exception $e) { + $this->runFailed($e->getMessage()); + + return null; + } + + try { + $suiteMethod = $testClass->getMethod(self::SUITE_METHODNAME); + + if (!$suiteMethod->isStatic()) { + $this->runFailed( + 'suite() method must be static.' + ); + + return null; + } + + try { + $test = $suiteMethod->invoke(null, $testClass->getName()); + } catch (ReflectionException $e) { + $this->runFailed( + \sprintf( + "Failed to invoke suite() method.\n%s", + $e->getMessage() + ) + ); + + return null; + } + } catch (ReflectionException $e) { + try { + $test = new TestSuite($testClass); + } catch (Exception $e) { + $test = new TestSuite; + $test->setName($suiteClassName); + } + } + + $this->clearStatus(); + + return $test; + } + + /** + * Returns the loaded ReflectionClass for a suite name. + */ + protected function loadSuiteClass(string $suiteClassName, string $suiteClassFile = ''): ReflectionClass + { + $loader = $this->getLoader(); + + return $loader->load($suiteClassName, $suiteClassFile); + } + + /** + * Clears the status message. + */ + protected function clearStatus(): void + { + } + + /** + * Override to define how to handle a failed loading of + * a test suite. + */ + abstract protected function runFailed(string $message); +} diff --git a/vendor/phpunit/phpunit/src/Runner/Exception.php b/vendor/phpunit/phpunit/src/Runner/Exception.php new file mode 100644 index 00000000..18cdfa70 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Exception.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +class Exception extends \RuntimeException implements \PHPUnit\Exception +{ +} diff --git a/vendor/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php b/vendor/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php new file mode 100644 index 00000000..17af7dc2 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Filter/ExcludeGroupFilterIterator.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner\Filter; + +class ExcludeGroupFilterIterator extends GroupFilterIterator +{ + protected function doAccept(string $hash): bool + { + return !\in_array($hash, $this->groupTests, true); + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/Filter/Factory.php b/vendor/phpunit/phpunit/src/Runner/Filter/Factory.php new file mode 100644 index 00000000..139e097d --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Filter/Factory.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner\Filter; + +use FilterIterator; +use InvalidArgumentException; +use Iterator; +use PHPUnit\Framework\TestSuite; +use ReflectionClass; + +class Factory +{ + /** + * @var array + */ + private $filters = []; + + /** + * @throws InvalidArgumentException + */ + public function addFilter(ReflectionClass $filter, $args): void + { + if (!$filter->isSubclassOf(\RecursiveFilterIterator::class)) { + throw new InvalidArgumentException( + \sprintf( + 'Class "%s" does not extend RecursiveFilterIterator', + $filter->name + ) + ); + } + + $this->filters[] = [$filter, $args]; + } + + public function factory(Iterator $iterator, TestSuite $suite): FilterIterator + { + foreach ($this->filters as $filter) { + [$class, $args] = $filter; + $iterator = $class->newInstance($iterator, $args, $suite); + } + + return $iterator; + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php b/vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php new file mode 100644 index 00000000..1d204ada --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Filter/GroupFilterIterator.php @@ -0,0 +1,51 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner\Filter; + +use PHPUnit\Framework\TestSuite; +use RecursiveFilterIterator; +use RecursiveIterator; + +abstract class GroupFilterIterator extends RecursiveFilterIterator +{ + /** + * @var string[] + */ + protected $groupTests = []; + + public function __construct(RecursiveIterator $iterator, array $groups, TestSuite $suite) + { + parent::__construct($iterator); + + foreach ($suite->getGroupDetails() as $group => $tests) { + if (\in_array((string) $group, $groups, true)) { + $testHashes = \array_map( + 'spl_object_hash', + $tests + ); + + $this->groupTests = \array_merge($this->groupTests, $testHashes); + } + } + } + + public function accept(): bool + { + $test = $this->getInnerIterator()->current(); + + if ($test instanceof TestSuite) { + return true; + } + + return $this->doAccept(\spl_object_hash($test)); + } + + abstract protected function doAccept(string $hash); +} diff --git a/vendor/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php b/vendor/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php new file mode 100644 index 00000000..c9dc1f86 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Filter/IncludeGroupFilterIterator.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner\Filter; + +class IncludeGroupFilterIterator extends GroupFilterIterator +{ + protected function doAccept(string $hash): bool + { + return \in_array($hash, $this->groupTests, true); + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php b/vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php new file mode 100644 index 00000000..18734a09 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Filter/NameFilterIterator.php @@ -0,0 +1,122 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner\Filter; + +use PHPUnit\Framework\TestSuite; +use PHPUnit\Framework\WarningTestCase; +use PHPUnit\Util\RegularExpression; +use RecursiveFilterIterator; +use RecursiveIterator; + +class NameFilterIterator extends RecursiveFilterIterator +{ + /** + * @var string + */ + protected $filter; + + /** + * @var int + */ + protected $filterMin; + + /** + * @var int + */ + protected $filterMax; + + /** + * @throws \Exception + */ + public function __construct(RecursiveIterator $iterator, string $filter) + { + parent::__construct($iterator); + + $this->setFilter($filter); + } + + public function accept(): bool + { + $test = $this->getInnerIterator()->current(); + + if ($test instanceof TestSuite) { + return true; + } + + $tmp = \PHPUnit\Util\Test::describe($test); + + if ($test instanceof WarningTestCase) { + $name = $test->getMessage(); + } else { + if ($tmp[0] !== '') { + $name = \implode('::', $tmp); + } else { + $name = $tmp[1]; + } + } + + $accepted = @\preg_match($this->filter, $name, $matches); + + if ($accepted && isset($this->filterMax)) { + $set = \end($matches); + $accepted = $set >= $this->filterMin && $set <= $this->filterMax; + } + + return (bool) $accepted; + } + + /** + * @throws \Exception + */ + protected function setFilter(string $filter): void + { + if (RegularExpression::safeMatch($filter, '') === false) { + // Handles: + // * testAssertEqualsSucceeds#4 + // * testAssertEqualsSucceeds#4-8 + if (\preg_match('/^(.*?)#(\d+)(?:-(\d+))?$/', $filter, $matches)) { + if (isset($matches[3]) && $matches[2] < $matches[3]) { + $filter = \sprintf( + '%s.*with data set #(\d+)$', + $matches[1] + ); + + $this->filterMin = $matches[2]; + $this->filterMax = $matches[3]; + } else { + $filter = \sprintf( + '%s.*with data set #%s$', + $matches[1], + $matches[2] + ); + } + } // Handles: + // * testDetermineJsonError@JSON_ERROR_NONE + // * testDetermineJsonError@JSON.* + elseif (\preg_match('/^(.*?)@(.+)$/', $filter, $matches)) { + $filter = \sprintf( + '%s.*with data set "%s"$', + $matches[1], + $matches[2] + ); + } + + // Escape delimiters in regular expression. Do NOT use preg_quote, + // to keep magic characters. + $filter = \sprintf('/%s/i', \str_replace( + '/', + '\\/', + $filter + )); + } + + $this->filter = $filter; + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php b/vendor/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php new file mode 100644 index 00000000..35ded5d0 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Hook/AfterIncompleteTestHook.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +interface AfterIncompleteTestHook extends TestHook +{ + public function executeAfterIncompleteTest(string $test, string $message, float $time): void; +} diff --git a/vendor/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php b/vendor/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php new file mode 100644 index 00000000..7dee9f9e --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Hook/AfterLastTestHook.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +interface AfterLastTestHook extends Hook +{ + public function executeAfterLastTest(): void; +} diff --git a/vendor/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php b/vendor/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php new file mode 100644 index 00000000..7fe9ee72 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Hook/AfterRiskyTestHook.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +interface AfterRiskyTestHook extends TestHook +{ + public function executeAfterRiskyTest(string $test, string $message, float $time): void; +} diff --git a/vendor/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php b/vendor/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php new file mode 100644 index 00000000..f9253b5b --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Hook/AfterSkippedTestHook.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +interface AfterSkippedTestHook extends TestHook +{ + public function executeAfterSkippedTest(string $test, string $message, float $time): void; +} diff --git a/vendor/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php b/vendor/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php new file mode 100644 index 00000000..6b55cc87 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Hook/AfterSuccessfulTestHook.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +interface AfterSuccessfulTestHook extends TestHook +{ + public function executeAfterSuccessfulTest(string $test, float $time): void; +} diff --git a/vendor/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php b/vendor/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php new file mode 100644 index 00000000..f5c23fb2 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Hook/AfterTestErrorHook.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +interface AfterTestErrorHook extends TestHook +{ + public function executeAfterTestError(string $test, string $message, float $time): void; +} diff --git a/vendor/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php b/vendor/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php new file mode 100644 index 00000000..9ed2939b --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Hook/AfterTestFailureHook.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +interface AfterTestFailureHook extends TestHook +{ + public function executeAfterTestFailure(string $test, string $message, float $time): void; +} diff --git a/vendor/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php b/vendor/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php new file mode 100644 index 00000000..f463732a --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Hook/AfterTestHook.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +interface AfterTestHook extends Hook +{ + /** + * This hook will fire after any test, regardless of the result. + * + * For more fine grained control, have a look at the other hooks + * that extend PHPUnit\Runner\Hook. + */ + public function executeAfterTest(string $test, float $time): void; +} diff --git a/vendor/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php b/vendor/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php new file mode 100644 index 00000000..12de80f9 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Hook/AfterTestWarningHook.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +interface AfterTestWarningHook extends TestHook +{ + public function executeAfterTestWarning(string $test, string $message, float $time): void; +} diff --git a/vendor/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php b/vendor/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php new file mode 100644 index 00000000..59b66664 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Hook/BeforeFirstTestHook.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +interface BeforeFirstTestHook extends Hook +{ + public function executeBeforeFirstTest(): void; +} diff --git a/vendor/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php b/vendor/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php new file mode 100644 index 00000000..8bbf8a99 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Hook/BeforeTestHook.php @@ -0,0 +1,15 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +interface BeforeTestHook extends TestHook +{ + public function executeBeforeTest(string $test): void; +} diff --git a/vendor/phpunit/phpunit/src/Runner/Hook/Hook.php b/vendor/phpunit/phpunit/src/Runner/Hook/Hook.php new file mode 100644 index 00000000..546f1a35 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Hook/Hook.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +interface Hook +{ +} diff --git a/vendor/phpunit/phpunit/src/Runner/Hook/TestHook.php b/vendor/phpunit/phpunit/src/Runner/Hook/TestHook.php new file mode 100644 index 00000000..47c41f9e --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Hook/TestHook.php @@ -0,0 +1,14 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +interface TestHook extends Hook +{ +} diff --git a/vendor/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php b/vendor/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php new file mode 100644 index 00000000..02ed7006 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Hook/TestListenerAdapter.php @@ -0,0 +1,137 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +use PHPUnit\Framework\AssertionFailedError; +use PHPUnit\Framework\Test; +use PHPUnit\Framework\TestListener; +use PHPUnit\Framework\TestSuite; +use PHPUnit\Framework\Warning; +use PHPUnit\Util\Test as TestUtil; + +final class TestListenerAdapter implements TestListener +{ + /** + * @var TestHook[] + */ + private $hooks = []; + + /** + * @var bool + */ + private $lastTestWasNotSuccessful; + + public function add(TestHook $hook): void + { + $this->hooks[] = $hook; + } + + public function startTest(Test $test): void + { + foreach ($this->hooks as $hook) { + if ($hook instanceof BeforeTestHook) { + $hook->executeBeforeTest(TestUtil::describeAsString($test)); + } + } + + $this->lastTestWasNotSuccessful = false; + } + + public function addError(Test $test, \Throwable $t, float $time): void + { + foreach ($this->hooks as $hook) { + if ($hook instanceof AfterTestErrorHook) { + $hook->executeAfterTestError(TestUtil::describeAsString($test), $t->getMessage(), $time); + } + } + + $this->lastTestWasNotSuccessful = true; + } + + public function addWarning(Test $test, Warning $e, float $time): void + { + foreach ($this->hooks as $hook) { + if ($hook instanceof AfterTestWarningHook) { + $hook->executeAfterTestWarning(TestUtil::describeAsString($test), $e->getMessage(), $time); + } + } + + $this->lastTestWasNotSuccessful = true; + } + + public function addFailure(Test $test, AssertionFailedError $e, float $time): void + { + foreach ($this->hooks as $hook) { + if ($hook instanceof AfterTestFailureHook) { + $hook->executeAfterTestFailure(TestUtil::describeAsString($test), $e->getMessage(), $time); + } + } + + $this->lastTestWasNotSuccessful = true; + } + + public function addIncompleteTest(Test $test, \Throwable $t, float $time): void + { + foreach ($this->hooks as $hook) { + if ($hook instanceof AfterIncompleteTestHook) { + $hook->executeAfterIncompleteTest(TestUtil::describeAsString($test), $t->getMessage(), $time); + } + } + + $this->lastTestWasNotSuccessful = true; + } + + public function addRiskyTest(Test $test, \Throwable $t, float $time): void + { + foreach ($this->hooks as $hook) { + if ($hook instanceof AfterRiskyTestHook) { + $hook->executeAfterRiskyTest(TestUtil::describeAsString($test), $t->getMessage(), $time); + } + } + + $this->lastTestWasNotSuccessful = true; + } + + public function addSkippedTest(Test $test, \Throwable $t, float $time): void + { + foreach ($this->hooks as $hook) { + if ($hook instanceof AfterSkippedTestHook) { + $hook->executeAfterSkippedTest(TestUtil::describeAsString($test), $t->getMessage(), $time); + } + } + + $this->lastTestWasNotSuccessful = true; + } + + public function endTest(Test $test, float $time): void + { + if ($this->lastTestWasNotSuccessful !== true) { + foreach ($this->hooks as $hook) { + if ($hook instanceof AfterSuccessfulTestHook) { + $hook->executeAfterSuccessfulTest(TestUtil::describeAsString($test), $time); + } + } + } + + foreach ($this->hooks as $hook) { + if ($hook instanceof AfterTestHook) { + $hook->executeAfterTest(TestUtil::describeAsString($test), $time); + } + } + } + + public function startTestSuite(TestSuite $suite): void + { + } + + public function endTestSuite(TestSuite $suite): void + { + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/PhptTestCase.php b/vendor/phpunit/phpunit/src/Runner/PhptTestCase.php new file mode 100644 index 00000000..bccc70b9 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/PhptTestCase.php @@ -0,0 +1,598 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +use PHPUnit\Framework\Assert; +use PHPUnit\Framework\AssertionFailedError; +use PHPUnit\Framework\IncompleteTestError; +use PHPUnit\Framework\SelfDescribing; +use PHPUnit\Framework\SkippedTestError; +use PHPUnit\Framework\Test; +use PHPUnit\Framework\TestResult; +use PHPUnit\Util\PHP\AbstractPhpProcess; +use SebastianBergmann\Timer\Timer; +use Text_Template; +use Throwable; + +/** + * Runner for PHPT test cases. + */ +class PhptTestCase implements SelfDescribing, Test +{ + /** + * @var string[] + */ + private const SETTINGS = [ + 'allow_url_fopen=1', + 'auto_append_file=', + 'auto_prepend_file=', + 'disable_functions=', + 'display_errors=1', + 'docref_ext=.html', + 'docref_root=', + 'error_append_string=', + 'error_prepend_string=', + 'error_reporting=-1', + 'html_errors=0', + 'log_errors=0', + 'magic_quotes_runtime=0', + 'open_basedir=', + 'output_buffering=Off', + 'output_handler=', + 'report_memleaks=0', + 'report_zend_debug=0', + 'safe_mode=0', + 'xdebug.default_enable=0', + ]; + + /** + * @var string + */ + private $filename; + + /** + * @var AbstractPhpProcess + */ + private $phpUtil; + + /** + * @var string + */ + private $output = ''; + + /** + * Constructs a test case with the given filename. + * + * @throws Exception + */ + public function __construct(string $filename, AbstractPhpProcess $phpUtil = null) + { + if (!\is_file($filename)) { + throw new Exception( + \sprintf( + 'File "%s" does not exist.', + $filename + ) + ); + } + + $this->filename = $filename; + $this->phpUtil = $phpUtil ?: AbstractPhpProcess::factory(); + } + + /** + * Counts the number of test cases executed by run(TestResult result). + */ + public function count(): int + { + return 1; + } + + /** + * Runs a test and collects its result in a TestResult instance. + * + * @throws Exception + * @throws \ReflectionException + * @throws \SebastianBergmann\CodeCoverage\CoveredCodeNotExecutedException + * @throws \SebastianBergmann\CodeCoverage\InvalidArgumentException + * @throws \SebastianBergmann\CodeCoverage\MissingCoversAnnotationException + * @throws \SebastianBergmann\CodeCoverage\RuntimeException + * @throws \SebastianBergmann\CodeCoverage\UnintentionallyCoveredCodeException + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function run(TestResult $result = null): TestResult + { + if ($result === null) { + $result = new TestResult; + } + + try { + $sections = $this->parse(); + } catch (Exception $e) { + $result->startTest($this); + $result->addFailure($this, new SkippedTestError($e->getMessage()), 0); + $result->endTest($this, 0); + + return $result; + } + + $code = $this->render($sections['FILE']); + $xfail = false; + $settings = $this->parseIniSection(self::SETTINGS); + + $result->startTest($this); + + if (isset($sections['INI'])) { + $settings = $this->parseIniSection($sections['INI'], $settings); + } + + if (isset($sections['ENV'])) { + $env = $this->parseEnvSection($sections['ENV']); + $this->phpUtil->setEnv($env); + } + + $this->phpUtil->setUseStderrRedirection(true); + + if ($result->enforcesTimeLimit()) { + $this->phpUtil->setTimeout($result->getTimeoutForLargeTests()); + } + + $skip = $this->runSkip($sections, $result, $settings); + + if ($skip) { + return $result; + } + + if (isset($sections['XFAIL'])) { + $xfail = \trim($sections['XFAIL']); + } + + if (isset($sections['STDIN'])) { + $this->phpUtil->setStdin($sections['STDIN']); + } + + if (isset($sections['ARGS'])) { + $this->phpUtil->setArgs($sections['ARGS']); + } + + if ($result->getCollectCodeCoverageInformation()) { + $this->renderForCoverage($code); + } + + Timer::start(); + + $jobResult = $this->phpUtil->runJob($code, $this->stringifyIni($settings)); + $time = Timer::stop(); + $this->output = $jobResult['stdout'] ?? ''; + + if ($result->getCollectCodeCoverageInformation() && ($coverage = $this->cleanupForCoverage())) { + $result->getCodeCoverage()->append($coverage, $this, true, [], [], true); + } + + try { + $this->assertPhptExpectation($sections, $this->output); + } catch (AssertionFailedError $e) { + $failure = $e; + + if ($xfail !== false) { + $failure = new IncompleteTestError($xfail, 0, $e); + } + $result->addFailure($this, $failure, $time); + } catch (Throwable $t) { + $result->addError($this, $t, $time); + } + + if ($result->allCompletelyImplemented() && $xfail !== false) { + $result->addFailure($this, new IncompleteTestError('XFAIL section but test passes'), $time); + } + + $this->runClean($sections); + + $result->endTest($this, $time); + + return $result; + } + + /** + * Returns the name of the test case. + */ + public function getName(): string + { + return $this->toString(); + } + + /** + * Returns a string representation of the test case. + */ + public function toString(): string + { + return $this->filename; + } + + public function usesDataProvider(): bool + { + return false; + } + + public function getNumAssertions(): int + { + return 1; + } + + public function getActualOutput(): string + { + return $this->output; + } + + public function hasOutput(): bool + { + return !empty($this->output); + } + + /** + * Parse --INI-- section key value pairs and return as array. + * + * @param array|string + */ + private function parseIniSection($content, $ini = []): array + { + if (\is_string($content)) { + $content = \explode("\n", \trim($content)); + } + + foreach ($content as $setting) { + if (\strpos($setting, '=') === false) { + continue; + } + + $setting = \explode('=', $setting, 2); + $name = \trim($setting[0]); + $value = \trim($setting[1]); + + if ($name === 'extension' || $name === 'zend_extension') { + if (!isset($ini[$name])) { + $ini[$name] = []; + } + + $ini[$name][] = $value; + + continue; + } + + $ini[$name] = $value; + } + + return $ini; + } + + private function parseEnvSection(string $content): array + { + $env = []; + + foreach (\explode("\n", \trim($content)) as $e) { + $e = \explode('=', \trim($e), 2); + + if (!empty($e[0]) && isset($e[1])) { + $env[$e[0]] = $e[1]; + } + } + + return $env; + } + + /** + * @throws Exception + */ + private function assertPhptExpectation(array $sections, string $output): void + { + $assertions = [ + 'EXPECT' => 'assertEquals', + 'EXPECTF' => 'assertStringMatchesFormat', + 'EXPECTREGEX' => 'assertRegExp', + ]; + + $actual = \preg_replace('/\r\n/', "\n", \trim($output)); + + foreach ($assertions as $sectionName => $sectionAssertion) { + if (isset($sections[$sectionName])) { + $sectionContent = \preg_replace('/\r\n/', "\n", \trim($sections[$sectionName])); + $expected = $sectionName === 'EXPECTREGEX' ? "/{$sectionContent}/" : $sectionContent; + + if ($expected === null) { + throw new Exception('No PHPT expectation found'); + } + Assert::$sectionAssertion($expected, $actual); + + return; + } + } + + throw new Exception('No PHPT assertion found'); + } + + /** + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + private function runSkip(array &$sections, TestResult $result, array $settings): bool + { + if (!isset($sections['SKIPIF'])) { + return false; + } + + $skipif = $this->render($sections['SKIPIF']); + $jobResult = $this->phpUtil->runJob($skipif, $this->stringifyIni($settings)); + + if (!\strncasecmp('skip', \ltrim($jobResult['stdout']), 4)) { + $message = ''; + + if (\preg_match('/^\s*skip\s*(.+)\s*/i', $jobResult['stdout'], $skipMatch)) { + $message = \substr($skipMatch[1], 2); + } + + $result->addFailure($this, new SkippedTestError($message), 0); + $result->endTest($this, 0); + + return true; + } + + return false; + } + + private function runClean(array &$sections): void + { + $this->phpUtil->setStdin(''); + $this->phpUtil->setArgs(''); + + if (isset($sections['CLEAN'])) { + $cleanCode = $this->render($sections['CLEAN']); + + $this->phpUtil->runJob($cleanCode, self::SETTINGS); + } + } + + /** + * @throws Exception + */ + private function parse(): array + { + $sections = []; + $section = ''; + + $unsupportedSections = [ + 'CGI', + 'COOKIE', + 'DEFLATE_POST', + 'EXPECTHEADERS', + 'EXTENSIONS', + 'GET', + 'GZIP_POST', + 'HEADERS', + 'PHPDBG', + 'POST', + 'POST_RAW', + 'PUT', + 'REDIRECTTEST', + 'REQUEST', + ]; + + foreach (\file($this->filename) as $line) { + if (\preg_match('/^--([_A-Z]+)--/', $line, $result)) { + $section = $result[1]; + $sections[$section] = ''; + + continue; + } + + if (empty($section)) { + throw new Exception('Invalid PHPT file: empty section header'); + } + + $sections[$section] .= $line; + } + + if (isset($sections['FILEEOF'])) { + $sections['FILE'] = \rtrim($sections['FILEEOF'], "\r\n"); + unset($sections['FILEEOF']); + } + + $this->parseExternal($sections); + + if (!$this->validate($sections)) { + throw new Exception('Invalid PHPT file'); + } + + foreach ($unsupportedSections as $section) { + if (isset($sections[$section])) { + throw new Exception( + "PHPUnit does not support PHPT $section sections" + ); + } + } + + return $sections; + } + + /** + * @throws Exception + */ + private function parseExternal(array &$sections): void + { + $allowSections = [ + 'FILE', + 'EXPECT', + 'EXPECTF', + 'EXPECTREGEX', + ]; + $testDirectory = \dirname($this->filename) . \DIRECTORY_SEPARATOR; + + foreach ($allowSections as $section) { + if (isset($sections[$section . '_EXTERNAL'])) { + $externalFilename = \trim($sections[$section . '_EXTERNAL']); + + if (!\is_file($testDirectory . $externalFilename) || + !\is_readable($testDirectory . $externalFilename)) { + throw new Exception( + \sprintf( + 'Could not load --%s-- %s for PHPT file', + $section . '_EXTERNAL', + $testDirectory . $externalFilename + ) + ); + } + + $sections[$section] = \file_get_contents($testDirectory . $externalFilename); + + unset($sections[$section . '_EXTERNAL']); + } + } + } + + private function validate(array &$sections): bool + { + $requiredSections = [ + 'FILE', + [ + 'EXPECT', + 'EXPECTF', + 'EXPECTREGEX', + ], + ]; + + foreach ($requiredSections as $section) { + if (\is_array($section)) { + $foundSection = false; + + foreach ($section as $anySection) { + if (isset($sections[$anySection])) { + $foundSection = true; + + break; + } + } + + if (!$foundSection) { + return false; + } + + continue; + } + + if (!isset($sections[$section])) { + return false; + } + } + + return true; + } + + private function render(string $code): string + { + return \str_replace( + [ + '__DIR__', + '__FILE__', + ], + [ + "'" . \dirname($this->filename) . "'", + "'" . $this->filename . "'", + ], + $code + ); + } + + private function getCoverageFiles(): array + { + $baseDir = \dirname(\realpath($this->filename)) . \DIRECTORY_SEPARATOR; + $basename = \basename($this->filename, 'phpt'); + + return [ + 'coverage' => $baseDir . $basename . 'coverage', + 'job' => $baseDir . $basename . 'php', + ]; + } + + private function renderForCoverage(string &$job): void + { + $files = $this->getCoverageFiles(); + + $template = new Text_Template( + __DIR__ . '/../Util/PHP/Template/PhptTestCase.tpl' + ); + + $composerAutoload = '\'\''; + + if (\defined('PHPUNIT_COMPOSER_INSTALL') && !\defined('PHPUNIT_TESTSUITE')) { + $composerAutoload = \var_export(PHPUNIT_COMPOSER_INSTALL, true); + } + + $phar = '\'\''; + + if (\defined('__PHPUNIT_PHAR__')) { + $phar = \var_export(__PHPUNIT_PHAR__, true); + } + + $globals = ''; + + if (!empty($GLOBALS['__PHPUNIT_BOOTSTRAP'])) { + $globals = '$GLOBALS[\'__PHPUNIT_BOOTSTRAP\'] = ' . \var_export( + $GLOBALS['__PHPUNIT_BOOTSTRAP'], + true + ) . ";\n"; + } + + $template->setVar( + [ + 'composerAutoload' => $composerAutoload, + 'phar' => $phar, + 'globals' => $globals, + 'job' => $files['job'], + 'coverageFile' => $files['coverage'], + ] + ); + + \file_put_contents($files['job'], $job); + $job = $template->render(); + } + + private function cleanupForCoverage(): array + { + $files = $this->getCoverageFiles(); + $coverage = @\unserialize(\file_get_contents($files['coverage'])); + + if ($coverage === false) { + $coverage = []; + } + + foreach ($files as $file) { + @\unlink($file); + } + + return $coverage; + } + + private function stringifyIni(array $ini): array + { + $settings = []; + + foreach ($ini as $key => $value) { + if (\is_array($value)) { + foreach ($value as $val) { + $settings[] = $key . '=' . $val; + } + + continue; + } + + $settings[] = $key . '=' . $value; + } + + return $settings; + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/ResultCacheExtension.php b/vendor/phpunit/phpunit/src/Runner/ResultCacheExtension.php new file mode 100644 index 00000000..609164ad --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/ResultCacheExtension.php @@ -0,0 +1,104 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +final class ResultCacheExtension implements AfterIncompleteTestHook, AfterLastTestHook, AfterRiskyTestHook, AfterSkippedTestHook, AfterSuccessfulTestHook, AfterTestErrorHook, AfterTestFailureHook, AfterTestWarningHook +{ + /** + * @var TestResultCacheInterface + */ + private $cache; + + public function __construct(TestResultCache $cache) + { + $this->cache = $cache; + } + + public function flush(): void + { + $this->cache->persist(); + } + + public function executeAfterSuccessfulTest(string $test, float $time): void + { + $testName = $this->getTestName($test); + + $this->cache->setTime($testName, \round($time, 3)); + } + + public function executeAfterIncompleteTest(string $test, string $message, float $time): void + { + $testName = $this->getTestName($test); + + $this->cache->setTime($testName, \round($time, 3)); + $this->cache->setState($testName, BaseTestRunner::STATUS_INCOMPLETE); + } + + public function executeAfterRiskyTest(string $test, string $message, float $time): void + { + $testName = $this->getTestName($test); + + $this->cache->setTime($testName, \round($time, 3)); + $this->cache->setState($testName, BaseTestRunner::STATUS_RISKY); + } + + public function executeAfterSkippedTest(string $test, string $message, float $time): void + { + $testName = $this->getTestName($test); + + $this->cache->setTime($testName, \round($time, 3)); + $this->cache->setState($testName, BaseTestRunner::STATUS_SKIPPED); + } + + public function executeAfterTestError(string $test, string $message, float $time): void + { + $testName = $this->getTestName($test); + + $this->cache->setTime($testName, \round($time, 3)); + $this->cache->setState($testName, BaseTestRunner::STATUS_ERROR); + } + + public function executeAfterTestFailure(string $test, string $message, float $time): void + { + $testName = $this->getTestName($test); + + $this->cache->setTime($testName, \round($time, 3)); + $this->cache->setState($testName, BaseTestRunner::STATUS_FAILURE); + } + + public function executeAfterTestWarning(string $test, string $message, float $time): void + { + $testName = $this->getTestName($test); + + $this->cache->setTime($testName, \round($time, 3)); + $this->cache->setState($testName, BaseTestRunner::STATUS_WARNING); + } + + public function executeAfterLastTest(): void + { + $this->flush(); + } + + /** + * @param string $test A long description format of the current test + * + * @return string The test name without TestSuiteClassName:: and @dataprovider details + */ + private function getTestName(string $test): string + { + $matches = []; + + if (\preg_match('/^(?\S+::\S+)(?:(? with data set (?:#\d+|"[^"]+"))\s\()?/', $test, $matches)) { + $test = $matches['name'] . ($matches['dataname'] ?? ''); + } + + return $test; + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php b/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php new file mode 100644 index 00000000..633a7c26 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php @@ -0,0 +1,112 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +use PHPUnit\Framework\TestCase; +use PHPUnit\Util\FileLoader; +use PHPUnit\Util\Filesystem; +use ReflectionClass; + +/** + * The standard test suite loader. + */ +class StandardTestSuiteLoader implements TestSuiteLoader +{ + /** + * @throws Exception + * @throws \PHPUnit\Framework\Exception + */ + public function load(string $suiteClassName, string $suiteClassFile = ''): ReflectionClass + { + $suiteClassName = \str_replace('.php', '', $suiteClassName); + + if (empty($suiteClassFile)) { + $suiteClassFile = Filesystem::classNameToFilename( + $suiteClassName + ); + } + + if (!\class_exists($suiteClassName, false)) { + $loadedClasses = \get_declared_classes(); + + $filename = FileLoader::checkAndLoad($suiteClassFile); + + $loadedClasses = \array_values( + \array_diff(\get_declared_classes(), $loadedClasses) + ); + } + + if (!\class_exists($suiteClassName, false) && !empty($loadedClasses)) { + $offset = 0 - \strlen($suiteClassName); + + foreach ($loadedClasses as $loadedClass) { + $class = new ReflectionClass($loadedClass); + + if (\substr($loadedClass, $offset) === $suiteClassName && + $class->getFileName() == $filename) { + $suiteClassName = $loadedClass; + + break; + } + } + } + + if (!\class_exists($suiteClassName, false) && !empty($loadedClasses)) { + $testCaseClass = TestCase::class; + + foreach ($loadedClasses as $loadedClass) { + $class = new ReflectionClass($loadedClass); + $classFile = $class->getFileName(); + + if ($class->isSubclassOf($testCaseClass) && !$class->isAbstract()) { + $suiteClassName = $loadedClass; + $testCaseClass = $loadedClass; + + if ($classFile == \realpath($suiteClassFile)) { + break; + } + } + + if ($class->hasMethod('suite')) { + $method = $class->getMethod('suite'); + + if (!$method->isAbstract() && $method->isPublic() && $method->isStatic()) { + $suiteClassName = $loadedClass; + + if ($classFile == \realpath($suiteClassFile)) { + break; + } + } + } + } + } + + if (\class_exists($suiteClassName, false)) { + $class = new ReflectionClass($suiteClassName); + + if ($class->getFileName() == \realpath($suiteClassFile)) { + return $class; + } + } + + throw new Exception( + \sprintf( + "Class '%s' could not be found in '%s'.", + $suiteClassName, + $suiteClassFile + ) + ); + } + + public function reload(ReflectionClass $aClass): ReflectionClass + { + return $aClass; + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php b/vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php new file mode 100644 index 00000000..74cf753f --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/TestSuiteLoader.php @@ -0,0 +1,22 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +use ReflectionClass; + +/** + * An interface to define how a test suite should be loaded. + */ +interface TestSuiteLoader +{ + public function load(string $suiteClassName, string $suiteClassFile = ''): ReflectionClass; + + public function reload(ReflectionClass $aClass): ReflectionClass; +} diff --git a/vendor/phpunit/phpunit/src/Runner/TestSuiteSorter.php b/vendor/phpunit/phpunit/src/Runner/TestSuiteSorter.php new file mode 100644 index 00000000..d467ac62 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/TestSuiteSorter.php @@ -0,0 +1,360 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +use PHPUnit\Framework\DataProviderTestSuite; +use PHPUnit\Framework\Test; +use PHPUnit\Framework\TestCase; +use PHPUnit\Framework\TestSuite; + +final class TestSuiteSorter +{ + /** + * @var int + */ + public const ORDER_DEFAULT = 0; + + /** + * @var int + */ + public const ORDER_RANDOMIZED = 1; + + /** + * @var int + */ + public const ORDER_REVERSED = 2; + + /** + * @var int + */ + public const ORDER_DEFECTS_FIRST = 3; + + /** + * @var int + */ + public const ORDER_DURATION = 4; + + /** + * List of sorting weights for all test result codes. A higher number gives higher priority. + */ + private const DEFECT_SORT_WEIGHT = [ + BaseTestRunner::STATUS_ERROR => 6, + BaseTestRunner::STATUS_FAILURE => 5, + BaseTestRunner::STATUS_WARNING => 4, + BaseTestRunner::STATUS_INCOMPLETE => 3, + BaseTestRunner::STATUS_RISKY => 2, + BaseTestRunner::STATUS_SKIPPED => 1, + BaseTestRunner::STATUS_UNKNOWN => 0, + ]; + + /** + * @var array Associative array of (string => DEFECT_SORT_WEIGHT) elements + */ + private $defectSortOrder = []; + + /** + * @var TestResultCacheInterface + */ + private $cache; + + /** + * @var array array A list of normalized names of tests before reordering + */ + private $originalExecutionOrder = []; + + /** + * @var array array A list of normalized names of tests affected by reordering + */ + private $executionOrder = []; + + public static function getTestSorterUID(Test $test): string + { + if ($test instanceof PhptTestCase) { + return $test->getName(); + } + + if ($test instanceof TestCase) { + $testName = $test->getName(true); + + if (\strpos($testName, '::') === false) { + $testName = \get_class($test) . '::' . $testName; + } + + return $testName; + } + + return $test->getName(); + } + + public function __construct(?TestResultCacheInterface $cache = null) + { + $this->cache = $cache ?? new NullTestResultCache; + } + + /** + * @throws Exception + */ + public function reorderTestsInSuite(Test $suite, int $order, bool $resolveDependencies, int $orderDefects, bool $isRootTestSuite = true): void + { + $allowedOrders = [ + self::ORDER_DEFAULT, + self::ORDER_REVERSED, + self::ORDER_RANDOMIZED, + self::ORDER_DURATION, + ]; + + if (!\in_array($order, $allowedOrders, true)) { + throw new Exception( + '$order must be one of TestSuiteSorter::ORDER_DEFAULT, TestSuiteSorter::ORDER_REVERSED, or TestSuiteSorter::ORDER_RANDOMIZED, or TestSuiteSorter::ORDER_DURATION' + ); + } + + $allowedOrderDefects = [ + self::ORDER_DEFAULT, + self::ORDER_DEFECTS_FIRST, + ]; + + if (!\in_array($orderDefects, $allowedOrderDefects, true)) { + throw new Exception( + '$orderDefects must be one of TestSuiteSorter::ORDER_DEFAULT, TestSuiteSorter::ORDER_DEFECTS_FIRST' + ); + } + + if ($isRootTestSuite) { + $this->originalExecutionOrder = $this->calculateTestExecutionOrder($suite); + } + + if ($suite instanceof TestSuite) { + foreach ($suite as $_suite) { + $this->reorderTestsInSuite($_suite, $order, $resolveDependencies, $orderDefects, false); + } + + if ($orderDefects === self::ORDER_DEFECTS_FIRST) { + $this->addSuiteToDefectSortOrder($suite); + } + + $this->sort($suite, $order, $resolveDependencies, $orderDefects); + } + + if ($isRootTestSuite) { + $this->executionOrder = $this->calculateTestExecutionOrder($suite); + } + } + + public function getOriginalExecutionOrder(): array + { + return $this->originalExecutionOrder; + } + + public function getExecutionOrder(): array + { + return $this->executionOrder; + } + + private function sort(TestSuite $suite, int $order, bool $resolveDependencies, int $orderDefects): void + { + if (empty($suite->tests())) { + return; + } + + if ($order === self::ORDER_REVERSED) { + $suite->setTests($this->reverse($suite->tests())); + } elseif ($order === self::ORDER_RANDOMIZED) { + $suite->setTests($this->randomize($suite->tests())); + } elseif ($order === self::ORDER_DURATION && $this->cache !== null) { + $suite->setTests($this->sortByDuration($suite->tests())); + } + + if ($orderDefects === self::ORDER_DEFECTS_FIRST && $this->cache !== null) { + $suite->setTests($this->sortDefectsFirst($suite->tests())); + } + + if ($resolveDependencies && !($suite instanceof DataProviderTestSuite) && $this->suiteOnlyContainsTests($suite)) { + /** @var TestCase[] $tests */ + $tests = $suite->tests(); + + $suite->setTests($this->resolveDependencies($tests)); + } + } + + private function addSuiteToDefectSortOrder(TestSuite $suite): void + { + $max = 0; + + foreach ($suite->tests() as $test) { + $testname = self::getTestSorterUID($test); + + if (!isset($this->defectSortOrder[$testname])) { + $this->defectSortOrder[$testname] = self::DEFECT_SORT_WEIGHT[$this->cache->getState($testname)]; + $max = \max($max, $this->defectSortOrder[$testname]); + } + } + + $this->defectSortOrder[$suite->getName()] = $max; + } + + private function suiteOnlyContainsTests(TestSuite $suite): bool + { + return \array_reduce( + $suite->tests(), + function ($carry, $test) { + return $carry && ($test instanceof TestCase || $test instanceof DataProviderTestSuite); + }, + true + ); + } + + private function reverse(array $tests): array + { + return \array_reverse($tests); + } + + private function randomize(array $tests): array + { + \shuffle($tests); + + return $tests; + } + + private function sortDefectsFirst(array $tests): array + { + \usort( + $tests, + function ($left, $right) { + return $this->cmpDefectPriorityAndTime($left, $right); + } + ); + + return $tests; + } + + private function sortByDuration(array $tests): array + { + \usort( + $tests, + function ($left, $right) { + return $this->cmpDuration($left, $right); + } + ); + + return $tests; + } + + /** + * Comparator callback function to sort tests for "reach failure as fast as possible": + * 1. sort tests by defect weight defined in self::DEFECT_SORT_WEIGHT + * 2. when tests are equally defective, sort the fastest to the front + * 3. do not reorder successful tests + */ + private function cmpDefectPriorityAndTime(Test $a, Test $b): int + { + $priorityA = $this->defectSortOrder[self::getTestSorterUID($a)] ?? 0; + $priorityB = $this->defectSortOrder[self::getTestSorterUID($b)] ?? 0; + + if ($priorityB <=> $priorityA) { + // Sort defect weight descending + return $priorityB <=> $priorityA; + } + + if ($priorityA || $priorityB) { + return $this->cmpDuration($a, $b); + } + + // do not change execution order + return 0; + } + + /** + * Compares test duration for sorting tests by duration ascending. + */ + private function cmpDuration(Test $a, Test $b): int + { + return $this->cache->getTime(self::getTestSorterUID($a)) <=> $this->cache->getTime(self::getTestSorterUID($b)); + } + + /** + * Reorder Tests within a TestCase in such a way as to resolve as many dependencies as possible. + * The algorithm will leave the tests in original running order when it can. + * For more details see the documentation for test dependencies. + * + * Short description of algorithm: + * 1. Pick the next Test from remaining tests to be checked for dependencies. + * 2. If the test has no dependencies: mark done, start again from the top + * 3. If the test has dependencies but none left to do: mark done, start again from the top + * 4. When we reach the end add any leftover tests to the end. These will be marked 'skipped' during execution. + * + * @param array $tests + * + * @return array + */ + private function resolveDependencies(array $tests): array + { + $newTestOrder = []; + $i = 0; + + do { + $todoNames = \array_map( + function ($test) { + return self::getTestSorterUID($test); + }, + $tests + ); + + if (!$tests[$i]->hasDependencies() || empty(\array_intersect($this->getNormalizedDependencyNames($tests[$i]), $todoNames))) { + $newTestOrder = \array_merge($newTestOrder, \array_splice($tests, $i, 1)); + $i = 0; + } else { + $i++; + } + } while (!empty($tests) && ($i < \count($tests))); + + return \array_merge($newTestOrder, $tests); + } + + /** + * @param DataProviderTestSuite|TestCase $test + * + * @return array A list of full test names as "TestSuiteClassName::testMethodName" + */ + private function getNormalizedDependencyNames($test): array + { + if ($test instanceof DataProviderTestSuite) { + $testClass = \substr($test->getName(), 0, \strpos($test->getName(), '::')); + } else { + $testClass = \get_class($test); + } + + $names = \array_map( + function ($name) use ($testClass) { + return \strpos($name, '::') === false ? $testClass . '::' . $name : $name; + }, + $test->getDependencies() + ); + + return $names; + } + + private function calculateTestExecutionOrder(Test $suite): array + { + $tests = []; + + if ($suite instanceof TestSuite) { + foreach ($suite->tests() as $test) { + if (!($test instanceof TestSuite)) { + $tests[] = self::getTestSorterUID($test); + } else { + $tests = \array_merge($tests, $this->calculateTestExecutionOrder($test)); + } + } + } + + return $tests; + } +} diff --git a/vendor/phpunit/phpunit/src/Runner/Version.php b/vendor/phpunit/phpunit/src/Runner/Version.php new file mode 100644 index 00000000..672626b7 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Runner/Version.php @@ -0,0 +1,64 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +use SebastianBergmann\Version as VersionId; + +/** + * This class defines the current version of PHPUnit. + */ +class Version +{ + private static $pharVersion; + + private static $version; + + /** + * Returns the current version of PHPUnit. + */ + public static function id(): string + { + if (self::$pharVersion !== null) { + return self::$pharVersion; + } + + if (self::$version === null) { + $version = new VersionId('7.5.20', \dirname(__DIR__, 2)); + self::$version = $version->getVersion(); + } + + return self::$version; + } + + public static function series(): string + { + if (\strpos(self::id(), '-')) { + $version = \explode('-', self::id())[0]; + } else { + $version = self::id(); + } + + return \implode('.', \array_slice(\explode('.', $version), 0, 2)); + } + + public static function getVersionString(): string + { + return 'PHPUnit ' . self::id() . ' by Sebastian Bergmann and contributors.'; + } + + public static function getReleaseChannel(): string + { + if (\strpos(self::$pharVersion, '-') !== false) { + return '-nightly'; + } + + return ''; + } +} diff --git a/vendor/phpunit/phpunit/src/TextUI/Command.php b/vendor/phpunit/phpunit/src/TextUI/Command.php new file mode 100644 index 00000000..e801368d --- /dev/null +++ b/vendor/phpunit/phpunit/src/TextUI/Command.php @@ -0,0 +1,1384 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TextUI; + +use PharIo\Manifest\ApplicationName; +use PharIo\Manifest\Exception as ManifestException; +use PharIo\Manifest\ManifestLoader; +use PharIo\Version\Version as PharIoVersion; +use PHPUnit\Framework\Exception; +use PHPUnit\Framework\Test; +use PHPUnit\Framework\TestListener; +use PHPUnit\Framework\TestSuite; +use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Runner\StandardTestSuiteLoader; +use PHPUnit\Runner\TestSuiteLoader; +use PHPUnit\Runner\TestSuiteSorter; +use PHPUnit\Runner\Version; +use PHPUnit\Util\Configuration; +use PHPUnit\Util\ConfigurationGenerator; +use PHPUnit\Util\FileLoader; +use PHPUnit\Util\Filesystem; +use PHPUnit\Util\Getopt; +use PHPUnit\Util\Log\TeamCity; +use PHPUnit\Util\Printer; +use PHPUnit\Util\TestDox\CliTestDoxPrinter; +use PHPUnit\Util\TextTestListRenderer; +use PHPUnit\Util\XmlTestListRenderer; +use ReflectionClass; +use SebastianBergmann\FileIterator\Facade as FileIteratorFacade; + +use Throwable; + +/** + * A TestRunner for the Command Line Interface (CLI) + * PHP SAPI Module. + */ +class Command +{ + /** + * @var array + */ + protected $arguments = [ + 'listGroups' => false, + 'listSuites' => false, + 'listTests' => false, + 'listTestsXml' => false, + 'loader' => null, + 'useDefaultConfiguration' => true, + 'loadedExtensions' => [], + 'notLoadedExtensions' => [], + ]; + + /** + * @var array + */ + protected $options = []; + + /** + * @var array + */ + protected $longOptions = [ + 'atleast-version=' => null, + 'prepend=' => null, + 'bootstrap=' => null, + 'cache-result' => null, + 'cache-result-file=' => null, + 'check-version' => null, + 'colors==' => null, + 'columns=' => null, + 'configuration=' => null, + 'coverage-clover=' => null, + 'coverage-crap4j=' => null, + 'coverage-html=' => null, + 'coverage-php=' => null, + 'coverage-text==' => null, + 'coverage-xml=' => null, + 'debug' => null, + 'disallow-test-output' => null, + 'disallow-resource-usage' => null, + 'disallow-todo-tests' => null, + 'default-time-limit=' => null, + 'enforce-time-limit' => null, + 'exclude-group=' => null, + 'filter=' => null, + 'generate-configuration' => null, + 'globals-backup' => null, + 'group=' => null, + 'help' => null, + 'resolve-dependencies' => null, + 'ignore-dependencies' => null, + 'include-path=' => null, + 'list-groups' => null, + 'list-suites' => null, + 'list-tests' => null, + 'list-tests-xml=' => null, + 'loader=' => null, + 'log-junit=' => null, + 'log-teamcity=' => null, + 'no-configuration' => null, + 'no-coverage' => null, + 'no-logging' => null, + 'no-extensions' => null, + 'order-by=' => null, + 'printer=' => null, + 'process-isolation' => null, + 'repeat=' => null, + 'dont-report-useless-tests' => null, + 'random-order' => null, + 'random-order-seed=' => null, + 'reverse-order' => null, + 'reverse-list' => null, + 'static-backup' => null, + 'stderr' => null, + 'stop-on-defect' => null, + 'stop-on-error' => null, + 'stop-on-failure' => null, + 'stop-on-warning' => null, + 'stop-on-incomplete' => null, + 'stop-on-risky' => null, + 'stop-on-skipped' => null, + 'fail-on-warning' => null, + 'fail-on-risky' => null, + 'strict-coverage' => null, + 'disable-coverage-ignore' => null, + 'strict-global-state' => null, + 'teamcity' => null, + 'testdox' => null, + 'testdox-group=' => null, + 'testdox-exclude-group=' => null, + 'testdox-html=' => null, + 'testdox-text=' => null, + 'testdox-xml=' => null, + 'test-suffix=' => null, + 'testsuite=' => null, + 'verbose' => null, + 'version' => null, + 'whitelist=' => null, + 'dump-xdebug-filter=' => null, + ]; + + /** + * @var bool + */ + private $versionStringPrinted = false; + + /** + * @throws \RuntimeException + * @throws \PHPUnit\Framework\Exception + * @throws \InvalidArgumentException + */ + public static function main(bool $exit = true): int + { + $command = new static; + + return $command->run($_SERVER['argv'], $exit); + } + + /** + * @throws \RuntimeException + * @throws \ReflectionException + * @throws \InvalidArgumentException + * @throws Exception + */ + public function run(array $argv, bool $exit = true): int + { + $this->handleArguments($argv); + + $runner = $this->createRunner(); + + if ($this->arguments['test'] instanceof Test) { + $suite = $this->arguments['test']; + } else { + $suite = $runner->getTest( + $this->arguments['test'], + $this->arguments['testFile'], + $this->arguments['testSuffixes'] + ); + } + + if ($this->arguments['listGroups']) { + return $this->handleListGroups($suite, $exit); + } + + if ($this->arguments['listSuites']) { + return $this->handleListSuites($exit); + } + + if ($this->arguments['listTests']) { + return $this->handleListTests($suite, $exit); + } + + if ($this->arguments['listTestsXml']) { + return $this->handleListTestsXml($suite, $this->arguments['listTestsXml'], $exit); + } + + unset($this->arguments['test'], $this->arguments['testFile']); + + try { + $result = $runner->doRun($suite, $this->arguments, $exit); + } catch (Exception $e) { + print $e->getMessage() . \PHP_EOL; + } + + $return = TestRunner::FAILURE_EXIT; + + if (isset($result) && $result->wasSuccessful()) { + $return = TestRunner::SUCCESS_EXIT; + } elseif (!isset($result) || $result->errorCount() > 0) { + $return = TestRunner::EXCEPTION_EXIT; + } + + if ($exit) { + exit($return); + } + + return $return; + } + + /** + * Create a TestRunner, override in subclasses. + */ + protected function createRunner(): TestRunner + { + return new TestRunner($this->arguments['loader']); + } + + /** + * Handles the command-line arguments. + * + * A child class of PHPUnit\TextUI\Command can hook into the argument + * parsing by adding the switch(es) to the $longOptions array and point to a + * callback method that handles the switch(es) in the child class like this + * + * + * longOptions['my-switch'] = 'myHandler'; + * // my-secondswitch will accept a value - note the equals sign + * $this->longOptions['my-secondswitch='] = 'myOtherHandler'; + * } + * + * // --my-switch -> myHandler() + * protected function myHandler() + * { + * } + * + * // --my-secondswitch foo -> myOtherHandler('foo') + * protected function myOtherHandler ($value) + * { + * } + * + * // You will also need this - the static keyword in the + * // PHPUnit\TextUI\Command will mean that it'll be + * // PHPUnit\TextUI\Command that gets instantiated, + * // not MyCommand + * public static function main($exit = true) + * { + * $command = new static; + * + * return $command->run($_SERVER['argv'], $exit); + * } + * + * } + * + * + * @throws Exception + */ + protected function handleArguments(array $argv): void + { + try { + $this->options = Getopt::getopt( + $argv, + 'd:c:hv', + \array_keys($this->longOptions) + ); + } catch (Exception $t) { + $this->exitWithErrorMessage($t->getMessage()); + } + + foreach ($this->options[0] as $option) { + switch ($option[0]) { + case '--colors': + $this->arguments['colors'] = $option[1] ?: ResultPrinter::COLOR_AUTO; + + break; + + case '--bootstrap': + $this->arguments['bootstrap'] = $option[1]; + + break; + + case '--cache-result': + $this->arguments['cacheResult'] = true; + + break; + + case '--cache-result-file': + $this->arguments['cacheResultFile'] = $option[1]; + + break; + + case '--columns': + if (\is_numeric($option[1])) { + $this->arguments['columns'] = (int) $option[1]; + } elseif ($option[1] === 'max') { + $this->arguments['columns'] = 'max'; + } + + break; + + case 'c': + case '--configuration': + $this->arguments['configuration'] = $option[1]; + + break; + + case '--coverage-clover': + $this->arguments['coverageClover'] = $option[1]; + + break; + + case '--coverage-crap4j': + $this->arguments['coverageCrap4J'] = $option[1]; + + break; + + case '--coverage-html': + $this->arguments['coverageHtml'] = $option[1]; + + break; + + case '--coverage-php': + $this->arguments['coveragePHP'] = $option[1]; + + break; + + case '--coverage-text': + if ($option[1] === null) { + $option[1] = 'php://stdout'; + } + + $this->arguments['coverageText'] = $option[1]; + $this->arguments['coverageTextShowUncoveredFiles'] = false; + $this->arguments['coverageTextShowOnlySummary'] = false; + + break; + + case '--coverage-xml': + $this->arguments['coverageXml'] = $option[1]; + + break; + + case 'd': + $ini = \explode('=', $option[1]); + + if (isset($ini[0])) { + if (isset($ini[1])) { + \ini_set($ini[0], $ini[1]); + } else { + \ini_set($ini[0], true); + } + } + + break; + + case '--debug': + $this->arguments['debug'] = true; + + break; + + case 'h': + case '--help': + $this->showHelp(); + exit(TestRunner::SUCCESS_EXIT); + + break; + + case '--filter': + $this->arguments['filter'] = $option[1]; + + break; + + case '--testsuite': + $this->arguments['testsuite'] = $option[1]; + + break; + + case '--generate-configuration': + $this->printVersionString(); + + print 'Generating phpunit.xml in ' . \getcwd() . \PHP_EOL . \PHP_EOL; + + print 'Bootstrap script (relative to path shown above; default: vendor/autoload.php): '; + $bootstrapScript = \trim(\fgets(\STDIN)); + + print 'Tests directory (relative to path shown above; default: tests): '; + $testsDirectory = \trim(\fgets(\STDIN)); + + print 'Source directory (relative to path shown above; default: src): '; + $src = \trim(\fgets(\STDIN)); + + if ($bootstrapScript === '') { + $bootstrapScript = 'vendor/autoload.php'; + } + + if ($testsDirectory === '') { + $testsDirectory = 'tests'; + } + + if ($src === '') { + $src = 'src'; + } + + $generator = new ConfigurationGenerator; + + \file_put_contents( + 'phpunit.xml', + $generator->generateDefaultConfiguration( + Version::series(), + $bootstrapScript, + $testsDirectory, + $src + ) + ); + + print \PHP_EOL . 'Generated phpunit.xml in ' . \getcwd() . \PHP_EOL; + + exit(TestRunner::SUCCESS_EXIT); + + break; + + case '--group': + $this->arguments['groups'] = \explode(',', $option[1]); + + break; + + case '--exclude-group': + $this->arguments['excludeGroups'] = \explode( + ',', + $option[1] + ); + + break; + + case '--test-suffix': + $this->arguments['testSuffixes'] = \explode( + ',', + $option[1] + ); + + break; + + case '--include-path': + $includePath = $option[1]; + + break; + + case '--list-groups': + $this->arguments['listGroups'] = true; + + break; + + case '--list-suites': + $this->arguments['listSuites'] = true; + + break; + + case '--list-tests': + $this->arguments['listTests'] = true; + + break; + + case '--list-tests-xml': + $this->arguments['listTestsXml'] = $option[1]; + + break; + + case '--printer': + $this->arguments['printer'] = $option[1]; + + break; + + case '--loader': + $this->arguments['loader'] = $option[1]; + + break; + + case '--log-junit': + $this->arguments['junitLogfile'] = $option[1]; + + break; + + case '--log-teamcity': + $this->arguments['teamcityLogfile'] = $option[1]; + + break; + + case '--order-by': + $this->handleOrderByOption($option[1]); + + break; + + case '--process-isolation': + $this->arguments['processIsolation'] = true; + + break; + + case '--repeat': + $this->arguments['repeat'] = (int) $option[1]; + + break; + + case '--stderr': + $this->arguments['stderr'] = true; + + break; + + case '--stop-on-defect': + $this->arguments['stopOnDefect'] = true; + + break; + + case '--stop-on-error': + $this->arguments['stopOnError'] = true; + + break; + + case '--stop-on-failure': + $this->arguments['stopOnFailure'] = true; + + break; + + case '--stop-on-warning': + $this->arguments['stopOnWarning'] = true; + + break; + + case '--stop-on-incomplete': + $this->arguments['stopOnIncomplete'] = true; + + break; + + case '--stop-on-risky': + $this->arguments['stopOnRisky'] = true; + + break; + + case '--stop-on-skipped': + $this->arguments['stopOnSkipped'] = true; + + break; + + case '--fail-on-warning': + $this->arguments['failOnWarning'] = true; + + break; + + case '--fail-on-risky': + $this->arguments['failOnRisky'] = true; + + break; + + case '--teamcity': + $this->arguments['printer'] = TeamCity::class; + + break; + + case '--testdox': + $this->arguments['printer'] = CliTestDoxPrinter::class; + + break; + + case '--testdox-group': + $this->arguments['testdoxGroups'] = \explode( + ',', + $option[1] + ); + + break; + + case '--testdox-exclude-group': + $this->arguments['testdoxExcludeGroups'] = \explode( + ',', + $option[1] + ); + + break; + + case '--testdox-html': + $this->arguments['testdoxHTMLFile'] = $option[1]; + + break; + + case '--testdox-text': + $this->arguments['testdoxTextFile'] = $option[1]; + + break; + + case '--testdox-xml': + $this->arguments['testdoxXMLFile'] = $option[1]; + + break; + + case '--no-configuration': + $this->arguments['useDefaultConfiguration'] = false; + + break; + + case '--no-extensions': + $this->arguments['noExtensions'] = true; + + break; + + case '--no-coverage': + $this->arguments['noCoverage'] = true; + + break; + + case '--no-logging': + $this->arguments['noLogging'] = true; + + break; + + case '--globals-backup': + $this->arguments['backupGlobals'] = true; + + break; + + case '--static-backup': + $this->arguments['backupStaticAttributes'] = true; + + break; + + case 'v': + case '--verbose': + $this->arguments['verbose'] = true; + + break; + + case '--atleast-version': + if (\version_compare(Version::id(), $option[1], '>=')) { + exit(TestRunner::SUCCESS_EXIT); + } + + exit(TestRunner::FAILURE_EXIT); + + break; + + case '--version': + $this->printVersionString(); + exit(TestRunner::SUCCESS_EXIT); + + break; + + case '--dont-report-useless-tests': + $this->arguments['reportUselessTests'] = false; + + break; + + case '--strict-coverage': + $this->arguments['strictCoverage'] = true; + + break; + + case '--disable-coverage-ignore': + $this->arguments['disableCodeCoverageIgnore'] = true; + + break; + + case '--strict-global-state': + $this->arguments['beStrictAboutChangesToGlobalState'] = true; + + break; + + case '--disallow-test-output': + $this->arguments['disallowTestOutput'] = true; + + break; + + case '--disallow-resource-usage': + $this->arguments['beStrictAboutResourceUsageDuringSmallTests'] = true; + + break; + + case '--default-time-limit': + $this->arguments['defaultTimeLimit'] = (int) $option[1]; + + break; + + case '--enforce-time-limit': + $this->arguments['enforceTimeLimit'] = true; + + break; + + case '--disallow-todo-tests': + $this->arguments['disallowTodoAnnotatedTests'] = true; + + break; + + case '--reverse-list': + $this->arguments['reverseList'] = true; + + break; + + case '--check-version': + $this->handleVersionCheck(); + + break; + + case '--whitelist': + $this->arguments['whitelist'] = $option[1]; + + break; + + case '--random-order': + $this->handleOrderByOption('random'); + + break; + + case '--random-order-seed': + $this->arguments['randomOrderSeed'] = (int) $option[1]; + + break; + + case '--resolve-dependencies': + $this->handleOrderByOption('depends'); + + break; + + case '--ignore-dependencies': + $this->arguments['resolveDependencies'] = false; + + break; + + case '--reverse-order': + $this->handleOrderByOption('reverse'); + + break; + + case '--dump-xdebug-filter': + $this->arguments['xdebugFilterFile'] = $option[1]; + + break; + + default: + $optionName = \str_replace('--', '', $option[0]); + + $handler = null; + + if (isset($this->longOptions[$optionName])) { + $handler = $this->longOptions[$optionName]; + } elseif (isset($this->longOptions[$optionName . '='])) { + $handler = $this->longOptions[$optionName . '=']; + } + + if (isset($handler) && \is_callable([$this, $handler])) { + $this->$handler($option[1]); + } + } + } + + $this->handleCustomTestSuite(); + + if (!isset($this->arguments['test'])) { + if (isset($this->options[1][0])) { + $this->arguments['test'] = $this->options[1][0]; + } + + if (isset($this->options[1][1])) { + $testFile = \realpath($this->options[1][1]); + + if ($testFile === false) { + $this->exitWithErrorMessage( + \sprintf( + 'Cannot open file "%s".', + $this->options[1][1] + ) + ); + } + $this->arguments['testFile'] = $testFile; + } else { + $this->arguments['testFile'] = ''; + } + + if (isset($this->arguments['test']) && + \is_file($this->arguments['test']) && + \substr($this->arguments['test'], -5, 5) != '.phpt') { + $this->arguments['testFile'] = \realpath($this->arguments['test']); + $this->arguments['test'] = \substr($this->arguments['test'], 0, \strrpos($this->arguments['test'], '.')); + } + } + + if (!isset($this->arguments['testSuffixes'])) { + $this->arguments['testSuffixes'] = ['Test.php', '.phpt']; + } + + if (isset($includePath)) { + \ini_set( + 'include_path', + $includePath . \PATH_SEPARATOR . \ini_get('include_path') + ); + } + + if ($this->arguments['loader'] !== null) { + $this->arguments['loader'] = $this->handleLoader($this->arguments['loader']); + } + + if (isset($this->arguments['configuration']) && + \is_dir($this->arguments['configuration'])) { + $configurationFile = $this->arguments['configuration'] . '/phpunit.xml'; + + if (\file_exists($configurationFile)) { + $this->arguments['configuration'] = \realpath( + $configurationFile + ); + } elseif (\file_exists($configurationFile . '.dist')) { + $this->arguments['configuration'] = \realpath( + $configurationFile . '.dist' + ); + } + } elseif (!isset($this->arguments['configuration']) && + $this->arguments['useDefaultConfiguration']) { + if (\file_exists('phpunit.xml')) { + $this->arguments['configuration'] = \realpath('phpunit.xml'); + } elseif (\file_exists('phpunit.xml.dist')) { + $this->arguments['configuration'] = \realpath( + 'phpunit.xml.dist' + ); + } + } + + if (isset($this->arguments['configuration'])) { + try { + $configuration = Configuration::getInstance( + $this->arguments['configuration'] + ); + } catch (Throwable $t) { + print $t->getMessage() . \PHP_EOL; + exit(TestRunner::FAILURE_EXIT); + } + + $phpunitConfiguration = $configuration->getPHPUnitConfiguration(); + + $configuration->handlePHPConfiguration(); + + /* + * Issue #1216 + */ + if (isset($this->arguments['bootstrap'])) { + $this->handleBootstrap($this->arguments['bootstrap']); + } elseif (isset($phpunitConfiguration['bootstrap'])) { + $this->handleBootstrap($phpunitConfiguration['bootstrap']); + } + + /* + * Issue #657 + */ + if (isset($phpunitConfiguration['stderr']) && !isset($this->arguments['stderr'])) { + $this->arguments['stderr'] = $phpunitConfiguration['stderr']; + } + + if (isset($phpunitConfiguration['extensionsDirectory']) && !isset($this->arguments['noExtensions']) && \extension_loaded('phar')) { + $this->handleExtensions($phpunitConfiguration['extensionsDirectory']); + } + + if (isset($phpunitConfiguration['columns']) && !isset($this->arguments['columns'])) { + $this->arguments['columns'] = $phpunitConfiguration['columns']; + } + + if (!isset($this->arguments['printer']) && isset($phpunitConfiguration['printerClass'])) { + if (isset($phpunitConfiguration['printerFile'])) { + $file = $phpunitConfiguration['printerFile']; + } else { + $file = ''; + } + + $this->arguments['printer'] = $this->handlePrinter( + $phpunitConfiguration['printerClass'], + $file + ); + } + + if (isset($phpunitConfiguration['testSuiteLoaderClass'])) { + if (isset($phpunitConfiguration['testSuiteLoaderFile'])) { + $file = $phpunitConfiguration['testSuiteLoaderFile']; + } else { + $file = ''; + } + + $this->arguments['loader'] = $this->handleLoader( + $phpunitConfiguration['testSuiteLoaderClass'], + $file + ); + } + + if (!isset($this->arguments['testsuite']) && isset($phpunitConfiguration['defaultTestSuite'])) { + $this->arguments['testsuite'] = $phpunitConfiguration['defaultTestSuite']; + } + + if (!isset($this->arguments['test'])) { + $testSuite = $configuration->getTestSuiteConfiguration($this->arguments['testsuite'] ?? ''); + + if ($testSuite !== null) { + $this->arguments['test'] = $testSuite; + } + } + } elseif (isset($this->arguments['bootstrap'])) { + $this->handleBootstrap($this->arguments['bootstrap']); + } + + if (isset($this->arguments['printer']) && + \is_string($this->arguments['printer'])) { + $this->arguments['printer'] = $this->handlePrinter($this->arguments['printer']); + } + + if (isset($this->arguments['test']) && \is_string($this->arguments['test']) && \substr($this->arguments['test'], -5, 5) == '.phpt') { + $test = new PhptTestCase($this->arguments['test']); + + $this->arguments['test'] = new TestSuite; + $this->arguments['test']->addTest($test); + } + + if (!isset($this->arguments['test'])) { + $this->showHelp(); + exit(TestRunner::EXCEPTION_EXIT); + } + } + + /** + * Handles the loading of the PHPUnit\Runner\TestSuiteLoader implementation. + */ + protected function handleLoader(string $loaderClass, string $loaderFile = ''): ?TestSuiteLoader + { + if (!\class_exists($loaderClass, false)) { + if ($loaderFile == '') { + $loaderFile = Filesystem::classNameToFilename( + $loaderClass + ); + } + + $loaderFile = \stream_resolve_include_path($loaderFile); + + if ($loaderFile) { + require $loaderFile; + } + } + + if (\class_exists($loaderClass, false)) { + $class = new ReflectionClass($loaderClass); + + if ($class->implementsInterface(TestSuiteLoader::class) && + $class->isInstantiable()) { + return $class->newInstance(); + } + } + + if ($loaderClass == StandardTestSuiteLoader::class) { + return null; + } + + $this->exitWithErrorMessage( + \sprintf( + 'Could not use "%s" as loader.', + $loaderClass + ) + ); + + return null; + } + + /** + * Handles the loading of the PHPUnit\Util\Printer implementation. + * + * @return null|Printer|string + */ + protected function handlePrinter(string $printerClass, string $printerFile = '') + { + if (!\class_exists($printerClass, false)) { + if ($printerFile == '') { + $printerFile = Filesystem::classNameToFilename( + $printerClass + ); + } + + $printerFile = \stream_resolve_include_path($printerFile); + + if ($printerFile) { + require $printerFile; + } + } + + if (!\class_exists($printerClass)) { + $this->exitWithErrorMessage( + \sprintf( + 'Could not use "%s" as printer: class does not exist', + $printerClass + ) + ); + } + + $class = new ReflectionClass($printerClass); + + if (!$class->implementsInterface(TestListener::class)) { + $this->exitWithErrorMessage( + \sprintf( + 'Could not use "%s" as printer: class does not implement %s', + $printerClass, + TestListener::class + ) + ); + } + + if (!$class->isSubclassOf(Printer::class)) { + $this->exitWithErrorMessage( + \sprintf( + 'Could not use "%s" as printer: class does not extend %s', + $printerClass, + Printer::class + ) + ); + } + + if (!$class->isInstantiable()) { + $this->exitWithErrorMessage( + \sprintf( + 'Could not use "%s" as printer: class cannot be instantiated', + $printerClass + ) + ); + } + + if ($class->isSubclassOf(ResultPrinter::class)) { + return $printerClass; + } + + $outputStream = isset($this->arguments['stderr']) ? 'php://stderr' : null; + + return $class->newInstance($outputStream); + } + + /** + * Loads a bootstrap file. + */ + protected function handleBootstrap(string $filename): void + { + try { + FileLoader::checkAndLoad($filename); + } catch (Exception $e) { + $this->exitWithErrorMessage($e->getMessage()); + } + } + + protected function handleVersionCheck(): void + { + $this->printVersionString(); + + $latestVersion = \file_get_contents('https://phar.phpunit.de/latest-version-of/phpunit'); + $isOutdated = \version_compare($latestVersion, Version::id(), '>'); + + if ($isOutdated) { + \printf( + 'You are not using the latest version of PHPUnit.' . \PHP_EOL . + 'The latest version is PHPUnit %s.' . \PHP_EOL, + $latestVersion + ); + } else { + print 'You are using the latest version of PHPUnit.' . \PHP_EOL; + } + + exit(TestRunner::SUCCESS_EXIT); + } + + /** + * Show the help message. + */ + protected function showHelp(): void + { + $this->printVersionString(); + + print << + +Code Coverage Options: + + --coverage-clover Generate code coverage report in Clover XML format + --coverage-crap4j Generate code coverage report in Crap4J XML format + --coverage-html Generate code coverage report in HTML format + --coverage-php Export PHP_CodeCoverage object to file + --coverage-text= Generate code coverage report in text format + Default: Standard output + --coverage-xml Generate code coverage report in PHPUnit XML format + --whitelist Whitelist for code coverage analysis + --disable-coverage-ignore Disable annotations for ignoring code coverage + --no-coverage Ignore code coverage configuration + --dump-xdebug-filter Generate script to set Xdebug code coverage filter + +Logging Options: + + --log-junit Log test execution in JUnit XML format to file + --log-teamcity Log test execution in TeamCity format to file + --testdox-html Write agile documentation in HTML format to file + --testdox-text Write agile documentation in Text format to file + --testdox-xml Write agile documentation in XML format to file + --reverse-list Print defects in reverse order + +Test Selection Options: + + --filter Filter which tests to run + --testsuite Filter which testsuite to run + --group ... Only runs tests from the specified group(s) + --exclude-group ... Exclude tests from the specified group(s) + --list-groups List available test groups + --list-suites List available test suites + --list-tests List available tests + --list-tests-xml List available tests in XML format + --test-suffix ... Only search for test in files with specified + suffix(es). Default: Test.php,.phpt + +Test Execution Options: + + --dont-report-useless-tests Do not report tests that do not test anything + --strict-coverage Be strict about @covers annotation usage + --strict-global-state Be strict about changes to global state + --disallow-test-output Be strict about output during tests + --disallow-resource-usage Be strict about resource usage during small tests + --enforce-time-limit Enforce time limit based on test size + --default-time-limit= Timeout in seconds for tests without @small, @medium or @large + --disallow-todo-tests Disallow @todo-annotated tests + + --process-isolation Run each test in a separate PHP process + --globals-backup Backup and restore \$GLOBALS for each test + --static-backup Backup and restore static attributes for each test + + --colors= Use colors in output ("never", "auto" or "always") + --columns Number of columns to use for progress output + --columns max Use maximum number of columns for progress output + --stderr Write to STDERR instead of STDOUT + --stop-on-defect Stop execution upon first not-passed test + --stop-on-error Stop execution upon first error + --stop-on-failure Stop execution upon first error or failure + --stop-on-warning Stop execution upon first warning + --stop-on-risky Stop execution upon first risky test + --stop-on-skipped Stop execution upon first skipped test + --stop-on-incomplete Stop execution upon first incomplete test + --fail-on-warning Treat tests with warnings as failures + --fail-on-risky Treat risky tests as failures + -v|--verbose Output more verbose information + --debug Display debugging information + + --loader TestSuiteLoader implementation to use + --repeat Runs the test(s) repeatedly + --teamcity Report test execution progress in TeamCity format + --testdox Report test execution progress in TestDox format + --testdox-group Only include tests from the specified group(s) + --testdox-exclude-group Exclude tests from the specified group(s) + --printer TestListener implementation to use + + --resolve-dependencies Resolve dependencies between tests + --order-by= Run tests in order: default|reverse|random|defects|depends + --random-order-seed= Use a specific random seed for random order + --cache-result Write run result to cache to enable ordering tests defects-first + +Configuration Options: + + --prepend A PHP script that is included as early as possible + --bootstrap A PHP script that is included before the tests run + -c|--configuration Read configuration from XML file + --no-configuration Ignore default configuration file (phpunit.xml) + --no-logging Ignore logging configuration + --no-extensions Do not load PHPUnit extensions + --include-path Prepend PHP's include_path with given path(s) + -d key[=value] Sets a php.ini value + --generate-configuration Generate configuration file with suggested settings + --cache-result-file= Specify result cache path and filename + +Miscellaneous Options: + + -h|--help Prints this usage information + --version Prints the version and exits + --atleast-version Checks that version is greater than min and exits + --check-version Check whether PHPUnit is the latest version + +EOT; + } + + /** + * Custom callback for test suite discovery. + */ + protected function handleCustomTestSuite(): void + { + } + + private function printVersionString(): void + { + if ($this->versionStringPrinted) { + return; + } + + print Version::getVersionString() . \PHP_EOL . \PHP_EOL; + + $this->versionStringPrinted = true; + } + + private function exitWithErrorMessage(string $message): void + { + $this->printVersionString(); + + print $message . \PHP_EOL; + + exit(TestRunner::FAILURE_EXIT); + } + + private function handleExtensions(string $directory): void + { + $facade = new FileIteratorFacade; + + foreach ($facade->getFilesAsArray($directory, '.phar') as $file) { + if (!\file_exists('phar://' . $file . '/manifest.xml')) { + $this->arguments['notLoadedExtensions'][] = $file . ' is not an extension for PHPUnit'; + + continue; + } + + try { + $applicationName = new ApplicationName('phpunit/phpunit'); + $version = new PharIoVersion(Version::series()); + $manifest = ManifestLoader::fromFile('phar://' . $file . '/manifest.xml'); + + if (!$manifest->isExtensionFor($applicationName)) { + $this->arguments['notLoadedExtensions'][] = $file . ' is not an extension for PHPUnit'; + + continue; + } + + if (!$manifest->isExtensionFor($applicationName, $version)) { + $this->arguments['notLoadedExtensions'][] = $file . ' is not compatible with this version of PHPUnit'; + + continue; + } + } catch (ManifestException $e) { + $this->arguments['notLoadedExtensions'][] = $file . ': ' . $e->getMessage(); + + continue; + } + + require $file; + + $this->arguments['loadedExtensions'][] = $manifest->getName() . ' ' . $manifest->getVersion()->getVersionString(); + } + } + + private function handleListGroups(TestSuite $suite, bool $exit): int + { + $this->printVersionString(); + + print 'Available test group(s):' . \PHP_EOL; + + $groups = $suite->getGroups(); + \sort($groups); + + foreach ($groups as $group) { + \printf( + ' - %s' . \PHP_EOL, + $group + ); + } + + if ($exit) { + exit(TestRunner::SUCCESS_EXIT); + } + + return TestRunner::SUCCESS_EXIT; + } + + private function handleListSuites(bool $exit): int + { + $this->printVersionString(); + + print 'Available test suite(s):' . \PHP_EOL; + + $configuration = Configuration::getInstance( + $this->arguments['configuration'] + ); + + $suiteNames = $configuration->getTestSuiteNames(); + + foreach ($suiteNames as $suiteName) { + \printf( + ' - %s' . \PHP_EOL, + $suiteName + ); + } + + if ($exit) { + exit(TestRunner::SUCCESS_EXIT); + } + + return TestRunner::SUCCESS_EXIT; + } + + private function handleListTests(TestSuite $suite, bool $exit): int + { + $this->printVersionString(); + + $renderer = new TextTestListRenderer; + + print $renderer->render($suite); + + if ($exit) { + exit(TestRunner::SUCCESS_EXIT); + } + + return TestRunner::SUCCESS_EXIT; + } + + private function handleListTestsXml(TestSuite $suite, string $target, bool $exit): int + { + $this->printVersionString(); + + $renderer = new XmlTestListRenderer; + + \file_put_contents($target, $renderer->render($suite)); + + \printf( + 'Wrote list of tests that would have been run to %s' . \PHP_EOL, + $target + ); + + if ($exit) { + exit(TestRunner::SUCCESS_EXIT); + } + + return TestRunner::SUCCESS_EXIT; + } + + private function handleOrderByOption(string $value): void + { + foreach (\explode(',', $value) as $order) { + switch ($order) { + case 'default': + $this->arguments['executionOrder'] = TestSuiteSorter::ORDER_DEFAULT; + $this->arguments['executionOrderDefects'] = TestSuiteSorter::ORDER_DEFAULT; + $this->arguments['resolveDependencies'] = false; + + break; + + case 'reverse': + $this->arguments['executionOrder'] = TestSuiteSorter::ORDER_REVERSED; + + break; + + case 'random': + $this->arguments['executionOrder'] = TestSuiteSorter::ORDER_RANDOMIZED; + + break; + + case 'defects': + $this->arguments['executionOrderDefects'] = TestSuiteSorter::ORDER_DEFECTS_FIRST; + + break; + + case 'depends': + $this->arguments['resolveDependencies'] = true; + + break; + + default: + $this->exitWithErrorMessage("unrecognized --order-by option: $order"); + } + } + } +} diff --git a/vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php b/vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php new file mode 100644 index 00000000..2782f07c --- /dev/null +++ b/vendor/phpunit/phpunit/src/TextUI/ResultPrinter.php @@ -0,0 +1,596 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TextUI; + +use PHPUnit\Framework\AssertionFailedError; +use PHPUnit\Framework\Exception; +use PHPUnit\Framework\Test; +use PHPUnit\Framework\TestCase; +use PHPUnit\Framework\TestFailure; +use PHPUnit\Framework\TestListener; +use PHPUnit\Framework\TestResult; +use PHPUnit\Framework\TestSuite; +use PHPUnit\Framework\Warning; +use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Util\InvalidArgumentHelper; +use PHPUnit\Util\Printer; +use SebastianBergmann\Environment\Console; +use SebastianBergmann\Timer\Timer; + +/** + * Prints the result of a TextUI TestRunner run. + */ +class ResultPrinter extends Printer implements TestListener +{ + public const EVENT_TEST_START = 0; + + public const EVENT_TEST_END = 1; + + public const EVENT_TESTSUITE_START = 2; + + public const EVENT_TESTSUITE_END = 3; + + public const COLOR_NEVER = 'never'; + + public const COLOR_AUTO = 'auto'; + + public const COLOR_ALWAYS = 'always'; + + public const COLOR_DEFAULT = self::COLOR_NEVER; + + private const AVAILABLE_COLORS = [self::COLOR_NEVER, self::COLOR_AUTO, self::COLOR_ALWAYS]; + + /** + * @var array + */ + private static $ansiCodes = [ + 'bold' => 1, + 'fg-black' => 30, + 'fg-red' => 31, + 'fg-green' => 32, + 'fg-yellow' => 33, + 'fg-blue' => 34, + 'fg-magenta' => 35, + 'fg-cyan' => 36, + 'fg-white' => 37, + 'bg-black' => 40, + 'bg-red' => 41, + 'bg-green' => 42, + 'bg-yellow' => 43, + 'bg-blue' => 44, + 'bg-magenta' => 45, + 'bg-cyan' => 46, + 'bg-white' => 47, + ]; + + /** + * @var int + */ + protected $column = 0; + + /** + * @var int + */ + protected $maxColumn; + + /** + * @var bool + */ + protected $lastTestFailed = false; + + /** + * @var int + */ + protected $numAssertions = 0; + + /** + * @var int + */ + protected $numTests = -1; + + /** + * @var int + */ + protected $numTestsRun = 0; + + /** + * @var int + */ + protected $numTestsWidth; + + /** + * @var bool + */ + protected $colors = false; + + /** + * @var bool + */ + protected $debug = false; + + /** + * @var bool + */ + protected $verbose = false; + + /** + * @var int + */ + private $numberOfColumns; + + /** + * @var bool + */ + private $reverse; + + /** + * @var bool + */ + private $defectListPrinted = false; + + /** + * Constructor. + * + * @param string $colors + * @param int|string $numberOfColumns + * @param null|mixed $out + * + * @throws Exception + */ + public function __construct($out = null, bool $verbose = false, $colors = self::COLOR_DEFAULT, bool $debug = false, $numberOfColumns = 80, bool $reverse = false) + { + parent::__construct($out); + + if (!\in_array($colors, self::AVAILABLE_COLORS, true)) { + throw InvalidArgumentHelper::factory( + 3, + \vsprintf('value from "%s", "%s" or "%s"', self::AVAILABLE_COLORS) + ); + } + + if (!\is_int($numberOfColumns) && $numberOfColumns !== 'max') { + throw InvalidArgumentHelper::factory(5, 'integer or "max"'); + } + + $console = new Console; + $maxNumberOfColumns = $console->getNumberOfColumns(); + + if ($numberOfColumns === 'max' || ($numberOfColumns !== 80 && $numberOfColumns > $maxNumberOfColumns)) { + $numberOfColumns = $maxNumberOfColumns; + } + + $this->numberOfColumns = $numberOfColumns; + $this->verbose = $verbose; + $this->debug = $debug; + $this->reverse = $reverse; + + if ($colors === self::COLOR_AUTO && $console->hasColorSupport()) { + $this->colors = true; + } else { + $this->colors = (self::COLOR_ALWAYS === $colors); + } + } + + public function printResult(TestResult $result): void + { + $this->printHeader(); + $this->printErrors($result); + $this->printWarnings($result); + $this->printFailures($result); + $this->printRisky($result); + + if ($this->verbose) { + $this->printIncompletes($result); + $this->printSkipped($result); + } + + $this->printFooter($result); + } + + /** + * An error occurred. + */ + public function addError(Test $test, \Throwable $t, float $time): void + { + $this->writeProgressWithColor('fg-red, bold', 'E'); + $this->lastTestFailed = true; + } + + /** + * A failure occurred. + */ + public function addFailure(Test $test, AssertionFailedError $e, float $time): void + { + $this->writeProgressWithColor('bg-red, fg-white', 'F'); + $this->lastTestFailed = true; + } + + /** + * A warning occurred. + */ + public function addWarning(Test $test, Warning $e, float $time): void + { + $this->writeProgressWithColor('fg-yellow, bold', 'W'); + $this->lastTestFailed = true; + } + + /** + * Incomplete test. + */ + public function addIncompleteTest(Test $test, \Throwable $t, float $time): void + { + $this->writeProgressWithColor('fg-yellow, bold', 'I'); + $this->lastTestFailed = true; + } + + /** + * Risky test. + */ + public function addRiskyTest(Test $test, \Throwable $t, float $time): void + { + $this->writeProgressWithColor('fg-yellow, bold', 'R'); + $this->lastTestFailed = true; + } + + /** + * Skipped test. + */ + public function addSkippedTest(Test $test, \Throwable $t, float $time): void + { + $this->writeProgressWithColor('fg-cyan, bold', 'S'); + $this->lastTestFailed = true; + } + + /** + * A testsuite started. + */ + public function startTestSuite(TestSuite $suite): void + { + if ($this->numTests == -1) { + $this->numTests = \count($suite); + $this->numTestsWidth = \strlen((string) $this->numTests); + $this->maxColumn = $this->numberOfColumns - \strlen(' / (XXX%)') - (2 * $this->numTestsWidth); + } + } + + /** + * A testsuite ended. + */ + public function endTestSuite(TestSuite $suite): void + { + } + + /** + * A test started. + */ + public function startTest(Test $test): void + { + if ($this->debug) { + $this->write( + \sprintf( + "Test '%s' started\n", + \PHPUnit\Util\Test::describeAsString($test) + ) + ); + } + } + + /** + * A test ended. + */ + public function endTest(Test $test, float $time): void + { + if ($this->debug) { + $this->write( + \sprintf( + "Test '%s' ended\n", + \PHPUnit\Util\Test::describeAsString($test) + ) + ); + } + + if (!$this->lastTestFailed) { + $this->writeProgress('.'); + } + + if ($test instanceof TestCase) { + $this->numAssertions += $test->getNumAssertions(); + } elseif ($test instanceof PhptTestCase) { + $this->numAssertions++; + } + + $this->lastTestFailed = false; + + if ($test instanceof TestCase && !$test->hasExpectationOnOutput()) { + $this->write($test->getActualOutput()); + } + } + + protected function printDefects(array $defects, string $type): void + { + $count = \count($defects); + + if ($count == 0) { + return; + } + + if ($this->defectListPrinted) { + $this->write("\n--\n\n"); + } + + $this->write( + \sprintf( + "There %s %d %s%s:\n", + ($count == 1) ? 'was' : 'were', + $count, + $type, + ($count == 1) ? '' : 's' + ) + ); + + $i = 1; + + if ($this->reverse) { + $defects = \array_reverse($defects); + } + + foreach ($defects as $defect) { + $this->printDefect($defect, $i++); + } + + $this->defectListPrinted = true; + } + + protected function printDefect(TestFailure $defect, int $count): void + { + $this->printDefectHeader($defect, $count); + $this->printDefectTrace($defect); + } + + protected function printDefectHeader(TestFailure $defect, int $count): void + { + $this->write( + \sprintf( + "\n%d) %s\n", + $count, + $defect->getTestName() + ) + ); + } + + protected function printDefectTrace(TestFailure $defect): void + { + $e = $defect->thrownException(); + $this->write((string) $e); + + while ($e = $e->getPrevious()) { + $this->write("\nCaused by\n" . $e); + } + } + + protected function printErrors(TestResult $result): void + { + $this->printDefects($result->errors(), 'error'); + } + + protected function printFailures(TestResult $result): void + { + $this->printDefects($result->failures(), 'failure'); + } + + protected function printWarnings(TestResult $result): void + { + $this->printDefects($result->warnings(), 'warning'); + } + + protected function printIncompletes(TestResult $result): void + { + $this->printDefects($result->notImplemented(), 'incomplete test'); + } + + protected function printRisky(TestResult $result): void + { + $this->printDefects($result->risky(), 'risky test'); + } + + protected function printSkipped(TestResult $result): void + { + $this->printDefects($result->skipped(), 'skipped test'); + } + + protected function printHeader(): void + { + $this->write("\n\n" . Timer::resourceUsage() . "\n\n"); + } + + protected function printFooter(TestResult $result): void + { + if (\count($result) === 0) { + $this->writeWithColor( + 'fg-black, bg-yellow', + 'No tests executed!' + ); + + return; + } + + if ($result->wasSuccessful() && + $result->allHarmless() && + $result->allCompletelyImplemented() && + $result->noneSkipped()) { + $this->writeWithColor( + 'fg-black, bg-green', + \sprintf( + 'OK (%d test%s, %d assertion%s)', + \count($result), + (\count($result) == 1) ? '' : 's', + $this->numAssertions, + ($this->numAssertions == 1) ? '' : 's' + ) + ); + } else { + if ($result->wasSuccessful()) { + $color = 'fg-black, bg-yellow'; + + if ($this->verbose || !$result->allHarmless()) { + $this->write("\n"); + } + + $this->writeWithColor( + $color, + 'OK, but incomplete, skipped, or risky tests!' + ); + } else { + $this->write("\n"); + + if ($result->errorCount()) { + $color = 'fg-white, bg-red'; + + $this->writeWithColor( + $color, + 'ERRORS!' + ); + } elseif ($result->failureCount()) { + $color = 'fg-white, bg-red'; + + $this->writeWithColor( + $color, + 'FAILURES!' + ); + } elseif ($result->warningCount()) { + $color = 'fg-black, bg-yellow'; + + $this->writeWithColor( + $color, + 'WARNINGS!' + ); + } + } + + $this->writeCountString(\count($result), 'Tests', $color, true); + $this->writeCountString($this->numAssertions, 'Assertions', $color, true); + $this->writeCountString($result->errorCount(), 'Errors', $color); + $this->writeCountString($result->failureCount(), 'Failures', $color); + $this->writeCountString($result->warningCount(), 'Warnings', $color); + $this->writeCountString($result->skippedCount(), 'Skipped', $color); + $this->writeCountString($result->notImplementedCount(), 'Incomplete', $color); + $this->writeCountString($result->riskyCount(), 'Risky', $color); + $this->writeWithColor($color, '.'); + } + } + + protected function writeProgress(string $progress): void + { + if ($this->debug) { + return; + } + + $this->write($progress); + $this->column++; + $this->numTestsRun++; + + if ($this->column == $this->maxColumn || $this->numTestsRun == $this->numTests) { + if ($this->numTestsRun == $this->numTests) { + $this->write(\str_repeat(' ', $this->maxColumn - $this->column)); + } + + $this->write( + \sprintf( + ' %' . $this->numTestsWidth . 'd / %' . + $this->numTestsWidth . 'd (%3s%%)', + $this->numTestsRun, + $this->numTests, + \floor(($this->numTestsRun / $this->numTests) * 100) + ) + ); + + if ($this->column == $this->maxColumn) { + $this->writeNewLine(); + } + } + } + + protected function writeNewLine(): void + { + $this->column = 0; + $this->write("\n"); + } + + /** + * Formats a buffer with a specified ANSI color sequence if colors are + * enabled. + */ + protected function formatWithColor(string $color, string $buffer): string + { + if (!$this->colors) { + return $buffer; + } + + $codes = \array_map('\trim', \explode(',', $color)); + $lines = \explode("\n", $buffer); + $padding = \max(\array_map('\strlen', $lines)); + $styles = []; + + foreach ($codes as $code) { + $styles[] = self::$ansiCodes[$code]; + } + + $style = \sprintf("\x1b[%sm", \implode(';', $styles)); + + $styledLines = []; + + foreach ($lines as $line) { + $styledLines[] = $style . \str_pad($line, $padding) . "\x1b[0m"; + } + + return \implode("\n", $styledLines); + } + + /** + * Writes a buffer out with a color sequence if colors are enabled. + */ + protected function writeWithColor(string $color, string $buffer, bool $lf = true): void + { + $this->write($this->formatWithColor($color, $buffer)); + + if ($lf) { + $this->write("\n"); + } + } + + /** + * Writes progress with a color sequence if colors are enabled. + */ + protected function writeProgressWithColor(string $color, string $buffer): void + { + $buffer = $this->formatWithColor($color, $buffer); + $this->writeProgress($buffer); + } + + private function writeCountString(int $count, string $name, string $color, bool $always = false): void + { + static $first = true; + + if ($always || $count > 0) { + $this->writeWithColor( + $color, + \sprintf( + '%s%s: %d', + !$first ? ', ' : '', + $name, + $count + ), + false + ); + + $first = false; + } + } +} diff --git a/vendor/phpunit/phpunit/src/TextUI/TestRunner.php b/vendor/phpunit/phpunit/src/TextUI/TestRunner.php new file mode 100644 index 00000000..325b6090 --- /dev/null +++ b/vendor/phpunit/phpunit/src/TextUI/TestRunner.php @@ -0,0 +1,1328 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\TextUI; + +use PHPUnit\Framework\Error\Deprecated; +use PHPUnit\Framework\Error\Notice; +use PHPUnit\Framework\Error\Warning; +use PHPUnit\Framework\Exception; +use PHPUnit\Framework\Test; +use PHPUnit\Framework\TestCase; +use PHPUnit\Framework\TestListener; +use PHPUnit\Framework\TestResult; +use PHPUnit\Framework\TestSuite; +use PHPUnit\Runner\AfterLastTestHook; +use PHPUnit\Runner\BaseTestRunner; +use PHPUnit\Runner\BeforeFirstTestHook; +use PHPUnit\Runner\Filter\ExcludeGroupFilterIterator; +use PHPUnit\Runner\Filter\Factory; +use PHPUnit\Runner\Filter\IncludeGroupFilterIterator; +use PHPUnit\Runner\Filter\NameFilterIterator; +use PHPUnit\Runner\Hook; +use PHPUnit\Runner\NullTestResultCache; +use PHPUnit\Runner\ResultCacheExtension; +use PHPUnit\Runner\StandardTestSuiteLoader; +use PHPUnit\Runner\TestHook; +use PHPUnit\Runner\TestListenerAdapter; +use PHPUnit\Runner\TestResultCache; +use PHPUnit\Runner\TestSuiteLoader; +use PHPUnit\Runner\TestSuiteSorter; +use PHPUnit\Runner\Version; +use PHPUnit\Util\Configuration; +use PHPUnit\Util\Filesystem; +use PHPUnit\Util\Log\JUnit; +use PHPUnit\Util\Log\TeamCity; +use PHPUnit\Util\Printer; +use PHPUnit\Util\TestDox\CliTestDoxPrinter; +use PHPUnit\Util\TestDox\HtmlResultPrinter; +use PHPUnit\Util\TestDox\TextResultPrinter; +use PHPUnit\Util\TestDox\XmlResultPrinter; +use PHPUnit\Util\XdebugFilterScriptGenerator; +use ReflectionClass; +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Exception as CodeCoverageException; +use SebastianBergmann\CodeCoverage\Filter as CodeCoverageFilter; +use SebastianBergmann\CodeCoverage\Report\Clover as CloverReport; +use SebastianBergmann\CodeCoverage\Report\Crap4j as Crap4jReport; +use SebastianBergmann\CodeCoverage\Report\Html\Facade as HtmlReport; +use SebastianBergmann\CodeCoverage\Report\PHP as PhpReport; +use SebastianBergmann\CodeCoverage\Report\Text as TextReport; +use SebastianBergmann\CodeCoverage\Report\Xml\Facade as XmlReport; +use SebastianBergmann\Comparator\Comparator; +use SebastianBergmann\Environment\Runtime; +use SebastianBergmann\Invoker\Invoker; + +/** + * A TestRunner for the Command Line Interface (CLI) + * PHP SAPI Module. + */ +class TestRunner extends BaseTestRunner +{ + public const SUCCESS_EXIT = 0; + + public const FAILURE_EXIT = 1; + + public const EXCEPTION_EXIT = 2; + + /** + * @var bool + */ + protected static $versionStringPrinted = false; + + /** + * @var CodeCoverageFilter + */ + protected $codeCoverageFilter; + + /** + * @var TestSuiteLoader + */ + protected $loader; + + /** + * @var ResultPrinter + */ + protected $printer; + + /** + * @var Runtime + */ + private $runtime; + + /** + * @var bool + */ + private $messagePrinted = false; + + /** + * @var Hook[] + */ + private $extensions = []; + + /** + * @param ReflectionClass|Test $test + * @param bool $exit + * + * @throws \RuntimeException + * @throws \InvalidArgumentException + * @throws Exception + * @throws \ReflectionException + */ + public static function run($test, array $arguments = [], $exit = true): TestResult + { + if ($test instanceof ReflectionClass) { + $test = new TestSuite($test); + } + + if ($test instanceof Test) { + $aTestRunner = new self; + + return $aTestRunner->doRun( + $test, + $arguments, + $exit + ); + } + + throw new Exception('No test case or test suite found.'); + } + + public function __construct(TestSuiteLoader $loader = null, CodeCoverageFilter $filter = null) + { + if ($filter === null) { + $filter = new CodeCoverageFilter; + } + + $this->codeCoverageFilter = $filter; + $this->loader = $loader; + $this->runtime = new Runtime; + } + + /** + * @throws \PHPUnit\Runner\Exception + * @throws Exception + * @throws \InvalidArgumentException + * @throws \RuntimeException + * @throws \ReflectionException + */ + public function doRun(Test $suite, array $arguments = [], bool $exit = true): TestResult + { + if (isset($arguments['configuration'])) { + $GLOBALS['__PHPUNIT_CONFIGURATION_FILE'] = $arguments['configuration']; + } + + $this->handleConfiguration($arguments); + + if (\is_int($arguments['columns']) && $arguments['columns'] < 16) { + $arguments['columns'] = 16; + $tooFewColumnsRequested = true; + } + + if (isset($arguments['bootstrap'])) { + $GLOBALS['__PHPUNIT_BOOTSTRAP'] = $arguments['bootstrap']; + } + + if ($suite instanceof TestCase || $suite instanceof TestSuite) { + if ($arguments['backupGlobals'] === true) { + $suite->setBackupGlobals(true); + } + + if ($arguments['backupStaticAttributes'] === true) { + $suite->setBackupStaticAttributes(true); + } + + if ($arguments['beStrictAboutChangesToGlobalState'] === true) { + $suite->setBeStrictAboutChangesToGlobalState(true); + } + } + + if ($arguments['executionOrder'] === TestSuiteSorter::ORDER_RANDOMIZED) { + \mt_srand($arguments['randomOrderSeed']); + } + + if ($arguments['cacheResult']) { + if (!isset($arguments['cacheResultFile'])) { + if ($arguments['configuration'] instanceof Configuration) { + $cacheLocation = $arguments['configuration']->getFilename(); + } else { + $cacheLocation = $_SERVER['PHP_SELF']; + } + + $arguments['cacheResultFile'] = null; + + $cacheResultFile = \realpath($cacheLocation); + + if ($cacheResultFile !== false) { + $arguments['cacheResultFile'] = \dirname($cacheResultFile); + } + } + + $cache = new TestResultCache($arguments['cacheResultFile']); + $this->extensions[] = new ResultCacheExtension($cache); + } + + if ($arguments['executionOrder'] !== TestSuiteSorter::ORDER_DEFAULT || $arguments['executionOrderDefects'] !== TestSuiteSorter::ORDER_DEFAULT || $arguments['resolveDependencies']) { + $cache = $cache ?? new NullTestResultCache; + + $cache->load(); + + $sorter = new TestSuiteSorter($cache); + + $sorter->reorderTestsInSuite($suite, $arguments['executionOrder'], $arguments['resolveDependencies'], $arguments['executionOrderDefects']); + $originalExecutionOrder = $sorter->getOriginalExecutionOrder(); + + unset($sorter); + } + + if (\is_int($arguments['repeat']) && $arguments['repeat'] > 0) { + $_suite = new TestSuite; + + foreach (\range(1, $arguments['repeat']) as $step) { + $_suite->addTest($suite); + } + + $suite = $_suite; + + unset($_suite); + } + + $result = $this->createTestResult(); + + $listener = new TestListenerAdapter; + $listenerNeeded = false; + + foreach ($this->extensions as $extension) { + if ($extension instanceof TestHook) { + $listener->add($extension); + + $listenerNeeded = true; + } + } + + if ($listenerNeeded) { + $result->addListener($listener); + } + + unset($listener, $listenerNeeded); + + if (!$arguments['convertErrorsToExceptions']) { + $result->convertErrorsToExceptions(false); + } + + if (!$arguments['convertDeprecationsToExceptions']) { + Deprecated::$enabled = false; + } + + if (!$arguments['convertNoticesToExceptions']) { + Notice::$enabled = false; + } + + if (!$arguments['convertWarningsToExceptions']) { + Warning::$enabled = false; + } + + if ($arguments['stopOnError']) { + $result->stopOnError(true); + } + + if ($arguments['stopOnFailure']) { + $result->stopOnFailure(true); + } + + if ($arguments['stopOnWarning']) { + $result->stopOnWarning(true); + } + + if ($arguments['stopOnIncomplete']) { + $result->stopOnIncomplete(true); + } + + if ($arguments['stopOnRisky']) { + $result->stopOnRisky(true); + } + + if ($arguments['stopOnSkipped']) { + $result->stopOnSkipped(true); + } + + if ($arguments['stopOnDefect']) { + $result->stopOnDefect(true); + } + + if ($arguments['registerMockObjectsFromTestArgumentsRecursively']) { + $result->setRegisterMockObjectsFromTestArgumentsRecursively(true); + } + + if ($this->printer === null) { + if (isset($arguments['printer']) && + $arguments['printer'] instanceof Printer) { + $this->printer = $arguments['printer']; + } else { + $printerClass = ResultPrinter::class; + + if (isset($arguments['printer']) && \is_string($arguments['printer']) && \class_exists($arguments['printer'], false)) { + $class = new ReflectionClass($arguments['printer']); + + if ($class->isSubclassOf(ResultPrinter::class)) { + $printerClass = $arguments['printer']; + } + } + + $this->printer = new $printerClass( + (isset($arguments['stderr']) && $arguments['stderr'] === true) ? 'php://stderr' : null, + $arguments['verbose'], + $arguments['colors'], + $arguments['debug'], + $arguments['columns'], + $arguments['reverseList'] + ); + + if (isset($originalExecutionOrder) && ($this->printer instanceof CliTestDoxPrinter)) { + /* @var CliTestDoxPrinter */ + $this->printer->setOriginalExecutionOrder($originalExecutionOrder); + } + } + } + + $this->printer->write( + Version::getVersionString() . "\n" + ); + + self::$versionStringPrinted = true; + + if ($arguments['verbose']) { + $runtime = $this->runtime->getNameWithVersion(); + + if ($this->runtime->hasXdebug()) { + $runtime .= \sprintf( + ' with Xdebug %s', + \phpversion('xdebug') + ); + } + + $this->writeMessage('Runtime', $runtime); + + if (isset($arguments['configuration'])) { + $this->writeMessage( + 'Configuration', + $arguments['configuration']->getFilename() + ); + } + + foreach ($arguments['loadedExtensions'] as $extension) { + $this->writeMessage( + 'Extension', + $extension + ); + } + + foreach ($arguments['notLoadedExtensions'] as $extension) { + $this->writeMessage( + 'Extension', + $extension + ); + } + } + + if ($arguments['executionOrder'] === TestSuiteSorter::ORDER_RANDOMIZED) { + $this->writeMessage( + 'Random seed', + $arguments['randomOrderSeed'] + ); + } + + if (isset($tooFewColumnsRequested)) { + $this->writeMessage('Error', 'Less than 16 columns requested, number of columns set to 16'); + } + + if ($this->runtime->discardsComments()) { + $this->writeMessage('Warning', 'opcache.save_comments=0 set; annotations will not work'); + } + + if (isset($arguments['configuration']) && $arguments['configuration']->hasValidationErrors()) { + $this->write( + "\n Warning - The configuration file did not pass validation!\n The following problems have been detected:\n" + ); + + foreach ($arguments['configuration']->getValidationErrors() as $line => $errors) { + $this->write(\sprintf("\n Line %d:\n", $line)); + + foreach ($errors as $msg) { + $this->write(\sprintf(" - %s\n", $msg)); + } + } + $this->write("\n Test results may not be as expected.\n\n"); + } + + foreach ($arguments['listeners'] as $listener) { + $result->addListener($listener); + } + + $result->addListener($this->printer); + + $codeCoverageReports = 0; + + if (!isset($arguments['noLogging'])) { + if (isset($arguments['testdoxHTMLFile'])) { + $result->addListener( + new HtmlResultPrinter( + $arguments['testdoxHTMLFile'], + $arguments['testdoxGroups'], + $arguments['testdoxExcludeGroups'] + ) + ); + } + + if (isset($arguments['testdoxTextFile'])) { + $result->addListener( + new TextResultPrinter( + $arguments['testdoxTextFile'], + $arguments['testdoxGroups'], + $arguments['testdoxExcludeGroups'] + ) + ); + } + + if (isset($arguments['testdoxXMLFile'])) { + $result->addListener( + new XmlResultPrinter( + $arguments['testdoxXMLFile'] + ) + ); + } + + if (isset($arguments['teamcityLogfile'])) { + $result->addListener( + new TeamCity($arguments['teamcityLogfile']) + ); + } + + if (isset($arguments['junitLogfile'])) { + $result->addListener( + new JUnit( + $arguments['junitLogfile'], + $arguments['reportUselessTests'] + ) + ); + } + + if (isset($arguments['coverageClover'])) { + $codeCoverageReports++; + } + + if (isset($arguments['coverageCrap4J'])) { + $codeCoverageReports++; + } + + if (isset($arguments['coverageHtml'])) { + $codeCoverageReports++; + } + + if (isset($arguments['coveragePHP'])) { + $codeCoverageReports++; + } + + if (isset($arguments['coverageText'])) { + $codeCoverageReports++; + } + + if (isset($arguments['coverageXml'])) { + $codeCoverageReports++; + } + } + + if (isset($arguments['noCoverage'])) { + $codeCoverageReports = 0; + } + + if ($codeCoverageReports > 0 && !$this->runtime->canCollectCodeCoverage()) { + $this->writeMessage('Error', 'No code coverage driver is available'); + + $codeCoverageReports = 0; + } + + if ($codeCoverageReports > 0 || isset($arguments['xdebugFilterFile'])) { + $whitelistFromConfigurationFile = false; + $whitelistFromOption = false; + + if (isset($arguments['whitelist'])) { + $this->codeCoverageFilter->addDirectoryToWhitelist($arguments['whitelist']); + + $whitelistFromOption = true; + } + + if (isset($arguments['configuration'])) { + $filterConfiguration = $arguments['configuration']->getFilterConfiguration(); + + if (!empty($filterConfiguration['whitelist'])) { + $whitelistFromConfigurationFile = true; + } + + if (!empty($filterConfiguration['whitelist'])) { + foreach ($filterConfiguration['whitelist']['include']['directory'] as $dir) { + $this->codeCoverageFilter->addDirectoryToWhitelist( + $dir['path'], + $dir['suffix'], + $dir['prefix'] + ); + } + + foreach ($filterConfiguration['whitelist']['include']['file'] as $file) { + $this->codeCoverageFilter->addFileToWhitelist($file); + } + + foreach ($filterConfiguration['whitelist']['exclude']['directory'] as $dir) { + $this->codeCoverageFilter->removeDirectoryFromWhitelist( + $dir['path'], + $dir['suffix'], + $dir['prefix'] + ); + } + + foreach ($filterConfiguration['whitelist']['exclude']['file'] as $file) { + $this->codeCoverageFilter->removeFileFromWhitelist($file); + } + } + } + } + + if ($codeCoverageReports > 0) { + $codeCoverage = new CodeCoverage( + null, + $this->codeCoverageFilter + ); + + $codeCoverage->setUnintentionallyCoveredSubclassesWhitelist( + [Comparator::class] + ); + + $codeCoverage->setCheckForUnintentionallyCoveredCode( + $arguments['strictCoverage'] + ); + + $codeCoverage->setCheckForMissingCoversAnnotation( + $arguments['strictCoverage'] + ); + + if (isset($arguments['forceCoversAnnotation'])) { + $codeCoverage->setForceCoversAnnotation( + $arguments['forceCoversAnnotation'] + ); + } + + if (isset($arguments['ignoreDeprecatedCodeUnitsFromCodeCoverage'])) { + $codeCoverage->setIgnoreDeprecatedCode( + $arguments['ignoreDeprecatedCodeUnitsFromCodeCoverage'] + ); + } + + if (isset($arguments['disableCodeCoverageIgnore'])) { + $codeCoverage->setDisableIgnoredLines(true); + } + + if (!empty($filterConfiguration['whitelist'])) { + $codeCoverage->setAddUncoveredFilesFromWhitelist( + $filterConfiguration['whitelist']['addUncoveredFilesFromWhitelist'] + ); + + $codeCoverage->setProcessUncoveredFilesFromWhitelist( + $filterConfiguration['whitelist']['processUncoveredFilesFromWhitelist'] + ); + } + + if (!$this->codeCoverageFilter->hasWhitelist()) { + if (!$whitelistFromConfigurationFile && !$whitelistFromOption) { + $this->writeMessage('Error', 'No whitelist is configured, no code coverage will be generated.'); + } else { + $this->writeMessage('Error', 'Incorrect whitelist config, no code coverage will be generated.'); + } + + $codeCoverageReports = 0; + + unset($codeCoverage); + } + } + + if (isset($arguments['xdebugFilterFile'], $filterConfiguration)) { + $this->write("\n"); + + $script = (new XdebugFilterScriptGenerator)->generate($filterConfiguration['whitelist']); + + if ($arguments['xdebugFilterFile'] !== 'php://stdout' && $arguments['xdebugFilterFile'] !== 'php://stderr' && !Filesystem::createDirectory(\dirname($arguments['xdebugFilterFile']))) { + $this->write(\sprintf('Cannot write Xdebug filter script to %s ' . \PHP_EOL, $arguments['xdebugFilterFile'])); + + exit(self::EXCEPTION_EXIT); + } + + \file_put_contents($arguments['xdebugFilterFile'], $script); + + $this->write(\sprintf('Wrote Xdebug filter script to %s ' . \PHP_EOL, $arguments['xdebugFilterFile'])); + + exit(self::SUCCESS_EXIT); + } + + $this->printer->write("\n"); + + if (isset($codeCoverage)) { + $result->setCodeCoverage($codeCoverage); + + if ($codeCoverageReports > 1 && isset($arguments['cacheTokens'])) { + $codeCoverage->setCacheTokens($arguments['cacheTokens']); + } + } + + $result->beStrictAboutTestsThatDoNotTestAnything($arguments['reportUselessTests']); + $result->beStrictAboutOutputDuringTests($arguments['disallowTestOutput']); + $result->beStrictAboutTodoAnnotatedTests($arguments['disallowTodoAnnotatedTests']); + $result->beStrictAboutResourceUsageDuringSmallTests($arguments['beStrictAboutResourceUsageDuringSmallTests']); + + if ($arguments['enforceTimeLimit'] === true) { + if (!\class_exists(Invoker::class)) { + $this->writeMessage('Error', 'Package phpunit/php-invoker is required for enforcing time limits'); + } + + if (!\extension_loaded('pcntl') || \strpos(\ini_get('disable_functions'), 'pcntl') !== false) { + $this->writeMessage('Error', 'PHP extension pcntl is required for enforcing time limits'); + } + } + $result->enforceTimeLimit($arguments['enforceTimeLimit']); + $result->setDefaultTimeLimit($arguments['defaultTimeLimit']); + $result->setTimeoutForSmallTests($arguments['timeoutForSmallTests']); + $result->setTimeoutForMediumTests($arguments['timeoutForMediumTests']); + $result->setTimeoutForLargeTests($arguments['timeoutForLargeTests']); + + if ($suite instanceof TestSuite) { + $this->processSuiteFilters($suite, $arguments); + $suite->setRunTestInSeparateProcess($arguments['processIsolation']); + } + + foreach ($this->extensions as $extension) { + if ($extension instanceof BeforeFirstTestHook) { + $extension->executeBeforeFirstTest(); + } + } + + $suite->run($result); + + foreach ($this->extensions as $extension) { + if ($extension instanceof AfterLastTestHook) { + $extension->executeAfterLastTest(); + } + } + + $result->flushListeners(); + + if ($this->printer instanceof ResultPrinter) { + $this->printer->printResult($result); + } + + if (isset($codeCoverage)) { + if (isset($arguments['coverageClover'])) { + $this->printer->write( + "\nGenerating code coverage report in Clover XML format ..." + ); + + try { + $writer = new CloverReport; + $writer->process($codeCoverage, $arguments['coverageClover']); + + $this->printer->write(" done\n"); + unset($writer); + } catch (CodeCoverageException $e) { + $this->printer->write( + " failed\n" . $e->getMessage() . "\n" + ); + } + } + + if (isset($arguments['coverageCrap4J'])) { + $this->printer->write( + "\nGenerating Crap4J report XML file ..." + ); + + try { + $writer = new Crap4jReport($arguments['crap4jThreshold']); + $writer->process($codeCoverage, $arguments['coverageCrap4J']); + + $this->printer->write(" done\n"); + unset($writer); + } catch (CodeCoverageException $e) { + $this->printer->write( + " failed\n" . $e->getMessage() . "\n" + ); + } + } + + if (isset($arguments['coverageHtml'])) { + $this->printer->write( + "\nGenerating code coverage report in HTML format ..." + ); + + try { + $writer = new HtmlReport( + $arguments['reportLowUpperBound'], + $arguments['reportHighLowerBound'], + \sprintf( + ' and PHPUnit %s', + Version::id() + ) + ); + + $writer->process($codeCoverage, $arguments['coverageHtml']); + + $this->printer->write(" done\n"); + unset($writer); + } catch (CodeCoverageException $e) { + $this->printer->write( + " failed\n" . $e->getMessage() . "\n" + ); + } + } + + if (isset($arguments['coveragePHP'])) { + $this->printer->write( + "\nGenerating code coverage report in PHP format ..." + ); + + try { + $writer = new PhpReport; + $writer->process($codeCoverage, $arguments['coveragePHP']); + + $this->printer->write(" done\n"); + unset($writer); + } catch (CodeCoverageException $e) { + $this->printer->write( + " failed\n" . $e->getMessage() . "\n" + ); + } + } + + if (isset($arguments['coverageText'])) { + if ($arguments['coverageText'] == 'php://stdout') { + $outputStream = $this->printer; + $colors = $arguments['colors'] && $arguments['colors'] != ResultPrinter::COLOR_NEVER; + } else { + $outputStream = new Printer($arguments['coverageText']); + $colors = false; + } + + $processor = new TextReport( + $arguments['reportLowUpperBound'], + $arguments['reportHighLowerBound'], + $arguments['coverageTextShowUncoveredFiles'], + $arguments['coverageTextShowOnlySummary'] + ); + + $outputStream->write( + $processor->process($codeCoverage, $colors) + ); + } + + if (isset($arguments['coverageXml'])) { + $this->printer->write( + "\nGenerating code coverage report in PHPUnit XML format ..." + ); + + try { + $writer = new XmlReport(Version::id()); + $writer->process($codeCoverage, $arguments['coverageXml']); + + $this->printer->write(" done\n"); + unset($writer); + } catch (CodeCoverageException $e) { + $this->printer->write( + " failed\n" . $e->getMessage() . "\n" + ); + } + } + } + + if ($exit) { + if ($result->wasSuccessfulIgnoringWarnings()) { + if ($arguments['failOnRisky'] && !$result->allHarmless()) { + exit(self::FAILURE_EXIT); + } + + if ($arguments['failOnWarning'] && $result->warningCount() > 0) { + exit(self::FAILURE_EXIT); + } + + exit(self::SUCCESS_EXIT); + } + + if ($result->errorCount() > 0) { + exit(self::EXCEPTION_EXIT); + } + + if ($result->failureCount() > 0) { + exit(self::FAILURE_EXIT); + } + } + + return $result; + } + + public function setPrinter(ResultPrinter $resultPrinter): void + { + $this->printer = $resultPrinter; + } + + /** + * Returns the loader to be used. + */ + public function getLoader(): TestSuiteLoader + { + if ($this->loader === null) { + $this->loader = new StandardTestSuiteLoader; + } + + return $this->loader; + } + + protected function createTestResult(): TestResult + { + return new TestResult; + } + + /** + * Override to define how to handle a failed loading of + * a test suite. + */ + protected function runFailed(string $message): void + { + $this->write($message . \PHP_EOL); + + exit(self::FAILURE_EXIT); + } + + protected function write(string $buffer): void + { + if (\PHP_SAPI != 'cli' && \PHP_SAPI != 'phpdbg') { + $buffer = \htmlspecialchars($buffer); + } + + if ($this->printer !== null) { + $this->printer->write($buffer); + } else { + print $buffer; + } + } + + /** + * @throws Exception + */ + protected function handleConfiguration(array &$arguments): void + { + if (isset($arguments['configuration']) && + !$arguments['configuration'] instanceof Configuration) { + $arguments['configuration'] = Configuration::getInstance( + $arguments['configuration'] + ); + } + + $arguments['debug'] = $arguments['debug'] ?? false; + $arguments['filter'] = $arguments['filter'] ?? false; + $arguments['listeners'] = $arguments['listeners'] ?? []; + + if (isset($arguments['configuration'])) { + $arguments['configuration']->handlePHPConfiguration(); + + $phpunitConfiguration = $arguments['configuration']->getPHPUnitConfiguration(); + + if (isset($phpunitConfiguration['backupGlobals']) && !isset($arguments['backupGlobals'])) { + $arguments['backupGlobals'] = $phpunitConfiguration['backupGlobals']; + } + + if (isset($phpunitConfiguration['backupStaticAttributes']) && !isset($arguments['backupStaticAttributes'])) { + $arguments['backupStaticAttributes'] = $phpunitConfiguration['backupStaticAttributes']; + } + + if (isset($phpunitConfiguration['beStrictAboutChangesToGlobalState']) && !isset($arguments['beStrictAboutChangesToGlobalState'])) { + $arguments['beStrictAboutChangesToGlobalState'] = $phpunitConfiguration['beStrictAboutChangesToGlobalState']; + } + + if (isset($phpunitConfiguration['bootstrap']) && !isset($arguments['bootstrap'])) { + $arguments['bootstrap'] = $phpunitConfiguration['bootstrap']; + } + + if (isset($phpunitConfiguration['cacheResult']) && !isset($arguments['cacheResult'])) { + $arguments['cacheResult'] = $phpunitConfiguration['cacheResult']; + } + + if (isset($phpunitConfiguration['cacheResultFile']) && !isset($arguments['cacheResultFile'])) { + $arguments['cacheResultFile'] = $phpunitConfiguration['cacheResultFile']; + } + + if (isset($phpunitConfiguration['cacheTokens']) && !isset($arguments['cacheTokens'])) { + $arguments['cacheTokens'] = $phpunitConfiguration['cacheTokens']; + } + + if (isset($phpunitConfiguration['cacheTokens']) && !isset($arguments['cacheTokens'])) { + $arguments['cacheTokens'] = $phpunitConfiguration['cacheTokens']; + } + + if (isset($phpunitConfiguration['colors']) && !isset($arguments['colors'])) { + $arguments['colors'] = $phpunitConfiguration['colors']; + } + + if (isset($phpunitConfiguration['convertDeprecationsToExceptions']) && !isset($arguments['convertDeprecationsToExceptions'])) { + $arguments['convertDeprecationsToExceptions'] = $phpunitConfiguration['convertDeprecationsToExceptions']; + } + + if (isset($phpunitConfiguration['convertErrorsToExceptions']) && !isset($arguments['convertErrorsToExceptions'])) { + $arguments['convertErrorsToExceptions'] = $phpunitConfiguration['convertErrorsToExceptions']; + } + + if (isset($phpunitConfiguration['convertNoticesToExceptions']) && !isset($arguments['convertNoticesToExceptions'])) { + $arguments['convertNoticesToExceptions'] = $phpunitConfiguration['convertNoticesToExceptions']; + } + + if (isset($phpunitConfiguration['convertWarningsToExceptions']) && !isset($arguments['convertWarningsToExceptions'])) { + $arguments['convertWarningsToExceptions'] = $phpunitConfiguration['convertWarningsToExceptions']; + } + + if (isset($phpunitConfiguration['processIsolation']) && !isset($arguments['processIsolation'])) { + $arguments['processIsolation'] = $phpunitConfiguration['processIsolation']; + } + + if (isset($phpunitConfiguration['stopOnDefect']) && !isset($arguments['stopOnDefect'])) { + $arguments['stopOnDefect'] = $phpunitConfiguration['stopOnDefect']; + } + + if (isset($phpunitConfiguration['stopOnError']) && !isset($arguments['stopOnError'])) { + $arguments['stopOnError'] = $phpunitConfiguration['stopOnError']; + } + + if (isset($phpunitConfiguration['stopOnFailure']) && !isset($arguments['stopOnFailure'])) { + $arguments['stopOnFailure'] = $phpunitConfiguration['stopOnFailure']; + } + + if (isset($phpunitConfiguration['stopOnWarning']) && !isset($arguments['stopOnWarning'])) { + $arguments['stopOnWarning'] = $phpunitConfiguration['stopOnWarning']; + } + + if (isset($phpunitConfiguration['stopOnIncomplete']) && !isset($arguments['stopOnIncomplete'])) { + $arguments['stopOnIncomplete'] = $phpunitConfiguration['stopOnIncomplete']; + } + + if (isset($phpunitConfiguration['stopOnRisky']) && !isset($arguments['stopOnRisky'])) { + $arguments['stopOnRisky'] = $phpunitConfiguration['stopOnRisky']; + } + + if (isset($phpunitConfiguration['stopOnSkipped']) && !isset($arguments['stopOnSkipped'])) { + $arguments['stopOnSkipped'] = $phpunitConfiguration['stopOnSkipped']; + } + + if (isset($phpunitConfiguration['failOnWarning']) && !isset($arguments['failOnWarning'])) { + $arguments['failOnWarning'] = $phpunitConfiguration['failOnWarning']; + } + + if (isset($phpunitConfiguration['failOnRisky']) && !isset($arguments['failOnRisky'])) { + $arguments['failOnRisky'] = $phpunitConfiguration['failOnRisky']; + } + + if (isset($phpunitConfiguration['timeoutForSmallTests']) && !isset($arguments['timeoutForSmallTests'])) { + $arguments['timeoutForSmallTests'] = $phpunitConfiguration['timeoutForSmallTests']; + } + + if (isset($phpunitConfiguration['timeoutForMediumTests']) && !isset($arguments['timeoutForMediumTests'])) { + $arguments['timeoutForMediumTests'] = $phpunitConfiguration['timeoutForMediumTests']; + } + + if (isset($phpunitConfiguration['timeoutForLargeTests']) && !isset($arguments['timeoutForLargeTests'])) { + $arguments['timeoutForLargeTests'] = $phpunitConfiguration['timeoutForLargeTests']; + } + + if (isset($phpunitConfiguration['reportUselessTests']) && !isset($arguments['reportUselessTests'])) { + $arguments['reportUselessTests'] = $phpunitConfiguration['reportUselessTests']; + } + + if (isset($phpunitConfiguration['strictCoverage']) && !isset($arguments['strictCoverage'])) { + $arguments['strictCoverage'] = $phpunitConfiguration['strictCoverage']; + } + + if (isset($phpunitConfiguration['ignoreDeprecatedCodeUnitsFromCodeCoverage']) && !isset($arguments['ignoreDeprecatedCodeUnitsFromCodeCoverage'])) { + $arguments['ignoreDeprecatedCodeUnitsFromCodeCoverage'] = $phpunitConfiguration['ignoreDeprecatedCodeUnitsFromCodeCoverage']; + } + + if (isset($phpunitConfiguration['disallowTestOutput']) && !isset($arguments['disallowTestOutput'])) { + $arguments['disallowTestOutput'] = $phpunitConfiguration['disallowTestOutput']; + } + + if (isset($phpunitConfiguration['defaultTimeLimit']) && !isset($arguments['defaultTimeLimit'])) { + $arguments['defaultTimeLimit'] = $phpunitConfiguration['defaultTimeLimit']; + } + + if (isset($phpunitConfiguration['enforceTimeLimit']) && !isset($arguments['enforceTimeLimit'])) { + $arguments['enforceTimeLimit'] = $phpunitConfiguration['enforceTimeLimit']; + } + + if (isset($phpunitConfiguration['disallowTodoAnnotatedTests']) && !isset($arguments['disallowTodoAnnotatedTests'])) { + $arguments['disallowTodoAnnotatedTests'] = $phpunitConfiguration['disallowTodoAnnotatedTests']; + } + + if (isset($phpunitConfiguration['beStrictAboutResourceUsageDuringSmallTests']) && !isset($arguments['beStrictAboutResourceUsageDuringSmallTests'])) { + $arguments['beStrictAboutResourceUsageDuringSmallTests'] = $phpunitConfiguration['beStrictAboutResourceUsageDuringSmallTests']; + } + + if (isset($phpunitConfiguration['verbose']) && !isset($arguments['verbose'])) { + $arguments['verbose'] = $phpunitConfiguration['verbose']; + } + + if (isset($phpunitConfiguration['reverseDefectList']) && !isset($arguments['reverseList'])) { + $arguments['reverseList'] = $phpunitConfiguration['reverseDefectList']; + } + + if (isset($phpunitConfiguration['forceCoversAnnotation']) && !isset($arguments['forceCoversAnnotation'])) { + $arguments['forceCoversAnnotation'] = $phpunitConfiguration['forceCoversAnnotation']; + } + + if (isset($phpunitConfiguration['disableCodeCoverageIgnore']) && !isset($arguments['disableCodeCoverageIgnore'])) { + $arguments['disableCodeCoverageIgnore'] = $phpunitConfiguration['disableCodeCoverageIgnore']; + } + + if (isset($phpunitConfiguration['registerMockObjectsFromTestArgumentsRecursively']) && !isset($arguments['registerMockObjectsFromTestArgumentsRecursively'])) { + $arguments['registerMockObjectsFromTestArgumentsRecursively'] = $phpunitConfiguration['registerMockObjectsFromTestArgumentsRecursively']; + } + + if (isset($phpunitConfiguration['executionOrder']) && !isset($arguments['executionOrder'])) { + $arguments['executionOrder'] = $phpunitConfiguration['executionOrder']; + } + + if (isset($phpunitConfiguration['executionOrderDefects']) && !isset($arguments['executionOrderDefects'])) { + $arguments['executionOrderDefects'] = $phpunitConfiguration['executionOrderDefects']; + } + + if (isset($phpunitConfiguration['resolveDependencies']) && !isset($arguments['resolveDependencies'])) { + $arguments['resolveDependencies'] = $phpunitConfiguration['resolveDependencies']; + } + + $groupCliArgs = []; + + if (!empty($arguments['groups'])) { + $groupCliArgs = $arguments['groups']; + } + + $groupConfiguration = $arguments['configuration']->getGroupConfiguration(); + + if (!empty($groupConfiguration['include']) && !isset($arguments['groups'])) { + $arguments['groups'] = $groupConfiguration['include']; + } + + if (!empty($groupConfiguration['exclude']) && !isset($arguments['excludeGroups'])) { + $arguments['excludeGroups'] = \array_diff($groupConfiguration['exclude'], $groupCliArgs); + } + + foreach ($arguments['configuration']->getExtensionConfiguration() as $extension) { + if (!\class_exists($extension['class'], false) && $extension['file'] !== '') { + require_once $extension['file']; + } + + if (!\class_exists($extension['class'])) { + throw new Exception( + \sprintf( + 'Class "%s" does not exist', + $extension['class'] + ) + ); + } + + $extensionClass = new ReflectionClass($extension['class']); + + if (!$extensionClass->implementsInterface(Hook::class)) { + throw new Exception( + \sprintf( + 'Class "%s" does not implement a PHPUnit\Runner\Hook interface', + $extension['class'] + ) + ); + } + + if (\count($extension['arguments']) == 0) { + $this->extensions[] = $extensionClass->newInstance(); + } else { + $this->extensions[] = $extensionClass->newInstanceArgs( + $extension['arguments'] + ); + } + } + + foreach ($arguments['configuration']->getListenerConfiguration() as $listener) { + if (!\class_exists($listener['class'], false) && + $listener['file'] !== '') { + require_once $listener['file']; + } + + if (!\class_exists($listener['class'])) { + throw new Exception( + \sprintf( + 'Class "%s" does not exist', + $listener['class'] + ) + ); + } + + $listenerClass = new ReflectionClass($listener['class']); + + if (!$listenerClass->implementsInterface(TestListener::class)) { + throw new Exception( + \sprintf( + 'Class "%s" does not implement the PHPUnit\Framework\TestListener interface', + $listener['class'] + ) + ); + } + + if (\count($listener['arguments']) == 0) { + $listener = new $listener['class']; + } else { + $listener = $listenerClass->newInstanceArgs( + $listener['arguments'] + ); + } + + $arguments['listeners'][] = $listener; + } + + $loggingConfiguration = $arguments['configuration']->getLoggingConfiguration(); + + if (isset($loggingConfiguration['coverage-clover']) && !isset($arguments['coverageClover'])) { + $arguments['coverageClover'] = $loggingConfiguration['coverage-clover']; + } + + if (isset($loggingConfiguration['coverage-crap4j']) && !isset($arguments['coverageCrap4J'])) { + $arguments['coverageCrap4J'] = $loggingConfiguration['coverage-crap4j']; + + if (isset($loggingConfiguration['crap4jThreshold']) && !isset($arguments['crap4jThreshold'])) { + $arguments['crap4jThreshold'] = $loggingConfiguration['crap4jThreshold']; + } + } + + if (isset($loggingConfiguration['coverage-html']) && !isset($arguments['coverageHtml'])) { + if (isset($loggingConfiguration['lowUpperBound']) && !isset($arguments['reportLowUpperBound'])) { + $arguments['reportLowUpperBound'] = $loggingConfiguration['lowUpperBound']; + } + + if (isset($loggingConfiguration['highLowerBound']) && !isset($arguments['reportHighLowerBound'])) { + $arguments['reportHighLowerBound'] = $loggingConfiguration['highLowerBound']; + } + + $arguments['coverageHtml'] = $loggingConfiguration['coverage-html']; + } + + if (isset($loggingConfiguration['coverage-php']) && !isset($arguments['coveragePHP'])) { + $arguments['coveragePHP'] = $loggingConfiguration['coverage-php']; + } + + if (isset($loggingConfiguration['coverage-text']) && !isset($arguments['coverageText'])) { + $arguments['coverageText'] = $loggingConfiguration['coverage-text']; + + if (isset($loggingConfiguration['coverageTextShowUncoveredFiles'])) { + $arguments['coverageTextShowUncoveredFiles'] = $loggingConfiguration['coverageTextShowUncoveredFiles']; + } else { + $arguments['coverageTextShowUncoveredFiles'] = false; + } + + if (isset($loggingConfiguration['coverageTextShowOnlySummary'])) { + $arguments['coverageTextShowOnlySummary'] = $loggingConfiguration['coverageTextShowOnlySummary']; + } else { + $arguments['coverageTextShowOnlySummary'] = false; + } + } + + if (isset($loggingConfiguration['coverage-xml']) && !isset($arguments['coverageXml'])) { + $arguments['coverageXml'] = $loggingConfiguration['coverage-xml']; + } + + if (isset($loggingConfiguration['plain'])) { + $arguments['listeners'][] = new ResultPrinter( + $loggingConfiguration['plain'], + true + ); + } + + if (isset($loggingConfiguration['teamcity']) && !isset($arguments['teamcityLogfile'])) { + $arguments['teamcityLogfile'] = $loggingConfiguration['teamcity']; + } + + if (isset($loggingConfiguration['junit']) && !isset($arguments['junitLogfile'])) { + $arguments['junitLogfile'] = $loggingConfiguration['junit']; + } + + if (isset($loggingConfiguration['testdox-html']) && !isset($arguments['testdoxHTMLFile'])) { + $arguments['testdoxHTMLFile'] = $loggingConfiguration['testdox-html']; + } + + if (isset($loggingConfiguration['testdox-text']) && !isset($arguments['testdoxTextFile'])) { + $arguments['testdoxTextFile'] = $loggingConfiguration['testdox-text']; + } + + if (isset($loggingConfiguration['testdox-xml']) && !isset($arguments['testdoxXMLFile'])) { + $arguments['testdoxXMLFile'] = $loggingConfiguration['testdox-xml']; + } + + $testdoxGroupConfiguration = $arguments['configuration']->getTestdoxGroupConfiguration(); + + if (isset($testdoxGroupConfiguration['include']) && + !isset($arguments['testdoxGroups'])) { + $arguments['testdoxGroups'] = $testdoxGroupConfiguration['include']; + } + + if (isset($testdoxGroupConfiguration['exclude']) && + !isset($arguments['testdoxExcludeGroups'])) { + $arguments['testdoxExcludeGroups'] = $testdoxGroupConfiguration['exclude']; + } + } + + $arguments['addUncoveredFilesFromWhitelist'] = $arguments['addUncoveredFilesFromWhitelist'] ?? true; + $arguments['backupGlobals'] = $arguments['backupGlobals'] ?? null; + $arguments['backupStaticAttributes'] = $arguments['backupStaticAttributes'] ?? null; + $arguments['beStrictAboutChangesToGlobalState'] = $arguments['beStrictAboutChangesToGlobalState'] ?? null; + $arguments['beStrictAboutResourceUsageDuringSmallTests'] = $arguments['beStrictAboutResourceUsageDuringSmallTests'] ?? false; + $arguments['cacheResult'] = $arguments['cacheResult'] ?? false; + $arguments['cacheTokens'] = $arguments['cacheTokens'] ?? false; + $arguments['colors'] = $arguments['colors'] ?? ResultPrinter::COLOR_DEFAULT; + $arguments['columns'] = $arguments['columns'] ?? 80; + $arguments['convertDeprecationsToExceptions'] = $arguments['convertDeprecationsToExceptions'] ?? true; + $arguments['convertErrorsToExceptions'] = $arguments['convertErrorsToExceptions'] ?? true; + $arguments['convertNoticesToExceptions'] = $arguments['convertNoticesToExceptions'] ?? true; + $arguments['convertWarningsToExceptions'] = $arguments['convertWarningsToExceptions'] ?? true; + $arguments['crap4jThreshold'] = $arguments['crap4jThreshold'] ?? 30; + $arguments['disallowTestOutput'] = $arguments['disallowTestOutput'] ?? false; + $arguments['disallowTodoAnnotatedTests'] = $arguments['disallowTodoAnnotatedTests'] ?? false; + $arguments['defaultTimeLimit'] = $arguments['defaultTimeLimit'] ?? 0; + $arguments['enforceTimeLimit'] = $arguments['enforceTimeLimit'] ?? false; + $arguments['excludeGroups'] = $arguments['excludeGroups'] ?? []; + $arguments['failOnRisky'] = $arguments['failOnRisky'] ?? false; + $arguments['failOnWarning'] = $arguments['failOnWarning'] ?? false; + $arguments['executionOrderDefects'] = $arguments['executionOrderDefects'] ?? TestSuiteSorter::ORDER_DEFAULT; + $arguments['groups'] = $arguments['groups'] ?? []; + $arguments['processIsolation'] = $arguments['processIsolation'] ?? false; + $arguments['processUncoveredFilesFromWhitelist'] = $arguments['processUncoveredFilesFromWhitelist'] ?? false; + $arguments['randomOrderSeed'] = $arguments['randomOrderSeed'] ?? \time(); + $arguments['registerMockObjectsFromTestArgumentsRecursively'] = $arguments['registerMockObjectsFromTestArgumentsRecursively'] ?? false; + $arguments['repeat'] = $arguments['repeat'] ?? false; + $arguments['reportHighLowerBound'] = $arguments['reportHighLowerBound'] ?? 90; + $arguments['reportLowUpperBound'] = $arguments['reportLowUpperBound'] ?? 50; + $arguments['reportUselessTests'] = $arguments['reportUselessTests'] ?? true; + $arguments['reverseList'] = $arguments['reverseList'] ?? false; + $arguments['executionOrder'] = $arguments['executionOrder'] ?? TestSuiteSorter::ORDER_DEFAULT; + $arguments['resolveDependencies'] = $arguments['resolveDependencies'] ?? false; + $arguments['stopOnError'] = $arguments['stopOnError'] ?? false; + $arguments['stopOnFailure'] = $arguments['stopOnFailure'] ?? false; + $arguments['stopOnIncomplete'] = $arguments['stopOnIncomplete'] ?? false; + $arguments['stopOnRisky'] = $arguments['stopOnRisky'] ?? false; + $arguments['stopOnSkipped'] = $arguments['stopOnSkipped'] ?? false; + $arguments['stopOnWarning'] = $arguments['stopOnWarning'] ?? false; + $arguments['stopOnDefect'] = $arguments['stopOnDefect'] ?? false; + $arguments['strictCoverage'] = $arguments['strictCoverage'] ?? false; + $arguments['testdoxExcludeGroups'] = $arguments['testdoxExcludeGroups'] ?? []; + $arguments['testdoxGroups'] = $arguments['testdoxGroups'] ?? []; + $arguments['timeoutForLargeTests'] = $arguments['timeoutForLargeTests'] ?? 60; + $arguments['timeoutForMediumTests'] = $arguments['timeoutForMediumTests'] ?? 10; + $arguments['timeoutForSmallTests'] = $arguments['timeoutForSmallTests'] ?? 1; + $arguments['verbose'] = $arguments['verbose'] ?? false; + } + + /** + * @throws \ReflectionException + * @throws \InvalidArgumentException + */ + private function processSuiteFilters(TestSuite $suite, array $arguments): void + { + if (!$arguments['filter'] && + empty($arguments['groups']) && + empty($arguments['excludeGroups'])) { + return; + } + + $filterFactory = new Factory; + + if (!empty($arguments['excludeGroups'])) { + $filterFactory->addFilter( + new ReflectionClass(ExcludeGroupFilterIterator::class), + $arguments['excludeGroups'] + ); + } + + if (!empty($arguments['groups'])) { + $filterFactory->addFilter( + new ReflectionClass(IncludeGroupFilterIterator::class), + $arguments['groups'] + ); + } + + if ($arguments['filter']) { + $filterFactory->addFilter( + new ReflectionClass(NameFilterIterator::class), + $arguments['filter'] + ); + } + + $suite->injectFilter($filterFactory); + } + + private function writeMessage(string $type, string $message): void + { + if (!$this->messagePrinted) { + $this->write("\n"); + } + + $this->write( + \sprintf( + "%-15s%s\n", + $type . ':', + $message + ) + ); + + $this->messagePrinted = true; + } +} diff --git a/vendor/phpunit/phpunit/src/Util/Blacklist.php b/vendor/phpunit/phpunit/src/Util/Blacklist.php new file mode 100644 index 00000000..0834deab --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/Blacklist.php @@ -0,0 +1,196 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +use Composer\Autoload\ClassLoader; +use DeepCopy\DeepCopy; +use Doctrine\Instantiator\Instantiator; +use PharIo\Manifest\Manifest; +use PharIo\Version\Version as PharIoVersion; +use PHP_Token; +use phpDocumentor\Reflection\DocBlock; +use phpDocumentor\Reflection\Project; +use phpDocumentor\Reflection\Type; +use PHPUnit\Framework\TestCase; +use Prophecy\Prophet; +use ReflectionClass; +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeUnitReverseLookup\Wizard; +use SebastianBergmann\Comparator\Comparator; +use SebastianBergmann\Diff\Diff; +use SebastianBergmann\Environment\Runtime; +use SebastianBergmann\Exporter\Exporter; +use SebastianBergmann\FileIterator\Facade as FileIteratorFacade; +use SebastianBergmann\GlobalState\Snapshot; +use SebastianBergmann\Invoker\Invoker; +use SebastianBergmann\ObjectEnumerator\Enumerator; +use SebastianBergmann\RecursionContext\Context; +use SebastianBergmann\ResourceOperations\ResourceOperations; +use SebastianBergmann\Timer\Timer; +use SebastianBergmann\Version; +use Text_Template; +use TheSeer\Tokenizer\Tokenizer; +use Webmozart\Assert\Assert; + +/** + * Utility class for blacklisting PHPUnit's own source code files. + */ +final class Blacklist +{ + /** + * @var array + */ + public static $blacklistedClassNames = [ + // composer + ClassLoader::class => 1, + + // doctrine/instantiator + Instantiator::class => 1, + + // myclabs/deepcopy + DeepCopy::class => 1, + + // phar-io/manifest + Manifest::class => 1, + + // phar-io/version + PharIoVersion::class => 1, + + // phpdocumentor/reflection-common + Project::class => 1, + + // phpdocumentor/reflection-docblock + DocBlock::class => 1, + + // phpdocumentor/type-resolver + Type::class => 1, + + // phpspec/prophecy + Prophet::class => 1, + + // phpunit/phpunit + TestCase::class => 2, + + // phpunit/php-code-coverage + CodeCoverage::class => 1, + + // phpunit/php-file-iterator + FileIteratorFacade::class => 1, + + // phpunit/php-invoker + Invoker::class => 1, + + // phpunit/php-text-template + Text_Template::class => 1, + + // phpunit/php-timer + Timer::class => 1, + + // phpunit/php-token-stream + PHP_Token::class => 1, + + // sebastian/code-unit-reverse-lookup + Wizard::class => 1, + + // sebastian/comparator + Comparator::class => 1, + + // sebastian/diff + Diff::class => 1, + + // sebastian/environment + Runtime::class => 1, + + // sebastian/exporter + Exporter::class => 1, + + // sebastian/global-state + Snapshot::class => 1, + + // sebastian/object-enumerator + Enumerator::class => 1, + + // sebastian/recursion-context + Context::class => 1, + + // sebastian/resource-operations + ResourceOperations::class => 1, + + // sebastian/version + Version::class => 1, + + // theseer/tokenizer + Tokenizer::class => 1, + + // webmozart/assert + Assert::class => 1, + ]; + + /** + * @var string[] + */ + private static $directories; + + /** + * @return string[] + */ + public function getBlacklistedDirectories(): array + { + $this->initialize(); + + return self::$directories; + } + + public function isBlacklisted(string $file): bool + { + if (\defined('PHPUNIT_TESTSUITE')) { + return false; + } + + $this->initialize(); + + foreach (self::$directories as $directory) { + if (\strpos($file, $directory) === 0) { + return true; + } + } + + return false; + } + + private function initialize(): void + { + if (self::$directories === null) { + self::$directories = []; + + foreach (self::$blacklistedClassNames as $className => $parent) { + if (!\class_exists($className)) { + continue; + } + + $reflector = new ReflectionClass($className); + $directory = $reflector->getFileName(); + + for ($i = 0; $i < $parent; $i++) { + $directory = \dirname($directory); + } + + self::$directories[] = $directory; + } + + // Hide process isolation workaround on Windows. + if (\DIRECTORY_SEPARATOR === '\\') { + // tempnam() prefix is limited to first 3 chars. + // @see https://php.net/manual/en/function.tempnam.php + self::$directories[] = \sys_get_temp_dir() . '\\PHP'; + } + } + } +} diff --git a/vendor/phpunit/phpunit/src/Util/Configuration.php b/vendor/phpunit/phpunit/src/Util/Configuration.php new file mode 100644 index 00000000..0a184303 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/Configuration.php @@ -0,0 +1,1331 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +use DOMElement; +use DOMXPath; +use PHPUnit\Framework\Exception; +use PHPUnit\Framework\TestSuite; +use PHPUnit\Runner\TestSuiteSorter; +use PHPUnit\TextUI\ResultPrinter; +use SebastianBergmann\FileIterator\Facade as FileIteratorFacade; + +/** + * Wrapper for the PHPUnit XML configuration file. + * + * Example XML configuration file: + * + * + * + * + * + * + * /path/to/files + * /path/to/MyTest.php + * /path/to/files/exclude + * + * + * + * + * + * name + * + * + * name + * + * + * + * + * + * name + * + * + * name + * + * + * + * + * + * /path/to/files + * /path/to/file + * + * /path/to/files + * /path/to/file + * + * + * + * + * + * + * + * + * + * Sebastian + * + * + * 22 + * April + * 19.78 + * + * + * MyRelativeFile.php + * MyRelativeDir + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * . + * + * + * + * + * + * + * + * + * + * + * + * + * + */ +final class Configuration +{ + /** + * @var self[] + */ + private static $instances = []; + + /** + * @var \DOMDocument + */ + private $document; + + /** + * @var DOMXPath + */ + private $xpath; + + /** + * @var string + */ + private $filename; + + /** + * @var \LibXMLError[] + */ + private $errors = []; + + /** + * Returns a PHPUnit configuration object. + * + * @throws Exception + */ + public static function getInstance(string $filename): self + { + $realPath = \realpath($filename); + + if ($realPath === false) { + throw new Exception( + \sprintf( + 'Could not read "%s".', + $filename + ) + ); + } + + /** @var string $realPath */ + if (!isset(self::$instances[$realPath])) { + self::$instances[$realPath] = new self($realPath); + } + + return self::$instances[$realPath]; + } + + /** + * Loads a PHPUnit configuration file. + * + * @throws Exception + */ + private function __construct(string $filename) + { + $this->filename = $filename; + $this->document = Xml::loadFile($filename, false, true, true); + $this->xpath = new DOMXPath($this->document); + + $this->validateConfigurationAgainstSchema(); + } + + /** + * @codeCoverageIgnore + */ + private function __clone() + { + } + + public function hasValidationErrors(): bool + { + return \count($this->errors) > 0; + } + + public function getValidationErrors(): array + { + $result = []; + + foreach ($this->errors as $error) { + if (!isset($result[$error->line])) { + $result[$error->line] = []; + } + $result[$error->line][] = \trim($error->message); + } + + return $result; + } + + /** + * Returns the real path to the configuration file. + */ + public function getFilename(): string + { + return $this->filename; + } + + public function getExtensionConfiguration(): array + { + $result = []; + + foreach ($this->xpath->query('extensions/extension') as $extension) { + /** @var DOMElement $extension */ + $class = (string) $extension->getAttribute('class'); + $file = ''; + $arguments = $this->getConfigurationArguments($extension->childNodes); + + if ($extension->getAttribute('file')) { + $file = $this->toAbsolutePath( + (string) $extension->getAttribute('file'), + true + ); + } + $result[] = [ + 'class' => $class, + 'file' => $file, + 'arguments' => $arguments, + ]; + } + + return $result; + } + + /** + * Returns the configuration for SUT filtering. + */ + public function getFilterConfiguration(): array + { + $addUncoveredFilesFromWhitelist = true; + $processUncoveredFilesFromWhitelist = false; + $includeDirectory = []; + $includeFile = []; + $excludeDirectory = []; + $excludeFile = []; + + $tmp = $this->xpath->query('filter/whitelist'); + + if ($tmp->length === 1) { + if ($tmp->item(0)->hasAttribute('addUncoveredFilesFromWhitelist')) { + $addUncoveredFilesFromWhitelist = $this->getBoolean( + (string) $tmp->item(0)->getAttribute( + 'addUncoveredFilesFromWhitelist' + ), + true + ); + } + + if ($tmp->item(0)->hasAttribute('processUncoveredFilesFromWhitelist')) { + $processUncoveredFilesFromWhitelist = $this->getBoolean( + (string) $tmp->item(0)->getAttribute( + 'processUncoveredFilesFromWhitelist' + ), + false + ); + } + + $includeDirectory = $this->readFilterDirectories( + 'filter/whitelist/directory' + ); + + $includeFile = $this->readFilterFiles( + 'filter/whitelist/file' + ); + + $excludeDirectory = $this->readFilterDirectories( + 'filter/whitelist/exclude/directory' + ); + + $excludeFile = $this->readFilterFiles( + 'filter/whitelist/exclude/file' + ); + } + + return [ + 'whitelist' => [ + 'addUncoveredFilesFromWhitelist' => $addUncoveredFilesFromWhitelist, + 'processUncoveredFilesFromWhitelist' => $processUncoveredFilesFromWhitelist, + 'include' => [ + 'directory' => $includeDirectory, + 'file' => $includeFile, + ], + 'exclude' => [ + 'directory' => $excludeDirectory, + 'file' => $excludeFile, + ], + ], + ]; + } + + /** + * Returns the configuration for groups. + */ + public function getGroupConfiguration(): array + { + return $this->parseGroupConfiguration('groups'); + } + + /** + * Returns the configuration for testdox groups. + */ + public function getTestdoxGroupConfiguration(): array + { + return $this->parseGroupConfiguration('testdoxGroups'); + } + + /** + * Returns the configuration for listeners. + */ + public function getListenerConfiguration(): array + { + $result = []; + + foreach ($this->xpath->query('listeners/listener') as $listener) { + /** @var DOMElement $listener */ + $class = (string) $listener->getAttribute('class'); + $file = ''; + $arguments = $this->getConfigurationArguments($listener->childNodes); + + if ($listener->getAttribute('file')) { + $file = $this->toAbsolutePath( + (string) $listener->getAttribute('file'), + true + ); + } + + $result[] = [ + 'class' => $class, + 'file' => $file, + 'arguments' => $arguments, + ]; + } + + return $result; + } + + /** + * Returns the logging configuration. + */ + public function getLoggingConfiguration(): array + { + $result = []; + + foreach ($this->xpath->query('logging/log') as $log) { + /** @var DOMElement $log */ + $type = (string) $log->getAttribute('type'); + $target = (string) $log->getAttribute('target'); + + if (!$target) { + continue; + } + + $target = $this->toAbsolutePath($target); + + if ($type === 'coverage-html') { + if ($log->hasAttribute('lowUpperBound')) { + $result['lowUpperBound'] = $this->getInteger( + (string) $log->getAttribute('lowUpperBound'), + 50 + ); + } + + if ($log->hasAttribute('highLowerBound')) { + $result['highLowerBound'] = $this->getInteger( + (string) $log->getAttribute('highLowerBound'), + 90 + ); + } + } elseif ($type === 'coverage-crap4j') { + if ($log->hasAttribute('threshold')) { + $result['crap4jThreshold'] = $this->getInteger( + (string) $log->getAttribute('threshold'), + 30 + ); + } + } elseif ($type === 'coverage-text') { + if ($log->hasAttribute('showUncoveredFiles')) { + $result['coverageTextShowUncoveredFiles'] = $this->getBoolean( + (string) $log->getAttribute('showUncoveredFiles'), + false + ); + } + + if ($log->hasAttribute('showOnlySummary')) { + $result['coverageTextShowOnlySummary'] = $this->getBoolean( + (string) $log->getAttribute('showOnlySummary'), + false + ); + } + } + + $result[$type] = $target; + } + + return $result; + } + + /** + * Returns the PHP configuration. + */ + public function getPHPConfiguration(): array + { + $result = [ + 'include_path' => [], + 'ini' => [], + 'const' => [], + 'var' => [], + 'env' => [], + 'post' => [], + 'get' => [], + 'cookie' => [], + 'server' => [], + 'files' => [], + 'request' => [], + ]; + + foreach ($this->xpath->query('php/includePath') as $includePath) { + $path = (string) $includePath->textContent; + + if ($path) { + $result['include_path'][] = $this->toAbsolutePath($path); + } + } + + foreach ($this->xpath->query('php/ini') as $ini) { + /** @var DOMElement $ini */ + $name = (string) $ini->getAttribute('name'); + $value = (string) $ini->getAttribute('value'); + + $result['ini'][$name]['value'] = $value; + } + + foreach ($this->xpath->query('php/const') as $const) { + /** @var DOMElement $const */ + $name = (string) $const->getAttribute('name'); + $value = (string) $const->getAttribute('value'); + + $result['const'][$name]['value'] = $this->getBoolean($value, $value); + } + + foreach (['var', 'env', 'post', 'get', 'cookie', 'server', 'files', 'request'] as $array) { + foreach ($this->xpath->query('php/' . $array) as $var) { + /** @var DOMElement $var */ + $name = (string) $var->getAttribute('name'); + $value = (string) $var->getAttribute('value'); + $verbatim = false; + + if ($var->hasAttribute('verbatim')) { + $verbatim = $this->getBoolean($var->getAttribute('verbatim'), false); + $result[$array][$name]['verbatim'] = $verbatim; + } + + if ($var->hasAttribute('force')) { + $force = $this->getBoolean($var->getAttribute('force'), false); + $result[$array][$name]['force'] = $force; + } + + if (!$verbatim) { + $value = $this->getBoolean($value, $value); + } + + $result[$array][$name]['value'] = $value; + } + } + + return $result; + } + + /** + * Handles the PHP configuration. + */ + public function handlePHPConfiguration(): void + { + $configuration = $this->getPHPConfiguration(); + + if (!empty($configuration['include_path'])) { + \ini_set( + 'include_path', + \implode(\PATH_SEPARATOR, $configuration['include_path']) . + \PATH_SEPARATOR . + \ini_get('include_path') + ); + } + + foreach ($configuration['ini'] as $name => $data) { + $value = $data['value']; + + if (\defined($value)) { + $value = (string) \constant($value); + } + + \ini_set($name, $value); + } + + foreach ($configuration['const'] as $name => $data) { + $value = $data['value']; + + if (!\defined($name)) { + \define($name, $value); + } + } + + foreach (['var', 'post', 'get', 'cookie', 'server', 'files', 'request'] as $array) { + /* + * @see https://github.com/sebastianbergmann/phpunit/issues/277 + */ + switch ($array) { + case 'var': + $target = &$GLOBALS; + + break; + + case 'server': + $target = &$_SERVER; + + break; + + default: + $target = &$GLOBALS['_' . \strtoupper($array)]; + + break; + } + + foreach ($configuration[$array] as $name => $data) { + $target[$name] = $data['value']; + } + } + + foreach ($configuration['env'] as $name => $data) { + $value = $data['value']; + $force = $data['force'] ?? false; + + if ($force || \getenv($name) === false) { + \putenv("{$name}={$value}"); + } + + $value = \getenv($name); + + if (!isset($_ENV[$name])) { + $_ENV[$name] = $value; + } + + if ($force === true) { + $_ENV[$name] = $value; + } + } + } + + /** + * Returns the PHPUnit configuration. + */ + public function getPHPUnitConfiguration(): array + { + $result = []; + $root = $this->document->documentElement; + + if ($root->hasAttribute('cacheTokens')) { + $result['cacheTokens'] = $this->getBoolean( + (string) $root->getAttribute('cacheTokens'), + false + ); + } + + if ($root->hasAttribute('columns')) { + $columns = (string) $root->getAttribute('columns'); + + if ($columns === 'max') { + $result['columns'] = 'max'; + } else { + $result['columns'] = $this->getInteger($columns, 80); + } + } + + if ($root->hasAttribute('colors')) { + /* only allow boolean for compatibility with previous versions + 'always' only allowed from command line */ + if ($this->getBoolean($root->getAttribute('colors'), false)) { + $result['colors'] = ResultPrinter::COLOR_AUTO; + } else { + $result['colors'] = ResultPrinter::COLOR_NEVER; + } + } + + /* + * @see https://github.com/sebastianbergmann/phpunit/issues/657 + */ + if ($root->hasAttribute('stderr')) { + $result['stderr'] = $this->getBoolean( + (string) $root->getAttribute('stderr'), + false + ); + } + + if ($root->hasAttribute('backupGlobals')) { + $result['backupGlobals'] = $this->getBoolean( + (string) $root->getAttribute('backupGlobals'), + false + ); + } + + if ($root->hasAttribute('backupStaticAttributes')) { + $result['backupStaticAttributes'] = $this->getBoolean( + (string) $root->getAttribute('backupStaticAttributes'), + false + ); + } + + if ($root->getAttribute('bootstrap')) { + $result['bootstrap'] = $this->toAbsolutePath( + (string) $root->getAttribute('bootstrap') + ); + } + + if ($root->hasAttribute('convertDeprecationsToExceptions')) { + $result['convertDeprecationsToExceptions'] = $this->getBoolean( + (string) $root->getAttribute('convertDeprecationsToExceptions'), + true + ); + } + + if ($root->hasAttribute('convertErrorsToExceptions')) { + $result['convertErrorsToExceptions'] = $this->getBoolean( + (string) $root->getAttribute('convertErrorsToExceptions'), + true + ); + } + + if ($root->hasAttribute('convertNoticesToExceptions')) { + $result['convertNoticesToExceptions'] = $this->getBoolean( + (string) $root->getAttribute('convertNoticesToExceptions'), + true + ); + } + + if ($root->hasAttribute('convertWarningsToExceptions')) { + $result['convertWarningsToExceptions'] = $this->getBoolean( + (string) $root->getAttribute('convertWarningsToExceptions'), + true + ); + } + + if ($root->hasAttribute('forceCoversAnnotation')) { + $result['forceCoversAnnotation'] = $this->getBoolean( + (string) $root->getAttribute('forceCoversAnnotation'), + false + ); + } + + if ($root->hasAttribute('disableCodeCoverageIgnore')) { + $result['disableCodeCoverageIgnore'] = $this->getBoolean( + (string) $root->getAttribute('disableCodeCoverageIgnore'), + false + ); + } + + if ($root->hasAttribute('processIsolation')) { + $result['processIsolation'] = $this->getBoolean( + (string) $root->getAttribute('processIsolation'), + false + ); + } + + if ($root->hasAttribute('stopOnDefect')) { + $result['stopOnDefect'] = $this->getBoolean( + (string) $root->getAttribute('stopOnDefect'), + false + ); + } + + if ($root->hasAttribute('stopOnError')) { + $result['stopOnError'] = $this->getBoolean( + (string) $root->getAttribute('stopOnError'), + false + ); + } + + if ($root->hasAttribute('stopOnFailure')) { + $result['stopOnFailure'] = $this->getBoolean( + (string) $root->getAttribute('stopOnFailure'), + false + ); + } + + if ($root->hasAttribute('stopOnWarning')) { + $result['stopOnWarning'] = $this->getBoolean( + (string) $root->getAttribute('stopOnWarning'), + false + ); + } + + if ($root->hasAttribute('stopOnIncomplete')) { + $result['stopOnIncomplete'] = $this->getBoolean( + (string) $root->getAttribute('stopOnIncomplete'), + false + ); + } + + if ($root->hasAttribute('stopOnRisky')) { + $result['stopOnRisky'] = $this->getBoolean( + (string) $root->getAttribute('stopOnRisky'), + false + ); + } + + if ($root->hasAttribute('stopOnSkipped')) { + $result['stopOnSkipped'] = $this->getBoolean( + (string) $root->getAttribute('stopOnSkipped'), + false + ); + } + + if ($root->hasAttribute('failOnWarning')) { + $result['failOnWarning'] = $this->getBoolean( + (string) $root->getAttribute('failOnWarning'), + false + ); + } + + if ($root->hasAttribute('failOnRisky')) { + $result['failOnRisky'] = $this->getBoolean( + (string) $root->getAttribute('failOnRisky'), + false + ); + } + + if ($root->hasAttribute('testSuiteLoaderClass')) { + $result['testSuiteLoaderClass'] = (string) $root->getAttribute( + 'testSuiteLoaderClass' + ); + } + + if ($root->hasAttribute('defaultTestSuite')) { + $result['defaultTestSuite'] = (string) $root->getAttribute( + 'defaultTestSuite' + ); + } + + if ($root->getAttribute('testSuiteLoaderFile')) { + $result['testSuiteLoaderFile'] = $this->toAbsolutePath( + (string) $root->getAttribute('testSuiteLoaderFile') + ); + } + + if ($root->hasAttribute('printerClass')) { + $result['printerClass'] = (string) $root->getAttribute( + 'printerClass' + ); + } + + if ($root->getAttribute('printerFile')) { + $result['printerFile'] = $this->toAbsolutePath( + (string) $root->getAttribute('printerFile') + ); + } + + if ($root->hasAttribute('beStrictAboutChangesToGlobalState')) { + $result['beStrictAboutChangesToGlobalState'] = $this->getBoolean( + (string) $root->getAttribute('beStrictAboutChangesToGlobalState'), + false + ); + } + + if ($root->hasAttribute('beStrictAboutOutputDuringTests')) { + $result['disallowTestOutput'] = $this->getBoolean( + (string) $root->getAttribute('beStrictAboutOutputDuringTests'), + false + ); + } + + if ($root->hasAttribute('beStrictAboutResourceUsageDuringSmallTests')) { + $result['beStrictAboutResourceUsageDuringSmallTests'] = $this->getBoolean( + (string) $root->getAttribute('beStrictAboutResourceUsageDuringSmallTests'), + false + ); + } + + if ($root->hasAttribute('beStrictAboutTestsThatDoNotTestAnything')) { + $result['reportUselessTests'] = $this->getBoolean( + (string) $root->getAttribute('beStrictAboutTestsThatDoNotTestAnything'), + true + ); + } + + if ($root->hasAttribute('beStrictAboutTodoAnnotatedTests')) { + $result['disallowTodoAnnotatedTests'] = $this->getBoolean( + (string) $root->getAttribute('beStrictAboutTodoAnnotatedTests'), + false + ); + } + + if ($root->hasAttribute('beStrictAboutCoversAnnotation')) { + $result['strictCoverage'] = $this->getBoolean( + (string) $root->getAttribute('beStrictAboutCoversAnnotation'), + false + ); + } + + if ($root->hasAttribute('defaultTimeLimit')) { + $result['defaultTimeLimit'] = $this->getInteger( + (string) $root->getAttribute('defaultTimeLimit'), + 1 + ); + } + + if ($root->hasAttribute('enforceTimeLimit')) { + $result['enforceTimeLimit'] = $this->getBoolean( + (string) $root->getAttribute('enforceTimeLimit'), + false + ); + } + + if ($root->hasAttribute('ignoreDeprecatedCodeUnitsFromCodeCoverage')) { + $result['ignoreDeprecatedCodeUnitsFromCodeCoverage'] = $this->getBoolean( + (string) $root->getAttribute('ignoreDeprecatedCodeUnitsFromCodeCoverage'), + false + ); + } + + if ($root->hasAttribute('timeoutForSmallTests')) { + $result['timeoutForSmallTests'] = $this->getInteger( + (string) $root->getAttribute('timeoutForSmallTests'), + 1 + ); + } + + if ($root->hasAttribute('timeoutForMediumTests')) { + $result['timeoutForMediumTests'] = $this->getInteger( + (string) $root->getAttribute('timeoutForMediumTests'), + 10 + ); + } + + if ($root->hasAttribute('timeoutForLargeTests')) { + $result['timeoutForLargeTests'] = $this->getInteger( + (string) $root->getAttribute('timeoutForLargeTests'), + 60 + ); + } + + if ($root->hasAttribute('reverseDefectList')) { + $result['reverseDefectList'] = $this->getBoolean( + (string) $root->getAttribute('reverseDefectList'), + false + ); + } + + if ($root->hasAttribute('verbose')) { + $result['verbose'] = $this->getBoolean( + (string) $root->getAttribute('verbose'), + false + ); + } + + if ($root->hasAttribute('registerMockObjectsFromTestArgumentsRecursively')) { + $result['registerMockObjectsFromTestArgumentsRecursively'] = $this->getBoolean( + (string) $root->getAttribute('registerMockObjectsFromTestArgumentsRecursively'), + false + ); + } + + if ($root->hasAttribute('extensionsDirectory')) { + $result['extensionsDirectory'] = $this->toAbsolutePath( + (string) $root->getAttribute( + 'extensionsDirectory' + ) + ); + } + + if ($root->hasAttribute('cacheResult')) { + $result['cacheResult'] = $this->getBoolean( + (string) $root->getAttribute('cacheResult'), + false + ); + } + + if ($root->hasAttribute('cacheResultFile')) { + $result['cacheResultFile'] = $this->toAbsolutePath( + (string) $root->getAttribute('cacheResultFile') + ); + } + + if ($root->hasAttribute('executionOrder')) { + foreach (\explode(',', $root->getAttribute('executionOrder')) as $order) { + switch ($order) { + case 'default': + $result['executionOrder'] = TestSuiteSorter::ORDER_DEFAULT; + $result['executionOrderDefects'] = TestSuiteSorter::ORDER_DEFAULT; + $result['resolveDependencies'] = false; + + break; + case 'reverse': + $result['executionOrder'] = TestSuiteSorter::ORDER_REVERSED; + + break; + case 'random': + $result['executionOrder'] = TestSuiteSorter::ORDER_RANDOMIZED; + + break; + case 'defects': + $result['executionOrderDefects'] = TestSuiteSorter::ORDER_DEFECTS_FIRST; + + break; + case 'depends': + $result['resolveDependencies'] = true; + + break; + } + } + } + + if ($root->hasAttribute('resolveDependencies')) { + $result['resolveDependencies'] = $this->getBoolean( + (string) $root->getAttribute('resolveDependencies'), + false + ); + } + + return $result; + } + + /** + * Returns the test suite configuration. + * + * @throws Exception + */ + public function getTestSuiteConfiguration(string $testSuiteFilter = ''): TestSuite + { + $testSuiteNodes = $this->xpath->query('testsuites/testsuite'); + + if ($testSuiteNodes->length === 0) { + $testSuiteNodes = $this->xpath->query('testsuite'); + } + + if ($testSuiteNodes->length === 1) { + return $this->getTestSuite($testSuiteNodes->item(0), $testSuiteFilter); + } + + $suite = new TestSuite; + + foreach ($testSuiteNodes as $testSuiteNode) { + $suite->addTestSuite( + $this->getTestSuite($testSuiteNode, $testSuiteFilter) + ); + } + + return $suite; + } + + /** + * Returns the test suite names from the configuration. + */ + public function getTestSuiteNames(): array + { + $names = []; + + foreach ($this->xpath->query('*/testsuite') as $node) { + /* @var DOMElement $node */ + $names[] = $node->getAttribute('name'); + } + + return $names; + } + + private function validateConfigurationAgainstSchema(): void + { + $original = \libxml_use_internal_errors(true); + $xsdFilename = __DIR__ . '/../../phpunit.xsd'; + + if (\defined('__PHPUNIT_PHAR_ROOT__')) { + $xsdFilename = __PHPUNIT_PHAR_ROOT__ . '/phpunit.xsd'; + } + + $this->document->schemaValidate($xsdFilename); + $this->errors = \libxml_get_errors(); + \libxml_clear_errors(); + \libxml_use_internal_errors($original); + } + + /** + * Collects and returns the configuration arguments from the PHPUnit + * XML configuration + */ + private function getConfigurationArguments(\DOMNodeList $nodes): array + { + $arguments = []; + + if ($nodes->length === 0) { + return $arguments; + } + + foreach ($nodes as $node) { + if (!$node instanceof DOMElement) { + continue; + } + + if ($node->tagName !== 'arguments') { + continue; + } + + foreach ($node->childNodes as $argument) { + if (!$argument instanceof DOMElement) { + continue; + } + + if ($argument->tagName === 'file' || $argument->tagName === 'directory') { + $arguments[] = $this->toAbsolutePath((string) $argument->textContent); + } else { + $arguments[] = Xml::xmlToVariable($argument); + } + } + } + + return $arguments; + } + + /** + * @throws \PHPUnit\Framework\Exception + */ + private function getTestSuite(DOMElement $testSuiteNode, string $testSuiteFilter = ''): TestSuite + { + if ($testSuiteNode->hasAttribute('name')) { + $suite = new TestSuite( + (string) $testSuiteNode->getAttribute('name') + ); + } else { + $suite = new TestSuite; + } + + $exclude = []; + + foreach ($testSuiteNode->getElementsByTagName('exclude') as $excludeNode) { + $excludeFile = (string) $excludeNode->textContent; + + if ($excludeFile) { + $exclude[] = $this->toAbsolutePath($excludeFile); + } + } + + $fileIteratorFacade = new FileIteratorFacade; + $testSuiteFilter = $testSuiteFilter ? \explode(',', $testSuiteFilter) : []; + + foreach ($testSuiteNode->getElementsByTagName('directory') as $directoryNode) { + /** @var DOMElement $directoryNode */ + if (!empty($testSuiteFilter) && !\in_array($directoryNode->parentNode->getAttribute('name'), $testSuiteFilter)) { + continue; + } + + $directory = (string) $directoryNode->textContent; + + if (empty($directory)) { + continue; + } + + $prefix = ''; + $suffix = 'Test.php'; + + if (!$this->satisfiesPhpVersion($directoryNode)) { + continue; + } + + if ($directoryNode->hasAttribute('prefix')) { + $prefix = (string) $directoryNode->getAttribute('prefix'); + } + + if ($directoryNode->hasAttribute('suffix')) { + $suffix = (string) $directoryNode->getAttribute('suffix'); + } + + $files = $fileIteratorFacade->getFilesAsArray( + $this->toAbsolutePath($directory), + $suffix, + $prefix, + $exclude + ); + + $suite->addTestFiles($files); + } + + foreach ($testSuiteNode->getElementsByTagName('file') as $fileNode) { + /** @var DOMElement $fileNode */ + if (!empty($testSuiteFilter) && !\in_array($fileNode->parentNode->getAttribute('name'), $testSuiteFilter)) { + continue; + } + + $file = (string) $fileNode->textContent; + + if (empty($file)) { + continue; + } + + $file = $fileIteratorFacade->getFilesAsArray( + $this->toAbsolutePath($file) + ); + + if (!isset($file[0])) { + continue; + } + + $file = $file[0]; + + if (!$this->satisfiesPhpVersion($fileNode)) { + continue; + } + + $suite->addTestFile($file); + } + + return $suite; + } + + private function satisfiesPhpVersion(DOMElement $node): bool + { + $phpVersion = \PHP_VERSION; + $phpVersionOperator = '>='; + + if ($node->hasAttribute('phpVersion')) { + $phpVersion = (string) $node->getAttribute('phpVersion'); + } + + if ($node->hasAttribute('phpVersionOperator')) { + $phpVersionOperator = (string) $node->getAttribute('phpVersionOperator'); + } + + return \version_compare(\PHP_VERSION, $phpVersion, $phpVersionOperator); + } + + /** + * if $value is 'false' or 'true', this returns the value that $value represents. + * Otherwise, returns $default, which may be a string in rare cases. + * See PHPUnit\Util\ConfigurationTest::testPHPConfigurationIsReadCorrectly + * + * @param bool|string $default + * + * @return bool|string + */ + private function getBoolean(string $value, $default) + { + if (\strtolower($value) === 'false') { + return false; + } + + if (\strtolower($value) === 'true') { + return true; + } + + return $default; + } + + private function getInteger(string $value, int $default): int + { + if (\is_numeric($value)) { + return (int) $value; + } + + return $default; + } + + private function readFilterDirectories(string $query): array + { + $directories = []; + + foreach ($this->xpath->query($query) as $directoryNode) { + /** @var DOMElement $directoryNode */ + $directoryPath = (string) $directoryNode->textContent; + + if (!$directoryPath) { + continue; + } + + $prefix = ''; + $suffix = '.php'; + $group = 'DEFAULT'; + + if ($directoryNode->hasAttribute('prefix')) { + $prefix = (string) $directoryNode->getAttribute('prefix'); + } + + if ($directoryNode->hasAttribute('suffix')) { + $suffix = (string) $directoryNode->getAttribute('suffix'); + } + + if ($directoryNode->hasAttribute('group')) { + $group = (string) $directoryNode->getAttribute('group'); + } + + $directories[] = [ + 'path' => $this->toAbsolutePath($directoryPath), + 'prefix' => $prefix, + 'suffix' => $suffix, + 'group' => $group, + ]; + } + + return $directories; + } + + /** + * @return string[] + */ + private function readFilterFiles(string $query): array + { + $files = []; + + foreach ($this->xpath->query($query) as $file) { + $filePath = (string) $file->textContent; + + if ($filePath) { + $files[] = $this->toAbsolutePath($filePath); + } + } + + return $files; + } + + private function toAbsolutePath(string $path, bool $useIncludePath = false): string + { + $path = \trim($path); + + if ($path[0] === '/') { + return $path; + } + + // Matches the following on Windows: + // - \\NetworkComputer\Path + // - \\.\D: + // - \\.\c: + // - C:\Windows + // - C:\windows + // - C:/windows + // - c:/windows + if (\defined('PHP_WINDOWS_VERSION_BUILD') && + ($path[0] === '\\' || (\strlen($path) >= 3 && \preg_match('#^[A-Z]\:[/\\\]#i', \substr($path, 0, 3))))) { + return $path; + } + + if (\strpos($path, '://') !== false) { + return $path; + } + + $file = \dirname($this->filename) . \DIRECTORY_SEPARATOR . $path; + + if ($useIncludePath && !\file_exists($file)) { + $includePathFile = \stream_resolve_include_path($path); + + if ($includePathFile) { + $file = $includePathFile; + } + } + + return $file; + } + + private function parseGroupConfiguration(string $root): array + { + $groups = [ + 'include' => [], + 'exclude' => [], + ]; + + foreach ($this->xpath->query($root . '/include/group') as $group) { + $groups['include'][] = (string) $group->textContent; + } + + foreach ($this->xpath->query($root . '/exclude/group') as $group) { + $groups['exclude'][] = (string) $group->textContent; + } + + return $groups; + } +} diff --git a/vendor/phpunit/phpunit/src/Util/ConfigurationGenerator.php b/vendor/phpunit/phpunit/src/Util/ConfigurationGenerator.php new file mode 100644 index 00000000..30bb128f --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/ConfigurationGenerator.php @@ -0,0 +1,60 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +final class ConfigurationGenerator +{ + /** + * @var string + */ + private const TEMPLATE = << + + + + {tests_directory} + + + + + + {src_directory} + + + + +EOT; + + public function generateDefaultConfiguration(string $phpunitVersion, string $bootstrapScript, string $testsDirectory, string $srcDirectory): string + { + return \str_replace( + [ + '{phpunit_version}', + '{bootstrap_script}', + '{tests_directory}', + '{src_directory}', + ], + [ + $phpunitVersion, + $bootstrapScript, + $testsDirectory, + $srcDirectory, + ], + self::TEMPLATE + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Util/ErrorHandler.php b/vendor/phpunit/phpunit/src/Util/ErrorHandler.php new file mode 100644 index 00000000..e71cedb9 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/ErrorHandler.php @@ -0,0 +1,106 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +use PHPUnit\Framework\Error\Deprecated; +use PHPUnit\Framework\Error\Error; +use PHPUnit\Framework\Error\Notice; +use PHPUnit\Framework\Error\Warning; + +/** + * Error handler that converts PHP errors and warnings to exceptions. + */ +final class ErrorHandler +{ + private static $errorStack = []; + + /** + * Returns the error stack. + */ + public static function getErrorStack(): array + { + return self::$errorStack; + } + + public static function handleError(int $errorNumber, string $errorString, string $errorFile, int $errorLine): bool + { + if (!($errorNumber & \error_reporting())) { + return false; + } + + self::$errorStack[] = [$errorNumber, $errorString, $errorFile, $errorLine]; + + $trace = \debug_backtrace(); + \array_shift($trace); + + foreach ($trace as $frame) { + if ($frame['function'] === '__toString') { + return false; + } + } + + if ($errorNumber === \E_NOTICE || $errorNumber === \E_USER_NOTICE || $errorNumber === \E_STRICT) { + if (Notice::$enabled !== true) { + return false; + } + + $exception = Notice::class; + } elseif ($errorNumber === \E_WARNING || $errorNumber === \E_USER_WARNING) { + if (Warning::$enabled !== true) { + return false; + } + + $exception = Warning::class; + } elseif ($errorNumber === \E_DEPRECATED || $errorNumber === \E_USER_DEPRECATED) { + if (Deprecated::$enabled !== true) { + return false; + } + + $exception = Deprecated::class; + } else { + $exception = Error::class; + } + + throw new $exception($errorString, $errorNumber, $errorFile, $errorLine); + } + + /** + * Registers an error handler and returns a function that will restore + * the previous handler when invoked + * + * @param int $severity PHP predefined error constant + * + * @throws \Exception if event of specified severity is emitted + */ + public static function handleErrorOnce($severity = \E_WARNING): callable + { + $terminator = function () { + static $expired = false; + + if (!$expired) { + $expired = true; + + return \restore_error_handler(); + } + }; + + \set_error_handler( + function ($errorNumber, $errorString) use ($severity) { + if ($errorNumber === $severity) { + return; + } + + return false; + } + ); + + return $terminator; + } +} diff --git a/vendor/phpunit/phpunit/src/Util/FileLoader.php b/vendor/phpunit/phpunit/src/Util/FileLoader.php new file mode 100644 index 00000000..cad4bdc5 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/FileLoader.php @@ -0,0 +1,68 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +use PHPUnit\Framework\Exception; + +/** + * Utility methods to load PHP sourcefiles. + */ +final class FileLoader +{ + /** + * Checks if a PHP sourcecode file is readable. The sourcecode file is loaded through the load() method. + * + * As a fallback, PHP looks in the directory of the file executing the stream_resolve_include_path function. + * We do not want to load the Test.php file here, so skip it if it found that. + * PHP prioritizes the include_path setting, so if the current directory is in there, it will first look in the + * current working directory. + * + * @throws Exception + */ + public static function checkAndLoad(string $filename): string + { + $includePathFilename = \stream_resolve_include_path($filename); + $localFile = __DIR__ . \DIRECTORY_SEPARATOR . $filename; + + /** + * @see https://github.com/sebastianbergmann/phpunit/pull/2751 + */ + $isReadable = @\fopen($includePathFilename, 'r') !== false; + + if (!$includePathFilename || !$isReadable || $includePathFilename === $localFile) { + throw new Exception( + \sprintf('Cannot open file "%s".' . "\n", $filename) + ); + } + + self::load($includePathFilename); + + return $includePathFilename; + } + + /** + * Loads a PHP sourcefile. + */ + public static function load(string $filename): void + { + $oldVariableNames = \array_keys(\get_defined_vars()); + + include_once $filename; + + $newVariables = \get_defined_vars(); + $newVariableNames = \array_diff(\array_keys($newVariables), $oldVariableNames); + + foreach ($newVariableNames as $variableName) { + if ($variableName !== 'oldVariableNames') { + $GLOBALS[$variableName] = $newVariables[$variableName]; + } + } + } +} diff --git a/vendor/phpunit/phpunit/src/Util/Filesystem.php b/vendor/phpunit/phpunit/src/Util/Filesystem.php new file mode 100644 index 00000000..068a3b0c --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/Filesystem.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +/** + * Filesystem helpers. + */ +final class Filesystem +{ + /** + * Maps class names to source file names: + * - PEAR CS: Foo_Bar_Baz -> Foo/Bar/Baz.php + * - Namespace: Foo\Bar\Baz -> Foo/Bar/Baz.php + */ + public static function classNameToFilename(string $className): string + { + return \str_replace( + ['_', '\\'], + \DIRECTORY_SEPARATOR, + $className + ) . '.php'; + } + + public static function createDirectory(string $directory): bool + { + return !(!\is_dir($directory) && !@\mkdir($directory, 0777, true) && !\is_dir($directory)); + } +} diff --git a/vendor/phpunit/phpunit/src/Util/Filter.php b/vendor/phpunit/phpunit/src/Util/Filter.php new file mode 100644 index 00000000..e57055ba --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/Filter.php @@ -0,0 +1,83 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +use PHPUnit\Framework\Exception; +use PHPUnit\Framework\SyntheticError; + +final class Filter +{ + public static function getFilteredStacktrace(\Throwable $t): string + { + $prefix = false; + $script = \realpath($GLOBALS['_SERVER']['SCRIPT_NAME']); + + if (\defined('__PHPUNIT_PHAR_ROOT__')) { + $prefix = __PHPUNIT_PHAR_ROOT__; + } + + $filteredStacktrace = ''; + + if ($t instanceof SyntheticError) { + $eTrace = $t->getSyntheticTrace(); + $eFile = $t->getSyntheticFile(); + $eLine = $t->getSyntheticLine(); + } elseif ($t instanceof Exception) { + $eTrace = $t->getSerializableTrace(); + $eFile = $t->getFile(); + $eLine = $t->getLine(); + } else { + if ($t->getPrevious()) { + $t = $t->getPrevious(); + } + + $eTrace = $t->getTrace(); + $eFile = $t->getFile(); + $eLine = $t->getLine(); + } + + if (!self::frameExists($eTrace, $eFile, $eLine)) { + \array_unshift( + $eTrace, + ['file' => $eFile, 'line' => $eLine] + ); + } + + $blacklist = new Blacklist; + + foreach ($eTrace as $frame) { + if (isset($frame['file']) && \is_file($frame['file']) && + (empty($GLOBALS['__PHPUNIT_ISOLATION_BLACKLIST']) || !\in_array($frame['file'], $GLOBALS['__PHPUNIT_ISOLATION_BLACKLIST'])) && + !$blacklist->isBlacklisted($frame['file']) && + ($prefix === false || \strpos($frame['file'], $prefix) !== 0) && + $frame['file'] !== $script) { + $filteredStacktrace .= \sprintf( + "%s:%s\n", + $frame['file'], + $frame['line'] ?? '?' + ); + } + } + + return $filteredStacktrace; + } + + private static function frameExists(array $trace, string $file, int $line): bool + { + foreach ($trace as $frame) { + if (isset($frame['file']) && $frame['file'] === $file && + isset($frame['line']) && $frame['line'] === $line) { + return true; + } + } + + return false; + } +} diff --git a/vendor/phpunit/phpunit/src/Util/Getopt.php b/vendor/phpunit/phpunit/src/Util/Getopt.php new file mode 100644 index 00000000..71c9fd55 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/Getopt.php @@ -0,0 +1,183 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +use PHPUnit\Framework\Exception; + +/** + * Command-line options parsing class. + */ +final class Getopt +{ + /** + * @throws Exception + */ + public static function getopt(array $args, string $short_options, array $long_options = null): array + { + if (empty($args)) { + return [[], []]; + } + + $opts = []; + $non_opts = []; + + if ($long_options) { + \sort($long_options); + } + + if (isset($args[0][0]) && $args[0][0] !== '-') { + \array_shift($args); + } + + \reset($args); + + $args = \array_map('trim', $args); + + /* @noinspection ComparisonOperandsOrderInspection */ + while (false !== $arg = \current($args)) { + $i = \key($args); + \next($args); + + if ($arg === '') { + continue; + } + + if ($arg === '--') { + $non_opts = \array_merge($non_opts, \array_slice($args, $i + 1)); + + break; + } + + if ($arg[0] !== '-' || (\strlen($arg) > 1 && $arg[1] === '-' && !$long_options)) { + $non_opts[] = $args[$i]; + + continue; + } + + if (\strlen($arg) > 1 && $arg[1] === '-') { + self::parseLongOption( + \substr($arg, 2), + $long_options, + $opts, + $args + ); + } else { + self::parseShortOption( + \substr($arg, 1), + $short_options, + $opts, + $args + ); + } + } + + return [$opts, $non_opts]; + } + + /** + * @throws Exception + */ + private static function parseShortOption(string $arg, string $short_options, array &$opts, array &$args): void + { + $argLen = \strlen($arg); + + for ($i = 0; $i < $argLen; $i++) { + $opt = $arg[$i]; + $opt_arg = null; + + if ($arg[$i] === ':' || ($spec = \strstr($short_options, $opt)) === false) { + throw new Exception( + "unrecognized option -- $opt" + ); + } + + if (\strlen($spec) > 1 && $spec[1] === ':') { + if ($i + 1 < $argLen) { + $opts[] = [$opt, \substr($arg, $i + 1)]; + + break; + } + + if (!(\strlen($spec) > 2 && $spec[2] === ':')) { + /* @noinspection ComparisonOperandsOrderInspection */ + if (false === $opt_arg = \current($args)) { + throw new Exception( + "option requires an argument -- $opt" + ); + } + + \next($args); + } + } + + $opts[] = [$opt, $opt_arg]; + } + } + + /** + * @throws Exception + */ + private static function parseLongOption(string $arg, array $long_options, array &$opts, array &$args): void + { + $count = \count($long_options); + $list = \explode('=', $arg); + $opt = $list[0]; + $opt_arg = null; + + if (\count($list) > 1) { + $opt_arg = $list[1]; + } + + $opt_len = \strlen($opt); + + for ($i = 0; $i < $count; $i++) { + $long_opt = $long_options[$i]; + $opt_start = \substr($long_opt, 0, $opt_len); + + if ($opt_start !== $opt) { + continue; + } + + $opt_rest = \substr($long_opt, $opt_len); + + if ($opt_rest !== '' && $i + 1 < $count && $opt[0] !== '=' && + \strpos($long_options[$i + 1], $opt) === 0) { + throw new Exception( + "option --$opt is ambiguous" + ); + } + + if (\substr($long_opt, -1) === '=') { + /* @noinspection StrlenInEmptyStringCheckContextInspection */ + if (\substr($long_opt, -2) !== '==' && !\strlen($opt_arg)) { + /* @noinspection ComparisonOperandsOrderInspection */ + if (false === $opt_arg = \current($args)) { + throw new Exception( + "option --$opt requires an argument" + ); + } + + \next($args); + } + } elseif ($opt_arg) { + throw new Exception( + "option --$opt doesn't allow an argument" + ); + } + + $full_option = '--' . \preg_replace('/={1,2}$/', '', $long_opt); + $opts[] = [$full_option, $opt_arg]; + + return; + } + + throw new Exception("unrecognized option --$opt"); + } +} diff --git a/vendor/phpunit/phpunit/src/Util/GlobalState.php b/vendor/phpunit/phpunit/src/Util/GlobalState.php new file mode 100644 index 00000000..69c151a8 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/GlobalState.php @@ -0,0 +1,172 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +use Closure; + +final class GlobalState +{ + /** + * @var string[] + */ + private const SUPER_GLOBAL_ARRAYS = [ + '_ENV', + '_POST', + '_GET', + '_COOKIE', + '_SERVER', + '_FILES', + '_REQUEST', + ]; + + public static function getIncludedFilesAsString(): string + { + return static::processIncludedFilesAsString(\get_included_files()); + } + + /** + * @param string[] $files + */ + public static function processIncludedFilesAsString(array $files): string + { + $blacklist = new Blacklist; + $prefix = false; + $result = ''; + + if (\defined('__PHPUNIT_PHAR__')) { + $prefix = 'phar://' . __PHPUNIT_PHAR__ . '/'; + } + + for ($i = \count($files) - 1; $i > 0; $i--) { + $file = $files[$i]; + + if (!empty($GLOBALS['__PHPUNIT_ISOLATION_BLACKLIST']) && + \in_array($file, $GLOBALS['__PHPUNIT_ISOLATION_BLACKLIST'])) { + continue; + } + + if ($prefix !== false && \strpos($file, $prefix) === 0) { + continue; + } + + // Skip virtual file system protocols + if (\preg_match('/^(vfs|phpvfs[a-z0-9]+):/', $file)) { + continue; + } + + if (!$blacklist->isBlacklisted($file) && \is_file($file)) { + $result = 'require_once \'' . $file . "';\n" . $result; + } + } + + return $result; + } + + public static function getIniSettingsAsString(): string + { + $result = ''; + $iniSettings = \ini_get_all(null, false); + + foreach ($iniSettings as $key => $value) { + $result .= \sprintf( + '@ini_set(%s, %s);' . "\n", + self::exportVariable($key), + self::exportVariable($value) + ); + } + + return $result; + } + + public static function getConstantsAsString(): string + { + $constants = \get_defined_constants(true); + $result = ''; + + if (isset($constants['user'])) { + foreach ($constants['user'] as $name => $value) { + $result .= \sprintf( + 'if (!defined(\'%s\')) define(\'%s\', %s);' . "\n", + $name, + $name, + self::exportVariable($value) + ); + } + } + + return $result; + } + + public static function getGlobalsAsString(): string + { + $result = ''; + + foreach (self::SUPER_GLOBAL_ARRAYS as $superGlobalArray) { + if (isset($GLOBALS[$superGlobalArray]) && \is_array($GLOBALS[$superGlobalArray])) { + foreach (\array_keys($GLOBALS[$superGlobalArray]) as $key) { + if ($GLOBALS[$superGlobalArray][$key] instanceof Closure) { + continue; + } + + $result .= \sprintf( + '$GLOBALS[\'%s\'][\'%s\'] = %s;' . "\n", + $superGlobalArray, + $key, + self::exportVariable($GLOBALS[$superGlobalArray][$key]) + ); + } + } + } + + $blacklist = self::SUPER_GLOBAL_ARRAYS; + $blacklist[] = 'GLOBALS'; + + foreach (\array_keys($GLOBALS) as $key) { + if (!$GLOBALS[$key] instanceof Closure && !\in_array($key, $blacklist, true)) { + $result .= \sprintf( + '$GLOBALS[\'%s\'] = %s;' . "\n", + $key, + self::exportVariable($GLOBALS[$key]) + ); + } + } + + return $result; + } + + private static function exportVariable($variable): string + { + if (\is_scalar($variable) || $variable === null || + (\is_array($variable) && self::arrayOnlyContainsScalars($variable))) { + return \var_export($variable, true); + } + + return 'unserialize(' . \var_export(\serialize($variable), true) . ')'; + } + + private static function arrayOnlyContainsScalars(array $array): bool + { + $result = true; + + foreach ($array as $element) { + if (\is_array($element)) { + $result = self::arrayOnlyContainsScalars($element); + } elseif (!\is_scalar($element) && $element !== null) { + $result = false; + } + + if ($result === false) { + break; + } + } + + return $result; + } +} diff --git a/vendor/phpunit/phpunit/src/Util/InvalidArgumentHelper.php b/vendor/phpunit/phpunit/src/Util/InvalidArgumentHelper.php new file mode 100644 index 00000000..1c4ef507 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/InvalidArgumentHelper.php @@ -0,0 +1,35 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +use PHPUnit\Framework\Exception; + +/** + * Factory for PHPUnit\Framework\Exception objects that are used to describe + * invalid arguments passed to a function or method. + */ +final class InvalidArgumentHelper +{ + public static function factory(int $argument, string $type, $value = null): Exception + { + $stack = \debug_backtrace(); + + return new Exception( + \sprintf( + 'Argument #%d%sof %s::%s() must be a %s', + $argument, + $value !== null ? ' (' . \gettype($value) . '#' . $value . ')' : ' (No Value) ', + $stack[1]['class'], + $stack[1]['function'], + $type + ) + ); + } +} diff --git a/vendor/phpunit/phpunit/src/Util/Json.php b/vendor/phpunit/phpunit/src/Util/Json.php new file mode 100644 index 00000000..c8811911 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/Json.php @@ -0,0 +1,83 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +use PHPUnit\Framework\Exception; + +final class Json +{ + /** + * Prettify json string + * + * @throws \PHPUnit\Framework\Exception + */ + public static function prettify(string $json): string + { + $decodedJson = \json_decode($json, true); + + if (\json_last_error()) { + throw new Exception( + 'Cannot prettify invalid json' + ); + } + + return \json_encode($decodedJson, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES); + } + + /* + * To allow comparison of JSON strings, first process them into a consistent + * format so that they can be compared as strings. + * @return array ($error, $canonicalized_json) The $error parameter is used + * to indicate an error decoding the json. This is used to avoid ambiguity + * with JSON strings consisting entirely of 'null' or 'false'. + */ + public static function canonicalize(string $json): array + { + $decodedJson = \json_decode($json); + + if (\json_last_error()) { + return [true, null]; + } + + self::recursiveSort($decodedJson); + + $reencodedJson = \json_encode($decodedJson); + + return [false, $reencodedJson]; + } + + /* + * JSON object keys are unordered while PHP array keys are ordered. + * Sort all array keys to ensure both the expected and actual values have + * their keys in the same order. + */ + private static function recursiveSort(&$json): void + { + if (\is_array($json) === false) { + // If the object is not empty, change it to an associative array + // so we can sort the keys (and we will still re-encode it + // correctly, since PHP encodes associative arrays as JSON objects.) + // But EMPTY objects MUST remain empty objects. (Otherwise we will + // re-encode it as a JSON array rather than a JSON object.) + // See #2919. + if (\is_object($json) && \count((array) $json) > 0) { + $json = (array) $json; + } else { + return; + } + } + + \ksort($json); + + foreach ($json as $key => &$value) { + self::recursiveSort($value); + } + } +} diff --git a/vendor/phpunit/phpunit/src/Util/Log/JUnit.php b/vendor/phpunit/phpunit/src/Util/Log/JUnit.php new file mode 100644 index 00000000..9320c92e --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/Log/JUnit.php @@ -0,0 +1,432 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util\Log; + +use DOMDocument; +use DOMElement; +use PHPUnit\Framework\AssertionFailedError; +use PHPUnit\Framework\ExceptionWrapper; +use PHPUnit\Framework\SelfDescribing; +use PHPUnit\Framework\Test; +use PHPUnit\Framework\TestFailure; +use PHPUnit\Framework\TestListener; +use PHPUnit\Framework\TestSuite; +use PHPUnit\Framework\Warning; +use PHPUnit\Util\Filter; +use PHPUnit\Util\Printer; +use PHPUnit\Util\Xml; +use ReflectionClass; +use ReflectionException; + +/** + * A TestListener that generates a logfile of the test execution in XML markup. + * + * The XML markup used is the same as the one that is used by the JUnit Ant task. + */ +class JUnit extends Printer implements TestListener +{ + /** + * @var DOMDocument + */ + protected $document; + + /** + * @var DOMElement + */ + protected $root; + + /** + * @var bool + */ + protected $reportRiskyTests = false; + + /** + * @var bool + */ + protected $writeDocument = true; + + /** + * @var DOMElement[] + */ + protected $testSuites = []; + + /** + * @var int[] + */ + protected $testSuiteTests = [0]; + + /** + * @var int[] + */ + protected $testSuiteAssertions = [0]; + + /** + * @var int[] + */ + protected $testSuiteErrors = [0]; + + /** + * @var int[] + */ + protected $testSuiteFailures = [0]; + + /** + * @var int[] + */ + protected $testSuiteSkipped = [0]; + + /** + * @var int[] + */ + protected $testSuiteTimes = [0]; + + /** + * @var int + */ + protected $testSuiteLevel = 0; + + /** + * @var DOMElement + */ + protected $currentTestCase; + + /** + * Constructor. + * + * @param null|mixed $out + * + * @throws \PHPUnit\Framework\Exception + */ + public function __construct($out = null, bool $reportRiskyTests = false) + { + $this->document = new DOMDocument('1.0', 'UTF-8'); + $this->document->formatOutput = true; + + $this->root = $this->document->createElement('testsuites'); + $this->document->appendChild($this->root); + + parent::__construct($out); + + $this->reportRiskyTests = $reportRiskyTests; + } + + /** + * Flush buffer and close output. + */ + public function flush(): void + { + if ($this->writeDocument === true) { + $this->write($this->getXML()); + } + + parent::flush(); + } + + /** + * An error occurred. + * + * @throws \InvalidArgumentException + */ + public function addError(Test $test, \Throwable $t, float $time): void + { + $this->doAddFault($test, $t, $time, 'error'); + $this->testSuiteErrors[$this->testSuiteLevel]++; + } + + /** + * A warning occurred. + * + * @throws \InvalidArgumentException + */ + public function addWarning(Test $test, Warning $e, float $time): void + { + $this->doAddFault($test, $e, $time, 'warning'); + $this->testSuiteFailures[$this->testSuiteLevel]++; + } + + /** + * A failure occurred. + * + * @throws \InvalidArgumentException + */ + public function addFailure(Test $test, AssertionFailedError $e, float $time): void + { + $this->doAddFault($test, $e, $time, 'failure'); + $this->testSuiteFailures[$this->testSuiteLevel]++; + } + + /** + * Incomplete test. + */ + public function addIncompleteTest(Test $test, \Throwable $t, float $time): void + { + $this->doAddSkipped($test); + } + + /** + * Risky test. + */ + public function addRiskyTest(Test $test, \Throwable $t, float $time): void + { + if (!$this->reportRiskyTests || $this->currentTestCase === null) { + return; + } + + $error = $this->document->createElement( + 'error', + Xml::prepareString( + "Risky Test\n" . + Filter::getFilteredStacktrace($t) + ) + ); + + $error->setAttribute('type', \get_class($t)); + + $this->currentTestCase->appendChild($error); + + $this->testSuiteErrors[$this->testSuiteLevel]++; + } + + /** + * Skipped test. + */ + public function addSkippedTest(Test $test, \Throwable $t, float $time): void + { + $this->doAddSkipped($test); + } + + /** + * A testsuite started. + */ + public function startTestSuite(TestSuite $suite): void + { + $testSuite = $this->document->createElement('testsuite'); + $testSuite->setAttribute('name', $suite->getName()); + + if (\class_exists($suite->getName(), false)) { + try { + $class = new ReflectionClass($suite->getName()); + + $testSuite->setAttribute('file', $class->getFileName()); + } catch (ReflectionException $e) { + } + } + + if ($this->testSuiteLevel > 0) { + $this->testSuites[$this->testSuiteLevel]->appendChild($testSuite); + } else { + $this->root->appendChild($testSuite); + } + + $this->testSuiteLevel++; + $this->testSuites[$this->testSuiteLevel] = $testSuite; + $this->testSuiteTests[$this->testSuiteLevel] = 0; + $this->testSuiteAssertions[$this->testSuiteLevel] = 0; + $this->testSuiteErrors[$this->testSuiteLevel] = 0; + $this->testSuiteFailures[$this->testSuiteLevel] = 0; + $this->testSuiteSkipped[$this->testSuiteLevel] = 0; + $this->testSuiteTimes[$this->testSuiteLevel] = 0; + } + + /** + * A testsuite ended. + */ + public function endTestSuite(TestSuite $suite): void + { + $this->testSuites[$this->testSuiteLevel]->setAttribute( + 'tests', + $this->testSuiteTests[$this->testSuiteLevel] + ); + + $this->testSuites[$this->testSuiteLevel]->setAttribute( + 'assertions', + $this->testSuiteAssertions[$this->testSuiteLevel] + ); + + $this->testSuites[$this->testSuiteLevel]->setAttribute( + 'errors', + $this->testSuiteErrors[$this->testSuiteLevel] + ); + + $this->testSuites[$this->testSuiteLevel]->setAttribute( + 'failures', + $this->testSuiteFailures[$this->testSuiteLevel] + ); + + $this->testSuites[$this->testSuiteLevel]->setAttribute( + 'skipped', + $this->testSuiteSkipped[$this->testSuiteLevel] + ); + + $this->testSuites[$this->testSuiteLevel]->setAttribute( + 'time', + \sprintf('%F', $this->testSuiteTimes[$this->testSuiteLevel]) + ); + + if ($this->testSuiteLevel > 1) { + $this->testSuiteTests[$this->testSuiteLevel - 1] += $this->testSuiteTests[$this->testSuiteLevel]; + $this->testSuiteAssertions[$this->testSuiteLevel - 1] += $this->testSuiteAssertions[$this->testSuiteLevel]; + $this->testSuiteErrors[$this->testSuiteLevel - 1] += $this->testSuiteErrors[$this->testSuiteLevel]; + $this->testSuiteFailures[$this->testSuiteLevel - 1] += $this->testSuiteFailures[$this->testSuiteLevel]; + $this->testSuiteSkipped[$this->testSuiteLevel - 1] += $this->testSuiteSkipped[$this->testSuiteLevel]; + $this->testSuiteTimes[$this->testSuiteLevel - 1] += $this->testSuiteTimes[$this->testSuiteLevel]; + } + + $this->testSuiteLevel--; + } + + /** + * A test started. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + * @throws ReflectionException + */ + public function startTest(Test $test): void + { + $usesDataprovider = false; + + if (\method_exists($test, 'usesDataProvider')) { + $usesDataprovider = $test->usesDataProvider(); + } + + $testCase = $this->document->createElement('testcase'); + $testCase->setAttribute('name', $test->getName()); + + $class = new ReflectionClass($test); + $methodName = $test->getName(!$usesDataprovider); + + if ($class->hasMethod($methodName)) { + $method = $class->getMethod($methodName); + + $testCase->setAttribute('class', $class->getName()); + $testCase->setAttribute('classname', \str_replace('\\', '.', $class->getName())); + $testCase->setAttribute('file', $class->getFileName()); + $testCase->setAttribute('line', $method->getStartLine()); + } + + $this->currentTestCase = $testCase; + } + + /** + * A test ended. + */ + public function endTest(Test $test, float $time): void + { + $numAssertions = 0; + + if (\method_exists($test, 'getNumAssertions')) { + $numAssertions = $test->getNumAssertions(); + } + + $this->testSuiteAssertions[$this->testSuiteLevel] += $numAssertions; + + $this->currentTestCase->setAttribute( + 'assertions', + $numAssertions + ); + + $this->currentTestCase->setAttribute( + 'time', + \sprintf('%F', $time) + ); + + $this->testSuites[$this->testSuiteLevel]->appendChild( + $this->currentTestCase + ); + + $this->testSuiteTests[$this->testSuiteLevel]++; + $this->testSuiteTimes[$this->testSuiteLevel] += $time; + + $testOutput = ''; + + if (\method_exists($test, 'hasOutput') && \method_exists($test, 'getActualOutput')) { + $testOutput = $test->hasOutput() ? $test->getActualOutput() : ''; + } + + if (!empty($testOutput)) { + $systemOut = $this->document->createElement( + 'system-out', + Xml::prepareString($testOutput) + ); + + $this->currentTestCase->appendChild($systemOut); + } + + $this->currentTestCase = null; + } + + /** + * Returns the XML as a string. + */ + public function getXML(): string + { + return $this->document->saveXML(); + } + + /** + * Enables or disables the writing of the document + * in flush(). + * + * This is a "hack" needed for the integration of + * PHPUnit with Phing. + */ + public function setWriteDocument(/*bool*/ $flag): void + { + if (\is_bool($flag)) { + $this->writeDocument = $flag; + } + } + + /** + * Method which generalizes addError() and addFailure() + * + * @throws \InvalidArgumentException + */ + private function doAddFault(Test $test, \Throwable $t, float $time, $type): void + { + if ($this->currentTestCase === null) { + return; + } + + if ($test instanceof SelfDescribing) { + $buffer = $test->toString() . "\n"; + } else { + $buffer = ''; + } + + $buffer .= TestFailure::exceptionToString($t) . "\n" . + Filter::getFilteredStacktrace($t); + + $fault = $this->document->createElement( + $type, + Xml::prepareString($buffer) + ); + + if ($t instanceof ExceptionWrapper) { + $fault->setAttribute('type', $t->getClassName()); + } else { + $fault->setAttribute('type', \get_class($t)); + } + + $this->currentTestCase->appendChild($fault); + } + + private function doAddSkipped(Test $test): void + { + if ($this->currentTestCase === null) { + return; + } + + $skipped = $this->document->createElement('skipped'); + $this->currentTestCase->appendChild($skipped); + + $this->testSuiteSkipped[$this->testSuiteLevel]++; + } +} diff --git a/vendor/phpunit/phpunit/src/Util/Log/TeamCity.php b/vendor/phpunit/phpunit/src/Util/Log/TeamCity.php new file mode 100644 index 00000000..8958ef79 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/Log/TeamCity.php @@ -0,0 +1,391 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util\Log; + +use PHPUnit\Framework\AssertionFailedError; +use PHPUnit\Framework\ExceptionWrapper; +use PHPUnit\Framework\ExpectationFailedException; +use PHPUnit\Framework\Test; +use PHPUnit\Framework\TestCase; +use PHPUnit\Framework\TestFailure; +use PHPUnit\Framework\TestResult; +use PHPUnit\Framework\TestSuite; +use PHPUnit\Framework\Warning; +use PHPUnit\TextUI\ResultPrinter; +use PHPUnit\Util\Filter; +use ReflectionClass; +use SebastianBergmann\Comparator\ComparisonFailure; + +/** + * A TestListener that generates a logfile of the test execution using the + * TeamCity format (for use with PhpStorm, for instance). + */ +class TeamCity extends ResultPrinter +{ + /** + * @var bool + */ + private $isSummaryTestCountPrinted = false; + + /** + * @var string + */ + private $startedTestName; + + /** + * @var false|int + */ + private $flowId; + + public function printResult(TestResult $result): void + { + $this->printHeader(); + $this->printFooter($result); + } + + /** + * An error occurred. + * + * @throws \InvalidArgumentException + */ + public function addError(Test $test, \Throwable $t, float $time): void + { + $this->printEvent( + 'testFailed', + [ + 'name' => $test->getName(), + 'message' => self::getMessage($t), + 'details' => self::getDetails($t), + 'duration' => self::toMilliseconds($time), + ] + ); + } + + /** + * A warning occurred. + * + * @throws \InvalidArgumentException + */ + public function addWarning(Test $test, Warning $e, float $time): void + { + $this->printEvent( + 'testFailed', + [ + 'name' => $test->getName(), + 'message' => self::getMessage($e), + 'details' => self::getDetails($e), + 'duration' => self::toMilliseconds($time), + ] + ); + } + + /** + * A failure occurred. + * + * @throws \InvalidArgumentException + */ + public function addFailure(Test $test, AssertionFailedError $e, float $time): void + { + $parameters = [ + 'name' => $test->getName(), + 'message' => self::getMessage($e), + 'details' => self::getDetails($e), + 'duration' => self::toMilliseconds($time), + ]; + + if ($e instanceof ExpectationFailedException) { + $comparisonFailure = $e->getComparisonFailure(); + + if ($comparisonFailure instanceof ComparisonFailure) { + $expectedString = $comparisonFailure->getExpectedAsString(); + + if ($expectedString === null || empty($expectedString)) { + $expectedString = self::getPrimitiveValueAsString($comparisonFailure->getExpected()); + } + + $actualString = $comparisonFailure->getActualAsString(); + + if ($actualString === null || empty($actualString)) { + $actualString = self::getPrimitiveValueAsString($comparisonFailure->getActual()); + } + + if ($actualString !== null && $expectedString !== null) { + $parameters['type'] = 'comparisonFailure'; + $parameters['actual'] = $actualString; + $parameters['expected'] = $expectedString; + } + } + } + + $this->printEvent('testFailed', $parameters); + } + + /** + * Incomplete test. + */ + public function addIncompleteTest(Test $test, \Throwable $t, float $time): void + { + $this->printIgnoredTest($test->getName(), $t, $time); + } + + /** + * Risky test. + * + * @throws \InvalidArgumentException + */ + public function addRiskyTest(Test $test, \Throwable $t, float $time): void + { + $this->addError($test, $t, $time); + } + + /** + * Skipped test. + * + * @throws \ReflectionException + */ + public function addSkippedTest(Test $test, \Throwable $t, float $time): void + { + $testName = $test->getName(); + + if ($this->startedTestName !== $testName) { + $this->startTest($test); + $this->printIgnoredTest($testName, $t, $time); + $this->endTest($test, $time); + } else { + $this->printIgnoredTest($testName, $t, $time); + } + } + + public function printIgnoredTest($testName, \Throwable $t, float $time): void + { + $this->printEvent( + 'testIgnored', + [ + 'name' => $testName, + 'message' => self::getMessage($t), + 'details' => self::getDetails($t), + 'duration' => self::toMilliseconds($time), + ] + ); + } + + /** + * A testsuite started. + * + * @throws \ReflectionException + */ + public function startTestSuite(TestSuite $suite): void + { + if (\stripos(\ini_get('disable_functions'), 'getmypid') === false) { + $this->flowId = \getmypid(); + } else { + $this->flowId = false; + } + + if (!$this->isSummaryTestCountPrinted) { + $this->isSummaryTestCountPrinted = true; + + $this->printEvent( + 'testCount', + ['count' => \count($suite)] + ); + } + + $suiteName = $suite->getName(); + + if (empty($suiteName)) { + return; + } + + $parameters = ['name' => $suiteName]; + + if (\class_exists($suiteName, false)) { + $fileName = self::getFileName($suiteName); + $parameters['locationHint'] = "php_qn://$fileName::\\$suiteName"; + } else { + $split = \explode('::', $suiteName); + + if (\count($split) === 2 && \class_exists($split[0]) && \method_exists($split[0], $split[1])) { + $fileName = self::getFileName($split[0]); + $parameters['locationHint'] = "php_qn://$fileName::\\$suiteName"; + $parameters['name'] = $split[1]; + } + } + + $this->printEvent('testSuiteStarted', $parameters); + } + + /** + * A testsuite ended. + */ + public function endTestSuite(TestSuite $suite): void + { + $suiteName = $suite->getName(); + + if (empty($suiteName)) { + return; + } + + $parameters = ['name' => $suiteName]; + + if (!\class_exists($suiteName, false)) { + $split = \explode('::', $suiteName); + + if (\count($split) === 2 && \class_exists($split[0]) && \method_exists($split[0], $split[1])) { + $parameters['name'] = $split[1]; + } + } + + $this->printEvent('testSuiteFinished', $parameters); + } + + /** + * A test started. + * + * @throws \ReflectionException + */ + public function startTest(Test $test): void + { + $testName = $test->getName(); + $this->startedTestName = $testName; + $params = ['name' => $testName]; + + if ($test instanceof TestCase) { + $className = \get_class($test); + $fileName = self::getFileName($className); + $params['locationHint'] = "php_qn://$fileName::\\$className::$testName"; + } + + $this->printEvent('testStarted', $params); + } + + /** + * A test ended. + */ + public function endTest(Test $test, float $time): void + { + parent::endTest($test, $time); + + $this->printEvent( + 'testFinished', + [ + 'name' => $test->getName(), + 'duration' => self::toMilliseconds($time), + ] + ); + } + + protected function writeProgress(string $progress): void + { + } + + /** + * @param string $eventName + * @param array $params + */ + private function printEvent($eventName, $params = []): void + { + $this->write("\n##teamcity[$eventName"); + + if ($this->flowId) { + $params['flowId'] = $this->flowId; + } + + foreach ($params as $key => $value) { + $escapedValue = self::escapeValue($value); + $this->write(" $key='$escapedValue'"); + } + + $this->write("]\n"); + } + + private static function getMessage(\Throwable $t): string + { + $message = ''; + + if ($t instanceof ExceptionWrapper) { + if ($t->getClassName() !== '') { + $message .= $t->getClassName(); + } + + if ($message !== '' && $t->getMessage() !== '') { + $message .= ' : '; + } + } + + return $message . $t->getMessage(); + } + + /** + * @throws \InvalidArgumentException + */ + private static function getDetails(\Throwable $t): string + { + $stackTrace = Filter::getFilteredStacktrace($t); + $previous = $t instanceof ExceptionWrapper ? $t->getPreviousWrapped() : $t->getPrevious(); + + while ($previous) { + $stackTrace .= "\nCaused by\n" . + TestFailure::exceptionToString($previous) . "\n" . + Filter::getFilteredStacktrace($previous); + + $previous = $previous instanceof ExceptionWrapper ? + $previous->getPreviousWrapped() : $previous->getPrevious(); + } + + return ' ' . \str_replace("\n", "\n ", $stackTrace); + } + + private static function getPrimitiveValueAsString($value): ?string + { + if ($value === null) { + return 'null'; + } + + if (\is_bool($value)) { + return $value === true ? 'true' : 'false'; + } + + if (\is_scalar($value)) { + return \print_r($value, true); + } + + return null; + } + + private static function escapeValue(string $text): string + { + return \str_replace( + ['|', "'", "\n", "\r", ']', '['], + ['||', "|'", '|n', '|r', '|]', '|['], + $text + ); + } + + /** + * @param string $className + * + * @throws \ReflectionException + */ + private static function getFileName($className): string + { + $reflectionClass = new ReflectionClass($className); + + return $reflectionClass->getFileName(); + } + + /** + * @param float $time microseconds + */ + private static function toMilliseconds(float $time): int + { + return \round($time * 1000); + } +} diff --git a/vendor/phpunit/phpunit/src/Util/NullTestResultCache.php b/vendor/phpunit/phpunit/src/Util/NullTestResultCache.php new file mode 100644 index 00000000..fd63a6d0 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/NullTestResultCache.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Runner; + +class NullTestResultCache implements TestResultCacheInterface +{ + public function getState($testName): int + { + return BaseTestRunner::STATUS_UNKNOWN; + } + + public function getTime($testName): float + { + return 0; + } + + public function load(): void + { + } + + public function persist(): void + { + } +} diff --git a/vendor/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php b/vendor/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php new file mode 100644 index 00000000..39e720ea --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/PHP/AbstractPhpProcess.php @@ -0,0 +1,377 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util\PHP; + +use __PHP_Incomplete_Class; +use ErrorException; +use PHPUnit\Framework\AssertionFailedError; +use PHPUnit\Framework\Exception; +use PHPUnit\Framework\SyntheticError; +use PHPUnit\Framework\Test; +use PHPUnit\Framework\TestCase; +use PHPUnit\Framework\TestFailure; +use PHPUnit\Framework\TestResult; +use SebastianBergmann\Environment\Runtime; + +/** + * Utility methods for PHP sub-processes. + */ +abstract class AbstractPhpProcess +{ + /** + * @var Runtime + */ + protected $runtime; + + /** + * @var bool + */ + protected $stderrRedirection = false; + + /** + * @var string + */ + protected $stdin = ''; + + /** + * @var string + */ + protected $args = ''; + + /** + * @var array + */ + protected $env = []; + + /** + * @var int + */ + protected $timeout = 0; + + public static function factory(): self + { + if (\DIRECTORY_SEPARATOR === '\\') { + return new WindowsPhpProcess; + } + + return new DefaultPhpProcess; + } + + public function __construct() + { + $this->runtime = new Runtime; + } + + /** + * Defines if should use STDERR redirection or not. + * + * Then $stderrRedirection is TRUE, STDERR is redirected to STDOUT. + */ + public function setUseStderrRedirection(bool $stderrRedirection): void + { + $this->stderrRedirection = $stderrRedirection; + } + + /** + * Returns TRUE if uses STDERR redirection or FALSE if not. + */ + public function useStderrRedirection(): bool + { + return $this->stderrRedirection; + } + + /** + * Sets the input string to be sent via STDIN + */ + public function setStdin(string $stdin): void + { + $this->stdin = $stdin; + } + + /** + * Returns the input string to be sent via STDIN + */ + public function getStdin(): string + { + return $this->stdin; + } + + /** + * Sets the string of arguments to pass to the php job + */ + public function setArgs(string $args): void + { + $this->args = $args; + } + + /** + * Returns the string of arguments to pass to the php job + */ + public function getArgs(): string + { + return $this->args; + } + + /** + * Sets the array of environment variables to start the child process with + * + * @param array $env + */ + public function setEnv(array $env): void + { + $this->env = $env; + } + + /** + * Returns the array of environment variables to start the child process with + */ + public function getEnv(): array + { + return $this->env; + } + + /** + * Sets the amount of seconds to wait before timing out + */ + public function setTimeout(int $timeout): void + { + $this->timeout = $timeout; + } + + /** + * Returns the amount of seconds to wait before timing out + */ + public function getTimeout(): int + { + return $this->timeout; + } + + /** + * Runs a single test in a separate PHP process. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + public function runTestJob(string $job, Test $test, TestResult $result): void + { + $result->startTest($test); + + $_result = $this->runJob($job); + + $this->processChildResult( + $test, + $result, + $_result['stdout'], + $_result['stderr'] + ); + } + + /** + * Returns the command based into the configurations. + */ + public function getCommand(array $settings, string $file = null): string + { + $command = $this->runtime->getBinary(); + $command .= $this->settingsToParameters($settings); + + if (\PHP_SAPI === 'phpdbg') { + $command .= ' -qrr'; + + if (!$file) { + $command .= 's='; + } + } + + if ($file) { + $command .= ' ' . \escapeshellarg($file); + } + + if ($this->args) { + if (!$file) { + $command .= ' --'; + } + $command .= ' ' . $this->args; + } + + if ($this->stderrRedirection === true) { + $command .= ' 2>&1'; + } + + return $command; + } + + /** + * Runs a single job (PHP code) using a separate PHP process. + */ + abstract public function runJob(string $job, array $settings = []): array; + + protected function settingsToParameters(array $settings): string + { + $buffer = ''; + + foreach ($settings as $setting) { + $buffer .= ' -d ' . \escapeshellarg($setting); + } + + return $buffer; + } + + /** + * Processes the TestResult object from an isolated process. + * + * @throws \SebastianBergmann\RecursionContext\InvalidArgumentException + */ + private function processChildResult(Test $test, TestResult $result, string $stdout, string $stderr): void + { + $time = 0; + + if (!empty($stderr)) { + $result->addError( + $test, + new Exception(\trim($stderr)), + $time + ); + } else { + \set_error_handler(function ($errno, $errstr, $errfile, $errline): void { + throw new ErrorException($errstr, $errno, $errno, $errfile, $errline); + }); + + try { + if (\strpos($stdout, "#!/usr/bin/env php\n") === 0) { + $stdout = \substr($stdout, 19); + } + + $childResult = \unserialize(\str_replace("#!/usr/bin/env php\n", '', $stdout)); + \restore_error_handler(); + + if ($childResult === false) { + $result->addFailure( + $test, + new AssertionFailedError('Test was run in child process and ended unexpectedly'), + $time + ); + } + } catch (ErrorException $e) { + \restore_error_handler(); + $childResult = false; + + $result->addError( + $test, + new Exception(\trim($stdout), 0, $e), + $time + ); + } + + if ($childResult !== false) { + if (!empty($childResult['output'])) { + $output = $childResult['output']; + } + + /* @var TestCase $test */ + + $test->setResult($childResult['testResult']); + $test->addToAssertionCount($childResult['numAssertions']); + + /** @var TestResult $childResult */ + $childResult = $childResult['result']; + + if ($result->getCollectCodeCoverageInformation()) { + $result->getCodeCoverage()->merge( + $childResult->getCodeCoverage() + ); + } + + $time = $childResult->time(); + $notImplemented = $childResult->notImplemented(); + $risky = $childResult->risky(); + $skipped = $childResult->skipped(); + $errors = $childResult->errors(); + $warnings = $childResult->warnings(); + $failures = $childResult->failures(); + + if (!empty($notImplemented)) { + $result->addError( + $test, + $this->getException($notImplemented[0]), + $time + ); + } elseif (!empty($risky)) { + $result->addError( + $test, + $this->getException($risky[0]), + $time + ); + } elseif (!empty($skipped)) { + $result->addError( + $test, + $this->getException($skipped[0]), + $time + ); + } elseif (!empty($errors)) { + $result->addError( + $test, + $this->getException($errors[0]), + $time + ); + } elseif (!empty($warnings)) { + $result->addWarning( + $test, + $this->getException($warnings[0]), + $time + ); + } elseif (!empty($failures)) { + $result->addFailure( + $test, + $this->getException($failures[0]), + $time + ); + } + } + } + + $result->endTest($test, $time); + + if (!empty($output)) { + print $output; + } + } + + /** + * Gets the thrown exception from a PHPUnit\Framework\TestFailure. + * + * @see https://github.com/sebastianbergmann/phpunit/issues/74 + */ + private function getException(TestFailure $error): Exception + { + $exception = $error->thrownException(); + + if ($exception instanceof __PHP_Incomplete_Class) { + $exceptionArray = []; + + foreach ((array) $exception as $key => $value) { + $key = \substr($key, \strrpos($key, "\0") + 1); + $exceptionArray[$key] = $value; + } + + $exception = new SyntheticError( + \sprintf( + '%s: %s', + $exceptionArray['_PHP_Incomplete_Class_Name'], + $exceptionArray['message'] + ), + $exceptionArray['code'], + $exceptionArray['file'], + $exceptionArray['line'], + $exceptionArray['trace'] + ); + } + + return $exception; + } +} diff --git a/vendor/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php b/vendor/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php new file mode 100644 index 00000000..396d7d79 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/PHP/DefaultPhpProcess.php @@ -0,0 +1,218 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util\PHP; + +use PHPUnit\Framework\Exception; + +/** + * Default utility for PHP sub-processes. + */ +class DefaultPhpProcess extends AbstractPhpProcess +{ + /** + * @var string + */ + protected $tempFile; + + /** + * Runs a single job (PHP code) using a separate PHP process. + * + * @throws Exception + */ + public function runJob(string $job, array $settings = []): array + { + if ($this->useTemporaryFile() || $this->stdin) { + if (!($this->tempFile = \tempnam(\sys_get_temp_dir(), 'PHPUnit')) || + \file_put_contents($this->tempFile, $job) === false) { + throw new Exception( + 'Unable to write temporary file' + ); + } + + $job = $this->stdin; + } + + return $this->runProcess($job, $settings); + } + + /** + * Returns an array of file handles to be used in place of pipes + */ + protected function getHandles(): array + { + return []; + } + + /** + * Handles creating the child process and returning the STDOUT and STDERR + * + * @throws Exception + */ + protected function runProcess(string $job, array $settings): array + { + $handles = $this->getHandles(); + + $env = null; + + if ($this->env) { + $env = $_SERVER ?? []; + unset($env['argv'], $env['argc']); + $env = \array_merge($env, $this->env); + + foreach ($env as $envKey => $envVar) { + if (\is_array($envVar)) { + unset($env[$envKey]); + } + } + } + + $pipeSpec = [ + 0 => $handles[0] ?? ['pipe', 'r'], + 1 => $handles[1] ?? ['pipe', 'w'], + 2 => $handles[2] ?? ['pipe', 'w'], + ]; + + $process = \proc_open( + $this->getCommand($settings, $this->tempFile), + $pipeSpec, + $pipes, + null, + $env + ); + + if (!\is_resource($process)) { + throw new Exception( + 'Unable to spawn worker process' + ); + } + + if ($job) { + $this->process($pipes[0], $job); + } + + \fclose($pipes[0]); + + $stderr = $stdout = ''; + + if ($this->timeout) { + unset($pipes[0]); + + while (true) { + $r = $pipes; + $w = null; + $e = null; + + $n = @\stream_select($r, $w, $e, $this->timeout); + + if ($n === false) { + break; + } + + if ($n === 0) { + \proc_terminate($process, 9); + + throw new Exception( + \sprintf( + 'Job execution aborted after %d seconds', + $this->timeout + ) + ); + } + + if ($n > 0) { + foreach ($r as $pipe) { + $pipeOffset = 0; + + foreach ($pipes as $i => $origPipe) { + if ($pipe === $origPipe) { + $pipeOffset = $i; + + break; + } + } + + if (!$pipeOffset) { + break; + } + + $line = \fread($pipe, 8192); + + if ($line === '') { + \fclose($pipes[$pipeOffset]); + + unset($pipes[$pipeOffset]); + } else { + if ($pipeOffset === 1) { + $stdout .= $line; + } else { + $stderr .= $line; + } + } + } + + if (empty($pipes)) { + break; + } + } + } + } else { + if (isset($pipes[1])) { + $stdout = \stream_get_contents($pipes[1]); + + \fclose($pipes[1]); + } + + if (isset($pipes[2])) { + $stderr = \stream_get_contents($pipes[2]); + + \fclose($pipes[2]); + } + } + + if (isset($handles[1])) { + \rewind($handles[1]); + + $stdout = \stream_get_contents($handles[1]); + + \fclose($handles[1]); + } + + if (isset($handles[2])) { + \rewind($handles[2]); + + $stderr = \stream_get_contents($handles[2]); + + \fclose($handles[2]); + } + + \proc_close($process); + + $this->cleanup(); + + return ['stdout' => $stdout, 'stderr' => $stderr]; + } + + protected function process($pipe, string $job): void + { + \fwrite($pipe, $job); + } + + protected function cleanup(): void + { + if ($this->tempFile) { + \unlink($this->tempFile); + } + } + + protected function useTemporaryFile(): bool + { + return false; + } +} diff --git a/vendor/phpunit/phpunit/src/Util/PHP/Template/PhptTestCase.tpl.dist b/vendor/phpunit/phpunit/src/Util/PHP/Template/PhptTestCase.tpl.dist new file mode 100644 index 00000000..14c3e7e6 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/PHP/Template/PhptTestCase.tpl.dist @@ -0,0 +1,40 @@ +start(__FILE__); +} + +register_shutdown_function(function() use ($coverage) { + $output = null; + if ($coverage) { + $output = $coverage->stop(); + } + file_put_contents('{coverageFile}', serialize($output)); +}); + +ob_end_clean(); + +require '{job}'; diff --git a/vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseClass.tpl.dist b/vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseClass.tpl.dist new file mode 100644 index 00000000..75ceda38 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseClass.tpl.dist @@ -0,0 +1,108 @@ +setCodeCoverage( + new CodeCoverage( + null, + unserialize('{codeCoverageFilter}') + ) + ); + } + + $result->beStrictAboutTestsThatDoNotTestAnything({isStrictAboutTestsThatDoNotTestAnything}); + $result->beStrictAboutOutputDuringTests({isStrictAboutOutputDuringTests}); + $result->enforceTimeLimit({enforcesTimeLimit}); + $result->beStrictAboutTodoAnnotatedTests({isStrictAboutTodoAnnotatedTests}); + $result->beStrictAboutResourceUsageDuringSmallTests({isStrictAboutResourceUsageDuringSmallTests}); + + $test = new {className}('{name}', unserialize('{data}'), '{dataName}'); + $test->setDependencyInput(unserialize('{dependencyInput}')); + $test->setInIsolation(TRUE); + + ob_end_clean(); + $test->run($result); + $output = ''; + if (!$test->hasExpectationOnOutput()) { + $output = $test->getActualOutput(); + } + + ini_set('xdebug.scream', 0); + @rewind(STDOUT); /* @ as not every STDOUT target stream is rewindable */ + if ($stdout = stream_get_contents(STDOUT)) { + $output = $stdout . $output; + $streamMetaData = stream_get_meta_data(STDOUT); + if (!empty($streamMetaData['stream_type']) && 'STDIO' === $streamMetaData['stream_type']) { + @ftruncate(STDOUT, 0); + @rewind(STDOUT); + } + } + + print serialize( + [ + 'testResult' => $test->getResult(), + 'numAssertions' => $test->getNumAssertions(), + 'result' => $result, + 'output' => $output + ] + ); +} + +$configurationFilePath = '{configurationFilePath}'; + +if ('' !== $configurationFilePath) { + $configuration = PHPUnit\Util\Configuration::getInstance($configurationFilePath); + $configuration->handlePHPConfiguration(); + unset($configuration); +} + +function __phpunit_error_handler($errno, $errstr, $errfile, $errline, $errcontext) +{ + return true; +} + +set_error_handler('__phpunit_error_handler'); + +{constants} +{included_files} +{globals} + +restore_error_handler(); + +if (isset($GLOBALS['__PHPUNIT_BOOTSTRAP'])) { + require_once $GLOBALS['__PHPUNIT_BOOTSTRAP']; + unset($GLOBALS['__PHPUNIT_BOOTSTRAP']); +} + +__phpunit_run_isolated_test(); diff --git a/vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist b/vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist new file mode 100644 index 00000000..b39938d3 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/PHP/Template/TestCaseMethod.tpl.dist @@ -0,0 +1,110 @@ +setCodeCoverage( + new CodeCoverage( + null, + unserialize('{codeCoverageFilter}') + ) + ); + } + + $result->beStrictAboutTestsThatDoNotTestAnything({isStrictAboutTestsThatDoNotTestAnything}); + $result->beStrictAboutOutputDuringTests({isStrictAboutOutputDuringTests}); + $result->enforceTimeLimit({enforcesTimeLimit}); + $result->beStrictAboutTodoAnnotatedTests({isStrictAboutTodoAnnotatedTests}); + $result->beStrictAboutResourceUsageDuringSmallTests({isStrictAboutResourceUsageDuringSmallTests}); + + /** @var TestCase $test */ + $test = new {className}('{methodName}', unserialize('{data}'), '{dataName}'); + $test->setDependencyInput(unserialize('{dependencyInput}')); + $test->setInIsolation(TRUE); + + ob_end_clean(); + $test->run($result); + $output = ''; + if (!$test->hasExpectationOnOutput()) { + $output = $test->getActualOutput(); + } + + ini_set('xdebug.scream', '0'); + @rewind(STDOUT); /* @ as not every STDOUT target stream is rewindable */ + if ($stdout = stream_get_contents(STDOUT)) { + $output = $stdout . $output; + $streamMetaData = stream_get_meta_data(STDOUT); + if (!empty($streamMetaData['stream_type']) && 'STDIO' === $streamMetaData['stream_type']) { + @ftruncate(STDOUT, 0); + @rewind(STDOUT); + } + } + + print serialize( + [ + 'testResult' => $test->getResult(), + 'numAssertions' => $test->getNumAssertions(), + 'result' => $result, + 'output' => $output + ] + ); +} + +$configurationFilePath = '{configurationFilePath}'; + +if ('' !== $configurationFilePath) { + $configuration = PHPUnit\Util\Configuration::getInstance($configurationFilePath); + $configuration->handlePHPConfiguration(); + unset($configuration); +} + +function __phpunit_error_handler($errno, $errstr, $errfile, $errline, $errcontext) +{ + return true; +} + +set_error_handler('__phpunit_error_handler'); + +{constants} +{included_files} +{globals} + +restore_error_handler(); + +if (isset($GLOBALS['__PHPUNIT_BOOTSTRAP'])) { + require_once $GLOBALS['__PHPUNIT_BOOTSTRAP']; + unset($GLOBALS['__PHPUNIT_BOOTSTRAP']); +} + +__phpunit_run_isolated_test(); diff --git a/vendor/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php b/vendor/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php new file mode 100644 index 00000000..46fffa38 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/PHP/WindowsPhpProcess.php @@ -0,0 +1,46 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util\PHP; + +use PHPUnit\Framework\Exception; + +/** + * Windows utility for PHP sub-processes. + * + * Reading from STDOUT or STDERR hangs forever on Windows if the output is + * too large. + * + * @see https://bugs.php.net/bug.php?id=51800 + */ +class WindowsPhpProcess extends DefaultPhpProcess +{ + public function getCommand(array $settings, string $file = null): string + { + return '"' . parent::getCommand($settings, $file) . '"'; + } + + protected function getHandles(): array + { + if (false === $stdout_handle = \tmpfile()) { + throw new Exception( + 'A temporary file could not be created; verify that your TEMP environment variable is writable' + ); + } + + return [ + 1 => $stdout_handle, + ]; + } + + protected function useTemporaryFile(): bool + { + return true; + } +} diff --git a/vendor/phpunit/phpunit/src/Util/Printer.php b/vendor/phpunit/phpunit/src/Util/Printer.php new file mode 100644 index 00000000..45df2c10 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/Printer.php @@ -0,0 +1,139 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +use PHPUnit\Framework\Exception; + +/** + * Utility class that can print to STDOUT or write to a file. + */ +class Printer +{ + /** + * If true, flush output after every write. + * + * @var bool + */ + protected $autoFlush = false; + + /** + * @var resource + */ + protected $out; + + /** + * @var string + */ + protected $outTarget; + + /** + * Constructor. + * + * @param null|mixed $out + * + * @throws Exception + */ + public function __construct($out = null) + { + if ($out === null) { + return; + } + + if (\is_string($out) === false) { + $this->out = $out; + + return; + } + + if (\strpos($out, 'socket://') === 0) { + $out = \explode(':', \str_replace('socket://', '', $out)); + + if (\count($out) !== 2) { + throw new Exception; + } + + $this->out = \fsockopen($out[0], $out[1]); + } else { + if (\strpos($out, 'php://') === false && !Filesystem::createDirectory(\dirname($out))) { + throw new Exception(\sprintf('Directory "%s" was not created', \dirname($out))); + } + + $this->out = \fopen($out, 'wt'); + } + + $this->outTarget = $out; + } + + /** + * Flush buffer and close output if it's not to a PHP stream + */ + public function flush(): void + { + if ($this->out && \strncmp($this->outTarget, 'php://', 6) !== 0) { + \fclose($this->out); + } + } + + /** + * Performs a safe, incremental flush. + * + * Do not confuse this function with the flush() function of this class, + * since the flush() function may close the file being written to, rendering + * the current object no longer usable. + */ + public function incrementalFlush(): void + { + if ($this->out) { + \fflush($this->out); + } else { + \flush(); + } + } + + public function write(string $buffer): void + { + if ($this->out) { + \fwrite($this->out, $buffer); + + if ($this->autoFlush) { + $this->incrementalFlush(); + } + } else { + if (\PHP_SAPI !== 'cli' && \PHP_SAPI !== 'phpdbg') { + $buffer = \htmlspecialchars($buffer, \ENT_SUBSTITUTE); + } + + print $buffer; + + if ($this->autoFlush) { + $this->incrementalFlush(); + } + } + } + + /** + * Check auto-flush mode. + */ + public function getAutoFlush(): bool + { + return $this->autoFlush; + } + + /** + * Set auto-flushing mode. + * + * If set, *incremental* flushes will be done after each write. This should + * not be confused with the different effects of this class' flush() method. + */ + public function setAutoFlush(bool $autoFlush): void + { + $this->autoFlush = $autoFlush; + } +} diff --git a/vendor/phpunit/phpunit/src/Util/RegularExpression.php b/vendor/phpunit/phpunit/src/Util/RegularExpression.php new file mode 100644 index 00000000..2f7baa78 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/RegularExpression.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +final class RegularExpression +{ + /** + * @throws \Exception + * + * @return false|int + */ + public static function safeMatch(string $pattern, string $subject, ?array $matches = null, int $flags = 0, int $offset = 0) + { + $handler_terminator = ErrorHandler::handleErrorOnce(); + $match = \preg_match($pattern, $subject, $matches, $flags, $offset); + $handler_terminator(); + + return $match; + } +} diff --git a/vendor/phpunit/phpunit/src/Util/Test.php b/vendor/phpunit/phpunit/src/Util/Test.php new file mode 100644 index 00000000..f583f593 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/Test.php @@ -0,0 +1,1121 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util; + +use PharIo\Version\VersionConstraintParser; +use PHPUnit\Framework\Assert; +use PHPUnit\Framework\CodeCoverageException; +use PHPUnit\Framework\Exception; +use PHPUnit\Framework\InvalidCoversTargetException; +use PHPUnit\Framework\SelfDescribing; +use PHPUnit\Framework\SkippedTestError; +use PHPUnit\Framework\TestCase; +use PHPUnit\Framework\Warning; +use PHPUnit\Runner\Version; +use ReflectionClass; +use ReflectionException; +use ReflectionFunction; +use ReflectionMethod; +use SebastianBergmann\Environment\OperatingSystem; +use Traversable; + +final class Test +{ + /** + * @var int + */ + public const UNKNOWN = -1; + + /** + * @var int + */ + public const SMALL = 0; + + /** + * @var int + */ + public const MEDIUM = 1; + + /** + * @var int + */ + public const LARGE = 2; + + /** + * @var string + * + * @todo This constant should be private (it's public because of TestTest::testGetProvidedDataRegEx) + */ + public const REGEX_DATA_PROVIDER = '/@dataProvider\s+([a-zA-Z0-9._:-\\\\x7f-\xff]+)/'; + + /** + * @var string + */ + private const REGEX_TEST_WITH = '/@testWith\s+/'; + + /** + * @var string + */ + private const REGEX_EXPECTED_EXCEPTION = '(@expectedException\s+([:.\w\\\\x7f-\xff]+)(?:[\t ]+(\S*))?(?:[\t ]+(\S*))?\s*$)m'; + + /** + * @var string + */ + private const REGEX_REQUIRES_VERSION = '/@requires\s+(?PPHP(?:Unit)?)\s+(?P[<>=!]{0,2})\s*(?P[\d\.-]+(dev|(RC|alpha|beta)[\d\.])?)[ \t]*\r?$/m'; + + /** + * @var string + */ + private const REGEX_REQUIRES_VERSION_CONSTRAINT = '/@requires\s+(?PPHP(?:Unit)?)\s+(?P[\d\t \-.|~^]+)[ \t]*\r?$/m'; + + /** + * @var string + */ + private const REGEX_REQUIRES_OS = '/@requires\s+(?POS(?:FAMILY)?)\s+(?P.+?)[ \t]*\r?$/m'; + + /** + * @var string + */ + private const REGEX_REQUIRES_SETTING = '/@requires\s+(?Psetting)\s+(?P([^ ]+?))\s*(?P[\w\.-]+[\w\.]?)?[ \t]*\r?$/m'; + + /** + * @var string + */ + private const REGEX_REQUIRES = '/@requires\s+(?Pfunction|extension)\s+(?P([^\s<>=!]+))\s*(?P[<>=!]{0,2})\s*(?P[\d\.-]+[\d\.]?)?[ \t]*\r?$/m'; + + /** + * @var array + */ + private static $annotationCache = []; + + /** + * @var array + */ + private static $hookMethods = []; + + public static function describe(\PHPUnit\Framework\Test $test): array + { + if ($test instanceof TestCase) { + return [\get_class($test), $test->getName()]; + } + + if ($test instanceof SelfDescribing) { + return ['', $test->toString()]; + } + + return ['', \get_class($test)]; + } + + public static function describeAsString(\PHPUnit\Framework\Test $test): string + { + if ($test instanceof SelfDescribing) { + return $test->toString(); + } + + return \get_class($test); + } + + /** + * @throws CodeCoverageException + * + * @return array|bool + */ + public static function getLinesToBeCovered(string $className, string $methodName) + { + $annotations = self::parseTestMethodAnnotations( + $className, + $methodName + ); + + if (self::shouldCoversAnnotationBeUsed($annotations) === false) { + return false; + } + + return self::getLinesToBeCoveredOrUsed($className, $methodName, 'covers'); + } + + /** + * Returns lines of code specified with the @uses annotation. + * + * @throws CodeCoverageException + */ + public static function getLinesToBeUsed(string $className, string $methodName): array + { + return self::getLinesToBeCoveredOrUsed($className, $methodName, 'uses'); + } + + /** + * Returns the requirements for a test. + * + * @throws Warning + */ + public static function getRequirements(string $className, string $methodName): array + { + $reflector = new ReflectionClass($className); + $docComment = $reflector->getDocComment(); + $reflector = new ReflectionMethod($className, $methodName); + $docComment .= "\n" . $reflector->getDocComment(); + $requires = []; + + if ($count = \preg_match_all(self::REGEX_REQUIRES_OS, $docComment, $matches)) { + foreach (\range(0, $count - 1) as $i) { + $requires[$matches['name'][$i]] = $matches['value'][$i]; + } + } + + if ($count = \preg_match_all(self::REGEX_REQUIRES_VERSION, $docComment, $matches)) { + foreach (\range(0, $count - 1) as $i) { + $requires[$matches['name'][$i]] = [ + 'version' => $matches['version'][$i], + 'operator' => $matches['operator'][$i], + ]; + } + } + + if ($count = \preg_match_all(self::REGEX_REQUIRES_VERSION_CONSTRAINT, $docComment, $matches)) { + foreach (\range(0, $count - 1) as $i) { + if (!empty($requires[$matches['name'][$i]])) { + continue; + } + + try { + $versionConstraintParser = new VersionConstraintParser; + + $requires[$matches['name'][$i] . '_constraint'] = [ + 'constraint' => $versionConstraintParser->parse(\trim($matches['constraint'][$i])), + ]; + } catch (\PharIo\Version\Exception $e) { + throw new Warning($e->getMessage(), $e->getCode(), $e); + } + } + } + + if ($count = \preg_match_all(self::REGEX_REQUIRES_SETTING, $docComment, $matches)) { + $requires['setting'] = []; + + foreach (\range(0, $count - 1) as $i) { + $requires['setting'][$matches['setting'][$i]] = $matches['value'][$i]; + } + } + + if ($count = \preg_match_all(self::REGEX_REQUIRES, $docComment, $matches)) { + foreach (\range(0, $count - 1) as $i) { + $name = $matches['name'][$i] . 's'; + + if (!isset($requires[$name])) { + $requires[$name] = []; + } + + $requires[$name][] = $matches['value'][$i]; + + if ($name !== 'extensions' || empty($matches['version'][$i])) { + continue; + } + + $requires['extension_versions'][$matches['value'][$i]] = [ + 'version' => $matches['version'][$i], + 'operator' => $matches['operator'][$i], + ]; + } + } + + return $requires; + } + + /** + * Returns the missing requirements for a test. + * + * @throws Warning + * + * @return string[] + */ + public static function getMissingRequirements(string $className, string $methodName): array + { + $required = static::getRequirements($className, $methodName); + $missing = []; + + if (!empty($required['PHP'])) { + $operator = empty($required['PHP']['operator']) ? '>=' : $required['PHP']['operator']; + + if (!\version_compare(\PHP_VERSION, $required['PHP']['version'], $operator)) { + $missing[] = \sprintf('PHP %s %s is required.', $operator, $required['PHP']['version']); + } + } elseif (!empty($required['PHP_constraint'])) { + $version = new \PharIo\Version\Version(self::sanitizeVersionNumber(\PHP_VERSION)); + + if (!$required['PHP_constraint']['constraint']->complies($version)) { + $missing[] = \sprintf( + 'PHP version does not match the required constraint %s.', + $required['PHP_constraint']['constraint']->asString() + ); + } + } + + if (!empty($required['PHPUnit'])) { + $phpunitVersion = Version::id(); + + $operator = empty($required['PHPUnit']['operator']) ? '>=' : $required['PHPUnit']['operator']; + + if (!\version_compare($phpunitVersion, $required['PHPUnit']['version'], $operator)) { + $missing[] = \sprintf('PHPUnit %s %s is required.', $operator, $required['PHPUnit']['version']); + } + } elseif (!empty($required['PHPUnit_constraint'])) { + $phpunitVersion = new \PharIo\Version\Version(self::sanitizeVersionNumber(Version::id())); + + if (!$required['PHPUnit_constraint']['constraint']->complies($phpunitVersion)) { + $missing[] = \sprintf( + 'PHPUnit version does not match the required constraint %s.', + $required['PHPUnit_constraint']['constraint']->asString() + ); + } + } + + if (!empty($required['OSFAMILY']) && $required['OSFAMILY'] !== (new OperatingSystem)->getFamily()) { + $missing[] = \sprintf('Operating system %s is required.', $required['OSFAMILY']); + } + + if (!empty($required['OS'])) { + $requiredOsPattern = \sprintf('/%s/i', \addcslashes($required['OS'], '/')); + + if (!\preg_match($requiredOsPattern, \PHP_OS)) { + $missing[] = \sprintf('Operating system matching %s is required.', $requiredOsPattern); + } + } + + if (!empty($required['functions'])) { + foreach ($required['functions'] as $function) { + $pieces = \explode('::', $function); + + if (\count($pieces) === 2 && \class_exists($pieces[0]) && \method_exists($pieces[0], $pieces[1])) { + continue; + } + + if (\function_exists($function)) { + continue; + } + + $missing[] = \sprintf('Function %s is required.', $function); + } + } + + if (!empty($required['setting'])) { + foreach ($required['setting'] as $setting => $value) { + if (\ini_get($setting) != $value) { + $missing[] = \sprintf('Setting "%s" must be "%s".', $setting, $value); + } + } + } + + if (!empty($required['extensions'])) { + foreach ($required['extensions'] as $extension) { + if (isset($required['extension_versions'][$extension])) { + continue; + } + + if (!\extension_loaded($extension)) { + $missing[] = \sprintf('Extension %s is required.', $extension); + } + } + } + + if (!empty($required['extension_versions'])) { + foreach ($required['extension_versions'] as $extension => $required) { + $actualVersion = \phpversion($extension); + + $operator = empty($required['operator']) ? '>=' : $required['operator']; + + if ($actualVersion === false || !\version_compare($actualVersion, $required['version'], $operator)) { + $missing[] = \sprintf('Extension %s %s %s is required.', $extension, $operator, $required['version']); + } + } + } + + return $missing; + } + + /** + * Returns the expected exception for a test. + * + * @return array|false + */ + public static function getExpectedException(string $className, ?string $methodName) + { + $reflector = new ReflectionMethod($className, $methodName); + $docComment = $reflector->getDocComment(); + $docComment = \substr($docComment, 3, -2); + + if (\preg_match(self::REGEX_EXPECTED_EXCEPTION, $docComment, $matches)) { + $annotations = self::parseTestMethodAnnotations( + $className, + $methodName + ); + + $class = $matches[1]; + $code = null; + $message = ''; + $messageRegExp = ''; + + if (isset($matches[2])) { + $message = \trim($matches[2]); + } elseif (isset($annotations['method']['expectedExceptionMessage'])) { + $message = self::parseAnnotationContent( + $annotations['method']['expectedExceptionMessage'][0] + ); + } + + if (isset($annotations['method']['expectedExceptionMessageRegExp'])) { + $messageRegExp = self::parseAnnotationContent( + $annotations['method']['expectedExceptionMessageRegExp'][0] + ); + } + + if (isset($matches[3])) { + $code = $matches[3]; + } elseif (isset($annotations['method']['expectedExceptionCode'])) { + $code = self::parseAnnotationContent( + $annotations['method']['expectedExceptionCode'][0] + ); + } + + if (\is_numeric($code)) { + $code = (int) $code; + } elseif (\is_string($code) && \defined($code)) { + $code = (int) \constant($code); + } + + return [ + 'class' => $class, 'code' => $code, 'message' => $message, 'message_regex' => $messageRegExp, + ]; + } + + return false; + } + + /** + * Returns the provided data for a method. + * + * @throws Exception + */ + public static function getProvidedData(string $className, string $methodName): ?array + { + $reflector = new ReflectionMethod($className, $methodName); + $docComment = $reflector->getDocComment(); + + $data = self::getDataFromDataProviderAnnotation($docComment, $className, $methodName); + + if ($data === null) { + $data = self::getDataFromTestWithAnnotation($docComment); + } + + if ($data === []) { + throw new SkippedTestError; + } + + if ($data !== null) { + foreach ($data as $key => $value) { + if (!\is_array($value)) { + throw new Exception( + \sprintf( + 'Data set %s is invalid.', + \is_int($key) ? '#' . $key : '"' . $key . '"' + ) + ); + } + } + } + + return $data; + } + + /** + * @throws Exception + */ + public static function getDataFromTestWithAnnotation(string $docComment): ?array + { + $docComment = self::cleanUpMultiLineAnnotation($docComment); + + if (\preg_match(self::REGEX_TEST_WITH, $docComment, $matches, \PREG_OFFSET_CAPTURE)) { + $offset = \strlen($matches[0][0]) + $matches[0][1]; + $annotationContent = \substr($docComment, $offset); + $data = []; + + foreach (\explode("\n", $annotationContent) as $candidateRow) { + $candidateRow = \trim($candidateRow); + + if ($candidateRow[0] !== '[') { + break; + } + + $dataSet = \json_decode($candidateRow, true); + + if (\json_last_error() !== \JSON_ERROR_NONE) { + throw new Exception( + 'The data set for the @testWith annotation cannot be parsed: ' . \json_last_error_msg() + ); + } + + $data[] = $dataSet; + } + + if (!$data) { + throw new Exception('The data set for the @testWith annotation cannot be parsed.'); + } + + return $data; + } + + return null; + } + + public static function parseTestMethodAnnotations(string $className, ?string $methodName = ''): array + { + if (!isset(self::$annotationCache[$className])) { + $class = new ReflectionClass($className); + $traits = $class->getTraits(); + $annotations = []; + + foreach ($traits as $trait) { + $annotations = \array_merge( + $annotations, + self::parseAnnotations($trait->getDocComment()) + ); + } + + self::$annotationCache[$className] = \array_merge( + $annotations, + self::parseAnnotations($class->getDocComment()) + ); + } + + $cacheKey = $className . '::' . $methodName; + + if ($methodName !== null && !isset(self::$annotationCache[$cacheKey])) { + try { + $method = new ReflectionMethod($className, $methodName); + $annotations = self::parseAnnotations($method->getDocComment()); + } catch (ReflectionException $e) { + $annotations = []; + } + + self::$annotationCache[$cacheKey] = $annotations; + } + + return [ + 'class' => self::$annotationCache[$className], + 'method' => $methodName !== null ? self::$annotationCache[$cacheKey] : [], + ]; + } + + public static function getInlineAnnotations(string $className, string $methodName): array + { + $method = new ReflectionMethod($className, $methodName); + $code = \file($method->getFileName()); + $lineNumber = $method->getStartLine(); + $startLine = $method->getStartLine() - 1; + $endLine = $method->getEndLine() - 1; + $methodLines = \array_slice($code, $startLine, $endLine - $startLine + 1); + $annotations = []; + + foreach ($methodLines as $line) { + if (\preg_match('#/\*\*?\s*@(?P[A-Za-z_-]+)(?:[ \t]+(?P.*?))?[ \t]*\r?\*/$#m', $line, $matches)) { + $annotations[\strtolower($matches['name'])] = [ + 'line' => $lineNumber, + 'value' => $matches['value'], + ]; + } + + $lineNumber++; + } + + return $annotations; + } + + public static function parseAnnotations(string $docBlock): array + { + $annotations = []; + // Strip away the docblock header and footer to ease parsing of one line annotations + $docBlock = \substr($docBlock, 3, -2); + + if (\preg_match_all('/@(?P[A-Za-z_-]+)(?:[ \t]+(?P.*?))?[ \t]*\r?$/m', $docBlock, $matches)) { + $numMatches = \count($matches[0]); + + for ($i = 0; $i < $numMatches; ++$i) { + $annotations[$matches['name'][$i]][] = (string) $matches['value'][$i]; + } + } + + return $annotations; + } + + public static function getBackupSettings(string $className, string $methodName): array + { + return [ + 'backupGlobals' => self::getBooleanAnnotationSetting( + $className, + $methodName, + 'backupGlobals' + ), + 'backupStaticAttributes' => self::getBooleanAnnotationSetting( + $className, + $methodName, + 'backupStaticAttributes' + ), + ]; + } + + public static function getDependencies(string $className, string $methodName): array + { + $annotations = self::parseTestMethodAnnotations( + $className, + $methodName + ); + + $dependencies = []; + + if (isset($annotations['class']['depends'])) { + $dependencies = $annotations['class']['depends']; + } + + if (isset($annotations['method']['depends'])) { + $dependencies = \array_merge( + $dependencies, + $annotations['method']['depends'] + ); + } + + return \array_unique($dependencies); + } + + public static function getErrorHandlerSettings(string $className, ?string $methodName): ?bool + { + return self::getBooleanAnnotationSetting( + $className, + $methodName, + 'errorHandler' + ); + } + + public static function getGroups(string $className, ?string $methodName = ''): array + { + $annotations = self::parseTestMethodAnnotations( + $className, + $methodName + ); + + $groups = []; + + if (isset($annotations['method']['author'])) { + $groups = $annotations['method']['author']; + } elseif (isset($annotations['class']['author'])) { + $groups = $annotations['class']['author']; + } + + if (isset($annotations['class']['group'])) { + $groups = \array_merge($groups, $annotations['class']['group']); + } + + if (isset($annotations['method']['group'])) { + $groups = \array_merge($groups, $annotations['method']['group']); + } + + if (isset($annotations['class']['ticket'])) { + $groups = \array_merge($groups, $annotations['class']['ticket']); + } + + if (isset($annotations['method']['ticket'])) { + $groups = \array_merge($groups, $annotations['method']['ticket']); + } + + foreach (['method', 'class'] as $element) { + foreach (['small', 'medium', 'large'] as $size) { + if (isset($annotations[$element][$size])) { + $groups[] = $size; + + break 2; + } + } + } + + return \array_unique($groups); + } + + public static function getSize(string $className, ?string $methodName): int + { + $groups = \array_flip(self::getGroups($className, $methodName)); + + if (isset($groups['large'])) { + return self::LARGE; + } + + if (isset($groups['medium'])) { + return self::MEDIUM; + } + + if (isset($groups['small'])) { + return self::SMALL; + } + + return self::UNKNOWN; + } + + public static function getProcessIsolationSettings(string $className, string $methodName): bool + { + $annotations = self::parseTestMethodAnnotations( + $className, + $methodName + ); + + return isset($annotations['class']['runTestsInSeparateProcesses']) || isset($annotations['method']['runInSeparateProcess']); + } + + public static function getClassProcessIsolationSettings(string $className, string $methodName): bool + { + $annotations = self::parseTestMethodAnnotations( + $className, + $methodName + ); + + return isset($annotations['class']['runClassInSeparateProcess']); + } + + public static function getPreserveGlobalStateSettings(string $className, string $methodName): ?bool + { + return self::getBooleanAnnotationSetting( + $className, + $methodName, + 'preserveGlobalState' + ); + } + + public static function getHookMethods(string $className): array + { + if (!\class_exists($className, false)) { + return self::emptyHookMethodsArray(); + } + + if (!isset(self::$hookMethods[$className])) { + self::$hookMethods[$className] = self::emptyHookMethodsArray(); + + try { + $class = new ReflectionClass($className); + + foreach ($class->getMethods() as $method) { + if ($method->getDeclaringClass()->getName() === Assert::class) { + continue; + } + + if ($method->getDeclaringClass()->getName() === TestCase::class) { + continue; + } + + if ($methodComment = $method->getDocComment()) { + if ($method->isStatic()) { + if (\strpos($methodComment, '@beforeClass') !== false) { + \array_unshift( + self::$hookMethods[$className]['beforeClass'], + $method->getName() + ); + } + + if (\strpos($methodComment, '@afterClass') !== false) { + self::$hookMethods[$className]['afterClass'][] = $method->getName(); + } + } + + if (\preg_match('/@before\b/', $methodComment) > 0) { + \array_unshift( + self::$hookMethods[$className]['before'], + $method->getName() + ); + } + + if (\preg_match('/@after\b/', $methodComment) > 0) { + self::$hookMethods[$className]['after'][] = $method->getName(); + } + } + } + } catch (ReflectionException $e) { + } + } + + return self::$hookMethods[$className]; + } + + /** + * @throws CodeCoverageException + */ + private static function getLinesToBeCoveredOrUsed(string $className, string $methodName, string $mode): array + { + $annotations = self::parseTestMethodAnnotations( + $className, + $methodName + ); + + $classShortcut = null; + + if (!empty($annotations['class'][$mode . 'DefaultClass'])) { + if (\count($annotations['class'][$mode . 'DefaultClass']) > 1) { + throw new CodeCoverageException( + \sprintf( + 'More than one @%sClass annotation in class or interface "%s".', + $mode, + $className + ) + ); + } + + $classShortcut = $annotations['class'][$mode . 'DefaultClass'][0]; + } + + $list = []; + + if (isset($annotations['class'][$mode])) { + $list = $annotations['class'][$mode]; + } + + if (isset($annotations['method'][$mode])) { + $list = \array_merge($list, $annotations['method'][$mode]); + } + + $codeList = []; + + foreach (\array_unique($list) as $element) { + if ($classShortcut && \strncmp($element, '::', 2) === 0) { + $element = $classShortcut . $element; + } + + $element = \preg_replace('/[\s()]+$/', '', $element); + $element = \explode(' ', $element); + $element = $element[0]; + + if ($mode === 'covers' && \interface_exists($element)) { + throw new InvalidCoversTargetException( + \sprintf( + 'Trying to @cover interface "%s".', + $element + ) + ); + } + + $codeList = \array_merge( + $codeList, + self::resolveElementToReflectionObjects($element) + ); + } + + return self::resolveReflectionObjectsToLines($codeList); + } + + /** + * Parse annotation content to use constant/class constant values + * + * Constants are specified using a starting '@'. For example: @ClassName::CONST_NAME + * + * If the constant is not found the string is used as is to ensure maximum BC. + */ + private static function parseAnnotationContent(string $message): string + { + if (\defined($message) && (\strpos($message, '::') !== false && \substr_count($message, '::') + 1 === 2)) { + $message = \constant($message); + } + + return $message; + } + + /** + * Returns the provided data for a method. + */ + private static function getDataFromDataProviderAnnotation(string $docComment, string $className, string $methodName): ?iterable + { + if (\preg_match_all(self::REGEX_DATA_PROVIDER, $docComment, $matches)) { + $result = []; + + foreach ($matches[1] as $match) { + $dataProviderMethodNameNamespace = \explode('\\', $match); + $leaf = \explode('::', \array_pop($dataProviderMethodNameNamespace)); + $dataProviderMethodName = \array_pop($leaf); + + if (empty($dataProviderMethodNameNamespace)) { + $dataProviderMethodNameNamespace = ''; + } else { + $dataProviderMethodNameNamespace = \implode('\\', $dataProviderMethodNameNamespace) . '\\'; + } + + if (empty($leaf)) { + $dataProviderClassName = $className; + } else { + $dataProviderClassName = $dataProviderMethodNameNamespace . \array_pop($leaf); + } + + $dataProviderClass = new ReflectionClass($dataProviderClassName); + $dataProviderMethod = $dataProviderClass->getMethod( + $dataProviderMethodName + ); + + if ($dataProviderMethod->isStatic()) { + $object = null; + } else { + $object = $dataProviderClass->newInstance(); + } + + if ($dataProviderMethod->getNumberOfParameters() === 0) { + $data = $dataProviderMethod->invoke($object); + } else { + $data = $dataProviderMethod->invoke($object, $methodName); + } + + if ($data instanceof Traversable) { + $origData = $data; + $data = []; + + foreach ($origData as $key => $value) { + if (\is_int($key)) { + $data[] = $value; + } else { + $data[$key] = $value; + } + } + } + + if (\is_array($data)) { + $result = \array_merge($result, $data); + } + } + + return $result; + } + + return null; + } + + private static function cleanUpMultiLineAnnotation(string $docComment): string + { + //removing initial ' * ' for docComment + $docComment = \str_replace("\r\n", "\n", $docComment); + $docComment = \preg_replace('/' . '\n' . '\s*' . '\*' . '\s?' . '/', "\n", $docComment); + $docComment = \substr($docComment, 0, -1); + + return \rtrim($docComment, "\n"); + } + + private static function emptyHookMethodsArray(): array + { + return [ + 'beforeClass' => ['setUpBeforeClass'], + 'before' => ['setUp'], + 'after' => ['tearDown'], + 'afterClass' => ['tearDownAfterClass'], + ]; + } + + private static function getBooleanAnnotationSetting(string $className, ?string $methodName, string $settingName): ?bool + { + $annotations = self::parseTestMethodAnnotations( + $className, + $methodName + ); + + if (isset($annotations['method'][$settingName])) { + if ($annotations['method'][$settingName][0] === 'enabled') { + return true; + } + + if ($annotations['method'][$settingName][0] === 'disabled') { + return false; + } + } + + if (isset($annotations['class'][$settingName])) { + if ($annotations['class'][$settingName][0] === 'enabled') { + return true; + } + + if ($annotations['class'][$settingName][0] === 'disabled') { + return false; + } + } + + return null; + } + + /** + * @throws InvalidCoversTargetException + */ + private static function resolveElementToReflectionObjects(string $element): array + { + $codeToCoverList = []; + + if (\strpos($element, '\\') !== false && \function_exists($element)) { + $codeToCoverList[] = new ReflectionFunction($element); + } elseif (\strpos($element, '::') !== false) { + [$className, $methodName] = \explode('::', $element); + + if (isset($methodName[0]) && $methodName[0] === '<') { + $classes = [$className]; + + foreach ($classes as $className) { + if (!\class_exists($className) && + !\interface_exists($className) && + !\trait_exists($className)) { + throw new InvalidCoversTargetException( + \sprintf( + 'Trying to @cover or @use not existing class or ' . + 'interface "%s".', + $className + ) + ); + } + + $class = new ReflectionClass($className); + $methods = $class->getMethods(); + $inverse = isset($methodName[1]) && $methodName[1] === '!'; + $visibility = 'isPublic'; + + if (\strpos($methodName, 'protected')) { + $visibility = 'isProtected'; + } elseif (\strpos($methodName, 'private')) { + $visibility = 'isPrivate'; + } + + foreach ($methods as $method) { + if ($inverse && !$method->$visibility()) { + $codeToCoverList[] = $method; + } elseif (!$inverse && $method->$visibility()) { + $codeToCoverList[] = $method; + } + } + } + } else { + $classes = [$className]; + + foreach ($classes as $className) { + if ($className === '' && \function_exists($methodName)) { + $codeToCoverList[] = new ReflectionFunction( + $methodName + ); + } else { + if (!((\class_exists($className) || \interface_exists($className) || \trait_exists($className)) && + \method_exists($className, $methodName))) { + throw new InvalidCoversTargetException( + \sprintf( + 'Trying to @cover or @use not existing method "%s::%s".', + $className, + $methodName + ) + ); + } + + $codeToCoverList[] = new ReflectionMethod( + $className, + $methodName + ); + } + } + } + } else { + $extended = false; + + if (\strpos($element, '') !== false) { + $element = \str_replace('', '', $element); + $extended = true; + } + + $classes = [$element]; + + if ($extended) { + $classes = \array_merge( + $classes, + \class_implements($element), + \class_parents($element) + ); + } + + foreach ($classes as $className) { + if (!\class_exists($className) && + !\interface_exists($className) && + !\trait_exists($className)) { + throw new InvalidCoversTargetException( + \sprintf( + 'Trying to @cover or @use not existing class or ' . + 'interface "%s".', + $className + ) + ); + } + + $codeToCoverList[] = new ReflectionClass($className); + } + } + + return $codeToCoverList; + } + + private static function resolveReflectionObjectsToLines(array $reflectors): array + { + $result = []; + + foreach ($reflectors as $reflector) { + if ($reflector instanceof ReflectionClass) { + foreach ($reflector->getTraits() as $trait) { + $reflectors[] = $trait; + } + } + } + + foreach ($reflectors as $reflector) { + $filename = $reflector->getFileName(); + + if (!isset($result[$filename])) { + $result[$filename] = []; + } + + $result[$filename] = \array_merge( + $result[$filename], + \range($reflector->getStartLine(), $reflector->getEndLine()) + ); + } + + foreach ($result as $filename => $lineNumbers) { + $result[$filename] = \array_keys(\array_flip($lineNumbers)); + } + + return $result; + } + + /** + * Trims any extensions from version string that follows after + * the .[.] format + */ + private static function sanitizeVersionNumber(string $version) + { + return \preg_replace( + '/^(\d+\.\d+(?:.\d+)?).*$/', + '$1', + $version + ); + } + + private static function shouldCoversAnnotationBeUsed(array $annotations): bool + { + if (isset($annotations['method']['coversNothing'])) { + return false; + } + + if (isset($annotations['method']['covers'])) { + return true; + } + + if (isset($annotations['class']['coversNothing'])) { + return false; + } + + return true; + } +} diff --git a/vendor/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php b/vendor/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php new file mode 100644 index 00000000..217377e7 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/TestDox/CliTestDoxPrinter.php @@ -0,0 +1,429 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util\TestDox; + +use PHPUnit\Framework\AssertionFailedError; +use PHPUnit\Framework\Test; +use PHPUnit\Framework\TestCase; +use PHPUnit\Framework\TestResult; +use PHPUnit\Framework\TestSuite; +use PHPUnit\Framework\Warning; +use PHPUnit\Runner\PhptTestCase; +use PHPUnit\Runner\TestSuiteSorter; +use PHPUnit\TextUI\ResultPrinter; +use SebastianBergmann\Timer\Timer; + +/** + * This printer is for CLI output only. For the classes that output to file, html and xml, + * please refer to the PHPUnit\Util\TestDox namespace + */ +class CliTestDoxPrinter extends ResultPrinter +{ + /** + * @var int[] + */ + private $nonSuccessfulTestResults = []; + + /** + * @var NamePrettifier + */ + private $prettifier; + + /** + * @var int The number of test results received from the TestRunner + */ + private $testIndex = 0; + + /** + * @var int The number of test results already sent to the output + */ + private $testFlushIndex = 0; + + /** + * @var array Buffer for write() + */ + private $outputBuffer = []; + + /** + * @var bool + */ + private $bufferExecutionOrder = false; + + /** + * @var array array + */ + private $originalExecutionOrder = []; + + /** + * @var string Classname of the current test + */ + private $className = ''; + + /** + * @var string Classname of the previous test; empty for first test + */ + private $lastClassName = ''; + + /** + * @var string Prettified test name of current test + */ + private $testMethod; + + /** + * @var string Test result message of current test + */ + private $testResultMessage; + + /** + * @var bool Test result message of current test contains a verbose dump + */ + private $lastFlushedTestWasVerbose = false; + + public function __construct( + $out = null, + bool $verbose = false, + $colors = self::COLOR_DEFAULT, + bool $debug = false, + $numberOfColumns = 80, + bool $reverse = false + ) { + parent::__construct($out, $verbose, $colors, $debug, $numberOfColumns, $reverse); + + $this->prettifier = new NamePrettifier; + } + + public function setOriginalExecutionOrder(array $order): void + { + $this->originalExecutionOrder = $order; + $this->bufferExecutionOrder = !empty($order); + } + + public function startTest(Test $test): void + { + if (!$test instanceof TestCase && !$test instanceof PhptTestCase && !$test instanceof TestSuite) { + return; + } + + $this->lastTestFailed = false; + $this->lastClassName = $this->className; + $this->testResultMessage = ''; + + if ($test instanceof TestCase) { + $className = $this->prettifier->prettifyTestClass(\get_class($test)); + $testMethod = $this->prettifier->prettifyTestCase($test); + } elseif ($test instanceof PhptTestCase) { + $className = \get_class($test); + $testMethod = $test->getName(); + } + + $this->className = $className; + $this->testMethod = $testMethod; + + parent::startTest($test); + } + + public function endTest(Test $test, float $time): void + { + if (!$test instanceof TestCase && !$test instanceof PhptTestCase && !$test instanceof TestSuite) { + return; + } + + if ($test instanceof TestCase || $test instanceof PhptTestCase) { + $this->testIndex++; + } + + if ($this->lastTestFailed) { + $resultMessage = $this->testResultMessage; + $this->nonSuccessfulTestResults[] = $this->testIndex; + } else { + $resultMessage = $this->formatTestResultMessage( + $this->formatWithColor('fg-green', '✔'), + '', + $time, + $this->verbose + ); + } + + if ($this->bufferExecutionOrder) { + $this->bufferTestResult($test, $resultMessage); + $this->flushOutputBuffer(); + } else { + $this->writeTestResult($resultMessage); + + if ($this->lastTestFailed) { + $this->bufferTestResult($test, $resultMessage); + } + } + + parent::endTest($test, $time); + } + + public function addError(Test $test, \Throwable $t, float $time): void + { + $this->lastTestFailed = true; + $this->testResultMessage = $this->formatTestResultMessage( + $this->formatWithColor('fg-yellow', '✘'), + (string) $t, + $time, + true + ); + } + + public function addWarning(Test $test, Warning $e, float $time): void + { + $this->lastTestFailed = true; + $this->testResultMessage = $this->formatTestResultMessage( + $this->formatWithColor('fg-yellow', '✘'), + (string) $e, + $time, + true + ); + } + + public function addFailure(Test $test, AssertionFailedError $e, float $time): void + { + $this->lastTestFailed = true; + $this->testResultMessage = $this->formatTestResultMessage( + $this->formatWithColor('fg-red', '✘'), + (string) $e, + $time, + true + ); + } + + public function addIncompleteTest(Test $test, \Throwable $t, float $time): void + { + $this->lastTestFailed = true; + $this->testResultMessage = $this->formatTestResultMessage( + $this->formatWithColor('fg-yellow', '∅'), + (string) $t, + $time, + false + ); + } + + public function addRiskyTest(Test $test, \Throwable $t, float $time): void + { + $this->lastTestFailed = true; + $this->testResultMessage = $this->formatTestResultMessage( + $this->formatWithColor('fg-yellow', '☢'), + (string) $t, + $time, + false + ); + } + + public function addSkippedTest(Test $test, \Throwable $t, float $time): void + { + $this->lastTestFailed = true; + $this->testResultMessage = $this->formatTestResultMessage( + $this->formatWithColor('fg-yellow', '→'), + (string) $t, + $time, + false + ); + } + + public function bufferTestResult(Test $test, string $msg): void + { + $this->outputBuffer[$this->testIndex] = [ + 'className' => $this->className, + 'testName' => TestSuiteSorter::getTestSorterUID($test), + 'testMethod' => $this->testMethod, + 'message' => $msg, + 'failed' => $this->lastTestFailed, + 'verbose' => $this->lastFlushedTestWasVerbose, + ]; + } + + public function writeTestResult(string $msg): void + { + $msg = $this->formatTestSuiteHeader($this->lastClassName, $this->className, $msg); + $this->write($msg); + } + + public function writeProgress(string $progress): void + { + } + + public function flush(): void + { + } + + public function printResult(TestResult $result): void + { + $this->printHeader(); + + $this->printNonSuccessfulTestsSummary($result->count()); + + $this->printFooter($result); + } + + protected function printHeader(): void + { + $this->write("\n" . Timer::resourceUsage() . "\n\n"); + } + + private function flushOutputBuffer(): void + { + if ($this->testFlushIndex === $this->testIndex) { + return; + } + + if ($this->testFlushIndex > 0) { + $prevResult = $this->getTestResultByName($this->originalExecutionOrder[$this->testFlushIndex - 1]); + } else { + $prevResult = $this->getEmptyTestResult(); + } + + do { + $flushed = false; + $result = $this->getTestResultByName($this->originalExecutionOrder[$this->testFlushIndex]); + + if (!empty($result)) { + $this->writeBufferTestResult($prevResult, $result); + $this->testFlushIndex++; + $prevResult = $result; + $flushed = true; + } + } while ($flushed && $this->testFlushIndex < $this->testIndex); + } + + private function writeBufferTestResult(array $prevResult, array $result): void + { + // Write spacer line for new suite headers and after verbose messages + if ($prevResult['testName'] !== '' && + ($prevResult['verbose'] === true || $prevResult['className'] !== $result['className'])) { + $this->write("\n"); + } + + // Write suite header + if ($prevResult['className'] !== $result['className']) { + $this->write($result['className'] . "\n"); + } + + // Write the test result itself + $this->write($result['message']); + } + + private function getTestResultByName(string $testName): array + { + foreach ($this->outputBuffer as $result) { + if ($result['testName'] === $testName) { + return $result; + } + } + + return []; + } + + private function formatTestSuiteHeader(?string $lastClassName, string $className, string $msg): string + { + if ($lastClassName === null || $className !== $lastClassName) { + return \sprintf( + "%s%s\n%s", + ($this->lastClassName !== '') ? "\n" : '', + $className, + $msg + ); + } + + return $msg; + } + + private function formatTestResultMessage( + string $symbol, + string $resultMessage, + float $time, + bool $alwaysVerbose = false + ): string { + $additionalInformation = $this->getFormattedAdditionalInformation($resultMessage, $alwaysVerbose); + $msg = \sprintf( + " %s %s%s\n%s", + $symbol, + $this->testMethod, + $this->verbose ? ' ' . $this->getFormattedRuntime($time) : '', + $additionalInformation + ); + + $this->lastFlushedTestWasVerbose = !empty($additionalInformation); + + return $msg; + } + + private function getFormattedRuntime(float $time): string + { + if ($time > 5) { + return $this->formatWithColor('fg-red', \sprintf('[%.2f ms]', $time * 1000)); + } + + if ($time > 1) { + return $this->formatWithColor('fg-yellow', \sprintf('[%.2f ms]', $time * 1000)); + } + + return \sprintf('[%.2f ms]', $time * 1000); + } + + private function getFormattedAdditionalInformation(string $resultMessage, bool $verbose): string + { + if ($resultMessage === '') { + return ''; + } + + if (!($this->verbose || $verbose)) { + return ''; + } + + return \sprintf( + " │\n%s\n", + \implode( + "\n", + \array_map( + function (string $text) { + return \sprintf(' │ %s', $text); + }, + \explode("\n", $resultMessage) + ) + ) + ); + } + + private function printNonSuccessfulTestsSummary(int $numberOfExecutedTests): void + { + if (empty($this->nonSuccessfulTestResults)) { + return; + } + + if ((\count($this->nonSuccessfulTestResults) / $numberOfExecutedTests) >= 0.7) { + return; + } + + $this->write("Summary of non-successful tests:\n\n"); + + $prevResult = $this->getEmptyTestResult(); + + foreach ($this->nonSuccessfulTestResults as $testIndex) { + $result = $this->outputBuffer[$testIndex]; + $this->writeBufferTestResult($prevResult, $result); + $prevResult = $result; + } + } + + private function getEmptyTestResult(): array + { + return [ + 'className' => '', + 'testName' => '', + 'message' => '', + 'failed' => '', + 'verbose' => '', + ]; + } +} diff --git a/vendor/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php b/vendor/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php new file mode 100644 index 00000000..71675434 --- /dev/null +++ b/vendor/phpunit/phpunit/src/Util/TestDox/HtmlResultPrinter.php @@ -0,0 +1,131 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +namespace PHPUnit\Util\TestDox; + +/** + * Prints TestDox documentation in HTML format. + */ +final class HtmlResultPrinter extends ResultPrinter +{ + /** + * @var string + */ + private const PAGE_HEADER = << + + + + Test Documentation + + + +EOT; + + /** + * @var string + */ + private const CLASS_HEADER = <<%s +