Version Description
Download this release
Release Info
Developer | bordoni |
Plugin | Event Tickets |
Version | 4.9 |
Comparing to | |
See all releases |
Code changes from version 4.8.4.1 to 4.9
- common/lang/tribe-common-af.po +45 -7
- common/lang/tribe-common-ar.po +45 -7
- common/lang/tribe-common-bg_BG.po +45 -7
- common/lang/tribe-common-ca.po +45 -7
- common/lang/tribe-common-cs_CZ.po +45 -7
- common/lang/tribe-common-da_DK.po +45 -7
- common/lang/tribe-common-de_DE.mo +0 -0
- common/lang/tribe-common-de_DE.po +47 -9
- common/lang/tribe-common-el.po +45 -7
- common/lang/tribe-common-en_GB.po +45 -7
- common/lang/tribe-common-es_ES.mo +0 -0
- common/lang/tribe-common-es_ES.po +53 -15
- common/lang/tribe-common-et.po +45 -7
- common/lang/tribe-common-fi.po +45 -7
- common/lang/tribe-common-fr_CA.mo +0 -0
- common/lang/tribe-common-fr_CA.po +403 -365
- common/lang/tribe-common-fr_FR.mo +0 -0
- common/lang/tribe-common-fr_FR.po +51 -13
- common/lang/tribe-common-hu_HU.mo +0 -0
- common/lang/tribe-common-hu_HU.po +52 -14
- common/lang/tribe-common-id_ID.po +45 -7
- common/lang/tribe-common-is_IS.po +45 -7
- common/lang/tribe-common-it_IT.mo +0 -0
- common/lang/tribe-common-it_IT.po +52 -14
- common/lang/tribe-common-ja.mo +0 -0
- common/lang/tribe-common-ja.po +53 -15
- common/lang/tribe-common-lt_LT.po +45 -7
- common/lang/tribe-common-lv.po +45 -7
- common/lang/tribe-common-nb_NO.po +45 -7
- common/lang/tribe-common-nl_NL.po +45 -7
- common/lang/tribe-common-pl_PL.po +45 -7
- common/lang/tribe-common-pt_BR.mo +0 -0
- common/lang/tribe-common-pt_BR.po +47 -9
- common/lang/tribe-common-pt_PT.po +45 -7
- common/lang/tribe-common-ro_RO.po +45 -7
- common/lang/tribe-common-ru_RU.po +45 -7
- common/lang/tribe-common-sk_SK.po +45 -7
- common/lang/tribe-common-sl_SI.po +45 -7
- common/lang/tribe-common-sr_RS.po +45 -7
- common/lang/tribe-common-sv_SE.po +45 -7
- common/lang/tribe-common-tr_TR.po +45 -7
- common/lang/tribe-common-zh_CN.po +45 -7
- common/lang/tribe-common-zh_TW.po +45 -7
- common/lang/tribe-common.pot +48 -10
- common/readme.txt +7 -0
- common/src/Tribe/Admin/Notice/Plugin_Upgrade_Notice.php +1 -1
- common/src/Tribe/Ajax/Dropdown.php +1 -1
- common/src/Tribe/Ajax/Operations.php +1 -1
- common/src/Tribe/Asset/Data.php +1 -1
- common/src/Tribe/Cache.php +18 -2
- common/src/Tribe/Cache_Listener.php +8 -4
- common/src/Tribe/Data.php +1 -1
- common/src/Tribe/Documentation/Swagger/Builder_Interface.php +1 -1
- common/src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php +1 -1
- common/src/Tribe/Documentation/Swagger/Image_Size_Definition_Provider.php +1 -1
- common/src/Tribe/Documentation/Swagger/Provider_Interface.php +1 -1
- common/src/Tribe/Duplicate/Post.php +1 -1
- common/src/Tribe/Duplicate/Strategy/Base.php +1 -1
- common/src/Tribe/Duplicate/Strategy/Interface.php +1 -1
- common/src/Tribe/Duplicate/Strategy/Like.php +1 -1
- common/src/Tribe/Duplicate/Strategy_Factory.php +1 -1
- common/src/Tribe/Editor.php +188 -0
- common/src/Tribe/Editor/Assets.php +210 -0
- common/src/Tribe/Editor/Blocks/Abstract.php +207 -0
- common/src/Tribe/Editor/Blocks/Interface.php +70 -0
- common/src/Tribe/Editor/Configuration.php +105 -0
- common/src/Tribe/Editor/Configuration_Interface.php +17 -0
- common/src/Tribe/Editor/Meta.php +217 -0
- common/src/Tribe/Editor/Meta_Interface.php +15 -0
- common/src/Tribe/Editor/Provider.php +49 -0
- common/src/Tribe/Editor/Utils.php +65 -0
- common/src/Tribe/Exception.php +1 -1
- common/src/Tribe/Field_Conditional.php +1 -1
- common/src/Tribe/Languages/Map_Interface.php +1 -1
- common/src/Tribe/Languages/Recaptcha_Map.php +1 -1
- common/src/Tribe/Log.php +1 -1
- common/src/Tribe/Log/Admin.php +1 -1
- common/src/Tribe/Log/Logger.php +1 -1
- common/src/Tribe/Log/Null_Logger.php +1 -1
- common/src/Tribe/Main.php +3 -1
- common/src/Tribe/PUE/Notices.php +57 -0
- common/src/Tribe/Post_History.php +1 -1
- common/src/Tribe/REST/Endpoints/CREATE_Endpoint_Interface.php +1 -1
- common/src/Tribe/REST/Endpoints/READ_Endpoint_Interface.php +1 -1
- common/src/Tribe/REST/Endpoints/UPDATE_Endpoint_Interface.php +1 -1
- common/src/Tribe/REST/Exceptions/Exception.php +1 -1
- common/src/Tribe/REST/Headers/Base_Header.php +1 -1
- common/src/Tribe/REST/Headers/Base_Interface.php +1 -1
- common/src/Tribe/REST/Headers/Disabled.php +1 -1
- common/src/Tribe/REST/Headers/Headers_Interface.php +1 -1
- common/src/Tribe/REST/Headers/Supported.php +1 -1
- common/src/Tribe/REST/Headers/Unsupported.php +1 -1
- common/src/Tribe/REST/Main.php +1 -1
- common/src/Tribe/REST/Messages_Interface.php +1 -1
- common/src/Tribe/REST/Post_Repository.php +1 -1
- common/src/Tribe/REST/Post_Repository_Interface.php +1 -1
- common/src/Tribe/REST/System.php +1 -1
- common/src/Tribe/Repository/Decorator.php +1 -1
- common/src/Tribe/Repository/Formatter_Interface.php +1 -1
- common/src/Tribe/Repository/Implementation_Error.php +1 -1
- common/src/Tribe/Repository/Update_Interface.php +1 -1
- common/src/Tribe/Rewrite.php +1 -1
- common/src/Tribe/Support/Obfuscator.php +1 -1
- common/src/Tribe/Support/Template_Checker.php +1 -1
- common/src/Tribe/Support/Template_Checker_Report.php +1 -1
- common/src/Tribe/Tabbed_View.php +1 -1
- common/src/Tribe/Template.php +1 -1
- common/src/Tribe/Terms.php +1 -1
- common/src/Tribe/Utils/Callback.php +1 -1
- common/src/Tribe/Utils/Coordinates_Provider.php +1 -1
- common/src/Tribe/Utils/JSON.php +1 -1
- common/src/Tribe/Validate.php +1 -1
- common/src/Tribe/Validator/Base.php +1 -1
- common/src/functions/utils.php +30 -0
- common/src/modules/components/form/index.js +1 -0
- common/src/modules/components/form/select/component.js +116 -0
- common/src/modules/components/form/select/index.js +1 -0
- common/src/modules/components/form/select/style.pcss +56 -0
- common/src/modules/components/index.js +5 -0
- common/src/modules/components/plugin-block-hooks/__tests__/__snapshots__/plugin-block-hooks.spec.js.snap +131 -0
- common/src/modules/components/plugin-block-hooks/__tests__/plugin-block-hooks.spec.js +92 -0
- common/src/modules/components/plugin-block-hooks/component.js +138 -0
- common/src/modules/components/plugin-block-hooks/container.js +21 -0
- common/src/modules/components/plugin-block-hooks/index.js +1 -0
- common/src/modules/components/plugin-block-hooks/style.pcss +37 -0
- common/src/modules/components/prevent-block-close/__tests__/component.spec.js +15 -0
- common/src/modules/components/prevent-block-close/component.js +38 -0
- common/src/modules/components/prevent-block-close/index.js +1 -0
- common/src/modules/data/__tests__/utils.test.js +10 -0
- common/src/modules/data/editor/post-types.js +3 -0
- common/src/modules/data/forms/__tests__/__snapshots__/actions.test.js.snap +147 -0
- common/src/modules/data/forms/__tests__/actions.test.js +96 -0
- common/src/modules/data/forms/__tests__/reducer.test.js +88 -0
- common/src/modules/data/forms/__tests__/selectors.test.js +89 -0
- common/src/modules/data/forms/__tests__/types.js +19 -0
- common/src/modules/data/forms/actions.js +153 -0
- common/src/modules/data/forms/index.js +12 -0
- common/src/modules/data/forms/reducer.js +33 -0
- common/src/modules/data/forms/reducers/__tests__/__snapshots__/form.test.js.snap +84 -0
- common/src/modules/data/forms/reducers/__tests__/form.test.js +49 -0
- common/src/modules/data/forms/reducers/__tests__/volatile.test.js +23 -0
- common/src/modules/data/forms/reducers/form.js +58 -0
- common/src/modules/data/forms/reducers/index.js +2 -0
- common/src/modules/data/forms/reducers/volatile.js +15 -0
- common/src/modules/data/forms/selectors.js +39 -0
- common/src/modules/data/forms/types.js +15 -0
- common/src/modules/data/index.js +9 -0
- common/src/modules/data/plugins/__tests__/__snapshots__/actions.test.js.snap +19 -0
- common/src/modules/data/plugins/__tests__/actions.test.js +14 -0
- common/src/modules/data/plugins/__tests__/reducer.test.js +25 -0
- common/src/modules/data/plugins/__tests__/selectors.test.js +23 -0
- common/src/modules/data/plugins/__tests__/types.test.js +12 -0
- common/src/modules/data/plugins/actions.js +18 -0
- common/src/modules/data/plugins/constants.js +4 -0
- common/src/modules/data/plugins/index.js +12 -0
- common/src/modules/data/plugins/proptypes.js +15 -0
- common/src/modules/data/plugins/reducer.js +20 -0
- common/src/modules/data/plugins/selectors.js +9 -0
- common/src/modules/data/plugins/types.js +7 -0
- common/src/modules/data/reducers.js +15 -0
- common/src/modules/data/utils.js +1 -0
- common/src/modules/elements/accordion/__tests__/__snapshots__/element.test.js.snap +71 -0
- common/src/modules/elements/accordion/__tests__/element.test.js +45 -0
- common/src/modules/elements/accordion/element.js +58 -0
- common/src/modules/elements/accordion/row/__tests__/__snapshots__/template.test.js.snap +31 -0
- common/src/modules/elements/accordion/row/__tests__/template.test.js +56 -0
- common/src/modules/elements/accordion/row/template.js +129 -0
- common/src/modules/elements/accordion/style.pcss +8 -0
- common/src/modules/elements/block-icon/index.js +16 -0
- common/src/modules/elements/block-icon/style.pcss +24 -0
- common/src/modules/elements/button/__tests__/__snapshots__/element.test.js.snap +62 -0
- common/src/modules/elements/button/__tests__/element.test.js +60 -0
- common/src/modules/elements/button/element.js +56 -0
- common/src/modules/elements/button/style.pcss +46 -0
- common/src/modules/elements/checkbox-input/__tests__/__snapshots__/element.test.js.snap +47 -0
- common/src/modules/elements/checkbox-input/__tests__/element.test.js +39 -0
- common/src/modules/elements/checkbox-input/element.js +35 -0
- common/src/modules/elements/checkbox-input/style.pcss +25 -0
- common/src/modules/elements/checkbox/__tests__/__snapshots__/element.test.js.snap +168 -0
- common/src/modules/elements/checkbox/__tests__/element.test.js +70 -0
- common/src/modules/elements/checkbox/element.js +61 -0
- common/src/modules/elements/counter/__tests__/__snapshots__/element.test.js.snap +57 -0
- common/src/modules/elements/counter/__tests__/element.test.js +32 -0
- common/src/modules/elements/counter/element.js +37 -0
- common/src/modules/elements/counter/style.pcss +22 -0
- common/src/modules/elements/creatable-select/__tests__/__snapshots__/element.test.js.snap +240 -0
- common/src/modules/elements/creatable-select/__tests__/element.test.js +31 -0
- common/src/modules/elements/creatable-select/element.js +50 -0
- common/src/modules/elements/creatable-select/style.pcss +75 -0
- common/src/modules/elements/day-picker-input/element.js +34 -0
- common/src/modules/elements/day-picker-input/style.pcss +109 -0
- common/src/modules/elements/heading/__tests__/__snapshots__/element.test.js.snap +49 -0
- common/src/modules/elements/heading/__tests__/element.test.js +47 -0
- common/src/modules/elements/heading/element.js +32 -0
- common/src/modules/elements/heading/style.pcss +16 -0
- common/src/modules/elements/image-upload/__tests__/__snapshots__/element.test.js.snap +191 -0
- common/src/modules/elements/image-upload/__tests__/element.test.js +168 -0
- common/src/modules/elements/image-upload/element.js +114 -0
- common/src/modules/elements/image-upload/style.pcss +109 -0
- common/src/modules/elements/image/__tests__/__snapshots__/element.test.js.snap +27 -0
- common/src/modules/elements/image/__tests__/element.test.js +38 -0
- common/src/modules/elements/image/element.js +28 -0
- common/src/modules/elements/index.js +36 -0
- common/src/modules/elements/input/__tests__/__snapshots__/element.test.js.snap +23 -0
- common/src/modules/elements/input/__tests__/element.test.js +28 -0
- common/src/modules/elements/input/element.js +30 -0
- common/src/modules/elements/input/style.pcss +19 -0
- common/src/modules/elements/label-with-link/__tests__/__snapshots__/element.test.js.snap +51 -0
- common/src/modules/elements/label-with-link/__tests__/element.test.js +32 -0
- common/src/modules/elements/label-with-link/element.js +66 -0
- common/src/modules/elements/label-with-link/style.pcss +54 -0
- common/src/modules/elements/label-with-modal/__tests__/__snapshots__/element.test.js.snap +60 -0
- common/src/modules/elements/label-with-modal/__tests__/element.test.js +26 -0
- common/src/modules/elements/label-with-modal/element.js +68 -0
- common/src/modules/elements/label-with-modal/style.pcss +53 -0
- common/src/modules/elements/labeled-item/__tests__/__snapshots__/element.test.js.snap +50 -0
- common/src/modules/elements/labeled-item/__tests__/element.test.js +39 -0
- common/src/modules/elements/labeled-item/element.js +52 -0
- common/src/modules/elements/link/__tests__/__snapshots__/element.test.js.snap +40 -0
- common/src/modules/elements/link/__tests__/element.test.js +39 -0
- common/src/modules/elements/link/element.js +44 -0
- common/src/modules/elements/modal-button/__tests__/__snapshots__/element.test.js.snap +51 -0
- common/src/modules/elements/modal-button/__tests__/element.test.js +46 -0
- common/src/modules/elements/modal-button/element.js +100 -0
- common/src/modules/elements/number-input/__tests__/__snapshots__/element.test.js.snap +55 -0
- common/src/modules/elements/number-input/__tests__/element.test.js +47 -0
- common/src/modules/elements/number-input/element.js +40 -0
- common/src/modules/elements/paragraph/__tests__/__snapshots__/element.test.js.snap +17 -0
- common/src/modules/elements/paragraph/__tests__/element.test.js +19 -0
- common/src/modules/elements/paragraph/element.js +41 -0
- common/src/modules/elements/paragraph/style.pcss +24 -0
- common/src/modules/elements/placeholder/__tests__/__snapshots__/element.test.js.snap +17 -0
- common/src/modules/elements/placeholder/__tests__/element.test.js +18 -0
- common/src/modules/elements/placeholder/element.js +23 -0
- common/src/modules/elements/placeholder/style.pcss +12 -0
- common/src/modules/elements/radio-input/element.js +29 -0
- common/src/modules/elements/radio/element.js +50 -0
- common/src/modules/elements/select/__tests__/__snapshots__/element.test.js.snap +240 -0
- common/src/modules/elements/select/__tests__/element.test.js +31 -0
- common/src/modules/elements/select/element.js +41 -0
- common/src/modules/elements/select/style.pcss +77 -0
- common/src/modules/elements/style.pcss +3 -0
- common/src/modules/elements/textarea/element.js +20 -0
- common/src/modules/elements/time-picker/element.js +201 -0
- common/src/modules/elements/time-picker/style.pcss +103 -0
- common/src/modules/elements/tooltip/__tests__/__snapshots__/element.test.js.snap +22 -0
- common/src/modules/elements/tooltip/__tests__/element.test.js +33 -0
- common/src/modules/elements/tooltip/element.js +56 -0
- common/src/modules/elements/url-input/element.js +27 -0
- common/src/modules/hoc/__tests__/__snapshots__/with-details.test.js.snap +30 -0
- common/src/modules/hoc/__tests__/__snapshots__/with-form.test.js.snap +19 -0
- common/src/modules/hoc/__tests__/__snapshots__/with-save-data.test.js.snap +62 -0
- common/src/modules/hoc/__tests__/__snapshots__/with-store.test.js.snap +18 -0
- common/src/modules/hoc/__tests__/with-details.test.js +65 -0
- common/src/modules/hoc/__tests__/with-form.test.js +89 -0
- common/src/modules/hoc/__tests__/with-save-data.test.js +191 -0
- common/src/modules/hoc/__tests__/with-selected.test.js +97 -0
- common/src/modules/hoc/__tests__/with-store.test.js +34 -0
- common/src/modules/hoc/index.js +5 -0
- common/src/modules/hoc/with-block-closer.js +129 -0
- common/src/modules/hoc/with-form.js +71 -0
- common/src/modules/hoc/with-save-data.js +155 -0
- common/src/modules/hoc/with-selected.js +64 -0
- common/src/modules/hoc/with-store.js +26 -0
- common/src/modules/icons/alert.svg +1 -0
- common/src/modules/icons/clipboard.svg +1 -0
- common/src/modules/icons/close.svg +1 -0
- common/src/modules/icons/cog.svg +1 -0
- common/src/modules/icons/index.js +9 -0
- common/src/modules/icons/info.svg +1 -0
- common/src/modules/icons/link.svg +7 -0
- common/src/modules/icons/pencil.svg +1 -0
- common/src/modules/icons/tag.svg +1 -0
- common/src/modules/icons/tec.svg +1 -0
- common/src/modules/icons/user.svg +1 -0
- common/src/modules/package.json +17 -0
- common/src/modules/store/configure-store.js +37 -0
- common/src/modules/store/index.js +13 -0
- common/src/modules/store/middlewares/index.js +3 -0
- common/src/modules/store/middlewares/request/__tests__/__snapshots__/actions.test.js.snap +11 -0
- common/src/modules/store/middlewares/request/__tests__/actions.test.js +14 -0
- common/src/modules/store/middlewares/request/__tests__/types.test.js +11 -0
- common/src/modules/store/middlewares/request/__tests__/utils.test.js +61 -0
- common/src/modules/store/middlewares/request/__tests__/wp-request.test.js +169 -0
- common/src/modules/store/middlewares/request/actions.js +9 -0
- common/src/modules/store/middlewares/request/index.js +9 -0
- common/src/modules/store/middlewares/request/types.js +6 -0
- common/src/modules/store/middlewares/request/utils.js +32 -0
- common/src/modules/store/middlewares/request/wp-request.js +76 -0
- common/src/modules/utils/__tests__/__snapshots__/globals.test.js.snap +93 -0
- common/src/modules/utils/__tests__/__snapshots__/time.test.js.snap +33 -0
- common/src/modules/utils/__tests__/date.test.js +189 -0
- common/src/modules/utils/__tests__/dom.test.js +73 -0
- common/src/modules/utils/__tests__/globals.test.js +84 -0
- common/src/modules/utils/__tests__/input.test.js +20 -0
- common/src/modules/utils/__tests__/moment.test.js +328 -0
- common/src/modules/utils/__tests__/number.test.js +36 -0
- common/src/modules/utils/__tests__/proptypes.test.js +145 -0
- common/src/modules/utils/__tests__/range.test.js +65 -0
- common/src/modules/utils/__tests__/slide.test.js +12 -0
- common/src/modules/utils/__tests__/string.test.js +135 -0
- common/src/modules/utils/__tests__/time.test.js +222 -0
- common/src/modules/utils/api.js +57 -0
- common/src/modules/utils/date.js +151 -0
- common/src/modules/utils/dom.js +50 -0
- common/src/modules/utils/get-hidden-height.js +28 -0
- common/src/modules/utils/globals.js +31 -0
- common/src/modules/utils/index.js +27 -0
- common/src/modules/utils/input.js +12 -0
- common/src/modules/utils/moment.js +331 -0
- common/src/modules/utils/number.js +22 -0
- common/src/modules/utils/proptypes.js +73 -0
- common/src/modules/utils/range.js +89 -0
- common/src/modules/utils/slide.js +119 -0
- common/src/modules/utils/string.js +109 -0
- common/src/modules/utils/time.js +207 -0
- common/src/modules/utils/timezone.js +72 -0
- common/src/resources/css/accessibility.css +8 -10
- common/src/resources/css/app-shop.css +88 -72
- common/src/resources/css/app/components.css +1 -1
- common/src/resources/css/app/components.min.css +1 -1
- common/src/resources/css/app/components.min.css.map +1 -1
- common/src/resources/css/app/elements.css +5 -4
- common/src/resources/css/app/elements.min.css +5 -4
- common/src/resources/css/app/elements.min.css.map +1 -1
- common/src/resources/css/bumpdown.css +6 -8
- common/src/resources/css/bumpdown.min.css +1 -1
- common/src/resources/css/buttonset.css +6 -6
- common/src/resources/css/datatables.css +215 -212
- common/src/resources/css/datatables.min.css +1 -1
- common/src/resources/css/datepicker.css +182 -201
- common/src/resources/css/datepicker.min.css +1 -1
- common/src/resources/css/dependency.css +10 -10
- common/src/resources/css/tribe-common-admin.css +280 -274
- common/src/resources/css/tribe-common-admin.min.css +1 -1
- common/src/resources/css/tribe-ui.css +10 -3
- common/src/resources/css/tribe-ui.min.css +1 -1
- common/src/resources/css/validation.css +10 -7
- common/src/resources/css/validation.min.css +1 -1
- common/src/resources/images/mascot.png +0 -0
- common/src/resources/js/admin-date-preview.min.js +1 -1
- common/src/resources/js/admin-log-controls.min.js +1 -1
- common/src/resources/js/app-shop.min.js +1 -1
- common/src/resources/js/app/components.js +260 -238
- common/src/resources/js/app/components.min.js +1 -2
common/lang/tribe-common-af.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: af_ZA\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -361,18 +399,18 @@ msgstr ""
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] ""
|
373 |
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] ""
|
@@ -443,11 +481,11 @@ msgstr ""
|
|
443 |
msgid "English"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr ""
|
453 |
|
11 |
"Language: af_ZA\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] ""
|
481 |
msgid "English"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr ""
|
491 |
|
common/lang/tribe-common-ar.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: ar\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -365,12 +403,12 @@ msgstr ""
|
|
365 |
msgid "Events Add-Ons"
|
366 |
msgstr ""
|
367 |
|
368 |
-
#: src/Tribe/PUE/Notices.php:
|
369 |
msgctxt "formatted plugin list"
|
370 |
msgid "%1$s and %2$s"
|
371 |
msgstr ""
|
372 |
|
373 |
-
#: src/Tribe/PUE/Notices.php:
|
374 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
375 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
376 |
msgstr[0] ""
|
@@ -380,7 +418,7 @@ msgstr[3] ""
|
|
380 |
msgstr[4] ""
|
381 |
msgstr[5] ""
|
382 |
|
383 |
-
#: src/Tribe/PUE/Notices.php:
|
384 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
385 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
386 |
msgstr[0] ""
|
@@ -455,11 +493,11 @@ msgstr ""
|
|
455 |
msgid "English"
|
456 |
msgstr ""
|
457 |
|
458 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
459 |
msgid " (opens in a new window)"
|
460 |
msgstr ""
|
461 |
|
462 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
463 |
msgid "Renew Your License Now"
|
464 |
msgstr ""
|
465 |
|
11 |
"Language: ar\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
403 |
msgid "Events Add-Ons"
|
404 |
msgstr ""
|
405 |
|
406 |
+
#: src/Tribe/PUE/Notices.php:440
|
407 |
msgctxt "formatted plugin list"
|
408 |
msgid "%1$s and %2$s"
|
409 |
msgstr ""
|
410 |
|
411 |
+
#: src/Tribe/PUE/Notices.php:359
|
412 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
413 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
414 |
msgstr[0] ""
|
418 |
msgstr[4] ""
|
419 |
msgstr[5] ""
|
420 |
|
421 |
+
#: src/Tribe/PUE/Notices.php:327
|
422 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
423 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
424 |
msgstr[0] ""
|
493 |
msgid "English"
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
497 |
msgid " (opens in a new window)"
|
498 |
msgstr ""
|
499 |
|
500 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
501 |
msgid "Renew Your License Now"
|
502 |
msgstr ""
|
503 |
|
common/lang/tribe-common-bg_BG.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: bg\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -361,18 +399,18 @@ msgstr ""
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] ""
|
373 |
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] ""
|
@@ -443,11 +481,11 @@ msgstr ""
|
|
443 |
msgid "English"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr ""
|
453 |
|
11 |
"Language: bg\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] ""
|
481 |
msgid "English"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr ""
|
491 |
|
common/lang/tribe-common-ca.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: ca\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -361,18 +399,18 @@ msgstr ""
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] ""
|
373 |
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] ""
|
@@ -443,11 +481,11 @@ msgstr ""
|
|
443 |
msgid "English"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr ""
|
453 |
|
11 |
"Language: ca\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] ""
|
481 |
msgid "English"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr ""
|
491 |
|
common/lang/tribe-common-cs_CZ.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: cs_CZ\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -362,19 +400,19 @@ msgstr "Procházet veškerá rozšíření"
|
|
362 |
msgid "Events Add-Ons"
|
363 |
msgstr "Events Add-Ons"
|
364 |
|
365 |
-
#: src/Tribe/PUE/Notices.php:
|
366 |
msgctxt "formatted plugin list"
|
367 |
msgid "%1$s and %2$s"
|
368 |
msgstr "%1$s a %2$s"
|
369 |
|
370 |
-
#: src/Tribe/PUE/Notices.php:
|
371 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
372 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
373 |
msgstr[0] ""
|
374 |
msgstr[1] ""
|
375 |
msgstr[2] ""
|
376 |
|
377 |
-
#: src/Tribe/PUE/Notices.php:
|
378 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
379 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
380 |
msgstr[0] ""
|
@@ -446,11 +484,11 @@ msgstr "Ano, automaticky sdílet mé informace o systému s technickou podporou
|
|
446 |
msgid "English"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
450 |
msgid " (opens in a new window)"
|
451 |
msgstr "(otevře se v novém okně)"
|
452 |
|
453 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
454 |
msgid "Renew Your License Now"
|
455 |
msgstr "Obnovte si svou licenci"
|
456 |
|
11 |
"Language: cs_CZ\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
400 |
msgid "Events Add-Ons"
|
401 |
msgstr "Events Add-Ons"
|
402 |
|
403 |
+
#: src/Tribe/PUE/Notices.php:440
|
404 |
msgctxt "formatted plugin list"
|
405 |
msgid "%1$s and %2$s"
|
406 |
msgstr "%1$s a %2$s"
|
407 |
|
408 |
+
#: src/Tribe/PUE/Notices.php:359
|
409 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
410 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
411 |
msgstr[0] ""
|
412 |
msgstr[1] ""
|
413 |
msgstr[2] ""
|
414 |
|
415 |
+
#: src/Tribe/PUE/Notices.php:327
|
416 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
417 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
418 |
msgstr[0] ""
|
484 |
msgid "English"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
488 |
msgid " (opens in a new window)"
|
489 |
msgstr "(otevře se v novém okně)"
|
490 |
|
491 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
492 |
msgid "Renew Your License Now"
|
493 |
msgstr "Obnovte si svou licenci"
|
494 |
|
common/lang/tribe-common-da_DK.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: da_DK\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -361,18 +399,18 @@ msgstr ""
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] ""
|
373 |
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] ""
|
@@ -443,11 +481,11 @@ msgstr ""
|
|
443 |
msgid "English"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr ""
|
453 |
|
11 |
"Language: da_DK\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] ""
|
481 |
msgid "English"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr ""
|
491 |
|
common/lang/tribe-common-de_DE.mo
CHANGED
Binary file
|
common/lang/tribe-common-de_DE.po
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date: 2018-
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -11,9 +11,47 @@ msgstr ""
|
|
11 |
"Language: de\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
-
msgstr ""
|
17 |
|
18 |
#: src/Tribe/Plugins_API.php:37
|
19 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
@@ -142,11 +180,11 @@ msgstr "Die neue Version von %1$s ist verfügbar. %2$s"
|
|
142 |
msgid "Update now to version %s."
|
143 |
msgstr "Jetzt auf die neuste %s Version aktualisieren."
|
144 |
|
145 |
-
#: src/Tribe/PUE/Notices.php:
|
146 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
147 |
msgstr "Sie können den Status Ihrer Lizenzen jederzeit überprüfen, indem Sie sich in %1$s Ihrem Konto auf theeventscalendar.com%2$s anmelden."
|
148 |
|
149 |
-
#: src/Tribe/PUE/Notices.php:
|
150 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
151 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
152 |
msgstr[0] "Es sieht so aus, als würdest du %1$s verwenden, aber der Lizenzschlüssel ist ungültig. Bitte laden Sie die neueste Version %2$s von Ihrem Konto %3$s."
|
@@ -364,18 +402,18 @@ msgstr "All Add-Ons anzeigen"
|
|
364 |
msgid "Events Add-Ons"
|
365 |
msgstr "Events Add-Ons"
|
366 |
|
367 |
-
#: src/Tribe/PUE/Notices.php:
|
368 |
msgctxt "formatted plugin list"
|
369 |
msgid "%1$s and %2$s"
|
370 |
msgstr "%1$s und %2$s"
|
371 |
|
372 |
-
#: src/Tribe/PUE/Notices.php:
|
373 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
374 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
375 |
msgstr[0] "Sie haben einen Lizenzschlüssel für %1$s eingegeben, aber der Schlüssel wird schon verwendet. %2$sBesuchen Sie die Events Calendar Website%3$s, um Ihre Installationen zu verwalten, Ihre Lizenz zu aktualisieren oder eine neue zu kaufen."
|
376 |
msgstr[1] "Sie haben Lizenzschlüssel für %1$s eingegeben, aber die Schlüssel werden schon verwendet. %2$sBesuchen Sie die Events Calendar Website%3$s, um Ihre Installationen zu verwalten, Ihre Lizenzen zu aktualisieren oder neue zu kaufen."
|
377 |
|
378 |
-
#: src/Tribe/PUE/Notices.php:
|
379 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
380 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
381 |
msgstr[0] "Für %1$s steht ein Update zur Verfügung, aber Ihre Lizenz ist abgelaufen. %2$sBesuchen Sie die Events Calendar Website, um Ihre Lizenz zu verlängern.%3$s"
|
@@ -446,11 +484,11 @@ msgstr "Ja, teile meine System Informationen automatisch mit dem Modern Tribe Su
|
|
446 |
msgid "English"
|
447 |
msgstr "Englisch"
|
448 |
|
449 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
450 |
msgid " (opens in a new window)"
|
451 |
msgstr "(in neuem Fenster öffnen)"
|
452 |
|
453 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
454 |
msgid "Renew Your License Now"
|
455 |
msgstr "Lizenz jetzt erneuern"
|
456 |
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2018-11-12 19:27:19+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
"Language: de\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
+
msgstr "Leeren"
|
55 |
|
56 |
#: src/Tribe/Plugins_API.php:37
|
57 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
180 |
msgid "Update now to version %s."
|
181 |
msgstr "Jetzt auf die neuste %s Version aktualisieren."
|
182 |
|
183 |
+
#: src/Tribe/PUE/Notices.php:397
|
184 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
185 |
msgstr "Sie können den Status Ihrer Lizenzen jederzeit überprüfen, indem Sie sich in %1$s Ihrem Konto auf theeventscalendar.com%2$s anmelden."
|
186 |
|
187 |
+
#: src/Tribe/PUE/Notices.php:282
|
188 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
189 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
190 |
msgstr[0] "Es sieht so aus, als würdest du %1$s verwenden, aber der Lizenzschlüssel ist ungültig. Bitte laden Sie die neueste Version %2$s von Ihrem Konto %3$s."
|
402 |
msgid "Events Add-Ons"
|
403 |
msgstr "Events Add-Ons"
|
404 |
|
405 |
+
#: src/Tribe/PUE/Notices.php:440
|
406 |
msgctxt "formatted plugin list"
|
407 |
msgid "%1$s and %2$s"
|
408 |
msgstr "%1$s und %2$s"
|
409 |
|
410 |
+
#: src/Tribe/PUE/Notices.php:359
|
411 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
412 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
413 |
msgstr[0] "Sie haben einen Lizenzschlüssel für %1$s eingegeben, aber der Schlüssel wird schon verwendet. %2$sBesuchen Sie die Events Calendar Website%3$s, um Ihre Installationen zu verwalten, Ihre Lizenz zu aktualisieren oder eine neue zu kaufen."
|
414 |
msgstr[1] "Sie haben Lizenzschlüssel für %1$s eingegeben, aber die Schlüssel werden schon verwendet. %2$sBesuchen Sie die Events Calendar Website%3$s, um Ihre Installationen zu verwalten, Ihre Lizenzen zu aktualisieren oder neue zu kaufen."
|
415 |
|
416 |
+
#: src/Tribe/PUE/Notices.php:327
|
417 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
418 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
419 |
msgstr[0] "Für %1$s steht ein Update zur Verfügung, aber Ihre Lizenz ist abgelaufen. %2$sBesuchen Sie die Events Calendar Website, um Ihre Lizenz zu verlängern.%3$s"
|
484 |
msgid "English"
|
485 |
msgstr "Englisch"
|
486 |
|
487 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
488 |
msgid " (opens in a new window)"
|
489 |
msgstr "(in neuem Fenster öffnen)"
|
490 |
|
491 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
492 |
msgid "Renew Your License Now"
|
493 |
msgstr "Lizenz jetzt erneuern"
|
494 |
|
common/lang/tribe-common-el.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: el_GR\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -361,18 +399,18 @@ msgstr ""
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] ""
|
373 |
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] ""
|
@@ -443,11 +481,11 @@ msgstr ""
|
|
443 |
msgid "English"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr ""
|
453 |
|
11 |
"Language: el_GR\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] ""
|
481 |
msgid "English"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr ""
|
491 |
|
common/lang/tribe-common-en_GB.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: en_GB\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -361,18 +399,18 @@ msgstr ""
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] ""
|
373 |
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] ""
|
@@ -443,11 +481,11 @@ msgstr ""
|
|
443 |
msgid "English"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr ""
|
453 |
|
11 |
"Language: en_GB\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] ""
|
481 |
msgid "English"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr ""
|
491 |
|
common/lang/tribe-common-es_ES.mo
CHANGED
Binary file
|
common/lang/tribe-common-es_ES.po
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date: 2018-
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -11,21 +11,59 @@ msgstr ""
|
|
11 |
"Language: es\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
17 |
|
18 |
#: src/Tribe/Plugins_API.php:37
|
19 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
20 |
-
msgstr ""
|
21 |
|
22 |
#: src/Tribe/Admin/Notice/Php_Version.php:101
|
23 |
msgid "Starting March 2019, %1$s will no longer work with versions prior to PHP 5.4. Currently your site is using PHP version %2$s. For best results, we recommend using PHP 5.6 or above."
|
24 |
-
msgstr ""
|
25 |
|
26 |
#: src/Tribe/Admin/Notice/Php_Version.php:98
|
27 |
msgid "Starting March 2019, %1$s will no longer support versions prior to PHP 5.6. Your site is currently using PHP version %2$s which will no longer be supported by %1$s. For best results, we recommend using PHP 5.6 or above."
|
28 |
-
msgstr ""
|
29 |
|
30 |
#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425
|
31 |
msgid "Every %d Minutes"
|
@@ -37,7 +75,7 @@ msgstr "Busque en nuestra mesa de ayuda"
|
|
37 |
|
38 |
#: src/Tribe/Plugins_API.php:71
|
39 |
msgid "Event Tickets Plus allows you to sell tickets to your events using WooCommerce, Easy Digital Downloads, or our built in Tribe Commerce tool. Add tickets to your posts and pages, or add %1$sThe Events Calendar%2$s and sell tickets from your event listings. Create custom registration forms, manage attendees, use custom capacity options, and more. Guest check in is easy with QR codes and our custom scanning app."
|
40 |
-
msgstr ""
|
41 |
|
42 |
#: src/Tribe/Validate.php:184
|
43 |
msgid "%s must not be empty"
|
@@ -101,7 +139,7 @@ msgstr "Seleccionar todas las páginas"
|
|
101 |
|
102 |
#: src/Tribe/Main.php:249
|
103 |
msgid "All items on this page were selected. "
|
104 |
-
msgstr "Se han seleccionado todos los elementos de esta página"
|
105 |
|
106 |
#: src/Tribe/Plugins_API.php:94
|
107 |
msgid "Accept user-submitted events on your site! With Community Events, you can accept public submissions or require account sign-on. Settings give you the options to save as a draft or publish automatically, enable categories and tags, and choose whether users can edit/manage their own events or simply submit. Best of all - setup is easy! Just activate, configure the options, and off you go."
|
@@ -139,11 +177,11 @@ msgstr "Hay una versión nueva de %1$s disponible. %2$s"
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr "Actualice ahora a la versión %s."
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr "Siempre puede verificar el estado de sus licencias iniciando sesión en %1$ssu cuenta de theeventscalendar.com%2$s."
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] "Al parecer, está usando %1$s, pero la clave de licencia no es válida. Descargue la última versión %2$sdesde su cuenta%3$s."
|
@@ -361,18 +399,18 @@ msgstr "Explorar todos los complementos"
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr "Complementos para eventos"
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr "%1$s y %2$s"
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] "Usted posee una clave de licencia para %1$s pero la clave agotó las instalaciones. %2$sVisite el sitio web de the Events Calendar%3$s para administrar sus instalaciones, actualizar la licencia o comprar una nueva."
|
373 |
msgstr[1] "Usted tiene claves de licencia para %1$s pero las claves agotaron las instalaciones. %2$sVisite el sitio web de the Events Calendar%3$s para administrar sus instalaciones, actualizar las licencias o comprar nuevas."
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] "Hay una actualización disponible para %1$s pero su licencia ha expirado. %2$sVisite el sitio web de the Events Calendar para renovar su licencia.%3$s"
|
@@ -443,11 +481,11 @@ msgstr "Sí, compartir automáticamente mi información de sistema con el equipo
|
|
443 |
msgid "English"
|
444 |
msgstr "Inglés"
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr " (se abre en una ventana nueva)"
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr "Renueve la licencia ahora"
|
453 |
|
@@ -526,7 +564,7 @@ msgstr "Event Tickets Plus y Community Events"
|
|
526 |
|
527 |
#: src/Tribe/Plugins_API.php:104
|
528 |
msgid "Enable Community Events organizers to offer tickets to their events. You can set flexible payment and fee options. They can even check-in attendees to their events! All of this managed from the front-end of your site without ever needing to grant access to your admin"
|
529 |
-
msgstr "Habilite a los organizadores de Community Events para ofrecer entradas a sus eventos. Puede establecer opciones de pago y tarifas flexibles. También pueden registrar a los asistentes en sus eventos. Todo esto administrado desde la interfaz de usuario de su sitio web sin necesidad de dar acceso a su administración en ningún momento"
|
530 |
|
531 |
#: src/Tribe/Plugins_API.php:48
|
532 |
msgid "The Events Calendar PRO is a paid Add-On to our open source WordPress plugin %1$sThe Events Calendar%2$s. PRO offers a whole host of calendar features including recurring events, custom event attributes, saved venues and organizers, venue pages, advanced event admin and lots more."
|
@@ -1981,7 +2019,7 @@ msgstr "Botswana"
|
|
1981 |
|
1982 |
#: src/Tribe/Languages/Locations.php:83
|
1983 |
msgid "Bosnia and Herzegovina"
|
1984 |
-
msgstr ""
|
1985 |
|
1986 |
#: src/Tribe/Languages/Locations.php:82
|
1987 |
msgid "Bolivia"
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2018-11-12 16:20:04+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
"Language: es\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
55 |
|
56 |
#: src/Tribe/Plugins_API.php:37
|
57 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
58 |
+
msgstr "Event Aggregator adjunta una funcionalidad de importación masiva a su calendario. Antes de saberlo, estará importando eventos desde Meetup, Eventbrite, Google Calendar, iCalendar y otras URL con facilidad. Programe importaciones para que se ejecuten en forma automática en segundo plano o ejecútelas de forma manual cuando esté listo. Prosiga e importe el contenido a un punto central: Event Aggregator lo conecta con un panel central ubicado en la administración para que la gestión de las importaciones sea de lo más simple."
|
59 |
|
60 |
#: src/Tribe/Admin/Notice/Php_Version.php:101
|
61 |
msgid "Starting March 2019, %1$s will no longer work with versions prior to PHP 5.4. Currently your site is using PHP version %2$s. For best results, we recommend using PHP 5.6 or above."
|
62 |
+
msgstr "A partir de marzo de 2019, %1$s ya no operará con versiones anteriores a PHP 5.4. Actualmente, su sitio web usa la versión PHP %2$s. Para obtener mejores resultados, le recomendamos usar PHP 5.6 o posterior."
|
63 |
|
64 |
#: src/Tribe/Admin/Notice/Php_Version.php:98
|
65 |
msgid "Starting March 2019, %1$s will no longer support versions prior to PHP 5.6. Your site is currently using PHP version %2$s which will no longer be supported by %1$s. For best results, we recommend using PHP 5.6 or above."
|
66 |
+
msgstr "A partir de marzo de 2019, %1$s ya no operará con versiones anteriores a PHP 5.6. Actualmente, su sitio web usa la versión PHP %2$s, la cual dejará de ser compatible con %1$s. Para obtener mejores resultados, le recomendamos usar PHP 5.6 o posterior."
|
67 |
|
68 |
#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425
|
69 |
msgid "Every %d Minutes"
|
75 |
|
76 |
#: src/Tribe/Plugins_API.php:71
|
77 |
msgid "Event Tickets Plus allows you to sell tickets to your events using WooCommerce, Easy Digital Downloads, or our built in Tribe Commerce tool. Add tickets to your posts and pages, or add %1$sThe Events Calendar%2$s and sell tickets from your event listings. Create custom registration forms, manage attendees, use custom capacity options, and more. Guest check in is easy with QR codes and our custom scanning app."
|
78 |
+
msgstr "Event Tickets Plus le permite vender entradas para sus eventos por medio de WooCommerce, Easy Digital Downloads o nuestra herramienta integrada Tribe Commerce. Agregue entradas a sus publicaciones y páginas, o agregue %1$sThe Events Calendar%2$s y venda entradas desde su lista de eventos. Cree formularios de registro personalizados, administre asistentes, use opciones de capacidad personalizadas, y más. El registro de los invitados se facilita con el uso de código QR y nuestra aplicación de lectura exclusiva."
|
79 |
|
80 |
#: src/Tribe/Validate.php:184
|
81 |
msgid "%s must not be empty"
|
139 |
|
140 |
#: src/Tribe/Main.php:249
|
141 |
msgid "All items on this page were selected. "
|
142 |
+
msgstr "Se han seleccionado todos los elementos de esta página "
|
143 |
|
144 |
#: src/Tribe/Plugins_API.php:94
|
145 |
msgid "Accept user-submitted events on your site! With Community Events, you can accept public submissions or require account sign-on. Settings give you the options to save as a draft or publish automatically, enable categories and tags, and choose whether users can edit/manage their own events or simply submit. Best of all - setup is easy! Just activate, configure the options, and off you go."
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr "Actualice ahora a la versión %s."
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr "Siempre puede verificar el estado de sus licencias iniciando sesión en %1$ssu cuenta de theeventscalendar.com%2$s."
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] "Al parecer, está usando %1$s, pero la clave de licencia no es válida. Descargue la última versión %2$sdesde su cuenta%3$s."
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr "Complementos para eventos"
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr "%1$s y %2$s"
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] "Usted posee una clave de licencia para %1$s pero la clave agotó las instalaciones. %2$sVisite el sitio web de the Events Calendar%3$s para administrar sus instalaciones, actualizar la licencia o comprar una nueva."
|
411 |
msgstr[1] "Usted tiene claves de licencia para %1$s pero las claves agotaron las instalaciones. %2$sVisite el sitio web de the Events Calendar%3$s para administrar sus instalaciones, actualizar las licencias o comprar nuevas."
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] "Hay una actualización disponible para %1$s pero su licencia ha expirado. %2$sVisite el sitio web de the Events Calendar para renovar su licencia.%3$s"
|
481 |
msgid "English"
|
482 |
msgstr "Inglés"
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr " (se abre en una ventana nueva)"
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr "Renueve la licencia ahora"
|
491 |
|
564 |
|
565 |
#: src/Tribe/Plugins_API.php:104
|
566 |
msgid "Enable Community Events organizers to offer tickets to their events. You can set flexible payment and fee options. They can even check-in attendees to their events! All of this managed from the front-end of your site without ever needing to grant access to your admin"
|
567 |
+
msgstr "Habilite a los organizadores de Community Events para ofrecer entradas a sus eventos. Puede establecer opciones de pago y tarifas flexibles. También pueden registrar a los asistentes en sus eventos. Todo esto administrado desde la interfaz de usuario de su sitio web sin necesidad de dar acceso a su administración en ningún momento."
|
568 |
|
569 |
#: src/Tribe/Plugins_API.php:48
|
570 |
msgid "The Events Calendar PRO is a paid Add-On to our open source WordPress plugin %1$sThe Events Calendar%2$s. PRO offers a whole host of calendar features including recurring events, custom event attributes, saved venues and organizers, venue pages, advanced event admin and lots more."
|
2019 |
|
2020 |
#: src/Tribe/Languages/Locations.php:83
|
2021 |
msgid "Bosnia and Herzegovina"
|
2022 |
+
msgstr "Bosnia y Herzegovina"
|
2023 |
|
2024 |
#: src/Tribe/Languages/Locations.php:82
|
2025 |
msgid "Bolivia"
|
common/lang/tribe-common-et.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: et_EE\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -361,18 +399,18 @@ msgstr ""
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] ""
|
373 |
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] ""
|
@@ -443,11 +481,11 @@ msgstr ""
|
|
443 |
msgid "English"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr ""
|
453 |
|
11 |
"Language: et_EE\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] ""
|
481 |
msgid "English"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr ""
|
491 |
|
common/lang/tribe-common-fi.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: fi\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -361,18 +399,18 @@ msgstr ""
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] ""
|
373 |
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] ""
|
@@ -443,11 +481,11 @@ msgstr ""
|
|
443 |
msgid "English"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr ""
|
453 |
|
11 |
"Language: fi\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] ""
|
481 |
msgid "English"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr ""
|
491 |
|
common/lang/tribe-common-fr_CA.mo
CHANGED
Binary file
|
common/lang/tribe-common-fr_CA.po
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date:
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -11,648 +11,686 @@ msgstr ""
|
|
11 |
"Language: fr_CA\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
17 |
|
18 |
#: src/Tribe/Plugins_API.php:37
|
19 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
20 |
-
msgstr ""
|
21 |
|
22 |
#: src/Tribe/Admin/Notice/Php_Version.php:101
|
23 |
msgid "Starting March 2019, %1$s will no longer work with versions prior to PHP 5.4. Currently your site is using PHP version %2$s. For best results, we recommend using PHP 5.6 or above."
|
24 |
-
msgstr ""
|
25 |
|
26 |
#: src/Tribe/Admin/Notice/Php_Version.php:98
|
27 |
msgid "Starting March 2019, %1$s will no longer support versions prior to PHP 5.6. Your site is currently using PHP version %2$s which will no longer be supported by %1$s. For best results, we recommend using PHP 5.6 or above."
|
28 |
-
msgstr ""
|
29 |
|
30 |
#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425
|
31 |
msgid "Every %d Minutes"
|
32 |
-
msgstr ""
|
33 |
|
34 |
#: src/admin-views/tribe-options-help.php:33
|
35 |
msgid "Search our support help desk"
|
36 |
-
msgstr ""
|
37 |
|
38 |
#: src/Tribe/Plugins_API.php:71
|
39 |
msgid "Event Tickets Plus allows you to sell tickets to your events using WooCommerce, Easy Digital Downloads, or our built in Tribe Commerce tool. Add tickets to your posts and pages, or add %1$sThe Events Calendar%2$s and sell tickets from your event listings. Create custom registration forms, manage attendees, use custom capacity options, and more. Guest check in is easy with QR codes and our custom scanning app."
|
40 |
-
msgstr ""
|
41 |
|
42 |
#: src/Tribe/Validate.php:184
|
43 |
msgid "%s must not be empty"
|
44 |
-
msgstr ""
|
45 |
|
46 |
#: src/Tribe/Validate.php:545
|
47 |
msgid "%s must be an email address."
|
48 |
-
msgstr ""
|
49 |
|
50 |
#: src/Tribe/Languages/Locations.php:252
|
51 |
msgid "Sint Maarten"
|
52 |
-
msgstr ""
|
53 |
|
54 |
#: src/Tribe/Languages/Locations.php:245
|
55 |
msgid "São Tomé and Príncipe"
|
56 |
-
msgstr ""
|
57 |
|
58 |
#: src/Tribe/Languages/Locations.php:238
|
59 |
msgid "Saint Helena"
|
60 |
-
msgstr ""
|
61 |
|
62 |
#: src/Tribe/Languages/Locations.php:237
|
63 |
msgid "Saint Barthélemy"
|
64 |
-
msgstr ""
|
65 |
|
66 |
#: src/Tribe/Languages/Locations.php:113
|
67 |
msgid "Curaçao"
|
68 |
-
msgstr ""
|
69 |
|
70 |
#: src/Tribe/Languages/Locations.php:103
|
71 |
msgid "Collectivity of Saint Martin"
|
72 |
-
msgstr ""
|
73 |
|
74 |
#: src/Tribe/Languages/Locations.php:57
|
75 |
msgid "Åland Islands"
|
76 |
-
msgstr ""
|
77 |
|
78 |
#: src/admin-views/tribe-options-help.php:20
|
79 |
msgid "Check out our %s for developers."
|
80 |
-
msgstr ""
|
81 |
|
82 |
#: src/admin-views/tribe-options-help.php:18
|
83 |
msgid "Want to dive deeper?"
|
84 |
-
msgstr ""
|
85 |
|
86 |
#: src/admin-views/tribe-options-display.php:28
|
87 |
msgid "The following three fields accept the date format options available to the PHP %1$s function. <a href=\"%2$s\" target=\"_blank\">Learn how to make your own date format here</a>."
|
88 |
-
msgstr ""
|
89 |
|
90 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:57
|
91 |
msgid "A list of links to the term own, archive and parent REST URL"
|
92 |
-
msgstr ""
|
93 |
|
94 |
#: src/Tribe/Main.php:251
|
95 |
msgid "Clear Selection."
|
96 |
-
msgstr ""
|
97 |
|
98 |
#: src/Tribe/Main.php:250
|
99 |
msgid "Select all pages"
|
100 |
-
msgstr ""
|
101 |
|
102 |
#: src/Tribe/Main.php:249
|
103 |
msgid "All items on this page were selected. "
|
104 |
-
msgstr ""
|
105 |
|
106 |
#: src/Tribe/Plugins_API.php:94
|
107 |
msgid "Accept user-submitted events on your site! With Community Events, you can accept public submissions or require account sign-on. Settings give you the options to save as a draft or publish automatically, enable categories and tags, and choose whether users can edit/manage their own events or simply submit. Best of all - setup is easy! Just activate, configure the options, and off you go."
|
108 |
-
msgstr ""
|
109 |
|
110 |
#: src/Tribe/Ajax/Dropdown.php:243
|
111 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
112 |
-
msgstr ""
|
113 |
|
114 |
#: src/Tribe/Ajax/Dropdown.php:193
|
115 |
msgid "Empty data set for this dropdown"
|
116 |
-
msgstr ""
|
117 |
|
118 |
#: src/Tribe/Ajax/Dropdown.php:180
|
119 |
msgid "Missing data source for this dropdown"
|
120 |
-
msgstr ""
|
121 |
|
122 |
#: src/Tribe/Ajax/Dropdown.php:38
|
123 |
msgid "Cannot look for Terms without a taxonomy"
|
124 |
-
msgstr ""
|
125 |
|
126 |
#: src/Tribe/Plugins_API.php:60
|
127 |
msgid "Event Tickets provides a simple way for visitors to RSVP to your events. As a standalone plugin, it enables you to add RSVP functionality to posts or pages. When paired with The Events Calendar, you can add that same RSVP functionality directly to your event listings."
|
128 |
-
msgstr ""
|
129 |
|
130 |
#: src/Tribe/Plugins_API.php:28
|
131 |
msgid "Create an events calendar and manage it with ease. The Events Calendar plugin provides professional-level quality and features backed by a team you can trust."
|
132 |
-
msgstr ""
|
133 |
|
134 |
#: src/Tribe/PUE/Checker.php:1103
|
135 |
msgid "There is a new version of %1$s available. %2$s"
|
136 |
-
msgstr ""
|
137 |
|
138 |
#: src/Tribe/PUE/Checker.php:1092
|
139 |
msgid "Update now to version %s."
|
140 |
-
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
-
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
-
msgstr[0] ""
|
150 |
-
msgstr[1] ""
|
151 |
|
152 |
#: src/Tribe/PUE/Checker.php:984
|
153 |
msgid "Please refresh the page and try your request again."
|
154 |
-
msgstr ""
|
155 |
|
156 |
#: src/Tribe/Plugins_API.php:129
|
157 |
msgid "Take your image widgets to the next level with Image Widget Plus! We've taken the simple functionality of our basic Image Widget and amped it up with several popular feature requests - multiple image support, slideshow, lightbox, and random image - all backed by a full year of premium support."
|
158 |
-
msgstr ""
|
159 |
|
160 |
#: src/Tribe/Plugins_API.php:125
|
161 |
msgid "Image Widget Plus"
|
162 |
-
msgstr ""
|
163 |
|
164 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:52
|
165 |
msgid "The URL to the term archive page"
|
166 |
-
msgstr ""
|
167 |
|
168 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:48
|
169 |
msgid "The number of posts associated with the term"
|
170 |
-
msgstr ""
|
171 |
|
172 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:44
|
173 |
msgid "The term parent term if any"
|
174 |
-
msgstr ""
|
175 |
|
176 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:40
|
177 |
msgid "The term description"
|
178 |
-
msgstr ""
|
179 |
|
180 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:36
|
181 |
msgid "The taxonomy the term belongs to"
|
182 |
-
msgstr ""
|
183 |
|
184 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:32
|
185 |
msgid "The term slug"
|
186 |
-
msgstr ""
|
187 |
|
188 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:28
|
189 |
msgid "The term name"
|
190 |
-
msgstr ""
|
191 |
|
192 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:24
|
193 |
msgid "The WordPress term ID"
|
194 |
-
msgstr ""
|
195 |
|
196 |
#: src/Tribe/Documentation/Swagger/Image_Size_Definition_Provider.php:37
|
197 |
msgid "The link to the image in the specified size on the site"
|
198 |
-
msgstr ""
|
199 |
|
200 |
#: src/Tribe/Documentation/Swagger/Image_Size_Definition_Provider.php:32
|
201 |
msgid "The image mime-type"
|
202 |
-
msgstr ""
|
203 |
|
204 |
#: src/Tribe/Documentation/Swagger/Image_Size_Definition_Provider.php:28
|
205 |
msgid "The image height in pixels in the specified size"
|
206 |
-
msgstr ""
|
207 |
|
208 |
#: src/Tribe/Documentation/Swagger/Image_Size_Definition_Provider.php:24
|
209 |
msgid "The image width in pixels in the specified size"
|
210 |
-
msgstr ""
|
211 |
|
212 |
#: src/Tribe/Documentation/Swagger/Image_Definition_Provider.php:45
|
213 |
msgid "The details about each size available for the image"
|
214 |
-
msgstr ""
|
215 |
|
216 |
#: src/Tribe/Documentation/Swagger/Image_Definition_Provider.php:41
|
217 |
msgid "The image natural height in pixels"
|
218 |
-
msgstr ""
|
219 |
|
220 |
#: src/Tribe/Documentation/Swagger/Image_Definition_Provider.php:37
|
221 |
msgid "The image natural width in pixels"
|
222 |
-
msgstr ""
|
223 |
|
224 |
#: src/Tribe/Documentation/Swagger/Image_Definition_Provider.php:33
|
225 |
msgid "The image file extension"
|
226 |
-
msgstr ""
|
227 |
|
228 |
#: src/Tribe/Documentation/Swagger/Image_Definition_Provider.php:29
|
229 |
msgid "The image WordPress post ID"
|
230 |
-
msgstr ""
|
231 |
|
232 |
#: src/Tribe/Documentation/Swagger/Image_Definition_Provider.php:25
|
233 |
msgid "The URL to the full size version of the image"
|
234 |
-
msgstr ""
|
235 |
|
236 |
#: src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php:44
|
237 |
msgid "The date seconds"
|
238 |
-
msgstr ""
|
239 |
|
240 |
#: src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php:40
|
241 |
msgid "The date minutes"
|
242 |
-
msgstr ""
|
243 |
|
244 |
#: src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php:36
|
245 |
msgid "The date hour"
|
246 |
-
msgstr ""
|
247 |
|
248 |
#: src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php:32
|
249 |
msgid "The date day"
|
250 |
-
msgstr ""
|
251 |
|
252 |
#: src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php:28
|
253 |
msgid "The date month"
|
254 |
-
msgstr ""
|
255 |
|
256 |
#: src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php:24
|
257 |
msgid "The date year"
|
258 |
-
msgstr ""
|
259 |
|
260 |
#: src/Tribe/Documentation/Swagger/Cost_Details_Definition_Provider.php:34
|
261 |
msgid "A sorted array of all the numeric values for the cost"
|
262 |
-
msgstr ""
|
263 |
|
264 |
#: src/Tribe/Documentation/Swagger/Cost_Details_Definition_Provider.php:28
|
265 |
msgid "The position of the currency symbol in the cost string"
|
266 |
-
msgstr ""
|
267 |
|
268 |
#: src/Tribe/Documentation/Swagger/Cost_Details_Definition_Provider.php:24
|
269 |
msgid "The cost currency symbol"
|
270 |
-
msgstr ""
|
271 |
|
272 |
#: src/Tribe/PUE/Checker.php:497
|
273 |
msgid "%1$sBuy a license%2$s for the Event Aggregator service to access additional import features."
|
274 |
-
msgstr ""
|
275 |
|
276 |
#: src/Tribe/Validate.php:248
|
277 |
msgid "%s must be a whole number."
|
278 |
-
msgstr ""
|
279 |
|
280 |
#: src/Tribe/Settings.php:281 src/Tribe/Settings.php:282
|
281 |
msgid "Events Help"
|
282 |
-
msgstr ""
|
283 |
|
284 |
#: src/Tribe/PUE/Checker.php:1678
|
285 |
msgid "Expired license. Consult your network administrator."
|
286 |
-
msgstr ""
|
287 |
|
288 |
#: src/Tribe/PUE/Checker.php:1677
|
289 |
msgid "No license entered. Consult your network administrator."
|
290 |
-
msgstr ""
|
291 |
|
292 |
#: src/Tribe/PUE/Checker.php:1676
|
293 |
msgid "A valid license has been entered by your network administrator."
|
294 |
-
msgstr ""
|
295 |
|
296 |
#: src/Tribe/PUE/Checker.php:550
|
297 |
msgid "Site License Key"
|
298 |
-
msgstr ""
|
299 |
|
300 |
#: src/Tribe/PUE/Checker.php:539
|
301 |
msgid "Check this box if you wish to override the network license key with your own"
|
302 |
-
msgstr ""
|
303 |
|
304 |
#: src/Tribe/PUE/Checker.php:538
|
305 |
msgid "Override network license key"
|
306 |
-
msgstr ""
|
307 |
|
308 |
#: src/Tribe/PUE/Checker.php:529 src/Tribe/PUE/Checker.php:563
|
309 |
msgid "License Key Status:"
|
310 |
-
msgstr ""
|
311 |
|
312 |
#: src/Tribe/Customizer.php:643
|
313 |
msgid "Use the following panel of your customizer to change the styling of your Calendar and Event pages."
|
314 |
-
msgstr ""
|
315 |
|
316 |
#: src/Tribe/Extension.php:368
|
317 |
msgid "Unable to run Tribe Extensions. Your website host is running PHP 5.2 or older, and has likely disabled or misconfigured debug_backtrace(). You, or your website host, will need to upgrade PHP or properly configure debug_backtrace() for Tribe Extensions to work."
|
318 |
-
msgstr ""
|
319 |
|
320 |
#: src/Tribe/Extension.php:144
|
321 |
msgid "Tutorial"
|
322 |
-
msgstr ""
|
323 |
|
324 |
#: src/admin-views/app-shop.php:31
|
325 |
msgid "Installed"
|
326 |
-
msgstr ""
|
327 |
|
328 |
#: src/admin-views/app-shop.php:29
|
329 |
msgid "Installed Add-Ons"
|
330 |
-
msgstr ""
|
331 |
|
332 |
#: src/Tribe/Admin/Notice/Php_Version.php:60
|
333 |
#: src/Tribe/Admin/Notice/Plugin_Download.php:92
|
334 |
msgctxt "the final separator in a list of two or more items"
|
335 |
msgid " and "
|
336 |
-
msgstr ""
|
337 |
|
338 |
#: src/Tribe/Admin/Notice/Php_Version.php:59
|
339 |
#: src/Tribe/Admin/Notice/Plugin_Download.php:91
|
340 |
msgctxt "separator used in a list of items"
|
341 |
msgid ", "
|
342 |
-
msgstr ""
|
343 |
|
344 |
#: src/admin-views/tribe-options-help.php:55
|
345 |
msgid "Event Log"
|
346 |
-
msgstr ""
|
347 |
|
348 |
#: src/admin-views/tribe-options-help.php:42
|
349 |
msgid "The details of your calendar plugin and settings is often needed for you or our staff to help troubleshoot an issue. Please opt-in below to automatically share your system information with our support team. This will allow us to assist you faster if you post in our help desk."
|
350 |
-
msgstr ""
|
351 |
|
352 |
#: src/admin-views/app-shop.php:26
|
353 |
msgid "Buy This Add-On"
|
354 |
-
msgstr ""
|
355 |
|
356 |
#: src/admin-views/app-shop.php:5
|
357 |
msgid "Browse All Add-Ons"
|
358 |
-
msgstr ""
|
359 |
|
360 |
#: src/admin-views/app-shop.php:4
|
361 |
msgid "Events Add-Ons"
|
362 |
-
msgstr ""
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
-
msgstr ""
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
-
msgstr[0] ""
|
373 |
-
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
-
msgstr[0] ""
|
379 |
-
msgstr[1] ""
|
380 |
|
381 |
#: src/Tribe/PUE/Checker.php:1062
|
382 |
msgid "There is an update for %s. %sRenew your license%s to get access to bug fixes, security updates, and new features."
|
383 |
-
msgstr ""
|
384 |
|
385 |
#: src/Tribe/PUE/Checker.php:1005
|
386 |
msgid "There is an update for %s. You'll need to %scheck your license%s to have access to updates, downloads, and support."
|
387 |
-
msgstr ""
|
388 |
|
389 |
#: src/Tribe/Admin/Help_Page.php:219 src/Tribe/Plugins_API.php:34
|
390 |
msgid "Event Aggregator"
|
391 |
-
msgstr ""
|
392 |
|
393 |
#: src/Tribe/Admin/Notice/Plugin_Download.php:75
|
394 |
msgid "To begin using %1$s, please install and activate the latest version of %2$s."
|
395 |
-
msgstr ""
|
396 |
|
397 |
#: src/admin-views/tribe-options-licenses.php:30
|
398 |
msgid "Not seeing an update but expecting one? In WordPress, go to %1$sDashboard > Updates%2$s and click \"Check Again\"."
|
399 |
-
msgstr ""
|
400 |
|
401 |
#: src/admin-views/tribe-options-licenses.php:25
|
402 |
msgid "If you're seeing a red message telling you that your key isn't valid or is out of installs, visit %1$s to manage your installs or renew / upgrade your license."
|
403 |
-
msgstr ""
|
404 |
|
405 |
#: src/admin-views/tribe-options-licenses.php:22
|
406 |
msgid "Each paid add-on has its own unique license key. Simply paste the key into its appropriate field below, and give it a moment to validate. You know you're set when a green expiration date appears alongside a \"valid\" message."
|
407 |
-
msgstr ""
|
408 |
|
409 |
#: src/admin-views/tribe-options-licenses.php:15
|
410 |
msgid "The license key you received when completing your purchase from %1$s will grant you access to support and updates until it expires. You do not need to enter the key below for the plugins to work, but you will need to enter it to get automatic updates. %3$sFind your license keys at %2$s%4$s."
|
411 |
-
msgstr ""
|
412 |
|
413 |
#: src/admin-views/tribe-options-licenses.php:11
|
414 |
#: src/admin-views/tribe-options-licenses.php:16
|
415 |
msgid " (opens in new window)"
|
416 |
-
msgstr ""
|
417 |
|
418 |
#: src/Tribe/Languages/Locations.php:110
|
419 |
msgid "Côte d'Ivoire"
|
420 |
-
msgstr ""
|
421 |
|
422 |
#: src/Tribe/Support.php:372
|
423 |
msgid "Unique System Info Key Generated"
|
424 |
-
msgstr ""
|
425 |
|
426 |
#: src/Tribe/Support.php:358 src/Tribe/Support.php:384
|
427 |
msgid "Permission Error"
|
428 |
-
msgstr ""
|
429 |
|
430 |
#: src/Tribe/Support.php:325 src/Tribe/Support.php:330
|
431 |
msgid "Invalid Key"
|
432 |
-
msgstr ""
|
433 |
|
434 |
#: src/Tribe/Support.php:306
|
435 |
msgid "Your system information will only be used by the Modern Tribe support team. All information is stored securely. We do not share this information with any third parties."
|
436 |
-
msgstr ""
|
437 |
|
438 |
#: src/Tribe/Support.php:305
|
439 |
msgid "Yes, automatically share my system information with the Modern Tribe support team"
|
440 |
-
msgstr ""
|
441 |
|
442 |
#: src/Tribe/Support.php:171
|
443 |
msgid "English"
|
444 |
-
msgstr ""
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
-
msgstr ""
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
-
msgstr ""
|
453 |
|
454 |
#: src/Tribe/Main.php:261
|
455 |
msgid ": Selected 1 row"
|
456 |
-
msgstr ""
|
457 |
|
458 |
#: src/Tribe/Main.php:260
|
459 |
msgid ": Selected %d rows"
|
460 |
-
msgstr ""
|
461 |
|
462 |
#: src/Tribe/Main.php:255
|
463 |
msgid "Previous"
|
464 |
-
msgstr ""
|
465 |
|
466 |
#: src/Tribe/Main.php:253
|
467 |
msgid "All"
|
468 |
-
msgstr ""
|
469 |
|
470 |
#: src/Tribe/Main.php:247
|
471 |
msgid "No matching records found"
|
472 |
-
msgstr ""
|
473 |
|
474 |
#: src/Tribe/Main.php:246
|
475 |
msgid "(filtered from _MAX_ total entries)"
|
476 |
-
msgstr ""
|
477 |
|
478 |
#: src/Tribe/Main.php:245
|
479 |
msgid "Showing 0 to 0 of 0 entries"
|
480 |
-
msgstr ""
|
481 |
|
482 |
#: src/Tribe/Main.php:244
|
483 |
msgid "Showing _START_ to _END_ of _TOTAL_ entries"
|
484 |
-
msgstr ""
|
485 |
|
486 |
#: src/Tribe/Main.php:243
|
487 |
msgid "No data available in table"
|
488 |
-
msgstr ""
|
489 |
|
490 |
#: src/Tribe/Main.php:242
|
491 |
msgid "Show _MENU_ entries"
|
492 |
-
msgstr ""
|
493 |
|
494 |
#: src/Tribe/Main.php:240
|
495 |
msgid ": activate to sort column descending"
|
496 |
-
msgstr ""
|
497 |
|
498 |
#: src/Tribe/Main.php:239
|
499 |
msgid ": activate to sort column ascending"
|
500 |
-
msgstr ""
|
501 |
|
502 |
#: src/Tribe/Main.php:284
|
503 |
msgid "Press \"Cmd + C\" to copy"
|
504 |
-
msgstr ""
|
505 |
|
506 |
#: src/Tribe/Main.php:283
|
507 |
msgid "System info copied"
|
508 |
-
msgstr ""
|
509 |
|
510 |
#: src/Tribe/Main.php:282 src/admin-views/tribe-options-help.php:50
|
511 |
msgid "Copy to clipboard"
|
512 |
-
msgstr ""
|
513 |
|
514 |
#: src/Tribe/Error.php:38
|
515 |
msgid "An Unknown error occurred"
|
516 |
-
msgstr ""
|
517 |
|
518 |
#: src/Tribe/Plugins_API.php:116
|
519 |
msgid "The Eventbrite Tickets add-on allows you to create & sell tickets through The Events Calendar using the power of %1$sEventbrite%2$s. Whether you’re creating your ticket on the WordPress dashboard or importing the details of an already-existing event from %1$sEventbrite.com%2$s, this add-on brings the power of the Eventbrite API to your calendar."
|
520 |
-
msgstr ""
|
521 |
|
522 |
#: src/Tribe/Plugins_API.php:105
|
523 |
msgctxt "Names of required plugins for Community Tickets"
|
524 |
msgid "Event Tickets Plus and Community Events"
|
525 |
-
msgstr ""
|
526 |
|
527 |
#: src/Tribe/Plugins_API.php:104
|
528 |
msgid "Enable Community Events organizers to offer tickets to their events. You can set flexible payment and fee options. They can even check-in attendees to their events! All of this managed from the front-end of your site without ever needing to grant access to your admin"
|
529 |
-
msgstr ""
|
530 |
|
531 |
#: src/Tribe/Plugins_API.php:48
|
532 |
msgid "The Events Calendar PRO is a paid Add-On to our open source WordPress plugin %1$sThe Events Calendar%2$s. PRO offers a whole host of calendar features including recurring events, custom event attributes, saved venues and organizers, venue pages, advanced event admin and lots more."
|
533 |
-
msgstr ""
|
534 |
|
535 |
#: src/Tribe/Plugins_API.php:84
|
536 |
msgid "It is awesome that your calendar is <em>THE PLACE</em> to get hooked up with prime choice ways to spend time. You have more events than Jabba the Hutt has rolls. Too bad visitors are hiring a personal assistant to go through all the choices. Ever wish you could just filter the calendar to only show events in walking distance, on a weekend, that are free? BOOM. Now you can. Introducing… the Filter Bar."
|
537 |
-
msgstr ""
|
538 |
|
539 |
#: src/Tribe/Admin/Help_Page.php:227 src/Tribe/Plugins_API.php:80
|
540 |
msgid "Filter Bar"
|
541 |
-
msgstr ""
|
542 |
|
543 |
#: src/Tribe/Credits.php:64
|
544 |
msgid "Rate %1$sEvent Tickets%2$s %3$s"
|
545 |
-
msgstr ""
|
546 |
|
547 |
#: src/Tribe/Credits.php:55
|
548 |
msgid "Rate %1$sThe Events Calendar%2$s %3$s"
|
549 |
-
msgstr ""
|
550 |
|
551 |
#: src/Tribe/Log/Null_Logger.php:26
|
552 |
msgid "Null logger (will log nothing)"
|
553 |
-
msgstr ""
|
554 |
|
555 |
#: src/admin-views/event-log.php:117
|
556 |
msgid "Download log"
|
557 |
-
msgstr ""
|
558 |
|
559 |
#: src/admin-views/event-log.php:100
|
560 |
msgid "The selected log file is empty or has not been generated yet."
|
561 |
-
msgstr ""
|
562 |
|
563 |
#: src/admin-views/event-log.php:43
|
564 |
msgid "Method"
|
565 |
-
msgstr ""
|
566 |
|
567 |
#: src/admin-views/event-log.php:21
|
568 |
msgid "Logging level"
|
569 |
-
msgstr ""
|
570 |
|
571 |
#: src/Tribe/Validate.php:168
|
572 |
msgid "%s must contain numbers, letters, dashes and undescores only"
|
573 |
-
msgstr ""
|
574 |
|
575 |
#: src/Tribe/Log.php:376
|
576 |
msgid "Full debug (all events)"
|
577 |
-
msgstr ""
|
578 |
|
579 |
#: src/Tribe/Log.php:375
|
580 |
msgid "Warnings and errors"
|
581 |
-
msgstr ""
|
582 |
|
583 |
#: src/Tribe/Log.php:374
|
584 |
msgid "Only errors"
|
585 |
-
msgstr ""
|
586 |
|
587 |
#: src/Tribe/Log.php:373
|
588 |
msgid "Disabled"
|
589 |
-
msgstr ""
|
590 |
|
591 |
#: src/Tribe/Log.php:274
|
592 |
msgid "Cannot set %s as the current logging engine"
|
593 |
-
msgstr ""
|
594 |
|
595 |
#: src/Tribe/Log/File_Logger.php:128
|
596 |
msgid "Default (uses temporary files)"
|
597 |
-
msgstr ""
|
598 |
|
599 |
#: src/Tribe/Log/Admin.php:148
|
600 |
msgctxt "log engines"
|
601 |
msgid "None currently available"
|
602 |
-
msgstr ""
|
603 |
|
604 |
#: src/Tribe/Log/Admin.php:133
|
605 |
msgctxt "log selector"
|
606 |
msgid "None currently available"
|
607 |
-
msgstr ""
|
608 |
|
609 |
#: src/admin-views/tribe-options-help.php:52
|
610 |
msgid "Recent Template Changes"
|
611 |
-
msgstr ""
|
612 |
|
613 |
#: src/Tribe/Support/Template_Checker_Report.php:115
|
614 |
msgid "Information about recent template changes and potentially impacted template overrides is provided below."
|
615 |
-
msgstr ""
|
616 |
|
617 |
#: src/Tribe/Support/Template_Checker_Report.php:113
|
618 |
msgid "No notable template changes detected."
|
619 |
-
msgstr ""
|
620 |
|
621 |
#: src/Tribe/Support/Template_Checker_Report.php:97
|
622 |
msgid "based on %s version"
|
623 |
-
msgstr ""
|
624 |
|
625 |
#: src/Tribe/Support/Template_Checker_Report.php:96
|
626 |
msgid "version data missing from override"
|
627 |
-
msgstr ""
|
628 |
|
629 |
#: src/Tribe/Support/Template_Checker_Report.php:92
|
630 |
msgid "Existing theme overrides that may need revision:"
|
631 |
-
msgstr ""
|
632 |
|
633 |
#: src/Tribe/Support/Template_Checker_Report.php:82
|
634 |
msgid "Templates introduced or updated with this release (%s):"
|
635 |
-
msgstr ""
|
636 |
|
637 |
#: src/Tribe/Support/Template_Checker_Report.php:78
|
638 |
msgid "No notable changes detected"
|
639 |
-
msgstr ""
|
640 |
|
641 |
#. Description of the plugin/theme
|
642 |
msgid "An event settings framework for managing shared options"
|
643 |
-
msgstr ""
|
644 |
|
645 |
#. Plugin Name of the plugin/theme
|
646 |
msgid "Tribe Common"
|
647 |
-
msgstr ""
|
648 |
|
649 |
#: src/admin-views/tribe-options-licenses.php:47
|
650 |
msgid "Only license fields for %1$snetwork activated%2$s plugins will be listed on this screen. "
|
651 |
-
msgstr ""
|
652 |
|
653 |
#: src/admin-views/tribe-options-help.php:38
|
654 |
msgid "Read more about our support policy"
|
655 |
-
msgstr ""
|
656 |
|
657 |
#: src/admin-views/tribe-options-help.php:30
|
658 |
msgid "Please note that all hands-on support is provided via the forums. You can email or tweet at us… but we will probably point you back to the forums "
|
@@ -660,183 +698,183 @@ msgstr ""
|
|
660 |
|
661 |
#: src/admin-views/tribe-options-help.php:33
|
662 |
msgid "%s. There are very few issues we haven’t seen and it’s likely another user has already asked your question and gotten an answer from our support staff. While posting to the help desk is open only to paid customers, they are open for anyone to search and review."
|
663 |
-
msgstr ""
|
664 |
|
665 |
#: src/admin-views/tribe-options-help.php:32
|
666 |
msgid "Test for a theme or plugin conflict"
|
667 |
-
msgstr ""
|
668 |
|
669 |
#: src/admin-views/tribe-options-help.php:32
|
670 |
msgid "%s. Testing for an existing conflict is the best start for in-depth troubleshooting. We will often ask you to follow these steps when opening a new thread, so doing this ahead of time will be super helpful."
|
671 |
-
msgstr ""
|
672 |
|
673 |
#: src/admin-views/tribe-options-help.php:31
|
674 |
msgid "Check our Knowledgebase"
|
675 |
-
msgstr ""
|
676 |
|
677 |
#: src/admin-views/tribe-options-help.php:31
|
678 |
msgid "%s. All of the common (and not-so-common) answers to questions we see are here. It’s often the fastest path to finding an answer!"
|
679 |
-
msgstr ""
|
680 |
|
681 |
#: src/admin-views/tribe-options-help.php:27
|
682 |
msgid "While the resources above help solve a majority of the issues we see, there are times you might be looking for extra support. If you need assistance using our plugins and would like us to take a look, please follow these steps:"
|
683 |
-
msgstr ""
|
684 |
|
685 |
#: src/admin-views/tribe-options-help.php:26
|
686 |
msgid "Getting More Help"
|
687 |
-
msgstr ""
|
688 |
|
689 |
#: src/admin-views/tribe-options-help.php:21
|
690 |
msgid "list of available functions"
|
691 |
-
msgstr ""
|
692 |
|
693 |
#: src/admin-views/tribe-options-help.php:15
|
694 |
msgid "Knowledgebase"
|
695 |
-
msgstr ""
|
696 |
|
697 |
#: src/admin-views/tribe-options-help.php:15
|
698 |
msgid "Our website’s %s is a great place to find tips and tricks for using and customizing our plugins."
|
699 |
-
msgstr ""
|
700 |
|
701 |
#: src/admin-views/tribe-options-help.php:14
|
702 |
msgid "Getting Support"
|
703 |
-
msgstr ""
|
704 |
|
705 |
#: src/admin-views/tribe-options-help.php:11
|
706 |
msgid "Thank you for using %s! All of us at Modern Tribe sincerely appreciate your support and we’re excited to see you using our plugins."
|
707 |
-
msgstr ""
|
708 |
|
709 |
#: src/admin-views/tribe-options-general.php:15
|
710 |
msgid "Optimize your site's event listings with %1$sThe Events Calendar%2$s, our free calendar plugin. Looking for additional functionality including recurring events, user-submission, advanced ticket sales and more? Check out our %3$spremium add-ons%4$s."
|
711 |
-
msgstr ""
|
712 |
|
713 |
#: src/admin-views/tribe-options-general.php:10
|
714 |
msgid "Thank you for using Event Tickets! All of us at Modern Tribe sincerely appreciate your support and we're excited to see you using our plugins. Check out our handy %1$sNew User Primer%2$s to get started."
|
715 |
-
msgstr ""
|
716 |
|
717 |
#: src/Tribe/Validate.php:214
|
718 |
msgid "%s must be a positive number or percent."
|
719 |
-
msgstr ""
|
720 |
|
721 |
#: src/Tribe/PUE/Checker.php:940
|
722 |
msgid "Thanks for setting up a valid key. It will expire on %s"
|
723 |
-
msgstr ""
|
724 |
|
725 |
#: src/Tribe/Admin/Help_Page.php:860
|
726 |
msgid "Visit the Add-on Page"
|
727 |
-
msgstr ""
|
728 |
|
729 |
#: src/Tribe/Admin/Help_Page.php:855
|
730 |
msgid "Plugin Inactive"
|
731 |
-
msgstr ""
|
732 |
|
733 |
#: src/Tribe/Admin/Help_Page.php:853
|
734 |
msgid "Plugin Active"
|
735 |
-
msgstr ""
|
736 |
|
737 |
#: src/Tribe/Admin/Help_Page.php:828
|
738 |
msgid "Rating:"
|
739 |
-
msgstr ""
|
740 |
|
741 |
#: src/Tribe/Admin/Help_Page.php:825
|
742 |
msgid "Active Users:"
|
743 |
-
msgstr ""
|
744 |
|
745 |
#: src/Tribe/Admin/Help_Page.php:802
|
746 |
msgid "Install Plugin"
|
747 |
-
msgstr ""
|
748 |
|
749 |
#: src/Tribe/Admin/Help_Page.php:802
|
750 |
msgid "Install %s"
|
751 |
-
msgstr ""
|
752 |
|
753 |
#: src/Tribe/Admin/Help_Page.php:786
|
754 |
msgid "Upgrade Plugin"
|
755 |
-
msgstr ""
|
756 |
|
757 |
#: src/Tribe/Admin/Help_Page.php:778
|
758 |
msgid "Activate Plugin"
|
759 |
-
msgstr ""
|
760 |
|
761 |
#: src/Tribe/Admin/Help_Page.php:778
|
762 |
msgid "Activate %s"
|
763 |
-
msgstr ""
|
764 |
|
765 |
#: src/Tribe/Admin/Help_Page.php:244 src/Tribe/Plugins_API.php:100
|
766 |
msgid "Community Tickets"
|
767 |
-
msgstr ""
|
768 |
|
769 |
#: src/Tribe/Admin/Help_Page.php:235 src/Tribe/Plugins_API.php:66
|
770 |
msgid "Event Tickets Plus"
|
771 |
-
msgstr ""
|
772 |
|
773 |
#: src/Tribe/Admin/Help_Page.php:203 src/Tribe/Plugins_API.php:111
|
774 |
msgid "Eventbrite Tickets"
|
775 |
-
msgstr ""
|
776 |
|
777 |
#: src/Tribe/Admin/Help_Page.php:170
|
778 |
msgid " and "
|
779 |
-
msgstr ""
|
780 |
|
781 |
#: src/Tribe/Admin/Help_Page.php:95
|
782 |
msgid "Turbo charge your posts admin for any custom post type with sortable filters and columns, and auto-registration of metaboxes."
|
783 |
-
msgstr ""
|
784 |
|
785 |
#: src/Tribe/Admin/Help_Page.php:91
|
786 |
msgid "Advanced Post Manager"
|
787 |
-
msgstr ""
|
788 |
|
789 |
#: src/Tribe/Admin/Help_Page.php:79
|
790 |
msgid "Events Tickets is a carefully crafted, extensible plugin that lets you easily sell tickets for your events."
|
791 |
-
msgstr ""
|
792 |
|
793 |
#: src/Tribe/Admin/Help_Page.php:75 src/Tribe/Plugins_API.php:57
|
794 |
msgid "Event Tickets"
|
795 |
-
msgstr ""
|
796 |
|
797 |
#: src/Tribe/Admin/Help_Page.php:63
|
798 |
msgid "The Events Calendar is a carefully crafted, extensible plugin that lets you easily share your events."
|
799 |
-
msgstr ""
|
800 |
|
801 |
#. Author URI of the plugin/theme
|
802 |
msgid "http://m.tri.be/1x"
|
803 |
-
msgstr ""
|
804 |
|
805 |
#. Author of the plugin/theme
|
806 |
msgid "Modern Tribe, Inc."
|
807 |
-
msgstr ""
|
808 |
|
809 |
#: src/Tribe/Settings.php:371
|
810 |
msgid "Save Changes"
|
811 |
-
msgstr ""
|
812 |
|
813 |
#: src/admin-views/tribe-options-licenses.php:38
|
814 |
msgid "%1$s Using our plugins in a multisite network? %2$s Please note that your license key will be applied to the entire network, not just this site."
|
815 |
-
msgstr ""
|
816 |
|
817 |
#: src/Tribe/Support.php:199
|
818 |
msgid "Rewrite rules were purged on load of this help page. Chances are there is a rewrite rule flush occurring in a plugin or theme!"
|
819 |
-
msgstr ""
|
820 |
|
821 |
#: src/Tribe/PUE/Checker.php:909
|
822 |
msgid "unknown date"
|
823 |
-
msgstr ""
|
824 |
|
825 |
#: src/Tribe/Admin/Activation_Page.php:92
|
826 |
msgid "Return to WordPress Updates"
|
827 |
-
msgstr ""
|
828 |
|
829 |
#: src/Tribe/Admin/Activation_Page.php:92
|
830 |
msgid "Go to WordPress Updates page"
|
831 |
-
msgstr ""
|
832 |
|
833 |
#: src/Tribe/Admin/Activation_Page.php:84
|
834 |
msgid "Return to Plugins page"
|
835 |
-
msgstr ""
|
836 |
|
837 |
#: src/Tribe/Admin/Activation_Page.php:84
|
838 |
msgid "Go to plugins page"
|
839 |
-
msgstr ""
|
840 |
|
841 |
#: src/Tribe/Cost_Utils.php:114
|
842 |
msgid "Free"
|
@@ -844,64 +882,64 @@ msgstr "Gratuit"
|
|
844 |
|
845 |
#: src/admin-views/tribe-options-network.php:27
|
846 |
msgid "Hide the following settings tabs on every site:"
|
847 |
-
msgstr "Masquer les onglets
|
848 |
|
849 |
#: src/admin-views/tribe-options-network.php:19
|
850 |
msgid "This is where all of the global network settings for Modern Tribe's The Events Calendar can be modified."
|
851 |
-
msgstr "C
|
852 |
|
853 |
#: src/admin-views/tribe-options-network.php:15
|
854 |
msgid "Network Settings"
|
855 |
-
msgstr "
|
856 |
|
857 |
#: src/admin-views/tribe-options-help.php:74
|
858 |
msgid "News and Tutorials"
|
859 |
-
msgstr "
|
860 |
|
861 |
#: src/Tribe/Admin/Help_Page.php:847
|
862 |
msgid "Premium Add-Ons"
|
863 |
-
msgstr "Modules
|
864 |
|
865 |
#: src/Tribe/Admin/Help_Page.php:823
|
866 |
msgid "WordPress "
|
867 |
-
msgstr "WordPress"
|
868 |
|
869 |
#: src/Tribe/Admin/Help_Page.php:822 src/admin-views/app-shop.php:77
|
870 |
msgid "Requires:"
|
871 |
-
msgstr "
|
872 |
|
873 |
#: src/Tribe/Admin/Help_Page.php:819
|
874 |
msgid "Latest Version:"
|
875 |
-
msgstr "Dernière
|
876 |
|
877 |
#: src/admin-views/tribe-options-help.php:80
|
878 |
msgid "More..."
|
879 |
-
msgstr "Plus
|
880 |
|
881 |
#: src/Tribe/Admin/Help_Page.php:194 src/Tribe/Plugins_API.php:43
|
882 |
msgid "Events Calendar PRO"
|
883 |
-
msgstr ""
|
884 |
|
885 |
#: src/Tribe/Admin/Help_Page.php:413 src/Tribe/Admin/Help_Page.php:788
|
886 |
msgid "You are up to date!"
|
887 |
-
msgstr "Vous
|
888 |
|
889 |
#: src/Tribe/Admin/Help_Page.php:413
|
890 |
msgid "You need to upgrade!"
|
891 |
-
msgstr "Vous devez mettre à
|
892 |
|
893 |
#: src/Tribe/Admin/Help_Page.php:405
|
894 |
msgctxt "not available"
|
895 |
msgid "n/a"
|
896 |
-
msgstr "
|
897 |
|
898 |
#: src/admin-views/tribe-options-general.php:59
|
899 |
msgid "Debug Bar Plugin"
|
900 |
-
msgstr "
|
901 |
|
902 |
#: src/admin-views/tribe-options-general.php:59
|
903 |
msgid "Enable this option to log debug information. By default this will log to your server PHP error log. If you'd like to see the log messages in your browser, then we recommend that you install the %s and look for the \"Tribe\" tab in the debug output."
|
904 |
-
msgstr "Activer cette option pour enregistrer les informations de débogage. Par
|
905 |
|
906 |
#: src/admin-views/tribe-options-general.php:53
|
907 |
msgid "Debug mode"
|
@@ -909,31 +947,31 @@ msgstr "Mode de débogage"
|
|
909 |
|
910 |
#: src/admin-views/tribe-options-general.php:35
|
911 |
msgid "Show The Events Calendar link"
|
912 |
-
msgstr "Afficher
|
913 |
|
914 |
#: src/admin-views/tribe-options-general.php:30
|
915 |
msgid "See an example of the link"
|
916 |
-
msgstr "Voir un exemple de
|
917 |
|
918 |
#: src/admin-views/tribe-options-general.php:30
|
919 |
msgid "Are you thinking \"Wow, this plugin is amazing! I should say thanks to Modern Tribe for all their hard work.\" The greatest thanks we could ask for is recognition. Add a small text-only link at the bottom of your calendar pointing to The Events Calendar project."
|
920 |
-
msgstr "
|
921 |
|
922 |
#: src/admin-views/tribe-options-general.php:25
|
923 |
msgid "We hope our plugin is helping you out."
|
924 |
-
msgstr "Nous espérons que notre plugin
|
925 |
|
926 |
#: src/admin-views/tribe-options-general.php:20
|
927 |
msgid "Check out the available add-ons"
|
928 |
-
msgstr "
|
929 |
|
930 |
#: src/admin-views/tribe-options-general.php:20
|
931 |
msgid "Looking for additional functionality including recurring events, custom meta, community events, ticket sales and more?"
|
932 |
-
msgstr "Vous cherchez
|
933 |
|
934 |
#: src/admin-views/tribe-options-display.php:37
|
935 |
msgid "Select the date format to use in datepickers"
|
936 |
-
msgstr "Sélectionnez le format de date à utiliser dans
|
937 |
|
938 |
#: src/admin-views/tribe-options-display.php:36
|
939 |
msgid "Datepicker Date Format"
|
@@ -941,15 +979,15 @@ msgstr "Format de date du sélecteur de date"
|
|
941 |
|
942 |
#: src/admin-views/tribe-options-display.php:22
|
943 |
msgid "Date Format Settings"
|
944 |
-
msgstr "Paramètres de
|
945 |
|
946 |
#: src/admin-views/event-log.php:65
|
947 |
msgid "View"
|
948 |
-
msgstr "
|
949 |
|
950 |
#: src/Tribe/Admin/Help_Page.php:211 src/Tribe/Plugins_API.php:90
|
951 |
msgid "Community Events"
|
952 |
-
msgstr "Événements
|
953 |
|
954 |
#: src/Tribe/Languages/Locations.php:374
|
955 |
msgid "Wyoming"
|
@@ -961,7 +999,7 @@ msgstr "Wisconsin"
|
|
961 |
|
962 |
#: src/Tribe/Languages/Locations.php:372
|
963 |
msgid "West Virginia"
|
964 |
-
msgstr "
|
965 |
|
966 |
#: src/Tribe/Languages/Locations.php:371
|
967 |
msgid "Washington"
|
@@ -1045,7 +1083,7 @@ msgstr "Nevada"
|
|
1045 |
|
1046 |
#: src/Tribe/Languages/Locations.php:351
|
1047 |
msgid "Nebraska"
|
1048 |
-
msgstr "
|
1049 |
|
1050 |
#: src/Tribe/Languages/Locations.php:350
|
1051 |
msgid "Montana"
|
@@ -1109,7 +1147,7 @@ msgstr "Idaho"
|
|
1109 |
|
1110 |
#: src/Tribe/Languages/Locations.php:335
|
1111 |
msgid "Hawaii"
|
1112 |
-
msgstr "
|
1113 |
|
1114 |
#: src/Tribe/Languages/Locations.php:333
|
1115 |
msgid "Florida"
|
@@ -1169,23 +1207,23 @@ msgstr "Sahara occidental"
|
|
1169 |
|
1170 |
#: src/Tribe/Languages/Locations.php:293
|
1171 |
msgid "Wallis and Futuna Islands"
|
1172 |
-
msgstr ""
|
1173 |
|
1174 |
#: src/Tribe/Languages/Locations.php:292
|
1175 |
msgid "Virgin Islands (U.S.)"
|
1176 |
-
msgstr "
|
1177 |
|
1178 |
#: src/Tribe/Languages/Locations.php:291
|
1179 |
msgid "Virgin Islands (British)"
|
1180 |
-
msgstr "
|
1181 |
|
1182 |
#: src/Tribe/Languages/Locations.php:290
|
1183 |
msgid "Viet Nam"
|
1184 |
-
msgstr "
|
1185 |
|
1186 |
#: src/Tribe/Languages/Locations.php:289
|
1187 |
msgid "Venezuela"
|
1188 |
-
msgstr "
|
1189 |
|
1190 |
#: src/Tribe/Languages/Locations.php:288
|
1191 |
msgid "Vanuatu"
|
@@ -1193,7 +1231,7 @@ msgstr "Vanuatu"
|
|
1193 |
|
1194 |
#: src/Tribe/Languages/Locations.php:287
|
1195 |
msgid "Uzbekistan"
|
1196 |
-
msgstr "
|
1197 |
|
1198 |
#: src/Tribe/Languages/Locations.php:286
|
1199 |
msgid "Uruguay"
|
@@ -1209,7 +1247,7 @@ msgstr "Royaume-Uni"
|
|
1209 |
|
1210 |
#: src/Tribe/Languages/Locations.php:283
|
1211 |
msgid "United Arab Emirates"
|
1212 |
-
msgstr "Émirats
|
1213 |
|
1214 |
#: src/Tribe/Languages/Locations.php:282
|
1215 |
msgid "Ukraine"
|
@@ -1225,7 +1263,7 @@ msgstr "Tuvalu"
|
|
1225 |
|
1226 |
#: src/Tribe/Languages/Locations.php:279
|
1227 |
msgid "Turks and Caicos Islands"
|
1228 |
-
msgstr ""
|
1229 |
|
1230 |
#: src/Tribe/Languages/Locations.php:278
|
1231 |
msgid "Turkmenistan"
|
@@ -1241,7 +1279,7 @@ msgstr "Tunisie"
|
|
1241 |
|
1242 |
#: src/Tribe/Languages/Locations.php:275
|
1243 |
msgid "Trinidad and Tobago"
|
1244 |
-
msgstr ""
|
1245 |
|
1246 |
#: src/Tribe/Languages/Locations.php:274
|
1247 |
msgid "Tonga"
|
@@ -1249,7 +1287,7 @@ msgstr "Tonga"
|
|
1249 |
|
1250 |
#: src/Tribe/Languages/Locations.php:273
|
1251 |
msgid "Tokelau"
|
1252 |
-
msgstr "
|
1253 |
|
1254 |
#: src/Tribe/Languages/Locations.php:272
|
1255 |
msgid "Togo"
|
@@ -1261,11 +1299,11 @@ msgstr "Thaïlande"
|
|
1261 |
|
1262 |
#: src/Tribe/Languages/Locations.php:270
|
1263 |
msgid "Tanzania, United Republic of"
|
1264 |
-
msgstr ""
|
1265 |
|
1266 |
#: src/Tribe/Languages/Locations.php:269
|
1267 |
msgid "Tajikistan"
|
1268 |
-
msgstr "
|
1269 |
|
1270 |
#: src/Tribe/Languages/Locations.php:268
|
1271 |
msgid "Taiwan"
|
@@ -1289,7 +1327,7 @@ msgstr "Swaziland"
|
|
1289 |
|
1290 |
#: src/Tribe/Languages/Locations.php:263
|
1291 |
msgid "Svalbard and Jan Mayen Islands"
|
1292 |
-
msgstr ""
|
1293 |
|
1294 |
#: src/Tribe/Languages/Locations.php:262
|
1295 |
msgid "Suriname"
|
@@ -1301,7 +1339,7 @@ msgstr "Soudan"
|
|
1301 |
|
1302 |
#: src/Tribe/Languages/Locations.php:241
|
1303 |
msgid "Saint Pierre and Miquelon"
|
1304 |
-
msgstr ""
|
1305 |
|
1306 |
#: src/Tribe/Languages/Locations.php:260
|
1307 |
msgid "Sri Lanka"
|
@@ -1313,11 +1351,11 @@ msgstr "Espagne"
|
|
1313 |
|
1314 |
#: src/Tribe/Languages/Locations.php:258
|
1315 |
msgid "South Georgia, South Sandwich Islands"
|
1316 |
-
msgstr "
|
1317 |
|
1318 |
#: src/Tribe/Languages/Locations.php:257
|
1319 |
msgid "South Africa"
|
1320 |
-
msgstr "Afrique du
|
1321 |
|
1322 |
#: src/Tribe/Languages/Locations.php:256
|
1323 |
msgid "Somalia"
|
@@ -1325,7 +1363,7 @@ msgstr "Somalie"
|
|
1325 |
|
1326 |
#: src/Tribe/Languages/Locations.php:255
|
1327 |
msgid "Solomon Islands"
|
1328 |
-
msgstr "Îles
|
1329 |
|
1330 |
#: src/Tribe/Languages/Locations.php:254
|
1331 |
msgid "Slovenia"
|
@@ -1333,7 +1371,7 @@ msgstr "Slovénie"
|
|
1333 |
|
1334 |
#: src/Tribe/Languages/Locations.php:253
|
1335 |
msgid "Slovakia (Slovak Republic)"
|
1336 |
-
msgstr "Slovaquie (République
|
1337 |
|
1338 |
#: src/Tribe/Languages/Locations.php:251
|
1339 |
msgid "Singapore"
|
@@ -1361,7 +1399,7 @@ msgstr "Arabie Saoudite"
|
|
1361 |
|
1362 |
#: src/Tribe/Languages/Locations.php:244
|
1363 |
msgid "San Marino"
|
1364 |
-
msgstr "
|
1365 |
|
1366 |
#: src/Tribe/Languages/Locations.php:243
|
1367 |
msgid "Samoa"
|
@@ -1369,15 +1407,15 @@ msgstr "Samoa"
|
|
1369 |
|
1370 |
#: src/Tribe/Languages/Locations.php:242
|
1371 |
msgid "Saint Vincent and The Grenadines"
|
1372 |
-
msgstr ""
|
1373 |
|
1374 |
#: src/Tribe/Languages/Locations.php:240
|
1375 |
msgid "Saint Lucia"
|
1376 |
-
msgstr "Sainte
|
1377 |
|
1378 |
#: src/Tribe/Languages/Locations.php:239
|
1379 |
msgid "Saint Kitts and Nevis"
|
1380 |
-
msgstr ""
|
1381 |
|
1382 |
#: src/Tribe/Languages/Locations.php:236
|
1383 |
msgid "Rwanda"
|
@@ -1385,7 +1423,7 @@ msgstr "Rwanda"
|
|
1385 |
|
1386 |
#: src/Tribe/Languages/Locations.php:235
|
1387 |
msgid "Russian Federation"
|
1388 |
-
msgstr "Fédération de
|
1389 |
|
1390 |
#: src/Tribe/Languages/Locations.php:234
|
1391 |
msgid "Romania"
|
@@ -1401,7 +1439,7 @@ msgstr "Qatar"
|
|
1401 |
|
1402 |
#: src/Tribe/Languages/Locations.php:231
|
1403 |
msgid "Puerto Rico"
|
1404 |
-
msgstr "
|
1405 |
|
1406 |
#: src/Tribe/Languages/Locations.php:230
|
1407 |
msgid "Portugal"
|
@@ -1413,7 +1451,7 @@ msgstr "Pologne"
|
|
1413 |
|
1414 |
#: src/Tribe/Languages/Locations.php:228
|
1415 |
msgid "Pitcairn"
|
1416 |
-
msgstr "
|
1417 |
|
1418 |
#: src/Tribe/Languages/Locations.php:227
|
1419 |
msgid "Philippines"
|
@@ -1429,7 +1467,7 @@ msgstr "Paraguay"
|
|
1429 |
|
1430 |
#: src/Tribe/Languages/Locations.php:224
|
1431 |
msgid "Papua New Guinea"
|
1432 |
-
msgstr "Papouasie Nouvelle
|
1433 |
|
1434 |
#: src/Tribe/Languages/Locations.php:223
|
1435 |
msgid "Panama"
|
@@ -1437,7 +1475,7 @@ msgstr "Panama"
|
|
1437 |
|
1438 |
#: src/Tribe/Languages/Locations.php:222
|
1439 |
msgid "Palau"
|
1440 |
-
msgstr "
|
1441 |
|
1442 |
#: src/Tribe/Languages/Locations.php:221
|
1443 |
msgid "Pakistan"
|
@@ -1453,11 +1491,11 @@ msgstr "Norvège"
|
|
1453 |
|
1454 |
#: src/Tribe/Languages/Locations.php:218
|
1455 |
msgid "Northern Mariana Islands"
|
1456 |
-
msgstr "
|
1457 |
|
1458 |
#: src/Tribe/Languages/Locations.php:217
|
1459 |
msgid "Norfolk Island"
|
1460 |
-
msgstr "
|
1461 |
|
1462 |
#: src/Tribe/Languages/Locations.php:216
|
1463 |
msgid "Niue"
|
@@ -1465,7 +1503,7 @@ msgstr "Niue"
|
|
1465 |
|
1466 |
#: src/Tribe/Languages/Locations.php:215
|
1467 |
msgid "Nigeria"
|
1468 |
-
msgstr "
|
1469 |
|
1470 |
#: src/Tribe/Languages/Locations.php:214
|
1471 |
msgid "Niger"
|
@@ -1477,11 +1515,11 @@ msgstr "Nicaragua"
|
|
1477 |
|
1478 |
#: src/Tribe/Languages/Locations.php:212
|
1479 |
msgid "New Zealand"
|
1480 |
-
msgstr "Nouvelle
|
1481 |
|
1482 |
#: src/Tribe/Languages/Locations.php:211
|
1483 |
msgid "New Caledonia"
|
1484 |
-
msgstr "Nouvelle
|
1485 |
|
1486 |
#: src/Tribe/Languages/Locations.php:210
|
1487 |
msgid "Netherlands"
|
@@ -1489,7 +1527,7 @@ msgstr "Pays-Bas"
|
|
1489 |
|
1490 |
#: src/Tribe/Languages/Locations.php:209
|
1491 |
msgid "Nepal"
|
1492 |
-
msgstr "
|
1493 |
|
1494 |
#: src/Tribe/Languages/Locations.php:208
|
1495 |
msgid "Nauru"
|
@@ -1509,7 +1547,7 @@ msgstr "Mozambique"
|
|
1509 |
|
1510 |
#: src/Tribe/Languages/Locations.php:204
|
1511 |
msgid "Morocco"
|
1512 |
-
msgstr "
|
1513 |
|
1514 |
#: src/Tribe/Languages/Locations.php:203
|
1515 |
msgid "Montserrat"
|
@@ -1517,7 +1555,7 @@ msgstr "Montserrat"
|
|
1517 |
|
1518 |
#: src/Tribe/Languages/Locations.php:202
|
1519 |
msgid "Montenegro"
|
1520 |
-
msgstr "
|
1521 |
|
1522 |
#: src/Tribe/Languages/Locations.php:201
|
1523 |
msgid "Mongolia"
|
@@ -1529,11 +1567,11 @@ msgstr "Monaco"
|
|
1529 |
|
1530 |
#: src/Tribe/Languages/Locations.php:199
|
1531 |
msgid "Moldova, Republic of"
|
1532 |
-
msgstr ""
|
1533 |
|
1534 |
#: src/Tribe/Languages/Locations.php:198
|
1535 |
msgid "Micronesia, Federated States of"
|
1536 |
-
msgstr ""
|
1537 |
|
1538 |
#: src/Tribe/Languages/Locations.php:197
|
1539 |
msgid "Mexico"
|
@@ -1545,7 +1583,7 @@ msgstr "Mayotte"
|
|
1545 |
|
1546 |
#: src/Tribe/Languages/Locations.php:195
|
1547 |
msgid "Mauritius"
|
1548 |
-
msgstr "Île
|
1549 |
|
1550 |
#: src/Tribe/Languages/Locations.php:194
|
1551 |
msgid "Mauritania"
|
@@ -1557,11 +1595,11 @@ msgstr "Martinique"
|
|
1557 |
|
1558 |
#: src/Tribe/Languages/Locations.php:192
|
1559 |
msgid "Marshall Islands"
|
1560 |
-
msgstr "Îles
|
1561 |
|
1562 |
#: src/Tribe/Languages/Locations.php:191
|
1563 |
msgid "Malta"
|
1564 |
-
msgstr "
|
1565 |
|
1566 |
#: src/Tribe/Languages/Locations.php:190
|
1567 |
msgid "Mali"
|
@@ -1573,7 +1611,7 @@ msgstr "Maldives"
|
|
1573 |
|
1574 |
#: src/Tribe/Languages/Locations.php:188
|
1575 |
msgid "Malaysia"
|
1576 |
-
msgstr "
|
1577 |
|
1578 |
#: src/Tribe/Languages/Locations.php:187
|
1579 |
msgid "Malawi"
|
@@ -1605,7 +1643,7 @@ msgstr "Liechtenstein"
|
|
1605 |
|
1606 |
#: src/Tribe/Languages/Locations.php:180
|
1607 |
msgid "Libya"
|
1608 |
-
msgstr "
|
1609 |
|
1610 |
#: src/Tribe/Languages/Locations.php:179
|
1611 |
msgid "Liberia"
|
@@ -1625,11 +1663,11 @@ msgstr "Lettonie"
|
|
1625 |
|
1626 |
#: src/Tribe/Languages/Locations.php:175
|
1627 |
msgid "Lao People's Democratic Republic"
|
1628 |
-
msgstr "République démocratique populaire
|
1629 |
|
1630 |
#: src/Tribe/Languages/Locations.php:174
|
1631 |
msgid "Kyrgyzstan"
|
1632 |
-
msgstr "
|
1633 |
|
1634 |
#: src/Tribe/Languages/Locations.php:173
|
1635 |
msgid "Kuwait"
|
@@ -1637,11 +1675,11 @@ msgstr "Koweït"
|
|
1637 |
|
1638 |
#: src/Tribe/Languages/Locations.php:172
|
1639 |
msgid "Korea, Republic of"
|
1640 |
-
msgstr ""
|
1641 |
|
1642 |
#: src/Tribe/Languages/Locations.php:171
|
1643 |
msgid "Korea, Democratic People's Republic of"
|
1644 |
-
msgstr ""
|
1645 |
|
1646 |
#: src/Tribe/Languages/Locations.php:170
|
1647 |
msgid "Kiribati"
|
@@ -1685,7 +1723,7 @@ msgstr "Irak"
|
|
1685 |
|
1686 |
#: src/Tribe/Languages/Locations.php:160
|
1687 |
msgid "Iran, Islamic Republic of"
|
1688 |
-
msgstr ""
|
1689 |
|
1690 |
#: src/Tribe/Languages/Locations.php:159
|
1691 |
msgid "Indonesia"
|
@@ -1713,11 +1751,11 @@ msgstr "Honduras"
|
|
1713 |
|
1714 |
#: src/Tribe/Languages/Locations.php:153
|
1715 |
msgid "Holy See (Vatican City State)"
|
1716 |
-
msgstr "
|
1717 |
|
1718 |
#: src/Tribe/Languages/Locations.php:152
|
1719 |
msgid "Heard and McDonald Islands"
|
1720 |
-
msgstr ""
|
1721 |
|
1722 |
#: src/Tribe/Languages/Locations.php:151
|
1723 |
msgid "Haiti"
|
@@ -1725,7 +1763,7 @@ msgstr "Haïti"
|
|
1725 |
|
1726 |
#: src/Tribe/Languages/Locations.php:150
|
1727 |
msgid "Guyana"
|
1728 |
-
msgstr "
|
1729 |
|
1730 |
#: src/Tribe/Languages/Locations.php:149
|
1731 |
msgid "Guinea-Bissau"
|
@@ -1773,7 +1811,7 @@ msgstr "Allemagne"
|
|
1773 |
|
1774 |
#: src/Tribe/Languages/Locations.php:138 src/Tribe/Languages/Locations.php:334
|
1775 |
msgid "Georgia"
|
1776 |
-
msgstr "
|
1777 |
|
1778 |
#: src/Tribe/Languages/Locations.php:137
|
1779 |
msgid "Gambia"
|
@@ -1785,7 +1823,7 @@ msgstr "Gabon"
|
|
1785 |
|
1786 |
#: src/Tribe/Languages/Locations.php:135
|
1787 |
msgid "French Southern Territories"
|
1788 |
-
msgstr "
|
1789 |
|
1790 |
#: src/Tribe/Languages/Locations.php:134
|
1791 |
msgid "French Polynesia"
|
@@ -1805,15 +1843,15 @@ msgstr "Finlande"
|
|
1805 |
|
1806 |
#: src/Tribe/Languages/Locations.php:130
|
1807 |
msgid "Fiji"
|
1808 |
-
msgstr "
|
1809 |
|
1810 |
#: src/Tribe/Languages/Locations.php:129
|
1811 |
msgid "Faroe Islands"
|
1812 |
-
msgstr "Îles
|
1813 |
|
1814 |
#: src/Tribe/Languages/Locations.php:128
|
1815 |
msgid "Falkland Islands (Malvinas)"
|
1816 |
-
msgstr "
|
1817 |
|
1818 |
#: src/Tribe/Languages/Locations.php:127
|
1819 |
msgid "Ethiopia"
|
@@ -1833,7 +1871,7 @@ msgstr "Guinée équatoriale"
|
|
1833 |
|
1834 |
#: src/Tribe/Languages/Locations.php:123
|
1835 |
msgid "El Salvador"
|
1836 |
-
msgstr "Salvador"
|
1837 |
|
1838 |
#: src/Tribe/Languages/Locations.php:122
|
1839 |
msgid "Egypt"
|
@@ -1845,11 +1883,11 @@ msgstr "Équateur"
|
|
1845 |
|
1846 |
#: src/Tribe/Languages/Locations.php:120
|
1847 |
msgid "East Timor"
|
1848 |
-
msgstr "
|
1849 |
|
1850 |
#: src/Tribe/Languages/Locations.php:119
|
1851 |
msgid "Dominican Republic"
|
1852 |
-
msgstr "
|
1853 |
|
1854 |
#: src/Tribe/Languages/Locations.php:118
|
1855 |
msgid "Dominica"
|
@@ -1877,7 +1915,7 @@ msgstr "Cuba"
|
|
1877 |
|
1878 |
#: src/Tribe/Languages/Locations.php:111
|
1879 |
msgid "Croatia (Local Name: Hrvatska)"
|
1880 |
-
msgstr "Croatie"
|
1881 |
|
1882 |
#: src/Tribe/Languages/Locations.php:109
|
1883 |
msgid "Costa Rica"
|
@@ -1885,11 +1923,11 @@ msgstr "Costa Rica"
|
|
1885 |
|
1886 |
#: src/Tribe/Languages/Locations.php:108
|
1887 |
msgid "Cook Islands"
|
1888 |
-
msgstr "
|
1889 |
|
1890 |
#: src/Tribe/Languages/Locations.php:107
|
1891 |
msgid "Congo, Democratic Republic of the"
|
1892 |
-
msgstr ""
|
1893 |
|
1894 |
#: src/Tribe/Languages/Locations.php:106
|
1895 |
msgid "Congo"
|
@@ -1905,11 +1943,11 @@ msgstr "Colombie"
|
|
1905 |
|
1906 |
#: src/Tribe/Languages/Locations.php:102
|
1907 |
msgid "Cocos (Keeling) Islands"
|
1908 |
-
msgstr "
|
1909 |
|
1910 |
#: src/Tribe/Languages/Locations.php:101
|
1911 |
msgid "Christmas Island"
|
1912 |
-
msgstr "
|
1913 |
|
1914 |
#: src/Tribe/Languages/Locations.php:100
|
1915 |
msgid "China"
|
@@ -1933,7 +1971,7 @@ msgstr "Îles Caïmans"
|
|
1933 |
|
1934 |
#: src/Tribe/Languages/Locations.php:95
|
1935 |
msgid "Cape Verde"
|
1936 |
-
msgstr "Cap
|
1937 |
|
1938 |
#: src/Tribe/Languages/Locations.php:94
|
1939 |
msgid "Canada"
|
@@ -1961,11 +1999,11 @@ msgstr "Bulgarie"
|
|
1961 |
|
1962 |
#: src/Tribe/Languages/Locations.php:88
|
1963 |
msgid "Brunei Darussalam"
|
1964 |
-
msgstr "
|
1965 |
|
1966 |
#: src/Tribe/Languages/Locations.php:87
|
1967 |
msgid "British Indian Ocean Territory"
|
1968 |
-
msgstr "Territoire
|
1969 |
|
1970 |
#: src/Tribe/Languages/Locations.php:86
|
1971 |
msgid "Brazil"
|
@@ -1981,7 +2019,7 @@ msgstr "Botswana"
|
|
1981 |
|
1982 |
#: src/Tribe/Languages/Locations.php:83
|
1983 |
msgid "Bosnia and Herzegovina"
|
1984 |
-
msgstr ""
|
1985 |
|
1986 |
#: src/Tribe/Languages/Locations.php:82
|
1987 |
msgid "Bolivia"
|
@@ -2009,7 +2047,7 @@ msgstr "Belgique"
|
|
2009 |
|
2010 |
#: src/Tribe/Languages/Locations.php:76
|
2011 |
msgid "Belarus"
|
2012 |
-
msgstr "
|
2013 |
|
2014 |
#: src/Tribe/Languages/Locations.php:75
|
2015 |
msgid "Barbados"
|
@@ -2021,7 +2059,7 @@ msgstr "Bangladesh"
|
|
2021 |
|
2022 |
#: src/Tribe/Languages/Locations.php:73
|
2023 |
msgid "Bahrain"
|
2024 |
-
msgstr "
|
2025 |
|
2026 |
#: src/Tribe/Languages/Locations.php:72
|
2027 |
msgid "Bahamas"
|
@@ -2029,7 +2067,7 @@ msgstr "Bahamas"
|
|
2029 |
|
2030 |
#: src/Tribe/Languages/Locations.php:71
|
2031 |
msgid "Azerbaijan"
|
2032 |
-
msgstr "
|
2033 |
|
2034 |
#: src/Tribe/Languages/Locations.php:70
|
2035 |
msgid "Austria"
|
@@ -2037,7 +2075,7 @@ msgstr "Autriche"
|
|
2037 |
|
2038 |
#: src/Tribe/Languages/Locations.php:69
|
2039 |
msgid "Australia"
|
2040 |
-
msgstr "
|
2041 |
|
2042 |
#: src/Tribe/Languages/Locations.php:68
|
2043 |
msgid "Aruba"
|
@@ -2049,11 +2087,11 @@ msgstr "Arménie"
|
|
2049 |
|
2050 |
#: src/Tribe/Languages/Locations.php:66
|
2051 |
msgid "Argentina"
|
2052 |
-
msgstr "
|
2053 |
|
2054 |
#: src/Tribe/Languages/Locations.php:65
|
2055 |
msgid "Antigua and Barbuda"
|
2056 |
-
msgstr ""
|
2057 |
|
2058 |
#: src/Tribe/Languages/Locations.php:64
|
2059 |
msgid "Antarctica"
|
@@ -2069,11 +2107,11 @@ msgstr "Angola"
|
|
2069 |
|
2070 |
#: src/Tribe/Languages/Locations.php:61
|
2071 |
msgid "Andorra"
|
2072 |
-
msgstr "
|
2073 |
|
2074 |
#: src/Tribe/Languages/Locations.php:60
|
2075 |
msgid "American Samoa"
|
2076 |
-
msgstr "
|
2077 |
|
2078 |
#: src/Tribe/Languages/Locations.php:59
|
2079 |
msgid "Algeria"
|
@@ -2093,7 +2131,7 @@ msgstr "Choisissez un pays :"
|
|
2093 |
|
2094 |
#: src/Tribe/Validate.php:514
|
2095 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2096 |
-
msgstr "
|
2097 |
|
2098 |
#: src/Tribe/Validate.php:498
|
2099 |
msgid "%s must be a phone number."
|
@@ -2101,48 +2139,48 @@ msgstr "%s doit être un numéro de téléphone."
|
|
2101 |
|
2102 |
#: src/Tribe/Validate.php:484
|
2103 |
msgid "%s must consist of 5 numbers."
|
2104 |
-
msgstr "%s doit
|
2105 |
|
2106 |
#: src/Tribe/Validate.php:470
|
2107 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2108 |
-
msgstr "%s doit
|
2109 |
|
2110 |
#: src/Tribe/Validate.php:454
|
2111 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2112 |
-
msgstr "%s doit contenir
|
2113 |
|
2114 |
#: src/Tribe/Validate.php:438
|
2115 |
msgid "%s must be a number between 0 and 21."
|
2116 |
-
msgstr "%s doit être un
|
2117 |
|
2118 |
#: src/Tribe/Validate.php:384
|
2119 |
msgid "%s must be a number or percentage."
|
2120 |
-
msgstr "%s doit être un
|
2121 |
|
2122 |
#: src/Tribe/Validate.php:368
|
2123 |
msgid "%s cannot be a duplicate"
|
2124 |
-
msgstr "%s ne
|
2125 |
|
2126 |
#: src/Tribe/Validate.php:366
|
2127 |
msgid "%s cannot be the same as %s."
|
2128 |
-
msgstr "%s ne peut
|
2129 |
|
2130 |
#: src/Tribe/Validate.php:359
|
2131 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2132 |
-
msgstr "
|
2133 |
|
2134 |
#: src/Tribe/Validate.php:298 src/Tribe/Validate.php:310
|
2135 |
#: src/Tribe/Validate.php:323 src/Tribe/Validate.php:345
|
2136 |
msgid "%s must have a value that's part of its options."
|
2137 |
-
msgstr "%s doit
|
2138 |
|
2139 |
#: src/Tribe/Validate.php:282
|
2140 |
msgid "%s must be a valid absolute URL."
|
2141 |
-
msgstr "%s doit être
|
2142 |
|
2143 |
#: src/Tribe/Validate.php:267
|
2144 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2145 |
-
msgstr "%s doit être
|
2146 |
|
2147 |
#: src/Tribe/Validate.php:200 src/Tribe/Validate.php:228
|
2148 |
msgid "%s must be a positive number."
|
@@ -2150,91 +2188,91 @@ msgstr "%s doit être un nombre positif."
|
|
2150 |
|
2151 |
#: src/Tribe/Validate.php:152
|
2152 |
msgid "%s must contain numbers, letters and dots only"
|
2153 |
-
msgstr "%s doit
|
2154 |
|
2155 |
#: src/Tribe/Validate.php:120 src/Tribe/Validate.php:136
|
2156 |
msgid "%s must contain numbers and letters only"
|
2157 |
-
msgstr "%s doit contenir
|
2158 |
|
2159 |
#: src/Tribe/Validate.php:105
|
2160 |
msgctxt "non-existant function name passed for field validation"
|
2161 |
msgid "with function name:"
|
2162 |
-
msgstr "avec le nom de la fonction:"
|
2163 |
|
2164 |
#: src/Tribe/Validate.php:104
|
2165 |
msgid "Non-existant field validation function passed"
|
2166 |
-
msgstr "
|
2167 |
|
2168 |
#: src/Tribe/Validate.php:73 src/Tribe/Validate.php:85
|
2169 |
#: src/Tribe/Validate.php:105
|
2170 |
msgid "Field ID:"
|
2171 |
-
msgstr "
|
2172 |
|
2173 |
#: src/Tribe/Validate.php:72 src/Tribe/Validate.php:84
|
2174 |
msgid "Invalid or incomplete field passed"
|
2175 |
-
msgstr "
|
2176 |
|
2177 |
#: src/Tribe/Support.php:188 src/Tribe/Support.php:189
|
2178 |
msgid "Unknown or not set"
|
2179 |
-
msgstr "
|
2180 |
|
2181 |
#: src/admin-views/tribe-options-help.php:41
|
2182 |
msgid "System Information"
|
2183 |
-
msgstr "Informations
|
2184 |
|
2185 |
#: src/Tribe/Settings_Tab.php:222
|
2186 |
msgid "There are no fields setup for this tab yet."
|
2187 |
-
msgstr "Il n
|
2188 |
|
2189 |
#: src/Tribe/Settings.php:621
|
2190 |
msgid "The above setting was not saved. Other settings were successfully saved."
|
2191 |
msgid_plural "The above settings were not saved. Other settings were successfully saved."
|
2192 |
-
msgstr[0] "Le
|
2193 |
-
msgstr[1] "Les
|
2194 |
|
2195 |
#: src/Tribe/Settings.php:620
|
2196 |
msgid "None of your settings were saved. Please try again."
|
2197 |
-
msgstr "
|
2198 |
|
2199 |
#: src/Tribe/Settings.php:610
|
2200 |
msgid "Your form had the following errors:"
|
2201 |
-
msgstr "Votre formulaire
|
2202 |
|
2203 |
#: src/Tribe/Settings.php:431
|
2204 |
msgid "The request wasn't sent from this tab."
|
2205 |
-
msgstr "La requête n
|
2206 |
|
2207 |
#: src/Tribe/Settings.php:425
|
2208 |
msgid "The request was sent insecurely."
|
2209 |
-
msgstr "
|
2210 |
|
2211 |
#: src/Tribe/Settings.php:419
|
2212 |
msgid "You don't have permission to do that."
|
2213 |
-
msgstr "Vous n
|
2214 |
|
2215 |
#: src/Tribe/Settings.php:363
|
2216 |
msgid "You've requested a non-existent tab."
|
2217 |
-
msgstr "
|
2218 |
|
2219 |
#: src/Tribe/Settings.php:349
|
2220 |
msgid "%s Settings"
|
2221 |
-
msgstr "%s
|
2222 |
|
2223 |
#: src/Tribe/Settings.php:253 src/Tribe/Settings.php:273
|
2224 |
msgid "Events Settings"
|
2225 |
-
msgstr "
|
2226 |
|
2227 |
#: src/Tribe/PUE/Checker.php:896
|
2228 |
msgid "Hmmm... something's wrong with this validator. Please contact %ssupport%s."
|
2229 |
-
msgstr ""
|
2230 |
|
2231 |
#: src/Tribe/PUE/Checker.php:935
|
2232 |
msgid "Valid Key! Expires on %s"
|
2233 |
-
msgstr "Clé valide! Expire le%s"
|
2234 |
|
2235 |
#: src/Tribe/PUE/Checker.php:915
|
2236 |
msgid "Sorry, key validation server is not available."
|
2237 |
-
msgstr "Désolé, le serveur de validation des clés n
|
2238 |
|
2239 |
#: src/Tribe/PUE/Checker.php:650
|
2240 |
msgid "License key(s) updated."
|
@@ -2246,15 +2284,15 @@ msgstr "Une clé de licence valide est nécessaire pour le support et les mises
|
|
2246 |
|
2247 |
#: src/Tribe/PUE/Checker.php:509 src/Tribe/PUE/Checker.php:520
|
2248 |
msgid "License Key"
|
2249 |
-
msgstr "Clé de
|
2250 |
|
2251 |
#: src/Tribe/Main.php:248
|
2252 |
msgid "Search:"
|
2253 |
-
msgstr ""
|
2254 |
|
2255 |
#: src/Tribe/Settings.php:254
|
2256 |
msgid "Settings"
|
2257 |
-
msgstr "
|
2258 |
|
2259 |
#: src/Tribe/Settings_Manager.php:219
|
2260 |
msgid "Network"
|
@@ -2262,7 +2300,7 @@ msgstr "Réseau"
|
|
2262 |
|
2263 |
#: src/Tribe/Main.php:274
|
2264 |
msgid "Done"
|
2265 |
-
msgstr "
|
2266 |
|
2267 |
#: src/Tribe/Main.php:273 src/Tribe/Main.php:275
|
2268 |
msgid "Today"
|
@@ -2274,7 +2312,7 @@ msgstr "Précédent"
|
|
2274 |
|
2275 |
#: src/Tribe/Main.php:254 src/Tribe/Main.php:271
|
2276 |
msgid "Next"
|
2277 |
-
msgstr "
|
2278 |
|
2279 |
#: src/Tribe/Settings_Manager.php:279
|
2280 |
msgid "Help"
|
@@ -2282,17 +2320,17 @@ msgstr "Aide"
|
|
2282 |
|
2283 |
#: src/Tribe/Settings_Manager.php:55
|
2284 |
msgid "Display"
|
2285 |
-
msgstr "
|
2286 |
|
2287 |
#: src/Tribe/Settings_Manager.php:253
|
2288 |
#: src/admin-views/tribe-options-licenses.php:66
|
2289 |
msgid "Licenses"
|
2290 |
-
msgstr "
|
2291 |
|
2292 |
#: src/Tribe/Admin/Help_Page.php:59 src/Tribe/Customizer.php:642
|
2293 |
#: src/Tribe/Plugins_API.php:25
|
2294 |
msgid "The Events Calendar"
|
2295 |
-
msgstr "
|
2296 |
|
2297 |
#: src/Tribe/Settings.php:177 src/Tribe/Settings.php:241
|
2298 |
#: src/Tribe/Settings.php:242
|
@@ -2301,7 +2339,7 @@ msgstr "Événements"
|
|
2301 |
|
2302 |
#: src/Tribe/Settings.php:643
|
2303 |
msgid "Settings saved."
|
2304 |
-
msgstr "
|
2305 |
|
2306 |
#: src/Tribe/Settings_Manager.php:54
|
2307 |
msgid "General"
|
@@ -2309,29 +2347,29 @@ msgstr "Général"
|
|
2309 |
|
2310 |
#: src/Tribe/Field.php:626
|
2311 |
msgid "No select options specified"
|
2312 |
-
msgstr "
|
2313 |
|
2314 |
#: src/Tribe/Field.php:568
|
2315 |
msgid "No checkbox options specified"
|
2316 |
-
msgstr "
|
2317 |
|
2318 |
#: src/Tribe/Field.php:532
|
2319 |
msgid "No radio options specified"
|
2320 |
-
msgstr "
|
2321 |
|
2322 |
#: src/Tribe/Field.php:231
|
2323 |
msgid "Invalid field type specified"
|
2324 |
-
msgstr "
|
2325 |
|
2326 |
#: src/Tribe/Credits.php:31
|
2327 |
msgid "This calendar is powered by The Events Calendar."
|
2328 |
-
msgstr "Ce calendrier est
|
2329 |
|
2330 |
#: src/Tribe/App_Shop.php:50 src/Tribe/App_Shop.php:51
|
2331 |
#: src/Tribe/App_Shop.php:72
|
2332 |
msgid "Event Add-Ons"
|
2333 |
-
msgstr "
|
2334 |
|
2335 |
#: src/Tribe/Languages/Locations.php:55
|
2336 |
msgid "United States"
|
2337 |
-
msgstr "
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2018-11-12 16:28:37+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
"Language: fr_CA\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
55 |
|
56 |
#: src/Tribe/Plugins_API.php:37
|
57 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
58 |
+
msgstr "L'agrégateur d'événements ajoute une fonctionnalité d'importation massive à votre calendrier. Avant de l'avoir réalisé, vous serez en train d'importer des événements à partir de Meetup, d'Eventbrite, de Google Calendar, d'iCalendar et d'autres URL avec facilité. Programmez des importations automatiques en coulisses ou effectuez-les manuellement lorsque vous êtes prêt. Allez-y et importez tout votre soûl : l'agrégateur d'événements vous relie à un tableau de commandes central dans l'administration afin de rendre vos importations aussi simples que bonjour."
|
59 |
|
60 |
#: src/Tribe/Admin/Notice/Php_Version.php:101
|
61 |
msgid "Starting March 2019, %1$s will no longer work with versions prior to PHP 5.4. Currently your site is using PHP version %2$s. For best results, we recommend using PHP 5.6 or above."
|
62 |
+
msgstr "À partir de mars 2019, %1$s ne fonctionnera plus avec les versions antérieures à PHP 5.4. Votre site utilise actuellement la version PHP %2$s. Pour de meilleurs résultats, nous conseillons d'utiliser la version PHP 5.6 ou ultérieure."
|
63 |
|
64 |
#: src/Tribe/Admin/Notice/Php_Version.php:98
|
65 |
msgid "Starting March 2019, %1$s will no longer support versions prior to PHP 5.6. Your site is currently using PHP version %2$s which will no longer be supported by %1$s. For best results, we recommend using PHP 5.6 or above."
|
66 |
+
msgstr "À partir de mars 2019, %1$s ne prendra plus en charge les versions antérieures à PHP 5.6. Votre site utilise actuellement la version PHP %2$s qui ne sera plus prise en charge par %1$s. Pour de meilleurs résultats, nous conseillons d'utiliser la version PHP 5.6 ou ultérieure."
|
67 |
|
68 |
#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425
|
69 |
msgid "Every %d Minutes"
|
70 |
+
msgstr "Toutes les %d minutes"
|
71 |
|
72 |
#: src/admin-views/tribe-options-help.php:33
|
73 |
msgid "Search our support help desk"
|
74 |
+
msgstr "Cherchez sur notre bureau d'assistance"
|
75 |
|
76 |
#: src/Tribe/Plugins_API.php:71
|
77 |
msgid "Event Tickets Plus allows you to sell tickets to your events using WooCommerce, Easy Digital Downloads, or our built in Tribe Commerce tool. Add tickets to your posts and pages, or add %1$sThe Events Calendar%2$s and sell tickets from your event listings. Create custom registration forms, manage attendees, use custom capacity options, and more. Guest check in is easy with QR codes and our custom scanning app."
|
78 |
+
msgstr "Event Tickets Plus vous permet de vendre des billets pour vos événements en utilisant WooCommerce, Easy Digital Downloads, ou notre outil intégré Tribe Commerce. Ajoutez des billets à vos pages et publications, ou ajoutez %1$sThe Events Calendar%2$s et vendez des billets depuis les annonces de votre événement. Créez des formulaires d'inscription personnalisés, gérez les participants, utilisez les options de capacité personnalisées et autres. L'enregistrement des invités est simple avec les codes QR et notre appli de scan personnalisée."
|
79 |
|
80 |
#: src/Tribe/Validate.php:184
|
81 |
msgid "%s must not be empty"
|
82 |
+
msgstr "%s ne doit pas être vide"
|
83 |
|
84 |
#: src/Tribe/Validate.php:545
|
85 |
msgid "%s must be an email address."
|
86 |
+
msgstr "%s doit être une adresse e-mail."
|
87 |
|
88 |
#: src/Tribe/Languages/Locations.php:252
|
89 |
msgid "Sint Maarten"
|
90 |
+
msgstr "Saint-Martin"
|
91 |
|
92 |
#: src/Tribe/Languages/Locations.php:245
|
93 |
msgid "São Tomé and Príncipe"
|
94 |
+
msgstr "Sao Tomé-et-Principe"
|
95 |
|
96 |
#: src/Tribe/Languages/Locations.php:238
|
97 |
msgid "Saint Helena"
|
98 |
+
msgstr "Sainte-Hélène"
|
99 |
|
100 |
#: src/Tribe/Languages/Locations.php:237
|
101 |
msgid "Saint Barthélemy"
|
102 |
+
msgstr "Saint-Barthélemy"
|
103 |
|
104 |
#: src/Tribe/Languages/Locations.php:113
|
105 |
msgid "Curaçao"
|
106 |
+
msgstr "Curaçao"
|
107 |
|
108 |
#: src/Tribe/Languages/Locations.php:103
|
109 |
msgid "Collectivity of Saint Martin"
|
110 |
+
msgstr "Saint-Martin (France)"
|
111 |
|
112 |
#: src/Tribe/Languages/Locations.php:57
|
113 |
msgid "Åland Islands"
|
114 |
+
msgstr "Åland Islands"
|
115 |
|
116 |
#: src/admin-views/tribe-options-help.php:20
|
117 |
msgid "Check out our %s for developers."
|
118 |
+
msgstr "Jetez un coup d’œil sur %s pour les développeurs."
|
119 |
|
120 |
#: src/admin-views/tribe-options-help.php:18
|
121 |
msgid "Want to dive deeper?"
|
122 |
+
msgstr "Vous voulez plonger plus profondément ?"
|
123 |
|
124 |
#: src/admin-views/tribe-options-display.php:28
|
125 |
msgid "The following three fields accept the date format options available to the PHP %1$s function. <a href=\"%2$s\" target=\"_blank\">Learn how to make your own date format here</a>."
|
126 |
+
msgstr "Les trois champs suivants acceptent les options de format de date disponibles pour la fonction %1$s PHP. <a href=\"%2$s\" target=\"_blank\">Découvrez ici comment créer votre propre format de date</a>."
|
127 |
|
128 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:57
|
129 |
msgid "A list of links to the term own, archive and parent REST URL"
|
130 |
+
msgstr "Une liste de liens vers l'URL REST propre, archive et parente du terme"
|
131 |
|
132 |
#: src/Tribe/Main.php:251
|
133 |
msgid "Clear Selection."
|
134 |
+
msgstr "Effacer la sélection."
|
135 |
|
136 |
#: src/Tribe/Main.php:250
|
137 |
msgid "Select all pages"
|
138 |
+
msgstr "Sélectionner toutes les pages"
|
139 |
|
140 |
#: src/Tribe/Main.php:249
|
141 |
msgid "All items on this page were selected. "
|
142 |
+
msgstr "Tous les éléments de cette page ont été sélectionnés. "
|
143 |
|
144 |
#: src/Tribe/Plugins_API.php:94
|
145 |
msgid "Accept user-submitted events on your site! With Community Events, you can accept public submissions or require account sign-on. Settings give you the options to save as a draft or publish automatically, enable categories and tags, and choose whether users can edit/manage their own events or simply submit. Best of all - setup is easy! Just activate, configure the options, and off you go."
|
146 |
+
msgstr "Acceptez des événements envoyés par les utilisateurs sur votre site ! Grâce à Community Events, vous pouvez accepter les envois publics ou demander une connexion par un compte. Les paramètres vous donnent le choix d'enregistrer comme brouillon ou de publier automatiquement, d'activer des catégories et balises, et de choisir si les utilisateurs peuvent éditer et gérer ou non leurs propres événements ou simplement les envoyer. Encore mieux, l'installation est simple ! Il vous suffit d'activer, de configurer les options, et c'est parti."
|
147 |
|
148 |
#: src/Tribe/Ajax/Dropdown.php:243
|
149 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
150 |
+
msgstr "La source \"%s\" est invalide et ne peut être atteinte sur l'instance \"%s\"."
|
151 |
|
152 |
#: src/Tribe/Ajax/Dropdown.php:193
|
153 |
msgid "Empty data set for this dropdown"
|
154 |
+
msgstr "Ensemble de données vide pour ce déroulant"
|
155 |
|
156 |
#: src/Tribe/Ajax/Dropdown.php:180
|
157 |
msgid "Missing data source for this dropdown"
|
158 |
+
msgstr "Source de données manquante pour ce déroulant"
|
159 |
|
160 |
#: src/Tribe/Ajax/Dropdown.php:38
|
161 |
msgid "Cannot look for Terms without a taxonomy"
|
162 |
+
msgstr "Impossible de chercher des Termes sans une taxonomie"
|
163 |
|
164 |
#: src/Tribe/Plugins_API.php:60
|
165 |
msgid "Event Tickets provides a simple way for visitors to RSVP to your events. As a standalone plugin, it enables you to add RSVP functionality to posts or pages. When paired with The Events Calendar, you can add that same RSVP functionality directly to your event listings."
|
166 |
+
msgstr "Event Tickets propose aux visiteurs une manière simple d'envoyer un RSVP à vos événements. En tant que plugin indépendant, il vous permet d'ajouter une fonctionnalité RSVP aux publications ou aux pages. Lorsqu'il est apparié à The Events Calendar, vous pouvez ajouter cette même fonctionnalité RSVP directement aux annonces de votre événement."
|
167 |
|
168 |
#: src/Tribe/Plugins_API.php:28
|
169 |
msgid "Create an events calendar and manage it with ease. The Events Calendar plugin provides professional-level quality and features backed by a team you can trust."
|
170 |
+
msgstr "Créez un calendrier d'événements et gérez-le facilement. Le plugin de The Events Calendar propose une qualité de niveaux professionnel et des fonctionnalités assurées par une équipe en laquelle vous pouvez avoir confiance."
|
171 |
|
172 |
#: src/Tribe/PUE/Checker.php:1103
|
173 |
msgid "There is a new version of %1$s available. %2$s"
|
174 |
+
msgstr "Une nouvelle version de %1$s est disponible. %2$s"
|
175 |
|
176 |
#: src/Tribe/PUE/Checker.php:1092
|
177 |
msgid "Update now to version %s."
|
178 |
+
msgstr "Passez à présent à la version %s."
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
+
msgstr "Vous pouvez toujours vérifier le statut de vos licences en vous connectant à votre compte %1$s sur le site theeventscalendar.com%2$s."
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
+
msgstr[0] "On dirait que vous utilisez %1$s, mais la clé de licence est invalide. Veuillez télécharger la version la plus récente %2$sdepuis votre compte%3$s."
|
188 |
+
msgstr[1] "On dirait que vous utilisez %1$s, mais les clés de licence sont invalides. Veuillez télécharger la version la plus récente %2$sdepuis votre comtpe%3$s."
|
189 |
|
190 |
#: src/Tribe/PUE/Checker.php:984
|
191 |
msgid "Please refresh the page and try your request again."
|
192 |
+
msgstr "Veuillez actualiser la page et réessayez votre demande."
|
193 |
|
194 |
#: src/Tribe/Plugins_API.php:129
|
195 |
msgid "Take your image widgets to the next level with Image Widget Plus! We've taken the simple functionality of our basic Image Widget and amped it up with several popular feature requests - multiple image support, slideshow, lightbox, and random image - all backed by a full year of premium support."
|
196 |
+
msgstr "Faites passer vos widgets d'images au niveau supérieur avec Image Widget Plus ! Nous avons utilisé la fonctionnalité simple de notre Image Widget de base et l'avons embelli de plusieurs demandes populaires de fonctionnalités, prise en charge de plusieurs images, diaporama, éclairage et images aléatoires, le tout reposant sur une assistance premium d'un an complet."
|
197 |
|
198 |
#: src/Tribe/Plugins_API.php:125
|
199 |
msgid "Image Widget Plus"
|
200 |
+
msgstr "Image Widget Plus"
|
201 |
|
202 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:52
|
203 |
msgid "The URL to the term archive page"
|
204 |
+
msgstr "L'URL vers la page d'archive des termes"
|
205 |
|
206 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:48
|
207 |
msgid "The number of posts associated with the term"
|
208 |
+
msgstr "Le nombre de publications associées au terme"
|
209 |
|
210 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:44
|
211 |
msgid "The term parent term if any"
|
212 |
+
msgstr "Le terme du terme parent le cas échéant"
|
213 |
|
214 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:40
|
215 |
msgid "The term description"
|
216 |
+
msgstr "La description du terme"
|
217 |
|
218 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:36
|
219 |
msgid "The taxonomy the term belongs to"
|
220 |
+
msgstr "La taxonomie à laquelle le terme appartient"
|
221 |
|
222 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:32
|
223 |
msgid "The term slug"
|
224 |
+
msgstr "Le terme slug"
|
225 |
|
226 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:28
|
227 |
msgid "The term name"
|
228 |
+
msgstr "Le nom du terme"
|
229 |
|
230 |
#: src/Tribe/Documentation/Swagger/Term_Definition_Provider.php:24
|
231 |
msgid "The WordPress term ID"
|
232 |
+
msgstr "L'ID WordPress du terme"
|
233 |
|
234 |
#: src/Tribe/Documentation/Swagger/Image_Size_Definition_Provider.php:37
|
235 |
msgid "The link to the image in the specified size on the site"
|
236 |
+
msgstr "Le lien vers l'image de la taille spécifiée sur le site"
|
237 |
|
238 |
#: src/Tribe/Documentation/Swagger/Image_Size_Definition_Provider.php:32
|
239 |
msgid "The image mime-type"
|
240 |
+
msgstr "Le type MIME de l'image"
|
241 |
|
242 |
#: src/Tribe/Documentation/Swagger/Image_Size_Definition_Provider.php:28
|
243 |
msgid "The image height in pixels in the specified size"
|
244 |
+
msgstr "La hauteur de l'image en pixels à la taille spécifiée"
|
245 |
|
246 |
#: src/Tribe/Documentation/Swagger/Image_Size_Definition_Provider.php:24
|
247 |
msgid "The image width in pixels in the specified size"
|
248 |
+
msgstr "La largeur de l'image en pixels à la taille spécifiée"
|
249 |
|
250 |
#: src/Tribe/Documentation/Swagger/Image_Definition_Provider.php:45
|
251 |
msgid "The details about each size available for the image"
|
252 |
+
msgstr "Les détails à propos de chaque taille disponible pour l'image"
|
253 |
|
254 |
#: src/Tribe/Documentation/Swagger/Image_Definition_Provider.php:41
|
255 |
msgid "The image natural height in pixels"
|
256 |
+
msgstr "La hauteur naturelle de l'image en pixels"
|
257 |
|
258 |
#: src/Tribe/Documentation/Swagger/Image_Definition_Provider.php:37
|
259 |
msgid "The image natural width in pixels"
|
260 |
+
msgstr "La largeur naturelle de l'image en pixels"
|
261 |
|
262 |
#: src/Tribe/Documentation/Swagger/Image_Definition_Provider.php:33
|
263 |
msgid "The image file extension"
|
264 |
+
msgstr "L'extension de fichier de l'image"
|
265 |
|
266 |
#: src/Tribe/Documentation/Swagger/Image_Definition_Provider.php:29
|
267 |
msgid "The image WordPress post ID"
|
268 |
+
msgstr "L'ID de publication WordPress de l'image"
|
269 |
|
270 |
#: src/Tribe/Documentation/Swagger/Image_Definition_Provider.php:25
|
271 |
msgid "The URL to the full size version of the image"
|
272 |
+
msgstr "L'URL vers la version de pleine taille de l'image"
|
273 |
|
274 |
#: src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php:44
|
275 |
msgid "The date seconds"
|
276 |
+
msgstr "Les secondes de la date"
|
277 |
|
278 |
#: src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php:40
|
279 |
msgid "The date minutes"
|
280 |
+
msgstr "Les minutes de la date"
|
281 |
|
282 |
#: src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php:36
|
283 |
msgid "The date hour"
|
284 |
+
msgstr "L'heure de la date"
|
285 |
|
286 |
#: src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php:32
|
287 |
msgid "The date day"
|
288 |
+
msgstr "Le jour de la date"
|
289 |
|
290 |
#: src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php:28
|
291 |
msgid "The date month"
|
292 |
+
msgstr "Le mois de la date"
|
293 |
|
294 |
#: src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php:24
|
295 |
msgid "The date year"
|
296 |
+
msgstr "L'année de la date"
|
297 |
|
298 |
#: src/Tribe/Documentation/Swagger/Cost_Details_Definition_Provider.php:34
|
299 |
msgid "A sorted array of all the numeric values for the cost"
|
300 |
+
msgstr "Un choix ordonné de toutes les valeurs numériques pour le coût"
|
301 |
|
302 |
#: src/Tribe/Documentation/Swagger/Cost_Details_Definition_Provider.php:28
|
303 |
msgid "The position of the currency symbol in the cost string"
|
304 |
+
msgstr "La position du symbole de devise dans la chaîne du coût"
|
305 |
|
306 |
#: src/Tribe/Documentation/Swagger/Cost_Details_Definition_Provider.php:24
|
307 |
msgid "The cost currency symbol"
|
308 |
+
msgstr "Le symbole de devise du coût"
|
309 |
|
310 |
#: src/Tribe/PUE/Checker.php:497
|
311 |
msgid "%1$sBuy a license%2$s for the Event Aggregator service to access additional import features."
|
312 |
+
msgstr "%1$sAcheter une licence%2$s pour le service Event Aggregator afin d'accéder à des fonctionnalités d'importation supplémentaires."
|
313 |
|
314 |
#: src/Tribe/Validate.php:248
|
315 |
msgid "%s must be a whole number."
|
316 |
+
msgstr "%s doit être un nombre complet."
|
317 |
|
318 |
#: src/Tribe/Settings.php:281 src/Tribe/Settings.php:282
|
319 |
msgid "Events Help"
|
320 |
+
msgstr "Assistance aux événements"
|
321 |
|
322 |
#: src/Tribe/PUE/Checker.php:1678
|
323 |
msgid "Expired license. Consult your network administrator."
|
324 |
+
msgstr "Licence expirée. Consultez votre administrateur réseau."
|
325 |
|
326 |
#: src/Tribe/PUE/Checker.php:1677
|
327 |
msgid "No license entered. Consult your network administrator."
|
328 |
+
msgstr "Aucune licence saisie. Consultez votre administrateur réseau."
|
329 |
|
330 |
#: src/Tribe/PUE/Checker.php:1676
|
331 |
msgid "A valid license has been entered by your network administrator."
|
332 |
+
msgstr "Une licence valide a été saisie par votre administrateur réseau."
|
333 |
|
334 |
#: src/Tribe/PUE/Checker.php:550
|
335 |
msgid "Site License Key"
|
336 |
+
msgstr "Clé de licence du site"
|
337 |
|
338 |
#: src/Tribe/PUE/Checker.php:539
|
339 |
msgid "Check this box if you wish to override the network license key with your own"
|
340 |
+
msgstr "Cochez cette case si vous voulez outrepasser la clé de licence du réseau avec la votre"
|
341 |
|
342 |
#: src/Tribe/PUE/Checker.php:538
|
343 |
msgid "Override network license key"
|
344 |
+
msgstr "Outrepasser la clé de licence du réseau"
|
345 |
|
346 |
#: src/Tribe/PUE/Checker.php:529 src/Tribe/PUE/Checker.php:563
|
347 |
msgid "License Key Status:"
|
348 |
+
msgstr "Statut de la clé de licence :"
|
349 |
|
350 |
#: src/Tribe/Customizer.php:643
|
351 |
msgid "Use the following panel of your customizer to change the styling of your Calendar and Event pages."
|
352 |
+
msgstr "Utilisez le panneau suivant de votre personnalisateur pour modifier le style de vos pages Calendrier et Evénement."
|
353 |
|
354 |
#: src/Tribe/Extension.php:368
|
355 |
msgid "Unable to run Tribe Extensions. Your website host is running PHP 5.2 or older, and has likely disabled or misconfigured debug_backtrace(). You, or your website host, will need to upgrade PHP or properly configure debug_backtrace() for Tribe Extensions to work."
|
356 |
+
msgstr "Impossible de lancer Tribe Extensions. L'hébergeur de votre site Web utilise PHP 5.2 ou antérieur et a sans doute désactivé ou mal configuré debug_backtrace(). Vous, ou votre hébergeur de site Web, devrez mettre à jour PHP ou configurer correctement debug_backtrace() pour que Tribe Extensions fonctionne."
|
357 |
|
358 |
#: src/Tribe/Extension.php:144
|
359 |
msgid "Tutorial"
|
360 |
+
msgstr "Tutoriel"
|
361 |
|
362 |
#: src/admin-views/app-shop.php:31
|
363 |
msgid "Installed"
|
364 |
+
msgstr "Installé"
|
365 |
|
366 |
#: src/admin-views/app-shop.php:29
|
367 |
msgid "Installed Add-Ons"
|
368 |
+
msgstr "Extensions installées"
|
369 |
|
370 |
#: src/Tribe/Admin/Notice/Php_Version.php:60
|
371 |
#: src/Tribe/Admin/Notice/Plugin_Download.php:92
|
372 |
msgctxt "the final separator in a list of two or more items"
|
373 |
msgid " and "
|
374 |
+
msgstr " et "
|
375 |
|
376 |
#: src/Tribe/Admin/Notice/Php_Version.php:59
|
377 |
#: src/Tribe/Admin/Notice/Plugin_Download.php:91
|
378 |
msgctxt "separator used in a list of items"
|
379 |
msgid ", "
|
380 |
+
msgstr ", "
|
381 |
|
382 |
#: src/admin-views/tribe-options-help.php:55
|
383 |
msgid "Event Log"
|
384 |
+
msgstr "Journal d'événements"
|
385 |
|
386 |
#: src/admin-views/tribe-options-help.php:42
|
387 |
msgid "The details of your calendar plugin and settings is often needed for you or our staff to help troubleshoot an issue. Please opt-in below to automatically share your system information with our support team. This will allow us to assist you faster if you post in our help desk."
|
388 |
+
msgstr "Les détails de votre plugin et paramètres de votre calendrier sont souvent nécessaires pour que vous ou votre personnel puisse résoudre un problème. Veuillez adhérer ci-dessous pour partager automatiquement les informations sur votre système avec notre équipe d'assistance. Ceci nous aidera à vous aider plus rapidement si vous publiez sur notre bureau d'assistance."
|
389 |
|
390 |
#: src/admin-views/app-shop.php:26
|
391 |
msgid "Buy This Add-On"
|
392 |
+
msgstr "Acheter cette extension"
|
393 |
|
394 |
#: src/admin-views/app-shop.php:5
|
395 |
msgid "Browse All Add-Ons"
|
396 |
+
msgstr "Parcourir toutes les extensions"
|
397 |
|
398 |
#: src/admin-views/app-shop.php:4
|
399 |
msgid "Events Add-Ons"
|
400 |
+
msgstr "Extensions d'événements"
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
+
msgstr "%1$s et %2$s"
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
+
msgstr[0] "Vous avez une clé de licence pour %1$s mais la clé est hors des installations. %2$sVisitez le site Web de Events Calendar%3$s pour gérer vos installations, mettre à jour votre licence ou en acheter une nouvelle."
|
411 |
+
msgstr[1] "Vous avez des clés de licence pour %1$s mais vos clés sont hors des installations. %2$sVisitez le site Web de Events Calendar%3$s pour gérer vos installations, mettre à jour vos licences ou en acheter de nouvelles."
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
+
msgstr[0] "Une mise à jour est disponible pour %1$s mais votre licence a expirée. %2$sVisitez le site Web de Events Calendar pour renouveler votre licence.%3$s"
|
417 |
+
msgstr[1] "Des mises à jour sont disponibles pour %1$s mais vos clés de licence ont expirées. %2$sVisitez le site Web de Events Calendar pour renouveler vos licences.%3$s"
|
418 |
|
419 |
#: src/Tribe/PUE/Checker.php:1062
|
420 |
msgid "There is an update for %s. %sRenew your license%s to get access to bug fixes, security updates, and new features."
|
421 |
+
msgstr "Il y a une mise à jour pour %s. %sRenouvelez votre licence%s pour avoir accès aux éliminations de bogues, aux mises à jour de sécurité et aux nouvelles fonctionnalités."
|
422 |
|
423 |
#: src/Tribe/PUE/Checker.php:1005
|
424 |
msgid "There is an update for %s. You'll need to %scheck your license%s to have access to updates, downloads, and support."
|
425 |
+
msgstr "Il y a une mise à jour pour %s. Vous devrez %svérifier votre licence%s pour avoir accès aux mises à jour, aux téléchargements et à l'assistance."
|
426 |
|
427 |
#: src/Tribe/Admin/Help_Page.php:219 src/Tribe/Plugins_API.php:34
|
428 |
msgid "Event Aggregator"
|
429 |
+
msgstr "Event Aggregator"
|
430 |
|
431 |
#: src/Tribe/Admin/Notice/Plugin_Download.php:75
|
432 |
msgid "To begin using %1$s, please install and activate the latest version of %2$s."
|
433 |
+
msgstr "Pour commencer d'utiliser %1$s, veuillez installer et activer la dernière version de %2$s."
|
434 |
|
435 |
#: src/admin-views/tribe-options-licenses.php:30
|
436 |
msgid "Not seeing an update but expecting one? In WordPress, go to %1$sDashboard > Updates%2$s and click \"Check Again\"."
|
437 |
+
msgstr "Vous ne voyez pas de mise à jour mais vous en espériez une ? Dans WordPress, allez dans %1$sPanneau de contrôle > Mises à jour%2$s et cliquez sur \"Revérifier\"."
|
438 |
|
439 |
#: src/admin-views/tribe-options-licenses.php:25
|
440 |
msgid "If you're seeing a red message telling you that your key isn't valid or is out of installs, visit %1$s to manage your installs or renew / upgrade your license."
|
441 |
+
msgstr "Si vous voyez un message en rouge vous disant que votre clé est invalide ou se trouve hors des installations, visitez %1$s pour gérer vos installations, renouveler ou mettre à jour votre licence."
|
442 |
|
443 |
#: src/admin-views/tribe-options-licenses.php:22
|
444 |
msgid "Each paid add-on has its own unique license key. Simply paste the key into its appropriate field below, and give it a moment to validate. You know you're set when a green expiration date appears alongside a \"valid\" message."
|
445 |
+
msgstr "Chaque extension payée possède sa propre clé unique de licence. Collez simplement la clé dans son champ approprié ci-dessous et attendez un instant la validation. Vous saurez que tout est prêt lorsque une date d'expiration en vert apparaîtra au côté d'un message \"valide\"."
|
446 |
|
447 |
#: src/admin-views/tribe-options-licenses.php:15
|
448 |
msgid "The license key you received when completing your purchase from %1$s will grant you access to support and updates until it expires. You do not need to enter the key below for the plugins to work, but you will need to enter it to get automatic updates. %3$sFind your license keys at %2$s%4$s."
|
449 |
+
msgstr "La clé de licence que vous avez reçu lorsque vous avez effectué votre achat auprès de %1$s vous donne accès à l'assistance et aux mises à jour jusqu'à son expiration. Vous n'avez pas à saisir la clé ci-dessous pour que les plugin fonctionnent mais vous devrez la saisir pour recevoir les mises à jour automatiques. %3$sVos clés de licence se trouvent sur %2$s%4$s."
|
450 |
|
451 |
#: src/admin-views/tribe-options-licenses.php:11
|
452 |
#: src/admin-views/tribe-options-licenses.php:16
|
453 |
msgid " (opens in new window)"
|
454 |
+
msgstr " (s'ouvre dans une nouvelle fenêtre)"
|
455 |
|
456 |
#: src/Tribe/Languages/Locations.php:110
|
457 |
msgid "Côte d'Ivoire"
|
458 |
+
msgstr "Côte d'Ivoire"
|
459 |
|
460 |
#: src/Tribe/Support.php:372
|
461 |
msgid "Unique System Info Key Generated"
|
462 |
+
msgstr "Clé unique d'information système générée"
|
463 |
|
464 |
#: src/Tribe/Support.php:358 src/Tribe/Support.php:384
|
465 |
msgid "Permission Error"
|
466 |
+
msgstr "Erreur de permission"
|
467 |
|
468 |
#: src/Tribe/Support.php:325 src/Tribe/Support.php:330
|
469 |
msgid "Invalid Key"
|
470 |
+
msgstr "Clé invalide"
|
471 |
|
472 |
#: src/Tribe/Support.php:306
|
473 |
msgid "Your system information will only be used by the Modern Tribe support team. All information is stored securely. We do not share this information with any third parties."
|
474 |
+
msgstr "Vos informations système ne seront utilisées que par l'équipe d'assistance de Modern Tribe. Toutes les informations sont conservées en sécurité. Nous ne partageons ces informations avec aucune tierce partie."
|
475 |
|
476 |
#: src/Tribe/Support.php:305
|
477 |
msgid "Yes, automatically share my system information with the Modern Tribe support team"
|
478 |
+
msgstr "Oui, partager automatiquement mes informations système avec l'équipe d'assistance de Modern Tribe"
|
479 |
|
480 |
#: src/Tribe/Support.php:171
|
481 |
msgid "English"
|
482 |
+
msgstr "Anglais"
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
+
msgstr " (s'ouvre dans une nouvelle fenêtre)"
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
+
msgstr "Renouveler maintenant votre licence"
|
491 |
|
492 |
#: src/Tribe/Main.php:261
|
493 |
msgid ": Selected 1 row"
|
494 |
+
msgstr ": a sélectionné une rangée"
|
495 |
|
496 |
#: src/Tribe/Main.php:260
|
497 |
msgid ": Selected %d rows"
|
498 |
+
msgstr ": a sélectionné %d rangées"
|
499 |
|
500 |
#: src/Tribe/Main.php:255
|
501 |
msgid "Previous"
|
502 |
+
msgstr "Précédent"
|
503 |
|
504 |
#: src/Tribe/Main.php:253
|
505 |
msgid "All"
|
506 |
+
msgstr "Tout"
|
507 |
|
508 |
#: src/Tribe/Main.php:247
|
509 |
msgid "No matching records found"
|
510 |
+
msgstr "Aucun enregistrement correspondant trouvé"
|
511 |
|
512 |
#: src/Tribe/Main.php:246
|
513 |
msgid "(filtered from _MAX_ total entries)"
|
514 |
+
msgstr "(filtré à partir du total des saisies _MAX_ )"
|
515 |
|
516 |
#: src/Tribe/Main.php:245
|
517 |
msgid "Showing 0 to 0 of 0 entries"
|
518 |
+
msgstr "Affichant 0 à 0 de 0 saisies"
|
519 |
|
520 |
#: src/Tribe/Main.php:244
|
521 |
msgid "Showing _START_ to _END_ of _TOTAL_ entries"
|
522 |
+
msgstr "Affichant_START_ à _END_ du _TOTAL_ des saisies"
|
523 |
|
524 |
#: src/Tribe/Main.php:243
|
525 |
msgid "No data available in table"
|
526 |
+
msgstr "Aucune donnée disponible sur le tableau"
|
527 |
|
528 |
#: src/Tribe/Main.php:242
|
529 |
msgid "Show _MENU_ entries"
|
530 |
+
msgstr "Afficher les saisies _MENU_"
|
531 |
|
532 |
#: src/Tribe/Main.php:240
|
533 |
msgid ": activate to sort column descending"
|
534 |
+
msgstr ": activer pour trier la colonne descendante"
|
535 |
|
536 |
#: src/Tribe/Main.php:239
|
537 |
msgid ": activate to sort column ascending"
|
538 |
+
msgstr ": activer pour trier la colonne ascendante"
|
539 |
|
540 |
#: src/Tribe/Main.php:284
|
541 |
msgid "Press \"Cmd + C\" to copy"
|
542 |
+
msgstr "Appuyer sur \"Cmd + C\" pour copier"
|
543 |
|
544 |
#: src/Tribe/Main.php:283
|
545 |
msgid "System info copied"
|
546 |
+
msgstr "Infos système copiées"
|
547 |
|
548 |
#: src/Tribe/Main.php:282 src/admin-views/tribe-options-help.php:50
|
549 |
msgid "Copy to clipboard"
|
550 |
+
msgstr "Copier vers le presse-papiers"
|
551 |
|
552 |
#: src/Tribe/Error.php:38
|
553 |
msgid "An Unknown error occurred"
|
554 |
+
msgstr "Une erreur inconnue est survenue"
|
555 |
|
556 |
#: src/Tribe/Plugins_API.php:116
|
557 |
msgid "The Eventbrite Tickets add-on allows you to create & sell tickets through The Events Calendar using the power of %1$sEventbrite%2$s. Whether you’re creating your ticket on the WordPress dashboard or importing the details of an already-existing event from %1$sEventbrite.com%2$s, this add-on brings the power of the Eventbrite API to your calendar."
|
558 |
+
msgstr "L'extension Eventbrite Tickets vous permet de créer et de vendre des billets via The Events Calendar en utilisant la puissance de %1$sEventbrite%2$s. Que vous créiez votre billet sur le panneau de contrôle de WordPress ou en important les détails d'un événement déjà existant depuis %1$sEventbrite.com%2$s, cette extension apporte la puissance de l'API Eventbrite à votre calendrier."
|
559 |
|
560 |
#: src/Tribe/Plugins_API.php:105
|
561 |
msgctxt "Names of required plugins for Community Tickets"
|
562 |
msgid "Event Tickets Plus and Community Events"
|
563 |
+
msgstr "Event Tickets Plus et Community Events"
|
564 |
|
565 |
#: src/Tribe/Plugins_API.php:104
|
566 |
msgid "Enable Community Events organizers to offer tickets to their events. You can set flexible payment and fee options. They can even check-in attendees to their events! All of this managed from the front-end of your site without ever needing to grant access to your admin"
|
567 |
+
msgstr "Permettez aux organisateurs sur Community Events de proposer des billets pour leurs événements. Vous pouvez établer des paiements et options de redevances souples. Ils peuvent même faire entrer les participants à leurs événements ! Le tout géré depuis le devant de votre site sans avoir jamais besoin de donner l'accès à votre partie d'administration"
|
568 |
|
569 |
#: src/Tribe/Plugins_API.php:48
|
570 |
msgid "The Events Calendar PRO is a paid Add-On to our open source WordPress plugin %1$sThe Events Calendar%2$s. PRO offers a whole host of calendar features including recurring events, custom event attributes, saved venues and organizers, venue pages, advanced event admin and lots more."
|
571 |
+
msgstr "The Events Calendar PRO est une extension payante pour notre plugin open source WordPress %1$sThe Events Calendar%2$s. La version PRO offre quantité de fonctionnalités de calendrier, notamment les événements récurrents, la personnalisation d'attributs d'événements, l'enregistrement de lieux et d'organisateurs, les pages des lieux, l'administration avancée des événements et bien plus."
|
572 |
|
573 |
#: src/Tribe/Plugins_API.php:84
|
574 |
msgid "It is awesome that your calendar is <em>THE PLACE</em> to get hooked up with prime choice ways to spend time. You have more events than Jabba the Hutt has rolls. Too bad visitors are hiring a personal assistant to go through all the choices. Ever wish you could just filter the calendar to only show events in walking distance, on a weekend, that are free? BOOM. Now you can. Introducing… the Filter Bar."
|
575 |
+
msgstr "C'est fantastique que votre calendrier soit <em>LE LIEU</em> où être connecté à des manières de premier choix de passer le temps. Vous avez plus d'événements que Jabba le Hutt n'a de plis. Dommage que les visiteurs embauchent un assistant personnel pour consulter tous les choix. Avez-vous jamais souhaité filtrer simplement le calendrier pour qu'il n'affiche que les événements où l'on peut aller à pied, pendant le week-end, qui sont gratuits ? VLAM. Maintenant vous le pouvez. Je vous présente... la Barre de filtrage."
|
576 |
|
577 |
#: src/Tribe/Admin/Help_Page.php:227 src/Tribe/Plugins_API.php:80
|
578 |
msgid "Filter Bar"
|
579 |
+
msgstr "Barre des filtres"
|
580 |
|
581 |
#: src/Tribe/Credits.php:64
|
582 |
msgid "Rate %1$sEvent Tickets%2$s %3$s"
|
583 |
+
msgstr "Evaluer %1$sEvent Tickets%2$s %3$s"
|
584 |
|
585 |
#: src/Tribe/Credits.php:55
|
586 |
msgid "Rate %1$sThe Events Calendar%2$s %3$s"
|
587 |
+
msgstr "Evaluer %1$sThe Events Calendar%2$s %3$s"
|
588 |
|
589 |
#: src/Tribe/Log/Null_Logger.php:26
|
590 |
msgid "Null logger (will log nothing)"
|
591 |
+
msgstr "Enregistreur caduc (n'enregistrera rien)"
|
592 |
|
593 |
#: src/admin-views/event-log.php:117
|
594 |
msgid "Download log"
|
595 |
+
msgstr "Journal de téléchargement"
|
596 |
|
597 |
#: src/admin-views/event-log.php:100
|
598 |
msgid "The selected log file is empty or has not been generated yet."
|
599 |
+
msgstr "Le fichier journal sélectionné est vide ou n'a pas encore été généré."
|
600 |
|
601 |
#: src/admin-views/event-log.php:43
|
602 |
msgid "Method"
|
603 |
+
msgstr "Méthode"
|
604 |
|
605 |
#: src/admin-views/event-log.php:21
|
606 |
msgid "Logging level"
|
607 |
+
msgstr "Niveau de connexion"
|
608 |
|
609 |
#: src/Tribe/Validate.php:168
|
610 |
msgid "%s must contain numbers, letters, dashes and undescores only"
|
611 |
+
msgstr "%s doit contenir uniquement des chiffres, des lettres, des points et des tirets bas"
|
612 |
|
613 |
#: src/Tribe/Log.php:376
|
614 |
msgid "Full debug (all events)"
|
615 |
+
msgstr "Déboguer complètement (tous les événements)"
|
616 |
|
617 |
#: src/Tribe/Log.php:375
|
618 |
msgid "Warnings and errors"
|
619 |
+
msgstr "Avertissements et erreurs"
|
620 |
|
621 |
#: src/Tribe/Log.php:374
|
622 |
msgid "Only errors"
|
623 |
+
msgstr "Erreurs uniquement"
|
624 |
|
625 |
#: src/Tribe/Log.php:373
|
626 |
msgid "Disabled"
|
627 |
+
msgstr "Désactivé"
|
628 |
|
629 |
#: src/Tribe/Log.php:274
|
630 |
msgid "Cannot set %s as the current logging engine"
|
631 |
+
msgstr "Impossible d'installer %s comme le moteur de connexion actuel"
|
632 |
|
633 |
#: src/Tribe/Log/File_Logger.php:128
|
634 |
msgid "Default (uses temporary files)"
|
635 |
+
msgstr "Par défaut (utiliser les fichiers temporaires)"
|
636 |
|
637 |
#: src/Tribe/Log/Admin.php:148
|
638 |
msgctxt "log engines"
|
639 |
msgid "None currently available"
|
640 |
+
msgstr "Aucun actuellement disponible"
|
641 |
|
642 |
#: src/Tribe/Log/Admin.php:133
|
643 |
msgctxt "log selector"
|
644 |
msgid "None currently available"
|
645 |
+
msgstr "Aucun actuellement disponible"
|
646 |
|
647 |
#: src/admin-views/tribe-options-help.php:52
|
648 |
msgid "Recent Template Changes"
|
649 |
+
msgstr "Modifications récentes de modèle"
|
650 |
|
651 |
#: src/Tribe/Support/Template_Checker_Report.php:115
|
652 |
msgid "Information about recent template changes and potentially impacted template overrides is provided below."
|
653 |
+
msgstr "Des informations sur les récentes modifications de modèle et les dérogations de modèle potentiellement touchées sont fournies ci-dessous."
|
654 |
|
655 |
#: src/Tribe/Support/Template_Checker_Report.php:113
|
656 |
msgid "No notable template changes detected."
|
657 |
+
msgstr "Aucune modification notable de modèle détectée."
|
658 |
|
659 |
#: src/Tribe/Support/Template_Checker_Report.php:97
|
660 |
msgid "based on %s version"
|
661 |
+
msgstr "basé sur la version %s"
|
662 |
|
663 |
#: src/Tribe/Support/Template_Checker_Report.php:96
|
664 |
msgid "version data missing from override"
|
665 |
+
msgstr "données de version manquantes à la dérogation"
|
666 |
|
667 |
#: src/Tribe/Support/Template_Checker_Report.php:92
|
668 |
msgid "Existing theme overrides that may need revision:"
|
669 |
+
msgstr "Dérogations existantes de thème pouvant nécessiter une révision :"
|
670 |
|
671 |
#: src/Tribe/Support/Template_Checker_Report.php:82
|
672 |
msgid "Templates introduced or updated with this release (%s):"
|
673 |
+
msgstr "Modèles introduits ou mis à jour avec cette version (%s):"
|
674 |
|
675 |
#: src/Tribe/Support/Template_Checker_Report.php:78
|
676 |
msgid "No notable changes detected"
|
677 |
+
msgstr "Aucun changement notable détecté"
|
678 |
|
679 |
#. Description of the plugin/theme
|
680 |
msgid "An event settings framework for managing shared options"
|
681 |
+
msgstr "Un cadre de paramètres d'événement pour gérer les options partagées"
|
682 |
|
683 |
#. Plugin Name of the plugin/theme
|
684 |
msgid "Tribe Common"
|
685 |
+
msgstr "Tribe Common"
|
686 |
|
687 |
#: src/admin-views/tribe-options-licenses.php:47
|
688 |
msgid "Only license fields for %1$snetwork activated%2$s plugins will be listed on this screen. "
|
689 |
+
msgstr "Seuls les champs de licence pour des plugins %1$sactivés sur le réseau%2$s seront listés sur cet écran. "
|
690 |
|
691 |
#: src/admin-views/tribe-options-help.php:38
|
692 |
msgid "Read more about our support policy"
|
693 |
+
msgstr "Lisez en plus au sujet de notre politique d'assistance"
|
694 |
|
695 |
#: src/admin-views/tribe-options-help.php:30
|
696 |
msgid "Please note that all hands-on support is provided via the forums. You can email or tweet at us… but we will probably point you back to the forums "
|
698 |
|
699 |
#: src/admin-views/tribe-options-help.php:33
|
700 |
msgid "%s. There are very few issues we haven’t seen and it’s likely another user has already asked your question and gotten an answer from our support staff. While posting to the help desk is open only to paid customers, they are open for anyone to search and review."
|
701 |
+
msgstr "%s. Il y a très peu de problèmes que nous n'avons vu et il y a des chances qu'un autre utilisateur ait déjà posé votre question et reçu une réponse de notre personnel d'assistance. Si publier sur le bureau d'assistance est uniquement possible pour les clients payants, le bureau est ouvert à tous pour des recherches et examens."
|
702 |
|
703 |
#: src/admin-views/tribe-options-help.php:32
|
704 |
msgid "Test for a theme or plugin conflict"
|
705 |
+
msgstr "Test pour un conflit de thèmes ou plugins"
|
706 |
|
707 |
#: src/admin-views/tribe-options-help.php:32
|
708 |
msgid "%s. Testing for an existing conflict is the best start for in-depth troubleshooting. We will often ask you to follow these steps when opening a new thread, so doing this ahead of time will be super helpful."
|
709 |
+
msgstr "%s. Tester un conflit existant est le meilleur départ pour une recherche de panne en profondeur. Nous vous demanderons souvent de suivre ces étapes lors de l'ouverture d'un nouveau fil de sujet, aussi le faire à l'avance sera super utile."
|
710 |
|
711 |
#: src/admin-views/tribe-options-help.php:31
|
712 |
msgid "Check our Knowledgebase"
|
713 |
+
msgstr "Consultez notre base de connaissances"
|
714 |
|
715 |
#: src/admin-views/tribe-options-help.php:31
|
716 |
msgid "%s. All of the common (and not-so-common) answers to questions we see are here. It’s often the fastest path to finding an answer!"
|
717 |
+
msgstr "%s. L'ensemble des réponses communes (et pas si communes) aux questions que nous voyons se trouvent ici. C'est souvent la voie la plus rapide pour trouver une réponse !"
|
718 |
|
719 |
#: src/admin-views/tribe-options-help.php:27
|
720 |
msgid "While the resources above help solve a majority of the issues we see, there are times you might be looking for extra support. If you need assistance using our plugins and would like us to take a look, please follow these steps:"
|
721 |
+
msgstr "Si les ressources ci-dessus aident à résoudre la majorité des problèmes que nous voyons, il y a des fois où il vous faut une assistance supplémentaire. Si vous avez besoin d'aide pour l'utilisation de nos plugins et que vous souhaitez que nous examinions votre cas, veuillez suivre ces étapes :"
|
722 |
|
723 |
#: src/admin-views/tribe-options-help.php:26
|
724 |
msgid "Getting More Help"
|
725 |
+
msgstr "Recevoir plus d'aide"
|
726 |
|
727 |
#: src/admin-views/tribe-options-help.php:21
|
728 |
msgid "list of available functions"
|
729 |
+
msgstr "liste des fonctionnalités disponibles"
|
730 |
|
731 |
#: src/admin-views/tribe-options-help.php:15
|
732 |
msgid "Knowledgebase"
|
733 |
+
msgstr "Base de connaissances"
|
734 |
|
735 |
#: src/admin-views/tribe-options-help.php:15
|
736 |
msgid "Our website’s %s is a great place to find tips and tricks for using and customizing our plugins."
|
737 |
+
msgstr "Le %s de notre site Web est un excellent endroit où trouver des conseils et des astuces pour utiliser et personnaliser nos plugins."
|
738 |
|
739 |
#: src/admin-views/tribe-options-help.php:14
|
740 |
msgid "Getting Support"
|
741 |
+
msgstr "Obtenir de l'aide"
|
742 |
|
743 |
#: src/admin-views/tribe-options-help.php:11
|
744 |
msgid "Thank you for using %s! All of us at Modern Tribe sincerely appreciate your support and we’re excited to see you using our plugins."
|
745 |
+
msgstr "Merci d'utiliser %s ! Nous apprécions tous sincèrement votre soutien à Modern Tribe et nous sommes ravis de vous voir utiliser nos plugins."
|
746 |
|
747 |
#: src/admin-views/tribe-options-general.php:15
|
748 |
msgid "Optimize your site's event listings with %1$sThe Events Calendar%2$s, our free calendar plugin. Looking for additional functionality including recurring events, user-submission, advanced ticket sales and more? Check out our %3$spremium add-ons%4$s."
|
749 |
+
msgstr "Optimisez les annonces d'événements de votre site avec %1$sThe Events Calendar%2$s, notre plugin de calendrier gratuit. Vous cherchez des fonctionnalités supplémentaires, notamment les événements récurrents, l'envoi par les utilisateurs, les ventes de billets avancées et autres ? Consultez nos %3$sextensions premium%4$s."
|
750 |
|
751 |
#: src/admin-views/tribe-options-general.php:10
|
752 |
msgid "Thank you for using Event Tickets! All of us at Modern Tribe sincerely appreciate your support and we're excited to see you using our plugins. Check out our handy %1$sNew User Primer%2$s to get started."
|
753 |
+
msgstr "Merci d'utiliser Event Tickets ! Nous apprécions tous sincèrement votre soutien à Modern Tribe et nous sommes ravis de vous voir utiliser nos plugins. Jetez un coup d’œil sur notre %1$sNew User Primer%2$s pratique pour commencer."
|
754 |
|
755 |
#: src/Tribe/Validate.php:214
|
756 |
msgid "%s must be a positive number or percent."
|
757 |
+
msgstr "%s doit être un nombre positif ou un pourcentage."
|
758 |
|
759 |
#: src/Tribe/PUE/Checker.php:940
|
760 |
msgid "Thanks for setting up a valid key. It will expire on %s"
|
761 |
+
msgstr "Merci d'avoir installé une clé valide. Elle expirera le %s"
|
762 |
|
763 |
#: src/Tribe/Admin/Help_Page.php:860
|
764 |
msgid "Visit the Add-on Page"
|
765 |
+
msgstr "Visitez la Page d'extensions"
|
766 |
|
767 |
#: src/Tribe/Admin/Help_Page.php:855
|
768 |
msgid "Plugin Inactive"
|
769 |
+
msgstr "Plugin inactif"
|
770 |
|
771 |
#: src/Tribe/Admin/Help_Page.php:853
|
772 |
msgid "Plugin Active"
|
773 |
+
msgstr "Plugin actif"
|
774 |
|
775 |
#: src/Tribe/Admin/Help_Page.php:828
|
776 |
msgid "Rating:"
|
777 |
+
msgstr "Note :"
|
778 |
|
779 |
#: src/Tribe/Admin/Help_Page.php:825
|
780 |
msgid "Active Users:"
|
781 |
+
msgstr "Utilisateurs actifs :"
|
782 |
|
783 |
#: src/Tribe/Admin/Help_Page.php:802
|
784 |
msgid "Install Plugin"
|
785 |
+
msgstr "Installer le plugin"
|
786 |
|
787 |
#: src/Tribe/Admin/Help_Page.php:802
|
788 |
msgid "Install %s"
|
789 |
+
msgstr "Installer %s"
|
790 |
|
791 |
#: src/Tribe/Admin/Help_Page.php:786
|
792 |
msgid "Upgrade Plugin"
|
793 |
+
msgstr "Mettre à jour le plugin"
|
794 |
|
795 |
#: src/Tribe/Admin/Help_Page.php:778
|
796 |
msgid "Activate Plugin"
|
797 |
+
msgstr "Activer le plugin"
|
798 |
|
799 |
#: src/Tribe/Admin/Help_Page.php:778
|
800 |
msgid "Activate %s"
|
801 |
+
msgstr "Activer %s"
|
802 |
|
803 |
#: src/Tribe/Admin/Help_Page.php:244 src/Tribe/Plugins_API.php:100
|
804 |
msgid "Community Tickets"
|
805 |
+
msgstr "Community Tickets"
|
806 |
|
807 |
#: src/Tribe/Admin/Help_Page.php:235 src/Tribe/Plugins_API.php:66
|
808 |
msgid "Event Tickets Plus"
|
809 |
+
msgstr "Event Tickets Plus"
|
810 |
|
811 |
#: src/Tribe/Admin/Help_Page.php:203 src/Tribe/Plugins_API.php:111
|
812 |
msgid "Eventbrite Tickets"
|
813 |
+
msgstr "Eventbrite Tickets"
|
814 |
|
815 |
#: src/Tribe/Admin/Help_Page.php:170
|
816 |
msgid " and "
|
817 |
+
msgstr " et "
|
818 |
|
819 |
#: src/Tribe/Admin/Help_Page.php:95
|
820 |
msgid "Turbo charge your posts admin for any custom post type with sortable filters and columns, and auto-registration of metaboxes."
|
821 |
+
msgstr "Donnez un coup de fouet à vos publications d'admin pour tout type de message personnalisé avec des filtres et colonnes classables, et l'enregistrement automatique des méta-cases."
|
822 |
|
823 |
#: src/Tribe/Admin/Help_Page.php:91
|
824 |
msgid "Advanced Post Manager"
|
825 |
+
msgstr "Gestionnaire d'articles avancé"
|
826 |
|
827 |
#: src/Tribe/Admin/Help_Page.php:79
|
828 |
msgid "Events Tickets is a carefully crafted, extensible plugin that lets you easily sell tickets for your events."
|
829 |
+
msgstr "Events Tickets est un plugin extensible fabriqué avec soin, vous permettant de vendre facilement des billets pour vos événements."
|
830 |
|
831 |
#: src/Tribe/Admin/Help_Page.php:75 src/Tribe/Plugins_API.php:57
|
832 |
msgid "Event Tickets"
|
833 |
+
msgstr "Event Tickets"
|
834 |
|
835 |
#: src/Tribe/Admin/Help_Page.php:63
|
836 |
msgid "The Events Calendar is a carefully crafted, extensible plugin that lets you easily share your events."
|
837 |
+
msgstr "The Events Calendar est un plugin extensible conçu avec soin, vous permettant de partager facilement vos événements."
|
838 |
|
839 |
#. Author URI of the plugin/theme
|
840 |
msgid "http://m.tri.be/1x"
|
841 |
+
msgstr "http://m.tri.be/1x"
|
842 |
|
843 |
#. Author of the plugin/theme
|
844 |
msgid "Modern Tribe, Inc."
|
845 |
+
msgstr "Modern Tribe, Inc."
|
846 |
|
847 |
#: src/Tribe/Settings.php:371
|
848 |
msgid "Save Changes"
|
849 |
+
msgstr "Sauvegarder les modifications"
|
850 |
|
851 |
#: src/admin-views/tribe-options-licenses.php:38
|
852 |
msgid "%1$s Using our plugins in a multisite network? %2$s Please note that your license key will be applied to the entire network, not just this site."
|
853 |
+
msgstr "%1$s Vous utilisez nos plugins sur un réseau à plusieurs sites ? %2$s Veuillez noter que votre clé de licence sera appliquée à l'ensemble du réseau, et pas uniquement à ce site."
|
854 |
|
855 |
#: src/Tribe/Support.php:199
|
856 |
msgid "Rewrite rules were purged on load of this help page. Chances are there is a rewrite rule flush occurring in a plugin or theme!"
|
857 |
+
msgstr "Les règles de réécriture (Rewrite) ont été purgées lors du chargement de cette page d'aide. Il y a probablement un vidage des règles de Rewrite provoqué par une extension ou un thème."
|
858 |
|
859 |
#: src/Tribe/PUE/Checker.php:909
|
860 |
msgid "unknown date"
|
861 |
+
msgstr "date inconnue"
|
862 |
|
863 |
#: src/Tribe/Admin/Activation_Page.php:92
|
864 |
msgid "Return to WordPress Updates"
|
865 |
+
msgstr "Retourner à la page des mises à jour WordPress"
|
866 |
|
867 |
#: src/Tribe/Admin/Activation_Page.php:92
|
868 |
msgid "Go to WordPress Updates page"
|
869 |
+
msgstr "Aller à la page des mises à jour de WordPress"
|
870 |
|
871 |
#: src/Tribe/Admin/Activation_Page.php:84
|
872 |
msgid "Return to Plugins page"
|
873 |
+
msgstr "Retourner à la page des extensions"
|
874 |
|
875 |
#: src/Tribe/Admin/Activation_Page.php:84
|
876 |
msgid "Go to plugins page"
|
877 |
+
msgstr "Aller à la page des extensions"
|
878 |
|
879 |
#: src/Tribe/Cost_Utils.php:114
|
880 |
msgid "Free"
|
882 |
|
883 |
#: src/admin-views/tribe-options-network.php:27
|
884 |
msgid "Hide the following settings tabs on every site:"
|
885 |
+
msgstr "Masquer les onglets de réglages suivants sur chaque site :"
|
886 |
|
887 |
#: src/admin-views/tribe-options-network.php:19
|
888 |
msgid "This is where all of the global network settings for Modern Tribe's The Events Calendar can be modified."
|
889 |
+
msgstr "C'est ici que tous les réglages généraux de l'extension The Events Calendar de Modern Tribe peuvent être modifiés."
|
890 |
|
891 |
#: src/admin-views/tribe-options-network.php:15
|
892 |
msgid "Network Settings"
|
893 |
+
msgstr "Réglages du réseau"
|
894 |
|
895 |
#: src/admin-views/tribe-options-help.php:74
|
896 |
msgid "News and Tutorials"
|
897 |
+
msgstr "Actu et tutoriels"
|
898 |
|
899 |
#: src/Tribe/Admin/Help_Page.php:847
|
900 |
msgid "Premium Add-Ons"
|
901 |
+
msgstr "Modules Premium"
|
902 |
|
903 |
#: src/Tribe/Admin/Help_Page.php:823
|
904 |
msgid "WordPress "
|
905 |
+
msgstr "WordPress "
|
906 |
|
907 |
#: src/Tribe/Admin/Help_Page.php:822 src/admin-views/app-shop.php:77
|
908 |
msgid "Requires:"
|
909 |
+
msgstr "Requiert :"
|
910 |
|
911 |
#: src/Tribe/Admin/Help_Page.php:819
|
912 |
msgid "Latest Version:"
|
913 |
+
msgstr "Dernière version :"
|
914 |
|
915 |
#: src/admin-views/tribe-options-help.php:80
|
916 |
msgid "More..."
|
917 |
+
msgstr "Plus..."
|
918 |
|
919 |
#: src/Tribe/Admin/Help_Page.php:194 src/Tribe/Plugins_API.php:43
|
920 |
msgid "Events Calendar PRO"
|
921 |
+
msgstr "The Events Calendar PRO"
|
922 |
|
923 |
#: src/Tribe/Admin/Help_Page.php:413 src/Tribe/Admin/Help_Page.php:788
|
924 |
msgid "You are up to date!"
|
925 |
+
msgstr "Vous avez la dernière version !"
|
926 |
|
927 |
#: src/Tribe/Admin/Help_Page.php:413
|
928 |
msgid "You need to upgrade!"
|
929 |
+
msgstr "Vous devez mettre à jour !"
|
930 |
|
931 |
#: src/Tribe/Admin/Help_Page.php:405
|
932 |
msgctxt "not available"
|
933 |
msgid "n/a"
|
934 |
+
msgstr "nd"
|
935 |
|
936 |
#: src/admin-views/tribe-options-general.php:59
|
937 |
msgid "Debug Bar Plugin"
|
938 |
+
msgstr "Plugin Debug Bar"
|
939 |
|
940 |
#: src/admin-views/tribe-options-general.php:59
|
941 |
msgid "Enable this option to log debug information. By default this will log to your server PHP error log. If you'd like to see the log messages in your browser, then we recommend that you install the %s and look for the \"Tribe\" tab in the debug output."
|
942 |
+
msgstr "Activer cette option pour enregistrer les informations de débogage. Par défauts les informations seront enregistrés sur le ficher d'enregistrement de votre serveur PHP (Error Log). Si vous souhaitez voir les messages du journal sur votre navigateur, nous vous recommandons d'installer %s et de rechercher l'onglet \"Tribe\" dans la sortie de débogage."
|
943 |
|
944 |
#: src/admin-views/tribe-options-general.php:53
|
945 |
msgid "Debug mode"
|
947 |
|
948 |
#: src/admin-views/tribe-options-general.php:35
|
949 |
msgid "Show The Events Calendar link"
|
950 |
+
msgstr "Afficher le lien de The Event Calendar"
|
951 |
|
952 |
#: src/admin-views/tribe-options-general.php:30
|
953 |
msgid "See an example of the link"
|
954 |
+
msgstr "Voir un exemple de lien"
|
955 |
|
956 |
#: src/admin-views/tribe-options-general.php:30
|
957 |
msgid "Are you thinking \"Wow, this plugin is amazing! I should say thanks to Modern Tribe for all their hard work.\" The greatest thanks we could ask for is recognition. Add a small text-only link at the bottom of your calendar pointing to The Events Calendar project."
|
958 |
+
msgstr "Pensez-vous que \" Waouh ! Ce plugin est génial ! Je devrais remercier Modern Tribe pour tous leurs efforts\". Le meilleur des remerciements que nous souhaitons est de la reconnaissance. Ajoutez un petit lien en bas de votre calendrier qui redirige sur le site du projet Events Calendar."
|
959 |
|
960 |
#: src/admin-views/tribe-options-general.php:25
|
961 |
msgid "We hope our plugin is helping you out."
|
962 |
+
msgstr "Nous espérons que notre plugin vous est utile."
|
963 |
|
964 |
#: src/admin-views/tribe-options-general.php:20
|
965 |
msgid "Check out the available add-ons"
|
966 |
+
msgstr "Consultez les modules disponibles"
|
967 |
|
968 |
#: src/admin-views/tribe-options-general.php:20
|
969 |
msgid "Looking for additional functionality including recurring events, custom meta, community events, ticket sales and more?"
|
970 |
+
msgstr "Vous cherchez d'autres fonctionnalités comme les événements récurrents, les méta-données personnalisées, les événements communautaires, la vente de billets et plus encore ?"
|
971 |
|
972 |
#: src/admin-views/tribe-options-display.php:37
|
973 |
msgid "Select the date format to use in datepickers"
|
974 |
+
msgstr "Sélectionnez le format de date à utiliser dans le sélecteur de date"
|
975 |
|
976 |
#: src/admin-views/tribe-options-display.php:36
|
977 |
msgid "Datepicker Date Format"
|
979 |
|
980 |
#: src/admin-views/tribe-options-display.php:22
|
981 |
msgid "Date Format Settings"
|
982 |
+
msgstr "Paramètres de format de date"
|
983 |
|
984 |
#: src/admin-views/event-log.php:65
|
985 |
msgid "View"
|
986 |
+
msgstr "Afficher"
|
987 |
|
988 |
#: src/Tribe/Admin/Help_Page.php:211 src/Tribe/Plugins_API.php:90
|
989 |
msgid "Community Events"
|
990 |
+
msgstr "Événements de la communauté"
|
991 |
|
992 |
#: src/Tribe/Languages/Locations.php:374
|
993 |
msgid "Wyoming"
|
999 |
|
1000 |
#: src/Tribe/Languages/Locations.php:372
|
1001 |
msgid "West Virginia"
|
1002 |
+
msgstr "West Virginia"
|
1003 |
|
1004 |
#: src/Tribe/Languages/Locations.php:371
|
1005 |
msgid "Washington"
|
1083 |
|
1084 |
#: src/Tribe/Languages/Locations.php:351
|
1085 |
msgid "Nebraska"
|
1086 |
+
msgstr "Nebraska"
|
1087 |
|
1088 |
#: src/Tribe/Languages/Locations.php:350
|
1089 |
msgid "Montana"
|
1147 |
|
1148 |
#: src/Tribe/Languages/Locations.php:335
|
1149 |
msgid "Hawaii"
|
1150 |
+
msgstr "Hawaii"
|
1151 |
|
1152 |
#: src/Tribe/Languages/Locations.php:333
|
1153 |
msgid "Florida"
|
1207 |
|
1208 |
#: src/Tribe/Languages/Locations.php:293
|
1209 |
msgid "Wallis and Futuna Islands"
|
1210 |
+
msgstr "Iles de Wallis et Futuna"
|
1211 |
|
1212 |
#: src/Tribe/Languages/Locations.php:292
|
1213 |
msgid "Virgin Islands (U.S.)"
|
1214 |
+
msgstr "Virgin Islands (U.S.)"
|
1215 |
|
1216 |
#: src/Tribe/Languages/Locations.php:291
|
1217 |
msgid "Virgin Islands (British)"
|
1218 |
+
msgstr "Virgin Islands (British)"
|
1219 |
|
1220 |
#: src/Tribe/Languages/Locations.php:290
|
1221 |
msgid "Viet Nam"
|
1222 |
+
msgstr "Vietnam"
|
1223 |
|
1224 |
#: src/Tribe/Languages/Locations.php:289
|
1225 |
msgid "Venezuela"
|
1226 |
+
msgstr "Venezuela"
|
1227 |
|
1228 |
#: src/Tribe/Languages/Locations.php:288
|
1229 |
msgid "Vanuatu"
|
1231 |
|
1232 |
#: src/Tribe/Languages/Locations.php:287
|
1233 |
msgid "Uzbekistan"
|
1234 |
+
msgstr "Ouzbékistan"
|
1235 |
|
1236 |
#: src/Tribe/Languages/Locations.php:286
|
1237 |
msgid "Uruguay"
|
1247 |
|
1248 |
#: src/Tribe/Languages/Locations.php:283
|
1249 |
msgid "United Arab Emirates"
|
1250 |
+
msgstr "Émirats arabes unis"
|
1251 |
|
1252 |
#: src/Tribe/Languages/Locations.php:282
|
1253 |
msgid "Ukraine"
|
1263 |
|
1264 |
#: src/Tribe/Languages/Locations.php:279
|
1265 |
msgid "Turks and Caicos Islands"
|
1266 |
+
msgstr "Îles Turques-et-Caïques"
|
1267 |
|
1268 |
#: src/Tribe/Languages/Locations.php:278
|
1269 |
msgid "Turkmenistan"
|
1279 |
|
1280 |
#: src/Tribe/Languages/Locations.php:275
|
1281 |
msgid "Trinidad and Tobago"
|
1282 |
+
msgstr "Trinidad et Tobago"
|
1283 |
|
1284 |
#: src/Tribe/Languages/Locations.php:274
|
1285 |
msgid "Tonga"
|
1287 |
|
1288 |
#: src/Tribe/Languages/Locations.php:273
|
1289 |
msgid "Tokelau"
|
1290 |
+
msgstr "Tokelau"
|
1291 |
|
1292 |
#: src/Tribe/Languages/Locations.php:272
|
1293 |
msgid "Togo"
|
1299 |
|
1300 |
#: src/Tribe/Languages/Locations.php:270
|
1301 |
msgid "Tanzania, United Republic of"
|
1302 |
+
msgstr "Tanzanie, République unie de"
|
1303 |
|
1304 |
#: src/Tribe/Languages/Locations.php:269
|
1305 |
msgid "Tajikistan"
|
1306 |
+
msgstr "Tadjikistan"
|
1307 |
|
1308 |
#: src/Tribe/Languages/Locations.php:268
|
1309 |
msgid "Taiwan"
|
1327 |
|
1328 |
#: src/Tribe/Languages/Locations.php:263
|
1329 |
msgid "Svalbard and Jan Mayen Islands"
|
1330 |
+
msgstr "Svalbard et Jan Mayen"
|
1331 |
|
1332 |
#: src/Tribe/Languages/Locations.php:262
|
1333 |
msgid "Suriname"
|
1339 |
|
1340 |
#: src/Tribe/Languages/Locations.php:241
|
1341 |
msgid "Saint Pierre and Miquelon"
|
1342 |
+
msgstr "Saint-Pierre-et-Miquelon"
|
1343 |
|
1344 |
#: src/Tribe/Languages/Locations.php:260
|
1345 |
msgid "Sri Lanka"
|
1351 |
|
1352 |
#: src/Tribe/Languages/Locations.php:258
|
1353 |
msgid "South Georgia, South Sandwich Islands"
|
1354 |
+
msgstr "South Georgia, South Sandwich Islands"
|
1355 |
|
1356 |
#: src/Tribe/Languages/Locations.php:257
|
1357 |
msgid "South Africa"
|
1358 |
+
msgstr "Afrique du Sud"
|
1359 |
|
1360 |
#: src/Tribe/Languages/Locations.php:256
|
1361 |
msgid "Somalia"
|
1363 |
|
1364 |
#: src/Tribe/Languages/Locations.php:255
|
1365 |
msgid "Solomon Islands"
|
1366 |
+
msgstr "Salomon, Îles"
|
1367 |
|
1368 |
#: src/Tribe/Languages/Locations.php:254
|
1369 |
msgid "Slovenia"
|
1371 |
|
1372 |
#: src/Tribe/Languages/Locations.php:253
|
1373 |
msgid "Slovakia (Slovak Republic)"
|
1374 |
+
msgstr "Slovaquie (République Slovaque)"
|
1375 |
|
1376 |
#: src/Tribe/Languages/Locations.php:251
|
1377 |
msgid "Singapore"
|
1399 |
|
1400 |
#: src/Tribe/Languages/Locations.php:244
|
1401 |
msgid "San Marino"
|
1402 |
+
msgstr "Saint-Marin"
|
1403 |
|
1404 |
#: src/Tribe/Languages/Locations.php:243
|
1405 |
msgid "Samoa"
|
1407 |
|
1408 |
#: src/Tribe/Languages/Locations.php:242
|
1409 |
msgid "Saint Vincent and The Grenadines"
|
1410 |
+
msgstr "Saint-Vincent-et-les-Grenadines"
|
1411 |
|
1412 |
#: src/Tribe/Languages/Locations.php:240
|
1413 |
msgid "Saint Lucia"
|
1414 |
+
msgstr "Sainte Lucie"
|
1415 |
|
1416 |
#: src/Tribe/Languages/Locations.php:239
|
1417 |
msgid "Saint Kitts and Nevis"
|
1418 |
+
msgstr "Saint-Christophe-et-Niévès"
|
1419 |
|
1420 |
#: src/Tribe/Languages/Locations.php:236
|
1421 |
msgid "Rwanda"
|
1423 |
|
1424 |
#: src/Tribe/Languages/Locations.php:235
|
1425 |
msgid "Russian Federation"
|
1426 |
+
msgstr "Russie, Fédération de"
|
1427 |
|
1428 |
#: src/Tribe/Languages/Locations.php:234
|
1429 |
msgid "Romania"
|
1439 |
|
1440 |
#: src/Tribe/Languages/Locations.php:231
|
1441 |
msgid "Puerto Rico"
|
1442 |
+
msgstr "Puerto Rico"
|
1443 |
|
1444 |
#: src/Tribe/Languages/Locations.php:230
|
1445 |
msgid "Portugal"
|
1451 |
|
1452 |
#: src/Tribe/Languages/Locations.php:228
|
1453 |
msgid "Pitcairn"
|
1454 |
+
msgstr "Pitcairn"
|
1455 |
|
1456 |
#: src/Tribe/Languages/Locations.php:227
|
1457 |
msgid "Philippines"
|
1467 |
|
1468 |
#: src/Tribe/Languages/Locations.php:224
|
1469 |
msgid "Papua New Guinea"
|
1470 |
+
msgstr "Papouasie Nouvelle Guinée"
|
1471 |
|
1472 |
#: src/Tribe/Languages/Locations.php:223
|
1473 |
msgid "Panama"
|
1475 |
|
1476 |
#: src/Tribe/Languages/Locations.php:222
|
1477 |
msgid "Palau"
|
1478 |
+
msgstr "Palau"
|
1479 |
|
1480 |
#: src/Tribe/Languages/Locations.php:221
|
1481 |
msgid "Pakistan"
|
1491 |
|
1492 |
#: src/Tribe/Languages/Locations.php:218
|
1493 |
msgid "Northern Mariana Islands"
|
1494 |
+
msgstr "Mariannes du Nord, Îles"
|
1495 |
|
1496 |
#: src/Tribe/Languages/Locations.php:217
|
1497 |
msgid "Norfolk Island"
|
1498 |
+
msgstr "Norfolk Island"
|
1499 |
|
1500 |
#: src/Tribe/Languages/Locations.php:216
|
1501 |
msgid "Niue"
|
1503 |
|
1504 |
#: src/Tribe/Languages/Locations.php:215
|
1505 |
msgid "Nigeria"
|
1506 |
+
msgstr "Nigeria"
|
1507 |
|
1508 |
#: src/Tribe/Languages/Locations.php:214
|
1509 |
msgid "Niger"
|
1515 |
|
1516 |
#: src/Tribe/Languages/Locations.php:212
|
1517 |
msgid "New Zealand"
|
1518 |
+
msgstr "Nouvelle Zélande"
|
1519 |
|
1520 |
#: src/Tribe/Languages/Locations.php:211
|
1521 |
msgid "New Caledonia"
|
1522 |
+
msgstr "Nouvelle Calédonie"
|
1523 |
|
1524 |
#: src/Tribe/Languages/Locations.php:210
|
1525 |
msgid "Netherlands"
|
1527 |
|
1528 |
#: src/Tribe/Languages/Locations.php:209
|
1529 |
msgid "Nepal"
|
1530 |
+
msgstr "Népal"
|
1531 |
|
1532 |
#: src/Tribe/Languages/Locations.php:208
|
1533 |
msgid "Nauru"
|
1547 |
|
1548 |
#: src/Tribe/Languages/Locations.php:204
|
1549 |
msgid "Morocco"
|
1550 |
+
msgstr "Morocco"
|
1551 |
|
1552 |
#: src/Tribe/Languages/Locations.php:203
|
1553 |
msgid "Montserrat"
|
1555 |
|
1556 |
#: src/Tribe/Languages/Locations.php:202
|
1557 |
msgid "Montenegro"
|
1558 |
+
msgstr "Monténégro"
|
1559 |
|
1560 |
#: src/Tribe/Languages/Locations.php:201
|
1561 |
msgid "Mongolia"
|
1567 |
|
1568 |
#: src/Tribe/Languages/Locations.php:199
|
1569 |
msgid "Moldova, Republic of"
|
1570 |
+
msgstr "Moldavie, République de"
|
1571 |
|
1572 |
#: src/Tribe/Languages/Locations.php:198
|
1573 |
msgid "Micronesia, Federated States of"
|
1574 |
+
msgstr "Micronésie, Etats fédérés de"
|
1575 |
|
1576 |
#: src/Tribe/Languages/Locations.php:197
|
1577 |
msgid "Mexico"
|
1583 |
|
1584 |
#: src/Tribe/Languages/Locations.php:195
|
1585 |
msgid "Mauritius"
|
1586 |
+
msgstr "Maurice, Île"
|
1587 |
|
1588 |
#: src/Tribe/Languages/Locations.php:194
|
1589 |
msgid "Mauritania"
|
1595 |
|
1596 |
#: src/Tribe/Languages/Locations.php:192
|
1597 |
msgid "Marshall Islands"
|
1598 |
+
msgstr "Marshall, Îles"
|
1599 |
|
1600 |
#: src/Tribe/Languages/Locations.php:191
|
1601 |
msgid "Malta"
|
1602 |
+
msgstr "Malta"
|
1603 |
|
1604 |
#: src/Tribe/Languages/Locations.php:190
|
1605 |
msgid "Mali"
|
1611 |
|
1612 |
#: src/Tribe/Languages/Locations.php:188
|
1613 |
msgid "Malaysia"
|
1614 |
+
msgstr "Malaysia"
|
1615 |
|
1616 |
#: src/Tribe/Languages/Locations.php:187
|
1617 |
msgid "Malawi"
|
1643 |
|
1644 |
#: src/Tribe/Languages/Locations.php:180
|
1645 |
msgid "Libya"
|
1646 |
+
msgstr "Libye"
|
1647 |
|
1648 |
#: src/Tribe/Languages/Locations.php:179
|
1649 |
msgid "Liberia"
|
1663 |
|
1664 |
#: src/Tribe/Languages/Locations.php:175
|
1665 |
msgid "Lao People's Democratic Republic"
|
1666 |
+
msgstr "Laos, République démocratique populaire"
|
1667 |
|
1668 |
#: src/Tribe/Languages/Locations.php:174
|
1669 |
msgid "Kyrgyzstan"
|
1670 |
+
msgstr "Kirghizstan"
|
1671 |
|
1672 |
#: src/Tribe/Languages/Locations.php:173
|
1673 |
msgid "Kuwait"
|
1675 |
|
1676 |
#: src/Tribe/Languages/Locations.php:172
|
1677 |
msgid "Korea, Republic of"
|
1678 |
+
msgstr "Corée, République de"
|
1679 |
|
1680 |
#: src/Tribe/Languages/Locations.php:171
|
1681 |
msgid "Korea, Democratic People's Republic of"
|
1682 |
+
msgstr "Corée, République populaire démocratique de"
|
1683 |
|
1684 |
#: src/Tribe/Languages/Locations.php:170
|
1685 |
msgid "Kiribati"
|
1723 |
|
1724 |
#: src/Tribe/Languages/Locations.php:160
|
1725 |
msgid "Iran, Islamic Republic of"
|
1726 |
+
msgstr "Iran, République islamique d'"
|
1727 |
|
1728 |
#: src/Tribe/Languages/Locations.php:159
|
1729 |
msgid "Indonesia"
|
1751 |
|
1752 |
#: src/Tribe/Languages/Locations.php:153
|
1753 |
msgid "Holy See (Vatican City State)"
|
1754 |
+
msgstr "Saint Siège (État du Vatican)"
|
1755 |
|
1756 |
#: src/Tribe/Languages/Locations.php:152
|
1757 |
msgid "Heard and McDonald Islands"
|
1758 |
+
msgstr "Îles Heard-et-MacDonald"
|
1759 |
|
1760 |
#: src/Tribe/Languages/Locations.php:151
|
1761 |
msgid "Haiti"
|
1763 |
|
1764 |
#: src/Tribe/Languages/Locations.php:150
|
1765 |
msgid "Guyana"
|
1766 |
+
msgstr "Guyana"
|
1767 |
|
1768 |
#: src/Tribe/Languages/Locations.php:149
|
1769 |
msgid "Guinea-Bissau"
|
1811 |
|
1812 |
#: src/Tribe/Languages/Locations.php:138 src/Tribe/Languages/Locations.php:334
|
1813 |
msgid "Georgia"
|
1814 |
+
msgstr "Géorgie"
|
1815 |
|
1816 |
#: src/Tribe/Languages/Locations.php:137
|
1817 |
msgid "Gambia"
|
1823 |
|
1824 |
#: src/Tribe/Languages/Locations.php:135
|
1825 |
msgid "French Southern Territories"
|
1826 |
+
msgstr "Territoires d'Outre-Mer"
|
1827 |
|
1828 |
#: src/Tribe/Languages/Locations.php:134
|
1829 |
msgid "French Polynesia"
|
1843 |
|
1844 |
#: src/Tribe/Languages/Locations.php:130
|
1845 |
msgid "Fiji"
|
1846 |
+
msgstr "Fidji"
|
1847 |
|
1848 |
#: src/Tribe/Languages/Locations.php:129
|
1849 |
msgid "Faroe Islands"
|
1850 |
+
msgstr "Féroé, Îles"
|
1851 |
|
1852 |
#: src/Tribe/Languages/Locations.php:128
|
1853 |
msgid "Falkland Islands (Malvinas)"
|
1854 |
+
msgstr "Falkland (Iles Malouines)"
|
1855 |
|
1856 |
#: src/Tribe/Languages/Locations.php:127
|
1857 |
msgid "Ethiopia"
|
1871 |
|
1872 |
#: src/Tribe/Languages/Locations.php:123
|
1873 |
msgid "El Salvador"
|
1874 |
+
msgstr "El Salvador"
|
1875 |
|
1876 |
#: src/Tribe/Languages/Locations.php:122
|
1877 |
msgid "Egypt"
|
1883 |
|
1884 |
#: src/Tribe/Languages/Locations.php:120
|
1885 |
msgid "East Timor"
|
1886 |
+
msgstr "Timor oriental"
|
1887 |
|
1888 |
#: src/Tribe/Languages/Locations.php:119
|
1889 |
msgid "Dominican Republic"
|
1890 |
+
msgstr "Répubilque dominicaine"
|
1891 |
|
1892 |
#: src/Tribe/Languages/Locations.php:118
|
1893 |
msgid "Dominica"
|
1915 |
|
1916 |
#: src/Tribe/Languages/Locations.php:111
|
1917 |
msgid "Croatia (Local Name: Hrvatska)"
|
1918 |
+
msgstr "Croatie (Nom local : Hrvatska)"
|
1919 |
|
1920 |
#: src/Tribe/Languages/Locations.php:109
|
1921 |
msgid "Costa Rica"
|
1923 |
|
1924 |
#: src/Tribe/Languages/Locations.php:108
|
1925 |
msgid "Cook Islands"
|
1926 |
+
msgstr "Cook Islands"
|
1927 |
|
1928 |
#: src/Tribe/Languages/Locations.php:107
|
1929 |
msgid "Congo, Democratic Republic of the"
|
1930 |
+
msgstr "Congo, République démocratique du"
|
1931 |
|
1932 |
#: src/Tribe/Languages/Locations.php:106
|
1933 |
msgid "Congo"
|
1943 |
|
1944 |
#: src/Tribe/Languages/Locations.php:102
|
1945 |
msgid "Cocos (Keeling) Islands"
|
1946 |
+
msgstr "Cocos (Keeling) Islands"
|
1947 |
|
1948 |
#: src/Tribe/Languages/Locations.php:101
|
1949 |
msgid "Christmas Island"
|
1950 |
+
msgstr "Île Christmas"
|
1951 |
|
1952 |
#: src/Tribe/Languages/Locations.php:100
|
1953 |
msgid "China"
|
1971 |
|
1972 |
#: src/Tribe/Languages/Locations.php:95
|
1973 |
msgid "Cape Verde"
|
1974 |
+
msgstr "Cap vert"
|
1975 |
|
1976 |
#: src/Tribe/Languages/Locations.php:94
|
1977 |
msgid "Canada"
|
1999 |
|
2000 |
#: src/Tribe/Languages/Locations.php:88
|
2001 |
msgid "Brunei Darussalam"
|
2002 |
+
msgstr "Brunei Darussalam"
|
2003 |
|
2004 |
#: src/Tribe/Languages/Locations.php:87
|
2005 |
msgid "British Indian Ocean Territory"
|
2006 |
+
msgstr "Territoire britannique de l'Océan indien"
|
2007 |
|
2008 |
#: src/Tribe/Languages/Locations.php:86
|
2009 |
msgid "Brazil"
|
2019 |
|
2020 |
#: src/Tribe/Languages/Locations.php:83
|
2021 |
msgid "Bosnia and Herzegovina"
|
2022 |
+
msgstr "Bosnie-Herzégovine"
|
2023 |
|
2024 |
#: src/Tribe/Languages/Locations.php:82
|
2025 |
msgid "Bolivia"
|
2047 |
|
2048 |
#: src/Tribe/Languages/Locations.php:76
|
2049 |
msgid "Belarus"
|
2050 |
+
msgstr "Bélarus"
|
2051 |
|
2052 |
#: src/Tribe/Languages/Locations.php:75
|
2053 |
msgid "Barbados"
|
2059 |
|
2060 |
#: src/Tribe/Languages/Locations.php:73
|
2061 |
msgid "Bahrain"
|
2062 |
+
msgstr "Bahrain"
|
2063 |
|
2064 |
#: src/Tribe/Languages/Locations.php:72
|
2065 |
msgid "Bahamas"
|
2067 |
|
2068 |
#: src/Tribe/Languages/Locations.php:71
|
2069 |
msgid "Azerbaijan"
|
2070 |
+
msgstr "Azerbaïdjan"
|
2071 |
|
2072 |
#: src/Tribe/Languages/Locations.php:70
|
2073 |
msgid "Austria"
|
2075 |
|
2076 |
#: src/Tribe/Languages/Locations.php:69
|
2077 |
msgid "Australia"
|
2078 |
+
msgstr "Australia"
|
2079 |
|
2080 |
#: src/Tribe/Languages/Locations.php:68
|
2081 |
msgid "Aruba"
|
2087 |
|
2088 |
#: src/Tribe/Languages/Locations.php:66
|
2089 |
msgid "Argentina"
|
2090 |
+
msgstr "Argentina"
|
2091 |
|
2092 |
#: src/Tribe/Languages/Locations.php:65
|
2093 |
msgid "Antigua and Barbuda"
|
2094 |
+
msgstr "Antigua-et-Barbuda"
|
2095 |
|
2096 |
#: src/Tribe/Languages/Locations.php:64
|
2097 |
msgid "Antarctica"
|
2107 |
|
2108 |
#: src/Tribe/Languages/Locations.php:61
|
2109 |
msgid "Andorra"
|
2110 |
+
msgstr "Andorra"
|
2111 |
|
2112 |
#: src/Tribe/Languages/Locations.php:60
|
2113 |
msgid "American Samoa"
|
2114 |
+
msgstr "Samoa américaines"
|
2115 |
|
2116 |
#: src/Tribe/Languages/Locations.php:59
|
2117 |
msgid "Algeria"
|
2131 |
|
2132 |
#: src/Tribe/Validate.php:514
|
2133 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2134 |
+
msgstr "La liste de pays doit être formatée avec un pays par ligne et avec le format suivant: <br>FR, France <br> UK, United Kingdom."
|
2135 |
|
2136 |
#: src/Tribe/Validate.php:498
|
2137 |
msgid "%s must be a phone number."
|
2139 |
|
2140 |
#: src/Tribe/Validate.php:484
|
2141 |
msgid "%s must consist of 5 numbers."
|
2142 |
+
msgstr "%s doit comprendre au moins 5 chiffres."
|
2143 |
|
2144 |
#: src/Tribe/Validate.php:470
|
2145 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2146 |
+
msgstr "%s doit comporter des lettres, espaces, apostrophes et tirets."
|
2147 |
|
2148 |
#: src/Tribe/Validate.php:454
|
2149 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2150 |
+
msgstr "%s doit contenir seulement des lettres, nombres, tirets, apostrophes et espaces."
|
2151 |
|
2152 |
#: src/Tribe/Validate.php:438
|
2153 |
msgid "%s must be a number between 0 and 21."
|
2154 |
+
msgstr "%s doit être un nombre entre 0 et 21."
|
2155 |
|
2156 |
#: src/Tribe/Validate.php:384
|
2157 |
msgid "%s must be a number or percentage."
|
2158 |
+
msgstr "%s doit être un nombre ou un pourcentage."
|
2159 |
|
2160 |
#: src/Tribe/Validate.php:368
|
2161 |
msgid "%s cannot be a duplicate"
|
2162 |
+
msgstr "%s ne doit pas être en double"
|
2163 |
|
2164 |
#: src/Tribe/Validate.php:366
|
2165 |
msgid "%s cannot be the same as %s."
|
2166 |
+
msgstr "%s ne peut être identique à %s."
|
2167 |
|
2168 |
#: src/Tribe/Validate.php:359
|
2169 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2170 |
+
msgstr "Échec de validation de la comparaison : aucune valeur de comparaison fournie pour le champ %s"
|
2171 |
|
2172 |
#: src/Tribe/Validate.php:298 src/Tribe/Validate.php:310
|
2173 |
#: src/Tribe/Validate.php:323 src/Tribe/Validate.php:345
|
2174 |
msgid "%s must have a value that's part of its options."
|
2175 |
+
msgstr "%s doit être une valeur qui fait parti de ses options."
|
2176 |
|
2177 |
#: src/Tribe/Validate.php:282
|
2178 |
msgid "%s must be a valid absolute URL."
|
2179 |
+
msgstr "%s doit être une URL absolue valide."
|
2180 |
|
2181 |
#: src/Tribe/Validate.php:267
|
2182 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2183 |
+
msgstr "%s doit être un permalien valide (nombre, lettres, tirets et tirets de soulignement)."
|
2184 |
|
2185 |
#: src/Tribe/Validate.php:200 src/Tribe/Validate.php:228
|
2186 |
msgid "%s must be a positive number."
|
2188 |
|
2189 |
#: src/Tribe/Validate.php:152
|
2190 |
msgid "%s must contain numbers, letters and dots only"
|
2191 |
+
msgstr "%s doit contenir uniquement des chiffres, lettres et points"
|
2192 |
|
2193 |
#: src/Tribe/Validate.php:120 src/Tribe/Validate.php:136
|
2194 |
msgid "%s must contain numbers and letters only"
|
2195 |
+
msgstr "%s doit contenir des chiffres et des lettres seulement"
|
2196 |
|
2197 |
#: src/Tribe/Validate.php:105
|
2198 |
msgctxt "non-existant function name passed for field validation"
|
2199 |
msgid "with function name:"
|
2200 |
+
msgstr "avec le nom de la fonction :"
|
2201 |
|
2202 |
#: src/Tribe/Validate.php:104
|
2203 |
msgid "Non-existant field validation function passed"
|
2204 |
+
msgstr "La fonction de validation du champ transmis n'existe pas"
|
2205 |
|
2206 |
#: src/Tribe/Validate.php:73 src/Tribe/Validate.php:85
|
2207 |
#: src/Tribe/Validate.php:105
|
2208 |
msgid "Field ID:"
|
2209 |
+
msgstr "Identifiant du dhamp :"
|
2210 |
|
2211 |
#: src/Tribe/Validate.php:72 src/Tribe/Validate.php:84
|
2212 |
msgid "Invalid or incomplete field passed"
|
2213 |
+
msgstr "Le champ transmis est incomplet ou incorrect"
|
2214 |
|
2215 |
#: src/Tribe/Support.php:188 src/Tribe/Support.php:189
|
2216 |
msgid "Unknown or not set"
|
2217 |
+
msgstr "Inconnu ou non défini"
|
2218 |
|
2219 |
#: src/admin-views/tribe-options-help.php:41
|
2220 |
msgid "System Information"
|
2221 |
+
msgstr "Informations sur le système"
|
2222 |
|
2223 |
#: src/Tribe/Settings_Tab.php:222
|
2224 |
msgid "There are no fields setup for this tab yet."
|
2225 |
+
msgstr "Il n'y a pas encore de configuration de champs pour cet onglet."
|
2226 |
|
2227 |
#: src/Tribe/Settings.php:621
|
2228 |
msgid "The above setting was not saved. Other settings were successfully saved."
|
2229 |
msgid_plural "The above settings were not saved. Other settings were successfully saved."
|
2230 |
+
msgstr[0] "Le réglage ci-dessus n'a pas été enregistré. Les autres paramètres ont été correctement enregistrés."
|
2231 |
+
msgstr[1] "Les réglages ci-dessus n'ont pas été enregistrés. Les autres paramètres ont été correctement enregistrés."
|
2232 |
|
2233 |
#: src/Tribe/Settings.php:620
|
2234 |
msgid "None of your settings were saved. Please try again."
|
2235 |
+
msgstr "Aucun de vos réglages n'a été sauvegardé. Merci de réessayer."
|
2236 |
|
2237 |
#: src/Tribe/Settings.php:610
|
2238 |
msgid "Your form had the following errors:"
|
2239 |
+
msgstr "Votre formulaire contiens les erreurs suivantes :"
|
2240 |
|
2241 |
#: src/Tribe/Settings.php:431
|
2242 |
msgid "The request wasn't sent from this tab."
|
2243 |
+
msgstr "La requête n'a pas été envoyée depuis cet onglet."
|
2244 |
|
2245 |
#: src/Tribe/Settings.php:425
|
2246 |
msgid "The request was sent insecurely."
|
2247 |
+
msgstr "La requête a été envoyée de manière non sécurisée."
|
2248 |
|
2249 |
#: src/Tribe/Settings.php:419
|
2250 |
msgid "You don't have permission to do that."
|
2251 |
+
msgstr "Vous n'avez pas la permission d'effectuer ceci."
|
2252 |
|
2253 |
#: src/Tribe/Settings.php:363
|
2254 |
msgid "You've requested a non-existent tab."
|
2255 |
+
msgstr "L'onglet demandé n'existe pas."
|
2256 |
|
2257 |
#: src/Tribe/Settings.php:349
|
2258 |
msgid "%s Settings"
|
2259 |
+
msgstr "Préférences %s"
|
2260 |
|
2261 |
#: src/Tribe/Settings.php:253 src/Tribe/Settings.php:273
|
2262 |
msgid "Events Settings"
|
2263 |
+
msgstr "Réglages d'événements"
|
2264 |
|
2265 |
#: src/Tribe/PUE/Checker.php:896
|
2266 |
msgid "Hmmm... something's wrong with this validator. Please contact %ssupport%s."
|
2267 |
+
msgstr "Hum... Quelque chose ne va pas avec ce validateur. Merci de contacter %sle support%s."
|
2268 |
|
2269 |
#: src/Tribe/PUE/Checker.php:935
|
2270 |
msgid "Valid Key! Expires on %s"
|
2271 |
+
msgstr "Clé valide ! Expire le %s"
|
2272 |
|
2273 |
#: src/Tribe/PUE/Checker.php:915
|
2274 |
msgid "Sorry, key validation server is not available."
|
2275 |
+
msgstr "Désolé, le serveur de validation des clés n'est pas disponible."
|
2276 |
|
2277 |
#: src/Tribe/PUE/Checker.php:650
|
2278 |
msgid "License key(s) updated."
|
2284 |
|
2285 |
#: src/Tribe/PUE/Checker.php:509 src/Tribe/PUE/Checker.php:520
|
2286 |
msgid "License Key"
|
2287 |
+
msgstr "Clé de licence"
|
2288 |
|
2289 |
#: src/Tribe/Main.php:248
|
2290 |
msgid "Search:"
|
2291 |
+
msgstr "Rechercher :"
|
2292 |
|
2293 |
#: src/Tribe/Settings.php:254
|
2294 |
msgid "Settings"
|
2295 |
+
msgstr "Préférences"
|
2296 |
|
2297 |
#: src/Tribe/Settings_Manager.php:219
|
2298 |
msgid "Network"
|
2300 |
|
2301 |
#: src/Tribe/Main.php:274
|
2302 |
msgid "Done"
|
2303 |
+
msgstr "Terminé"
|
2304 |
|
2305 |
#: src/Tribe/Main.php:273 src/Tribe/Main.php:275
|
2306 |
msgid "Today"
|
2312 |
|
2313 |
#: src/Tribe/Main.php:254 src/Tribe/Main.php:271
|
2314 |
msgid "Next"
|
2315 |
+
msgstr "Suivant"
|
2316 |
|
2317 |
#: src/Tribe/Settings_Manager.php:279
|
2318 |
msgid "Help"
|
2320 |
|
2321 |
#: src/Tribe/Settings_Manager.php:55
|
2322 |
msgid "Display"
|
2323 |
+
msgstr "Affichage"
|
2324 |
|
2325 |
#: src/Tribe/Settings_Manager.php:253
|
2326 |
#: src/admin-views/tribe-options-licenses.php:66
|
2327 |
msgid "Licenses"
|
2328 |
+
msgstr "Licences"
|
2329 |
|
2330 |
#: src/Tribe/Admin/Help_Page.php:59 src/Tribe/Customizer.php:642
|
2331 |
#: src/Tribe/Plugins_API.php:25
|
2332 |
msgid "The Events Calendar"
|
2333 |
+
msgstr "The Events Calendar"
|
2334 |
|
2335 |
#: src/Tribe/Settings.php:177 src/Tribe/Settings.php:241
|
2336 |
#: src/Tribe/Settings.php:242
|
2339 |
|
2340 |
#: src/Tribe/Settings.php:643
|
2341 |
msgid "Settings saved."
|
2342 |
+
msgstr "Réglages sauvegardés."
|
2343 |
|
2344 |
#: src/Tribe/Settings_Manager.php:54
|
2345 |
msgid "General"
|
2347 |
|
2348 |
#: src/Tribe/Field.php:626
|
2349 |
msgid "No select options specified"
|
2350 |
+
msgstr "Aucune option sélectionnée dans la liste déroulante"
|
2351 |
|
2352 |
#: src/Tribe/Field.php:568
|
2353 |
msgid "No checkbox options specified"
|
2354 |
+
msgstr "Aucune case cochée"
|
2355 |
|
2356 |
#: src/Tribe/Field.php:532
|
2357 |
msgid "No radio options specified"
|
2358 |
+
msgstr "Aucune option sélectionnée"
|
2359 |
|
2360 |
#: src/Tribe/Field.php:231
|
2361 |
msgid "Invalid field type specified"
|
2362 |
+
msgstr "Type de champ spécifié invalide"
|
2363 |
|
2364 |
#: src/Tribe/Credits.php:31
|
2365 |
msgid "This calendar is powered by The Events Calendar."
|
2366 |
+
msgstr "Ce calendrier est généré par The Events Calendar."
|
2367 |
|
2368 |
#: src/Tribe/App_Shop.php:50 src/Tribe/App_Shop.php:51
|
2369 |
#: src/Tribe/App_Shop.php:72
|
2370 |
msgid "Event Add-Ons"
|
2371 |
+
msgstr "Modules d'événement"
|
2372 |
|
2373 |
#: src/Tribe/Languages/Locations.php:55
|
2374 |
msgid "United States"
|
2375 |
+
msgstr "USA"
|
common/lang/tribe-common-fr_FR.mo
CHANGED
Binary file
|
common/lang/tribe-common-fr_FR.po
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date: 2018-
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -11,21 +11,59 @@ msgstr ""
|
|
11 |
"Language: fr\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
17 |
|
18 |
#: src/Tribe/Plugins_API.php:37
|
19 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
20 |
-
msgstr ""
|
21 |
|
22 |
#: src/Tribe/Admin/Notice/Php_Version.php:101
|
23 |
msgid "Starting March 2019, %1$s will no longer work with versions prior to PHP 5.4. Currently your site is using PHP version %2$s. For best results, we recommend using PHP 5.6 or above."
|
24 |
-
msgstr ""
|
25 |
|
26 |
#: src/Tribe/Admin/Notice/Php_Version.php:98
|
27 |
msgid "Starting March 2019, %1$s will no longer support versions prior to PHP 5.6. Your site is currently using PHP version %2$s which will no longer be supported by %1$s. For best results, we recommend using PHP 5.6 or above."
|
28 |
-
msgstr ""
|
29 |
|
30 |
#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425
|
31 |
msgid "Every %d Minutes"
|
@@ -37,7 +75,7 @@ msgstr "Cherchez sur notre bureau d'assistance"
|
|
37 |
|
38 |
#: src/Tribe/Plugins_API.php:71
|
39 |
msgid "Event Tickets Plus allows you to sell tickets to your events using WooCommerce, Easy Digital Downloads, or our built in Tribe Commerce tool. Add tickets to your posts and pages, or add %1$sThe Events Calendar%2$s and sell tickets from your event listings. Create custom registration forms, manage attendees, use custom capacity options, and more. Guest check in is easy with QR codes and our custom scanning app."
|
40 |
-
msgstr ""
|
41 |
|
42 |
#: src/Tribe/Validate.php:184
|
43 |
msgid "%s must not be empty"
|
@@ -139,11 +177,11 @@ msgstr "Une nouvelle version de %1$s est disponible. %2$s"
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr "Passez à présent à la version %s."
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr "Vous pouvez toujours vérifier le statut de vos licences en vous connectant à votre compte %1$s sur le site theeventscalendar.com%2$s."
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] "On dirait que vous utilisez %1$s, mais la clé de licence est invalide. Veuillez télécharger la version la plus récente %2$sdepuis votre compte%3$s."
|
@@ -361,18 +399,18 @@ msgstr "Parcourir toutes les extensions"
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr "Extensions d'événements"
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr "%1$s et %2$s"
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] "Vous avez une clé de licence pour %1$s mais la clé est hors des installations. %2$sVisitez le site Web de Events Calendar%3$s pour gérer vos installations, mettre à jour votre licence ou en acheter une nouvelle."
|
373 |
msgstr[1] "Vous avez des clés de licence pour %1$s mais vos clés sont hors des installations. %2$sVisitez le site Web de Events Calendar%3$s pour gérer vos installations, mettre à jour vos licences ou en acheter de nouvelles."
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] "Une mise à jour est disponible pour %1$s mais votre licence a expirée. %2$sVisitez le site Web de Events Calendar pour renouveler votre licence.%3$s"
|
@@ -443,11 +481,11 @@ msgstr "Oui, partager automatiquement mes informations système avec l'équipe d
|
|
443 |
msgid "English"
|
444 |
msgstr "Anglais"
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr " (s'ouvre dans une nouvelle fenêtre)"
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr "Renouveler maintenant votre licence"
|
453 |
|
@@ -1981,7 +2019,7 @@ msgstr "Botswana"
|
|
1981 |
|
1982 |
#: src/Tribe/Languages/Locations.php:83
|
1983 |
msgid "Bosnia and Herzegovina"
|
1984 |
-
msgstr ""
|
1985 |
|
1986 |
#: src/Tribe/Languages/Locations.php:82
|
1987 |
msgid "Bolivia"
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2018-11-12 16:17:51+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
"Language: fr\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
55 |
|
56 |
#: src/Tribe/Plugins_API.php:37
|
57 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
58 |
+
msgstr "L'agrégateur d'événements ajoute une fonctionnalité d'importation massive à votre calendrier. Avant de l'avoir réalisé, vous serez en train d'importer des événements à partir de Meetup, d'Eventbrite, de Google Calendar, d'iCalendar et d'autres URL avec facilité. Programmez des importations automatiques en coulisses ou effectuez-les manuellement lorsque vous êtes prêt. Allez-y et importez tout votre soûl : l'agrégateur d'événements vous relie à un tableau de commandes central dans l'administration afin de rendre vos importations aussi simples que bonjour."
|
59 |
|
60 |
#: src/Tribe/Admin/Notice/Php_Version.php:101
|
61 |
msgid "Starting March 2019, %1$s will no longer work with versions prior to PHP 5.4. Currently your site is using PHP version %2$s. For best results, we recommend using PHP 5.6 or above."
|
62 |
+
msgstr "À partir de mars 2019, %1$s ne fonctionnera plus avec les versions antérieures à PHP 5.4. Votre site utilise actuellement la version PHP %2$s. Pour de meilleurs résultats, nous conseillons d'utiliser la version PHP 5.6 ou ultérieure."
|
63 |
|
64 |
#: src/Tribe/Admin/Notice/Php_Version.php:98
|
65 |
msgid "Starting March 2019, %1$s will no longer support versions prior to PHP 5.6. Your site is currently using PHP version %2$s which will no longer be supported by %1$s. For best results, we recommend using PHP 5.6 or above."
|
66 |
+
msgstr "À partir de mars 2019, %1$s ne prendra plus en charge les versions antérieures à PHP 5.6. Votre site utilise actuellement la version PHP %2$s qui ne sera plus prise en charge par %1$s. Pour de meilleurs résultats, nous conseillons d'utiliser la version PHP 5.6 ou ultérieure."
|
67 |
|
68 |
#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425
|
69 |
msgid "Every %d Minutes"
|
75 |
|
76 |
#: src/Tribe/Plugins_API.php:71
|
77 |
msgid "Event Tickets Plus allows you to sell tickets to your events using WooCommerce, Easy Digital Downloads, or our built in Tribe Commerce tool. Add tickets to your posts and pages, or add %1$sThe Events Calendar%2$s and sell tickets from your event listings. Create custom registration forms, manage attendees, use custom capacity options, and more. Guest check in is easy with QR codes and our custom scanning app."
|
78 |
+
msgstr "Event Tickets Plus vous permet de vendre des billets pour vos événements en utilisant WooCommerce, Easy Digital Downloads, ou notre outil intégré Tribe Commerce. Ajoutez des billets à vos pages et publications, ou ajoutez %1$sThe Events Calendar%2$s et vendez des billets depuis les annonces de votre événement. Créez des formulaires d'inscription personnalisés, gérez les participants, utilisez les options de capacité personnalisées et autres. L'enregistrement des invités est simple avec les codes QR et notre appli de scan personnalisée."
|
79 |
|
80 |
#: src/Tribe/Validate.php:184
|
81 |
msgid "%s must not be empty"
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr "Passez à présent à la version %s."
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr "Vous pouvez toujours vérifier le statut de vos licences en vous connectant à votre compte %1$s sur le site theeventscalendar.com%2$s."
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] "On dirait que vous utilisez %1$s, mais la clé de licence est invalide. Veuillez télécharger la version la plus récente %2$sdepuis votre compte%3$s."
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr "Extensions d'événements"
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr "%1$s et %2$s"
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] "Vous avez une clé de licence pour %1$s mais la clé est hors des installations. %2$sVisitez le site Web de Events Calendar%3$s pour gérer vos installations, mettre à jour votre licence ou en acheter une nouvelle."
|
411 |
msgstr[1] "Vous avez des clés de licence pour %1$s mais vos clés sont hors des installations. %2$sVisitez le site Web de Events Calendar%3$s pour gérer vos installations, mettre à jour vos licences ou en acheter de nouvelles."
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] "Une mise à jour est disponible pour %1$s mais votre licence a expirée. %2$sVisitez le site Web de Events Calendar pour renouveler votre licence.%3$s"
|
481 |
msgid "English"
|
482 |
msgstr "Anglais"
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr " (s'ouvre dans une nouvelle fenêtre)"
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr "Renouveler maintenant votre licence"
|
491 |
|
2019 |
|
2020 |
#: src/Tribe/Languages/Locations.php:83
|
2021 |
msgid "Bosnia and Herzegovina"
|
2022 |
+
msgstr "Bosnie-Herzégovine"
|
2023 |
|
2024 |
#: src/Tribe/Languages/Locations.php:82
|
2025 |
msgid "Bolivia"
|
common/lang/tribe-common-hu_HU.mo
CHANGED
Binary file
|
common/lang/tribe-common-hu_HU.po
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date: 2018-
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -11,21 +11,59 @@ msgstr ""
|
|
11 |
"Language: hu\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
-
msgstr ""
|
17 |
|
18 |
#: src/Tribe/Plugins_API.php:37
|
19 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
20 |
-
msgstr ""
|
21 |
|
22 |
#: src/Tribe/Admin/Notice/Php_Version.php:101
|
23 |
msgid "Starting March 2019, %1$s will no longer work with versions prior to PHP 5.4. Currently your site is using PHP version %2$s. For best results, we recommend using PHP 5.6 or above."
|
24 |
-
msgstr ""
|
25 |
|
26 |
#: src/Tribe/Admin/Notice/Php_Version.php:98
|
27 |
msgid "Starting March 2019, %1$s will no longer support versions prior to PHP 5.6. Your site is currently using PHP version %2$s which will no longer be supported by %1$s. For best results, we recommend using PHP 5.6 or above."
|
28 |
-
msgstr ""
|
29 |
|
30 |
#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425
|
31 |
msgid "Every %d Minutes"
|
@@ -37,7 +75,7 @@ msgstr "Keressél a helpdesken"
|
|
37 |
|
38 |
#: src/Tribe/Plugins_API.php:71
|
39 |
msgid "Event Tickets Plus allows you to sell tickets to your events using WooCommerce, Easy Digital Downloads, or our built in Tribe Commerce tool. Add tickets to your posts and pages, or add %1$sThe Events Calendar%2$s and sell tickets from your event listings. Create custom registration forms, manage attendees, use custom capacity options, and more. Guest check in is easy with QR codes and our custom scanning app."
|
40 |
-
msgstr ""
|
41 |
|
42 |
#: src/Tribe/Validate.php:184
|
43 |
msgid "%s must not be empty"
|
@@ -139,11 +177,11 @@ msgstr "A %1$s bővítményhez elérhető egy új verzió. %2$s"
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr "Frissítés a %s verzióra."
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr "Bármikor leellenőrizheted a licenszeid státuszát, ha %1$sbejelentkezel a fiókodba a theeventscalendar.com oldalon%2$s."
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] "Úgy tűnik, hogy a(z) %1$s bővítményt használod, de a licensz kulcs érvénytelen. Töltsd le az legfrissebb verziót %2$sa fiókodból%3$s."
|
@@ -361,18 +399,18 @@ msgstr "Összes kiegészítő megtekintése"
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr "Esemény kiegészítők"
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr "%1$s és %2$s"
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] "A(z) %1$s bővítményhez rendelkezel licensz kulccsal, de már nem használható több helyen. %2$sLátogass el a The Events Calendar weboldalára%3$s a licenszeid kezeléséhez, frissítéséhez, vagy egy új licensz vásárlásához."
|
373 |
msgstr[1] "A(z) %1$s bővítményekhez rendelkezel licensz kulccsal, de azok már nem használhatóak több helyen. %2$sLátogass el a The Events Calendar weboldalára%3$s a licenszeid kezeléséhez, frissítéséhez, vagy egy új licensz vásárlásához."
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] "A(z) %1$s bővítményhez elérhető egy frissítés, de a licenszed lejárt. %2$sLátogass el a The Events Calendar weboldalára a licenszed megújításához.%3$s"
|
@@ -443,11 +481,11 @@ msgstr "Igen, automatikusan megosztom a rendszerinformációmat a Modern Tribe t
|
|
443 |
msgid "English"
|
444 |
msgstr "Angol"
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr "(új ablakban nyílik meg)"
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr "Licensz megújítása most"
|
453 |
|
@@ -1981,7 +2019,7 @@ msgstr "Botswana"
|
|
1981 |
|
1982 |
#: src/Tribe/Languages/Locations.php:83
|
1983 |
msgid "Bosnia and Herzegovina"
|
1984 |
-
msgstr ""
|
1985 |
|
1986 |
#: src/Tribe/Languages/Locations.php:82
|
1987 |
msgid "Bolivia"
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2018-11-12 19:24:52+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
"Language: hu\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
+
msgstr "Kiürít"
|
55 |
|
56 |
#: src/Tribe/Plugins_API.php:37
|
57 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
58 |
+
msgstr "Az Event Aggregator erőteljes importálási funkciókat ad a naptáradhoz. Segítségével könnyen importálhatsz eseményeket a Meetup-ról, a Facebook-ról, Google Naptárból, iCalendar-okból és már URL-ekből. Az importálás lehet időzített, ami a háttérben fut, vagy futtathatod manuálisan, amikor szeretnéd. Gyerünk, importáld a kedvenc eseményeidet - az Event Aggregator irányítópultja segítségével könnyen kezelheted az importjaidat."
|
59 |
|
60 |
#: src/Tribe/Admin/Notice/Php_Version.php:101
|
61 |
msgid "Starting March 2019, %1$s will no longer work with versions prior to PHP 5.4. Currently your site is using PHP version %2$s. For best results, we recommend using PHP 5.6 or above."
|
62 |
+
msgstr "2019. márciustól a(z) %1$s nem fog működni a PHP 5.4-nél régebbi verzióin. A weboldalon jelenleg PHP %2$s verzió fut. A legjobb eredmény érdekében javasolt a PHP 5.6 vagy újabb használata."
|
63 |
|
64 |
#: src/Tribe/Admin/Notice/Php_Version.php:98
|
65 |
msgid "Starting March 2019, %1$s will no longer support versions prior to PHP 5.6. Your site is currently using PHP version %2$s which will no longer be supported by %1$s. For best results, we recommend using PHP 5.6 or above."
|
66 |
+
msgstr "2019 márciustól a(z) %1$s nem fog működni a PHP 5.6-nél régebbi verzióin. A weboldalon jelenleg PHP %2$s verzió fut, amin nem fog futni a(z) %1$s. A legjobb eredmény érdekében javasoljuk a PHP 5.6 vagy újabb használatát."
|
67 |
|
68 |
#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425
|
69 |
msgid "Every %d Minutes"
|
75 |
|
76 |
#: src/Tribe/Plugins_API.php:71
|
77 |
msgid "Event Tickets Plus allows you to sell tickets to your events using WooCommerce, Easy Digital Downloads, or our built in Tribe Commerce tool. Add tickets to your posts and pages, or add %1$sThe Events Calendar%2$s and sell tickets from your event listings. Create custom registration forms, manage attendees, use custom capacity options, and more. Guest check in is easy with QR codes and our custom scanning app."
|
78 |
+
msgstr "Az Event Tickets Plus segítségével jegyeket árulhatsz az eseményeidre a WooCommerce, az Easy Digital Downloads vagy a beépített Tribe Commerce eszköz segítségével. Készíthetsz jegyeket blogbejegyzésekhez, oldalakhoz, vagy telepítsd a %1$s The Events Calendar%2$st és árulj jegyeket az eseményeidre. Hozz létre egyedi regisztrációs űrlapokat, kezeld a résztvevőket, használj egyedi készlet kezelést, és még sok minden más. A jegyekhez QR-kód is készül a résztvevők beléptetéshez, ami az egyedi jegyszkennelő applikációnkkal még könnyebb."
|
79 |
|
80 |
#: src/Tribe/Validate.php:184
|
81 |
msgid "%s must not be empty"
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr "Frissítés a %s verzióra."
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr "Bármikor leellenőrizheted a licenszeid státuszát, ha %1$sbejelentkezel a fiókodba a theeventscalendar.com oldalon%2$s."
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] "Úgy tűnik, hogy a(z) %1$s bővítményt használod, de a licensz kulcs érvénytelen. Töltsd le az legfrissebb verziót %2$sa fiókodból%3$s."
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr "Esemény kiegészítők"
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr "%1$s és %2$s"
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] "A(z) %1$s bővítményhez rendelkezel licensz kulccsal, de már nem használható több helyen. %2$sLátogass el a The Events Calendar weboldalára%3$s a licenszeid kezeléséhez, frissítéséhez, vagy egy új licensz vásárlásához."
|
411 |
msgstr[1] "A(z) %1$s bővítményekhez rendelkezel licensz kulccsal, de azok már nem használhatóak több helyen. %2$sLátogass el a The Events Calendar weboldalára%3$s a licenszeid kezeléséhez, frissítéséhez, vagy egy új licensz vásárlásához."
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] "A(z) %1$s bővítményhez elérhető egy frissítés, de a licenszed lejárt. %2$sLátogass el a The Events Calendar weboldalára a licenszed megújításához.%3$s"
|
481 |
msgid "English"
|
482 |
msgstr "Angol"
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr "(új ablakban nyílik meg)"
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr "Licensz megújítása most"
|
491 |
|
2019 |
|
2020 |
#: src/Tribe/Languages/Locations.php:83
|
2021 |
msgid "Bosnia and Herzegovina"
|
2022 |
+
msgstr "Bosznia-Hercegovina"
|
2023 |
|
2024 |
#: src/Tribe/Languages/Locations.php:82
|
2025 |
msgid "Bolivia"
|
common/lang/tribe-common-id_ID.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: id\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -361,18 +399,18 @@ msgstr ""
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] ""
|
373 |
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] ""
|
@@ -443,11 +481,11 @@ msgstr ""
|
|
443 |
msgid "English"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr ""
|
453 |
|
11 |
"Language: id\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] ""
|
481 |
msgid "English"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr ""
|
491 |
|
common/lang/tribe-common-is_IS.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: is\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -361,18 +399,18 @@ msgstr ""
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] ""
|
373 |
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] ""
|
@@ -443,11 +481,11 @@ msgstr ""
|
|
443 |
msgid "English"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr ""
|
453 |
|
11 |
"Language: is\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] ""
|
481 |
msgid "English"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr ""
|
491 |
|
common/lang/tribe-common-it_IT.mo
CHANGED
Binary file
|
common/lang/tribe-common-it_IT.po
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date: 2018-
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -11,21 +11,59 @@ msgstr ""
|
|
11 |
"Language: it\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
17 |
|
18 |
#: src/Tribe/Plugins_API.php:37
|
19 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
20 |
-
msgstr ""
|
21 |
|
22 |
#: src/Tribe/Admin/Notice/Php_Version.php:101
|
23 |
msgid "Starting March 2019, %1$s will no longer work with versions prior to PHP 5.4. Currently your site is using PHP version %2$s. For best results, we recommend using PHP 5.6 or above."
|
24 |
-
msgstr ""
|
25 |
|
26 |
#: src/Tribe/Admin/Notice/Php_Version.php:98
|
27 |
msgid "Starting March 2019, %1$s will no longer support versions prior to PHP 5.6. Your site is currently using PHP version %2$s which will no longer be supported by %1$s. For best results, we recommend using PHP 5.6 or above."
|
28 |
-
msgstr ""
|
29 |
|
30 |
#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425
|
31 |
msgid "Every %d Minutes"
|
@@ -37,7 +75,7 @@ msgstr "Cerca il nostro help desk del supporto"
|
|
37 |
|
38 |
#: src/Tribe/Plugins_API.php:71
|
39 |
msgid "Event Tickets Plus allows you to sell tickets to your events using WooCommerce, Easy Digital Downloads, or our built in Tribe Commerce tool. Add tickets to your posts and pages, or add %1$sThe Events Calendar%2$s and sell tickets from your event listings. Create custom registration forms, manage attendees, use custom capacity options, and more. Guest check in is easy with QR codes and our custom scanning app."
|
40 |
-
msgstr ""
|
41 |
|
42 |
#: src/Tribe/Validate.php:184
|
43 |
msgid "%s must not be empty"
|
@@ -139,11 +177,11 @@ msgstr "È disponibile una nuova versione di %1$s. %2$s"
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr "Passa ora alla versione %s."
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr "Puoi sempre controllare lo stato delle tue licenze accedendo al %1$stuo account su theeventscalendar.com%2$s."
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] "Sembra che tu stia utilizzando %1$s, ma la chiave di licenza non è valida. Scarica l'ultima versione %2$sdal tuo account%3$s."
|
@@ -361,18 +399,18 @@ msgstr "Sfoglia tutti i componenti aggiuntivi"
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr "Componenti aggiuntivi degli eventi"
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr "%1$s e %2$s"
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] "Hai una chiave di licenza per %1$s, ma la chiave non ha più attivazioni disponibili. %2$sVisita il sito web di Events Calendar%3$s per gestire le tue installazioni, aggiornare la licenza o acquistarne una nuova."
|
373 |
msgstr[1] "Hai chiavi di licenza per %1$s, ma le chiavi non hanno più attivazioni disponibili. %2$sVisita il sito web di The Events Calendar%3$s per gestire le tue installazioni, aggiornare le licenze o acquistarne di nuove."
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] "È disponibile un aggiornamento per %1$s, ma la tua licenza è scaduta. %2$sVisita il sito web di The Events Calendar per rinnovare la licenza.%3$s"
|
@@ -443,11 +481,11 @@ msgstr "Sì, condividi automaticamente le informazioni del mio sistema con il te
|
|
443 |
msgid "English"
|
444 |
msgstr "Inglese"
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr " (si apre in una nuova finestra)"
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr "Rinnova subito la tua licenza"
|
453 |
|
@@ -526,7 +564,7 @@ msgstr "Event Tickets Plus e Community Events"
|
|
526 |
|
527 |
#: src/Tribe/Plugins_API.php:104
|
528 |
msgid "Enable Community Events organizers to offer tickets to their events. You can set flexible payment and fee options. They can even check-in attendees to their events! All of this managed from the front-end of your site without ever needing to grant access to your admin"
|
529 |
-
msgstr "Permetti agli organizzatori di Community Events di offrire biglietti ai loro eventi. Puoi impostare opzioni di commissioni e pagamento flessibili. Puoi addirittura effettuare il check-in dei partecipanti ai loro eventi! Tutto questo gestito dal front-end del tuo sito senza dover nemmeno dare l'accesso all'amministratore"
|
530 |
|
531 |
#: src/Tribe/Plugins_API.php:48
|
532 |
msgid "The Events Calendar PRO is a paid Add-On to our open source WordPress plugin %1$sThe Events Calendar%2$s. PRO offers a whole host of calendar features including recurring events, custom event attributes, saved venues and organizers, venue pages, advanced event admin and lots more."
|
@@ -1981,7 +2019,7 @@ msgstr "Botswana"
|
|
1981 |
|
1982 |
#: src/Tribe/Languages/Locations.php:83
|
1983 |
msgid "Bosnia and Herzegovina"
|
1984 |
-
msgstr ""
|
1985 |
|
1986 |
#: src/Tribe/Languages/Locations.php:82
|
1987 |
msgid "Bolivia"
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2018-11-12 16:18:42+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
"Language: it\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
55 |
|
56 |
#: src/Tribe/Plugins_API.php:37
|
57 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
58 |
+
msgstr "Event Aggregator aggiunge enormi funzionalità di importazione al tuo calendario. Prima di rendertene conto importerai facilmente eventi da Meetup, Eventbrite, Google Calendar, iCalendar e altri URL. Pianifica le importazioni per eseguirle automaticamente dietro le quinte o manualmente quando sei pronto. Vai avanti e importa i contenuti che ti stanno a cuore. Event Aggregator ti collega a un pannello centrale nell'area di amministrazione per semplificare al massimo la gestione delle importazioni."
|
59 |
|
60 |
#: src/Tribe/Admin/Notice/Php_Version.php:101
|
61 |
msgid "Starting March 2019, %1$s will no longer work with versions prior to PHP 5.4. Currently your site is using PHP version %2$s. For best results, we recommend using PHP 5.6 or above."
|
62 |
+
msgstr "A partire da marzo 2019, %1$s non funzionerà più con le versioni più obsolete di PHP 5.4. Attualmente il tuo sito sta utilizzando la versione PHP %2$s. Per i migliori risultati consigliamo di utilizzare PHP 5.6 o una versione successiva."
|
63 |
|
64 |
#: src/Tribe/Admin/Notice/Php_Version.php:98
|
65 |
msgid "Starting March 2019, %1$s will no longer support versions prior to PHP 5.6. Your site is currently using PHP version %2$s which will no longer be supported by %1$s. For best results, we recommend using PHP 5.6 or above."
|
66 |
+
msgstr "A partire da marzo 2019 %1$s non supporterà più le versioni più obsolete di PHP 5.6. Attualmente il tuo sito sta utilizzando la versione PHP %2$s, che non sarà più supportata da %1$s. Per i migliori risultati consigliamo di utilizzare PHP 5.6 o una versione successiva."
|
67 |
|
68 |
#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425
|
69 |
msgid "Every %d Minutes"
|
75 |
|
76 |
#: src/Tribe/Plugins_API.php:71
|
77 |
msgid "Event Tickets Plus allows you to sell tickets to your events using WooCommerce, Easy Digital Downloads, or our built in Tribe Commerce tool. Add tickets to your posts and pages, or add %1$sThe Events Calendar%2$s and sell tickets from your event listings. Create custom registration forms, manage attendees, use custom capacity options, and more. Guest check in is easy with QR codes and our custom scanning app."
|
78 |
+
msgstr "Event Tickets Plus ti permette di vendere i biglietti dei tuoi eventi utilizzando WooCommerce, Easy Digital Download o il nostro strumento integrato Tribe Commerce. Aggiungi biglietti ai tuoi post e pagine oppure aggiungi %1$sThe Events Calendar%2$s e vendi i biglietti dai tuoi elenchi di eventi. Crea moduli di registrazione personalizzati, gestisci i partecipanti, utilizza le opzioni di capacità e molto altro ancora. Il check-in degli ospiti è semplice con i codici QR e la nostra app di scansione personalizzata."
|
79 |
|
80 |
#: src/Tribe/Validate.php:184
|
81 |
msgid "%s must not be empty"
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr "Passa ora alla versione %s."
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr "Puoi sempre controllare lo stato delle tue licenze accedendo al %1$stuo account su theeventscalendar.com%2$s."
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] "Sembra che tu stia utilizzando %1$s, ma la chiave di licenza non è valida. Scarica l'ultima versione %2$sdal tuo account%3$s."
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr "Componenti aggiuntivi degli eventi"
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr "%1$s e %2$s"
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] "Hai una chiave di licenza per %1$s, ma la chiave non ha più attivazioni disponibili. %2$sVisita il sito web di Events Calendar%3$s per gestire le tue installazioni, aggiornare la licenza o acquistarne una nuova."
|
411 |
msgstr[1] "Hai chiavi di licenza per %1$s, ma le chiavi non hanno più attivazioni disponibili. %2$sVisita il sito web di The Events Calendar%3$s per gestire le tue installazioni, aggiornare le licenze o acquistarne di nuove."
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] "È disponibile un aggiornamento per %1$s, ma la tua licenza è scaduta. %2$sVisita il sito web di The Events Calendar per rinnovare la licenza.%3$s"
|
481 |
msgid "English"
|
482 |
msgstr "Inglese"
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr " (si apre in una nuova finestra)"
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr "Rinnova subito la tua licenza"
|
491 |
|
564 |
|
565 |
#: src/Tribe/Plugins_API.php:104
|
566 |
msgid "Enable Community Events organizers to offer tickets to their events. You can set flexible payment and fee options. They can even check-in attendees to their events! All of this managed from the front-end of your site without ever needing to grant access to your admin"
|
567 |
+
msgstr "Permetti agli organizzatori di Community Events di offrire biglietti ai loro eventi. Puoi impostare opzioni di commissioni e pagamento flessibili. Puoi addirittura effettuare il check-in dei partecipanti ai loro eventi! Tutto questo gestito dal front-end del tuo sito senza dover nemmeno dare l'accesso all'amministratore."
|
568 |
|
569 |
#: src/Tribe/Plugins_API.php:48
|
570 |
msgid "The Events Calendar PRO is a paid Add-On to our open source WordPress plugin %1$sThe Events Calendar%2$s. PRO offers a whole host of calendar features including recurring events, custom event attributes, saved venues and organizers, venue pages, advanced event admin and lots more."
|
2019 |
|
2020 |
#: src/Tribe/Languages/Locations.php:83
|
2021 |
msgid "Bosnia and Herzegovina"
|
2022 |
+
msgstr "Bosnia ed Erzegovina"
|
2023 |
|
2024 |
#: src/Tribe/Languages/Locations.php:82
|
2025 |
msgid "Bolivia"
|
common/lang/tribe-common-ja.mo
CHANGED
Binary file
|
common/lang/tribe-common-ja.po
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date: 2018-
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -11,21 +11,59 @@ msgstr ""
|
|
11 |
"Language: ja_JP\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
17 |
|
18 |
#: src/Tribe/Plugins_API.php:37
|
19 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
20 |
-
msgstr ""
|
21 |
|
22 |
#: src/Tribe/Admin/Notice/Php_Version.php:101
|
23 |
msgid "Starting March 2019, %1$s will no longer work with versions prior to PHP 5.4. Currently your site is using PHP version %2$s. For best results, we recommend using PHP 5.6 or above."
|
24 |
-
msgstr ""
|
25 |
|
26 |
#: src/Tribe/Admin/Notice/Php_Version.php:98
|
27 |
msgid "Starting March 2019, %1$s will no longer support versions prior to PHP 5.6. Your site is currently using PHP version %2$s which will no longer be supported by %1$s. For best results, we recommend using PHP 5.6 or above."
|
28 |
-
msgstr ""
|
29 |
|
30 |
#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425
|
31 |
msgid "Every %d Minutes"
|
@@ -37,7 +75,7 @@ msgstr "当社のサポート ヘルプ デスクを検索"
|
|
37 |
|
38 |
#: src/Tribe/Plugins_API.php:71
|
39 |
msgid "Event Tickets Plus allows you to sell tickets to your events using WooCommerce, Easy Digital Downloads, or our built in Tribe Commerce tool. Add tickets to your posts and pages, or add %1$sThe Events Calendar%2$s and sell tickets from your event listings. Create custom registration forms, manage attendees, use custom capacity options, and more. Guest check in is easy with QR codes and our custom scanning app."
|
40 |
-
msgstr ""
|
41 |
|
42 |
#: src/Tribe/Validate.php:184
|
43 |
msgid "%s must not be empty"
|
@@ -139,11 +177,11 @@ msgstr "新しいバージョンの %1$s をご利用いただくことができ
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr "新しいバージョン %s に今すぐアップデートしてください。"
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr "%1$stheeventscalendar.com のご自分のアカウント%2$sにログインすると、ライセンスのステータスをいつでもご確認いただくことができます。"
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] "%1$s をご使用いただいているようですが、ライセンス キーが無効です。%2$sご使用のアカウント%3$sから最新バージョンをダウンロードしてください。"
|
@@ -360,17 +398,17 @@ msgstr "すべてのアドオンを参照する"
|
|
360 |
msgid "Events Add-Ons"
|
361 |
msgstr "Events アドオン"
|
362 |
|
363 |
-
#: src/Tribe/PUE/Notices.php:
|
364 |
msgctxt "formatted plugin list"
|
365 |
msgid "%1$s and %2$s"
|
366 |
msgstr "%1$s および %2$s"
|
367 |
|
368 |
-
#: src/Tribe/PUE/Notices.php:
|
369 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
370 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
371 |
msgstr[0] "%1$s 用のライセンス キーをお持ちですが、キーがインストールされていません。%2$sEvents Calendar ウェブサイトにアクセス%3$sし、インストール状況の管理、ライセンスのアップグレード、または新規購入を行ってください。"
|
372 |
|
373 |
-
#: src/Tribe/PUE/Notices.php:
|
374 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
375 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
376 |
msgstr[0] "%1$s のアップデートをご利用いただけますが、ライセンスの期限が切れています。%2$sEvents Calendar ウェブサイトにアクセスし、ライセンスを更新してください。%3$s"
|
@@ -440,11 +478,11 @@ msgstr "はい、私のシステム情報を Modern Tribe サポート チーム
|
|
440 |
msgid "English"
|
441 |
msgstr "英語"
|
442 |
|
443 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
444 |
msgid " (opens in a new window)"
|
445 |
msgstr " (新しいウィンドウで開く)"
|
446 |
|
447 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
448 |
msgid "Renew Your License Now"
|
449 |
msgstr "今すぐライセンスを更新する"
|
450 |
|
@@ -1978,7 +2016,7 @@ msgstr "ボツワナ"
|
|
1978 |
|
1979 |
#: src/Tribe/Languages/Locations.php:83
|
1980 |
msgid "Bosnia and Herzegovina"
|
1981 |
-
msgstr ""
|
1982 |
|
1983 |
#: src/Tribe/Languages/Locations.php:82
|
1984 |
msgid "Bolivia"
|
@@ -2118,7 +2156,7 @@ msgstr "%s は、数字またはパーセンテージである必要がありま
|
|
2118 |
|
2119 |
#: src/Tribe/Validate.php:368
|
2120 |
msgid "%s cannot be a duplicate"
|
2121 |
-
msgstr "%s
|
2122 |
|
2123 |
#: src/Tribe/Validate.php:366
|
2124 |
msgid "%s cannot be the same as %s."
|
@@ -2126,7 +2164,7 @@ msgstr "%s は、%s と同じにできません。"
|
|
2126 |
|
2127 |
#: src/Tribe/Validate.php:359
|
2128 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2129 |
-
msgstr "フィールド %s
|
2130 |
|
2131 |
#: src/Tribe/Validate.php:298 src/Tribe/Validate.php:310
|
2132 |
#: src/Tribe/Validate.php:323 src/Tribe/Validate.php:345
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2018-11-12 16:19:25+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
"Language: ja_JP\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
55 |
|
56 |
#: src/Tribe/Plugins_API.php:37
|
57 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
58 |
+
msgstr "Event Aggregator は、ご使用のカレンダーに大幅なインポート機能を追加します。自分で気づくよりも前に、Meetup、Eventbrite、Google カレンダー、iCalendar、およびその他の URL から簡単にイベントがインポートされます。舞台裏でインポートを自動実行するようにスケジュールしたり、準備ができたときに手動で実行できます。お好みに合わせて、インポートを開始しましょう。Event Aggregator は、管理部門のセントラル ダッシュボードにぴったりと組み合わされ、インポート作業をとても簡単に管理できるようになります。"
|
59 |
|
60 |
#: src/Tribe/Admin/Notice/Php_Version.php:101
|
61 |
msgid "Starting March 2019, %1$s will no longer work with versions prior to PHP 5.4. Currently your site is using PHP version %2$s. For best results, we recommend using PHP 5.6 or above."
|
62 |
+
msgstr "2019 年 3 月以降、%1$s は、PHP 5.4 よりも前のバージョンをサポートいたしません。現在、ご利用いただいているサイトは、PHP バージョン %2$s です。最適な結果を得るには、PHP 5.6 以上をお薦めしています。"
|
63 |
|
64 |
#: src/Tribe/Admin/Notice/Php_Version.php:98
|
65 |
msgid "Starting March 2019, %1$s will no longer support versions prior to PHP 5.6. Your site is currently using PHP version %2$s which will no longer be supported by %1$s. For best results, we recommend using PHP 5.6 or above."
|
66 |
+
msgstr "2019 年 3 月以降、%1$s は、PHP 5.6 よりも前のバージョンをサポートいたしません。現在、ご利用いただいているサイトは、PHP バージョン %2$s であり、%1$s によるサポートがなくなります。最適な結果を得るには、PHP 5.6 以上をお薦めしています。"
|
67 |
|
68 |
#: vendor/a5hleyrich/wp-background-processing/classes/wp-background-process.php:425
|
69 |
msgid "Every %d Minutes"
|
75 |
|
76 |
#: src/Tribe/Plugins_API.php:71
|
77 |
msgid "Event Tickets Plus allows you to sell tickets to your events using WooCommerce, Easy Digital Downloads, or our built in Tribe Commerce tool. Add tickets to your posts and pages, or add %1$sThe Events Calendar%2$s and sell tickets from your event listings. Create custom registration forms, manage attendees, use custom capacity options, and more. Guest check in is easy with QR codes and our custom scanning app."
|
78 |
+
msgstr "Event Tickets Plus では、WooCommerce、Easy Digital Downloads、または当社のビルトイン Tribe Commerce ツールを使用して、イベントのチケットを販売できるようになります。投稿やページにチケットを追加したり、%1$sEvents Calendar%2$s を追加して、イベント リストからチケットを販売します。カスタム登録フォームの作成、出席者の管理、カスタム定員オプションなどなど、さまざまな機能が用意されています。ゲストは、QR コードと当社スキャニング アプリを使用して、簡単にチェックインできます。"
|
79 |
|
80 |
#: src/Tribe/Validate.php:184
|
81 |
msgid "%s must not be empty"
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr "新しいバージョン %s に今すぐアップデートしてください。"
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr "%1$stheeventscalendar.com のご自分のアカウント%2$sにログインすると、ライセンスのステータスをいつでもご確認いただくことができます。"
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] "%1$s をご使用いただいているようですが、ライセンス キーが無効です。%2$sご使用のアカウント%3$sから最新バージョンをダウンロードしてください。"
|
398 |
msgid "Events Add-Ons"
|
399 |
msgstr "Events アドオン"
|
400 |
|
401 |
+
#: src/Tribe/PUE/Notices.php:440
|
402 |
msgctxt "formatted plugin list"
|
403 |
msgid "%1$s and %2$s"
|
404 |
msgstr "%1$s および %2$s"
|
405 |
|
406 |
+
#: src/Tribe/PUE/Notices.php:359
|
407 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
408 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
409 |
msgstr[0] "%1$s 用のライセンス キーをお持ちですが、キーがインストールされていません。%2$sEvents Calendar ウェブサイトにアクセス%3$sし、インストール状況の管理、ライセンスのアップグレード、または新規購入を行ってください。"
|
410 |
|
411 |
+
#: src/Tribe/PUE/Notices.php:327
|
412 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
413 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
414 |
msgstr[0] "%1$s のアップデートをご利用いただけますが、ライセンスの期限が切れています。%2$sEvents Calendar ウェブサイトにアクセスし、ライセンスを更新してください。%3$s"
|
478 |
msgid "English"
|
479 |
msgstr "英語"
|
480 |
|
481 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
482 |
msgid " (opens in a new window)"
|
483 |
msgstr " (新しいウィンドウで開く)"
|
484 |
|
485 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
486 |
msgid "Renew Your License Now"
|
487 |
msgstr "今すぐライセンスを更新する"
|
488 |
|
2016 |
|
2017 |
#: src/Tribe/Languages/Locations.php:83
|
2018 |
msgid "Bosnia and Herzegovina"
|
2019 |
+
msgstr "ボスニア・ヘルツェゴビナ"
|
2020 |
|
2021 |
#: src/Tribe/Languages/Locations.php:82
|
2022 |
msgid "Bolivia"
|
2156 |
|
2157 |
#: src/Tribe/Validate.php:368
|
2158 |
msgid "%s cannot be a duplicate"
|
2159 |
+
msgstr "%s は、重複できません"
|
2160 |
|
2161 |
#: src/Tribe/Validate.php:366
|
2162 |
msgid "%s cannot be the same as %s."
|
2164 |
|
2165 |
#: src/Tribe/Validate.php:359
|
2166 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2167 |
+
msgstr "フィールド %s の比較値が提供されていないため、比較検証が正常に完了しませんでした"
|
2168 |
|
2169 |
#: src/Tribe/Validate.php:298 src/Tribe/Validate.php:310
|
2170 |
#: src/Tribe/Validate.php:323 src/Tribe/Validate.php:345
|
common/lang/tribe-common-lt_LT.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: lt\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -362,19 +400,19 @@ msgstr ""
|
|
362 |
msgid "Events Add-Ons"
|
363 |
msgstr ""
|
364 |
|
365 |
-
#: src/Tribe/PUE/Notices.php:
|
366 |
msgctxt "formatted plugin list"
|
367 |
msgid "%1$s and %2$s"
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: src/Tribe/PUE/Notices.php:
|
371 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
372 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
373 |
msgstr[0] ""
|
374 |
msgstr[1] ""
|
375 |
msgstr[2] ""
|
376 |
|
377 |
-
#: src/Tribe/PUE/Notices.php:
|
378 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
379 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
380 |
msgstr[0] ""
|
@@ -446,11 +484,11 @@ msgstr ""
|
|
446 |
msgid "English"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
450 |
msgid " (opens in a new window)"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
454 |
msgid "Renew Your License Now"
|
455 |
msgstr ""
|
456 |
|
11 |
"Language: lt\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
400 |
msgid "Events Add-Ons"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: src/Tribe/PUE/Notices.php:440
|
404 |
msgctxt "formatted plugin list"
|
405 |
msgid "%1$s and %2$s"
|
406 |
msgstr ""
|
407 |
|
408 |
+
#: src/Tribe/PUE/Notices.php:359
|
409 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
410 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
411 |
msgstr[0] ""
|
412 |
msgstr[1] ""
|
413 |
msgstr[2] ""
|
414 |
|
415 |
+
#: src/Tribe/PUE/Notices.php:327
|
416 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
417 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
418 |
msgstr[0] ""
|
484 |
msgid "English"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
488 |
msgid " (opens in a new window)"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
492 |
msgid "Renew Your License Now"
|
493 |
msgstr ""
|
494 |
|
common/lang/tribe-common-lv.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: lv\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -362,19 +400,19 @@ msgstr ""
|
|
362 |
msgid "Events Add-Ons"
|
363 |
msgstr ""
|
364 |
|
365 |
-
#: src/Tribe/PUE/Notices.php:
|
366 |
msgctxt "formatted plugin list"
|
367 |
msgid "%1$s and %2$s"
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: src/Tribe/PUE/Notices.php:
|
371 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
372 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
373 |
msgstr[0] ""
|
374 |
msgstr[1] ""
|
375 |
msgstr[2] ""
|
376 |
|
377 |
-
#: src/Tribe/PUE/Notices.php:
|
378 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
379 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
380 |
msgstr[0] ""
|
@@ -446,11 +484,11 @@ msgstr ""
|
|
446 |
msgid "English"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
450 |
msgid " (opens in a new window)"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
454 |
msgid "Renew Your License Now"
|
455 |
msgstr ""
|
456 |
|
11 |
"Language: lv\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
400 |
msgid "Events Add-Ons"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: src/Tribe/PUE/Notices.php:440
|
404 |
msgctxt "formatted plugin list"
|
405 |
msgid "%1$s and %2$s"
|
406 |
msgstr ""
|
407 |
|
408 |
+
#: src/Tribe/PUE/Notices.php:359
|
409 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
410 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
411 |
msgstr[0] ""
|
412 |
msgstr[1] ""
|
413 |
msgstr[2] ""
|
414 |
|
415 |
+
#: src/Tribe/PUE/Notices.php:327
|
416 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
417 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
418 |
msgstr[0] ""
|
484 |
msgid "English"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
488 |
msgid " (opens in a new window)"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
492 |
msgid "Renew Your License Now"
|
493 |
msgstr ""
|
494 |
|
common/lang/tribe-common-nb_NO.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: nb_NO\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -361,18 +399,18 @@ msgstr ""
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] ""
|
373 |
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] ""
|
@@ -443,11 +481,11 @@ msgstr ""
|
|
443 |
msgid "English"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr ""
|
453 |
|
11 |
"Language: nb_NO\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] ""
|
481 |
msgid "English"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr ""
|
491 |
|
common/lang/tribe-common-nl_NL.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: nl\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -361,18 +399,18 @@ msgstr "Blader door alle Add-Ons"
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr "Events Add-Ons"
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr "%1$s en %2$s"
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] ""
|
373 |
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] "Er is een update beschikbaar voor %1$s, maar je licentie is verlopen. %2$sBezoek de Events Calendar website om je licentie te vernieuwen.%3$s"
|
@@ -443,11 +481,11 @@ msgstr "Ja, ik wil mijn systeeminformatie automatisch delen met het Modern Tribe
|
|
443 |
msgid "English"
|
444 |
msgstr "Engels"
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr "(opent in een nieuw scherm)"
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr "Verleng je licentie nu"
|
453 |
|
11 |
"Language: nl\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr "Events Add-Ons"
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr "%1$s en %2$s"
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] "Er is een update beschikbaar voor %1$s, maar je licentie is verlopen. %2$sBezoek de Events Calendar website om je licentie te vernieuwen.%3$s"
|
481 |
msgid "English"
|
482 |
msgstr "Engels"
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr "(opent in een nieuw scherm)"
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr "Verleng je licentie nu"
|
491 |
|
common/lang/tribe-common-pl_PL.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: pl\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -362,19 +400,19 @@ msgstr ""
|
|
362 |
msgid "Events Add-Ons"
|
363 |
msgstr ""
|
364 |
|
365 |
-
#: src/Tribe/PUE/Notices.php:
|
366 |
msgctxt "formatted plugin list"
|
367 |
msgid "%1$s and %2$s"
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: src/Tribe/PUE/Notices.php:
|
371 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
372 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
373 |
msgstr[0] ""
|
374 |
msgstr[1] ""
|
375 |
msgstr[2] ""
|
376 |
|
377 |
-
#: src/Tribe/PUE/Notices.php:
|
378 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
379 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
380 |
msgstr[0] ""
|
@@ -446,11 +484,11 @@ msgstr ""
|
|
446 |
msgid "English"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
450 |
msgid " (opens in a new window)"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
454 |
msgid "Renew Your License Now"
|
455 |
msgstr ""
|
456 |
|
11 |
"Language: pl\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
400 |
msgid "Events Add-Ons"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: src/Tribe/PUE/Notices.php:440
|
404 |
msgctxt "formatted plugin list"
|
405 |
msgid "%1$s and %2$s"
|
406 |
msgstr ""
|
407 |
|
408 |
+
#: src/Tribe/PUE/Notices.php:359
|
409 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
410 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
411 |
msgstr[0] ""
|
412 |
msgstr[1] ""
|
413 |
msgstr[2] ""
|
414 |
|
415 |
+
#: src/Tribe/PUE/Notices.php:327
|
416 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
417 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
418 |
msgstr[0] ""
|
484 |
msgid "English"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
488 |
msgid " (opens in a new window)"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
492 |
msgid "Renew Your License Now"
|
493 |
msgstr ""
|
494 |
|
common/lang/tribe-common-pt_BR.mo
CHANGED
Binary file
|
common/lang/tribe-common-pt_BR.po
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date: 2018-11-
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -11,9 +11,47 @@ msgstr ""
|
|
11 |
"Language: pt_BR\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
-
msgstr ""
|
17 |
|
18 |
#: src/Tribe/Plugins_API.php:37
|
19 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
@@ -139,11 +177,11 @@ msgstr "Existe uma nova versão do %1$s disponível. %2$s"
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr "Atualize agora para a versão %s."
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr "Você sempre pode verificar o status de suas licenças por efetuar login em %1$ssua conta no theeventscalendar.com%2$s."
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] "Parece que você está usando %1$s, mas a chave de licença é inválida. Faça o download da versão mais recente %2$sem sua conta%3$s."
|
@@ -361,18 +399,18 @@ msgstr "Procurar todos os complementos"
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr "Complementos de eventos"
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr "%1$s e %2$s"
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] "Você tem uma chave de licença para %1$s, mas a chave está sem instalações restantes. %2$sVisite o site do Events Calendar%3$s para gerenciar suas instalações, atualizar sua licença ou adquirir uma nova."
|
373 |
msgstr[1] "Você tem chaves de licença para %1$s, mas suas chaves estão sem instalações restantes. %2$sVisite o site do Events Calendar%3$s para gerenciar suas instalações, atualizar suas licenças ou adquirir novas."
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] "Há uma atualização disponível para o %1$s, mas sua licença expirou. %2$sVisite o site do Events Calendar para renovar sua licença.%3$s"
|
@@ -443,11 +481,11 @@ msgstr "Sim, compartilhar automaticamente as minhas informações do sistema com
|
|
443 |
msgid "English"
|
444 |
msgstr "Inglês"
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr " (abre numa nova janela)"
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr "Renove sua licença agora"
|
453 |
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2018-11-12 16:48:23+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
"Language: pt_BR\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
+
msgstr "Limpar"
|
55 |
|
56 |
#: src/Tribe/Plugins_API.php:37
|
57 |
msgid "Event Aggregator adds massive import functionality to your calendar. Before you know it, you’ll be importing events from Meetup, Eventbrite, Google Calendar, iCalendar, and other URLs with ease. Schedule imports to run automatically behind-the-scenes or run them manually when you’re ready. Go ahead and import to your heart’s content—Event Aggregator hooks you up with a central dashboard in the admin to make managing your imports a breeze."
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr "Atualize agora para a versão %s."
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr "Você sempre pode verificar o status de suas licenças por efetuar login em %1$ssua conta no theeventscalendar.com%2$s."
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] "Parece que você está usando %1$s, mas a chave de licença é inválida. Faça o download da versão mais recente %2$sem sua conta%3$s."
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr "Complementos de eventos"
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr "%1$s e %2$s"
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] "Você tem uma chave de licença para %1$s, mas a chave está sem instalações restantes. %2$sVisite o site do Events Calendar%3$s para gerenciar suas instalações, atualizar sua licença ou adquirir uma nova."
|
411 |
msgstr[1] "Você tem chaves de licença para %1$s, mas suas chaves estão sem instalações restantes. %2$sVisite o site do Events Calendar%3$s para gerenciar suas instalações, atualizar suas licenças ou adquirir novas."
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] "Há uma atualização disponível para o %1$s, mas sua licença expirou. %2$sVisite o site do Events Calendar para renovar sua licença.%3$s"
|
481 |
msgid "English"
|
482 |
msgstr "Inglês"
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr " (abre numa nova janela)"
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr "Renove sua licença agora"
|
491 |
|
common/lang/tribe-common-pt_PT.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: pt\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr "Está disponível uma nova versão de %1$s. %2$s"
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr "Actualizar agora para a versão %s."
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr "Pode sempre consultar o estado das suas licenças na %1$ssua conta em theeventscalendar.com%2$s."
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] "Parece que está a usar o plugin %1$s, mas a chave de licença é inválida. Por favor descarregue a última versão a partir da %2$ssua conta%3$s."
|
@@ -361,18 +399,18 @@ msgstr "Ver todas as extensões"
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr "Extensões de eventos"
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr "%1$s e %2$s"
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] "Tem uma chave de licença para o %1$s mas a chave atingiu o limite máximo de instalações. %2$sVisite o site do The Events Calendar%3$s para gerir as suas instalações, actualizar a sua licença ou comprar uma nova."
|
373 |
msgstr[1] "Tem chaves de licença para os %1$s mas as chaves atingiram o limite máximo de instalações. %2$sVisite o site do The Events Calendar%3$s para gerir as suas instalações, actualizar as suas licenças ou comprar novas."
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] "Está disponível uma actualização para o %1$s mas sua chave de licença expirou. %2$sVisite o site do The Events Calendar%3$s para renovar a sua licença."
|
@@ -443,11 +481,11 @@ msgstr "Sim, partilhar automaticamente as informações do meu sistema com a equ
|
|
443 |
msgid "English"
|
444 |
msgstr "Inglês"
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr " (abrir numa nova janela)"
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr "Renove a sua licença agora"
|
453 |
|
11 |
"Language: pt\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr "Actualizar agora para a versão %s."
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr "Pode sempre consultar o estado das suas licenças na %1$ssua conta em theeventscalendar.com%2$s."
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] "Parece que está a usar o plugin %1$s, mas a chave de licença é inválida. Por favor descarregue a última versão a partir da %2$ssua conta%3$s."
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr "Extensões de eventos"
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr "%1$s e %2$s"
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] "Tem uma chave de licença para o %1$s mas a chave atingiu o limite máximo de instalações. %2$sVisite o site do The Events Calendar%3$s para gerir as suas instalações, actualizar a sua licença ou comprar uma nova."
|
411 |
msgstr[1] "Tem chaves de licença para os %1$s mas as chaves atingiram o limite máximo de instalações. %2$sVisite o site do The Events Calendar%3$s para gerir as suas instalações, actualizar as suas licenças ou comprar novas."
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] "Está disponível uma actualização para o %1$s mas sua chave de licença expirou. %2$sVisite o site do The Events Calendar%3$s para renovar a sua licença."
|
481 |
msgid "English"
|
482 |
msgstr "Inglês"
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr " (abrir numa nova janela)"
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr "Renove a sua licença agora"
|
491 |
|
common/lang/tribe-common-ro_RO.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: ro\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -362,19 +400,19 @@ msgstr ""
|
|
362 |
msgid "Events Add-Ons"
|
363 |
msgstr ""
|
364 |
|
365 |
-
#: src/Tribe/PUE/Notices.php:
|
366 |
msgctxt "formatted plugin list"
|
367 |
msgid "%1$s and %2$s"
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: src/Tribe/PUE/Notices.php:
|
371 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
372 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
373 |
msgstr[0] ""
|
374 |
msgstr[1] ""
|
375 |
msgstr[2] ""
|
376 |
|
377 |
-
#: src/Tribe/PUE/Notices.php:
|
378 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
379 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
380 |
msgstr[0] ""
|
@@ -446,11 +484,11 @@ msgstr ""
|
|
446 |
msgid "English"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
450 |
msgid " (opens in a new window)"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
454 |
msgid "Renew Your License Now"
|
455 |
msgstr ""
|
456 |
|
11 |
"Language: ro\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
400 |
msgid "Events Add-Ons"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: src/Tribe/PUE/Notices.php:440
|
404 |
msgctxt "formatted plugin list"
|
405 |
msgid "%1$s and %2$s"
|
406 |
msgstr ""
|
407 |
|
408 |
+
#: src/Tribe/PUE/Notices.php:359
|
409 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
410 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
411 |
msgstr[0] ""
|
412 |
msgstr[1] ""
|
413 |
msgstr[2] ""
|
414 |
|
415 |
+
#: src/Tribe/PUE/Notices.php:327
|
416 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
417 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
418 |
msgstr[0] ""
|
484 |
msgid "English"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
488 |
msgid " (opens in a new window)"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
492 |
msgid "Renew Your License Now"
|
493 |
msgstr ""
|
494 |
|
common/lang/tribe-common-ru_RU.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: ru\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -362,19 +400,19 @@ msgstr ""
|
|
362 |
msgid "Events Add-Ons"
|
363 |
msgstr ""
|
364 |
|
365 |
-
#: src/Tribe/PUE/Notices.php:
|
366 |
msgctxt "formatted plugin list"
|
367 |
msgid "%1$s and %2$s"
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: src/Tribe/PUE/Notices.php:
|
371 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
372 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
373 |
msgstr[0] ""
|
374 |
msgstr[1] ""
|
375 |
msgstr[2] ""
|
376 |
|
377 |
-
#: src/Tribe/PUE/Notices.php:
|
378 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
379 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
380 |
msgstr[0] ""
|
@@ -446,11 +484,11 @@ msgstr ""
|
|
446 |
msgid "English"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
450 |
msgid " (opens in a new window)"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
454 |
msgid "Renew Your License Now"
|
455 |
msgstr ""
|
456 |
|
11 |
"Language: ru\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
400 |
msgid "Events Add-Ons"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: src/Tribe/PUE/Notices.php:440
|
404 |
msgctxt "formatted plugin list"
|
405 |
msgid "%1$s and %2$s"
|
406 |
msgstr ""
|
407 |
|
408 |
+
#: src/Tribe/PUE/Notices.php:359
|
409 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
410 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
411 |
msgstr[0] ""
|
412 |
msgstr[1] ""
|
413 |
msgstr[2] ""
|
414 |
|
415 |
+
#: src/Tribe/PUE/Notices.php:327
|
416 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
417 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
418 |
msgstr[0] ""
|
484 |
msgid "English"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
488 |
msgid " (opens in a new window)"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
492 |
msgid "Renew Your License Now"
|
493 |
msgstr ""
|
494 |
|
common/lang/tribe-common-sk_SK.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: sk\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -362,19 +400,19 @@ msgstr ""
|
|
362 |
msgid "Events Add-Ons"
|
363 |
msgstr ""
|
364 |
|
365 |
-
#: src/Tribe/PUE/Notices.php:
|
366 |
msgctxt "formatted plugin list"
|
367 |
msgid "%1$s and %2$s"
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: src/Tribe/PUE/Notices.php:
|
371 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
372 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
373 |
msgstr[0] ""
|
374 |
msgstr[1] ""
|
375 |
msgstr[2] ""
|
376 |
|
377 |
-
#: src/Tribe/PUE/Notices.php:
|
378 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
379 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
380 |
msgstr[0] ""
|
@@ -446,11 +484,11 @@ msgstr ""
|
|
446 |
msgid "English"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
450 |
msgid " (opens in a new window)"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
454 |
msgid "Renew Your License Now"
|
455 |
msgstr ""
|
456 |
|
11 |
"Language: sk\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
400 |
msgid "Events Add-Ons"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: src/Tribe/PUE/Notices.php:440
|
404 |
msgctxt "formatted plugin list"
|
405 |
msgid "%1$s and %2$s"
|
406 |
msgstr ""
|
407 |
|
408 |
+
#: src/Tribe/PUE/Notices.php:359
|
409 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
410 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
411 |
msgstr[0] ""
|
412 |
msgstr[1] ""
|
413 |
msgstr[2] ""
|
414 |
|
415 |
+
#: src/Tribe/PUE/Notices.php:327
|
416 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
417 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
418 |
msgstr[0] ""
|
484 |
msgid "English"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
488 |
msgid " (opens in a new window)"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
492 |
msgid "Renew Your License Now"
|
493 |
msgstr ""
|
494 |
|
common/lang/tribe-common-sl_SI.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: sl_SI\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -363,12 +401,12 @@ msgstr ""
|
|
363 |
msgid "Events Add-Ons"
|
364 |
msgstr ""
|
365 |
|
366 |
-
#: src/Tribe/PUE/Notices.php:
|
367 |
msgctxt "formatted plugin list"
|
368 |
msgid "%1$s and %2$s"
|
369 |
msgstr ""
|
370 |
|
371 |
-
#: src/Tribe/PUE/Notices.php:
|
372 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
373 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
374 |
msgstr[0] ""
|
@@ -376,7 +414,7 @@ msgstr[1] ""
|
|
376 |
msgstr[2] ""
|
377 |
msgstr[3] ""
|
378 |
|
379 |
-
#: src/Tribe/PUE/Notices.php:
|
380 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
381 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
382 |
msgstr[0] ""
|
@@ -449,11 +487,11 @@ msgstr ""
|
|
449 |
msgid "English"
|
450 |
msgstr ""
|
451 |
|
452 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
453 |
msgid " (opens in a new window)"
|
454 |
msgstr ""
|
455 |
|
456 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
457 |
msgid "Renew Your License Now"
|
458 |
msgstr ""
|
459 |
|
11 |
"Language: sl_SI\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
401 |
msgid "Events Add-Ons"
|
402 |
msgstr ""
|
403 |
|
404 |
+
#: src/Tribe/PUE/Notices.php:440
|
405 |
msgctxt "formatted plugin list"
|
406 |
msgid "%1$s and %2$s"
|
407 |
msgstr ""
|
408 |
|
409 |
+
#: src/Tribe/PUE/Notices.php:359
|
410 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
411 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
412 |
msgstr[0] ""
|
414 |
msgstr[2] ""
|
415 |
msgstr[3] ""
|
416 |
|
417 |
+
#: src/Tribe/PUE/Notices.php:327
|
418 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
419 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
420 |
msgstr[0] ""
|
487 |
msgid "English"
|
488 |
msgstr ""
|
489 |
|
490 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
491 |
msgid " (opens in a new window)"
|
492 |
msgstr ""
|
493 |
|
494 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
495 |
msgid "Renew Your License Now"
|
496 |
msgstr ""
|
497 |
|
common/lang/tribe-common-sr_RS.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: sr_RS\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -362,19 +400,19 @@ msgstr ""
|
|
362 |
msgid "Events Add-Ons"
|
363 |
msgstr ""
|
364 |
|
365 |
-
#: src/Tribe/PUE/Notices.php:
|
366 |
msgctxt "formatted plugin list"
|
367 |
msgid "%1$s and %2$s"
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: src/Tribe/PUE/Notices.php:
|
371 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
372 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
373 |
msgstr[0] ""
|
374 |
msgstr[1] ""
|
375 |
msgstr[2] ""
|
376 |
|
377 |
-
#: src/Tribe/PUE/Notices.php:
|
378 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
379 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
380 |
msgstr[0] ""
|
@@ -446,11 +484,11 @@ msgstr ""
|
|
446 |
msgid "English"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
450 |
msgid " (opens in a new window)"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
454 |
msgid "Renew Your License Now"
|
455 |
msgstr ""
|
456 |
|
11 |
"Language: sr_RS\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
400 |
msgid "Events Add-Ons"
|
401 |
msgstr ""
|
402 |
|
403 |
+
#: src/Tribe/PUE/Notices.php:440
|
404 |
msgctxt "formatted plugin list"
|
405 |
msgid "%1$s and %2$s"
|
406 |
msgstr ""
|
407 |
|
408 |
+
#: src/Tribe/PUE/Notices.php:359
|
409 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
410 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
411 |
msgstr[0] ""
|
412 |
msgstr[1] ""
|
413 |
msgstr[2] ""
|
414 |
|
415 |
+
#: src/Tribe/PUE/Notices.php:327
|
416 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
417 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
418 |
msgstr[0] ""
|
484 |
msgid "English"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
488 |
msgid " (opens in a new window)"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
492 |
msgid "Renew Your License Now"
|
493 |
msgstr ""
|
494 |
|
common/lang/tribe-common-sv_SE.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: sv_SE\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -361,18 +399,18 @@ msgstr ""
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] ""
|
373 |
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] ""
|
@@ -443,11 +481,11 @@ msgstr ""
|
|
443 |
msgid "English"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr ""
|
453 |
|
11 |
"Language: sv_SE\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] ""
|
481 |
msgid "English"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr ""
|
491 |
|
common/lang/tribe-common-tr_TR.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: tr\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -361,18 +399,18 @@ msgstr ""
|
|
361 |
msgid "Events Add-Ons"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: src/Tribe/PUE/Notices.php:
|
365 |
msgctxt "formatted plugin list"
|
366 |
msgid "%1$s and %2$s"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: src/Tribe/PUE/Notices.php:
|
370 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
371 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
372 |
msgstr[0] ""
|
373 |
msgstr[1] ""
|
374 |
|
375 |
-
#: src/Tribe/PUE/Notices.php:
|
376 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
377 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
378 |
msgstr[0] ""
|
@@ -443,11 +481,11 @@ msgstr ""
|
|
443 |
msgid "English"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
447 |
msgid " (opens in a new window)"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
451 |
msgid "Renew Your License Now"
|
452 |
msgstr ""
|
453 |
|
11 |
"Language: tr\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
399 |
msgid "Events Add-Ons"
|
400 |
msgstr ""
|
401 |
|
402 |
+
#: src/Tribe/PUE/Notices.php:440
|
403 |
msgctxt "formatted plugin list"
|
404 |
msgid "%1$s and %2$s"
|
405 |
msgstr ""
|
406 |
|
407 |
+
#: src/Tribe/PUE/Notices.php:359
|
408 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
409 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
410 |
msgstr[0] ""
|
411 |
msgstr[1] ""
|
412 |
|
413 |
+
#: src/Tribe/PUE/Notices.php:327
|
414 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
415 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
416 |
msgstr[0] ""
|
481 |
msgid "English"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
485 |
msgid " (opens in a new window)"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
489 |
msgid "Renew Your License Now"
|
490 |
msgstr ""
|
491 |
|
common/lang/tribe-common-zh_CN.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: zh_CN\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -360,17 +398,17 @@ msgstr ""
|
|
360 |
msgid "Events Add-Ons"
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: src/Tribe/PUE/Notices.php:
|
364 |
msgctxt "formatted plugin list"
|
365 |
msgid "%1$s and %2$s"
|
366 |
msgstr ""
|
367 |
|
368 |
-
#: src/Tribe/PUE/Notices.php:
|
369 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
370 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
371 |
msgstr[0] ""
|
372 |
|
373 |
-
#: src/Tribe/PUE/Notices.php:
|
374 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
375 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
376 |
msgstr[0] ""
|
@@ -440,11 +478,11 @@ msgstr ""
|
|
440 |
msgid "English"
|
441 |
msgstr ""
|
442 |
|
443 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
444 |
msgid " (opens in a new window)"
|
445 |
msgstr ""
|
446 |
|
447 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
448 |
msgid "Renew Your License Now"
|
449 |
msgstr ""
|
450 |
|
11 |
"Language: zh_CN\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
398 |
msgid "Events Add-Ons"
|
399 |
msgstr ""
|
400 |
|
401 |
+
#: src/Tribe/PUE/Notices.php:440
|
402 |
msgctxt "formatted plugin list"
|
403 |
msgid "%1$s and %2$s"
|
404 |
msgstr ""
|
405 |
|
406 |
+
#: src/Tribe/PUE/Notices.php:359
|
407 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
408 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
409 |
msgstr[0] ""
|
410 |
|
411 |
+
#: src/Tribe/PUE/Notices.php:327
|
412 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
413 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
414 |
msgstr[0] ""
|
478 |
msgid "English"
|
479 |
msgstr ""
|
480 |
|
481 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
482 |
msgid " (opens in a new window)"
|
483 |
msgstr ""
|
484 |
|
485 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
486 |
msgid "Renew Your License Now"
|
487 |
msgstr ""
|
488 |
|
common/lang/tribe-common-zh_TW.po
CHANGED
@@ -11,6 +11,44 @@ msgstr ""
|
|
11 |
"Language: zh_TW\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
#: src/Tribe/Main.php:276
|
15 |
msgid "Clear"
|
16 |
msgstr ""
|
@@ -139,11 +177,11 @@ msgstr ""
|
|
139 |
msgid "Update now to version %s."
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/Tribe/PUE/Notices.php:
|
143 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/PUE/Notices.php:
|
147 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
148 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
149 |
msgstr[0] ""
|
@@ -360,17 +398,17 @@ msgstr ""
|
|
360 |
msgid "Events Add-Ons"
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: src/Tribe/PUE/Notices.php:
|
364 |
msgctxt "formatted plugin list"
|
365 |
msgid "%1$s and %2$s"
|
366 |
msgstr ""
|
367 |
|
368 |
-
#: src/Tribe/PUE/Notices.php:
|
369 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
370 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
371 |
msgstr[0] ""
|
372 |
|
373 |
-
#: src/Tribe/PUE/Notices.php:
|
374 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
375 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
376 |
msgstr[0] ""
|
@@ -440,11 +478,11 @@ msgstr ""
|
|
440 |
msgid "English"
|
441 |
msgstr ""
|
442 |
|
443 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
444 |
msgid " (opens in a new window)"
|
445 |
msgstr ""
|
446 |
|
447 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
448 |
msgid "Renew Your License Now"
|
449 |
msgstr ""
|
450 |
|
11 |
"Language: zh_TW\n"
|
12 |
"Project-Id-Version: Tribe Common\n"
|
13 |
|
14 |
+
#: src/Tribe/Editor/Meta.php:123
|
15 |
+
msgid "Text Array"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/Tribe/Editor/Meta.php:105
|
19 |
+
msgid "Numeric Array"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Editor/Configuration.php:97
|
23 |
+
msgid "F j, Y g:i a"
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Editor/Configuration.php:96
|
27 |
+
msgid "F j"
|
28 |
+
msgstr ""
|
29 |
+
|
30 |
+
#: src/Tribe/Editor/Configuration.php:95
|
31 |
+
msgid "F j, Y"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: src/Tribe/Editor/Configuration.php:94
|
35 |
+
msgid "g:i a"
|
36 |
+
msgstr ""
|
37 |
+
|
38 |
+
#. translators: %s: duration
|
39 |
+
#: src/Tribe/Editor/Configuration.php:90
|
40 |
+
msgid "%s ago"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#. translators: %s: duration
|
44 |
+
#: src/Tribe/Editor/Configuration.php:88
|
45 |
+
msgid "%s from now"
|
46 |
+
msgstr ""
|
47 |
+
|
48 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
49 |
+
msgid "Problem loading the block, please remove this block to restart."
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
#: src/Tribe/Main.php:276
|
53 |
msgid "Clear"
|
54 |
msgstr ""
|
177 |
msgid "Update now to version %s."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/Tribe/PUE/Notices.php:397
|
181 |
msgid "You can always check the status of your licenses by logging in to %1$syour account on theeventscalendar.com%2$s."
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/Tribe/PUE/Notices.php:282
|
185 |
msgid "It looks like you're using %1$s, but the license key is invalid. Please download the latest version %2$sfrom your account%3$s."
|
186 |
msgid_plural "It looks like you're using %1$s, but the license keys are invalid. Please download the latest versions %2$sfrom your account%3$s."
|
187 |
msgstr[0] ""
|
398 |
msgid "Events Add-Ons"
|
399 |
msgstr ""
|
400 |
|
401 |
+
#: src/Tribe/PUE/Notices.php:440
|
402 |
msgctxt "formatted plugin list"
|
403 |
msgid "%1$s and %2$s"
|
404 |
msgstr ""
|
405 |
|
406 |
+
#: src/Tribe/PUE/Notices.php:359
|
407 |
msgid "You have a license key for %1$s but the key is out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your license, or purchase a new one."
|
408 |
msgid_plural "You have license keys for %1$s but your keys are out of installs. %2$sVisit the Events Calendar website%3$s to manage your installs, upgrade your licenses, or purchase new ones."
|
409 |
msgstr[0] ""
|
410 |
|
411 |
+
#: src/Tribe/PUE/Notices.php:327
|
412 |
msgid "There is an update available for %1$s but your license has expired. %2$sVisit the Events Calendar website to renew your license.%3$s"
|
413 |
msgid_plural "Updates are available for %1$s but your license keys have expired. %2$sVisit the Events Calendar website to renew your licenses.%3$s"
|
414 |
msgstr[0] ""
|
478 |
msgid "English"
|
479 |
msgstr ""
|
480 |
|
481 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
482 |
msgid " (opens in a new window)"
|
483 |
msgstr ""
|
484 |
|
485 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
486 |
msgid "Renew Your License Now"
|
487 |
msgstr ""
|
488 |
|
common/lang/tribe-common.pot
CHANGED
@@ -2,13 +2,13 @@
|
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Tribe Common 4.
|
6 |
"Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
|
7 |
-
"POT-Creation-Date: 2018-11-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date: 2018-11-
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
@@ -346,6 +346,44 @@ msgstr ""
|
|
346 |
msgid "A list of links to the term own, archive and parent REST URL"
|
347 |
msgstr ""
|
348 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
349 |
#: src/Tribe/Error.php:38
|
350 |
msgid "An Unknown error occurred"
|
351 |
msgstr ""
|
@@ -1740,11 +1778,11 @@ msgstr ""
|
|
1740 |
msgid "Thanks for setting up a valid key. It will expire on %s"
|
1741 |
msgstr ""
|
1742 |
|
1743 |
-
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:
|
1744 |
msgid "Renew Your License Now"
|
1745 |
msgstr ""
|
1746 |
|
1747 |
-
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:
|
1748 |
msgid " (opens in a new window)"
|
1749 |
msgstr ""
|
1750 |
|
@@ -1784,7 +1822,7 @@ msgstr ""
|
|
1784 |
msgid "Expired license. Consult your network administrator."
|
1785 |
msgstr ""
|
1786 |
|
1787 |
-
#: src/Tribe/PUE/Notices.php:
|
1788 |
msgid ""
|
1789 |
"It looks like you're using %1$s, but the license key is invalid. Please "
|
1790 |
"download the latest version %2$sfrom your account%3$s."
|
@@ -1794,7 +1832,7 @@ msgid_plural ""
|
|
1794 |
msgstr[0] ""
|
1795 |
msgstr[1] ""
|
1796 |
|
1797 |
-
#: src/Tribe/PUE/Notices.php:
|
1798 |
msgid ""
|
1799 |
"There is an update available for %1$s but your license has expired. "
|
1800 |
"%2$sVisit the Events Calendar website to renew your license.%3$s"
|
@@ -1804,7 +1842,7 @@ msgid_plural ""
|
|
1804 |
msgstr[0] ""
|
1805 |
msgstr[1] ""
|
1806 |
|
1807 |
-
#: src/Tribe/PUE/Notices.php:
|
1808 |
msgid ""
|
1809 |
"You have a license key for %1$s but the key is out of installs. %2$sVisit "
|
1810 |
"the Events Calendar website%3$s to manage your installs, upgrade your "
|
@@ -1816,13 +1854,13 @@ msgid_plural ""
|
|
1816 |
msgstr[0] ""
|
1817 |
msgstr[1] ""
|
1818 |
|
1819 |
-
#: src/Tribe/PUE/Notices.php:
|
1820 |
msgid ""
|
1821 |
"You can always check the status of your licenses by logging in to %1$syour "
|
1822 |
"account on theeventscalendar.com%2$s."
|
1823 |
msgstr ""
|
1824 |
|
1825 |
-
#: src/Tribe/PUE/Notices.php:
|
1826 |
msgctxt "formatted plugin list"
|
1827 |
msgid "%1$s and %2$s"
|
1828 |
msgstr ""
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Tribe Common 4.8\n"
|
6 |
"Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
|
7 |
+
"POT-Creation-Date: 2018-11-28 02:47:07+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2018-11-28 02:47\n"
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
346 |
msgid "A list of links to the term own, archive and parent REST URL"
|
347 |
msgstr ""
|
348 |
|
349 |
+
#: src/Tribe/Editor/Blocks/Abstract.php:127
|
350 |
+
msgid "Problem loading the block, please remove this block to restart."
|
351 |
+
msgstr ""
|
352 |
+
|
353 |
+
#. translators: %s: duration
|
354 |
+
#: src/Tribe/Editor/Configuration.php:88
|
355 |
+
msgid "%s from now"
|
356 |
+
msgstr ""
|
357 |
+
|
358 |
+
#. translators: %s: duration
|
359 |
+
#: src/Tribe/Editor/Configuration.php:90
|
360 |
+
msgid "%s ago"
|
361 |
+
msgstr ""
|
362 |
+
|
363 |
+
#: src/Tribe/Editor/Configuration.php:94
|
364 |
+
msgid "g:i a"
|
365 |
+
msgstr ""
|
366 |
+
|
367 |
+
#: src/Tribe/Editor/Configuration.php:95
|
368 |
+
msgid "F j, Y"
|
369 |
+
msgstr ""
|
370 |
+
|
371 |
+
#: src/Tribe/Editor/Configuration.php:96
|
372 |
+
msgid "F j"
|
373 |
+
msgstr ""
|
374 |
+
|
375 |
+
#: src/Tribe/Editor/Configuration.php:97
|
376 |
+
msgid "F j, Y g:i a"
|
377 |
+
msgstr ""
|
378 |
+
|
379 |
+
#: src/Tribe/Editor/Meta.php:105
|
380 |
+
msgid "Numeric Array"
|
381 |
+
msgstr ""
|
382 |
+
|
383 |
+
#: src/Tribe/Editor/Meta.php:123
|
384 |
+
msgid "Text Array"
|
385 |
+
msgstr ""
|
386 |
+
|
387 |
#: src/Tribe/Error.php:38
|
388 |
msgid "An Unknown error occurred"
|
389 |
msgstr ""
|
1778 |
msgid "Thanks for setting up a valid key. It will expire on %s"
|
1779 |
msgstr ""
|
1780 |
|
1781 |
+
#: src/Tribe/PUE/Checker.php:967 src/Tribe/PUE/Notices.php:340
|
1782 |
msgid "Renew Your License Now"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
+
#: src/Tribe/PUE/Checker.php:969 src/Tribe/PUE/Notices.php:342
|
1786 |
msgid " (opens in a new window)"
|
1787 |
msgstr ""
|
1788 |
|
1822 |
msgid "Expired license. Consult your network administrator."
|
1823 |
msgstr ""
|
1824 |
|
1825 |
+
#: src/Tribe/PUE/Notices.php:282
|
1826 |
msgid ""
|
1827 |
"It looks like you're using %1$s, but the license key is invalid. Please "
|
1828 |
"download the latest version %2$sfrom your account%3$s."
|
1832 |
msgstr[0] ""
|
1833 |
msgstr[1] ""
|
1834 |
|
1835 |
+
#: src/Tribe/PUE/Notices.php:327
|
1836 |
msgid ""
|
1837 |
"There is an update available for %1$s but your license has expired. "
|
1838 |
"%2$sVisit the Events Calendar website to renew your license.%3$s"
|
1842 |
msgstr[0] ""
|
1843 |
msgstr[1] ""
|
1844 |
|
1845 |
+
#: src/Tribe/PUE/Notices.php:359
|
1846 |
msgid ""
|
1847 |
"You have a license key for %1$s but the key is out of installs. %2$sVisit "
|
1848 |
"the Events Calendar website%3$s to manage your installs, upgrade your "
|
1854 |
msgstr[0] ""
|
1855 |
msgstr[1] ""
|
1856 |
|
1857 |
+
#: src/Tribe/PUE/Notices.php:397
|
1858 |
msgid ""
|
1859 |
"You can always check the status of your licenses by logging in to %1$syour "
|
1860 |
"account on theeventscalendar.com%2$s."
|
1861 |
msgstr ""
|
1862 |
|
1863 |
+
#: src/Tribe/PUE/Notices.php:440
|
1864 |
msgctxt "formatted plugin list"
|
1865 |
msgid "%1$s and %2$s"
|
1866 |
msgstr ""
|
common/readme.txt
CHANGED
@@ -1,7 +1,14 @@
|
|
1 |
=== Tribe Common ===
|
2 |
|
|
|
3 |
== Changelog ==
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
= [4.7.23.1] 2018-11-21 =
|
6 |
|
7 |
* Fixed - Use of the `wp_doing_cron` function that would break compatibility with sites not on WordPress version 4.8 or later [118627]
|
1 |
=== Tribe Common ===
|
2 |
|
3 |
+
|
4 |
== Changelog ==
|
5 |
|
6 |
+
= [4.8] 2018-11-29 =
|
7 |
+
|
8 |
+
* Add - Added `tribe_cache_expiration` filter that allows plugins to use persistent caching based on cache key [117158]
|
9 |
+
* Fix - The invalid license key notice won't be displayed for Products with empty license keys [115562]
|
10 |
+
* Language - 9 new strings added, 7 updated, 1 fuzzied, and 0 obsoleted
|
11 |
+
|
12 |
= [4.7.23.1] 2018-11-21 =
|
13 |
|
14 |
* Fixed - Use of the `wp_doing_cron` function that would break compatibility with sites not on WordPress version 4.8 or later [118627]
|
common/src/Tribe/Admin/Notice/Plugin_Upgrade_Notice.php
CHANGED
@@ -236,4 +236,4 @@ class Tribe__Admin__Notice__Plugin_Upgrade_Notice {
|
|
236 |
$notice = wp_kses_post( $this->upgrade_notice );
|
237 |
echo "<div class='tribe-plugin-update-message'> $notice </div>";
|
238 |
}
|
239 |
-
}
|
236 |
$notice = wp_kses_post( $this->upgrade_notice );
|
237 |
echo "<div class='tribe-plugin-update-message'> $notice </div>";
|
238 |
}
|
239 |
+
}
|
common/src/Tribe/Ajax/Dropdown.php
CHANGED
@@ -243,4 +243,4 @@ class Tribe__Ajax__Dropdown {
|
|
243 |
$message = __( 'The "%s" source is invalid and cannot be reached on "%s" instance.', 'tribe-common' );
|
244 |
return $this->error( sprintf( $message, $name, __CLASS__ ) );
|
245 |
}
|
246 |
-
}
|
243 |
$message = __( 'The "%s" source is invalid and cannot be reached on "%s" instance.', 'tribe-common' );
|
244 |
return $this->error( sprintf( $message, $name, __CLASS__ ) );
|
245 |
}
|
246 |
+
}
|
common/src/Tribe/Ajax/Operations.php
CHANGED
@@ -19,4 +19,4 @@ class Tribe__Ajax__Operations {
|
|
19 |
public function exit_data( $data = array() ) {
|
20 |
exit( $data );
|
21 |
}
|
22 |
-
}
|
19 |
public function exit_data( $data = array() ) {
|
20 |
exit( $data );
|
21 |
}
|
22 |
+
}
|
common/src/Tribe/Asset/Data.php
CHANGED
@@ -54,4 +54,4 @@ class Tribe__Asset__Data {
|
|
54 |
|
55 |
echo '/* ]]> */ </script>';
|
56 |
}
|
57 |
-
}
|
54 |
|
55 |
echo '/* ]]> */ </script>';
|
56 |
}
|
57 |
+
}
|
common/src/Tribe/Cache.php
CHANGED
@@ -33,10 +33,26 @@ class Tribe__Cache implements ArrayAccess {
|
|
33 |
public function set( $id, $value, $expiration = 0, $expiration_trigger = '' ) {
|
34 |
$key = $this->get_id( $id, $expiration_trigger );
|
35 |
|
36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
$group = 'tribe-events-non-persistent';
|
38 |
-
$this->non_persistent_keys[] = $key;
|
39 |
$expiration = 1;
|
|
|
|
|
|
|
40 |
} else {
|
41 |
$group = 'tribe-events';
|
42 |
}
|
33 |
public function set( $id, $value, $expiration = 0, $expiration_trigger = '' ) {
|
34 |
$key = $this->get_id( $id, $expiration_trigger );
|
35 |
|
36 |
+
/**
|
37 |
+
* Filters the expiration for cache objects to provide the ability
|
38 |
+
* to make non-persistent objects be treated as persistent.
|
39 |
+
*
|
40 |
+
* @param int $expiration Cache expiration time.
|
41 |
+
* @param string $id Cache ID.
|
42 |
+
* @param mixed $value Cache value.
|
43 |
+
* @param string $expiration_trigger Action that triggers automatic expiration.
|
44 |
+
* @param string $key Unique cache key based on Cache ID and expiration trigger last run time.
|
45 |
+
*
|
46 |
+
* @since 4.8
|
47 |
+
*/
|
48 |
+
$expiration = apply_filters( 'tribe_cache_expiration', $expiration, $id, $value, $expiration_trigger, $key );
|
49 |
+
|
50 |
+
if ( self::NON_PERSISTENT === $expiration ) {
|
51 |
$group = 'tribe-events-non-persistent';
|
|
|
52 |
$expiration = 1;
|
53 |
+
|
54 |
+
// Add so we know what group to use in the future.
|
55 |
+
$this->non_persistent_keys[] = $key;
|
56 |
} else {
|
57 |
$group = 'tribe-events';
|
58 |
}
|
common/src/Tribe/Cache_Listener.php
CHANGED
@@ -32,7 +32,7 @@
|
|
32 |
*/
|
33 |
private function add_hooks() {
|
34 |
add_action( 'save_post', array( $this, 'save_post' ), 0, 2 );
|
35 |
-
add_action( 'updated_option', array( $this, 'update_last_save_post' ) );
|
36 |
}
|
37 |
|
38 |
/**
|
@@ -50,11 +50,15 @@
|
|
50 |
/**
|
51 |
* Run the caching functionality that is executed on saving tribe calendar options.
|
52 |
*
|
53 |
-
* @param string $option
|
54 |
* @see 'updated_option'
|
|
|
|
|
|
|
|
|
55 |
*/
|
56 |
-
public function update_last_save_post( $option ) {
|
57 |
-
|
|
|
58 |
$this->cache->set_last_occurrence( 'save_post' );
|
59 |
}
|
60 |
}
|
32 |
*/
|
33 |
private function add_hooks() {
|
34 |
add_action( 'save_post', array( $this, 'save_post' ), 0, 2 );
|
35 |
+
add_action( 'updated_option', array( $this, 'update_last_save_post' ), 10, 3 );
|
36 |
}
|
37 |
|
38 |
/**
|
50 |
/**
|
51 |
* Run the caching functionality that is executed on saving tribe calendar options.
|
52 |
*
|
|
|
53 |
* @see 'updated_option'
|
54 |
+
*
|
55 |
+
* @param string $option Name of the updated option.
|
56 |
+
* @param mixed $old_value The old option value.
|
57 |
+
* @param mixed $value The new option value.
|
58 |
*/
|
59 |
+
public function update_last_save_post( $option, $old_value, $value ) {
|
60 |
+
|
61 |
+
if ( $option === 'tribe_events_calendar_options' ) {
|
62 |
$this->cache->set_last_occurrence( 'save_post' );
|
63 |
}
|
64 |
}
|
common/src/Tribe/Data.php
CHANGED
@@ -232,4 +232,4 @@ class Tribe__Data implements ArrayAccess, Iterator {
|
|
232 |
public function to_array() {
|
233 |
return $this->get_data();
|
234 |
}
|
235 |
-
}
|
232 |
public function to_array() {
|
233 |
return $this->get_data();
|
234 |
}
|
235 |
+
}
|
common/src/Tribe/Documentation/Swagger/Builder_Interface.php
CHANGED
@@ -26,4 +26,4 @@ interface Tribe__Documentation__Swagger__Builder_Interface {
|
|
26 |
* @return Tribe__Documentation__Swagger__Provider_Interface[]
|
27 |
*/
|
28 |
public function get_registered_definition_providers();
|
29 |
-
}
|
26 |
* @return Tribe__Documentation__Swagger__Provider_Interface[]
|
27 |
*/
|
28 |
public function get_registered_definition_providers();
|
29 |
+
}
|
common/src/Tribe/Documentation/Swagger/Date_Details_Definition_Provider.php
CHANGED
@@ -57,4 +57,4 @@ class Tribe__Documentation__Swagger__Date_Details_Definition_Provider
|
|
57 |
|
58 |
return $documentation;
|
59 |
}
|
60 |
-
}
|
57 |
|
58 |
return $documentation;
|
59 |
}
|
60 |
+
}
|
common/src/Tribe/Documentation/Swagger/Image_Size_Definition_Provider.php
CHANGED
@@ -50,4 +50,4 @@ class Tribe__Documentation__Swagger__Image_Size_Definition_Provider
|
|
50 |
|
51 |
return $documentation;
|
52 |
}
|
53 |
-
}
|
50 |
|
51 |
return $documentation;
|
52 |
}
|
53 |
+
}
|
common/src/Tribe/Documentation/Swagger/Provider_Interface.php
CHANGED
@@ -14,4 +14,4 @@ interface Tribe__Documentation__Swagger__Provider_Interface {
|
|
14 |
* @return array An array description of a Swagger supported component.
|
15 |
*/
|
16 |
public function get_documentation();
|
17 |
-
}
|
14 |
* @return array An array description of a Swagger supported component.
|
15 |
*/
|
16 |
public function get_documentation();
|
17 |
+
}
|
common/src/Tribe/Duplicate/Post.php
CHANGED
@@ -440,4 +440,4 @@ class Tribe__Duplicate__Post {
|
|
440 |
public function get_join_limit() {
|
441 |
return $this->join_limit;
|
442 |
}
|
443 |
-
}
|
440 |
public function get_join_limit() {
|
441 |
return $this->join_limit;
|
442 |
}
|
443 |
+
}
|
common/src/Tribe/Duplicate/Strategy/Base.php
CHANGED
@@ -21,4 +21,4 @@ abstract class Tribe__Duplicate__Strategy__Base {
|
|
21 |
protected function is_a_numeric_post_field( $key ) {
|
22 |
return in_array( $key, array( 'ID', 'post_author', 'post_parent', 'menu_order', 'comment_count' ) );
|
23 |
}
|
24 |
-
}
|
21 |
protected function is_a_numeric_post_field( $key ) {
|
22 |
return in_array( $key, array( 'ID', 'post_author', 'post_parent', 'menu_order', 'comment_count' ) );
|
23 |
}
|
24 |
+
}
|
common/src/Tribe/Duplicate/Strategy/Interface.php
CHANGED
@@ -28,4 +28,4 @@ interface Tribe__Duplicate__Strategy__Interface {
|
|
28 |
* @return string
|
29 |
*/
|
30 |
public function where_custom_field( $key, $value, $table_alias );
|
31 |
-
}
|
28 |
* @return string
|
29 |
*/
|
30 |
public function where_custom_field( $key, $value, $table_alias );
|
31 |
+
}
|
common/src/Tribe/Duplicate/Strategy/Like.php
CHANGED
@@ -82,4 +82,4 @@ class Tribe__Duplicate__Strategy__Like
|
|
82 |
|
83 |
return sprintf( '(%s)', implode( " \n\tAND ", $where_frags ) );
|
84 |
}
|
85 |
-
}
|
82 |
|
83 |
return sprintf( '(%s)', implode( " \n\tAND ", $where_frags ) );
|
84 |
}
|
85 |
+
}
|
common/src/Tribe/Duplicate/Strategy_Factory.php
CHANGED
@@ -105,4 +105,4 @@ class Tribe__Duplicate__Strategy_Factory {
|
|
105 |
public function set_strategy_map( array $strategy_map ) {
|
106 |
$this->strategy_map = $strategy_map;
|
107 |
}
|
108 |
-
}
|
105 |
public function set_strategy_map( array $strategy_map ) {
|
106 |
$this->strategy_map = $strategy_map;
|
107 |
}
|
108 |
+
}
|
common/src/Tribe/Editor.php
ADDED
@@ -0,0 +1,188 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Initialize Gutenberg editor blocks
|
4 |
+
*
|
5 |
+
* @since 4.8
|
6 |
+
*/
|
7 |
+
class Tribe__Editor {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Meta key for flaging if a post is from classic editor
|
11 |
+
*
|
12 |
+
* @since 4.8
|
13 |
+
*
|
14 |
+
* @var string
|
15 |
+
*/
|
16 |
+
public $key_flag_classic_editor = '_tribe_is_classic_editor';
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Utility function to check if we should load the blocks or not based on two assumptions
|
20 |
+
*
|
21 |
+
* a) Is gutenberg active?
|
22 |
+
* b) Is the blocks editor active?
|
23 |
+
*
|
24 |
+
* @since 4.8
|
25 |
+
*
|
26 |
+
* @return bool
|
27 |
+
*/
|
28 |
+
public function should_load_blocks() {
|
29 |
+
return (
|
30 |
+
$this->is_gutenberg_active()
|
31 |
+
|| $this->is_wp_version()
|
32 |
+
)
|
33 |
+
&& $this->is_blocks_editor_active();
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Checks if we are on version 5.0-alpha or higher where we no longer have
|
38 |
+
* Gutenberg Project, but the Blocks Editor
|
39 |
+
*
|
40 |
+
* @since 4.8
|
41 |
+
*
|
42 |
+
* @return boolean
|
43 |
+
*/
|
44 |
+
public function is_wp_version() {
|
45 |
+
global $wp_version;
|
46 |
+
|
47 |
+
return version_compare( $wp_version, '5.0-alpha', '>=' );
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Checks if we have Gutenberg Project online, only useful while
|
52 |
+
* its a external plugin
|
53 |
+
*
|
54 |
+
* @since 4.8
|
55 |
+
*
|
56 |
+
* @return boolean
|
57 |
+
*/
|
58 |
+
public function is_gutenberg_active() {
|
59 |
+
return function_exists( 'the_gutenberg_project' );
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Checks if we have Editor Block active
|
64 |
+
*
|
65 |
+
* @since 4.8
|
66 |
+
*
|
67 |
+
* @return boolean
|
68 |
+
*/
|
69 |
+
public function is_blocks_editor_active() {
|
70 |
+
return function_exists( 'register_block_type' ) && function_exists( 'unregister_block_type' );
|
71 |
+
}
|
72 |
+
|
73 |
+
/**
|
74 |
+
* Adds the required fields into the Events Post Type so that we can use Block Editor
|
75 |
+
*
|
76 |
+
* @since 4.8
|
77 |
+
*
|
78 |
+
* @param array $args Arguments used to setup the Post Type
|
79 |
+
*
|
80 |
+
* @return array
|
81 |
+
*/
|
82 |
+
public function add_support( $args = array() ) {
|
83 |
+
// Make sure we have the Support argument and it's an array
|
84 |
+
if ( ! isset( $args['supports'] ) || ! is_array( $args['supports'] ) ) {
|
85 |
+
$args['supports'] = array();
|
86 |
+
}
|
87 |
+
|
88 |
+
// Add Editor Support
|
89 |
+
if ( ! in_array( 'editor', $args['supports'] ) ) {
|
90 |
+
$args['supports'][] = 'editor';
|
91 |
+
}
|
92 |
+
|
93 |
+
return $args;
|
94 |
+
}
|
95 |
+
|
96 |
+
/**
|
97 |
+
* Adds the required fields into the Post Type so that we can the Rest API to update it
|
98 |
+
*
|
99 |
+
* @since 4.8
|
100 |
+
*
|
101 |
+
* @param array $args Arguments used to setup the Post Type
|
102 |
+
*
|
103 |
+
* @return array
|
104 |
+
*/
|
105 |
+
public function add_rest_support( $args = array() ) {
|
106 |
+
// Blocks Editor requires REST support
|
107 |
+
$args['show_in_rest'] = true;
|
108 |
+
|
109 |
+
// Make sure we have the Support argument and it's an array
|
110 |
+
if ( ! isset( $args['supports'] ) || ! is_array( $args['supports'] ) ) {
|
111 |
+
$args['supports'] = array();
|
112 |
+
}
|
113 |
+
|
114 |
+
if ( ! in_array( 'revisions', $args['supports'] ) ) {
|
115 |
+
$args['supports'][] = 'revisions';
|
116 |
+
}
|
117 |
+
|
118 |
+
// Add Custom Fields (meta) Support
|
119 |
+
if ( ! in_array( 'custom-fields', $args['supports'] ) ) {
|
120 |
+
$args['supports'][] = 'custom-fields';
|
121 |
+
}
|
122 |
+
|
123 |
+
// Add Post Title Support
|
124 |
+
if ( ! in_array( 'title', $args['supports'] ) ) {
|
125 |
+
$args['supports'][] = 'title';
|
126 |
+
}
|
127 |
+
|
128 |
+
// Add Post Excerpt Support
|
129 |
+
if ( ! in_array( 'excerpt', $args['supports'] ) ) {
|
130 |
+
$args['supports'][] = 'excerpt';
|
131 |
+
}
|
132 |
+
|
133 |
+
// Add Post Content Support
|
134 |
+
if ( ! in_array( 'editor', $args['supports'] ) ) {
|
135 |
+
$args['supports'][] = 'editor';
|
136 |
+
}
|
137 |
+
|
138 |
+
// Add Post Author Support
|
139 |
+
if ( ! in_array( 'author', $args['supports'] ) ) {
|
140 |
+
$args['supports'][] = 'author';
|
141 |
+
}
|
142 |
+
|
143 |
+
// Add Thumbnail Support
|
144 |
+
if ( ! in_array( 'thumbnail', $args['supports'] ) ) {
|
145 |
+
$args['supports'][] = 'thumbnail';
|
146 |
+
}
|
147 |
+
|
148 |
+
return $args;
|
149 |
+
}
|
150 |
+
|
151 |
+
/**
|
152 |
+
* classic_editor_replace is function that is created by the plugin:
|
153 |
+
*
|
154 |
+
* - https://wordpress.org/plugins/classic-editor/
|
155 |
+
*
|
156 |
+
* @since 4.8
|
157 |
+
*
|
158 |
+
* @return bool
|
159 |
+
*/
|
160 |
+
public function is_classic_plugin_active() {
|
161 |
+
return function_exists( 'classic_editor_replace' );
|
162 |
+
}
|
163 |
+
|
164 |
+
/**
|
165 |
+
* Check if the setting `'classic-editor-replace'` is set to `replace` that option means to
|
166 |
+
* replace the gutenberg editor with the classic editor
|
167 |
+
*
|
168 |
+
* @since 4.8
|
169 |
+
*
|
170 |
+
* @return bool
|
171 |
+
*/
|
172 |
+
public function is_classic_option_active() {
|
173 |
+
return 'replace' === get_option( 'classic-editor-replace' );
|
174 |
+
}
|
175 |
+
|
176 |
+
/**
|
177 |
+
* Detect if is the classic editor is forced activated via plugin or if it comes from a request
|
178 |
+
*
|
179 |
+
* @since 4.8
|
180 |
+
*
|
181 |
+
* @return bool
|
182 |
+
*/
|
183 |
+
public function is_classic_editor() {
|
184 |
+
$disabled_by_plugin = $this->is_classic_plugin_active() && $this->is_classic_option_active();
|
185 |
+
$is_classic_editor_request = tribe_get_request_var( 'classic-editor', null );
|
186 |
+
return $is_classic_editor_request || $disabled_by_plugin;
|
187 |
+
}
|
188 |
+
}
|
common/src/Tribe/Editor/Assets.php
ADDED
@@ -0,0 +1,210 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Events Gutenberg Assets
|
4 |
+
*
|
5 |
+
* @since 4.8
|
6 |
+
*/
|
7 |
+
class Tribe__Editor__Assets {
|
8 |
+
/**
|
9 |
+
*
|
10 |
+
* @since 4.8
|
11 |
+
*
|
12 |
+
* @return void
|
13 |
+
*/
|
14 |
+
public function hook() {
|
15 |
+
add_action( 'wp_loaded', array( $this, 'register' ) );
|
16 |
+
}
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Registers and Enqueues the assets
|
20 |
+
*
|
21 |
+
* @since 4.8
|
22 |
+
*
|
23 |
+
* @param string $key Which key we are checking against
|
24 |
+
*
|
25 |
+
* @return boolean
|
26 |
+
*/
|
27 |
+
public function register() {
|
28 |
+
|
29 |
+
$plugin = Tribe__Main::instance();
|
30 |
+
/** @var Tribe__Editor__Configuration $editor_configuration */
|
31 |
+
$editor_configuration = tribe( 'common.editor.configuration' );
|
32 |
+
|
33 |
+
tribe_asset(
|
34 |
+
$plugin,
|
35 |
+
'tribe-common-gutenberg-data',
|
36 |
+
'app/data.js',
|
37 |
+
/**
|
38 |
+
* @todo revise this dependencies
|
39 |
+
*/
|
40 |
+
array( 'react', 'react-dom', 'wp-components', 'wp-api', 'wp-api-request', 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-editor' ),
|
41 |
+
'enqueue_block_editor_assets',
|
42 |
+
array(
|
43 |
+
'in_footer' => false,
|
44 |
+
'localize' => array(
|
45 |
+
array(
|
46 |
+
'name' => 'tribe_editor_config',
|
47 |
+
/**
|
48 |
+
* Array used to setup the FE with custom variables from the BE
|
49 |
+
*
|
50 |
+
* @since 4.8
|
51 |
+
*
|
52 |
+
* @param array An array with the variables to be localized
|
53 |
+
*/
|
54 |
+
'data' => $editor_configuration->localize(),
|
55 |
+
),
|
56 |
+
),
|
57 |
+
'priority' => 11,
|
58 |
+
)
|
59 |
+
);
|
60 |
+
|
61 |
+
tribe_asset(
|
62 |
+
$plugin,
|
63 |
+
'tribe-common-gutenberg-utils',
|
64 |
+
'app/utils.js',
|
65 |
+
/**
|
66 |
+
* @todo revise this dependencies
|
67 |
+
*/
|
68 |
+
array( 'react', 'react-dom', 'wp-components', 'wp-api', 'wp-api-request', 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-editor' ),
|
69 |
+
'enqueue_block_editor_assets',
|
70 |
+
array(
|
71 |
+
'in_footer' => false,
|
72 |
+
'localize' => array(),
|
73 |
+
'priority' => 12,
|
74 |
+
)
|
75 |
+
);
|
76 |
+
tribe_asset(
|
77 |
+
$plugin,
|
78 |
+
'tribe-common-gutenberg-store',
|
79 |
+
'app/store.js',
|
80 |
+
/**
|
81 |
+
* @todo revise this dependencies
|
82 |
+
*/
|
83 |
+
array( 'react', 'react-dom', 'wp-components', 'wp-api', 'wp-api-request', 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-editor' ),
|
84 |
+
'enqueue_block_editor_assets',
|
85 |
+
array(
|
86 |
+
'in_footer' => false,
|
87 |
+
'localize' => array(),
|
88 |
+
'priority' => 13,
|
89 |
+
)
|
90 |
+
);
|
91 |
+
tribe_asset(
|
92 |
+
$plugin,
|
93 |
+
'tribe-common-gutenberg-icons',
|
94 |
+
'app/icons.js',
|
95 |
+
/**
|
96 |
+
* @todo revise this dependencies
|
97 |
+
*/
|
98 |
+
array( 'react', 'react-dom', 'wp-components', 'wp-api', 'wp-api-request', 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-editor' ),
|
99 |
+
'enqueue_block_editor_assets',
|
100 |
+
array(
|
101 |
+
'in_footer' => false,
|
102 |
+
'localize' => array(),
|
103 |
+
'priority' => 14,
|
104 |
+
)
|
105 |
+
);
|
106 |
+
tribe_asset(
|
107 |
+
$plugin,
|
108 |
+
'tribe-common-gutenberg-hoc',
|
109 |
+
'app/hoc.js',
|
110 |
+
/**
|
111 |
+
* @todo revise this dependencies
|
112 |
+
*/
|
113 |
+
array(
|
114 |
+
'react',
|
115 |
+
'react-dom',
|
116 |
+
'wp-components',
|
117 |
+
'wp-api',
|
118 |
+
'wp-api-request',
|
119 |
+
'wp-blocks',
|
120 |
+
'wp-i18n',
|
121 |
+
'wp-element',
|
122 |
+
'wp-editor',
|
123 |
+
),
|
124 |
+
'enqueue_block_editor_assets',
|
125 |
+
array(
|
126 |
+
'in_footer' => false,
|
127 |
+
'localize' => array(),
|
128 |
+
'priority' => 15,
|
129 |
+
)
|
130 |
+
);
|
131 |
+
tribe_asset(
|
132 |
+
$plugin,
|
133 |
+
'tribe-common-gutenberg-components',
|
134 |
+
'app/components.js',
|
135 |
+
/**
|
136 |
+
* @todo revise this dependencies
|
137 |
+
*/
|
138 |
+
array( 'react', 'react-dom', 'wp-components', 'wp-api', 'wp-api-request', 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-editor' ),
|
139 |
+
'enqueue_block_editor_assets',
|
140 |
+
array(
|
141 |
+
'in_footer' => false,
|
142 |
+
'localize' => array(),
|
143 |
+
'priority' => 16,
|
144 |
+
)
|
145 |
+
);
|
146 |
+
tribe_asset(
|
147 |
+
$plugin,
|
148 |
+
'tribe-common-gutenberg-elements',
|
149 |
+
'app/elements.js',
|
150 |
+
/**
|
151 |
+
* @todo revise this dependencies
|
152 |
+
*/
|
153 |
+
array(
|
154 |
+
'react',
|
155 |
+
'react-dom',
|
156 |
+
'wp-components',
|
157 |
+
'wp-api',
|
158 |
+
'wp-api-request',
|
159 |
+
'wp-blocks',
|
160 |
+
'wp-i18n',
|
161 |
+
'wp-element',
|
162 |
+
'wp-editor',
|
163 |
+
),
|
164 |
+
'enqueue_block_editor_assets',
|
165 |
+
array(
|
166 |
+
'in_footer' => false,
|
167 |
+
'localize' => array(),
|
168 |
+
'priority' => 17,
|
169 |
+
)
|
170 |
+
);
|
171 |
+
/**
|
172 |
+
* @todo: figure out why element styles are loading for tickets but not events.
|
173 |
+
*/
|
174 |
+
tribe_asset(
|
175 |
+
$plugin,
|
176 |
+
'tribe-common-gutenberg-components',
|
177 |
+
'app/components.js',
|
178 |
+
/**
|
179 |
+
* @todo revise this dependencies
|
180 |
+
*/
|
181 |
+
array(
|
182 |
+
'react',
|
183 |
+
'react-dom',
|
184 |
+
'wp-components',
|
185 |
+
'wp-api',
|
186 |
+
'wp-api-request',
|
187 |
+
'wp-blocks',
|
188 |
+
'wp-i18n',
|
189 |
+
'wp-element',
|
190 |
+
'wp-editor',
|
191 |
+
),
|
192 |
+
'enqueue_block_editor_assets',
|
193 |
+
array(
|
194 |
+
'in_footer' => false,
|
195 |
+
'localize' => array(),
|
196 |
+
'priority' => 17,
|
197 |
+
)
|
198 |
+
);
|
199 |
+
tribe_asset(
|
200 |
+
$plugin,
|
201 |
+
'tribe-common-gutenberg-elements-styles',
|
202 |
+
'app/elements.css',
|
203 |
+
array(),
|
204 |
+
'enqueue_block_editor_assets',
|
205 |
+
array(
|
206 |
+
'in_footer' => false,
|
207 |
+
)
|
208 |
+
);
|
209 |
+
}
|
210 |
+
}
|
common/src/Tribe/Editor/Blocks/Abstract.php
ADDED
@@ -0,0 +1,207 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
abstract class Tribe__Editor__Blocks__Abstract
|
4 |
+
implements Tribe__Editor__Blocks__Interface {
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Namespace for Blocks from tribe
|
8 |
+
*
|
9 |
+
* @since 4.8
|
10 |
+
*
|
11 |
+
* @var string
|
12 |
+
*/
|
13 |
+
private $namespace = 'tribe';
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Builds the name of the Block
|
17 |
+
*
|
18 |
+
* @since 4.8
|
19 |
+
*
|
20 |
+
* @return string
|
21 |
+
*/
|
22 |
+
public function name() {
|
23 |
+
if ( false === strpos( $this->slug(), $this->namespace . '/' ) ) {
|
24 |
+
return $this->namespace . '/' . $this->slug();
|
25 |
+
} else {
|
26 |
+
return $this->slug();
|
27 |
+
}
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Return the namespace to child or external sources
|
32 |
+
*
|
33 |
+
* @since 4.8
|
34 |
+
*
|
35 |
+
* @return string
|
36 |
+
*/
|
37 |
+
public function get_namespace() {
|
38 |
+
return $this->namespace;
|
39 |
+
}
|
40 |
+
|
41 |
+
/*
|
42 |
+
* Return the block attributes
|
43 |
+
*
|
44 |
+
* @since 4.8
|
45 |
+
*
|
46 |
+
* @param array $attributes
|
47 |
+
*
|
48 |
+
* @return array
|
49 |
+
*/
|
50 |
+
public function attributes( $params = array() ) {
|
51 |
+
|
52 |
+
// get the default attributes
|
53 |
+
$default_attributes = $this->default_attributes();
|
54 |
+
|
55 |
+
// parse the attributes with the default ones
|
56 |
+
$attributes = wp_parse_args(
|
57 |
+
$params,
|
58 |
+
$default_attributes
|
59 |
+
);
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Filters the default attributes for the block
|
63 |
+
*
|
64 |
+
* @param array $attributes The attributes
|
65 |
+
* @param object $this The current object
|
66 |
+
*/
|
67 |
+
$attributes = apply_filters( 'tribe_block_attributes_defaults_' . $this->slug(), $attributes, $this );
|
68 |
+
|
69 |
+
return $attributes;
|
70 |
+
}
|
71 |
+
|
72 |
+
/*
|
73 |
+
* Return the block default attributes
|
74 |
+
*
|
75 |
+
* @since 4.8
|
76 |
+
*
|
77 |
+
* @param array $attributes
|
78 |
+
*
|
79 |
+
* @return array
|
80 |
+
*/
|
81 |
+
public function default_attributes() {
|
82 |
+
|
83 |
+
$attributes = array();
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Filters the default attributes
|
87 |
+
*
|
88 |
+
* @param array $params The attributes
|
89 |
+
* @param object $this The current object
|
90 |
+
*/
|
91 |
+
$attributes = apply_filters( 'tribe_block_attributes_defaults', $attributes, $this );
|
92 |
+
|
93 |
+
return $attributes;
|
94 |
+
}
|
95 |
+
|
96 |
+
/**
|
97 |
+
* Since we are dealing with a Dynamic type of Block we need a PHP method to render it
|
98 |
+
*
|
99 |
+
* @since 4.8
|
100 |
+
*
|
101 |
+
* @param array $attributes
|
102 |
+
*
|
103 |
+
* @return string
|
104 |
+
*/
|
105 |
+
public function render( $attributes = array() ) {
|
106 |
+
if ( version_compare( phpversion(), '5.4', '>=' ) ) {
|
107 |
+
$json_string = json_encode( $attributes, JSON_PRETTY_PRINT );
|
108 |
+
} else {
|
109 |
+
$json_string = json_encode( $attributes );
|
110 |
+
}
|
111 |
+
|
112 |
+
return
|
113 |
+
'<pre class="tribe-placeholder-text-' . $this->name() . '">' .
|
114 |
+
'Block Name: ' . $this->name() . "\n" .
|
115 |
+
'Block Attributes: ' . "\n" . $json_string .
|
116 |
+
'</pre>';
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Sends a valid JSON response to the AJAX request for the block contents
|
121 |
+
*
|
122 |
+
* @since 4.8
|
123 |
+
*
|
124 |
+
* @return void
|
125 |
+
*/
|
126 |
+
public function ajax() {
|
127 |
+
wp_send_json_error( esc_attr__( 'Problem loading the block, please remove this block to restart.', 'tribe-common' ) );
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Does the registration for PHP rendering for the Block, important due to been
|
132 |
+
* an dynamic Block
|
133 |
+
*
|
134 |
+
* @since 4.8
|
135 |
+
*
|
136 |
+
* @return void
|
137 |
+
*/
|
138 |
+
public function register() {
|
139 |
+
$block_args = array(
|
140 |
+
'render_callback' => array( $this, 'render' ),
|
141 |
+
);
|
142 |
+
|
143 |
+
register_block_type( $this->name(), $block_args );
|
144 |
+
|
145 |
+
add_action( 'wp_ajax_' . $this->get_ajax_action(), array( $this, 'ajax' ) );
|
146 |
+
|
147 |
+
$this->assets();
|
148 |
+
$this->hook();
|
149 |
+
}
|
150 |
+
|
151 |
+
/**
|
152 |
+
* Determine whether a post or content string has this block.
|
153 |
+
*
|
154 |
+
* This test optimizes for performance rather than strict accuracy, detecting
|
155 |
+
* the pattern of a block but not validating its structure. For strict accuracy
|
156 |
+
* you should use the block parser on post content.
|
157 |
+
*
|
158 |
+
* @since 4.8
|
159 |
+
*
|
160 |
+
* @see gutenberg_parse_blocks()
|
161 |
+
*
|
162 |
+
* @param int|string|WP_Post|null $post Optional. Post content, post ID, or post object. Defaults to global $post.
|
163 |
+
*
|
164 |
+
* @return bool Whether the post has this block.
|
165 |
+
*/
|
166 |
+
public function has_block( $post = null ) {
|
167 |
+
if ( ! is_numeric( $post ) ) {
|
168 |
+
$wp_post = get_post( $post );
|
169 |
+
if ( $wp_post instanceof WP_Post ) {
|
170 |
+
$post = $wp_post->post_content;
|
171 |
+
}
|
172 |
+
}
|
173 |
+
|
174 |
+
return false !== strpos( (string) $post, '<!-- wp:' . $this->name() );
|
175 |
+
}
|
176 |
+
|
177 |
+
/**
|
178 |
+
* Fetches the name for the block we are working with and converts it to the
|
179 |
+
* correct `wp_ajax_{$action}` string for us to Hook
|
180 |
+
*
|
181 |
+
* @since 4.8
|
182 |
+
*
|
183 |
+
* @return string
|
184 |
+
*/
|
185 |
+
public function get_ajax_action() {
|
186 |
+
return str_replace( 'tribe/', 'tribe_editor_block_', $this->name() );
|
187 |
+
}
|
188 |
+
|
189 |
+
/**
|
190 |
+
* Used to include any Assets for the Block we are registering
|
191 |
+
*
|
192 |
+
* @since 4.8
|
193 |
+
*
|
194 |
+
* @return void
|
195 |
+
*/
|
196 |
+
public function assets() {
|
197 |
+
}
|
198 |
+
|
199 |
+
/**
|
200 |
+
* Attach any particular hook for the specif block.
|
201 |
+
*
|
202 |
+
* @since 4.8
|
203 |
+
*/
|
204 |
+
public function hook() {
|
205 |
+
}
|
206 |
+
}
|
207 |
+
|
common/src/Tribe/Editor/Blocks/Interface.php
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
interface Tribe__Editor__Blocks__Interface {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Which is the name/slug of this block
|
7 |
+
*
|
8 |
+
* @since 4.8
|
9 |
+
*
|
10 |
+
* @return string
|
11 |
+
*/
|
12 |
+
public function slug();
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Which is the name/slug of this block
|
16 |
+
*
|
17 |
+
* @since 4.8
|
18 |
+
*
|
19 |
+
* @return string
|
20 |
+
*/
|
21 |
+
public function name();
|
22 |
+
|
23 |
+
/**
|
24 |
+
* What are the default attributes for this block
|
25 |
+
*
|
26 |
+
* @since 4.8
|
27 |
+
*
|
28 |
+
* @return array
|
29 |
+
*/
|
30 |
+
public function default_attributes();
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Since we are dealing with a Dynamic type of Block we need a PHP method to render it
|
34 |
+
*
|
35 |
+
* @since 4.8
|
36 |
+
*
|
37 |
+
* @param array $attributes
|
38 |
+
*
|
39 |
+
* @return string
|
40 |
+
*/
|
41 |
+
public function render( $attributes = array() );
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Does the registration for PHP rendering for the Block, important due to been
|
45 |
+
* an dynamic Block
|
46 |
+
*
|
47 |
+
* @since 4.8
|
48 |
+
*
|
49 |
+
* @return void
|
50 |
+
*/
|
51 |
+
public function register();
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Used to include any Assets for the Block we are registering
|
55 |
+
*
|
56 |
+
* @since 4.8
|
57 |
+
*
|
58 |
+
* @return void
|
59 |
+
*/
|
60 |
+
public function assets();
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Attach any specific hook to the current block.
|
64 |
+
*
|
65 |
+
* @since 4.8
|
66 |
+
*
|
67 |
+
* @return mixed
|
68 |
+
*/
|
69 |
+
public function hook();
|
70 |
+
}
|
common/src/Tribe/Editor/Configuration.php
ADDED
@@ -0,0 +1,105 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class Tribe__Editor__Configuration
|
5 |
+
*
|
6 |
+
* setup the configuration variables used on the editor
|
7 |
+
*
|
8 |
+
* @since 4.8
|
9 |
+
*/
|
10 |
+
class Tribe__Editor__Configuration implements Tribe__Editor__Configuration_Interface {
|
11 |
+
/**
|
12 |
+
* Localize variables that are part of common
|
13 |
+
*
|
14 |
+
* @since 4.8
|
15 |
+
*
|
16 |
+
* @return array
|
17 |
+
*/
|
18 |
+
public function localize() {
|
19 |
+
$editor_config = array(
|
20 |
+
'common' => array(
|
21 |
+
'adminUrl' => admin_url(),
|
22 |
+
'timeZone' => array(
|
23 |
+
'showTimeZone' => false,
|
24 |
+
'label' => $this->get_timezone_label(),
|
25 |
+
),
|
26 |
+
'rest' => array(
|
27 |
+
'url' => get_rest_url(),
|
28 |
+
'nonce' => array(
|
29 |
+
'wp_rest' => wp_create_nonce( 'wp_rest' ),
|
30 |
+
),
|
31 |
+
'namespaces' => array(
|
32 |
+
'core' => 'wp/v2',
|
33 |
+
),
|
34 |
+
),
|
35 |
+
'dateSettings' => array( $this, 'get_date_settings' ),
|
36 |
+
'constants' => array(
|
37 |
+
'hideUpsell' => ( defined( 'TRIBE_HIDE_UPSELL' ) && TRIBE_HIDE_UPSELL ),
|
38 |
+
),
|
39 |
+
'countries' => tribe( 'languages.locations' )->get_countries(),
|
40 |
+
'usStates' => Tribe__View_Helpers::loadStates(),
|
41 |
+
),
|
42 |
+
);
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Filter the default configuration used to localize variables
|
46 |
+
*
|
47 |
+
* @since 4.8
|
48 |
+
*
|
49 |
+
* array $editor_config An associative array with the configuration to be send into the client
|
50 |
+
*/
|
51 |
+
return apply_filters( 'tribe_editor_config', $editor_config );
|
52 |
+
}
|
53 |
+
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Returns the site timezone as a string
|
57 |
+
*
|
58 |
+
* @since 4.8
|
59 |
+
*
|
60 |
+
* @return string
|
61 |
+
*/
|
62 |
+
public function get_timezone_label() {
|
63 |
+
return class_exists( 'Tribe__Timezones' )
|
64 |
+
? Tribe__Timezones::wp_timezone_string()
|
65 |
+
: get_option( 'timezone_string', 'UTC' );
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Get Localization data for Date settings
|
70 |
+
*
|
71 |
+
* @since 4.8
|
72 |
+
*
|
73 |
+
* @return array
|
74 |
+
*/
|
75 |
+
public function get_date_settings() {
|
76 |
+
global $wp_locale;
|
77 |
+
|
78 |
+
return array(
|
79 |
+
'l10n' => array(
|
80 |
+
'locale' => get_user_locale(),
|
81 |
+
'months' => array_values( $wp_locale->month ),
|
82 |
+
'monthsShort' => array_values( $wp_locale->month_abbrev ),
|
83 |
+
'weekdays' => array_values( $wp_locale->weekday ),
|
84 |
+
'weekdaysShort' => array_values( $wp_locale->weekday_abbrev ),
|
85 |
+
'meridiem' => (object) $wp_locale->meridiem,
|
86 |
+
'relative' => array(
|
87 |
+
/* translators: %s: duration */
|
88 |
+
'future' => __( '%s from now', 'default' ),
|
89 |
+
/* translators: %s: duration */
|
90 |
+
'past' => __( '%s ago', 'default' ),
|
91 |
+
),
|
92 |
+
),
|
93 |
+
'formats' => array(
|
94 |
+
'time' => get_option( 'time_format', __( 'g:i a', 'default' ) ),
|
95 |
+
'date' => get_option( 'date_format', __( 'F j, Y', 'default' ) ),
|
96 |
+
'dateNoYear' => __( 'F j', 'default' ),
|
97 |
+
'datetime' => __( 'F j, Y g:i a', 'default' ),
|
98 |
+
),
|
99 |
+
'timezone' => array(
|
100 |
+
'offset' => get_option( 'gmt_offset', 0 ),
|
101 |
+
'string' => $this->get_timezone_label(),
|
102 |
+
),
|
103 |
+
);
|
104 |
+
}
|
105 |
+
}
|
common/src/Tribe/Editor/Configuration_Interface.php
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Interface Tribe__Editor__Configuration_Interface
|
5 |
+
*
|
6 |
+
* @since 4.8
|
7 |
+
*/
|
8 |
+
interface Tribe__Editor__Configuration_Interface {
|
9 |
+
/**
|
10 |
+
* Return an array to be localize
|
11 |
+
*
|
12 |
+
* @since 4.8
|
13 |
+
*
|
14 |
+
* @return array
|
15 |
+
*/
|
16 |
+
public function localize();
|
17 |
+
}
|
common/src/Tribe/Editor/Meta.php
ADDED
@@ -0,0 +1,217 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class Tribe__Editor__Meta
|
5 |
+
*
|
6 |
+
* @since 4.8
|
7 |
+
*/
|
8 |
+
abstract class Tribe__Editor__Meta
|
9 |
+
implements Tribe__Editor__Meta_Interface {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Default definition for an attribute of type text
|
13 |
+
*
|
14 |
+
* @since 4.8
|
15 |
+
*
|
16 |
+
* @return array
|
17 |
+
*/
|
18 |
+
protected function text() {
|
19 |
+
return array(
|
20 |
+
'auth_callback' => array( $this, 'auth_callback' ),
|
21 |
+
'sanitize_callback' => 'sanitize_text_field',
|
22 |
+
'type' => 'string',
|
23 |
+
'single' => true,
|
24 |
+
'show_in_rest' => true,
|
25 |
+
);
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Add arguments to escape a text area field
|
30 |
+
*
|
31 |
+
* @since 4.8
|
32 |
+
*
|
33 |
+
* @return array
|
34 |
+
*/
|
35 |
+
protected function textarea() {
|
36 |
+
return array(
|
37 |
+
'auth_callback' => array( $this, 'auth_callback' ),
|
38 |
+
'sanitize_callback' => 'sanitize_textarea_field',
|
39 |
+
'type' => 'string',
|
40 |
+
'single' => true,
|
41 |
+
'show_in_rest' => true,
|
42 |
+
);
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Add arguments to escape a field of URL type
|
47 |
+
*
|
48 |
+
* @since 4.8
|
49 |
+
*
|
50 |
+
* @return array
|
51 |
+
*/
|
52 |
+
protected function url() {
|
53 |
+
return array(
|
54 |
+
'auth_callback' => array( $this, 'auth_callback' ),
|
55 |
+
'sanitize_callback' => 'esc_url_raw',
|
56 |
+
'type' => 'string',
|
57 |
+
'single' => true,
|
58 |
+
'show_in_rest' => true,
|
59 |
+
);
|
60 |
+
}
|
61 |
+
|
62 |
+
/**
|
63 |
+
* Default definition for an attribute of type text
|
64 |
+
*
|
65 |
+
* @since 4.8
|
66 |
+
*
|
67 |
+
* @return array
|
68 |
+
*/
|
69 |
+
protected function numeric() {
|
70 |
+
return array(
|
71 |
+
'auth_callback' => array( $this, 'auth_callback' ),
|
72 |
+
'sanitize_callback' => 'absint',
|
73 |
+
'type' => 'number',
|
74 |
+
'single' => true,
|
75 |
+
'show_in_rest' => true,
|
76 |
+
);
|
77 |
+
}
|
78 |
+
|
79 |
+
/***
|
80 |
+
* Default definition for an attribute of type boolean
|
81 |
+
*
|
82 |
+
* @since 4.8
|
83 |
+
*
|
84 |
+
* @return array
|
85 |
+
*/
|
86 |
+
protected function boolean() {
|
87 |
+
return array(
|
88 |
+
'auth_callback' => array( $this, 'auth_callback' ),
|
89 |
+
'sanitize_callback' => array( $this, 'sanitize_boolean' ),
|
90 |
+
'type' => 'boolean',
|
91 |
+
'single' => true,
|
92 |
+
'show_in_rest' => true,
|
93 |
+
);
|
94 |
+
}
|
95 |
+
|
96 |
+
/**
|
97 |
+
* Register a numeric type of array
|
98 |
+
*
|
99 |
+
* @since 4.8
|
100 |
+
*
|
101 |
+
* @return array
|
102 |
+
*/
|
103 |
+
protected function numeric_array() {
|
104 |
+
return array(
|
105 |
+
'description' => __( 'Numeric Array', 'tribe-common' ),
|
106 |
+
'auth_callback' => array( $this, 'auth_callback' ),
|
107 |
+
'sanitize_callback' => array( $this, 'sanitize_numeric_array' ),
|
108 |
+
'type' => 'number',
|
109 |
+
'single' => false,
|
110 |
+
'show_in_rest' => true,
|
111 |
+
);
|
112 |
+
}
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Register a text type of array
|
116 |
+
*
|
117 |
+
* @since 4.8
|
118 |
+
*
|
119 |
+
* @return array
|
120 |
+
*/
|
121 |
+
protected function text_array() {
|
122 |
+
return array(
|
123 |
+
'description' => __( 'Text Array', 'tribe-common' ),
|
124 |
+
'auth_callback' => array( $this, 'auth_callback' ),
|
125 |
+
'sanitize_callback' => array( $this, 'sanitize_text_array' ),
|
126 |
+
'type' => 'string',
|
127 |
+
'single' => false,
|
128 |
+
'show_in_rest' => true,
|
129 |
+
);
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* Sanitize an array of text
|
134 |
+
*
|
135 |
+
* @since 4.8
|
136 |
+
*
|
137 |
+
* @param $value
|
138 |
+
*
|
139 |
+
* @return array
|
140 |
+
*/
|
141 |
+
public function sanitize_text_array( $value ) {
|
142 |
+
if ( is_array( $value ) ) {
|
143 |
+
return array_map( 'sanitize_text_field', $value );
|
144 |
+
} else {
|
145 |
+
return sanitize_text_field( $value );
|
146 |
+
}
|
147 |
+
}
|
148 |
+
|
149 |
+
/**
|
150 |
+
* Checks and sanitize a given value to a numeric array or a numeric string
|
151 |
+
*
|
152 |
+
* @since 4.8
|
153 |
+
*
|
154 |
+
* @param mixed $value Check agains this value
|
155 |
+
*
|
156 |
+
* @return array|bool|int
|
157 |
+
*/
|
158 |
+
public function sanitize_numeric_array( $value ) {
|
159 |
+
if ( is_array( $value ) ) {
|
160 |
+
return wp_parse_id_list( $value );
|
161 |
+
} elseif ( is_numeric( $value ) ) {
|
162 |
+
return absint( $value );
|
163 |
+
} else {
|
164 |
+
return false;
|
165 |
+
}
|
166 |
+
}
|
167 |
+
|
168 |
+
/**
|
169 |
+
* Make sure sanitization on boolean does not triggered warnings when multiple values are passed
|
170 |
+
* to the function
|
171 |
+
*
|
172 |
+
* @since 4.8
|
173 |
+
*
|
174 |
+
* @param $value
|
175 |
+
*
|
176 |
+
* @return bool
|
177 |
+
*/
|
178 |
+
public function sanitize_boolean( $value ) {
|
179 |
+
return boolval( $value );
|
180 |
+
}
|
181 |
+
|
182 |
+
/**
|
183 |
+
* Sanitize strings allowing the usage of white spaces before or after the separators, as
|
184 |
+
* - sanitize_text_field removes any whitespace
|
185 |
+
*
|
186 |
+
* @since 4.8
|
187 |
+
*
|
188 |
+
* @param $value
|
189 |
+
*
|
190 |
+
* @return mixed
|
191 |
+
*/
|
192 |
+
public function sanitize_separator( $value ) {
|
193 |
+
return filter_var( $value, FILTER_SANITIZE_STRING );
|
194 |
+
}
|
195 |
+
|
196 |
+
/**
|
197 |
+
* Verify if the current user can edit or not this Post
|
198 |
+
*
|
199 |
+
* @since 4.8
|
200 |
+
*
|
201 |
+
* @param bool $allowed Whether the user can add the post meta. Default false.
|
202 |
+
* @param string $meta_key The meta key.
|
203 |
+
* @param int $post_id Post ID.
|
204 |
+
* @param int $user_id User ID.
|
205 |
+
* @param string $cap Capability name.
|
206 |
+
* @param array $caps User capabilities.
|
207 |
+
*
|
208 |
+
* @return boolean
|
209 |
+
*/
|
210 |
+
public function auth_callback( $allowed, $meta_key, $post_id, $user_id, $cap, $caps ) {
|
211 |
+
$post = get_post( $post_id );
|
212 |
+
$post_type_obj = get_post_type_object( $post->post_type );
|
213 |
+
$current_user_can = current_user_can( $post_type_obj->cap->edit_post, $post_id );
|
214 |
+
|
215 |
+
return $current_user_can;
|
216 |
+
}
|
217 |
+
}
|
common/src/Tribe/Editor/Meta_Interface.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Interface Tribe__Editor__Meta_Interface
|
5 |
+
*
|
6 |
+
* @since 4.8
|
7 |
+
*/
|
8 |
+
interface Tribe__Editor__Meta_Interface {
|
9 |
+
/**
|
10 |
+
* @since 4.8
|
11 |
+
*
|
12 |
+
* @return mixed
|
13 |
+
*/
|
14 |
+
public function register();
|
15 |
+
}
|
common/src/Tribe/Editor/Provider.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Tribe__Editor__Provider extends tad_DI52_ServiceProvider {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Binds and sets up implementations.
|
7 |
+
*
|
8 |
+
* @since 4.8
|
9 |
+
*
|
10 |
+
*/
|
11 |
+
public function register() {
|
12 |
+
// Setup to check if gutenberg is active
|
13 |
+
$this->container->singleton( 'editor', 'Tribe__Editor' );
|
14 |
+
$this->container->singleton( 'editor.utils', 'Tribe__Editor__Utils' );
|
15 |
+
$this->container->singleton( 'common.editor.configuration', 'Tribe__Editor__Configuration' );
|
16 |
+
|
17 |
+
if ( ! tribe( 'editor' )->should_load_blocks() ) {
|
18 |
+
return;
|
19 |
+
}
|
20 |
+
|
21 |
+
$this->container->singleton( 'editor.assets', 'Tribe__Editor__Assets', array( 'hook' ) );
|
22 |
+
|
23 |
+
$this->hook();
|
24 |
+
|
25 |
+
// Initialize the correct Singletons
|
26 |
+
tribe( 'editor.assets' );
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Any hooking any class needs happen here.
|
31 |
+
*
|
32 |
+
* In place of delegating the hooking responsibility to the single classes they are all hooked here.
|
33 |
+
*
|
34 |
+
* @since 4.8
|
35 |
+
*
|
36 |
+
*/
|
37 |
+
protected function hook() {
|
38 |
+
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Binds and sets up implementations at boot time.
|
43 |
+
*
|
44 |
+
* @since 4.8
|
45 |
+
*/
|
46 |
+
public function boot() {
|
47 |
+
// no ops
|
48 |
+
}
|
49 |
+
}
|
common/src/Tribe/Editor/Utils.php
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Events Gutenberg Utils
|
5 |
+
*
|
6 |
+
* @since 4.8
|
7 |
+
*/
|
8 |
+
class Tribe__Editor__Utils {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Adds the required prefix of a tribe block with the wp: prefix as well and escaped.
|
12 |
+
*
|
13 |
+
* @since 4.8
|
14 |
+
*
|
15 |
+
* @param string $name
|
16 |
+
*
|
17 |
+
* @return string
|
18 |
+
*/
|
19 |
+
public function to_tribe_block_name( $name = '' ) {
|
20 |
+
return 'wp:tribe\/' . $name;
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Remove all invalid characters in string that are used to set the name of a block
|
25 |
+
*
|
26 |
+
* @since 4.8
|
27 |
+
*
|
28 |
+
* @param string $name
|
29 |
+
*
|
30 |
+
* @return string
|
31 |
+
*/
|
32 |
+
public function to_block_name( $name = '' ) {
|
33 |
+
return preg_replace( '/[^a-zA-Z0-9-]/', '', $name );
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Replaces the content of a post where a block is located, removes the space before and after on the same line where
|
38 |
+
* the block is located, it replaces the content of the block with an empty string
|
39 |
+
*
|
40 |
+
* @since 4.8
|
41 |
+
*
|
42 |
+
* @param $post_id
|
43 |
+
* @param string $block_name
|
44 |
+
*
|
45 |
+
* @return bool
|
46 |
+
*/
|
47 |
+
public function remove_block( $post_id, $block_name = '' ) {
|
48 |
+
$content = get_post_field( 'post_content', $post_id );
|
49 |
+
|
50 |
+
if ( empty( $content ) ) {
|
51 |
+
return false;
|
52 |
+
}
|
53 |
+
|
54 |
+
$args = array(
|
55 |
+
'ID' => $post_id,
|
56 |
+
'post_content' => preg_replace(
|
57 |
+
'/^\s*<!-- ' . $block_name . ' .* \/-->\s*$/gm',
|
58 |
+
'',
|
59 |
+
$content
|
60 |
+
),
|
61 |
+
);
|
62 |
+
|
63 |
+
return wp_update_post( $args );
|
64 |
+
}
|
65 |
+
}
|
common/src/Tribe/Exception.php
CHANGED
@@ -87,4 +87,4 @@ class Tribe__Exception extends Exception {
|
|
87 |
|
88 |
return true;
|
89 |
}
|
90 |
-
}
|
87 |
|
88 |
return true;
|
89 |
}
|
90 |
+
}
|
common/src/Tribe/Field_Conditional.php
CHANGED
@@ -76,4 +76,4 @@ class Tribe__Field_Conditional {
|
|
76 |
public function depends_on() {
|
77 |
return $this->depends_on;
|
78 |
}
|
79 |
-
}
|
76 |
public function depends_on() {
|
77 |
return $this->depends_on;
|
78 |
}
|
79 |
+
}
|
common/src/Tribe/Languages/Map_Interface.php
CHANGED
@@ -29,4 +29,4 @@ interface Tribe__Languages__Map_Interface {
|
|
29 |
* @return string|false The converted language code or `false` if the language code is not supported.
|
30 |
*/
|
31 |
public function convert_language_code( $language_code );
|
32 |
-
}
|
29 |
* @return string|false The converted language code or `false` if the language code is not supported.
|
30 |
*/
|
31 |
public function convert_language_code( $language_code );
|
32 |
+
}
|
common/src/Tribe/Languages/Recaptcha_Map.php
CHANGED
@@ -122,4 +122,4 @@ class Tribe__Languages__Recaptcha_Map implements Tribe__Languages__Map_Interface
|
|
122 |
|
123 |
return $converted_code ? $converted_code : false;
|
124 |
}
|
125 |
-
}
|
122 |
|
123 |
return $converted_code ? $converted_code : false;
|
124 |
}
|
125 |
+
}
|
common/src/Tribe/Log.php
CHANGED
@@ -420,4 +420,4 @@ class Tribe__Log {
|
|
420 |
$this->prioritized_levels[ $level_data[ 0 ] ] = $index;
|
421 |
}
|
422 |
}
|
423 |
-
}
|
420 |
$this->prioritized_levels[ $level_data[ 0 ] ] = $index;
|
421 |
}
|
422 |
}
|
423 |
+
}
|
common/src/Tribe/Log/Admin.php
CHANGED
@@ -267,4 +267,4 @@ class Tribe__Log__Admin {
|
|
267 |
protected function current_logger() {
|
268 |
return tribe( 'logger' )->get_current_logger();
|
269 |
}
|
270 |
-
}
|
267 |
protected function current_logger() {
|
268 |
return tribe( 'logger' )->get_current_logger();
|
269 |
}
|
270 |
+
}
|
common/src/Tribe/Log/Logger.php
CHANGED
@@ -85,4 +85,4 @@ interface Tribe__Log__Logger {
|
|
85 |
* whenever it is called.
|
86 |
*/
|
87 |
public function cleanup();
|
88 |
-
}
|
85 |
* whenever it is called.
|
86 |
*/
|
87 |
public function cleanup();
|
88 |
+
}
|
common/src/Tribe/Log/Null_Logger.php
CHANGED
@@ -103,4 +103,4 @@ class Tribe__Log__Null_Logger implements Tribe__Log__Logger {
|
|
103 |
public function cleanup() {
|
104 |
// no-op
|
105 |
}
|
106 |
-
}
|
103 |
public function cleanup() {
|
104 |
// no-op
|
105 |
}
|
106 |
+
}
|
common/src/Tribe/Main.php
CHANGED
@@ -17,7 +17,7 @@ class Tribe__Main {
|
|
17 |
const OPTIONNAME = 'tribe_events_calendar_options';
|
18 |
const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
|
19 |
|
20 |
-
const VERSION = '4.
|
21 |
|
22 |
const FEED_URL = 'https://theeventscalendar.com/feed/';
|
23 |
|
@@ -541,6 +541,8 @@ class Tribe__Main {
|
|
541 |
|
542 |
tribe_singleton( 'admin.notice.php.version', 'Tribe__Admin__Notice__Php_Version', array( 'hook' ) );
|
543 |
tribe_singleton( 'admin.notice.marketing', 'Tribe__Admin__Notice__Marketing', array( 'hook' ) );
|
|
|
|
|
544 |
}
|
545 |
|
546 |
/************************
|
17 |
const OPTIONNAME = 'tribe_events_calendar_options';
|
18 |
const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
|
19 |
|
20 |
+
const VERSION = '4.8';
|
21 |
|
22 |
const FEED_URL = 'https://theeventscalendar.com/feed/';
|
23 |
|
541 |
|
542 |
tribe_singleton( 'admin.notice.php.version', 'Tribe__Admin__Notice__Php_Version', array( 'hook' ) );
|
543 |
tribe_singleton( 'admin.notice.marketing', 'Tribe__Admin__Notice__Marketing', array( 'hook' ) );
|
544 |
+
|
545 |
+
tribe_register_provider( 'Tribe__Editor__Provider' );
|
546 |
}
|
547 |
|
548 |
/************************
|
common/src/Tribe/PUE/Notices.php
CHANGED
@@ -197,6 +197,50 @@ class Tribe__PUE__Notices {
|
|
197 |
}
|
198 |
}
|
199 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
/**
|
201 |
* Generate a notice listing any plugins for which license keys have been entered but
|
202 |
* are invalid (in the sense of not matching PUE server records or having been revoked
|
@@ -208,6 +252,19 @@ class Tribe__PUE__Notices {
|
|
208 |
public function render_invalid_key() {
|
209 |
global $pagenow;
|
210 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
211 |
if ( 'plugins.php' === $pagenow && ! empty( $this->notices[ self::EXPIRED_KEY ] ) ) {
|
212 |
return;
|
213 |
}
|
197 |
}
|
198 |
}
|
199 |
|
200 |
+
/**
|
201 |
+
* Select all products with empty license keys
|
202 |
+
* and format their names
|
203 |
+
*
|
204 |
+
* This information will be used to remove products
|
205 |
+
* with no license keys from $this->notices['invalid_key']
|
206 |
+
*
|
207 |
+
* @since 4.8
|
208 |
+
*
|
209 |
+
* @return array
|
210 |
+
*/
|
211 |
+
public function select_empty_keys() {
|
212 |
+
/** @var $wpdb */
|
213 |
+
global $wpdb;
|
214 |
+
|
215 |
+
$sql = "
|
216 |
+
SELECT option_name
|
217 |
+
FROM {$wpdb->options}
|
218 |
+
WHERE option_name LIKE 'pue_install_key_%'
|
219 |
+
AND option_value=''
|
220 |
+
";
|
221 |
+
|
222 |
+
$empty_keys = $wpdb->get_results( $sql, ARRAY_N );
|
223 |
+
|
224 |
+
$plugin_names = array(
|
225 |
+
'pue_install_key_event_tickets_plus' => 'Event Tickets Plus',
|
226 |
+
'pue_install_key_events_community' => 'The Events Calendar: Community Events',
|
227 |
+
'pue_install_key_events_community_tickets' => 'The Events Calendar: Community Events Tickets',
|
228 |
+
'pue_install_key_image_widget_plus' => 'Image Widget Plus',
|
229 |
+
'pue_install_key_tribe_eventbrite' => 'The Events Calendar: Eventbrite Tickets',
|
230 |
+
'pue_install_key_tribe_filterbar' => 'The Events Calendar: Filter Bar',
|
231 |
+
'pue_install_key_event_aggregator' => 'Event Aggregator',
|
232 |
+
'pue_install_key_events_calendar_pro' => 'The Events Calendar PRO',
|
233 |
+
);
|
234 |
+
|
235 |
+
$formatted_empty_keys = array();
|
236 |
+
foreach ( $empty_keys as $empty_key ) {
|
237 |
+
$empty_key = Tribe__Utils__Array::get( $empty_key, [ 0 ] );
|
238 |
+
$formatted_empty_keys[] = Tribe__Utils__Array::get( $plugin_names, $empty_key );
|
239 |
+
}
|
240 |
+
|
241 |
+
return $formatted_empty_keys;
|
242 |
+
}
|
243 |
+
|
244 |
/**
|
245 |
* Generate a notice listing any plugins for which license keys have been entered but
|
246 |
* are invalid (in the sense of not matching PUE server records or having been revoked
|
252 |
public function render_invalid_key() {
|
253 |
global $pagenow;
|
254 |
|
255 |
+
$empty_keys = $this->select_empty_keys();
|
256 |
+
|
257 |
+
if ( empty( $empty_keys ) ) {
|
258 |
+
return;
|
259 |
+
}
|
260 |
+
|
261 |
+
// Remove the invalid_key notice for products with an empty license key
|
262 |
+
foreach ( $empty_keys as $empty_key ) {
|
263 |
+
if ( array_key_exists( $empty_key, $this->notices['invalid_key'] ) ) {
|
264 |
+
unset( $this->notices['invalid_key'][ $empty_key ] );
|
265 |
+
}
|
266 |
+
}
|
267 |
+
|
268 |
if ( 'plugins.php' === $pagenow && ! empty( $this->notices[ self::EXPIRED_KEY ] ) ) {
|
269 |
return;
|
270 |
}
|
common/src/Tribe/Post_History.php
CHANGED
@@ -131,4 +131,4 @@ class Tribe__Post_History {
|
|
131 |
|
132 |
return $deleted;
|
133 |
}
|
134 |
-
}
|
131 |
|
132 |
return $deleted;
|
133 |
}
|
134 |
+
}
|
common/src/Tribe/REST/Endpoints/CREATE_Endpoint_Interface.php
CHANGED
@@ -26,4 +26,4 @@ interface Tribe__REST__Endpoints__CREATE_Endpoint_Interface {
|
|
26 |
* @return bool Whether the current user can post or not.
|
27 |
*/
|
28 |
public function can_create();
|
29 |
-
}
|
26 |
* @return bool Whether the current user can post or not.
|
27 |
*/
|
28 |
public function can_create();
|
29 |
+
}
|
common/src/Tribe/REST/Endpoints/READ_Endpoint_Interface.php
CHANGED
@@ -19,4 +19,4 @@ interface Tribe__REST__Endpoints__READ_Endpoint_Interface {
|
|
19 |
* @return array
|
20 |
*/
|
21 |
public function READ_args();
|
22 |
-
}
|
19 |
* @return array
|
20 |
*/
|
21 |
public function READ_args();
|
22 |
+
}
|
common/src/Tribe/REST/Endpoints/UPDATE_Endpoint_Interface.php
CHANGED
@@ -25,4 +25,4 @@ interface Tribe__REST__Endpoints__UPDATE_Endpoint_Interface {
|
|
25 |
* @return bool Whether the current user can update or not.
|
26 |
*/
|
27 |
public function can_edit();
|
28 |
-
}
|
25 |
* @return bool Whether the current user can update or not.
|
26 |
*/
|
27 |
public function can_edit();
|
28 |
+
}
|
common/src/Tribe/REST/Exceptions/Exception.php
CHANGED
@@ -22,4 +22,4 @@ class Tribe__REST__Exceptions__Exception extends Exception {
|
|
22 |
public function getStatus() {
|
23 |
return $this->status;
|
24 |
}
|
25 |
-
}
|
22 |
public function getStatus() {
|
23 |
return $this->status;
|
24 |
}
|
25 |
+
}
|
common/src/Tribe/REST/Headers/Base_Header.php
CHANGED
@@ -16,4 +16,4 @@ abstract class Tribe__REST__Headers__Base_Header {
|
|
16 |
public function __construct( Tribe__REST__Headers__Base_Interface $base ) {
|
17 |
$this->base = $base;
|
18 |
}
|
19 |
-
}
|
16 |
public function __construct( Tribe__REST__Headers__Base_Interface $base ) {
|
17 |
$this->base = $base;
|
18 |
}
|
19 |
+
}
|
common/src/Tribe/REST/Headers/Base_Interface.php
CHANGED
@@ -46,4 +46,4 @@ interface Tribe__REST__Headers__Base_Interface {
|
|
46 |
* @return string
|
47 |
*/
|
48 |
public function get_api_origin_header();
|
49 |
-
}
|
46 |
* @return string
|
47 |
*/
|
48 |
public function get_api_origin_header();
|
49 |
+
}
|
common/src/Tribe/REST/Headers/Disabled.php
CHANGED
@@ -20,4 +20,4 @@ class Tribe__REST__Headers__Disabled extends Tribe__REST__Headers__Base_Header i
|
|
20 |
|
21 |
header( $this->base->get_api_version_header() . ': disabled' );
|
22 |
}
|
23 |
-
}
|
20 |
|
21 |
header( $this->base->get_api_version_header() . ': disabled' );
|
22 |
}
|
23 |
+
}
|
common/src/Tribe/REST/Headers/Headers_Interface.php
CHANGED
@@ -15,4 +15,4 @@ interface Tribe__REST__Headers__Headers_Interface {
|
|
15 |
* Sends the REST API related headers.
|
16 |
*/
|
17 |
public function send_header();
|
18 |
-
}
|
15 |
* Sends the REST API related headers.
|
16 |
*/
|
17 |
public function send_header();
|
18 |
+
}
|
common/src/Tribe/REST/Headers/Supported.php
CHANGED
@@ -46,4 +46,4 @@ class Tribe__REST__Headers__Supported extends Tribe__REST__Headers__Base_Header
|
|
46 |
header( $this->base->get_api_root_header() . ': ' . esc_url_raw( $api_root ) );
|
47 |
header( $this->base->get_api_origin_header() . ': ' . esc_url_raw( $this->base->get_rest_origin_url() ) );
|
48 |
}
|
49 |
-
}
|
46 |
header( $this->base->get_api_root_header() . ': ' . esc_url_raw( $api_root ) );
|
47 |
header( $this->base->get_api_origin_header() . ': ' . esc_url_raw( $this->base->get_rest_origin_url() ) );
|
48 |
}
|
49 |
+
}
|
common/src/Tribe/REST/Headers/Unsupported.php
CHANGED
@@ -36,4 +36,4 @@ class Tribe__REST__Headers__Unsupported extends Tribe__REST__Headers__Base_Heade
|
|
36 |
|
37 |
header( $this->base->get_api_version_header() . ': unsupported' );
|
38 |
}
|
39 |
-
}
|
36 |
|
37 |
header( $this->base->get_api_version_header() . ': unsupported' );
|
38 |
}
|
39 |
+
}
|
common/src/Tribe/REST/Main.php
CHANGED
@@ -146,4 +146,4 @@ abstract class Tribe__REST__Main {
|
|
146 |
* @return string
|
147 |
*/
|
148 |
abstract public function get_reference_url();
|
149 |
-
}
|
146 |
* @return string
|
147 |
*/
|
148 |
abstract public function get_reference_url();
|
149 |
+
}
|
common/src/Tribe/REST/Messages_Interface.php
CHANGED
@@ -27,4 +27,4 @@ interface Tribe__REST__Messages_Interface {
|
|
27 |
* @return string The prefixed message slug.
|
28 |
*/
|
29 |
public function prefix_message_slug( $message_slug );
|
30 |
-
}
|
27 |
* @return string The prefixed message slug.
|
28 |
*/
|
29 |
public function prefix_message_slug( $message_slug );
|
30 |
+
}
|
common/src/Tribe/REST/Post_Repository.php
CHANGED
@@ -100,4 +100,4 @@ class Tribe__REST__Post_Repository {
|
|
100 |
|
101 |
return $cost_values;
|
102 |
}
|
103 |
-
}
|
100 |
|
101 |
return $cost_values;
|
102 |
}
|
103 |
+
}
|
common/src/Tribe/REST/Post_Repository_Interface.php
CHANGED
@@ -11,4 +11,4 @@ interface Tribe__REST__Post_Repository_Interface {
|
|
11 |
* @return array An array representation of the post.
|
12 |
*/
|
13 |
public function get_data( $id );
|
14 |
-
}
|
11 |
* @return array An array representation of the post.
|
12 |
*/
|
13 |
public function get_data( $id );
|
14 |
+
}
|
common/src/Tribe/REST/System.php
CHANGED
@@ -11,4 +11,4 @@ class Tribe__REST__System {
|
|
11 |
public function supports_wp_rest_api() {
|
12 |
return function_exists( 'get_rest_url' );
|
13 |
}
|
14 |
-
}
|
11 |
public function supports_wp_rest_api() {
|
12 |
return function_exists( 'get_rest_url' );
|
13 |
}
|
14 |
+
}
|
common/src/Tribe/Repository/Decorator.php
CHANGED
@@ -358,4 +358,4 @@ abstract class Tribe__Repository__Decorator implements Tribe__Repository__Interf
|
|
358 |
public function has_filter( $key, $value = null ) {
|
359 |
return $this->decorated->has_filter( $key, $value );
|
360 |
}
|
361 |
-
}
|
358 |
public function has_filter( $key, $value = null ) {
|
359 |
return $this->decorated->has_filter( $key, $value );
|
360 |
}
|
361 |
+
}
|
common/src/Tribe/Repository/Formatter_Interface.php
CHANGED
@@ -21,4 +21,4 @@ interface Tribe__Repository__Formatter_Interface {
|
|
21 |
* @return mixed
|
22 |
*/
|
23 |
public function format_item( $id );
|
24 |
-
}
|
21 |
* @return mixed
|
22 |
*/
|
23 |
public function format_item( $id );
|
24 |
+
}
|
common/src/Tribe/Repository/Implementation_Error.php
CHANGED
@@ -8,4 +8,4 @@
|
|
8 |
* Thrown to indicate an error in the repository extension by a developer; this
|
9 |
* is meant to be used to help developers to extend the repository.
|
10 |
*/
|
11 |
-
class Tribe__Repository__Implementation_Error extends Exception {}
|
8 |
* Thrown to indicate an error in the repository extension by a developer; this
|
9 |
* is meant to be used to help developers to extend the repository.
|
10 |
*/
|
11 |
+
class Tribe__Repository__Implementation_Error extends Exception {}
|
common/src/Tribe/Repository/Update_Interface.php
CHANGED
@@ -55,4 +55,4 @@ interface Tribe__Repository__Update_Interface {
|
|
55 |
* be (asynchronous) updated.
|
56 |
*/
|
57 |
public function save( $sync = true );
|
58 |
-
}
|
55 |
* be (asynchronous) updated.
|
56 |
*/
|
57 |
public function save( $sync = true );
|
58 |
+
}
|
common/src/Tribe/Rewrite.php
CHANGED
@@ -295,4 +295,4 @@ class Tribe__Rewrite {
|
|
295 |
return false;
|
296 |
}
|
297 |
|
298 |
-
}
|
295 |
return false;
|
296 |
}
|
297 |
|
298 |
+
}
|
common/src/Tribe/Support/Obfuscator.php
CHANGED
@@ -65,4 +65,4 @@ class Tribe__Support__Obfuscator {
|
|
65 |
|
66 |
return preg_replace( '/^(.{4}).*(.{4})$/', '$1' . str_repeat( '#', $length - 8 ) . '$2', $string_value );
|
67 |
}
|
68 |
-
}
|
65 |
|
66 |
return preg_replace( '/^(.{4}).*(.{4})$/', '$1' . str_repeat( '#', $length - 8 ) . '$2', $string_value );
|
67 |
}
|
68 |
+
}
|
common/src/Tribe/Support/Template_Checker.php
CHANGED
@@ -273,4 +273,4 @@ class Tribe__Support__Template_Checker {
|
|
273 |
|
274 |
return $outdated;
|
275 |
}
|
276 |
-
}
|
273 |
|
274 |
return $outdated;
|
275 |
}
|
276 |
+
}
|
common/src/Tribe/Support/Template_Checker_Report.php
CHANGED
@@ -116,4 +116,4 @@ class Tribe__Support__Template_Checker_Report {
|
|
116 |
. '<div class="template-updates-wrapper">' . join( ' ', self::$plugin_reports ) . '</div>';
|
117 |
}
|
118 |
}
|
119 |
-
}
|
116 |
. '<div class="template-updates-wrapper">' . join( ' ', self::$plugin_reports ) . '</div>';
|
117 |
}
|
118 |
}
|
119 |
+
}
|
common/src/Tribe/Tabbed_View.php
CHANGED
@@ -378,4 +378,4 @@ class Tribe__Tabbed_View {
|
|
378 |
public function get_default_template_path() {
|
379 |
return Tribe__Main::instance()->plugin_path . '/src/admin-views/tabbed-view/tabbed-view.php';
|
380 |
}
|
381 |
-
}
|
378 |
public function get_default_template_path() {
|
379 |
return Tribe__Main::instance()->plugin_path . '/src/admin-views/tabbed-view/tabbed-view.php';
|
380 |
}
|
381 |
+
}
|
common/src/Tribe/Template.php
CHANGED
@@ -609,4 +609,4 @@ class Tribe__Template {
|
|
609 |
|
610 |
return $html;
|
611 |
}
|
612 |
-
}
|
609 |
|
610 |
return $html;
|
611 |
}
|
612 |
+
}
|
common/src/Tribe/Terms.php
CHANGED
@@ -51,4 +51,4 @@ class Tribe__Terms {
|
|
51 |
|
52 |
return array_unique( $term_ids );
|
53 |
}
|
54 |
-
}
|
51 |
|
52 |
return array_unique( $term_ids );
|
53 |
}
|
54 |
+
}
|
common/src/Tribe/Utils/Callback.php
CHANGED
@@ -106,4 +106,4 @@ class Tribe__Utils__Callback {
|
|
106 |
|
107 |
return call_user_func_array( $item->callback, $args );
|
108 |
}
|
109 |
-
}
|
106 |
|
107 |
return call_user_func_array( $item->callback, $args );
|
108 |
}
|
109 |
+
}
|
common/src/Tribe/Utils/Coordinates_Provider.php
CHANGED
@@ -131,4 +131,4 @@ class Tribe__Utils__Coordinates_Provider {
|
|
131 |
|
132 |
return isset( $transient[ $address ] ) ? $transient[ $address ] : false;
|
133 |
}
|
134 |
-
}
|
131 |
|
132 |
return isset( $transient[ $address ] ) ? $transient[ $address ] : false;
|
133 |
}
|
134 |
+
}
|
common/src/Tribe/Utils/JSON.php
CHANGED
@@ -35,4 +35,4 @@ class Tribe__Utils__JSON {
|
|
35 |
|
36 |
return str_replace( $escapers, $replacements, $value );
|
37 |
}
|
38 |
-
}
|
35 |
|
36 |
return str_replace( $escapers, $replacements, $value );
|
37 |
}
|
38 |
+
}
|
common/src/Tribe/Validate.php
CHANGED
@@ -549,4 +549,4 @@ if ( ! class_exists( 'Tribe__Validate' ) ) {
|
|
549 |
}
|
550 |
|
551 |
} // end class
|
552 |
-
} // endif class_exists
|
549 |
}
|
550 |
|
551 |
} // end class
|
552 |
+
} // endif class_exists
|
common/src/Tribe/Validator/Base.php
CHANGED
@@ -261,4 +261,4 @@ class Tribe__Validator__Base implements Tribe__Validator__Interface {
|
|
261 |
public function list_to_array( $list ) {
|
262 |
return Tribe__Utils__Array::list_to_array( $list );
|
263 |
}
|
264 |
-
}
|
261 |
public function list_to_array( $list ) {
|
262 |
return Tribe__Utils__Array::list_to_array( $list );
|
263 |
}
|
264 |
+
}
|
common/src/functions/utils.php
CHANGED
@@ -486,3 +486,33 @@ if ( ! function_exists( 'tribe_post_excerpt' ) ) {
|
|
486 |
return wpautop( $excerpt );
|
487 |
}
|
488 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
486 |
return wpautop( $excerpt );
|
487 |
}
|
488 |
}
|
489 |
+
|
490 |
+
/**
|
491 |
+
* Create a function to mock the real function if the extension or Beta is not present.
|
492 |
+
*
|
493 |
+
*
|
494 |
+
*/
|
495 |
+
if ( ! function_exists( 'has_blocks' ) ) {
|
496 |
+
/**
|
497 |
+
* Determine whether a post or content string has blocks.
|
498 |
+
*
|
499 |
+
* This test optimizes for performance rather than strict accuracy, detecting
|
500 |
+
* the pattern of a block but not validating its structure. For strict accuracy
|
501 |
+
* you should use the block parser on post content.
|
502 |
+
*
|
503 |
+
* @since 4.8
|
504 |
+
* @see https://github.com/WordPress/gutenberg/blob/73d9759116dde896931f4d152f186147a57889fe/lib/register.php#L313-L337s
|
505 |
+
*
|
506 |
+
* @param int|string|WP_Post|null $post Optional. Post content, post ID, or post object. Defaults to global $post.
|
507 |
+
* @return bool Whether the post has blocks.
|
508 |
+
*/
|
509 |
+
function has_blocks( $post = null ) {
|
510 |
+
if ( ! is_string( $post ) ) {
|
511 |
+
$wp_post = get_post( $post );
|
512 |
+
if ( $wp_post instanceof WP_Post ) {
|
513 |
+
$post = $wp_post->post_content;
|
514 |
+
}
|
515 |
+
}
|
516 |
+
return false !== strpos( (string) $post, '<!-- wp:' );
|
517 |
+
}
|
518 |
+
}
|
common/src/modules/components/form/index.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
export { default as Select } from './select';
|
common/src/modules/components/form/select/component.js
ADDED
@@ -0,0 +1,116 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React, { PureComponent } from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import { noop, partial, find } from 'lodash';
|
7 |
+
import classnames from 'classnames';
|
8 |
+
import {
|
9 |
+
Dropdown,
|
10 |
+
Dashicon,
|
11 |
+
} from '@wordpress/components';
|
12 |
+
import { ScrollTo, ScrollArea } from 'react-scroll-to';
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Internal dependencies
|
16 |
+
*/
|
17 |
+
import { PreventBlockClose } from '@moderntribe/common/components';
|
18 |
+
import './style.pcss';
|
19 |
+
|
20 |
+
export default class Select extends PureComponent {
|
21 |
+
static propTypes = {
|
22 |
+
options: PropTypes.shape( {
|
23 |
+
label: PropTypes.string,
|
24 |
+
value: PropTypes.any,
|
25 |
+
} ),
|
26 |
+
onOptionClick: PropTypes.func.isRequired,
|
27 |
+
optionClassName: PropTypes.string,
|
28 |
+
isOpen: PropTypes.bool.isRequired,
|
29 |
+
value: PropTypes.any,
|
30 |
+
className: PropTypes.string,
|
31 |
+
}
|
32 |
+
|
33 |
+
static defaultProps = {
|
34 |
+
onOptionClick: noop,
|
35 |
+
isOpen: true,
|
36 |
+
optionClassName: '',
|
37 |
+
}
|
38 |
+
|
39 |
+
_onOptionClick = ( onClose, value, e ) => {
|
40 |
+
this.props.onOptionClick( value, e );
|
41 |
+
onClose();
|
42 |
+
}
|
43 |
+
|
44 |
+
get selected() {
|
45 |
+
return find( this.props.options, option => option.value === this.props.value );
|
46 |
+
}
|
47 |
+
|
48 |
+
get label() {
|
49 |
+
const selected = this.selected;
|
50 |
+
return selected && selected.label;
|
51 |
+
}
|
52 |
+
|
53 |
+
renderOptions = ( onClose ) => (
|
54 |
+
this.props.options.map( ( option ) => (
|
55 |
+
<button
|
56 |
+
className={ classnames(
|
57 |
+
'tribe-common-form-select__options__option',
|
58 |
+
this.props.optionClassName
|
59 |
+
) }
|
60 |
+
key={ option.value }
|
61 |
+
onClick={ partial( this._onOptionClick, onClose, option.value ) }
|
62 |
+
role="menuitem"
|
63 |
+
type="button"
|
64 |
+
value={ option.value }
|
65 |
+
>
|
66 |
+
{ option.label }
|
67 |
+
</button>
|
68 |
+
) )
|
69 |
+
)
|
70 |
+
|
71 |
+
renderToggle = ( { onToggle, isOpen } ) => (
|
72 |
+
<div className="tribe-common-form-select__toggle">
|
73 |
+
<button
|
74 |
+
type="button"
|
75 |
+
aria-expanded={ isOpen }
|
76 |
+
onClick={ onToggle }
|
77 |
+
>
|
78 |
+
<span>{ this.label }</span>
|
79 |
+
<Dashicon
|
80 |
+
className="btn--icon"
|
81 |
+
icon={ isOpen ? 'arrow-up' : 'arrow-down' }
|
82 |
+
/>
|
83 |
+
</button>
|
84 |
+
</div>
|
85 |
+
)
|
86 |
+
|
87 |
+
renderContent = ( { onClose } ) => (
|
88 |
+
<ScrollTo>
|
89 |
+
{ () => (
|
90 |
+
<PreventBlockClose>
|
91 |
+
<ScrollArea
|
92 |
+
role="menu"
|
93 |
+
className={ classnames( 'tribe-common-form-select__options' ) }
|
94 |
+
>
|
95 |
+
{ this.renderOptions( onClose ) }
|
96 |
+
</ScrollArea>
|
97 |
+
</PreventBlockClose>
|
98 |
+
) }
|
99 |
+
</ScrollTo>
|
100 |
+
|
101 |
+
);
|
102 |
+
|
103 |
+
render() {
|
104 |
+
return (
|
105 |
+
<Dropdown
|
106 |
+
className={ classnames( 'tribe-common-form-select',
|
107 |
+
this.props.className
|
108 |
+
) }
|
109 |
+
position="bottom center"
|
110 |
+
contentClassName="tribe-common-form-select__content"
|
111 |
+
renderToggle={ this.renderToggle }
|
112 |
+
renderContent={ this.renderContent }
|
113 |
+
/>
|
114 |
+
);
|
115 |
+
}
|
116 |
+
}
|
common/src/modules/components/form/select/index.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
export { default } from './component';
|
common/src/modules/components/form/select/style.pcss
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tribe-common-form-select {
|
2 |
+
display: flex;
|
3 |
+
|
4 |
+
& > div {
|
5 |
+
flex: 0 0 auto;
|
6 |
+
min-width: 193px;
|
7 |
+
}
|
8 |
+
|
9 |
+
&__toggle {
|
10 |
+
background-color: #FFF;
|
11 |
+
border-radius: 2px;
|
12 |
+
border: 2px solid #EAEBEC;
|
13 |
+
|
14 |
+
& button {
|
15 |
+
align-items: center;
|
16 |
+
background-color: #FEFFFE;
|
17 |
+
border: none;
|
18 |
+
color: #545D66;
|
19 |
+
display: flex;
|
20 |
+
font-family: Helvetica, sans-serif;
|
21 |
+
font-size: 16px;
|
22 |
+
font-weight: 400;
|
23 |
+
font-weight: normal;
|
24 |
+
justify-content: center;
|
25 |
+
line-height: 1.5;
|
26 |
+
padding: 6px 10px;
|
27 |
+
text-align: left;
|
28 |
+
text-decoration: none;
|
29 |
+
width: 100%;
|
30 |
+
|
31 |
+
& > span {
|
32 |
+
flex: 1;
|
33 |
+
}
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
&__options {
|
38 |
+
|
39 |
+
&__option {
|
40 |
+
background: transparent;
|
41 |
+
border: 0;
|
42 |
+
color: #555d66;
|
43 |
+
cursor: pointer;
|
44 |
+
display: block;
|
45 |
+
line-height: 20px;
|
46 |
+
padding: 5px 12px;
|
47 |
+
text-align: left;
|
48 |
+
width: 100%;
|
49 |
+
|
50 |
+
&:hover {
|
51 |
+
background-color: #009fd4;
|
52 |
+
color: #fff;
|
53 |
+
}
|
54 |
+
}
|
55 |
+
}
|
56 |
+
}
|
common/src/modules/components/index.js
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* eslint-disable max-len */
|
2 |
+
export { default as PluginBlockHooks } from '@moderntribe/common/components/plugin-block-hooks';
|
3 |
+
export { default as PreventBlockClose } from '@moderntribe/common/components/prevent-block-close';
|
4 |
+
export * from './form';
|
5 |
+
|
common/src/modules/components/plugin-block-hooks/__tests__/__snapshots__/plugin-block-hooks.spec.js.snap
ADDED
@@ -0,0 +1,131 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`PluginBlockHooks should match snapshot 1`] = `
|
4 |
+
<div
|
5 |
+
className="tribe-common__plugin-block-hook"
|
6 |
+
>
|
7 |
+
<InnerBlocks
|
8 |
+
template={
|
9 |
+
Array [
|
10 |
+
Array [
|
11 |
+
"tribe/event-datetime",
|
12 |
+
Object {},
|
13 |
+
],
|
14 |
+
Array [
|
15 |
+
"tribe/event-pro-recurring",
|
16 |
+
Object {},
|
17 |
+
],
|
18 |
+
Array [
|
19 |
+
"tribe/event-pro-exclusion",
|
20 |
+
Object {},
|
21 |
+
],
|
22 |
+
]
|
23 |
+
}
|
24 |
+
templateInsertUpdatesSelection={false}
|
25 |
+
/>
|
26 |
+
</div>
|
27 |
+
`;
|
28 |
+
|
29 |
+
exports[`PluginBlockHooks should not hook in unregistered blocks 1`] = `
|
30 |
+
<div
|
31 |
+
className="tribe-common__plugin-block-hook"
|
32 |
+
>
|
33 |
+
<InnerBlocks
|
34 |
+
template={
|
35 |
+
Array [
|
36 |
+
Array [
|
37 |
+
"tribe/event-datetime",
|
38 |
+
Object {},
|
39 |
+
],
|
40 |
+
Array [
|
41 |
+
"tribe/event-pro-recurring",
|
42 |
+
Object {},
|
43 |
+
],
|
44 |
+
Array [
|
45 |
+
"tribe/event-pro-exclusion",
|
46 |
+
Object {},
|
47 |
+
],
|
48 |
+
]
|
49 |
+
}
|
50 |
+
templateInsertUpdatesSelection={false}
|
51 |
+
/>
|
52 |
+
</div>
|
53 |
+
`;
|
54 |
+
|
55 |
+
exports[`PluginBlockHooks should only render events templates 1`] = `
|
56 |
+
<div
|
57 |
+
className="tribe-common__plugin-block-hook"
|
58 |
+
>
|
59 |
+
<InnerBlocks
|
60 |
+
template={
|
61 |
+
Array [
|
62 |
+
Array [
|
63 |
+
"tribe/event-datetime",
|
64 |
+
Object {},
|
65 |
+
],
|
66 |
+
]
|
67 |
+
}
|
68 |
+
templateInsertUpdatesSelection={false}
|
69 |
+
/>
|
70 |
+
</div>
|
71 |
+
`;
|
72 |
+
|
73 |
+
exports[`PluginBlockHooks should only render events-pro templates 1`] = `
|
74 |
+
<div
|
75 |
+
className="tribe-common__plugin-block-hook"
|
76 |
+
>
|
77 |
+
<InnerBlocks
|
78 |
+
template={
|
79 |
+
Array [
|
80 |
+
Array [
|
81 |
+
"tribe/event-pro-recurring",
|
82 |
+
Object {},
|
83 |
+
],
|
84 |
+
Array [
|
85 |
+
"tribe/event-pro-exclusion",
|
86 |
+
Object {},
|
87 |
+
],
|
88 |
+
]
|
89 |
+
}
|
90 |
+
templateInsertUpdatesSelection={false}
|
91 |
+
/>
|
92 |
+
</div>
|
93 |
+
`;
|
94 |
+
|
95 |
+
exports[`PluginBlockHooks should recursively hook blocks 1`] = `
|
96 |
+
<div
|
97 |
+
className="tribe-common__plugin-block-hook"
|
98 |
+
>
|
99 |
+
<InnerBlocks
|
100 |
+
template={
|
101 |
+
Array [
|
102 |
+
Array [
|
103 |
+
"tribe/event-pro-recurring",
|
104 |
+
Object {},
|
105 |
+
],
|
106 |
+
Array [
|
107 |
+
"tribe/event-cool-container1",
|
108 |
+
Object {},
|
109 |
+
Array [
|
110 |
+
Array [
|
111 |
+
"tribe/event-pro-recurring",
|
112 |
+
Object {},
|
113 |
+
],
|
114 |
+
Array [
|
115 |
+
"tribe/event-cool-container2",
|
116 |
+
Object {},
|
117 |
+
Array [
|
118 |
+
Array [
|
119 |
+
"tribe/event-pro-recurring",
|
120 |
+
Object {},
|
121 |
+
],
|
122 |
+
],
|
123 |
+
],
|
124 |
+
],
|
125 |
+
],
|
126 |
+
]
|
127 |
+
}
|
128 |
+
templateInsertUpdatesSelection={false}
|
129 |
+
/>
|
130 |
+
</div>
|
131 |
+
`;
|
common/src/modules/components/plugin-block-hooks/__tests__/plugin-block-hooks.spec.js
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External Dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import renderer from 'react-test-renderer';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Internal Dependencies
|
9 |
+
*/
|
10 |
+
import PluginBlockHooks from '../component';
|
11 |
+
|
12 |
+
jest.mock( '@wordpress/editor', () => ( {
|
13 |
+
InnerBlocks: 'InnerBlocks',
|
14 |
+
} ) );
|
15 |
+
jest.mock( '@wordpress/data', () => ( {
|
16 |
+
select: jest.fn( () => ( {
|
17 |
+
getBlockTypes: jest.fn( () => ( [
|
18 |
+
{ name: 'tribe/event-datetime' },
|
19 |
+
{ name: 'tribe/event-pro-recurring' },
|
20 |
+
{ name: 'tribe/event-pro-exclusion' },
|
21 |
+
{ name: 'tribe/event-cool-container1' },
|
22 |
+
{ name: 'tribe/event-cool-container2' },
|
23 |
+
] ) ),
|
24 |
+
} ) ),
|
25 |
+
} ) );
|
26 |
+
|
27 |
+
describe( 'PluginBlockHooks', () => {
|
28 |
+
let props;
|
29 |
+
beforeEach( () => {
|
30 |
+
props = {
|
31 |
+
plugins: [ 'events', 'events-pro', 'events-cool' ],
|
32 |
+
pluginTemplates: {
|
33 |
+
'events': [
|
34 |
+
[ 'tribe/event-datetime', {}],
|
35 |
+
],
|
36 |
+
'events-pro': [
|
37 |
+
[ 'tribe/event-pro-recurring', {}],
|
38 |
+
[ 'tribe/event-pro-exclusion', {}],
|
39 |
+
],
|
40 |
+
},
|
41 |
+
};
|
42 |
+
} );
|
43 |
+
|
44 |
+
test( 'should match snapshot', () => {
|
45 |
+
const component = renderer.create(
|
46 |
+
<PluginBlockHooks { ...props } />
|
47 |
+
);
|
48 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
49 |
+
} );
|
50 |
+
test( 'should only render events templates', () => {
|
51 |
+
props.plugins = props.plugins.filter( plugin => plugin === 'events' );
|
52 |
+
const component = renderer.create(
|
53 |
+
<PluginBlockHooks { ...props } />
|
54 |
+
);
|
55 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
56 |
+
} );
|
57 |
+
test( 'should only render events-pro templates', () => {
|
58 |
+
props.plugins = props.plugins.filter( plugin => plugin === 'events-pro' );
|
59 |
+
const component = renderer.create(
|
60 |
+
<PluginBlockHooks { ...props } />
|
61 |
+
);
|
62 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
63 |
+
} );
|
64 |
+
test( 'should not hook in unregistered blocks', () => {
|
65 |
+
props.pluginTemplates.events.push( [ 'i-dont-exist', {}] );
|
66 |
+
const component = renderer.create(
|
67 |
+
<PluginBlockHooks { ...props } />
|
68 |
+
);
|
69 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
70 |
+
} );
|
71 |
+
test( 'should recursively hook blocks', () => {
|
72 |
+
delete props.pluginTemplates.events;
|
73 |
+
delete props.pluginTemplates[ 'events-pro' ];
|
74 |
+
props.pluginTemplates[ 'events-cool' ] = [
|
75 |
+
[ 'tribe/event-pro-recurring', {}],
|
76 |
+
[ 'tribe/event-cool-container1', {}, [
|
77 |
+
[ 'tribe/event-pro-recurring', {}],
|
78 |
+
[ 'tribe/event-cool-container2', {}, [
|
79 |
+
[ 'tribe/event-pro-recurring', {}],
|
80 |
+
[ 'dont-register-me', {}],
|
81 |
+
] ],
|
82 |
+
[ 'dont-register-2me', {}],
|
83 |
+
],
|
84 |
+
[ 'dont-register-me', {}],
|
85 |
+
],
|
86 |
+
];
|
87 |
+
const component = renderer.create(
|
88 |
+
<PluginBlockHooks { ...props } />
|
89 |
+
);
|
90 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
91 |
+
} );
|
92 |
+
} );
|
common/src/modules/components/plugin-block-hooks/component.js
ADDED
@@ -0,0 +1,138 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React, { PureComponent } from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import { map, reduce, includes, isArray } from 'lodash';
|
7 |
+
import { InnerBlocks } from '@wordpress/editor';
|
8 |
+
import { select } from '@wordpress/data';
|
9 |
+
import './style.pcss';
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Allows for dynamic plugin templates based on current plugins available
|
13 |
+
* utilizing InnerBlocks api
|
14 |
+
*
|
15 |
+
* @export
|
16 |
+
* @class PluginBlockHooks
|
17 |
+
* @extends {PureComponent}
|
18 |
+
*/
|
19 |
+
export default class PluginBlockHooks extends PureComponent {
|
20 |
+
static propTypes = {
|
21 |
+
allowedBlocks: PropTypes.arrayOf( PropTypes.string ),
|
22 |
+
layouts: PropTypes.oneOfType( [
|
23 |
+
PropTypes.object,
|
24 |
+
PropTypes.arrayOf( PropTypes.object ),
|
25 |
+
] ),
|
26 |
+
/**
|
27 |
+
* Plugins to be used
|
28 |
+
*/
|
29 |
+
plugins: PropTypes.arrayOf( PropTypes.string ).isRequired,
|
30 |
+
/**
|
31 |
+
* Plugin template structure needed to properly
|
32 |
+
* register new templates for each plugin
|
33 |
+
*
|
34 |
+
*
|
35 |
+
* ```js
|
36 |
+
* {
|
37 |
+
* 'events': [
|
38 |
+
* [ 'tribe/event-datetime', {}],
|
39 |
+
* ],
|
40 |
+
* 'events-pro': [
|
41 |
+
* [ 'tribe/event-pro-recurring', {}],
|
42 |
+
* [ 'tribe/event-pro-exclusion', {}],
|
43 |
+
* ],
|
44 |
+
* 'events-cool': [
|
45 |
+
* [ 'tribe/event-cool-container', {}, [
|
46 |
+
* [ 'tribe/event-cool-column', {}],
|
47 |
+
* [ 'tribe/event-cool-column', {}],
|
48 |
+
* ]]
|
49 |
+
* ],
|
50 |
+
* }
|
51 |
+
* ```
|
52 |
+
*/
|
53 |
+
pluginTemplates: PropTypes.objectOf( PropTypes.arrayOf( PropTypes.array ) ),
|
54 |
+
templateInsertUpdatesSelection: PropTypes.bool.isRequired,
|
55 |
+
templateLock: PropTypes.oneOf( [
|
56 |
+
'all',
|
57 |
+
'insert',
|
58 |
+
false,
|
59 |
+
] ),
|
60 |
+
}
|
61 |
+
|
62 |
+
static defaultProps = {
|
63 |
+
templateInsertUpdatesSelection: false,
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Registered block names from core
|
68 |
+
*
|
69 |
+
* @readonly
|
70 |
+
* @memberof PluginBlockHooks
|
71 |
+
* @returns {Array} block names
|
72 |
+
*/
|
73 |
+
get registeredBlockNames() {
|
74 |
+
const blockTypes = select( 'core/blocks' ).getBlockTypes();
|
75 |
+
return map( blockTypes, block => block.name );
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Template for InnerBlocks
|
80 |
+
*
|
81 |
+
* @readonly
|
82 |
+
* @memberof PluginBlockHooks
|
83 |
+
* @returns {Array} template
|
84 |
+
*/
|
85 |
+
get template() {
|
86 |
+
const blockNames = this.registeredBlockNames;
|
87 |
+
return this.props.plugins.reduce( ( acc, plugin ) => {
|
88 |
+
const pluginTemplate = this.props.pluginTemplates[ plugin ];
|
89 |
+
if ( pluginTemplate ) {
|
90 |
+
// Block needs to be registered, otherwise it's dropped
|
91 |
+
const blockTemplates = this.filterPluginTemplates( blockNames, pluginTemplate );
|
92 |
+
return [
|
93 |
+
...acc,
|
94 |
+
...blockTemplates,
|
95 |
+
];
|
96 |
+
}
|
97 |
+
return acc;
|
98 |
+
}, [] );
|
99 |
+
}
|
100 |
+
|
101 |
+
/**
|
102 |
+
* Recursively filters out unregistered blocks
|
103 |
+
*
|
104 |
+
* @param {Array} blockNames block names currently registered
|
105 |
+
* @param {Array} pluginTemplate Template for plugins
|
106 |
+
* @returns {Array} Array of plugin template
|
107 |
+
*/
|
108 |
+
filterPluginTemplates( blockNames, pluginTemplate ) {
|
109 |
+
return reduce( pluginTemplate, ( acc, [ name, attributes, nestedBlockTemplates ] ) => {
|
110 |
+
if ( includes( blockNames, name ) ) {
|
111 |
+
const blockTemplate = isArray( nestedBlockTemplates )
|
112 |
+
? [ name, attributes, /* Recursive call */ this.filterPluginTemplates( blockNames, nestedBlockTemplates ) ] // eslint-disable-line max-len
|
113 |
+
: [ name, attributes ];
|
114 |
+
|
115 |
+
return [
|
116 |
+
...acc,
|
117 |
+
blockTemplate,
|
118 |
+
];
|
119 |
+
}
|
120 |
+
|
121 |
+
return acc;
|
122 |
+
}, [] );
|
123 |
+
}
|
124 |
+
|
125 |
+
render() {
|
126 |
+
return (
|
127 |
+
<div className="tribe-common__plugin-block-hook">
|
128 |
+
<InnerBlocks
|
129 |
+
allowedBlocks={ this.props.allowedBlocks }
|
130 |
+
layouts={ this.props.layouts }
|
131 |
+
template={ this.template }
|
132 |
+
templateInsertUpdatesSelection={ this.props.templateInsertUpdatesSelection }
|
133 |
+
templateLock={ this.props.templateLock }
|
134 |
+
/>
|
135 |
+
</div>
|
136 |
+
);
|
137 |
+
}
|
138 |
+
}
|
common/src/modules/components/plugin-block-hooks/container.js
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { connect } from 'react-redux';
|
5 |
+
import { compose } from 'redux';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Internal Dependencies
|
9 |
+
*/
|
10 |
+
import { selectors } from '@moderntribe/common/data/plugins';
|
11 |
+
import { withStore } from '@moderntribe/common/hoc';
|
12 |
+
import PluginBlockHooks from './component';
|
13 |
+
|
14 |
+
const mapStateToProps = ( state, ownProps ) => ( {
|
15 |
+
plugins: selectors.getPlugins( state ),
|
16 |
+
} );
|
17 |
+
|
18 |
+
export default compose(
|
19 |
+
withStore(),
|
20 |
+
connect( mapStateToProps ),
|
21 |
+
)( PluginBlockHooks );
|
common/src/modules/components/plugin-block-hooks/index.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
export { default } from './container';
|
common/src/modules/components/plugin-block-hooks/style.pcss
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tribe-common__plugin-block-hook {
|
2 |
+
|
3 |
+
& .editor-inner-blocks {
|
4 |
+
|
5 |
+
& .editor-block-list__layout {
|
6 |
+
margin: 0;
|
7 |
+
|
8 |
+
& .editor-block-list__block {
|
9 |
+
margin: 0;
|
10 |
+
max-width: 100% !important;
|
11 |
+
padding: 0;
|
12 |
+
|
13 |
+
&.is-selected > .editor-block-list__block-edit:before,
|
14 |
+
&.is-selected-parent > .editor-block-list__block-edit:before,
|
15 |
+
&.is-hovered > .editor-block-list__block-edit:before {
|
16 |
+
outline: none;
|
17 |
+
}
|
18 |
+
|
19 |
+
& .editor-block-list__block-edit {
|
20 |
+
margin: 0;
|
21 |
+
|
22 |
+
&:before {
|
23 |
+
outline: none;
|
24 |
+
}
|
25 |
+
|
26 |
+
& .editor-block-contextual-toolbar {
|
27 |
+
display: none;
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
+
{
|
32 |
+
outline: none;
|
33 |
+
}
|
34 |
+
}
|
35 |
+
}
|
36 |
+
}
|
37 |
+
}
|
common/src/modules/components/prevent-block-close/__tests__/component.spec.js
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import React from 'react';
|
2 |
+
import PreventBlockClose from '../component';
|
3 |
+
|
4 |
+
describe( 'PreventBlockClose', () => {
|
5 |
+
test( 'should match snapshot', () => {
|
6 |
+
const component = mount(
|
7 |
+
<PreventBlockClose>
|
8 |
+
<span>Test children</span>
|
9 |
+
</PreventBlockClose>
|
10 |
+
);
|
11 |
+
const child = component.find( 'span' );
|
12 |
+
expect( child ).toHaveLength( 1 );
|
13 |
+
expect( child.text() ).toEqual( "Test children" );
|
14 |
+
} );
|
15 |
+
} );
|
common/src/modules/components/prevent-block-close/component.js
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External Dependencies
|
3 |
+
*/
|
4 |
+
import React, { PureComponent } from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Internal Dependencies
|
9 |
+
*/
|
10 |
+
import { intercept, EVENT_NAMESPACE } from '@moderntribe/common/hoc/with-block-closer';
|
11 |
+
|
12 |
+
export default class PreventBlockClose extends PureComponent {
|
13 |
+
static propTypes = {
|
14 |
+
children: PropTypes.node.isRequired,
|
15 |
+
}
|
16 |
+
|
17 |
+
nodeRef = React.createRef();
|
18 |
+
|
19 |
+
componentDidMount() {
|
20 |
+
this.node.addEventListener( EVENT_NAMESPACE, intercept );
|
21 |
+
}
|
22 |
+
|
23 |
+
componentWillUnmount() {
|
24 |
+
this.node.removeEventListener( EVENT_NAMESPACE, intercept );
|
25 |
+
}
|
26 |
+
|
27 |
+
get node() {
|
28 |
+
return this.nodeRef.current;
|
29 |
+
}
|
30 |
+
|
31 |
+
render() {
|
32 |
+
return (
|
33 |
+
<div ref={ this.nodeRef }>
|
34 |
+
{ this.props.children }
|
35 |
+
</div>
|
36 |
+
);
|
37 |
+
}
|
38 |
+
}
|
common/src/modules/components/prevent-block-close/index.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
export { default } from './component';
|
common/src/modules/data/__tests__/utils.test.js
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { PREFIX_COMMON_STORE } from '@moderntribe/common/data/utils';
|
5 |
+
|
6 |
+
describe( 'prefix', () => {
|
7 |
+
it( 'Should return the prefix', () => {
|
8 |
+
expect( PREFIX_COMMON_STORE ).toBe('@@MT/COMMON');
|
9 |
+
} );
|
10 |
+
} );
|
common/src/modules/data/editor/post-types.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
export const EVENT = 'tribe_events';
|
2 |
+
export const VENUE = 'tribe_venue';
|
3 |
+
export const ORGANIZER = 'tribe_organizer';
|
common/src/modules/data/forms/__tests__/__snapshots__/actions.test.js.snap
ADDED
@@ -0,0 +1,147 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`[STORE] - Form actions Add volatile action 1`] = `
|
4 |
+
Object {
|
5 |
+
"payload": Object {
|
6 |
+
"id": 20,
|
7 |
+
},
|
8 |
+
"type": "@@MT/COMMON/ADD_VOLATILE_ID",
|
9 |
+
}
|
10 |
+
`;
|
11 |
+
|
12 |
+
exports[`[STORE] - Form actions Clear form action 1`] = `
|
13 |
+
Object {
|
14 |
+
"payload": Object {
|
15 |
+
"id": 20,
|
16 |
+
},
|
17 |
+
"type": "@@MT/COMMON/CLEAR_FORM",
|
18 |
+
}
|
19 |
+
`;
|
20 |
+
|
21 |
+
exports[`[STORE] - Form actions Create draft entry 1`] = `
|
22 |
+
Object {
|
23 |
+
"payload": Object {
|
24 |
+
"fields": Object {
|
25 |
+
"title": "Modern Tribe",
|
26 |
+
},
|
27 |
+
"id": 20,
|
28 |
+
},
|
29 |
+
"type": "@@MT/COMMON/CREATE_FORM_DRAFT",
|
30 |
+
}
|
31 |
+
`;
|
32 |
+
|
33 |
+
exports[`[STORE] - Form actions Edit the entry action 1`] = `
|
34 |
+
Object {
|
35 |
+
"payload": Object {
|
36 |
+
"fields": Object {
|
37 |
+
"title": "Tribe",
|
38 |
+
},
|
39 |
+
"id": 20,
|
40 |
+
},
|
41 |
+
"type": "@@MT/COMMON/EDIT_FORM_ENTRY",
|
42 |
+
}
|
43 |
+
`;
|
44 |
+
|
45 |
+
exports[`[STORE] - Form actions Register form action 1`] = `
|
46 |
+
Object {
|
47 |
+
"payload": Object {
|
48 |
+
"id": 20,
|
49 |
+
"type": "tribe_organizers",
|
50 |
+
},
|
51 |
+
"type": "@@MT/COMMON/ADD_FORM",
|
52 |
+
}
|
53 |
+
`;
|
54 |
+
|
55 |
+
exports[`[STORE] - Form actions Remove volatile action 1`] = `
|
56 |
+
Object {
|
57 |
+
"payload": Object {
|
58 |
+
"id": 20,
|
59 |
+
},
|
60 |
+
"type": "@@MT/COMMON/REMOVE_VOLATILE_ID",
|
61 |
+
}
|
62 |
+
`;
|
63 |
+
|
64 |
+
exports[`[STORE] - Form actions Set saving action 1`] = `
|
65 |
+
Object {
|
66 |
+
"payload": Object {
|
67 |
+
"id": 20,
|
68 |
+
"saving": true,
|
69 |
+
},
|
70 |
+
"type": "@@MT/COMMON/SET_SAVING_FORM",
|
71 |
+
}
|
72 |
+
`;
|
73 |
+
|
74 |
+
exports[`[STORE] - Form actions Set saving action 2`] = `
|
75 |
+
Object {
|
76 |
+
"payload": Object {
|
77 |
+
"id": 20,
|
78 |
+
"saving": false,
|
79 |
+
},
|
80 |
+
"type": "@@MT/COMMON/SET_SAVING_FORM",
|
81 |
+
}
|
82 |
+
`;
|
83 |
+
|
84 |
+
exports[`[STORE] - Form actions Set submit form 1`] = `
|
85 |
+
Object {
|
86 |
+
"payload": Object {
|
87 |
+
"id": 20,
|
88 |
+
},
|
89 |
+
"type": "@@MT/COMMON/SUBMIT_FORM",
|
90 |
+
}
|
91 |
+
`;
|
92 |
+
|
93 |
+
exports[`[STORE] - form thunk actions Maybe remove entry action with details 1`] = `
|
94 |
+
Array [
|
95 |
+
Object {
|
96 |
+
"meta": Object {
|
97 |
+
"actions": Object {
|
98 |
+
"success": [Function],
|
99 |
+
},
|
100 |
+
"path": "tribe_venue/21",
|
101 |
+
},
|
102 |
+
"type": "@@MT/COMMON/WP_REQUEST",
|
103 |
+
},
|
104 |
+
]
|
105 |
+
`;
|
106 |
+
|
107 |
+
exports[`[STORE] - form thunk actions Maybe remove entry action without details 1`] = `Array []`;
|
108 |
+
|
109 |
+
exports[`[STORE] - form thunk actions Send the form action when creating 1`] = `
|
110 |
+
Array [
|
111 |
+
Object {
|
112 |
+
"meta": Object {
|
113 |
+
"actions": Object {
|
114 |
+
"error": [Function],
|
115 |
+
"start": [Function],
|
116 |
+
"success": [Function],
|
117 |
+
},
|
118 |
+
"params": Object {
|
119 |
+
"body": "{\\"title\\":\\"Modern Tribe\\"}",
|
120 |
+
"method": "POST",
|
121 |
+
},
|
122 |
+
"path": "tribe_organizer",
|
123 |
+
},
|
124 |
+
"type": "@@MT/COMMON/WP_REQUEST",
|
125 |
+
},
|
126 |
+
]
|
127 |
+
`;
|
128 |
+
|
129 |
+
exports[`[STORE] - form thunk actions Send the form when editing 1`] = `
|
130 |
+
Array [
|
131 |
+
Object {
|
132 |
+
"meta": Object {
|
133 |
+
"actions": Object {
|
134 |
+
"error": [Function],
|
135 |
+
"start": [Function],
|
136 |
+
"success": [Function],
|
137 |
+
},
|
138 |
+
"params": Object {
|
139 |
+
"body": "{\\"title\\":\\"Tribe\\"}",
|
140 |
+
"method": "PUT",
|
141 |
+
},
|
142 |
+
"path": "tribe_venue/21",
|
143 |
+
},
|
144 |
+
"type": "@@MT/COMMON/WP_REQUEST",
|
145 |
+
},
|
146 |
+
]
|
147 |
+
`;
|
common/src/modules/data/forms/__tests__/actions.test.js
ADDED
@@ -0,0 +1,96 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import configureStore from 'redux-mock-store';
|
5 |
+
import thunk from 'redux-thunk';
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import { actions } from '@moderntribe/common/data/forms';
|
10 |
+
|
11 |
+
const middlewares = [ thunk ];
|
12 |
+
const mockStore = configureStore( middlewares );
|
13 |
+
|
14 |
+
describe( '[STORE] - Form actions', () => {
|
15 |
+
test( 'Register form action', () => {
|
16 |
+
expect( actions.registerForm( 20, 'tribe_organizers' ) ).toMatchSnapshot();
|
17 |
+
} );
|
18 |
+
|
19 |
+
test( 'Create draft entry', () => {
|
20 |
+
expect( actions.createDraft( 20, { title: 'Modern Tribe' } ) ).toMatchSnapshot();
|
21 |
+
} );
|
22 |
+
|
23 |
+
test( 'Edit the entry action', () => {
|
24 |
+
expect( actions.editEntry( 20, { title: 'Tribe' } ) ).toMatchSnapshot();
|
25 |
+
} );
|
26 |
+
|
27 |
+
test( 'Clear form action', () => {
|
28 |
+
expect( actions.clearForm( 20 ) ).toMatchSnapshot();
|
29 |
+
} );
|
30 |
+
|
31 |
+
test( 'Set submit form', () => {
|
32 |
+
expect( actions.setSubmit( 20 ) ).toMatchSnapshot();
|
33 |
+
} );
|
34 |
+
|
35 |
+
test( 'Set saving action', () => {
|
36 |
+
expect( actions.setSaving( 20, true ) ).toMatchSnapshot();
|
37 |
+
expect( actions.setSaving( 20, false ) ).toMatchSnapshot();
|
38 |
+
} );
|
39 |
+
|
40 |
+
test( 'Add volatile action', () => {
|
41 |
+
expect( actions.addVolatile( 20 ) ).toMatchSnapshot();
|
42 |
+
} );
|
43 |
+
|
44 |
+
test( 'Remove volatile action', () => {
|
45 |
+
expect( actions.removeVolatile( 20 ) ).toMatchSnapshot();
|
46 |
+
} );
|
47 |
+
} );
|
48 |
+
|
49 |
+
describe( '[STORE] - form thunk actions', () => {
|
50 |
+
let store = {};
|
51 |
+
beforeAll( () => {
|
52 |
+
store = mockStore( {
|
53 |
+
events: {
|
54 |
+
},
|
55 |
+
forms: {
|
56 |
+
byId: {
|
57 |
+
20: {
|
58 |
+
create: true,
|
59 |
+
type: 'tribe_organizer',
|
60 |
+
fields: {},
|
61 |
+
},
|
62 |
+
21: {
|
63 |
+
create: false,
|
64 |
+
type: 'tribe_venue',
|
65 |
+
fields: {
|
66 |
+
id: 21,
|
67 |
+
},
|
68 |
+
},
|
69 |
+
},
|
70 |
+
volatile: [],
|
71 |
+
},
|
72 |
+
} );
|
73 |
+
} );
|
74 |
+
|
75 |
+
afterEach( () => store.clearActions() );
|
76 |
+
|
77 |
+
test( 'Send the form action when creating', () => {
|
78 |
+
store.dispatch( actions.sendForm( 20, { title: 'Modern Tribe' } ) );
|
79 |
+
expect( store.getActions() ).toMatchSnapshot();
|
80 |
+
} );
|
81 |
+
|
82 |
+
test( 'Send the form when editing', () => {
|
83 |
+
store.dispatch( actions.sendForm( 21, { title: 'Tribe' } ) );
|
84 |
+
expect( store.getActions() ).toMatchSnapshot();
|
85 |
+
} );
|
86 |
+
|
87 |
+
test( 'Maybe remove entry action without details', () => {
|
88 |
+
store.dispatch( actions.maybeRemoveEntry( 20, {} ) );
|
89 |
+
expect( store.getActions() ).toMatchSnapshot();
|
90 |
+
} );
|
91 |
+
|
92 |
+
test( 'Maybe remove entry action with details', () => {
|
93 |
+
store.dispatch( actions.maybeRemoveEntry( 21, { id: 21, title: 'Modern Tribe' } ) );
|
94 |
+
expect( store.getActions() ).toMatchSnapshot();
|
95 |
+
} );
|
96 |
+
} );
|
common/src/modules/data/forms/__tests__/reducer.test.js
ADDED
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import reducer, { actions } from '@moderntribe/common/data/forms';
|
5 |
+
import form, { DEFAULT_STATE } from '@moderntribe/common/data/forms/reducers/form';
|
6 |
+
|
7 |
+
jest.mock( '@moderntribe/common/data/forms/reducers/form', () => {
|
8 |
+
const original = require.requireActual( '@moderntribe/events/data/search/reducers/search' );
|
9 |
+
return {
|
10 |
+
__esModule: true,
|
11 |
+
...original,
|
12 |
+
default: jest.fn( ( state = original.DEFAULT_STATE ) => state ),
|
13 |
+
};
|
14 |
+
} );
|
15 |
+
|
16 |
+
jest.mock( '@moderntribe/common/data/forms/reducers/volatile', () => {
|
17 |
+
return {
|
18 |
+
__esModule: true,
|
19 |
+
default: jest.fn( ( state = [] ) => state ),
|
20 |
+
};
|
21 |
+
} );
|
22 |
+
|
23 |
+
describe( '[STORE] - form reducer', () => {
|
24 |
+
beforeEach( () => {
|
25 |
+
form.mockClear();
|
26 |
+
} );
|
27 |
+
|
28 |
+
it( 'Should return the default state', () => {
|
29 |
+
expect( reducer( undefined, {} ) ).toEqual( { byId: {}, volatile: [] } );
|
30 |
+
} );
|
31 |
+
|
32 |
+
it( 'Should add a new form', () => {
|
33 |
+
const state = {
|
34 |
+
byId: {},
|
35 |
+
volatile: [],
|
36 |
+
};
|
37 |
+
expect( reducer( state, actions.registerForm( 20, 'tribe_organizer' ) ) ).toEqual( {
|
38 |
+
byId: {
|
39 |
+
20: DEFAULT_STATE,
|
40 |
+
},
|
41 |
+
volatile: [],
|
42 |
+
} );
|
43 |
+
} );
|
44 |
+
|
45 |
+
it( 'Should pass the actions to the child reducer when block not present', () => {
|
46 |
+
const groupAction = [
|
47 |
+
actions.registerForm( 10, 'tribe_venue' ),
|
48 |
+
actions.editEntry( 20, { title: 'Modern tribe' } ),
|
49 |
+
actions.createDraft( 20, { title: 'Tribe' } ),
|
50 |
+
actions.setSubmit( 20 ),
|
51 |
+
actions.clearForm( 20 ),
|
52 |
+
actions.setSaving( 20, true ),
|
53 |
+
];
|
54 |
+
|
55 |
+
groupAction.forEach( ( action ) => {
|
56 |
+
reducer( {}, action );
|
57 |
+
expect( form ).toHaveBeenCalledWith( undefined, action );
|
58 |
+
expect( form ).toHaveBeenCalledTimes( 1 );
|
59 |
+
form.mockClear();
|
60 |
+
} );
|
61 |
+
} );
|
62 |
+
|
63 |
+
it( 'It should pass the block to the child reducer', () => {
|
64 |
+
const groupAction = [
|
65 |
+
actions.registerForm( 10, 'tribe_venue' ),
|
66 |
+
actions.editEntry( 20, { title: 'Modern tribe' } ),
|
67 |
+
actions.createDraft( 20, { title: 'Tribe' } ),
|
68 |
+
actions.setSubmit( 20 ),
|
69 |
+
actions.clearForm( 20 ),
|
70 |
+
actions.setSaving( 20, true ),
|
71 |
+
];
|
72 |
+
|
73 |
+
const state = {
|
74 |
+
byId: {
|
75 |
+
10: DEFAULT_STATE,
|
76 |
+
20: DEFAULT_STATE,
|
77 |
+
},
|
78 |
+
};
|
79 |
+
|
80 |
+
groupAction.forEach( ( action ) => {
|
81 |
+
reducer( state, action );
|
82 |
+
expect( form ).toHaveBeenCalledWith( DEFAULT_STATE, action );
|
83 |
+
expect( form ).toHaveBeenCalledTimes( 1 );
|
84 |
+
form.mockClear();
|
85 |
+
} );
|
86 |
+
} );
|
87 |
+
} );
|
88 |
+
|
common/src/modules/data/forms/__tests__/selectors.test.js
ADDED
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { selectors } from '@moderntribe/common/data/forms';
|
5 |
+
import { DEFAULT_STATE } from '@moderntribe/common/data/forms/reducers/form';
|
6 |
+
|
7 |
+
const state = {
|
8 |
+
events: {
|
9 |
+
},
|
10 |
+
forms: {
|
11 |
+
byId: {
|
12 |
+
99: {
|
13 |
+
...DEFAULT_STATE,
|
14 |
+
type: 'tribe_organizers',
|
15 |
+
create: true,
|
16 |
+
fields: {
|
17 |
+
name: 'Modern Tribe',
|
18 |
+
description: 'The Next Generation of Digital Agency',
|
19 |
+
},
|
20 |
+
},
|
21 |
+
100: {
|
22 |
+
...DEFAULT_STATE,
|
23 |
+
edit: true,
|
24 |
+
},
|
25 |
+
101: {
|
26 |
+
...DEFAULT_STATE,
|
27 |
+
submit: true,
|
28 |
+
},
|
29 |
+
102: {
|
30 |
+
...DEFAULT_STATE,
|
31 |
+
saving: true,
|
32 |
+
},
|
33 |
+
},
|
34 |
+
volatile: [ 100, 102 ],
|
35 |
+
},
|
36 |
+
};
|
37 |
+
|
38 |
+
describe( '[STORE] - Forms selectors', () => {
|
39 |
+
it( 'Should return the forms blocks', () => {
|
40 |
+
expect( selectors.formSelector( state, { name: 99 } ) ).toEqual( state.forms.byId[ '99' ] );
|
41 |
+
expect( selectors.formSelector( state, { name: 100 } ) ).toEqual( state.forms.byId[ '100' ] );
|
42 |
+
expect( selectors.formSelector( state, { name: 200 } ) ).toBe( undefined );
|
43 |
+
} );
|
44 |
+
|
45 |
+
it( 'Should return the form type', () => {
|
46 |
+
expect( selectors.getFormType( state, { name: 99 } ) ).toBe( 'tribe_organizers' );
|
47 |
+
expect( selectors.getFormType( state, { name: 100 } ) ).toBe( DEFAULT_STATE.type );
|
48 |
+
} );
|
49 |
+
|
50 |
+
it( 'Should return the edit value', () => {
|
51 |
+
expect( selectors.getFormEdit( state, { name: 100 } ) ).toBe( true );
|
52 |
+
expect( selectors.getFormEdit( state, { name: 99 } ) ).toBe( false );
|
53 |
+
expect( selectors.getFormEdit( state, { name: 101 } ) ).toBe( false );
|
54 |
+
expect( selectors.getFormEdit( state, { name: 102 } ) ).toBe( false );
|
55 |
+
} );
|
56 |
+
|
57 |
+
it( 'Should return the create value', () => {
|
58 |
+
expect( selectors.getFormCreate( state, { name: 99 } ) ).toBe( true );
|
59 |
+
expect( selectors.getFormCreate( state, { name: 100 } ) ).toBe( false );
|
60 |
+
expect( selectors.getFormCreate( state, { name: 101 } ) ).toBe( false );
|
61 |
+
expect( selectors.getFormCreate( state, { name: 102 } ) ).toBe( false );
|
62 |
+
} );
|
63 |
+
|
64 |
+
it( 'Should return the submit value', () => {
|
65 |
+
expect( selectors.getFormSubmit( state, { name: 101 } ) ).toBe( true );
|
66 |
+
expect( selectors.getFormSubmit( state, { name: 99 } ) ).toBe( false );
|
67 |
+
expect( selectors.getFormSubmit( state, { name: 100 } ) ).toBe( false );
|
68 |
+
expect( selectors.getFormSubmit( state, { name: 102 } ) ).toBe( false );
|
69 |
+
} );
|
70 |
+
|
71 |
+
it( 'Should return the saving value', () => {
|
72 |
+
expect( selectors.getFormSaving( state, { name: 102 } ) ).toBe( true );
|
73 |
+
expect( selectors.getFormSaving( state, { name: 99 } ) ).toBe( false );
|
74 |
+
expect( selectors.getFormSaving( state, { name: 100 } ) ).toBe( false );
|
75 |
+
expect( selectors.getFormSaving( state, { name: 101 } ) ).toBe( false );
|
76 |
+
} );
|
77 |
+
|
78 |
+
it( 'Should return the form fields', () => {
|
79 |
+
expect( selectors.getFormFields( state, { name: 99 } ) )
|
80 |
+
.toEqual( state.forms.byId[ '99' ].fields );
|
81 |
+
expect( selectors.getFormFields( state, { name: 100 } ) ).toEqual( {} );
|
82 |
+
expect( selectors.getFormFields( state, { name: 101 } ) ).toEqual( {} );
|
83 |
+
expect( selectors.getFormFields( state, { name: 102 } ) ).toEqual( {} );
|
84 |
+
} );
|
85 |
+
|
86 |
+
it( 'Should return the volatile fields', () => {
|
87 |
+
expect( selectors.getVolatile( state ) ).toEqual( [ 100, 102 ] );
|
88 |
+
} );
|
89 |
+
} );
|
common/src/modules/data/forms/__tests__/types.js
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { types } from '@moderntribe/common/data/forms';
|
5 |
+
import { PREFIX_COMMON_STORE } from '@moderntribe/common/data/utils';
|
6 |
+
|
7 |
+
describe( '[STORE] - Form types', () => {
|
8 |
+
it( 'Should return the types values', () => {
|
9 |
+
expect( types.REMOVE_VOLATILE_ID ).toBe( `${ PREFIX_COMMON_STORE }/REMOVE_VOLATILE_ID` );
|
10 |
+
expect( types.ADD_VOLATILE_ID ).toBe( `${ PREFIX_COMMON_STORE }/ADD_VOLATILE_ID` );
|
11 |
+
expect( types.ADD_FORM ).toBe( `${ PREFIX_COMMON_STORE }/ADD_FORM` );
|
12 |
+
expect( types.SET_SAVING_FORM ).toBe( `${ PREFIX_COMMON_STORE }/SET_SAVING_FORM` );
|
13 |
+
expect( types.SUBMIT_FORM ).toBe( `${ PREFIX_COMMON_STORE }/SUBMIT_FORM` );
|
14 |
+
expect( types.CREATE_FORM_DRAFT ).toBe( `${ PREFIX_COMMON_STORE }/CREATE_FORM_DRAFT` );
|
15 |
+
expect( types.EDIT_FORM_ENTRY ).toBe( `${ PREFIX_COMMON_STORE }/EDIT_FORM_ENTRY` );
|
16 |
+
expect( types.SET_FORM_FIELDS ).toBe( `${ PREFIX_COMMON_STORE }/SET_FORM_FIELDS` );
|
17 |
+
expect( types.CLEAR_FORM ).toBe( `${ PREFIX_COMMON_STORE }/CLEAR_FORM` );
|
18 |
+
} );
|
19 |
+
} );
|
common/src/modules/data/forms/actions.js
ADDED
@@ -0,0 +1,153 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { isEmpty, get } from 'lodash';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import { actions as requestActions } from '@moderntribe/common/store/middlewares/request';
|
10 |
+
|
11 |
+
import * as types from './types';
|
12 |
+
import * as selectors from './selectors';
|
13 |
+
|
14 |
+
export const registerForm = ( id, type ) => ( {
|
15 |
+
type: types.ADD_FORM,
|
16 |
+
payload: {
|
17 |
+
id,
|
18 |
+
type,
|
19 |
+
},
|
20 |
+
} );
|
21 |
+
|
22 |
+
export const clearForm = ( id ) => ( {
|
23 |
+
type: types.CLEAR_FORM,
|
24 |
+
payload: {
|
25 |
+
id,
|
26 |
+
},
|
27 |
+
} );
|
28 |
+
|
29 |
+
export const createDraft = ( id, fields ) => ( {
|
30 |
+
type: types.CREATE_FORM_DRAFT,
|
31 |
+
payload: {
|
32 |
+
id,
|
33 |
+
fields,
|
34 |
+
},
|
35 |
+
} );
|
36 |
+
|
37 |
+
export const editEntry = ( id, fields ) => ( {
|
38 |
+
type: types.EDIT_FORM_ENTRY,
|
39 |
+
payload: {
|
40 |
+
id,
|
41 |
+
fields,
|
42 |
+
},
|
43 |
+
} );
|
44 |
+
|
45 |
+
export const setSubmit = ( id ) => ( {
|
46 |
+
type: types.SUBMIT_FORM,
|
47 |
+
payload: {
|
48 |
+
id,
|
49 |
+
},
|
50 |
+
} );
|
51 |
+
|
52 |
+
export const setSaving = ( id, saving ) => ( {
|
53 |
+
type: types.SET_SAVING_FORM,
|
54 |
+
payload: {
|
55 |
+
id,
|
56 |
+
saving,
|
57 |
+
},
|
58 |
+
} );
|
59 |
+
|
60 |
+
export const addVolatile = ( id ) => ( {
|
61 |
+
type: types.ADD_VOLATILE_ID,
|
62 |
+
payload: {
|
63 |
+
id,
|
64 |
+
},
|
65 |
+
} );
|
66 |
+
|
67 |
+
export const removeVolatile = ( id ) => ( {
|
68 |
+
type: types.REMOVE_VOLATILE_ID,
|
69 |
+
payload: {
|
70 |
+
id,
|
71 |
+
},
|
72 |
+
} );
|
73 |
+
|
74 |
+
export const sendForm = ( id, fields = {}, completed ) => ( dispatch, getState ) => {
|
75 |
+
const state = getState();
|
76 |
+
const props = { name: id };
|
77 |
+
const type = selectors.getFormType( state, props );
|
78 |
+
const create = selectors.getFormCreate( state, props );
|
79 |
+
const details = selectors.getFormFields( state, props );
|
80 |
+
const saving = selectors.getFormSaving( state, props );
|
81 |
+
|
82 |
+
if ( saving ) {
|
83 |
+
return;
|
84 |
+
}
|
85 |
+
|
86 |
+
const path = create
|
87 |
+
? `${ type }`
|
88 |
+
: `${ type }/${ details.id }`;
|
89 |
+
|
90 |
+
const options = {
|
91 |
+
path,
|
92 |
+
params: {
|
93 |
+
method: create ? 'POST' : 'PUT',
|
94 |
+
body: JSON.stringify( fields ),
|
95 |
+
},
|
96 |
+
actions: {
|
97 |
+
start: () => dispatch( setSaving( id, true ) ),
|
98 |
+
success: ( { body } ) => {
|
99 |
+
const postID = get( body, 'id', '' );
|
100 |
+
|
101 |
+
if ( create && postID ) {
|
102 |
+
dispatch( addVolatile( postID ) );
|
103 |
+
}
|
104 |
+
completed( body );
|
105 |
+
dispatch( clearForm( id ) );
|
106 |
+
dispatch( setSaving( id, false ) );
|
107 |
+
},
|
108 |
+
error: () => {
|
109 |
+
dispatch( clearForm( id ) );
|
110 |
+
dispatch( setSaving( id, false ) );
|
111 |
+
},
|
112 |
+
},
|
113 |
+
};
|
114 |
+
dispatch( requestActions.wpRequest( options ) );
|
115 |
+
};
|
116 |
+
|
117 |
+
const deleteEntry = ( dispatch ) => ( path ) => ( { body } ) => {
|
118 |
+
const { id, status } = body;
|
119 |
+
|
120 |
+
if ( 'draft' !== status ) {
|
121 |
+
dispatch( removeVolatile( id ) );
|
122 |
+
return;
|
123 |
+
}
|
124 |
+
|
125 |
+
const options = {
|
126 |
+
path,
|
127 |
+
params: {
|
128 |
+
method: 'DELETE',
|
129 |
+
},
|
130 |
+
actions: {
|
131 |
+
success: () => dispatch( removeVolatile( id ) ),
|
132 |
+
},
|
133 |
+
};
|
134 |
+
dispatch( requestActions.wpRequest( options ) );
|
135 |
+
};
|
136 |
+
|
137 |
+
export const maybeRemoveEntry = ( id, details = {} ) => ( dispatch, getState ) => {
|
138 |
+
const state = getState();
|
139 |
+
const type = selectors.getFormType( state, { name: id } );
|
140 |
+
|
141 |
+
if ( isEmpty( details ) ) {
|
142 |
+
return;
|
143 |
+
}
|
144 |
+
|
145 |
+
const path = `${ type }/${ details.id }`;
|
146 |
+
const options = {
|
147 |
+
path,
|
148 |
+
actions: {
|
149 |
+
success: deleteEntry( dispatch )( path ),
|
150 |
+
},
|
151 |
+
};
|
152 |
+
dispatch( requestActions.wpRequest( options ) );
|
153 |
+
};
|
common/src/modules/data/forms/index.js
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import reducer from './reducer';
|
5 |
+
|
6 |
+
import * as types from './types';
|
7 |
+
import * as actions from './actions';
|
8 |
+
import * as selectors from './selectors';
|
9 |
+
|
10 |
+
export default reducer;
|
11 |
+
|
12 |
+
export { types, actions, selectors };
|
common/src/modules/data/forms/reducer.js
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { combineReducers } from 'redux';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import * as types from './types';
|
10 |
+
import { form, volatile } from './reducers';
|
11 |
+
|
12 |
+
const byId = ( state = {}, action ) => {
|
13 |
+
switch ( action.type ) {
|
14 |
+
case types.ADD_FORM:
|
15 |
+
case types.CLEAR_FORM:
|
16 |
+
case types.SET_FORM_FIELDS:
|
17 |
+
case types.CREATE_FORM_DRAFT:
|
18 |
+
case types.EDIT_FORM_ENTRY:
|
19 |
+
case types.SUBMIT_FORM:
|
20 |
+
case types.SET_SAVING_FORM:
|
21 |
+
return {
|
22 |
+
...state,
|
23 |
+
[ action.payload.id ]: form( state[ action.payload.id ], action ),
|
24 |
+
};
|
25 |
+
default:
|
26 |
+
return state;
|
27 |
+
}
|
28 |
+
};
|
29 |
+
|
30 |
+
export default combineReducers( {
|
31 |
+
byId,
|
32 |
+
volatile,
|
33 |
+
} );
|
common/src/modules/data/forms/reducers/__tests__/__snapshots__/form.test.js.snap
ADDED
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`[STORE] - form reducer Should add a new form 1`] = `
|
4 |
+
Object {
|
5 |
+
"create": false,
|
6 |
+
"edit": false,
|
7 |
+
"fields": Object {},
|
8 |
+
"saving": false,
|
9 |
+
"submit": false,
|
10 |
+
"type": "tribe_organizers",
|
11 |
+
}
|
12 |
+
`;
|
13 |
+
|
14 |
+
exports[`[STORE] - form reducer Should clear a form 1`] = `
|
15 |
+
Object {
|
16 |
+
"create": false,
|
17 |
+
"edit": false,
|
18 |
+
"fields": Object {},
|
19 |
+
"saving": false,
|
20 |
+
"submit": false,
|
21 |
+
"type": "tribe_organizers",
|
22 |
+
}
|
23 |
+
`;
|
24 |
+
|
25 |
+
exports[`[STORE] - form reducer Should create a form draft 1`] = `
|
26 |
+
Object {
|
27 |
+
"create": true,
|
28 |
+
"edit": false,
|
29 |
+
"fields": Object {
|
30 |
+
"id": 20,
|
31 |
+
"title": "Modern Tribe",
|
32 |
+
},
|
33 |
+
"saving": false,
|
34 |
+
"submit": false,
|
35 |
+
"type": "tribe_events",
|
36 |
+
}
|
37 |
+
`;
|
38 |
+
|
39 |
+
exports[`[STORE] - form reducer Should edit the form entry 1`] = `
|
40 |
+
Object {
|
41 |
+
"create": false,
|
42 |
+
"edit": true,
|
43 |
+
"fields": Object {
|
44 |
+
"description": "",
|
45 |
+
"title": "Tribe",
|
46 |
+
},
|
47 |
+
"saving": false,
|
48 |
+
"submit": false,
|
49 |
+
"type": "tribe_events",
|
50 |
+
}
|
51 |
+
`;
|
52 |
+
|
53 |
+
exports[`[STORE] - form reducer Should submit the form 1`] = `
|
54 |
+
Object {
|
55 |
+
"create": false,
|
56 |
+
"edit": false,
|
57 |
+
"fields": Object {},
|
58 |
+
"saving": false,
|
59 |
+
"submit": true,
|
60 |
+
"type": "tribe_events",
|
61 |
+
}
|
62 |
+
`;
|
63 |
+
|
64 |
+
exports[`[STORE] - form reducer Should toggle the saving form flag 1`] = `
|
65 |
+
Object {
|
66 |
+
"create": false,
|
67 |
+
"edit": false,
|
68 |
+
"fields": Object {},
|
69 |
+
"saving": true,
|
70 |
+
"submit": false,
|
71 |
+
"type": "tribe_events",
|
72 |
+
}
|
73 |
+
`;
|
74 |
+
|
75 |
+
exports[`[STORE] - form reducer Should toggle the saving form flag 2`] = `
|
76 |
+
Object {
|
77 |
+
"create": false,
|
78 |
+
"edit": false,
|
79 |
+
"fields": Object {},
|
80 |
+
"saving": false,
|
81 |
+
"submit": false,
|
82 |
+
"type": "tribe_events",
|
83 |
+
}
|
84 |
+
`;
|
common/src/modules/data/forms/reducers/__tests__/form.test.js
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { form } from '@moderntribe/common/data/forms/reducers';
|
5 |
+
import { actions } from '@moderntribe/common/data/forms';
|
6 |
+
import { DEFAULT_STATE } from '@moderntribe/common/data/forms/reducers/form';
|
7 |
+
|
8 |
+
describe( '[STORE] - form reducer', () => {
|
9 |
+
it( 'Should return the default state', () => {
|
10 |
+
expect( form( undefined, {} ) ).toEqual( DEFAULT_STATE );
|
11 |
+
} );
|
12 |
+
|
13 |
+
it( 'Should add a new form', () => {
|
14 |
+
expect( form( DEFAULT_STATE, actions.registerForm( 20, 'tribe_organizers' ) ) ).toMatchSnapshot();
|
15 |
+
} );
|
16 |
+
|
17 |
+
it( 'Should clear a form', () => {
|
18 |
+
const state = {
|
19 |
+
...DEFAULT_STATE,
|
20 |
+
type: 'tribe_organizers',
|
21 |
+
};
|
22 |
+
expect( form( state, actions.clearForm( 20 ) ) ).toMatchSnapshot();
|
23 |
+
} );
|
24 |
+
|
25 |
+
it( 'Should create a form draft', () => {
|
26 |
+
const fields = {
|
27 |
+
id: 20,
|
28 |
+
title: 'Modern Tribe',
|
29 |
+
};
|
30 |
+
expect( form( DEFAULT_STATE, actions.createDraft( 20, fields ) ) ).toMatchSnapshot();
|
31 |
+
} );
|
32 |
+
|
33 |
+
it( 'Should toggle the saving form flag', () => {
|
34 |
+
expect( form( DEFAULT_STATE, actions.setSaving( 20, true ) ) ).toMatchSnapshot();
|
35 |
+
expect( form( DEFAULT_STATE, actions.setSaving( 20, false ) ) ).toMatchSnapshot();
|
36 |
+
} );
|
37 |
+
|
38 |
+
it( 'Should edit the form entry', () => {
|
39 |
+
const fields = {
|
40 |
+
title: 'Tribe',
|
41 |
+
description: '',
|
42 |
+
};
|
43 |
+
expect( form( DEFAULT_STATE, actions.editEntry( 20, fields ) ) ).toMatchSnapshot();
|
44 |
+
} );
|
45 |
+
|
46 |
+
it( 'Should submit the form', () => {
|
47 |
+
expect( form( DEFAULT_STATE, actions.setSubmit( 20 ) ) ).toMatchSnapshot();
|
48 |
+
} );
|
49 |
+
} );
|
common/src/modules/data/forms/reducers/__tests__/volatile.test.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { volatile } from '@moderntribe/common/data/forms/reducers';
|
5 |
+
import { actions } from '@moderntribe/common/data/forms';
|
6 |
+
|
7 |
+
describe( '[STORE] - Volatile reducer', () => {
|
8 |
+
it( 'Should return the default state', () => {
|
9 |
+
expect( volatile( undefined, {} ) ).toEqual( [] );
|
10 |
+
} );
|
11 |
+
|
12 |
+
it( 'Should add a new volatile value', () => {
|
13 |
+
expect( volatile( [], actions.addVolatile( 20 ) ) ).toEqual( [ 20 ] );
|
14 |
+
expect( volatile( [ 20 ], actions.addVolatile( 10 ) ) ).toEqual( [ 20, 10 ] );
|
15 |
+
} );
|
16 |
+
|
17 |
+
it( 'Should remove a volatile value', () => {
|
18 |
+
expect( volatile( [], actions.removeVolatile( 20 ) ) ).toEqual( [] );
|
19 |
+
expect( volatile( [ 20, 10 ], actions.removeVolatile( 20 ) ) ).toEqual( [ 10 ] );
|
20 |
+
expect( volatile( [ 20, 10 ], actions.removeVolatile( 10 ) ) ).toEqual( [ 20 ] );
|
21 |
+
expect( volatile( [ 10 ], actions.removeVolatile( 10 ) ) ).toEqual( [] );
|
22 |
+
} );
|
23 |
+
} );
|
common/src/modules/data/forms/reducers/form.js
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { EVENT } from '@moderntribe/common/data/editor/post-types';
|
5 |
+
import * as types from '@moderntribe/common/data/forms/types';
|
6 |
+
|
7 |
+
export const DEFAULT_STATE = {
|
8 |
+
edit: false,
|
9 |
+
create: false,
|
10 |
+
submit: false,
|
11 |
+
saving: false,
|
12 |
+
fields: {},
|
13 |
+
type: EVENT,
|
14 |
+
};
|
15 |
+
|
16 |
+
export default ( state = DEFAULT_STATE, action ) => {
|
17 |
+
switch ( action.type ) {
|
18 |
+
case types.ADD_FORM:
|
19 |
+
return {
|
20 |
+
...state,
|
21 |
+
type: action.payload.type,
|
22 |
+
};
|
23 |
+
case types.CLEAR_FORM:
|
24 |
+
return {
|
25 |
+
...state,
|
26 |
+
...DEFAULT_STATE,
|
27 |
+
type: state.type,
|
28 |
+
};
|
29 |
+
case types.CREATE_FORM_DRAFT:
|
30 |
+
return {
|
31 |
+
...state,
|
32 |
+
submit: false,
|
33 |
+
edit: false,
|
34 |
+
create: true,
|
35 |
+
fields: action.payload.fields,
|
36 |
+
};
|
37 |
+
case types.SET_SAVING_FORM:
|
38 |
+
return {
|
39 |
+
...state,
|
40 |
+
saving: action.payload.saving,
|
41 |
+
};
|
42 |
+
case types.EDIT_FORM_ENTRY:
|
43 |
+
return {
|
44 |
+
...state,
|
45 |
+
create: false,
|
46 |
+
submit: false,
|
47 |
+
edit: true,
|
48 |
+
fields: action.payload.fields,
|
49 |
+
};
|
50 |
+
case types.SUBMIT_FORM:
|
51 |
+
return {
|
52 |
+
...state,
|
53 |
+
submit: true,
|
54 |
+
};
|
55 |
+
default:
|
56 |
+
return state;
|
57 |
+
}
|
58 |
+
};
|
common/src/modules/data/forms/reducers/index.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
export { default as form } from './form';
|
2 |
+
export { default as volatile } from './volatile';
|
common/src/modules/data/forms/reducers/volatile.js
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import * as types from '@moderntribe/common/data/forms/types';
|
5 |
+
|
6 |
+
export default ( state = [], action ) => {
|
7 |
+
switch ( action.type ) {
|
8 |
+
case types.ADD_VOLATILE_ID:
|
9 |
+
return [ ...state, action.payload.id ];
|
10 |
+
case types.REMOVE_VOLATILE_ID:
|
11 |
+
return state.filter( ( id ) => id !== action.payload.id );
|
12 |
+
default:
|
13 |
+
return state;
|
14 |
+
}
|
15 |
+
};
|
common/src/modules/data/forms/selectors.js
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { createSelector } from 'reselect';
|
5 |
+
import { DEFAULT_STATE } from './reducers/form';
|
6 |
+
|
7 |
+
export const formSelector = ( state, props ) => state.forms.byId[ props.name ];
|
8 |
+
|
9 |
+
export const getFormType = createSelector(
|
10 |
+
[ formSelector ],
|
11 |
+
( block ) => block ? block.type : DEFAULT_STATE.type
|
12 |
+
);
|
13 |
+
|
14 |
+
export const getFormEdit = createSelector(
|
15 |
+
[ formSelector ],
|
16 |
+
( block ) => block ? block.edit : DEFAULT_STATE.edit
|
17 |
+
);
|
18 |
+
|
19 |
+
export const getFormCreate = createSelector(
|
20 |
+
[ formSelector ],
|
21 |
+
( block ) => block ? block.create : DEFAULT_STATE.create,
|
22 |
+
);
|
23 |
+
|
24 |
+
export const getFormSubmit = createSelector(
|
25 |
+
[ formSelector ],
|
26 |
+
( block ) => block ? block.submit : DEFAULT_STATE.submit
|
27 |
+
);
|
28 |
+
|
29 |
+
export const getFormFields = createSelector(
|
30 |
+
[ formSelector ],
|
31 |
+
( block ) => block ? block.fields : DEFAULT_STATE.fields,
|
32 |
+
);
|
33 |
+
|
34 |
+
export const getFormSaving = createSelector(
|
35 |
+
[ formSelector ],
|
36 |
+
( block ) => block ? block.saving : DEFAULT_STATE.saving
|
37 |
+
);
|
38 |
+
|
39 |
+
export const getVolatile = ( state ) => state.forms.volatile;
|
common/src/modules/data/forms/types.js
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { PREFIX_COMMON_STORE } from '@moderntribe/common/data/utils';
|
5 |
+
|
6 |
+
export const ADD_FORM = `${ PREFIX_COMMON_STORE }/ADD_FORM`;
|
7 |
+
export const SET_FORM_FIELDS = `${ PREFIX_COMMON_STORE }/SET_FORM_FIELDS`;
|
8 |
+
export const CREATE_FORM_DRAFT = `${ PREFIX_COMMON_STORE }/CREATE_FORM_DRAFT`;
|
9 |
+
export const EDIT_FORM_ENTRY = `${ PREFIX_COMMON_STORE }/EDIT_FORM_ENTRY`;
|
10 |
+
export const SUBMIT_FORM = `${ PREFIX_COMMON_STORE }/SUBMIT_FORM`;
|
11 |
+
export const CLEAR_FORM = `${ PREFIX_COMMON_STORE }/CLEAR_FORM`;
|
12 |
+
export const SET_SAVING_FORM = `${ PREFIX_COMMON_STORE }/SET_SAVING_FORM`;
|
13 |
+
|
14 |
+
export const ADD_VOLATILE_ID = `${ PREFIX_COMMON_STORE }/ADD_VOLATILE_ID`;
|
15 |
+
export const REMOVE_VOLATILE_ID = `${ PREFIX_COMMON_STORE }/REMOVE_VOLATILE_ID`;
|
common/src/modules/data/index.js
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal Dependencies
|
3 |
+
*/
|
4 |
+
import * as editor from './editor/post-types';
|
5 |
+
import * as forms from './forms';
|
6 |
+
import * as plugins from './plugins';
|
7 |
+
export { default } from './reducers';
|
8 |
+
|
9 |
+
export { editor, forms, plugins };
|
common/src/modules/data/plugins/__tests__/__snapshots__/actions.test.js.snap
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Plugin actions Add Plugin 1`] = `
|
4 |
+
Object {
|
5 |
+
"payload": Object {
|
6 |
+
"name": "events",
|
7 |
+
},
|
8 |
+
"type": "@@MT/COMMON/ADD_PLUGIN",
|
9 |
+
}
|
10 |
+
`;
|
11 |
+
|
12 |
+
exports[`Plugin actions Remove Plugin 1`] = `
|
13 |
+
Object {
|
14 |
+
"payload": Object {
|
15 |
+
"name": "events",
|
16 |
+
},
|
17 |
+
"type": "@@MT/COMMON/REMOVE_PLUGIN",
|
18 |
+
}
|
19 |
+
`;
|
common/src/modules/data/plugins/__tests__/actions.test.js
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { actions } from '@moderntribe/common/data/plugins';
|
5 |
+
|
6 |
+
describe( 'Plugin actions', () => {
|
7 |
+
test( 'Add Plugin', () => {
|
8 |
+
expect( actions.addPlugin( 'events' ) ).toMatchSnapshot();
|
9 |
+
} );
|
10 |
+
|
11 |
+
test( 'Remove Plugin', () => {
|
12 |
+
expect( actions.removePlugin( 'events' ) ).toMatchSnapshot();
|
13 |
+
} );
|
14 |
+
} );
|
common/src/modules/data/plugins/__tests__/reducer.test.js
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import reducer, { actions } from '@moderntribe/common/data/plugins';
|
5 |
+
|
6 |
+
describe( 'Plugins reducer', () => {
|
7 |
+
it( 'Should return the default state', () => {
|
8 |
+
expect( reducer( undefined, {} ) ).toEqual( [] );
|
9 |
+
} );
|
10 |
+
|
11 |
+
it( 'Should add a new plugin as active', () => {
|
12 |
+
expect( reducer( {}, actions.addPlugin( 'events' ) ) ).toEqual( [ 'events' ] );
|
13 |
+
} );
|
14 |
+
|
15 |
+
it( 'Should avoid adding duplicates entries', () => {
|
16 |
+
const state = reducer( {}, actions.addPlugin( 'events' ) );
|
17 |
+
expect( reducer( state, actions.addPlugin( 'events' ) ) ).toEqual( [ 'events' ] );
|
18 |
+
} );
|
19 |
+
|
20 |
+
it( 'Should remove the plugin from the reducer', () => {
|
21 |
+
const state = reducer( {}, actions.addPlugin( 'events' ) );
|
22 |
+
expect( state ).toEqual( [ 'events' ] );
|
23 |
+
expect( reducer( state, actions.removePlugin( 'events' ) ) ).toEqual( [] );
|
24 |
+
} );
|
25 |
+
} );
|
common/src/modules/data/plugins/__tests__/selectors.test.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { selectors } from '@moderntribe/common/data/plugins';
|
5 |
+
|
6 |
+
describe( 'Plugin selectors', () => {
|
7 |
+
let state;
|
8 |
+
|
9 |
+
beforeEach( () => {
|
10 |
+
state = {
|
11 |
+
plugins: [ 'events' ],
|
12 |
+
};
|
13 |
+
} );
|
14 |
+
|
15 |
+
it( 'should have plugin', () => {
|
16 |
+
expect( selectors.hasPlugin( state, 'events' ) ).toEqual( true );
|
17 |
+
expect( selectors.hasPlugin( state )( 'events' ) ).toEqual( true );
|
18 |
+
} );
|
19 |
+
it( 'should not have plugin', () => {
|
20 |
+
expect( selectors.hasPlugin( state, 'events-pro' ) ).toEqual( false );
|
21 |
+
expect( selectors.hasPlugin( state )( 'events-pro' ) ).toEqual( false );
|
22 |
+
} );
|
23 |
+
} );
|
common/src/modules/data/plugins/__tests__/types.test.js
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { PREFIX_COMMON_STORE } from '@moderntribe/common/data/utils';
|
5 |
+
import { types } from '@moderntribe/common/data/plugins';
|
6 |
+
|
7 |
+
describe( 'Plugin types', () => {
|
8 |
+
it( 'Should return the types with a prefix', () => {
|
9 |
+
expect( types.ADD_PLUGIN ).toBe( `${ PREFIX_COMMON_STORE }/ADD_PLUGIN` );
|
10 |
+
expect( types.REMOVE_PLUGIN ).toBe( `${ PREFIX_COMMON_STORE }/REMOVE_PLUGIN` );
|
11 |
+
} );
|
12 |
+
} );
|
common/src/modules/data/plugins/actions.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import * as types from './types';
|
5 |
+
|
6 |
+
export const addPlugin = ( name ) => ( {
|
7 |
+
type: types.ADD_PLUGIN,
|
8 |
+
payload: {
|
9 |
+
name,
|
10 |
+
},
|
11 |
+
} );
|
12 |
+
|
13 |
+
export const removePlugin = ( name ) => ( {
|
14 |
+
type: types.REMOVE_PLUGIN,
|
15 |
+
payload: {
|
16 |
+
name,
|
17 |
+
},
|
18 |
+
} );
|
common/src/modules/data/plugins/constants.js
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
export const EVENTS_PLUGIN = 'events';
|
2 |
+
export const EVENTS_PRO_PLUGIN = 'events-pro';
|
3 |
+
export const TICKETS = 'tickets';
|
4 |
+
export const TICKETS_PLUS = 'tickets-plus';
|
common/src/modules/data/plugins/index.js
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import reducer from './reducer';
|
5 |
+
import * as types from './types';
|
6 |
+
import * as actions from './actions';
|
7 |
+
import * as selectors from './selectors';
|
8 |
+
import * as constants from './constants';
|
9 |
+
import * as proptypes from './proptypes';
|
10 |
+
|
11 |
+
export default reducer;
|
12 |
+
export { types, actions, selectors, constants, proptypes };
|
common/src/modules/data/plugins/proptypes.js
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External Dependencies
|
3 |
+
*/
|
4 |
+
import PropTypes from 'prop-types';
|
5 |
+
|
6 |
+
//
|
7 |
+
// ─── VENDOR ─────────────────────────────────────────────────────────────────────
|
8 |
+
//
|
9 |
+
|
10 |
+
export const ReactSelectOption = PropTypes.shape( {
|
11 |
+
label: PropTypes.string.isRequired,
|
12 |
+
value: PropTypes.any.isRequired,
|
13 |
+
} );
|
14 |
+
|
15 |
+
export const ReactSelectOptions = PropTypes.arrayOf( ReactSelectOption );
|
common/src/modules/data/plugins/reducer.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { uniq } from 'lodash';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import { types } from '@moderntribe/common/data/plugins';
|
10 |
+
|
11 |
+
export default ( state = [], action ) => {
|
12 |
+
switch ( action.type ) {
|
13 |
+
case types.ADD_PLUGIN:
|
14 |
+
return uniq( [ ...state, action.payload.name ] );
|
15 |
+
case types.REMOVE_PLUGIN:
|
16 |
+
return [ ...state ].filter( ( pluginName ) => pluginName !== action.payload.name );
|
17 |
+
default:
|
18 |
+
return state;
|
19 |
+
}
|
20 |
+
};
|
common/src/modules/data/plugins/selectors.js
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { includes } from 'lodash';
|
5 |
+
import { curry } from 'lodash/fp';
|
6 |
+
|
7 |
+
export const getPlugins = ( state ) => state.plugins;
|
8 |
+
|
9 |
+
export const hasPlugin = curry( ( state, plugin ) => includes( getPlugins( state ), plugin ) );
|
common/src/modules/data/plugins/types.js
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { PREFIX_COMMON_STORE } from '@moderntribe/common/data/utils';
|
5 |
+
|
6 |
+
export const ADD_PLUGIN = `${ PREFIX_COMMON_STORE }/ADD_PLUGIN`;
|
7 |
+
export const REMOVE_PLUGIN = `${ PREFIX_COMMON_STORE }/REMOVE_PLUGIN`;
|
common/src/modules/data/reducers.js
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { setupCreateReducer } from '@nfen/redux-reducer-injector';
|
5 |
+
import forms from './forms';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Internal dependencies
|
9 |
+
*/
|
10 |
+
import plugins from './plugins';
|
11 |
+
|
12 |
+
export default setupCreateReducer( {
|
13 |
+
plugins,
|
14 |
+
forms,
|
15 |
+
} );
|
common/src/modules/data/utils.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
export const PREFIX_COMMON_STORE = '@@MT/COMMON';
|
common/src/modules/elements/accordion/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Accordion Element renders an accordion 1`] = `
|
4 |
+
<div
|
5 |
+
aria-multiselectable="true"
|
6 |
+
className="tribe-editor__accordion"
|
7 |
+
role="tablist"
|
8 |
+
>
|
9 |
+
<article
|
10 |
+
className="tribe-editor__accordion__row"
|
11 |
+
>
|
12 |
+
<button
|
13 |
+
aria-controls="accordion-content-123"
|
14 |
+
aria-expanded="false"
|
15 |
+
aria-selected="false"
|
16 |
+
className="tribe-editor__button tribe-editor__accordion__row-header header-class"
|
17 |
+
id="accordion-header-123"
|
18 |
+
onClick={[Function]}
|
19 |
+
role="tab"
|
20 |
+
type="button"
|
21 |
+
>
|
22 |
+
this is header
|
23 |
+
</button>
|
24 |
+
<div
|
25 |
+
aria-hidden="true"
|
26 |
+
aria-labelledby="accordion-header-123"
|
27 |
+
className="tribe-editor__accordion__row-content content-class"
|
28 |
+
id="accordion-content-123"
|
29 |
+
role="tabpanel"
|
30 |
+
>
|
31 |
+
this is a content
|
32 |
+
</div>
|
33 |
+
</article>
|
34 |
+
</div>
|
35 |
+
`;
|
36 |
+
|
37 |
+
exports[`Accordion Element renders an accordion with wrapper class 1`] = `
|
38 |
+
<div
|
39 |
+
aria-multiselectable="true"
|
40 |
+
className="tribe-editor__accordion test-class"
|
41 |
+
role="tablist"
|
42 |
+
>
|
43 |
+
<article
|
44 |
+
className="tribe-editor__accordion__row"
|
45 |
+
>
|
46 |
+
<button
|
47 |
+
aria-controls="accordion-content-123"
|
48 |
+
aria-expanded="false"
|
49 |
+
aria-selected="false"
|
50 |
+
className="tribe-editor__button tribe-editor__accordion__row-header header-class"
|
51 |
+
id="accordion-header-123"
|
52 |
+
onClick={[Function]}
|
53 |
+
role="tab"
|
54 |
+
type="button"
|
55 |
+
>
|
56 |
+
this is header
|
57 |
+
</button>
|
58 |
+
<div
|
59 |
+
aria-hidden="true"
|
60 |
+
aria-labelledby="accordion-header-123"
|
61 |
+
className="tribe-editor__accordion__row-content content-class"
|
62 |
+
id="accordion-content-123"
|
63 |
+
role="tabpanel"
|
64 |
+
>
|
65 |
+
this is a content
|
66 |
+
</div>
|
67 |
+
</article>
|
68 |
+
</div>
|
69 |
+
`;
|
70 |
+
|
71 |
+
exports[`Accordion Element renders null 1`] = `null`;
|
common/src/modules/elements/accordion/__tests__/element.test.js
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import renderer from 'react-test-renderer';
|
6 |
+
import { noop } from 'lodash';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
import { Accordion } from '@moderntribe/common/elements';
|
12 |
+
|
13 |
+
let rows;
|
14 |
+
|
15 |
+
describe( 'Accordion Element', () => {
|
16 |
+
beforeEach( () => {
|
17 |
+
rows = [
|
18 |
+
{
|
19 |
+
accordionId: '123',
|
20 |
+
content: 'this is a content',
|
21 |
+
contentClassName: 'content-class',
|
22 |
+
header: 'this is header',
|
23 |
+
headerClassName: 'header-class',
|
24 |
+
onClick: noop,
|
25 |
+
onClose: noop,
|
26 |
+
onOpen: noop,
|
27 |
+
},
|
28 |
+
];
|
29 |
+
} );
|
30 |
+
|
31 |
+
it( 'renders null', () => {
|
32 |
+
const component = renderer.create( <Accordion /> );
|
33 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
34 |
+
} );
|
35 |
+
|
36 |
+
it( 'renders an accordion', () => {
|
37 |
+
const component = renderer.create( <Accordion rows={ rows } /> );
|
38 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
39 |
+
} );
|
40 |
+
|
41 |
+
it( 'renders an accordion with wrapper class', () => {
|
42 |
+
const component = renderer.create( <Accordion className="test-class" rows={ rows } /> );
|
43 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
44 |
+
} );
|
45 |
+
} );
|
common/src/modules/elements/accordion/element.js
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
import Row from './row/template';
|
12 |
+
import './style.pcss';
|
13 |
+
|
14 |
+
const Accordion = ( {
|
15 |
+
className,
|
16 |
+
containerAttrs,
|
17 |
+
rows,
|
18 |
+
} ) => (
|
19 |
+
rows.length
|
20 |
+
? (
|
21 |
+
<div
|
22 |
+
aria-multiselectable="true"
|
23 |
+
className={ classNames(
|
24 |
+
'tribe-editor__accordion',
|
25 |
+
className,
|
26 |
+
) }
|
27 |
+
role="tablist"
|
28 |
+
{ ...containerAttrs }
|
29 |
+
>
|
30 |
+
{ rows.map( ( row, index ) => (
|
31 |
+
<Row key={ index } { ...row } />
|
32 |
+
) ) }
|
33 |
+
</div>
|
34 |
+
)
|
35 |
+
: null
|
36 |
+
);
|
37 |
+
|
38 |
+
Accordion.defaultProps = {
|
39 |
+
containerAttrs: {},
|
40 |
+
rows: [],
|
41 |
+
};
|
42 |
+
|
43 |
+
Accordion.propTypes = {
|
44 |
+
className: PropTypes.string,
|
45 |
+
containerAttrs: PropTypes.object,
|
46 |
+
rows: PropTypes.arrayOf( PropTypes.shape( {
|
47 |
+
accordionId: PropTypes.string.isRequired,
|
48 |
+
content: PropTypes.node,
|
49 |
+
contentClassName: PropTypes.string,
|
50 |
+
header: PropTypes.node,
|
51 |
+
headerClassName: PropTypes.string,
|
52 |
+
onClick: PropTypes.func,
|
53 |
+
onClose: PropTypes.func,
|
54 |
+
onOpen: PropTypes.func,
|
55 |
+
} ).isRequired ).isRequired,
|
56 |
+
};
|
57 |
+
|
58 |
+
export default Accordion;
|
common/src/modules/elements/accordion/row/__tests__/__snapshots__/template.test.js.snap
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Accordion Row Element renders an accordion row 1`] = `
|
4 |
+
<article
|
5 |
+
className="tribe-editor__accordion__row"
|
6 |
+
>
|
7 |
+
<button
|
8 |
+
aria-controls="accordion-content-123"
|
9 |
+
aria-expanded="false"
|
10 |
+
aria-selected="false"
|
11 |
+
className="tribe-editor__button tribe-editor__accordion__row-header header-class"
|
12 |
+
data-attr="header-attr-value"
|
13 |
+
id="accordion-header-123"
|
14 |
+
onClick={[Function]}
|
15 |
+
role="tab"
|
16 |
+
type="button"
|
17 |
+
>
|
18 |
+
this is header
|
19 |
+
</button>
|
20 |
+
<div
|
21 |
+
aria-hidden="true"
|
22 |
+
aria-labelledby="accordion-header-123"
|
23 |
+
className="tribe-editor__accordion__row-content content-class"
|
24 |
+
data-attr="content-attr-value"
|
25 |
+
id="accordion-content-123"
|
26 |
+
role="tabpanel"
|
27 |
+
>
|
28 |
+
this is a content
|
29 |
+
</div>
|
30 |
+
</article>
|
31 |
+
`;
|
common/src/modules/elements/accordion/row/__tests__/template.test.js
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import Row from '@moderntribe/common/elements/accordion/row/template';
|
10 |
+
|
11 |
+
let row;
|
12 |
+
|
13 |
+
describe( 'Accordion Row Element', () => {
|
14 |
+
beforeEach( () => {
|
15 |
+
row = {
|
16 |
+
accordionId: '123',
|
17 |
+
content: 'this is a content',
|
18 |
+
contentAttrs: { 'data-attr': 'content-attr-value' },
|
19 |
+
contentClassName: 'content-class',
|
20 |
+
header: 'this is header',
|
21 |
+
headerAttrs: { 'data-attr': 'header-attr-value' },
|
22 |
+
headerClassName: 'header-class',
|
23 |
+
onClick: jest.fn(),
|
24 |
+
onClose: jest.fn(),
|
25 |
+
onOpen: jest.fn(),
|
26 |
+
};
|
27 |
+
} );
|
28 |
+
|
29 |
+
it( 'renders an accordion row', () => {
|
30 |
+
const component = renderer.create( <Row { ...row } /> );
|
31 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
32 |
+
} );
|
33 |
+
|
34 |
+
it( 'executes onClick handler', () => {
|
35 |
+
const component = mount( <Row { ...row } /> );
|
36 |
+
component.find( 'button' ).simulate( 'click' );
|
37 |
+
expect( row.onClick ).toHaveBeenCalled();
|
38 |
+
expect( row.onClick ).toHaveBeenCalledTimes( 1 );
|
39 |
+
} );
|
40 |
+
|
41 |
+
it( 'executes onOpen and onClose handlers', async () => {
|
42 |
+
const component = mount( <Row { ...row } /> );
|
43 |
+
component.find( 'button' ).simulate( 'click' );
|
44 |
+
await setTimeout( () => {
|
45 |
+
component.find( 'button' ).simulate( 'click' );
|
46 |
+
setTimeout( () => {
|
47 |
+
expect( row.onOpen ).toHaveBeenCalled();
|
48 |
+
expect( row.onOpen ).toHaveBeenCalledTimes( 1 );
|
49 |
+
expect( row.onClose ).toHaveBeenCalled();
|
50 |
+
expect( row.onClose ).toHaveBeenCalledTimes( 1 );
|
51 |
+
expect( row.onClick ).toHaveBeenCalled();
|
52 |
+
expect( row.onClick ).toHaveBeenCalledTimes( 2 );
|
53 |
+
}, 250 );
|
54 |
+
}, 250 );
|
55 |
+
} );
|
56 |
+
} );
|
common/src/modules/elements/accordion/row/template.js
ADDED
@@ -0,0 +1,129 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React, { PureComponent } from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
import Button from '@moderntribe/common/elements/button/element';
|
12 |
+
import { slide } from '@moderntribe/common/utils';
|
13 |
+
|
14 |
+
class Row extends PureComponent {
|
15 |
+
static propTypes = {
|
16 |
+
accordionId: PropTypes.string.isRequired,
|
17 |
+
content: PropTypes.node,
|
18 |
+
contentAttrs: PropTypes.object,
|
19 |
+
contentClassName: PropTypes.string,
|
20 |
+
header: PropTypes.node,
|
21 |
+
headerAttrs: PropTypes.object,
|
22 |
+
headerClassName: PropTypes.string,
|
23 |
+
onClick: PropTypes.func,
|
24 |
+
onClose: PropTypes.func,
|
25 |
+
onOpen: PropTypes.func,
|
26 |
+
};
|
27 |
+
|
28 |
+
static defaultProps = {
|
29 |
+
contentAttrs: {},
|
30 |
+
headerAttrs: {},
|
31 |
+
};
|
32 |
+
|
33 |
+
constructor( props ) {
|
34 |
+
super( props );
|
35 |
+
this.state = {
|
36 |
+
isActive: false,
|
37 |
+
};
|
38 |
+
this.headerId = `accordion-header-${ this.props.accordionId }`;
|
39 |
+
this.contentId = `accordion-content-${ this.props.accordionId }`;
|
40 |
+
}
|
41 |
+
|
42 |
+
getHeaderAttrs = () => {
|
43 |
+
const _isActive = this.state.isActive ? 'true' : 'false';
|
44 |
+
return {
|
45 |
+
'aria-controls': this.contentId,
|
46 |
+
'aria-expanded': _isActive,
|
47 |
+
'aria-selected': _isActive,
|
48 |
+
id: this.headerId,
|
49 |
+
role: 'tab',
|
50 |
+
...this.props.headerAttrs,
|
51 |
+
};
|
52 |
+
};
|
53 |
+
|
54 |
+
getContentAttrs = () => ( {
|
55 |
+
'aria-hidden': this.state.isActive ? 'false' : 'true',
|
56 |
+
'aria-labelledby': this.headerId,
|
57 |
+
id: this.contentId,
|
58 |
+
role: 'tabpanel',
|
59 |
+
...this.props.contentAttrs,
|
60 |
+
} );
|
61 |
+
|
62 |
+
onClose = ( parent, e ) => () => {
|
63 |
+
parent.classList.remove( 'closing' );
|
64 |
+
parent.classList.add( 'closed' );
|
65 |
+
this.props.onClose && this.props.onClose( e );
|
66 |
+
};
|
67 |
+
|
68 |
+
onOpen = ( parent, e ) => () => {
|
69 |
+
parent.classList.remove( 'opening' );
|
70 |
+
parent.classList.add( 'open' );
|
71 |
+
this.props.onOpen && this.props.onOpen( e );
|
72 |
+
};
|
73 |
+
|
74 |
+
onClick = ( e ) => {
|
75 |
+
const { contentId, onClick } = this.props;
|
76 |
+
const parent = e.currentTarget.parentNode;
|
77 |
+
const content = e.currentTarget.nextElementSibling;
|
78 |
+
|
79 |
+
this.state.isActive
|
80 |
+
? parent.classList.add( 'closing' )
|
81 |
+
: parent.classList.add( 'opening' );
|
82 |
+
this.state.isActive
|
83 |
+
? slide.up( content, contentId, 200, this.onClose( parent, e ) )
|
84 |
+
: slide.down( content, contentId, 200, this.onOpen( parent, e ) );
|
85 |
+
|
86 |
+
onClick && onClick( e );
|
87 |
+
this.setState( ( state ) => ( { isActive: ! state.isActive } ) );
|
88 |
+
};
|
89 |
+
|
90 |
+
render() {
|
91 |
+
const {
|
92 |
+
content,
|
93 |
+
contentClassName,
|
94 |
+
header,
|
95 |
+
headerClassName,
|
96 |
+
} = this.props;
|
97 |
+
|
98 |
+
return (
|
99 |
+
<article
|
100 |
+
className={ classNames(
|
101 |
+
'tribe-editor__accordion__row',
|
102 |
+
{ active: this.state.isActive },
|
103 |
+
) }
|
104 |
+
>
|
105 |
+
<Button
|
106 |
+
className={ classNames(
|
107 |
+
'tribe-editor__accordion__row-header',
|
108 |
+
headerClassName,
|
109 |
+
) }
|
110 |
+
onClick={ ( e ) => this.onClick( e ) }
|
111 |
+
{ ...this.getHeaderAttrs() }
|
112 |
+
>
|
113 |
+
{ header }
|
114 |
+
</Button>
|
115 |
+
<div
|
116 |
+
className={ classNames(
|
117 |
+
'tribe-editor__accordion__row-content',
|
118 |
+
contentClassName,
|
119 |
+
) }
|
120 |
+
{ ...this.getContentAttrs() }
|
121 |
+
>
|
122 |
+
{ content }
|
123 |
+
</div>
|
124 |
+
</article>
|
125 |
+
);
|
126 |
+
}
|
127 |
+
}
|
128 |
+
|
129 |
+
export default Row;
|
common/src/modules/elements/accordion/style.pcss
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tribe-editor__accordion__row-content {
|
2 |
+
max-height: 0;
|
3 |
+
overflow: hidden;
|
4 |
+
|
5 |
+
&.active {
|
6 |
+
max-height: none;
|
7 |
+
}
|
8 |
+
}
|
common/src/modules/elements/block-icon/index.js
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import { TEC } from '@moderntribe/common/icons';
|
10 |
+
import './style.pcss';
|
11 |
+
|
12 |
+
export default () => (
|
13 |
+
<div className="tribe-editor__icons__container tribe-editor__icons--tec">
|
14 |
+
<TEC />
|
15 |
+
</div>
|
16 |
+
);
|
common/src/modules/elements/block-icon/style.pcss
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.editor-block-inspector__card {
|
2 |
+
.tribe-editor__icons__container {
|
3 |
+
padding: 4px;
|
4 |
+
display: flex;
|
5 |
+
align-items: center;
|
6 |
+
justify-content: center;
|
7 |
+
|
8 |
+
svg {
|
9 |
+
width: 28px;
|
10 |
+
height: 28px;
|
11 |
+
}
|
12 |
+
}
|
13 |
+
|
14 |
+
.tribe-editor__icons--tec {
|
15 |
+
background-color: #199FD1;
|
16 |
+
}
|
17 |
+
}
|
18 |
+
|
19 |
+
|
20 |
+
button[class^='editor-block-list-item-tribe-'], button[class*=' editor-block-list-item-tribe-'] {
|
21 |
+
svg {
|
22 |
+
color: #16a0d6;
|
23 |
+
}
|
24 |
+
}
|
common/src/modules/elements/button/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Button Element renders button 1`] = `
|
4 |
+
<button
|
5 |
+
className="tribe-editor__button"
|
6 |
+
onClick={[Function]}
|
7 |
+
type="button"
|
8 |
+
/>
|
9 |
+
`;
|
10 |
+
|
11 |
+
exports[`Button Element renders button with class 1`] = `
|
12 |
+
<button
|
13 |
+
className="tribe-editor__button test-class"
|
14 |
+
onClick={[Function]}
|
15 |
+
type="button"
|
16 |
+
/>
|
17 |
+
`;
|
18 |
+
|
19 |
+
exports[`Button Element renders button with extra attributes 1`] = `
|
20 |
+
<button
|
21 |
+
className="tribe-editor__button"
|
22 |
+
hello="world"
|
23 |
+
onClick={[Function]}
|
24 |
+
test="one-two-three"
|
25 |
+
type="button"
|
26 |
+
/>
|
27 |
+
`;
|
28 |
+
|
29 |
+
exports[`Button Element renders button with label 1`] = `
|
30 |
+
<button
|
31 |
+
className="tribe-editor__button"
|
32 |
+
onClick={[Function]}
|
33 |
+
type="button"
|
34 |
+
>
|
35 |
+
Hello
|
36 |
+
</button>
|
37 |
+
`;
|
38 |
+
|
39 |
+
exports[`Button Element renders button with onClick handler 1`] = `
|
40 |
+
<button
|
41 |
+
className="tribe-editor__button"
|
42 |
+
onClick={[MockFunction]}
|
43 |
+
type="button"
|
44 |
+
/>
|
45 |
+
`;
|
46 |
+
|
47 |
+
exports[`Button Element renders button with set type 1`] = `
|
48 |
+
<button
|
49 |
+
className="tribe-editor__button"
|
50 |
+
onClick={[Function]}
|
51 |
+
type="submit"
|
52 |
+
/>
|
53 |
+
`;
|
54 |
+
|
55 |
+
exports[`Button Element renders disabled button 1`] = `
|
56 |
+
<button
|
57 |
+
className="tribe-editor__button"
|
58 |
+
disabled={true}
|
59 |
+
onClick={[Function]}
|
60 |
+
type="button"
|
61 |
+
/>
|
62 |
+
`;
|
common/src/modules/elements/button/__tests__/element.test.js
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import renderer from 'react-test-renderer';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Internal dependencies
|
9 |
+
*/
|
10 |
+
import { Button } from '@moderntribe/common/elements';
|
11 |
+
|
12 |
+
describe( 'Button Element', () => {
|
13 |
+
it( 'renders button', () => {
|
14 |
+
const component = renderer.create( <Button /> );
|
15 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
16 |
+
} );
|
17 |
+
|
18 |
+
it( 'renders button with class', () => {
|
19 |
+
const component = renderer.create( <Button className="test-class" /> );
|
20 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
21 |
+
} );
|
22 |
+
|
23 |
+
it( 'renders disabled button', () => {
|
24 |
+
const component = renderer.create( <Button isDisabled={ true } /> );
|
25 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
26 |
+
} );
|
27 |
+
|
28 |
+
it( 'renders button with label', () => {
|
29 |
+
const component = renderer.create( <Button>Hello</Button> );
|
30 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
31 |
+
} );
|
32 |
+
|
33 |
+
it( 'renders button with onClick handler', () => {
|
34 |
+
const onClick = jest.fn();
|
35 |
+
const component = renderer.create( <Button onClick={ onClick } /> );
|
36 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
37 |
+
} );
|
38 |
+
|
39 |
+
it( 'executes the onClick handler', () => {
|
40 |
+
const onClick = jest.fn();
|
41 |
+
const component = mount( <Button onClick={ onClick } /> );
|
42 |
+
component.find( 'button' ).simulate( 'click' );
|
43 |
+
expect( onClick ).toHaveBeenCalled();
|
44 |
+
expect( onClick ).toHaveBeenCalledTimes( 1 );
|
45 |
+
} );
|
46 |
+
|
47 |
+
it( 'renders button with set type', () => {
|
48 |
+
const component = renderer.create( <Button type="submit" /> );
|
49 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
50 |
+
} );
|
51 |
+
|
52 |
+
it( 'renders button with extra attributes', () => {
|
53 |
+
const attrs = {
|
54 |
+
test: 'one-two-three',
|
55 |
+
hello: 'world',
|
56 |
+
};
|
57 |
+
const component = renderer.create( <Button { ...attrs } /> );
|
58 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
59 |
+
} );
|
60 |
+
} );
|
common/src/modules/elements/button/element.js
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React, { PureComponent } from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
import { noop } from 'lodash';
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Internal dependencies
|
11 |
+
*/
|
12 |
+
import './style.pcss';
|
13 |
+
|
14 |
+
class Button extends PureComponent {
|
15 |
+
static defaultProps = {
|
16 |
+
onClick: noop,
|
17 |
+
type: 'button',
|
18 |
+
};
|
19 |
+
|
20 |
+
static propTypes = {
|
21 |
+
className: PropTypes.oneOfType( [
|
22 |
+
PropTypes.string,
|
23 |
+
PropTypes.arrayOf( PropTypes.string ),
|
24 |
+
PropTypes.object,
|
25 |
+
] ),
|
26 |
+
isDisabled: PropTypes.bool,
|
27 |
+
children: PropTypes.node,
|
28 |
+
onClick: PropTypes.func,
|
29 |
+
type: PropTypes.string,
|
30 |
+
};
|
31 |
+
|
32 |
+
render() {
|
33 |
+
const {
|
34 |
+
children,
|
35 |
+
className,
|
36 |
+
isDisabled,
|
37 |
+
onClick,
|
38 |
+
type,
|
39 |
+
...rest
|
40 |
+
} = this.props;
|
41 |
+
|
42 |
+
return (
|
43 |
+
<button
|
44 |
+
className={ classNames( 'tribe-editor__button', className ) }
|
45 |
+
disabled={ isDisabled }
|
46 |
+
type={ type }
|
47 |
+
onClick={ onClick }
|
48 |
+
{ ...rest }
|
49 |
+
>
|
50 |
+
{ children }
|
51 |
+
</button>
|
52 |
+
);
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
export default Button;
|
common/src/modules/elements/button/style.pcss
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* basic styles are in .tribe-editor__btn, this is kepted for backward compatibility */
|
2 |
+
.tribe-editor__btn--label {
|
3 |
+
background-color: transparent;
|
4 |
+
border: none;
|
5 |
+
padding: 0;
|
6 |
+
margin: 0;
|
7 |
+
text-align: left;
|
8 |
+
}
|
9 |
+
|
10 |
+
/* extra editor-styles-wrapper class to override gutenberg styles */
|
11 |
+
.editor-styles-wrapper {
|
12 |
+
|
13 |
+
.tribe-editor__button {
|
14 |
+
background-color: transparent;
|
15 |
+
border: none;
|
16 |
+
padding: 0;
|
17 |
+
margin: 0;
|
18 |
+
font-family: 'Helvetica', 'sans-serif';
|
19 |
+
cursor: pointer;
|
20 |
+
}
|
21 |
+
|
22 |
+
.tribe-editor__button--sm {
|
23 |
+
background-color: #009fd4;
|
24 |
+
color: #ffffff;
|
25 |
+
padding: 11px 16px 9px;
|
26 |
+
font-size: 15px;
|
27 |
+
font-weight: bold;
|
28 |
+
line-height: 18px;
|
29 |
+
transition: background-color 0.2s ease;
|
30 |
+
|
31 |
+
&:hover,
|
32 |
+
&:focus {
|
33 |
+
background-color: #007bb4;
|
34 |
+
}
|
35 |
+
|
36 |
+
&[disabled] {
|
37 |
+
|
38 |
+
&,
|
39 |
+
&:hover,
|
40 |
+
&:focus {
|
41 |
+
background-color: #f3f4f5;
|
42 |
+
color: #8d949b;
|
43 |
+
}
|
44 |
+
}
|
45 |
+
}
|
46 |
+
}
|
common/src/modules/elements/checkbox-input/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Input element Should render the component 1`] = `
|
4 |
+
<input
|
5 |
+
className="tribe-editor__input tribe-editor__input--checkbox"
|
6 |
+
type="checkbox"
|
7 |
+
/>
|
8 |
+
`;
|
9 |
+
|
10 |
+
exports[`Input element Should render the component with checked 1`] = `
|
11 |
+
<input
|
12 |
+
checked={true}
|
13 |
+
className="tribe-editor__input tribe-editor__input--checkbox"
|
14 |
+
type="checkbox"
|
15 |
+
/>
|
16 |
+
`;
|
17 |
+
|
18 |
+
exports[`Input element Should render the component with checked 2`] = `
|
19 |
+
<input
|
20 |
+
checked={false}
|
21 |
+
className="tribe-editor__input tribe-editor__input--checkbox"
|
22 |
+
type="checkbox"
|
23 |
+
/>
|
24 |
+
`;
|
25 |
+
|
26 |
+
exports[`Input element Should render the component with class 1`] = `
|
27 |
+
<input
|
28 |
+
className="tribe-editor__input tribe-editor__input--checkbox checkbox-class"
|
29 |
+
type="checkbox"
|
30 |
+
/>
|
31 |
+
`;
|
32 |
+
|
33 |
+
exports[`Input element Should render the component with extra props 1`] = `
|
34 |
+
<input
|
35 |
+
className="tribe-editor__input tribe-editor__input--checkbox"
|
36 |
+
id="checkbox-id"
|
37 |
+
type="checkbox"
|
38 |
+
/>
|
39 |
+
`;
|
40 |
+
|
41 |
+
exports[`Input element Should render the component with onChange handler 1`] = `
|
42 |
+
<input
|
43 |
+
className="tribe-editor__input tribe-editor__input--checkbox"
|
44 |
+
onChange={[Function]}
|
45 |
+
type="checkbox"
|
46 |
+
/>
|
47 |
+
`;
|
common/src/modules/elements/checkbox-input/__tests__/element.test.js
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import { noop } from 'lodash';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Internal dependencies
|
9 |
+
*/
|
10 |
+
import CheckboxInput from '../element.js';
|
11 |
+
|
12 |
+
describe( 'Input element', () => {
|
13 |
+
it( 'Should render the component', () => {
|
14 |
+
const component = renderer.create( <CheckboxInput /> );
|
15 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
16 |
+
} );
|
17 |
+
|
18 |
+
it( 'Should render the component with checked', () => {
|
19 |
+
const component1 = renderer.create( <CheckboxInput checked={ true } /> );
|
20 |
+
expect( component1.toJSON() ).toMatchSnapshot();
|
21 |
+
const component2 = renderer.create( <CheckboxInput checked={ false } /> );
|
22 |
+
expect( component2.toJSON() ).toMatchSnapshot();
|
23 |
+
} );
|
24 |
+
|
25 |
+
it( 'Should render the component with class', () => {
|
26 |
+
const component = renderer.create( <CheckboxInput className="checkbox-class" /> );
|
27 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
28 |
+
} );
|
29 |
+
|
30 |
+
it( 'Should render the component with onChange handler', () => {
|
31 |
+
const component = renderer.create( <CheckboxInput onChange={ noop } /> );
|
32 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
33 |
+
} );
|
34 |
+
|
35 |
+
it( 'Should render the component with extra props', () => {
|
36 |
+
const component = renderer.create( <CheckboxInput id="checkbox-id" /> );
|
37 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
38 |
+
} );
|
39 |
+
} );
|
common/src/modules/elements/checkbox-input/element.js
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External Dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
import Input from '@moderntribe/common/elements/input/element';
|
12 |
+
import './style.pcss';
|
13 |
+
|
14 |
+
const CheckboxInput = ( {
|
15 |
+
checked,
|
16 |
+
className,
|
17 |
+
onChange,
|
18 |
+
...rest
|
19 |
+
} ) => (
|
20 |
+
<Input
|
21 |
+
checked={ checked }
|
22 |
+
className={ classNames( 'tribe-editor__input--checkbox', className ) }
|
23 |
+
onChange={ onChange }
|
24 |
+
type="checkbox"
|
25 |
+
{ ...rest }
|
26 |
+
/>
|
27 |
+
);
|
28 |
+
|
29 |
+
CheckboxInput.propTypes = {
|
30 |
+
checked: PropTypes.bool,
|
31 |
+
className: PropTypes.string,
|
32 |
+
onChange: PropTypes.func,
|
33 |
+
};
|
34 |
+
|
35 |
+
export default CheckboxInput;
|
common/src/modules/elements/checkbox-input/style.pcss
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* increased specificity required to override gutenberg editor styles */
|
2 |
+
input[type=checkbox].tribe-editor__input--checkbox {
|
3 |
+
background-color: #ffffff;
|
4 |
+
border: 1px solid #E0E5E9;
|
5 |
+
border-radius: 0;
|
6 |
+
|
7 |
+
&:focus {
|
8 |
+
border: 1px solid #E0E5E9;
|
9 |
+
box-shadow: 0 0 0 1px #E0E5E9;
|
10 |
+
}
|
11 |
+
|
12 |
+
&:checked {
|
13 |
+
background-color: #ffffff;
|
14 |
+
border: 1px solid #E0E5E9;
|
15 |
+
|
16 |
+
&:focus {
|
17 |
+
border: 1px solid #E0E5E9;
|
18 |
+
box-shadow: 0 0 0 1px #E0E5E9;
|
19 |
+
}
|
20 |
+
|
21 |
+
&:before {
|
22 |
+
color: #11A0D2;
|
23 |
+
}
|
24 |
+
}
|
25 |
+
}
|
common/src/modules/elements/checkbox/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,168 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Checkbox Element renders checkbox 1`] = `
|
4 |
+
<div
|
5 |
+
className="tribe-editor__checkbox"
|
6 |
+
>
|
7 |
+
<input
|
8 |
+
checked={false}
|
9 |
+
className="tribe-editor__input tribe-editor__input--checkbox tribe-editor__checkbox__input"
|
10 |
+
onChange={[Function]}
|
11 |
+
type="checkbox"
|
12 |
+
/>
|
13 |
+
<label
|
14 |
+
className="tribe-editor__checkbox__label"
|
15 |
+
/>
|
16 |
+
</div>
|
17 |
+
`;
|
18 |
+
|
19 |
+
exports[`Checkbox Element renders checkbox with class 1`] = `
|
20 |
+
<div
|
21 |
+
className="tribe-editor__checkbox test-class"
|
22 |
+
>
|
23 |
+
<input
|
24 |
+
checked={false}
|
25 |
+
className="tribe-editor__input tribe-editor__input--checkbox tribe-editor__checkbox__input"
|
26 |
+
onChange={[Function]}
|
27 |
+
type="checkbox"
|
28 |
+
/>
|
29 |
+
<label
|
30 |
+
className="tribe-editor__checkbox__label"
|
31 |
+
/>
|
32 |
+
</div>
|
33 |
+
`;
|
34 |
+
|
35 |
+
exports[`Checkbox Element renders checkbox with id 1`] = `
|
36 |
+
<div
|
37 |
+
className="tribe-editor__checkbox"
|
38 |
+
>
|
39 |
+
<input
|
40 |
+
checked={false}
|
41 |
+
className="tribe-editor__input tribe-editor__input--checkbox tribe-editor__checkbox__input"
|
42 |
+
id="test-id"
|
43 |
+
onChange={[Function]}
|
44 |
+
type="checkbox"
|
45 |
+
/>
|
46 |
+
<label
|
47 |
+
className="tribe-editor__checkbox__label"
|
48 |
+
htmlFor="test-id"
|
49 |
+
/>
|
50 |
+
</div>
|
51 |
+
`;
|
52 |
+
|
53 |
+
exports[`Checkbox Element renders checkbox with label 1`] = `
|
54 |
+
<div
|
55 |
+
className="tribe-editor__checkbox"
|
56 |
+
>
|
57 |
+
<input
|
58 |
+
checked={false}
|
59 |
+
className="tribe-editor__input tribe-editor__input--checkbox tribe-editor__checkbox__input"
|
60 |
+
onChange={[Function]}
|
61 |
+
type="checkbox"
|
62 |
+
/>
|
63 |
+
<label
|
64 |
+
className="tribe-editor__checkbox__label"
|
65 |
+
>
|
66 |
+
Test Label
|
67 |
+
</label>
|
68 |
+
</div>
|
69 |
+
`;
|
70 |
+
|
71 |
+
exports[`Checkbox Element renders checkbox with name 1`] = `
|
72 |
+
<div
|
73 |
+
className="tribe-editor__checkbox"
|
74 |
+
>
|
75 |
+
<input
|
76 |
+
checked={false}
|
77 |
+
className="tribe-editor__input tribe-editor__input--checkbox tribe-editor__checkbox__input"
|
78 |
+
name="test-name"
|
79 |
+
onChange={[Function]}
|
80 |
+
type="checkbox"
|
81 |
+
/>
|
82 |
+
<label
|
83 |
+
className="tribe-editor__checkbox__label"
|
84 |
+
/>
|
85 |
+
</div>
|
86 |
+
`;
|
87 |
+
|
88 |
+
exports[`Checkbox Element renders checkbox with onChange handler 1`] = `
|
89 |
+
<div
|
90 |
+
className="tribe-editor__checkbox"
|
91 |
+
>
|
92 |
+
<input
|
93 |
+
checked={false}
|
94 |
+
className="tribe-editor__input tribe-editor__input--checkbox tribe-editor__checkbox__input"
|
95 |
+
onChange={[MockFunction]}
|
96 |
+
type="checkbox"
|
97 |
+
/>
|
98 |
+
<label
|
99 |
+
className="tribe-editor__checkbox__label"
|
100 |
+
/>
|
101 |
+
</div>
|
102 |
+
`;
|
103 |
+
|
104 |
+
exports[`Checkbox Element renders checkbox with value 1`] = `
|
105 |
+
<div
|
106 |
+
className="tribe-editor__checkbox"
|
107 |
+
>
|
108 |
+
<input
|
109 |
+
checked={false}
|
110 |
+
className="tribe-editor__input tribe-editor__input--checkbox tribe-editor__checkbox__input"
|
111 |
+
onChange={[Function]}
|
112 |
+
type="checkbox"
|
113 |
+
value="Test Value"
|
114 |
+
/>
|
115 |
+
<label
|
116 |
+
className="tribe-editor__checkbox__label"
|
117 |
+
/>
|
118 |
+
</div>
|
119 |
+
`;
|
120 |
+
|
121 |
+
exports[`Checkbox Element renders checked checkbox 1`] = `
|
122 |
+
<div
|
123 |
+
className="tribe-editor__checkbox"
|
124 |
+
>
|
125 |
+
<input
|
126 |
+
checked={true}
|
127 |
+
className="tribe-editor__input tribe-editor__input--checkbox tribe-editor__checkbox__input"
|
128 |
+
onChange={[Function]}
|
129 |
+
type="checkbox"
|
130 |
+
/>
|
131 |
+
<label
|
132 |
+
className="tribe-editor__checkbox__label"
|
133 |
+
/>
|
134 |
+
</div>
|
135 |
+
`;
|
136 |
+
|
137 |
+
exports[`Checkbox Element renders disabled checkbox 1`] = `
|
138 |
+
<div
|
139 |
+
className="tribe-editor__checkbox"
|
140 |
+
>
|
141 |
+
<input
|
142 |
+
checked={false}
|
143 |
+
className="tribe-editor__input tribe-editor__input--checkbox tribe-editor__checkbox__input"
|
144 |
+
disabled={true}
|
145 |
+
onChange={[Function]}
|
146 |
+
type="checkbox"
|
147 |
+
/>
|
148 |
+
<label
|
149 |
+
className="tribe-editor__checkbox__label"
|
150 |
+
/>
|
151 |
+
</div>
|
152 |
+
`;
|
153 |
+
|
154 |
+
exports[`Checkbox Element renders unchecked checkbox 1`] = `
|
155 |
+
<div
|
156 |
+
className="tribe-editor__checkbox"
|
157 |
+
>
|
158 |
+
<input
|
159 |
+
checked={false}
|
160 |
+
className="tribe-editor__input tribe-editor__input--checkbox tribe-editor__checkbox__input"
|
161 |
+
onChange={[Function]}
|
162 |
+
type="checkbox"
|
163 |
+
/>
|
164 |
+
<label
|
165 |
+
className="tribe-editor__checkbox__label"
|
166 |
+
/>
|
167 |
+
</div>
|
168 |
+
`;
|
common/src/modules/elements/checkbox/__tests__/element.test.js
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import { Checkbox } from '@moderntribe/common/elements';
|
10 |
+
|
11 |
+
describe( 'Checkbox Element', () => {
|
12 |
+
it( 'renders checkbox', () => {
|
13 |
+
const component = renderer.create( <Checkbox /> );
|
14 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
15 |
+
} );
|
16 |
+
|
17 |
+
it( 'renders checked checkbox', () => {
|
18 |
+
const component = renderer.create( <Checkbox checked={ true } /> );
|
19 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
20 |
+
} );
|
21 |
+
|
22 |
+
it( 'renders unchecked checkbox', () => {
|
23 |
+
const component = renderer.create( <Checkbox checked={ false } /> );
|
24 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
25 |
+
} );
|
26 |
+
|
27 |
+
it( 'renders checkbox with class', () => {
|
28 |
+
const component = renderer.create( <Checkbox className="test-class" /> );
|
29 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
30 |
+
} );
|
31 |
+
|
32 |
+
it( 'renders disabled checkbox', () => {
|
33 |
+
const component = renderer.create( <Checkbox disabled={ true } /> );
|
34 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
35 |
+
} );
|
36 |
+
|
37 |
+
it( 'renders checkbox with id', () => {
|
38 |
+
const component = renderer.create( <Checkbox id="test-id" /> );
|
39 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
40 |
+
} );
|
41 |
+
|
42 |
+
it( 'renders checkbox with label', () => {
|
43 |
+
const component = renderer.create( <Checkbox label="Test Label" /> );
|
44 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
45 |
+
} );
|
46 |
+
|
47 |
+
it( 'renders checkbox with name', () => {
|
48 |
+
const component = renderer.create( <Checkbox name="test-name" /> );
|
49 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
50 |
+
} );
|
51 |
+
|
52 |
+
it( 'renders checkbox with value', () => {
|
53 |
+
const component = renderer.create( <Checkbox value="Test Value" /> );
|
54 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
55 |
+
} );
|
56 |
+
|
57 |
+
it( 'renders checkbox with onChange handler', () => {
|
58 |
+
const onChange = jest.fn();
|
59 |
+
const component = renderer.create( <Checkbox onChange={ onChange } /> );
|
60 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
61 |
+
} );
|
62 |
+
|
63 |
+
it( 'executes checkbox with onChange handler', () => {
|
64 |
+
const onChange = jest.fn();
|
65 |
+
const component = mount( <Checkbox onChange={ onChange } /> );
|
66 |
+
component.find( 'input' ).simulate( 'change' );
|
67 |
+
expect( onChange ).toHaveBeenCalled();
|
68 |
+
expect( onChange ).toHaveBeenCalledTimes( 1 );
|
69 |
+
} );
|
70 |
+
} );
|
common/src/modules/elements/checkbox/element.js
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
import { noop } from 'lodash';
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Internal dependencies
|
11 |
+
*/
|
12 |
+
import { CheckboxInput } from '@moderntribe/common/elements';
|
13 |
+
|
14 |
+
const Checkbox = ( {
|
15 |
+
checked,
|
16 |
+
className,
|
17 |
+
disabled,
|
18 |
+
id,
|
19 |
+
label,
|
20 |
+
onChange,
|
21 |
+
name,
|
22 |
+
value,
|
23 |
+
} ) => {
|
24 |
+
return (
|
25 |
+
<div className={ classNames( 'tribe-editor__checkbox', className ) }>
|
26 |
+
<CheckboxInput
|
27 |
+
checked={ checked }
|
28 |
+
className="tribe-editor__checkbox__input"
|
29 |
+
disabled={ disabled }
|
30 |
+
id={ id }
|
31 |
+
name={ name }
|
32 |
+
onChange={ onChange }
|
33 |
+
value={ value }
|
34 |
+
/>
|
35 |
+
<label
|
36 |
+
className="tribe-editor__checkbox__label"
|
37 |
+
htmlFor={ id }
|
38 |
+
>
|
39 |
+
{ label }
|
40 |
+
</label>
|
41 |
+
</div>
|
42 |
+
);
|
43 |
+
};
|
44 |
+
|
45 |
+
Checkbox.defaultProps = {
|
46 |
+
checked: false,
|
47 |
+
onChange: noop,
|
48 |
+
}
|
49 |
+
|
50 |
+
Checkbox.propTypes = {
|
51 |
+
checked: PropTypes.bool.isRequired,
|
52 |
+
className: PropTypes.string,
|
53 |
+
disabled: PropTypes.bool,
|
54 |
+
id: PropTypes.string,
|
55 |
+
label: PropTypes.node,
|
56 |
+
name: PropTypes.string,
|
57 |
+
onChange: PropTypes.func,
|
58 |
+
value: PropTypes.string,
|
59 |
+
};
|
60 |
+
|
61 |
+
export default Checkbox;
|
common/src/modules/elements/counter/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Counter Element renders counter 1`] = `
|
4 |
+
<div
|
5 |
+
className="tribe-editor__counter"
|
6 |
+
>
|
7 |
+
<span
|
8 |
+
className="tribe-editor__counter__count"
|
9 |
+
/>
|
10 |
+
<span
|
11 |
+
className="tribe-editor__counter__label"
|
12 |
+
/>
|
13 |
+
</div>
|
14 |
+
`;
|
15 |
+
|
16 |
+
exports[`Counter Element renders counter with class 1`] = `
|
17 |
+
<div
|
18 |
+
className="tribe-editor__counter test-class"
|
19 |
+
>
|
20 |
+
<span
|
21 |
+
className="tribe-editor__counter__count"
|
22 |
+
/>
|
23 |
+
<span
|
24 |
+
className="tribe-editor__counter__label"
|
25 |
+
/>
|
26 |
+
</div>
|
27 |
+
`;
|
28 |
+
|
29 |
+
exports[`Counter Element renders counter with count 1`] = `
|
30 |
+
<div
|
31 |
+
className="tribe-editor__counter"
|
32 |
+
>
|
33 |
+
<span
|
34 |
+
className="tribe-editor__counter__count"
|
35 |
+
>
|
36 |
+
42
|
37 |
+
</span>
|
38 |
+
<span
|
39 |
+
className="tribe-editor__counter__label"
|
40 |
+
/>
|
41 |
+
</div>
|
42 |
+
`;
|
43 |
+
|
44 |
+
exports[`Counter Element renders counter with label 1`] = `
|
45 |
+
<div
|
46 |
+
className="tribe-editor__counter"
|
47 |
+
>
|
48 |
+
<span
|
49 |
+
className="tribe-editor__counter__count"
|
50 |
+
/>
|
51 |
+
<span
|
52 |
+
className="tribe-editor__counter__label"
|
53 |
+
>
|
54 |
+
test-label
|
55 |
+
</span>
|
56 |
+
</div>
|
57 |
+
`;
|
common/src/modules/elements/counter/__tests__/element.test.js
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import renderer from 'react-test-renderer';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Internal dependencies
|
9 |
+
*/
|
10 |
+
import { Counter } from '@moderntribe/common/elements';
|
11 |
+
|
12 |
+
describe( 'Counter Element', () => {
|
13 |
+
it( 'renders counter', () => {
|
14 |
+
const component = renderer.create( <Counter /> );
|
15 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
16 |
+
} );
|
17 |
+
|
18 |
+
it( 'renders counter with class', () => {
|
19 |
+
const component = renderer.create( <Counter className="test-class" /> );
|
20 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
21 |
+
} );
|
22 |
+
|
23 |
+
it( 'renders counter with count', () => {
|
24 |
+
const component = renderer.create( <Counter count={ 42 } /> );
|
25 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
26 |
+
} );
|
27 |
+
|
28 |
+
it( 'renders counter with label', () => {
|
29 |
+
const component = renderer.create( <Counter label="test-label" /> );
|
30 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
31 |
+
} );
|
32 |
+
} );
|
common/src/modules/elements/counter/element.js
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
import './style.pcss';
|
12 |
+
|
13 |
+
const Counter = ( {
|
14 |
+
className,
|
15 |
+
count,
|
16 |
+
label,
|
17 |
+
} ) => (
|
18 |
+
<div className={ classNames(
|
19 |
+
'tribe-editor__counter',
|
20 |
+
className,
|
21 |
+
) }>
|
22 |
+
<span className="tribe-editor__counter__count">
|
23 |
+
{ count }
|
24 |
+
</span>
|
25 |
+
<span className="tribe-editor__counter__label">
|
26 |
+
{ label }
|
27 |
+
</span>
|
28 |
+
</div>
|
29 |
+
);
|
30 |
+
|
31 |
+
Counter.propTypes = {
|
32 |
+
className: PropTypes.string,
|
33 |
+
count: PropTypes.number,
|
34 |
+
label: PropTypes.string,
|
35 |
+
};
|
36 |
+
|
37 |
+
export default Counter;
|
common/src/modules/elements/counter/style.pcss
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tribe-editor__counter {
|
2 |
+
display: flex;
|
3 |
+
flex-direction: column;
|
4 |
+
align-items: center;
|
5 |
+
}
|
6 |
+
|
7 |
+
.tribe-editor__counter__count {
|
8 |
+
flex: none;
|
9 |
+
color: #AEB4BB;
|
10 |
+
font-size: 32px;
|
11 |
+
font-weight: bold;
|
12 |
+
line-height: 40px;
|
13 |
+
margin-bottom: 10px;
|
14 |
+
}
|
15 |
+
|
16 |
+
.tribe-editor__counter__label {
|
17 |
+
flex: none;
|
18 |
+
color: #AEB4BB;
|
19 |
+
font-size: 12px;
|
20 |
+
line-height: 14px;
|
21 |
+
letter-spacing: 0.04px;
|
22 |
+
}
|
common/src/modules/elements/creatable-select/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,240 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`CreatableSelect element Should render the component 1`] = `
|
4 |
+
<div
|
5 |
+
className="css-10nd86i tribe-editor__creatable-select"
|
6 |
+
onKeyDown={[Function]}
|
7 |
+
>
|
8 |
+
<div
|
9 |
+
className="css-vj8t7z tribe-editor__creatable-select__control"
|
10 |
+
onMouseDown={[Function]}
|
11 |
+
onTouchEnd={[Function]}
|
12 |
+
>
|
13 |
+
<div
|
14 |
+
className="css-1hwfws3 tribe-editor__creatable-select__value-container"
|
15 |
+
>
|
16 |
+
<div
|
17 |
+
className="css-1492t68 tribe-editor__creatable-select__placeholder"
|
18 |
+
>
|
19 |
+
Select...
|
20 |
+
</div>
|
21 |
+
<div
|
22 |
+
className="css-1g6gooi"
|
23 |
+
>
|
24 |
+
<div
|
25 |
+
className="tribe-editor__creatable-select__input"
|
26 |
+
style={
|
27 |
+
Object {
|
28 |
+
"display": "inline-block",
|
29 |
+
}
|
30 |
+
}
|
31 |
+
>
|
32 |
+
<input
|
33 |
+
aria-autocomplete="list"
|
34 |
+
autoCapitalize="none"
|
35 |
+
autoComplete="off"
|
36 |
+
autoCorrect="off"
|
37 |
+
disabled={false}
|
38 |
+
id="react-select-2-input"
|
39 |
+
onBlur={[Function]}
|
40 |
+
onChange={[Function]}
|
41 |
+
onFocus={[Function]}
|
42 |
+
spellCheck="false"
|
43 |
+
style={
|
44 |
+
Object {
|
45 |
+
"background": 0,
|
46 |
+
"border": 0,
|
47 |
+
"boxSizing": "content-box",
|
48 |
+
"color": "inherit",
|
49 |
+
"fontSize": "inherit",
|
50 |
+
"opacity": 1,
|
51 |
+
"outline": 0,
|
52 |
+
"padding": 0,
|
53 |
+
"width": "1px",
|
54 |
+
}
|
55 |
+
}
|
56 |
+
tabIndex="0"
|
57 |
+
type="text"
|
58 |
+
value=""
|
59 |
+
/>
|
60 |
+
<div
|
61 |
+
style={
|
62 |
+
Object {
|
63 |
+
"height": 0,
|
64 |
+
"left": 0,
|
65 |
+
"overflow": "scroll",
|
66 |
+
"position": "absolute",
|
67 |
+
"top": 0,
|
68 |
+
"visibility": "hidden",
|
69 |
+
"whiteSpace": "pre",
|
70 |
+
}
|
71 |
+
}
|
72 |
+
>
|
73 |
+
|
74 |
+
</div>
|
75 |
+
</div>
|
76 |
+
</div>
|
77 |
+
</div>
|
78 |
+
<div
|
79 |
+
className="css-1wy0on6 tribe-editor__creatable-select__indicators"
|
80 |
+
>
|
81 |
+
<div
|
82 |
+
aria-hidden="true"
|
83 |
+
className="css-1ep9fjw tribe-editor__creatable-select__indicator tribe-editor__creatable-select__dropdown-indicator"
|
84 |
+
onMouseDown={[Function]}
|
85 |
+
onTouchEnd={[Function]}
|
86 |
+
>
|
87 |
+
<span
|
88 |
+
className="tribe-editor__creatable-select__dropdown-indicator"
|
89 |
+
>
|
90 |
+
arrow-down
|
91 |
+
</span>
|
92 |
+
</div>
|
93 |
+
</div>
|
94 |
+
</div>
|
95 |
+
</div>
|
96 |
+
`;
|
97 |
+
|
98 |
+
exports[`CreatableSelect element Should render the component with class 1`] = `
|
99 |
+
<div
|
100 |
+
className="css-10nd86i tribe-editor__creatable-select test-class"
|
101 |
+
onKeyDown={[Function]}
|
102 |
+
>
|
103 |
+
<div
|
104 |
+
className="css-vj8t7z tribe-editor__creatable-select__control"
|
105 |
+
onMouseDown={[Function]}
|
106 |
+
onTouchEnd={[Function]}
|
107 |
+
>
|
108 |
+
<div
|
109 |
+
className="css-1hwfws3 tribe-editor__creatable-select__value-container"
|
110 |
+
>
|
111 |
+
<div
|
112 |
+
className="css-1492t68 tribe-editor__creatable-select__placeholder"
|
113 |
+
>
|
114 |
+
Select...
|
115 |
+
</div>
|
116 |
+
<div
|
117 |
+
className="css-1g6gooi"
|
118 |
+
>
|
119 |
+
<div
|
120 |
+
className="tribe-editor__creatable-select__input"
|
121 |
+
style={
|
122 |
+
Object {
|
123 |
+
"display": "inline-block",
|
124 |
+
}
|
125 |
+
}
|
126 |
+
>
|
127 |
+
<input
|
128 |
+
aria-autocomplete="list"
|
129 |
+
autoCapitalize="none"
|
130 |
+
autoComplete="off"
|
131 |
+
autoCorrect="off"
|
132 |
+
disabled={false}
|
133 |
+
id="react-select-3-input"
|
134 |
+
onBlur={[Function]}
|
135 |
+
onChange={[Function]}
|
136 |
+
onFocus={[Function]}
|
137 |
+
spellCheck="false"
|
138 |
+
style={
|
139 |
+
Object {
|
140 |
+
"background": 0,
|
141 |
+
"border": 0,
|
142 |
+
"boxSizing": "content-box",
|
143 |
+
"color": "inherit",
|
144 |
+
"fontSize": "inherit",
|
145 |
+
"opacity": 1,
|
146 |
+
"outline": 0,
|
147 |
+
"padding": 0,
|
148 |
+
"width": "1px",
|
149 |
+
}
|
150 |
+
}
|
151 |
+
tabIndex="0"
|
152 |
+
type="text"
|
153 |
+
value=""
|
154 |
+
/>
|
155 |
+
<div
|
156 |
+
style={
|
157 |
+
Object {
|
158 |
+
"height": 0,
|
159 |
+
"left": 0,
|
160 |
+
"overflow": "scroll",
|
161 |
+
"position": "absolute",
|
162 |
+
"top": 0,
|
163 |
+
"visibility": "hidden",
|
164 |
+
"whiteSpace": "pre",
|
165 |
+
}
|
166 |
+
}
|
167 |
+
>
|
168 |
+
|
169 |
+
</div>
|
170 |
+
</div>
|
171 |
+
</div>
|
172 |
+
</div>
|
173 |
+
<div
|
174 |
+
className="css-1wy0on6 tribe-editor__creatable-select__indicators"
|
175 |
+
>
|
176 |
+
<div
|
177 |
+
aria-hidden="true"
|
178 |
+
className="css-1ep9fjw tribe-editor__creatable-select__indicator tribe-editor__creatable-select__dropdown-indicator"
|
179 |
+
onMouseDown={[Function]}
|
180 |
+
onTouchEnd={[Function]}
|
181 |
+
>
|
182 |
+
<span
|
183 |
+
className="tribe-editor__creatable-select__dropdown-indicator"
|
184 |
+
>
|
185 |
+
arrow-down
|
186 |
+
</span>
|
187 |
+
</div>
|
188 |
+
</div>
|
189 |
+
</div>
|
190 |
+
</div>
|
191 |
+
`;
|
192 |
+
|
193 |
+
exports[`CreatableSelect element Should render the component with extra props 1`] = `
|
194 |
+
<div
|
195 |
+
className="css-10nd86i tribe-editor__creatable-select"
|
196 |
+
onKeyDown={[Function]}
|
197 |
+
>
|
198 |
+
<div
|
199 |
+
className="css-vj8t7z tribe-editor__creatable-select__control"
|
200 |
+
onMouseDown={[Function]}
|
201 |
+
onTouchEnd={[Function]}
|
202 |
+
>
|
203 |
+
<div
|
204 |
+
className="css-1hwfws3 tribe-editor__creatable-select__value-container"
|
205 |
+
>
|
206 |
+
<div
|
207 |
+
className="css-1492t68 tribe-editor__creatable-select__placeholder"
|
208 |
+
>
|
209 |
+
Select...
|
210 |
+
</div>
|
211 |
+
<input
|
212 |
+
className="css-14uuagi"
|
213 |
+
id="react-select-4-input"
|
214 |
+
onBlur={[Function]}
|
215 |
+
onChange={[Function]}
|
216 |
+
onFocus={[Function]}
|
217 |
+
readOnly={true}
|
218 |
+
tabIndex="0"
|
219 |
+
value=""
|
220 |
+
/>
|
221 |
+
</div>
|
222 |
+
<div
|
223 |
+
className="css-1wy0on6 tribe-editor__creatable-select__indicators"
|
224 |
+
>
|
225 |
+
<div
|
226 |
+
aria-hidden="true"
|
227 |
+
className="css-1ep9fjw tribe-editor__creatable-select__indicator tribe-editor__creatable-select__dropdown-indicator"
|
228 |
+
onMouseDown={[Function]}
|
229 |
+
onTouchEnd={[Function]}
|
230 |
+
>
|
231 |
+
<span
|
232 |
+
className="tribe-editor__creatable-select__dropdown-indicator"
|
233 |
+
>
|
234 |
+
arrow-down
|
235 |
+
</span>
|
236 |
+
</div>
|
237 |
+
</div>
|
238 |
+
</div>
|
239 |
+
</div>
|
240 |
+
`;
|
common/src/modules/elements/creatable-select/__tests__/element.test.js
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import CreatableSelect from '../element.js';
|
10 |
+
|
11 |
+
const options = [
|
12 |
+
{ label: 'Test 1', value: 'test-1' },
|
13 |
+
{ label: 'Test 2', value: 'test-2' },
|
14 |
+
];
|
15 |
+
|
16 |
+
describe( 'CreatableSelect element', () => {
|
17 |
+
it( 'Should render the component', () => {
|
18 |
+
const component = renderer.create( <CreatableSelect options={ options } /> );
|
19 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
20 |
+
} );
|
21 |
+
|
22 |
+
it( 'Should render the component with class', () => {
|
23 |
+
const component = renderer.create( <CreatableSelect options={ options } className="test-class" /> );
|
24 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
25 |
+
} );
|
26 |
+
|
27 |
+
it( 'Should render the component with extra props', () => {
|
28 |
+
const component = renderer.create( <CreatableSelect options={ options } isSearchable={ false } /> );
|
29 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
30 |
+
} );
|
31 |
+
} );
|
common/src/modules/elements/creatable-select/element.js
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
import { components } from 'react-select';
|
8 |
+
import ReactCreatableSelect from 'react-select/lib/Creatable';
|
9 |
+
import { Dashicon } from '@wordpress/components';
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Internal dependencies
|
13 |
+
*/
|
14 |
+
import './style.pcss';
|
15 |
+
|
16 |
+
const DropdownIndicator = ( props ) => (
|
17 |
+
components.DropdownIndicator && (
|
18 |
+
<components.DropdownIndicator { ...props }>
|
19 |
+
<Dashicon
|
20 |
+
className="tribe-editor__creatable-select__dropdown-indicator"
|
21 |
+
icon={ 'arrow-down' }
|
22 |
+
/>
|
23 |
+
</components.DropdownIndicator>
|
24 |
+
)
|
25 |
+
);
|
26 |
+
|
27 |
+
const IndicatorSeparator = () => null;
|
28 |
+
|
29 |
+
/**
|
30 |
+
* There seems to be an issue with Creatable and a custom isValidNewOption
|
31 |
+
* prop needs to be passed in for this to work.
|
32 |
+
*
|
33 |
+
* See:
|
34 |
+
* - https://github.com/JedWatson/react-select/issues/2630
|
35 |
+
* - https://github.com/JedWatson/react-select/issues/2944
|
36 |
+
*/
|
37 |
+
const CreatableSelect = ( { className, ...rest } ) => (
|
38 |
+
<ReactCreatableSelect
|
39 |
+
className={ classNames( 'tribe-editor__creatable-select', className ) }
|
40 |
+
classNamePrefix="tribe-editor__creatable-select"
|
41 |
+
components={ { DropdownIndicator, IndicatorSeparator } }
|
42 |
+
{ ...rest }
|
43 |
+
/>
|
44 |
+
);
|
45 |
+
|
46 |
+
CreatableSelect.propTypes = {
|
47 |
+
className: PropTypes.string,
|
48 |
+
};
|
49 |
+
|
50 |
+
export default CreatableSelect;
|
common/src/modules/elements/creatable-select/style.pcss
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tribe-editor__creatable-select {
|
2 |
+
|
3 |
+
.tribe-editor__creatable-select__control {
|
4 |
+
height: 40px;
|
5 |
+
border: 1px solid #E1E3E6;
|
6 |
+
border-radius: 3px;
|
7 |
+
background-color: #FFFFFF;
|
8 |
+
|
9 |
+
&:hover {
|
10 |
+
border: 1px solid #E1E3E6;
|
11 |
+
}
|
12 |
+
|
13 |
+
&--is-focused {
|
14 |
+
box-shadow: none;
|
15 |
+
}
|
16 |
+
}
|
17 |
+
|
18 |
+
.tribe-editor__creatable-select__value-container {
|
19 |
+
padding: 2px 5px 2px 15px;
|
20 |
+
}
|
21 |
+
|
22 |
+
.tribe-editor__creatable-select__single-value {
|
23 |
+
margin: 0;
|
24 |
+
max-width: calc(100% - 15px);
|
25 |
+
font-size: 16px;
|
26 |
+
line-height: 1.5;
|
27 |
+
}
|
28 |
+
|
29 |
+
.tribe-editor__creatable-select__input {
|
30 |
+
font-size: 16px;
|
31 |
+
|
32 |
+
& > input {
|
33 |
+
margin: 0;
|
34 |
+
line-height: 1.5;
|
35 |
+
|
36 |
+
&,
|
37 |
+
&:focus {
|
38 |
+
box-shadow: none;
|
39 |
+
}
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
svg.tribe-editor__creatable-select__dropdown-indicator {
|
44 |
+
fill: #555D66;
|
45 |
+
}
|
46 |
+
|
47 |
+
.tribe-editor__creatable-select__menu {
|
48 |
+
margin: 0;
|
49 |
+
border: 1px solid #E1E3E6;
|
50 |
+
border-top: none;
|
51 |
+
border-radius: 0;
|
52 |
+
border-bottom-left-radius: 3px;
|
53 |
+
border-bottom-right-radius: 3px;
|
54 |
+
box-shadow: none;
|
55 |
+
transform: translateY(-7px);
|
56 |
+
}
|
57 |
+
|
58 |
+
.tribe-editor__creatable-select__menu-list {
|
59 |
+
padding: 0;
|
60 |
+
}
|
61 |
+
|
62 |
+
.tribe-editor__creatable-select__option {
|
63 |
+
font-size: 16px;
|
64 |
+
line-height: 1.5;
|
65 |
+
padding: 3px 15px;
|
66 |
+
|
67 |
+
&--is-focused {
|
68 |
+
background-color: #E7F5FA;
|
69 |
+
}
|
70 |
+
|
71 |
+
&--is-selected {
|
72 |
+
background-color: #11A0D2;
|
73 |
+
}
|
74 |
+
}
|
75 |
+
}
|
common/src/modules/elements/day-picker-input/element.js
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import classNames from 'classnames';
|
6 |
+
import 'react-day-picker/lib/style.css';
|
7 |
+
import ReactDayPickerInput from 'react-day-picker/DayPickerInput';
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Internal dependencies
|
11 |
+
*/
|
12 |
+
import './style.pcss';
|
13 |
+
|
14 |
+
const DayPickerInput = ( props ) => (
|
15 |
+
<ReactDayPickerInput
|
16 |
+
classNames={ {
|
17 |
+
container: classNames(
|
18 |
+
'tribe-editor__day-picker-input',
|
19 |
+
'DayPickerInput',
|
20 |
+
),
|
21 |
+
overlayWrapper: classNames(
|
22 |
+
'tribe-editor__day-picker-input__overlay-wrapper',
|
23 |
+
'DayPickerInput-OverlayWrapper',
|
24 |
+
),
|
25 |
+
overlay: classNames(
|
26 |
+
'tribe-editor__day-picker-input__overlay',
|
27 |
+
'DayPickerInput-Overlay',
|
28 |
+
),
|
29 |
+
} }
|
30 |
+
{ ...props }
|
31 |
+
/>
|
32 |
+
);
|
33 |
+
|
34 |
+
export default DayPickerInput;
|
common/src/modules/elements/day-picker-input/style.pcss
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tribe-editor__day-picker-input.DayPickerInput {
|
2 |
+
|
3 |
+
& > input {
|
4 |
+
border: 1px solid #e1e3e6;
|
5 |
+
color: #545d66;
|
6 |
+
font-size: 16px;
|
7 |
+
line-height: 24px;
|
8 |
+
padding: 7px 15px;
|
9 |
+
width: 100%;
|
10 |
+
height: 40px;
|
11 |
+
|
12 |
+
&:disabled {
|
13 |
+
color: #AEB4BB;
|
14 |
+
}
|
15 |
+
}
|
16 |
+
}
|
17 |
+
|
18 |
+
/* -----------------------------------------------------------
|
19 |
+
DayPicker Input Calender Styles
|
20 |
+
----------------------------------------------------------- */
|
21 |
+
|
22 |
+
.tribe-editor__day-picker-input {
|
23 |
+
|
24 |
+
.DayPickerInput-Overlay {
|
25 |
+
padding: 20px;
|
26 |
+
z-index: 10;
|
27 |
+
}
|
28 |
+
|
29 |
+
.DayPicker {
|
30 |
+
width: 100%;
|
31 |
+
}
|
32 |
+
|
33 |
+
.DayPicker-Month {
|
34 |
+
margin: 0;
|
35 |
+
}
|
36 |
+
|
37 |
+
.DayPicker-Caption > div,
|
38 |
+
.DayPicker-Weekday,
|
39 |
+
.DayPicker-Day {
|
40 |
+
color: #545d66;
|
41 |
+
font-family: 'Helvetica', 'sans-serif';
|
42 |
+
font-weight: normal;
|
43 |
+
}
|
44 |
+
|
45 |
+
.DayPicker-Caption > div {
|
46 |
+
font-size: 16px;
|
47 |
+
margin-bottom: 12px;
|
48 |
+
text-align: center;
|
49 |
+
}
|
50 |
+
|
51 |
+
.DayPicker-Weekday {
|
52 |
+
font-size: 12px;
|
53 |
+
}
|
54 |
+
|
55 |
+
.DayPicker-Day {
|
56 |
+
font-size: 14px;
|
57 |
+
|
58 |
+
&:hover {
|
59 |
+
color: #007bb4;
|
60 |
+
background-color: #ffffff;
|
61 |
+
}
|
62 |
+
}
|
63 |
+
|
64 |
+
.DayPicker-Day--today {
|
65 |
+
color: #545D66;
|
66 |
+
}
|
67 |
+
|
68 |
+
.DayPicker-Day--disabled {
|
69 |
+
pointer-events: none;
|
70 |
+
color: #cccccc;
|
71 |
+
}
|
72 |
+
|
73 |
+
.DayPicker-Day--selected:not(.DayPicker-Day--outside) {
|
74 |
+
border-radius: 0;
|
75 |
+
background-color: #009fd4;
|
76 |
+
color: #ffffff;
|
77 |
+
|
78 |
+
&:hover {
|
79 |
+
background-color: #007bb4;
|
80 |
+
color: #ffffff;
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
+
.DayPicker-NavButton--prev {
|
85 |
+
left: 0;
|
86 |
+
top: 0;
|
87 |
+
}
|
88 |
+
|
89 |
+
.DayPicker-NavButton--next {
|
90 |
+
right: 0;
|
91 |
+
top: 0;
|
92 |
+
}
|
93 |
+
|
94 |
+
.DayPicker:not(.DayPicker--interactionDisabled) .DayPicker-Day:not(.DayPicker-Day--disabled):not(.DayPicker-Day--selected):not(.DayPicker-Day--outside) {
|
95 |
+
|
96 |
+
&:hover {
|
97 |
+
background-color: #ffffff;
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
.DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside) {
|
102 |
+
background-color: #e7f5fa;
|
103 |
+
color: #545d66;
|
104 |
+
|
105 |
+
&:hover {
|
106 |
+
color: #007bb4;
|
107 |
+
}
|
108 |
+
}
|
109 |
+
}
|
common/src/modules/elements/heading/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`<Heading> <h1> 1`] = `
|
4 |
+
<h1
|
5 |
+
className="tribe-editor__heading tribe-editor__heading--h1"
|
6 |
+
>
|
7 |
+
Modern Tribe
|
8 |
+
</h1>
|
9 |
+
`;
|
10 |
+
|
11 |
+
exports[`<Heading> <h2> 1`] = `
|
12 |
+
<h2
|
13 |
+
className="tribe-editor__heading tribe-editor__heading--h2"
|
14 |
+
>
|
15 |
+
Modern Tribe
|
16 |
+
</h2>
|
17 |
+
`;
|
18 |
+
|
19 |
+
exports[`<Heading> <h3> 1`] = `
|
20 |
+
<h3
|
21 |
+
className="tribe-editor__heading tribe-editor__heading--h3"
|
22 |
+
>
|
23 |
+
Modern Tribe
|
24 |
+
</h3>
|
25 |
+
`;
|
26 |
+
|
27 |
+
exports[`<Heading> <h4> 1`] = `
|
28 |
+
<h4
|
29 |
+
className="tribe-editor__heading tribe-editor__heading--h4"
|
30 |
+
>
|
31 |
+
Modern Tribe
|
32 |
+
</h4>
|
33 |
+
`;
|
34 |
+
|
35 |
+
exports[`<Heading> <h5> 1`] = `
|
36 |
+
<h5
|
37 |
+
className="tribe-editor__heading tribe-editor__heading--h5"
|
38 |
+
>
|
39 |
+
Modern Tribe
|
40 |
+
</h5>
|
41 |
+
`;
|
42 |
+
|
43 |
+
exports[`<Heading> <h6> 1`] = `
|
44 |
+
<h6
|
45 |
+
className="tribe-editor__heading tribe-editor__heading--h6"
|
46 |
+
>
|
47 |
+
Modern Tribe
|
48 |
+
</h6>
|
49 |
+
`;
|
common/src/modules/elements/heading/__tests__/element.test.js
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import React from 'react';
|
2 |
+
|
3 |
+
import Heading from '../element';
|
4 |
+
|
5 |
+
describe( '<Heading>', () => {
|
6 |
+
test( '<h1>', () => {
|
7 |
+
const component = renderer.create(
|
8 |
+
<Heading level={ 1 }>Modern Tribe</Heading>,
|
9 |
+
);
|
10 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
11 |
+
} );
|
12 |
+
|
13 |
+
test( '<h2>', () => {
|
14 |
+
const component = renderer.create(
|
15 |
+
<Heading level={ 2 }>Modern Tribe</Heading>,
|
16 |
+
);
|
17 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
18 |
+
} );
|
19 |
+
|
20 |
+
test( '<h3>', () => {
|
21 |
+
const component = renderer.create(
|
22 |
+
<Heading level={ 3 }>Modern Tribe</Heading>,
|
23 |
+
);
|
24 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
25 |
+
} );
|
26 |
+
|
27 |
+
test( '<h4>', () => {
|
28 |
+
const component = renderer.create(
|
29 |
+
<Heading level={ 4 }>Modern Tribe</Heading>,
|
30 |
+
);
|
31 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
32 |
+
} );
|
33 |
+
|
34 |
+
test( '<h5>', () => {
|
35 |
+
const component = renderer.create(
|
36 |
+
<Heading level={ 5 }>Modern Tribe</Heading>,
|
37 |
+
);
|
38 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
39 |
+
} );
|
40 |
+
|
41 |
+
test( '<h6>', () => {
|
42 |
+
const component = renderer.create(
|
43 |
+
<Heading level={ 6 }>Modern Tribe</Heading>,
|
44 |
+
);
|
45 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
46 |
+
} );
|
47 |
+
} );
|
common/src/modules/elements/heading/element.js
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
import './style.pcss';
|
12 |
+
|
13 |
+
const Heading = ( { level, children, className } ) => {
|
14 |
+
const HeadingLevel = `h${ level }`;
|
15 |
+
const headingClassName = classNames(
|
16 |
+
'tribe-editor__heading',
|
17 |
+
`tribe-editor__heading--h${ level }`,
|
18 |
+
className,
|
19 |
+
);
|
20 |
+
return (
|
21 |
+
<HeadingLevel className={ headingClassName }>
|
22 |
+
{ children }
|
23 |
+
</HeadingLevel>
|
24 |
+
);
|
25 |
+
};
|
26 |
+
|
27 |
+
Heading.propTypes = {
|
28 |
+
children: PropTypes.node.isRequired,
|
29 |
+
level: PropTypes.oneOf( [ 1, 2, 3, 4, 5, 6 ] ).isRequired,
|
30 |
+
};
|
31 |
+
|
32 |
+
export default Heading;
|
common/src/modules/elements/heading/style.pcss
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tribe-editor__heading {
|
2 |
+
font-family: 'Helvetica', 'Arial', 'sans-serif';
|
3 |
+
color: #000;
|
4 |
+
}
|
5 |
+
|
6 |
+
.tribe-editor__heading--h1 {
|
7 |
+
font-size: 2.375rem; /* 38pts */
|
8 |
+
}
|
9 |
+
|
10 |
+
.tribe-editor__heading--h2 {
|
11 |
+
font-size: 1.3125rem; /* 21pts */
|
12 |
+
}
|
13 |
+
|
14 |
+
.tribe-editor__heading--h3 {
|
15 |
+
font-size: 1rem; /* 16pts */
|
16 |
+
}
|
common/src/modules/elements/image-upload/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,191 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`ImageUpload renders the component 1`] = `
|
4 |
+
<div
|
5 |
+
className="tribe-editor__image-upload"
|
6 |
+
>
|
7 |
+
<div
|
8 |
+
className="tribe-editor__image-upload__content"
|
9 |
+
>
|
10 |
+
<button>
|
11 |
+
Media Upload
|
12 |
+
</button>
|
13 |
+
</div>
|
14 |
+
</div>
|
15 |
+
`;
|
16 |
+
|
17 |
+
exports[`ImageUpload renders upload image button 1`] = `
|
18 |
+
<div
|
19 |
+
className="tribe-editor__image-upload"
|
20 |
+
>
|
21 |
+
<div
|
22 |
+
className="tribe-editor__image-upload__content"
|
23 |
+
>
|
24 |
+
<button>
|
25 |
+
Media Upload
|
26 |
+
</button>
|
27 |
+
</div>
|
28 |
+
</div>
|
29 |
+
`;
|
30 |
+
|
31 |
+
exports[`ImageUpload renders uploaded image 1`] = `
|
32 |
+
<div
|
33 |
+
className="tribe-editor__image-upload tribe-editor__image-upload--has-image"
|
34 |
+
>
|
35 |
+
<div
|
36 |
+
className="tribe-editor__image-upload__content"
|
37 |
+
>
|
38 |
+
<div
|
39 |
+
className="tribe-editor__image-upload__image-wrapper"
|
40 |
+
>
|
41 |
+
<img
|
42 |
+
alt="test-alt"
|
43 |
+
className="tribe-editor__image tribe-editor__image-upload__image"
|
44 |
+
src="test-src"
|
45 |
+
/>
|
46 |
+
<button
|
47 |
+
className="tribe-editor__button tribe-editor__image-upload__remove-button"
|
48 |
+
onClick={[MockFunction]}
|
49 |
+
type="button"
|
50 |
+
>
|
51 |
+
<span>
|
52 |
+
icon
|
53 |
+
</span>
|
54 |
+
<span
|
55 |
+
className="tribe-editor__image-upload__remove-button-text"
|
56 |
+
>
|
57 |
+
remove
|
58 |
+
</span>
|
59 |
+
</button>
|
60 |
+
</div>
|
61 |
+
</div>
|
62 |
+
</div>
|
63 |
+
`;
|
64 |
+
|
65 |
+
exports[`ImageUpload renders with class 1`] = `
|
66 |
+
<div
|
67 |
+
className="tribe-editor__image-upload test-class"
|
68 |
+
>
|
69 |
+
<div
|
70 |
+
className="tribe-editor__image-upload__content"
|
71 |
+
>
|
72 |
+
<button>
|
73 |
+
Media Upload
|
74 |
+
</button>
|
75 |
+
</div>
|
76 |
+
</div>
|
77 |
+
`;
|
78 |
+
|
79 |
+
exports[`ImageUpload renders with description 1`] = `
|
80 |
+
<div
|
81 |
+
className="tribe-editor__image-upload"
|
82 |
+
>
|
83 |
+
<div
|
84 |
+
className="tribe-editor__image-upload__content"
|
85 |
+
>
|
86 |
+
<p
|
87 |
+
className="tribe-editor__image-upload__description"
|
88 |
+
>
|
89 |
+
The Next Generation of Digital Agency
|
90 |
+
</p>
|
91 |
+
<button>
|
92 |
+
Media Upload
|
93 |
+
</button>
|
94 |
+
</div>
|
95 |
+
</div>
|
96 |
+
`;
|
97 |
+
|
98 |
+
exports[`ImageUpload renders with title 1`] = `
|
99 |
+
<div
|
100 |
+
className="tribe-editor__image-upload"
|
101 |
+
>
|
102 |
+
<h3
|
103 |
+
className="tribe-editor__image-upload__title"
|
104 |
+
>
|
105 |
+
Modern Tribe
|
106 |
+
</h3>
|
107 |
+
<div
|
108 |
+
className="tribe-editor__image-upload__content"
|
109 |
+
>
|
110 |
+
<button>
|
111 |
+
Media Upload
|
112 |
+
</button>
|
113 |
+
</div>
|
114 |
+
</div>
|
115 |
+
`;
|
116 |
+
|
117 |
+
exports[`renderImage renders the image and button 1`] = `
|
118 |
+
<div
|
119 |
+
className="tribe-editor__image-upload__image-wrapper"
|
120 |
+
>
|
121 |
+
<img
|
122 |
+
alt="test-alt"
|
123 |
+
className="tribe-editor__image tribe-editor__image-upload__image"
|
124 |
+
src="test-src"
|
125 |
+
/>
|
126 |
+
<button
|
127 |
+
className="tribe-editor__button tribe-editor__image-upload__remove-button"
|
128 |
+
disabled={false}
|
129 |
+
onClick={[MockFunction]}
|
130 |
+
type="button"
|
131 |
+
>
|
132 |
+
<span>
|
133 |
+
icon
|
134 |
+
</span>
|
135 |
+
<span
|
136 |
+
className="tribe-editor__image-upload__remove-button-text"
|
137 |
+
>
|
138 |
+
remove
|
139 |
+
</span>
|
140 |
+
</button>
|
141 |
+
</div>
|
142 |
+
`;
|
143 |
+
|
144 |
+
exports[`renderImage renders the image and disabled button 1`] = `
|
145 |
+
<div
|
146 |
+
className="tribe-editor__image-upload__image-wrapper"
|
147 |
+
>
|
148 |
+
<img
|
149 |
+
alt="test-alt"
|
150 |
+
className="tribe-editor__image tribe-editor__image-upload__image"
|
151 |
+
src="test-src"
|
152 |
+
/>
|
153 |
+
<button
|
154 |
+
className="tribe-editor__button tribe-editor__image-upload__remove-button"
|
155 |
+
disabled={true}
|
156 |
+
onClick={[MockFunction]}
|
157 |
+
type="button"
|
158 |
+
>
|
159 |
+
<span>
|
160 |
+
icon
|
161 |
+
</span>
|
162 |
+
<span
|
163 |
+
className="tribe-editor__image-upload__remove-button-text"
|
164 |
+
>
|
165 |
+
remove
|
166 |
+
</span>
|
167 |
+
</button>
|
168 |
+
</div>
|
169 |
+
`;
|
170 |
+
|
171 |
+
exports[`renderImageUploadButton renders the button 1`] = `
|
172 |
+
<button
|
173 |
+
className="tribe-editor__button tribe-editor__button--sm tribe-editor__image-upload__upload-button"
|
174 |
+
disabled={false}
|
175 |
+
onClick={[MockFunction]}
|
176 |
+
type="button"
|
177 |
+
>
|
178 |
+
label
|
179 |
+
</button>
|
180 |
+
`;
|
181 |
+
|
182 |
+
exports[`renderImageUploadButton renders the button disabled 1`] = `
|
183 |
+
<button
|
184 |
+
className="tribe-editor__button tribe-editor__button--sm tribe-editor__image-upload__upload-button"
|
185 |
+
disabled={true}
|
186 |
+
onClick={[MockFunction]}
|
187 |
+
type="button"
|
188 |
+
>
|
189 |
+
label
|
190 |
+
</button>
|
191 |
+
`;
|
common/src/modules/elements/image-upload/__tests__/element.test.js
ADDED
@@ -0,0 +1,168 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import ImageUpload, {
|
10 |
+
renderImageUploadButton,
|
11 |
+
renderImage,
|
12 |
+
} from '@moderntribe/common/elements/image-upload/element';
|
13 |
+
|
14 |
+
jest.mock( '@wordpress/editor', () => ( {
|
15 |
+
MediaUpload: () => ( <button>Media Upload</button> ),
|
16 |
+
} ) );
|
17 |
+
|
18 |
+
jest.mock( '@moderntribe/common/icons', () => ( {
|
19 |
+
Close: () => <span>icon</span>,
|
20 |
+
} ) );
|
21 |
+
|
22 |
+
describe( 'renderImageUploadButton', () => {
|
23 |
+
const open = jest.fn();
|
24 |
+
|
25 |
+
afterEach( () => {
|
26 |
+
open.mockClear();
|
27 |
+
} );
|
28 |
+
|
29 |
+
it( 'renders the button', () => {
|
30 |
+
const component = renderer.create( renderImageUploadButton( false, 'label' )( { open } ) );
|
31 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
32 |
+
} );
|
33 |
+
|
34 |
+
it( 'renders the button disabled', () => {
|
35 |
+
const component = renderer.create( renderImageUploadButton( true, 'label' )( { open } ) );
|
36 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
37 |
+
} );
|
38 |
+
|
39 |
+
it( 'executes the open action when the mediaUpload is fired', () => {
|
40 |
+
const component = mount( renderImageUploadButton( false, 'label' )( { open } ) );
|
41 |
+
component.find( 'button' ).simulate( 'click' );
|
42 |
+
expect( open ).toHaveBeenCalled();
|
43 |
+
expect( open ).toHaveBeenCalledTimes( 1 );
|
44 |
+
} );
|
45 |
+
} );
|
46 |
+
|
47 |
+
describe( 'renderImage', () => {
|
48 |
+
const onRemove = jest.fn();
|
49 |
+
const image = {
|
50 |
+
id: 42,
|
51 |
+
src: 'test-src',
|
52 |
+
alt: 'test-alt',
|
53 |
+
};
|
54 |
+
|
55 |
+
afterEach( () => {
|
56 |
+
onRemove.mockClear();
|
57 |
+
} );
|
58 |
+
|
59 |
+
it( 'renders the image and button', () => {
|
60 |
+
const component = renderer.create( renderImage( false, image, onRemove ) );
|
61 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
62 |
+
} );
|
63 |
+
|
64 |
+
it( 'renders the image and disabled button', () => {
|
65 |
+
const component = renderer.create( renderImage( true, image, onRemove ) );
|
66 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
67 |
+
} );
|
68 |
+
|
69 |
+
it( 'executes onRemove on click', () => {
|
70 |
+
const component = mount( renderImage( false, image, onRemove ) );
|
71 |
+
component.find( 'button' ).simulate( 'click' );
|
72 |
+
expect( onRemove ).toHaveBeenCalled();
|
73 |
+
expect( onRemove ).toHaveBeenCalledTimes( 1 );
|
74 |
+
} );
|
75 |
+
} );
|
76 |
+
|
77 |
+
describe( 'ImageUpload', () => {
|
78 |
+
const onRemove = jest.fn();
|
79 |
+
const onSelect = jest.fn();
|
80 |
+
let image;
|
81 |
+
|
82 |
+
beforeEach( () => {
|
83 |
+
image = {
|
84 |
+
id: 0,
|
85 |
+
src: '',
|
86 |
+
alt: '',
|
87 |
+
};
|
88 |
+
} );
|
89 |
+
|
90 |
+
afterEach( () => {
|
91 |
+
onRemove.mockClear();
|
92 |
+
onSelect.mockClear();
|
93 |
+
} );
|
94 |
+
|
95 |
+
it( 'renders the component', () => {
|
96 |
+
const component = renderer.create(
|
97 |
+
<ImageUpload
|
98 |
+
image={ image }
|
99 |
+
onSelect={ onSelect }
|
100 |
+
onRemove={ onRemove }
|
101 |
+
/>
|
102 |
+
);
|
103 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
104 |
+
} );
|
105 |
+
|
106 |
+
it( 'renders with title', () => {
|
107 |
+
const component = renderer.create(
|
108 |
+
<ImageUpload
|
109 |
+
image={ image }
|
110 |
+
onSelect={ onSelect }
|
111 |
+
onRemove={ onRemove }
|
112 |
+
title="Modern Tribe"
|
113 |
+
/>
|
114 |
+
);
|
115 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
116 |
+
} );
|
117 |
+
|
118 |
+
it( 'renders with description', () => {
|
119 |
+
const component = renderer.create(
|
120 |
+
<ImageUpload
|
121 |
+
image={ image }
|
122 |
+
onSelect={ onSelect}
|
123 |
+
onRemove={ onRemove }
|
124 |
+
description="The Next Generation of Digital Agency"
|
125 |
+
/>
|
126 |
+
);
|
127 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
128 |
+
} );
|
129 |
+
|
130 |
+
it( 'renders with class', () => {
|
131 |
+
const component = renderer.create(
|
132 |
+
<ImageUpload
|
133 |
+
image={ image }
|
134 |
+
onSelect={ onSelect }
|
135 |
+
onRemove={ onRemove }
|
136 |
+
className="test-class"
|
137 |
+
/>
|
138 |
+
);
|
139 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
140 |
+
} );
|
141 |
+
|
142 |
+
it( 'renders uploaded image', () => {
|
143 |
+
image = {
|
144 |
+
id: 42,
|
145 |
+
src: 'test-src',
|
146 |
+
alt: 'test-alt',
|
147 |
+
};
|
148 |
+
const component = renderer.create(
|
149 |
+
<ImageUpload
|
150 |
+
image={ image }
|
151 |
+
onSelect={ onSelect }
|
152 |
+
onRemove={ onRemove }
|
153 |
+
/>
|
154 |
+
);
|
155 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
156 |
+
} );
|
157 |
+
|
158 |
+
it( 'renders upload image button', () => {
|
159 |
+
const component = renderer.create(
|
160 |
+
<ImageUpload
|
161 |
+
image={ image }
|
162 |
+
onSelect={ onSelect }
|
163 |
+
onRemove={ onRemove }
|
164 |
+
/>
|
165 |
+
);
|
166 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
167 |
+
} );
|
168 |
+
} );
|
common/src/modules/elements/image-upload/element.js
ADDED
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
import { noop } from 'lodash';
|
8 |
+
|
9 |
+
/**
|
10 |
+
* WordPress dependencies
|
11 |
+
*/
|
12 |
+
import { __ } from '@wordpress/i18n';
|
13 |
+
import { MediaUpload } from '@wordpress/editor';
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Internal dependencies
|
17 |
+
*/
|
18 |
+
import { Button, Image } from '@moderntribe/common/elements';
|
19 |
+
import { Close as CloseIcon } from '@moderntribe/common/icons';
|
20 |
+
import './style.pcss';
|
21 |
+
|
22 |
+
export const renderImageUploadButton = ( disabled, label ) => ( { open } ) => (
|
23 |
+
<Button
|
24 |
+
onClick={ open }
|
25 |
+
className={ [ 'tribe-editor__button--sm', 'tribe-editor__image-upload__upload-button' ] }
|
26 |
+
disabled={ disabled }
|
27 |
+
>
|
28 |
+
{ label }
|
29 |
+
</Button>
|
30 |
+
);
|
31 |
+
|
32 |
+
export const renderImage = ( disabled, image, onRemove ) => (
|
33 |
+
<div className="tribe-editor__image-upload__image-wrapper">
|
34 |
+
<Image
|
35 |
+
src={ image.src }
|
36 |
+
alt={ image.alt }
|
37 |
+
className="tribe-editor__image-upload__image"
|
38 |
+
/>
|
39 |
+
<Button
|
40 |
+
className="tribe-editor__image-upload__remove-button"
|
41 |
+
onClick={ onRemove }
|
42 |
+
disabled={ disabled }
|
43 |
+
>
|
44 |
+
<CloseIcon />
|
45 |
+
<span className="tribe-editor__image-upload__remove-button-text">
|
46 |
+
{ __( 'remove', 'events-gutenberg' ) }
|
47 |
+
</span>
|
48 |
+
</Button>
|
49 |
+
</div>
|
50 |
+
);
|
51 |
+
|
52 |
+
const ImageUpload = ( {
|
53 |
+
buttonDisabled,
|
54 |
+
buttonLabel,
|
55 |
+
className,
|
56 |
+
description,
|
57 |
+
image,
|
58 |
+
onRemove,
|
59 |
+
onSelect,
|
60 |
+
removeButtonDisabled,
|
61 |
+
title,
|
62 |
+
} ) => {
|
63 |
+
const hasImageClass = { 'tribe-editor__image-upload--has-image': image.id };
|
64 |
+
|
65 |
+
return (
|
66 |
+
<div className={ classNames(
|
67 |
+
'tribe-editor__image-upload',
|
68 |
+
hasImageClass,
|
69 |
+
className,
|
70 |
+
) }>
|
71 |
+
{ title && <h3 className="tribe-editor__image-upload__title">{ title }</h3> }
|
72 |
+
<div className="tribe-editor__image-upload__content">
|
73 |
+
{ description && (
|
74 |
+
<p className="tribe-editor__image-upload__description">{ description }</p>
|
75 |
+
) }
|
76 |
+
{
|
77 |
+
image.id
|
78 |
+
? renderImage( removeButtonDisabled, image, onRemove )
|
79 |
+
: (
|
80 |
+
<MediaUpload
|
81 |
+
onSelect={ onSelect }
|
82 |
+
type="image"
|
83 |
+
render={ renderImageUploadButton( buttonDisabled, buttonLabel ) }
|
84 |
+
value={ image.id }
|
85 |
+
/>
|
86 |
+
)
|
87 |
+
}
|
88 |
+
</div>
|
89 |
+
</div>
|
90 |
+
);
|
91 |
+
};
|
92 |
+
|
93 |
+
ImageUpload.propTypes = {
|
94 |
+
buttonDisabled: PropTypes.bool,
|
95 |
+
buttonLabel: PropTypes.string,
|
96 |
+
className: PropTypes.string,
|
97 |
+
description: PropTypes.string,
|
98 |
+
image: PropTypes.shape( {
|
99 |
+
alt: PropTypes.string.isRequired,
|
100 |
+
id: PropTypes.number.isRequired,
|
101 |
+
src: PropTypes.string.isRequired,
|
102 |
+
} ).isRequired,
|
103 |
+
onRemove: PropTypes.func.isRequired,
|
104 |
+
onSelect: PropTypes.func.isRequired,
|
105 |
+
removeButtonDisabled: PropTypes.bool,
|
106 |
+
title: PropTypes.string,
|
107 |
+
};
|
108 |
+
|
109 |
+
ImageUpload.defaultProps = {
|
110 |
+
onRemove: noop,
|
111 |
+
onSelect: noop,
|
112 |
+
};
|
113 |
+
|
114 |
+
export default ImageUpload;
|
common/src/modules/elements/image-upload/style.pcss
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tribe-editor__image-upload {}
|
2 |
+
|
3 |
+
.tribe-editor__image-upload__title {
|
4 |
+
|
5 |
+
/* extra classes to override gutenberg styles for h3 */
|
6 |
+
.edit-post-visual-editor .editor-block-list__block & {
|
7 |
+
padding: 0;
|
8 |
+
margin: 0 0 12px;
|
9 |
+
color: #000000;
|
10 |
+
font-size: 15px;
|
11 |
+
font-weight: bold;
|
12 |
+
line-height: 18px;
|
13 |
+
}
|
14 |
+
}
|
15 |
+
|
16 |
+
.tribe-editor__image-upload__content {
|
17 |
+
display: flex;
|
18 |
+
justify-content: space-between;
|
19 |
+
align-items: center;
|
20 |
+
|
21 |
+
.tribe-editor__image-upload--has-image & {
|
22 |
+
align-items: flex-start;
|
23 |
+
}
|
24 |
+
}
|
25 |
+
|
26 |
+
p.tribe-editor__image-upload__description {
|
27 |
+
|
28 |
+
.tribe-editor__image-upload__content & {
|
29 |
+
flex: none;
|
30 |
+
width: 52%;
|
31 |
+
font-family: Helvetica, sans-serif, arial;
|
32 |
+
font-size: 14px;
|
33 |
+
color: #545D66;
|
34 |
+
line-height: 18px;
|
35 |
+
margin: 0;
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
.tribe-editor__image-upload__upload-button {
|
40 |
+
flex: none;
|
41 |
+
margin-right: 10px;
|
42 |
+
}
|
43 |
+
|
44 |
+
.tribe-editor__image-upload__image-wrapper {
|
45 |
+
flex: none;
|
46 |
+
width: 42%;
|
47 |
+
max-width: 325px;
|
48 |
+
padding-left: 25px;
|
49 |
+
position: relative;
|
50 |
+
}
|
51 |
+
|
52 |
+
.tribe-editor__image-upload__remove-button {
|
53 |
+
position: absolute;
|
54 |
+
top: 10px;
|
55 |
+
right: 10px;
|
56 |
+
width: 32px;
|
57 |
+
height: 32px;
|
58 |
+
padding: 8px;
|
59 |
+
border-radius: 50%;
|
60 |
+
background-color: #F8F9FB;
|
61 |
+
|
62 |
+
& > svg {
|
63 |
+
|
64 |
+
&,
|
65 |
+
& path {
|
66 |
+
fill: #545D66;
|
67 |
+
}
|
68 |
+
}
|
69 |
+
|
70 |
+
&:hover,
|
71 |
+
&:focus {
|
72 |
+
|
73 |
+
& > svg {
|
74 |
+
|
75 |
+
&,
|
76 |
+
& path {
|
77 |
+
fill: #009FD4;
|
78 |
+
}
|
79 |
+
}
|
80 |
+
}
|
81 |
+
|
82 |
+
&:disabled {
|
83 |
+
|
84 |
+
&,
|
85 |
+
&:hover,
|
86 |
+
&:focus {
|
87 |
+
|
88 |
+
& > svg {
|
89 |
+
|
90 |
+
&,
|
91 |
+
& path {
|
92 |
+
fill: #AEB4BB;
|
93 |
+
}
|
94 |
+
}
|
95 |
+
}
|
96 |
+
}
|
97 |
+
}
|
98 |
+
|
99 |
+
/* visually hide remove button text */
|
100 |
+
.tribe-editor__image-upload__remove-button-text {
|
101 |
+
border: 0;
|
102 |
+
clip: rect(0 0 0 0);
|
103 |
+
height: 1px;
|
104 |
+
margin: -1px;
|
105 |
+
overflow: hidden;
|
106 |
+
padding: 0;
|
107 |
+
position: absolute;
|
108 |
+
width: 1px;
|
109 |
+
}
|
common/src/modules/elements/image/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Image Element renders image 1`] = `
|
4 |
+
<img
|
5 |
+
alt="test-alt"
|
6 |
+
className="tribe-editor__image"
|
7 |
+
src="test-src"
|
8 |
+
/>
|
9 |
+
`;
|
10 |
+
|
11 |
+
exports[`Image Element renders image with class 1`] = `
|
12 |
+
<img
|
13 |
+
alt="test-alt"
|
14 |
+
className="tribe-editor__image test-class"
|
15 |
+
src="test-src"
|
16 |
+
/>
|
17 |
+
`;
|
18 |
+
|
19 |
+
exports[`Image Element renders image with extra props 1`] = `
|
20 |
+
<img
|
21 |
+
alt="test-alt"
|
22 |
+
className="tribe-editor__image"
|
23 |
+
height="42"
|
24 |
+
src="test-src"
|
25 |
+
width="42"
|
26 |
+
/>
|
27 |
+
`;
|
common/src/modules/elements/image/__tests__/element.test.js
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import { Image } from '@moderntribe/common/elements';
|
10 |
+
|
11 |
+
let imageProps;
|
12 |
+
|
13 |
+
describe( 'Image Element', () => {
|
14 |
+
beforeEach( () => {
|
15 |
+
imageProps = {
|
16 |
+
src: 'test-src',
|
17 |
+
alt: 'test-alt',
|
18 |
+
};
|
19 |
+
} );
|
20 |
+
|
21 |
+
it( 'renders image', () => {
|
22 |
+
const component = renderer.create( <Image { ...imageProps } /> );
|
23 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
24 |
+
} );
|
25 |
+
|
26 |
+
it( 'renders image with class', () => {
|
27 |
+
imageProps.className = 'test-class';
|
28 |
+
const component = renderer.create( <Image { ...imageProps } /> );
|
29 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
30 |
+
} );
|
31 |
+
|
32 |
+
it( 'renders image with extra props', () => {
|
33 |
+
imageProps.width = "42";
|
34 |
+
imageProps.height = "42";
|
35 |
+
const component = renderer.create( <Image { ...imageProps } /> );
|
36 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
37 |
+
} );
|
38 |
+
} );
|
common/src/modules/elements/image/element.js
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
const Image = ( {
|
9 |
+
alt,
|
10 |
+
className,
|
11 |
+
src,
|
12 |
+
...rest,
|
13 |
+
} ) => (
|
14 |
+
<img
|
15 |
+
src={ src }
|
16 |
+
alt={ alt }
|
17 |
+
className={ classNames( 'tribe-editor__image', className ) }
|
18 |
+
{ ...rest }
|
19 |
+
/>
|
20 |
+
);
|
21 |
+
|
22 |
+
Image.propTypes = {
|
23 |
+
alt: PropTypes.string.isRequired,
|
24 |
+
className: PropTypes.string,
|
25 |
+
src: PropTypes.string.isRequired,
|
26 |
+
};
|
27 |
+
|
28 |
+
export default Image;
|
common/src/modules/elements/index.js
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export { default as Accordion } from './accordion/element';
|
2 |
+
export { default as BlockIcon } from '@moderntribe/common/elements/block-icon';
|
3 |
+
export { default as Button } from './button/element';
|
4 |
+
|
5 |
+
export { default as Counter } from './counter/element';
|
6 |
+
export { default as Image } from './image/element';
|
7 |
+
export { default as ImageUpload } from './image-upload/element';
|
8 |
+
export { default as LabeledItem } from './labeled-item/element';
|
9 |
+
export { default as LabelWithLink } from './label-with-link/element';
|
10 |
+
export { default as LabelWithModal } from './label-with-modal/element';
|
11 |
+
export { default as Link } from './link/element';
|
12 |
+
export { default as ModalButton } from './modal-button/element';
|
13 |
+
export { default as TimePicker } from './time-picker/element';
|
14 |
+
export { default as Tooltip } from './tooltip/element';
|
15 |
+
export { default as DayPickerInput } from './day-picker-input/element';
|
16 |
+
export { default as CreatableSelect } from './creatable-select/element';
|
17 |
+
export { default as Placeholder } from './placeholder/element';
|
18 |
+
export { default as Heading } from './heading/element';
|
19 |
+
export { default as Paragraph } from './paragraph/element';
|
20 |
+
|
21 |
+
// Inputs
|
22 |
+
export { default as Input } from './input/element';
|
23 |
+
export { default as UrlInput } from './url-input/element';
|
24 |
+
export { default as NumberInput } from './number-input/element';
|
25 |
+
export { default as Radio } from './radio/element';
|
26 |
+
export { default as RadioInput } from './radio-input/element';
|
27 |
+
export { default as Checkbox } from './checkbox/element';
|
28 |
+
export { default as CheckboxInput } from './checkbox-input/element';
|
29 |
+
export { default as Select } from './select/element';
|
30 |
+
export { default as Textarea } from './textarea/element';
|
31 |
+
|
32 |
+
/**
|
33 |
+
* @todo move this into Editor Module
|
34 |
+
*/
|
35 |
+
|
36 |
+
import './style.pcss'
|
common/src/modules/elements/input/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Input element Should render the component 1`] = `
|
4 |
+
<input
|
5 |
+
className="tribe-editor__input"
|
6 |
+
type="text"
|
7 |
+
/>
|
8 |
+
`;
|
9 |
+
|
10 |
+
exports[`Input element Should render the component with class 1`] = `
|
11 |
+
<input
|
12 |
+
className="tribe-editor__input input-class"
|
13 |
+
type="text"
|
14 |
+
/>
|
15 |
+
`;
|
16 |
+
|
17 |
+
exports[`Input element Should render the component with extra props 1`] = `
|
18 |
+
<input
|
19 |
+
className="tribe-editor__input"
|
20 |
+
onChange={[Function]}
|
21 |
+
type="text"
|
22 |
+
/>
|
23 |
+
`;
|
common/src/modules/elements/input/__tests__/element.test.js
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import renderer from 'react-test-renderer';
|
6 |
+
import { noop } from 'lodash';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
import Input from '../element.js';
|
12 |
+
|
13 |
+
describe( 'Input element', () => {
|
14 |
+
it( 'Should render the component', () => {
|
15 |
+
const component = renderer.create( <Input type="text" /> );
|
16 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
17 |
+
} );
|
18 |
+
|
19 |
+
it( 'Should render the component with class', () => {
|
20 |
+
const component = renderer.create( <Input type="text" className="input-class" /> );
|
21 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
22 |
+
} );
|
23 |
+
|
24 |
+
it( 'Should render the component with extra props', () => {
|
25 |
+
const component = renderer.create( <Input type="text" onChange={ noop } /> );
|
26 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
27 |
+
} );
|
28 |
+
} );
|
common/src/modules/elements/input/element.js
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External Dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
import './style.pcss';
|
12 |
+
|
13 |
+
const Input = ( {
|
14 |
+
className,
|
15 |
+
type,
|
16 |
+
...rest,
|
17 |
+
} ) => (
|
18 |
+
<input
|
19 |
+
className={ classNames( 'tribe-editor__input', className ) }
|
20 |
+
type={ type }
|
21 |
+
{ ...rest }
|
22 |
+
/>
|
23 |
+
);
|
24 |
+
|
25 |
+
Input.propTypes = {
|
26 |
+
className: PropTypes.string,
|
27 |
+
type: PropTypes.string.isRequired,
|
28 |
+
};
|
29 |
+
|
30 |
+
export default Input;
|
common/src/modules/elements/input/style.pcss
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* increased specificity required to override gutenberg editor styles */
|
2 |
+
input.tribe-editor__input {
|
3 |
+
|
4 |
+
/* this list will grow with more input types used */
|
5 |
+
&[type=number],
|
6 |
+
&[type=text] {
|
7 |
+
color: #000000;
|
8 |
+
font-size: 16px;
|
9 |
+
line-height: 24px;
|
10 |
+
border: 1px solid #E1E3E6;
|
11 |
+
padding: 7px 15px;
|
12 |
+
margin: 0;
|
13 |
+
height: 40px;
|
14 |
+
|
15 |
+
&:disabled {
|
16 |
+
color: #AEB4BB;
|
17 |
+
}
|
18 |
+
}
|
19 |
+
}
|
common/src/modules/elements/label-with-link/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Label With Link Element renders a label with link 1`] = `
|
4 |
+
<div
|
5 |
+
className="tribe-editor__labeled-item tribe-editor__label-with-link"
|
6 |
+
>
|
7 |
+
<span
|
8 |
+
className="tribe-editor__labeled-item__label"
|
9 |
+
/>
|
10 |
+
<a
|
11 |
+
className="tribe-editor__link tribe-editor__label-with-link__link"
|
12 |
+
href="#"
|
13 |
+
>
|
14 |
+
test-text
|
15 |
+
</a>
|
16 |
+
</div>
|
17 |
+
`;
|
18 |
+
|
19 |
+
exports[`Label With Link Element renders a label with link with class 1`] = `
|
20 |
+
<div
|
21 |
+
className="tribe-editor__labeled-item tribe-editor__label-with-link test-class"
|
22 |
+
>
|
23 |
+
<span
|
24 |
+
className="tribe-editor__labeled-item__label"
|
25 |
+
/>
|
26 |
+
<a
|
27 |
+
className="tribe-editor__link tribe-editor__label-with-link__link"
|
28 |
+
href="#"
|
29 |
+
>
|
30 |
+
test-text
|
31 |
+
</a>
|
32 |
+
</div>
|
33 |
+
`;
|
34 |
+
|
35 |
+
exports[`Label With Link Element renders a label with link with label 1`] = `
|
36 |
+
<div
|
37 |
+
className="tribe-editor__labeled-item tribe-editor__label-with-link"
|
38 |
+
>
|
39 |
+
<span
|
40 |
+
className="tribe-editor__labeled-item__label"
|
41 |
+
>
|
42 |
+
test label
|
43 |
+
</span>
|
44 |
+
<a
|
45 |
+
className="tribe-editor__link tribe-editor__label-with-link__link"
|
46 |
+
href="#"
|
47 |
+
>
|
48 |
+
test-text
|
49 |
+
</a>
|
50 |
+
</div>
|
51 |
+
`;
|
common/src/modules/elements/label-with-link/__tests__/element.test.js
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import LabelWithLink from '../element';
|
10 |
+
|
11 |
+
describe( 'Label With Link Element', () => {
|
12 |
+
it( 'renders a label with link', () => {
|
13 |
+
const component = renderer.create(
|
14 |
+
<LabelWithLink linkHref="#" linkText="test-text" />
|
15 |
+
);
|
16 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
17 |
+
} );
|
18 |
+
|
19 |
+
it( 'renders a label with link with class', () => {
|
20 |
+
const component = renderer.create(
|
21 |
+
<LabelWithLink linkHref="#" linkText="test-text" className="test-class" />
|
22 |
+
);
|
23 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
24 |
+
} );
|
25 |
+
|
26 |
+
it( 'renders a label with link with label', () => {
|
27 |
+
const component = renderer.create(
|
28 |
+
<LabelWithLink linkHref="#" linkText="test-text" label="test label" />
|
29 |
+
);
|
30 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
31 |
+
} );
|
32 |
+
} );
|
common/src/modules/elements/label-with-link/element.js
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
import Button from '@moderntribe/common/elements/button/element';
|
12 |
+
import LabeledItem from '@moderntribe/common/elements/labeled-item/element';
|
13 |
+
import Link from '@moderntribe/common/elements/link/element';
|
14 |
+
import './style.pcss';
|
15 |
+
|
16 |
+
const LabelWithLink = ( {
|
17 |
+
className,
|
18 |
+
label,
|
19 |
+
linkDisabled,
|
20 |
+
linkHref,
|
21 |
+
linkTarget,
|
22 |
+
linkText,
|
23 |
+
} ) => {
|
24 |
+
const getLink = () => {
|
25 |
+
const linkClass = 'tribe-editor__label-with-link__link';
|
26 |
+
|
27 |
+
return linkDisabled
|
28 |
+
? (
|
29 |
+
<Button
|
30 |
+
className={ classNames( linkClass, `${ linkClass }--disabled` ) }
|
31 |
+
disabled={ true }
|
32 |
+
>
|
33 |
+
{ linkText }
|
34 |
+
</Button>
|
35 |
+
)
|
36 |
+
: (
|
37 |
+
<Link
|
38 |
+
className={ linkClass }
|
39 |
+
href={ linkHref }
|
40 |
+
target={ linkTarget }
|
41 |
+
>
|
42 |
+
{ linkText }
|
43 |
+
</Link>
|
44 |
+
);
|
45 |
+
};
|
46 |
+
|
47 |
+
return (
|
48 |
+
<LabeledItem
|
49 |
+
className={ classNames( 'tribe-editor__label-with-link', className ) }
|
50 |
+
label={ label }
|
51 |
+
>
|
52 |
+
{ getLink() }
|
53 |
+
</LabeledItem>
|
54 |
+
);
|
55 |
+
};
|
56 |
+
|
57 |
+
LabelWithLink.propTypes = {
|
58 |
+
className: PropTypes.string,
|
59 |
+
label: PropTypes.node,
|
60 |
+
linkDisabled: PropTypes.bool,
|
61 |
+
linkHref: PropTypes.string.isRequired,
|
62 |
+
linkTarget: PropTypes.string,
|
63 |
+
linkText: PropTypes.string,
|
64 |
+
};
|
65 |
+
|
66 |
+
export default LabelWithLink;
|
common/src/modules/elements/label-with-link/style.pcss
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tribe-editor__label-with-link {
|
2 |
+
|
3 |
+
.tribe-editor__rsvp &,
|
4 |
+
.tribe-editor__ticket & {
|
5 |
+
display: flex;
|
6 |
+
align-items: center;
|
7 |
+
background-color: #FFFFFF;
|
8 |
+
padding: 10px 17px;
|
9 |
+
border: 1px solid #E1E3E6;
|
10 |
+
}
|
11 |
+
|
12 |
+
.tribe-editor__labeled-item__label {
|
13 |
+
|
14 |
+
.tribe-editor__rsvp &,
|
15 |
+
.tribe-editor__ticket & {
|
16 |
+
flex: auto;
|
17 |
+
color: #545D66;
|
18 |
+
font-size: 15px;
|
19 |
+
font-weight: bold;
|
20 |
+
line-height: 18px;
|
21 |
+
letter-spacing: 0.38px;
|
22 |
+
padding-right: 10px;
|
23 |
+
}
|
24 |
+
}
|
25 |
+
|
26 |
+
.tribe-editor__label-with-link__link {
|
27 |
+
|
28 |
+
.tribe-editor__rsvp &,
|
29 |
+
.tribe-editor__ticket & {
|
30 |
+
flex: none;
|
31 |
+
color: #009FD4;
|
32 |
+
font-size: 15px;
|
33 |
+
font-weight: bold;
|
34 |
+
line-height: 18px;
|
35 |
+
letter-spacing: 0.38px;
|
36 |
+
text-decoration: none;
|
37 |
+
box-shadow: none;
|
38 |
+
transition: color 0.2s ease;
|
39 |
+
|
40 |
+
&:hover,
|
41 |
+
&:focus {
|
42 |
+
color: #007BB4;
|
43 |
+
}
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
.tribe-editor__label-with-link__link.tribe-editor__label-with-link__link--disabled {
|
48 |
+
|
49 |
+
.tribe-editor__rsvp &,
|
50 |
+
.tribe-editor__ticket & {
|
51 |
+
color: #AEB4BB;
|
52 |
+
}
|
53 |
+
}
|
54 |
+
}
|
common/src/modules/elements/label-with-modal/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Label With Modal Element renders a label with modal 1`] = `
|
4 |
+
<div
|
5 |
+
className="tribe-editor__labeled-item tribe-editor__label-with-modal"
|
6 |
+
>
|
7 |
+
<span
|
8 |
+
className="tribe-editor__labeled-item__label"
|
9 |
+
/>
|
10 |
+
<div
|
11 |
+
className="tribe-editor__modal-button tribe-editor__label-with-modal__modal-button"
|
12 |
+
>
|
13 |
+
<button
|
14 |
+
className="tribe-editor__button tribe-editor__modal-button__button"
|
15 |
+
onClick={[Function]}
|
16 |
+
type="button"
|
17 |
+
/>
|
18 |
+
</div>
|
19 |
+
</div>
|
20 |
+
`;
|
21 |
+
|
22 |
+
exports[`Label With Modal Element renders a label with modal with class 1`] = `
|
23 |
+
<div
|
24 |
+
className="tribe-editor__labeled-item tribe-editor__label-with-modal test-class"
|
25 |
+
>
|
26 |
+
<span
|
27 |
+
className="tribe-editor__labeled-item__label"
|
28 |
+
/>
|
29 |
+
<div
|
30 |
+
className="tribe-editor__modal-button tribe-editor__label-with-modal__modal-button"
|
31 |
+
>
|
32 |
+
<button
|
33 |
+
className="tribe-editor__button tribe-editor__modal-button__button"
|
34 |
+
onClick={[Function]}
|
35 |
+
type="button"
|
36 |
+
/>
|
37 |
+
</div>
|
38 |
+
</div>
|
39 |
+
`;
|
40 |
+
|
41 |
+
exports[`Label With Modal Element renders a label with modal with label 1`] = `
|
42 |
+
<div
|
43 |
+
className="tribe-editor__labeled-item tribe-editor__label-with-modal"
|
44 |
+
>
|
45 |
+
<span
|
46 |
+
className="tribe-editor__labeled-item__label"
|
47 |
+
>
|
48 |
+
test label
|
49 |
+
</span>
|
50 |
+
<div
|
51 |
+
className="tribe-editor__modal-button tribe-editor__label-with-modal__modal-button"
|
52 |
+
>
|
53 |
+
<button
|
54 |
+
className="tribe-editor__button tribe-editor__modal-button__button"
|
55 |
+
onClick={[Function]}
|
56 |
+
type="button"
|
57 |
+
/>
|
58 |
+
</div>
|
59 |
+
</div>
|
60 |
+
`;
|
common/src/modules/elements/label-with-modal/__tests__/element.test.js
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import LabelWithModal from '@moderntribe/common/elements/label-with-modal/element';
|
10 |
+
|
11 |
+
describe( 'Label With Modal Element', () => {
|
12 |
+
it( 'renders a label with modal', () => {
|
13 |
+
const component = renderer.create( <LabelWithModal /> );
|
14 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
15 |
+
} );
|
16 |
+
|
17 |
+
it( 'renders a label with modal with class', () => {
|
18 |
+
const component = renderer.create( <LabelWithModal className="test-class" /> );
|
19 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
20 |
+
} );
|
21 |
+
|
22 |
+
it( 'renders a label with modal with label', () => {
|
23 |
+
const component = renderer.create( <LabelWithModal label="test label" /> );
|
24 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
25 |
+
} );
|
26 |
+
} );
|
common/src/modules/elements/label-with-modal/element.js
ADDED
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
import { noop } from 'lodash';
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Internal dependencies
|
11 |
+
*/
|
12 |
+
import LabeledItem from '@moderntribe/common/elements/labeled-item/element';
|
13 |
+
import ModalButton from '@moderntribe/common/elements/modal-button/element';
|
14 |
+
import './style.pcss';
|
15 |
+
|
16 |
+
const LabelWithModal = ( {
|
17 |
+
className,
|
18 |
+
label,
|
19 |
+
modalButtonDisabled,
|
20 |
+
modalButtonLabel,
|
21 |
+
modalClassName,
|
22 |
+
modalContent,
|
23 |
+
modalOverlayClassName,
|
24 |
+
modalTitle,
|
25 |
+
onClick,
|
26 |
+
onClose,
|
27 |
+
onOpen,
|
28 |
+
} ) => (
|
29 |
+
<LabeledItem
|
30 |
+
className={ classNames( 'tribe-editor__label-with-modal', className ) }
|
31 |
+
label={ label }
|
32 |
+
>
|
33 |
+
<ModalButton
|
34 |
+
className="tribe-editor__label-with-modal__modal-button"
|
35 |
+
disabled={ modalButtonDisabled }
|
36 |
+
label={ modalButtonLabel }
|
37 |
+
modalClassName={ modalClassName }
|
38 |
+
modalContent={ modalContent }
|
39 |
+
modalOverlayClassName={ modalOverlayClassName }
|
40 |
+
modalTitle={ modalTitle }
|
41 |
+
onClick={ onClick }
|
42 |
+
onClose={ onClose }
|
43 |
+
onOpen={ onOpen }
|
44 |
+
/>
|
45 |
+
</LabeledItem>
|
46 |
+
);
|
47 |
+
|
48 |
+
LabelWithModal.defaultProps = {
|
49 |
+
onClick: noop,
|
50 |
+
onClose: noop,
|
51 |
+
onOpen: noop,
|
52 |
+
};
|
53 |
+
|
54 |
+
LabelWithModal.propTypes = {
|
55 |
+
className: PropTypes.string,
|
56 |
+
label: PropTypes.node,
|
57 |
+
modalButtonDisabled: PropTypes.bool,
|
58 |
+
modalButtonLabel: PropTypes.string,
|
59 |
+
modalClassName: PropTypes.string,
|
60 |
+
modalContent: PropTypes.node,
|
61 |
+
modalOverlayClassName: PropTypes.string,
|
62 |
+
modalTitle: PropTypes.string,
|
63 |
+
onClick: PropTypes.func,
|
64 |
+
onClose: PropTypes.func,
|
65 |
+
onOpen: PropTypes.func,
|
66 |
+
};
|
67 |
+
|
68 |
+
export default LabelWithModal;
|
common/src/modules/elements/label-with-modal/style.pcss
ADDED
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tribe-editor__label-with-modal {
|
2 |
+
display: flex;
|
3 |
+
align-items: center;
|
4 |
+
background-color: #FFFFFF;
|
5 |
+
padding: 11px 17px;
|
6 |
+
border: 1px solid #E1E3E6;
|
7 |
+
height: 40px;
|
8 |
+
}
|
9 |
+
|
10 |
+
.tribe-editor__labeled-item__label {
|
11 |
+
|
12 |
+
.tribe-editor__label-with-modal & {
|
13 |
+
flex: auto;
|
14 |
+
color: #545D66;
|
15 |
+
font-size: 15px;
|
16 |
+
font-weight: bold;
|
17 |
+
line-height: 18px;
|
18 |
+
letter-spacing: 0.38px;
|
19 |
+
}
|
20 |
+
}
|
21 |
+
|
22 |
+
.tribe-editor__label-with-modal__modal-button {
|
23 |
+
|
24 |
+
.tribe-editor__label-with-modal & {
|
25 |
+
flex: none;
|
26 |
+
}
|
27 |
+
}
|
28 |
+
|
29 |
+
.tribe-editor__modal-button__button {
|
30 |
+
|
31 |
+
.tribe-editor__label-with-modal & {
|
32 |
+
color: #009FD4;
|
33 |
+
font-size: 15px;
|
34 |
+
font-weight: bold;
|
35 |
+
line-height: 18px;
|
36 |
+
letter-spacing: 0.38px;
|
37 |
+
transition: color 0.2s ease;
|
38 |
+
|
39 |
+
&:hover,
|
40 |
+
&:focus {
|
41 |
+
color: #007BB4;
|
42 |
+
}
|
43 |
+
|
44 |
+
&:disabled {
|
45 |
+
|
46 |
+
&,
|
47 |
+
&:hover,
|
48 |
+
&:focus {
|
49 |
+
color: #AEB4BB;
|
50 |
+
}
|
51 |
+
}
|
52 |
+
}
|
53 |
+
}
|
common/src/modules/elements/labeled-item/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Labeled Item Element renders labeled item 1`] = `
|
4 |
+
<div
|
5 |
+
className="tribe-editor__labeled-item"
|
6 |
+
>
|
7 |
+
<span
|
8 |
+
className="tribe-editor__labeled-item__label"
|
9 |
+
/>
|
10 |
+
Test
|
11 |
+
</div>
|
12 |
+
`;
|
13 |
+
|
14 |
+
exports[`Labeled Item Element renders labeled item with class 1`] = `
|
15 |
+
<div
|
16 |
+
className="tribe-editor__labeled-item test-class"
|
17 |
+
>
|
18 |
+
<span
|
19 |
+
className="tribe-editor__labeled-item__label"
|
20 |
+
/>
|
21 |
+
Test
|
22 |
+
</div>
|
23 |
+
`;
|
24 |
+
|
25 |
+
exports[`Labeled Item Element renders labeled item with label 1`] = `
|
26 |
+
<div
|
27 |
+
className="tribe-editor__labeled-item"
|
28 |
+
>
|
29 |
+
<span
|
30 |
+
className="tribe-editor__labeled-item__label"
|
31 |
+
>
|
32 |
+
test label
|
33 |
+
</span>
|
34 |
+
Test
|
35 |
+
</div>
|
36 |
+
`;
|
37 |
+
|
38 |
+
exports[`Labeled Item Element renders labeled item with label element and for id 1`] = `
|
39 |
+
<div
|
40 |
+
className="tribe-editor__labeled-item"
|
41 |
+
>
|
42 |
+
<label
|
43 |
+
className="tribe-editor__labeled-item__label"
|
44 |
+
htmlFor="test-id"
|
45 |
+
>
|
46 |
+
test label
|
47 |
+
</label>
|
48 |
+
Test
|
49 |
+
</div>
|
50 |
+
`;
|
common/src/modules/elements/labeled-item/__tests__/element.test.js
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import { LabeledItem } from '@moderntribe/common/elements';
|
10 |
+
|
11 |
+
describe( 'Labeled Item Element', () => {
|
12 |
+
it( 'renders labeled item', () => {
|
13 |
+
const component = renderer.create( <LabeledItem>Test</LabeledItem> );
|
14 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
15 |
+
} );
|
16 |
+
|
17 |
+
it( 'renders labeled item with class', () => {
|
18 |
+
const component = renderer.create( <LabeledItem className="test-class">Test</LabeledItem> );
|
19 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
20 |
+
} );
|
21 |
+
|
22 |
+
it( 'renders labeled item with label', () => {
|
23 |
+
const component = renderer.create( <LabeledItem label="test label">Test</LabeledItem> );
|
24 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
25 |
+
} );
|
26 |
+
|
27 |
+
it( 'renders labeled item with label element and for id', () => {
|
28 |
+
const component = renderer.create(
|
29 |
+
<LabeledItem
|
30 |
+
label="test label"
|
31 |
+
isLabel={ true }
|
32 |
+
forId="test-id"
|
33 |
+
>
|
34 |
+
Test
|
35 |
+
</LabeledItem>
|
36 |
+
);
|
37 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
38 |
+
} );
|
39 |
+
} );
|
common/src/modules/elements/labeled-item/element.js
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
const LabeledItem = ( {
|
9 |
+
className,
|
10 |
+
forId,
|
11 |
+
isLabel,
|
12 |
+
label,
|
13 |
+
children,
|
14 |
+
} ) => {
|
15 |
+
const renderLabel = (
|
16 |
+
isLabel
|
17 |
+
? (
|
18 |
+
<label className="tribe-editor__labeled-item__label" htmlFor={ forId }>
|
19 |
+
{ label }
|
20 |
+
</label>
|
21 |
+
)
|
22 |
+
: (
|
23 |
+
<span className="tribe-editor__labeled-item__label">
|
24 |
+
{ label }
|
25 |
+
</span>
|
26 |
+
)
|
27 |
+
);
|
28 |
+
|
29 |
+
return (
|
30 |
+
<div className={ classNames(
|
31 |
+
'tribe-editor__labeled-item',
|
32 |
+
className,
|
33 |
+
) }>
|
34 |
+
{ renderLabel }
|
35 |
+
{ children }
|
36 |
+
</div>
|
37 |
+
);
|
38 |
+
};
|
39 |
+
|
40 |
+
LabeledItem.defaultProps = {
|
41 |
+
isLabel: false,
|
42 |
+
};
|
43 |
+
|
44 |
+
LabeledItem.propTypes = {
|
45 |
+
className: PropTypes.string,
|
46 |
+
isLabel: PropTypes.bool.isRequired,
|
47 |
+
forId: PropTypes.string,
|
48 |
+
label: PropTypes.node,
|
49 |
+
children: PropTypes.node.isRequired,
|
50 |
+
};
|
51 |
+
|
52 |
+
export default LabeledItem;
|
common/src/modules/elements/link/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Link Element renders button with class 1`] = `
|
4 |
+
<a
|
5 |
+
className="tribe-editor__link test-class"
|
6 |
+
href="#"
|
7 |
+
>
|
8 |
+
label
|
9 |
+
</a>
|
10 |
+
`;
|
11 |
+
|
12 |
+
exports[`Link Element renders button with prop 1`] = `
|
13 |
+
<a
|
14 |
+
className="tribe-editor__link"
|
15 |
+
href="#"
|
16 |
+
title="title"
|
17 |
+
>
|
18 |
+
label
|
19 |
+
</a>
|
20 |
+
`;
|
21 |
+
|
22 |
+
exports[`Link Element renders button with target 1`] = `
|
23 |
+
<a
|
24 |
+
className="tribe-editor__link"
|
25 |
+
href="#"
|
26 |
+
rel="noopener noreferrer"
|
27 |
+
target="_blank"
|
28 |
+
>
|
29 |
+
label
|
30 |
+
</a>
|
31 |
+
`;
|
32 |
+
|
33 |
+
exports[`Link Element renders link 1`] = `
|
34 |
+
<a
|
35 |
+
className="tribe-editor__link"
|
36 |
+
href="#"
|
37 |
+
>
|
38 |
+
label
|
39 |
+
</a>
|
40 |
+
`;
|
common/src/modules/elements/link/__tests__/element.test.js
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import Link from '../element.js';
|
10 |
+
|
11 |
+
describe( 'Link Element', () => {
|
12 |
+
it( 'renders link', () => {
|
13 |
+
const component = renderer.create(
|
14 |
+
<Link href="#">label</Link>
|
15 |
+
);
|
16 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
17 |
+
} );
|
18 |
+
|
19 |
+
it( 'renders button with class', () => {
|
20 |
+
const component = renderer.create(
|
21 |
+
<Link className="test-class" href="#">label</Link>
|
22 |
+
);
|
23 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
24 |
+
} );
|
25 |
+
|
26 |
+
it( 'renders button with target', () => {
|
27 |
+
const component = renderer.create(
|
28 |
+
<Link href="#" target="_blank">label</Link>
|
29 |
+
);
|
30 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
31 |
+
} );
|
32 |
+
|
33 |
+
it( 'renders button with prop', () => {
|
34 |
+
const component = renderer.create(
|
35 |
+
<Link href="#" title="title">label</Link>
|
36 |
+
);
|
37 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
38 |
+
} );
|
39 |
+
} );
|
common/src/modules/elements/link/element.js
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
const Link = ( {
|
9 |
+
children,
|
10 |
+
className,
|
11 |
+
href,
|
12 |
+
target,
|
13 |
+
...props,
|
14 |
+
} ) => {
|
15 |
+
const getProps = () => {
|
16 |
+
const elemProps = { ...props };
|
17 |
+
|
18 |
+
if ( target === '_blank' ) {
|
19 |
+
elemProps.rel = 'noopener noreferrer';
|
20 |
+
}
|
21 |
+
|
22 |
+
return elemProps;
|
23 |
+
};
|
24 |
+
|
25 |
+
return (
|
26 |
+
<a
|
27 |
+
className={ classNames( 'tribe-editor__link', className ) }
|
28 |
+
href={ href }
|
29 |
+
target={ target }
|
30 |
+
{ ...getProps() }
|
31 |
+
>
|
32 |
+
{ children }
|
33 |
+
</a>
|
34 |
+
);
|
35 |
+
};
|
36 |
+
|
37 |
+
Link.propTypes = {
|
38 |
+
children: PropTypes.node,
|
39 |
+
className: PropTypes.string,
|
40 |
+
href: PropTypes.string.isRequired,
|
41 |
+
target: PropTypes.string,
|
42 |
+
};
|
43 |
+
|
44 |
+
export default Link;
|
common/src/modules/elements/modal-button/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Modal Button Element renders a modal button 1`] = `
|
4 |
+
<div
|
5 |
+
className="tribe-editor__modal-button"
|
6 |
+
>
|
7 |
+
<button
|
8 |
+
className="tribe-editor__button tribe-editor__modal-button__button"
|
9 |
+
onClick={[Function]}
|
10 |
+
type="button"
|
11 |
+
/>
|
12 |
+
</div>
|
13 |
+
`;
|
14 |
+
|
15 |
+
exports[`Modal Button Element renders a modal button with class 1`] = `
|
16 |
+
<div
|
17 |
+
className="tribe-editor__modal-button test-class"
|
18 |
+
>
|
19 |
+
<button
|
20 |
+
className="tribe-editor__button tribe-editor__modal-button__button"
|
21 |
+
onClick={[Function]}
|
22 |
+
type="button"
|
23 |
+
/>
|
24 |
+
</div>
|
25 |
+
`;
|
26 |
+
|
27 |
+
exports[`Modal Button Element renders a modal button with label 1`] = `
|
28 |
+
<div
|
29 |
+
className="tribe-editor__modal-button"
|
30 |
+
>
|
31 |
+
<button
|
32 |
+
className="tribe-editor__button tribe-editor__modal-button__button"
|
33 |
+
onClick={[Function]}
|
34 |
+
type="button"
|
35 |
+
>
|
36 |
+
Test Label
|
37 |
+
</button>
|
38 |
+
</div>
|
39 |
+
`;
|
40 |
+
|
41 |
+
exports[`Modal Button Element renders a modal button with onClick handler 1`] = `
|
42 |
+
<div
|
43 |
+
className="tribe-editor__modal-button"
|
44 |
+
>
|
45 |
+
<button
|
46 |
+
className="tribe-editor__button tribe-editor__modal-button__button"
|
47 |
+
onClick={[Function]}
|
48 |
+
type="button"
|
49 |
+
/>
|
50 |
+
</div>
|
51 |
+
`;
|
common/src/modules/elements/modal-button/__tests__/element.test.js
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import { noop } from 'lodash';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Internal dependencies
|
9 |
+
*/
|
10 |
+
import ModalButton from '@moderntribe/common/elements/modal-button/element';
|
11 |
+
|
12 |
+
describe( 'Modal Button Element', () => {
|
13 |
+
it( 'renders a modal button', () => {
|
14 |
+
const component = renderer.create( <ModalButton /> );
|
15 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
16 |
+
} );
|
17 |
+
|
18 |
+
it( 'renders a modal button with class', () => {
|
19 |
+
const component = renderer.create( <ModalButton className="test-class" /> );
|
20 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
21 |
+
} );
|
22 |
+
|
23 |
+
it( 'renders a modal button with onClick handler', () => {
|
24 |
+
const component = renderer.create( <ModalButton onClick={ noop } /> );
|
25 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
26 |
+
} );
|
27 |
+
|
28 |
+
it( 'renders a modal button with label', () => {
|
29 |
+
const component = renderer.create( <ModalButton label="Test Label" /> );
|
30 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
31 |
+
} );
|
32 |
+
|
33 |
+
it( 'executes onClick and onOpen handlers', () => {
|
34 |
+
const props = {
|
35 |
+
onClick: jest.fn(),
|
36 |
+
onOpen: jest.fn(),
|
37 |
+
};
|
38 |
+
|
39 |
+
const component = mount( <ModalButton { ...props } /> );
|
40 |
+
component.find( 'button.tribe-editor__modal-button__button' ).simulate( 'click' );
|
41 |
+
expect( props.onClick ).toHaveBeenCalled();
|
42 |
+
expect( props.onClick ).toHaveBeenCalledTimes( 1 );
|
43 |
+
expect( props.onOpen ).toHaveBeenCalled();
|
44 |
+
expect( props.onOpen ).toHaveBeenCalledTimes( 1 );
|
45 |
+
} );
|
46 |
+
} );
|
common/src/modules/elements/modal-button/element.js
ADDED
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React, { PureComponent } from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* WordPress dependencies
|
10 |
+
*/
|
11 |
+
import { Modal } from '@wordpress/components';
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Internal dependencies
|
15 |
+
*/
|
16 |
+
import Button from '@moderntribe/common/elements/button/element';
|
17 |
+
|
18 |
+
class ModalButton extends PureComponent {
|
19 |
+
static propTypes = {
|
20 |
+
className: PropTypes.string,
|
21 |
+
disabled: PropTypes.bool,
|
22 |
+
label: PropTypes.string,
|
23 |
+
modalClassName: PropTypes.string,
|
24 |
+
modalContent: PropTypes.node,
|
25 |
+
modalOverlayClassName: PropTypes.string,
|
26 |
+
modalTitle: PropTypes.string,
|
27 |
+
onClick: PropTypes.func,
|
28 |
+
onClose: PropTypes.func,
|
29 |
+
onOpen: PropTypes.func,
|
30 |
+
};
|
31 |
+
|
32 |
+
constructor( props ) {
|
33 |
+
super( props );
|
34 |
+
this.state = {
|
35 |
+
isOpen: false,
|
36 |
+
};
|
37 |
+
}
|
38 |
+
|
39 |
+
onClick = ( e ) => {
|
40 |
+
this.props.onClick && this.props.onClick( e );
|
41 |
+
this.onOpen();
|
42 |
+
this.setState( { isOpen: true } );
|
43 |
+
};
|
44 |
+
|
45 |
+
onRequestClose = () => {
|
46 |
+
this.onClose();
|
47 |
+
this.setState( { isOpen: false } );
|
48 |
+
}
|
49 |
+
|
50 |
+
onOpen = () => this.props.onOpen && this.props.onOpen();
|
51 |
+
|
52 |
+
onClose = () => this.props.onClose && this.props.onClose();
|
53 |
+
|
54 |
+
renderModal = () => {
|
55 |
+
const {
|
56 |
+
modalClassName,
|
57 |
+
modalContent,
|
58 |
+
modalOverlayClassName,
|
59 |
+
modalTitle,
|
60 |
+
} = this.props;
|
61 |
+
|
62 |
+
return ( this.state.isOpen && (
|
63 |
+
<Modal
|
64 |
+
className={ classNames(
|
65 |
+
'tribe-editor__modal-button__modal-content',
|
66 |
+
modalClassName,
|
67 |
+
) }
|
68 |
+
onRequestClose={ this.onRequestClose }
|
69 |
+
overlayClassName={ classNames(
|
70 |
+
'tribe-editor__modal-button__modal-overlay',
|
71 |
+
modalOverlayClassName,
|
72 |
+
) }
|
73 |
+
title={ modalTitle }
|
74 |
+
>
|
75 |
+
{ modalContent }
|
76 |
+
</Modal>
|
77 |
+
) );
|
78 |
+
};
|
79 |
+
|
80 |
+
render() {
|
81 |
+
const { className, disabled, label } = this.props;
|
82 |
+
return (
|
83 |
+
<div className={ classNames(
|
84 |
+
'tribe-editor__modal-button',
|
85 |
+
className,
|
86 |
+
) }>
|
87 |
+
<Button
|
88 |
+
className="tribe-editor__modal-button__button"
|
89 |
+
onClick={ this.onClick }
|
90 |
+
disabled={ disabled }
|
91 |
+
>
|
92 |
+
{ label }
|
93 |
+
</Button>
|
94 |
+
{ this.renderModal() }
|
95 |
+
</div>
|
96 |
+
);
|
97 |
+
}
|
98 |
+
}
|
99 |
+
|
100 |
+
export default ModalButton;
|
common/src/modules/elements/number-input/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Input element Should render the component 1`] = `
|
4 |
+
<input
|
5 |
+
className="tribe-editor__input tribe-editor__input--number"
|
6 |
+
type="number"
|
7 |
+
/>
|
8 |
+
`;
|
9 |
+
|
10 |
+
exports[`Input element Should render the component with class 1`] = `
|
11 |
+
<input
|
12 |
+
className="tribe-editor__input tribe-editor__input--number input-class"
|
13 |
+
type="number"
|
14 |
+
/>
|
15 |
+
`;
|
16 |
+
|
17 |
+
exports[`Input element Should render the component with extra props 1`] = `
|
18 |
+
<input
|
19 |
+
className="tribe-editor__input tribe-editor__input--number"
|
20 |
+
id="input-id"
|
21 |
+
type="number"
|
22 |
+
/>
|
23 |
+
`;
|
24 |
+
|
25 |
+
exports[`Input element Should render the component with max 1`] = `
|
26 |
+
<input
|
27 |
+
className="tribe-editor__input tribe-editor__input--number"
|
28 |
+
max={42}
|
29 |
+
type="number"
|
30 |
+
/>
|
31 |
+
`;
|
32 |
+
|
33 |
+
exports[`Input element Should render the component with min 1`] = `
|
34 |
+
<input
|
35 |
+
className="tribe-editor__input tribe-editor__input--number"
|
36 |
+
min={-42}
|
37 |
+
type="number"
|
38 |
+
/>
|
39 |
+
`;
|
40 |
+
|
41 |
+
exports[`Input element Should render the component with onChange handler 1`] = `
|
42 |
+
<input
|
43 |
+
className="tribe-editor__input tribe-editor__input--number"
|
44 |
+
onChange={[Function]}
|
45 |
+
type="number"
|
46 |
+
/>
|
47 |
+
`;
|
48 |
+
|
49 |
+
exports[`Input element Should render the component with step 1`] = `
|
50 |
+
<input
|
51 |
+
className="tribe-editor__input tribe-editor__input--number"
|
52 |
+
step={10}
|
53 |
+
type="number"
|
54 |
+
/>
|
55 |
+
`;
|
common/src/modules/elements/number-input/__tests__/element.test.js
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import { noop } from 'lodash';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Internal dependencies
|
9 |
+
*/
|
10 |
+
import NumberInput from '../element.js';
|
11 |
+
|
12 |
+
describe( 'Input element', () => {
|
13 |
+
it( 'Should render the component', () => {
|
14 |
+
const component = renderer.create( <NumberInput /> );
|
15 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
16 |
+
} );
|
17 |
+
|
18 |
+
it( 'Should render the component with class', () => {
|
19 |
+
const component = renderer.create( <NumberInput className="input-class" /> );
|
20 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
21 |
+
} );
|
22 |
+
|
23 |
+
it( 'Should render the component with max', () => {
|
24 |
+
const component = renderer.create( <NumberInput max={ 42 } /> );
|
25 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
26 |
+
} );
|
27 |
+
|
28 |
+
it( 'Should render the component with min', () => {
|
29 |
+
const component = renderer.create( <NumberInput min={ -42 } /> );
|
30 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
31 |
+
} );
|
32 |
+
|
33 |
+
it( 'Should render the component with onChange handler', () => {
|
34 |
+
const component = renderer.create( <NumberInput onChange={ noop } /> );
|
35 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
36 |
+
} );
|
37 |
+
|
38 |
+
it( 'Should render the component with step', () => {
|
39 |
+
const component = renderer.create( <NumberInput step={ 10 } /> );
|
40 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
41 |
+
} );
|
42 |
+
|
43 |
+
it( 'Should render the component with extra props', () => {
|
44 |
+
const component = renderer.create( <NumberInput id="input-id" /> );
|
45 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
46 |
+
} );
|
47 |
+
} );
|
common/src/modules/elements/number-input/element.js
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External Dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
import Input from '@moderntribe/common/elements/input/element';
|
12 |
+
|
13 |
+
const NumberInput = ( {
|
14 |
+
className,
|
15 |
+
max,
|
16 |
+
min,
|
17 |
+
onChange,
|
18 |
+
step,
|
19 |
+
...rest
|
20 |
+
} ) => (
|
21 |
+
<Input
|
22 |
+
className={ classNames( 'tribe-editor__input--number', className ) }
|
23 |
+
max={ max }
|
24 |
+
min={ min }
|
25 |
+
onChange={ onChange }
|
26 |
+
step={ step }
|
27 |
+
type="number"
|
28 |
+
{ ...rest }
|
29 |
+
/>
|
30 |
+
);
|
31 |
+
|
32 |
+
NumberInput.propTypes = {
|
33 |
+
className: PropTypes.string,
|
34 |
+
max: PropTypes.number,
|
35 |
+
min: PropTypes.number,
|
36 |
+
onChange: PropTypes.func,
|
37 |
+
step: PropTypes.number,
|
38 |
+
};
|
39 |
+
|
40 |
+
export default NumberInput;
|
common/src/modules/elements/paragraph/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`<Paragraph> default paragraph 1`] = `
|
4 |
+
<p
|
5 |
+
className="tribe-editor__paragraph tribe-editor__paragraph--medium"
|
6 |
+
>
|
7 |
+
Modern Tribe
|
8 |
+
</p>
|
9 |
+
`;
|
10 |
+
|
11 |
+
exports[`<Paragraph> smaller paragraph 1`] = `
|
12 |
+
<p
|
13 |
+
className="tribe-editor__paragraph tribe-editor__paragraph--small"
|
14 |
+
>
|
15 |
+
Modern Tribe
|
16 |
+
</p>
|
17 |
+
`;
|
common/src/modules/elements/paragraph/__tests__/element.test.js
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import React from 'react';
|
2 |
+
|
3 |
+
import Paragraph, { SIZES } from '../element';
|
4 |
+
|
5 |
+
describe( '<Paragraph>', () => {
|
6 |
+
test( 'default paragraph', () => {
|
7 |
+
const component = renderer.create(
|
8 |
+
<Paragraph>Modern Tribe</Paragraph>,
|
9 |
+
);
|
10 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
11 |
+
} );
|
12 |
+
|
13 |
+
test( 'smaller paragraph', () => {
|
14 |
+
const component = renderer.create(
|
15 |
+
<Paragraph size={ SIZES.small }>Modern Tribe</Paragraph>,
|
16 |
+
);
|
17 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
18 |
+
} );
|
19 |
+
} );
|
common/src/modules/elements/paragraph/element.js
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
import './style.pcss';
|
12 |
+
|
13 |
+
export const SIZES = {
|
14 |
+
medium: 'medium',
|
15 |
+
small: 'small',
|
16 |
+
};
|
17 |
+
|
18 |
+
const Paragraph = ( { children, size, className } ) => (
|
19 |
+
<p
|
20 |
+
className={
|
21 |
+
classNames(
|
22 |
+
'tribe-editor__paragraph',
|
23 |
+
`tribe-editor__paragraph--${ size }`,
|
24 |
+
className,
|
25 |
+
)
|
26 |
+
}
|
27 |
+
>
|
28 |
+
{ children }
|
29 |
+
</p>
|
30 |
+
);
|
31 |
+
|
32 |
+
Paragraph.propTypes = {
|
33 |
+
children: PropTypes.node.isRequired,
|
34 |
+
size: PropTypes.oneOf( Object.keys( SIZES ) ),
|
35 |
+
};
|
36 |
+
|
37 |
+
Paragraph.defaultProps = {
|
38 |
+
size: SIZES.medium,
|
39 |
+
};
|
40 |
+
|
41 |
+
export default Paragraph;
|
common/src/modules/elements/paragraph/style.pcss
ADDED
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tribe-editor__paragraph {
|
2 |
+
font-family: 'Helvetica', 'Arial', 'sans-serif';
|
3 |
+
line-height: 1.5;
|
4 |
+
font-weight: normal;
|
5 |
+
|
6 |
+
&--medium {
|
7 |
+
/* 16pt */
|
8 |
+
font-size: 1rem;
|
9 |
+
}
|
10 |
+
|
11 |
+
&--small {
|
12 |
+
/* 14pt */
|
13 |
+
font-size: 0.875rem;
|
14 |
+
}
|
15 |
+
|
16 |
+
a {
|
17 |
+
color: #11A0D2;
|
18 |
+
|
19 |
+
&:hover {
|
20 |
+
text-decoration: none;
|
21 |
+
color: #007BB4;
|
22 |
+
}
|
23 |
+
}
|
24 |
+
}
|
common/src/modules/elements/placeholder/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`<Placeholder> component Custom Class name attached 1`] = `
|
4 |
+
<div
|
5 |
+
className="tribe-editor__placeholder custom-class-name"
|
6 |
+
>
|
7 |
+
Custom Text
|
8 |
+
</div>
|
9 |
+
`;
|
10 |
+
|
11 |
+
exports[`<Placeholder> component Default behavior 1`] = `
|
12 |
+
<div
|
13 |
+
className="tribe-editor__placeholder"
|
14 |
+
>
|
15 |
+
Custom Text
|
16 |
+
</div>
|
17 |
+
`;
|
common/src/modules/elements/placeholder/__tests__/element.test.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import React from 'react';
|
2 |
+
import Placeholder from '../element';
|
3 |
+
|
4 |
+
describe( '<Placeholder> component', () => {
|
5 |
+
test( 'Default behavior', () => {
|
6 |
+
const component = renderer.create(
|
7 |
+
<Placeholder>Custom Text</Placeholder>
|
8 |
+
);
|
9 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
10 |
+
} );
|
11 |
+
|
12 |
+
test( 'Custom Class name attached', () => {
|
13 |
+
const component = renderer.create(
|
14 |
+
<Placeholder className='custom-class-name'>Custom Text</Placeholder>
|
15 |
+
);
|
16 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
17 |
+
} );
|
18 |
+
} );
|
common/src/modules/elements/placeholder/element.js
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
import './style.pcss';
|
12 |
+
|
13 |
+
const Placeholder = ( { children, className } ) => (
|
14 |
+
<div className={ classNames( 'tribe-editor__placeholder', className ) }>
|
15 |
+
{ children }
|
16 |
+
</div>
|
17 |
+
);
|
18 |
+
|
19 |
+
Placeholder.propTypes = {
|
20 |
+
children: PropTypes.node.isRequired,
|
21 |
+
};
|
22 |
+
|
23 |
+
export default Placeholder;
|
common/src/modules/elements/placeholder/style.pcss
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tribe-editor__placeholder {
|
2 |
+
border: 2px dashed #E1E3E6;
|
3 |
+
padding: 12px 15px 14px;
|
4 |
+
text-align: center;
|
5 |
+
font-family: 'Helvetica', 'Arial', 'sans-serif';
|
6 |
+
font-size: 1rem;
|
7 |
+
line-height: 1.5;
|
8 |
+
font-weight: bold;
|
9 |
+
color: #8D949B;
|
10 |
+
min-width: 260px;
|
11 |
+
display: inline-block;
|
12 |
+
}
|
common/src/modules/elements/radio-input/element.js
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External Dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
import Input from '@moderntribe/common/elements/input/element';
|
12 |
+
|
13 |
+
const RadioInput = ( { checked, className, onChange, ...rest } ) => (
|
14 |
+
<Input
|
15 |
+
checked={ checked }
|
16 |
+
className={ classNames( 'tribe-editor__input--radio', className ) }
|
17 |
+
onChange={ onChange }
|
18 |
+
type="radio"
|
19 |
+
{ ...rest }
|
20 |
+
/>
|
21 |
+
);
|
22 |
+
|
23 |
+
RadioInput.propTypes = {
|
24 |
+
checked: PropTypes.bool,
|
25 |
+
className: PropTypes.string,
|
26 |
+
onChange: PropTypes.func,
|
27 |
+
};
|
28 |
+
|
29 |
+
export default RadioInput;
|
common/src/modules/elements/radio/element.js
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
import { noop } from 'lodash';
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Internal dependencies
|
11 |
+
*/
|
12 |
+
import { RadioInput } from '@moderntribe/common/elements';
|
13 |
+
|
14 |
+
const Radio = ( { checked, className, disabled, id, label, onChange, name, value } ) => (
|
15 |
+
<div className={ classNames( 'tribe-editor__radio', className ) }>
|
16 |
+
<RadioInput
|
17 |
+
checked={ checked }
|
18 |
+
className="tribe-editor__radio__input"
|
19 |
+
disabled={ disabled }
|
20 |
+
id={ id }
|
21 |
+
name={ name }
|
22 |
+
onChange={ onChange }
|
23 |
+
value={ value }
|
24 |
+
/>
|
25 |
+
<label
|
26 |
+
className="tribe-editor__radio_label"
|
27 |
+
htmlFor={ id }
|
28 |
+
>
|
29 |
+
{ label }
|
30 |
+
</label>
|
31 |
+
</div>
|
32 |
+
);
|
33 |
+
|
34 |
+
Radio.defaultProps = {
|
35 |
+
checked: false,
|
36 |
+
onChange: noop,
|
37 |
+
};
|
38 |
+
|
39 |
+
Radio.propTypes = {
|
40 |
+
checked: PropTypes.bool.isRequired,
|
41 |
+
className: PropTypes.string,
|
42 |
+
disabled: PropTypes.bool,
|
43 |
+
id: PropTypes.string,
|
44 |
+
label: PropTypes.string,
|
45 |
+
name: PropTypes.string,
|
46 |
+
onChange: PropTypes.func,
|
47 |
+
value: PropTypes.string,
|
48 |
+
};
|
49 |
+
|
50 |
+
export default Radio;
|
common/src/modules/elements/select/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,240 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Select element Should render the component 1`] = `
|
4 |
+
<div
|
5 |
+
className="css-10nd86i tribe-editor__select"
|
6 |
+
onKeyDown={[Function]}
|
7 |
+
>
|
8 |
+
<div
|
9 |
+
className="css-vj8t7z tribe-editor__select__control"
|
10 |
+
onMouseDown={[Function]}
|
11 |
+
onTouchEnd={[Function]}
|
12 |
+
>
|
13 |
+
<div
|
14 |
+
className="css-1hwfws3 tribe-editor__select__value-container"
|
15 |
+
>
|
16 |
+
<div
|
17 |
+
className="css-1492t68 tribe-editor__select__placeholder"
|
18 |
+
>
|
19 |
+
Select...
|
20 |
+
</div>
|
21 |
+
<div
|
22 |
+
className="css-1g6gooi"
|
23 |
+
>
|
24 |
+
<div
|
25 |
+
className="tribe-editor__select__input"
|
26 |
+
style={
|
27 |
+
Object {
|
28 |
+
"display": "inline-block",
|
29 |
+
}
|
30 |
+
}
|
31 |
+
>
|
32 |
+
<input
|
33 |
+
aria-autocomplete="list"
|
34 |
+
autoCapitalize="none"
|
35 |
+
autoComplete="off"
|
36 |
+
autoCorrect="off"
|
37 |
+
disabled={false}
|
38 |
+
id="react-select-2-input"
|
39 |
+
onBlur={[Function]}
|
40 |
+
onChange={[Function]}
|
41 |
+
onFocus={[Function]}
|
42 |
+
spellCheck="false"
|
43 |
+
style={
|
44 |
+
Object {
|
45 |
+
"background": 0,
|
46 |
+
"border": 0,
|
47 |
+
"boxSizing": "content-box",
|
48 |
+
"color": "inherit",
|
49 |
+
"fontSize": "inherit",
|
50 |
+
"opacity": 1,
|
51 |
+
"outline": 0,
|
52 |
+
"padding": 0,
|
53 |
+
"width": "1px",
|
54 |
+
}
|
55 |
+
}
|
56 |
+
tabIndex="0"
|
57 |
+
type="text"
|
58 |
+
value=""
|
59 |
+
/>
|
60 |
+
<div
|
61 |
+
style={
|
62 |
+
Object {
|
63 |
+
"height": 0,
|
64 |
+
"left": 0,
|
65 |
+
"overflow": "scroll",
|
66 |
+
"position": "absolute",
|
67 |
+
"top": 0,
|
68 |
+
"visibility": "hidden",
|
69 |
+
"whiteSpace": "pre",
|
70 |
+
}
|
71 |
+
}
|
72 |
+
>
|
73 |
+
|
74 |
+
</div>
|
75 |
+
</div>
|
76 |
+
</div>
|
77 |
+
</div>
|
78 |
+
<div
|
79 |
+
className="css-1wy0on6 tribe-editor__select__indicators"
|
80 |
+
>
|
81 |
+
<div
|
82 |
+
aria-hidden="true"
|
83 |
+
className="css-1ep9fjw tribe-editor__select__indicator tribe-editor__select__dropdown-indicator"
|
84 |
+
onMouseDown={[Function]}
|
85 |
+
onTouchEnd={[Function]}
|
86 |
+
>
|
87 |
+
<span
|
88 |
+
className="tribe-editor__select__dropdown-indicator"
|
89 |
+
>
|
90 |
+
arrow-down
|
91 |
+
</span>
|
92 |
+
</div>
|
93 |
+
</div>
|
94 |
+
</div>
|
95 |
+
</div>
|
96 |
+
`;
|
97 |
+
|
98 |
+
exports[`Select element Should render the component with class 1`] = `
|
99 |
+
<div
|
100 |
+
className="css-10nd86i tribe-editor__select test-class"
|
101 |
+
onKeyDown={[Function]}
|
102 |
+
>
|
103 |
+
<div
|
104 |
+
className="css-vj8t7z tribe-editor__select__control"
|
105 |
+
onMouseDown={[Function]}
|
106 |
+
onTouchEnd={[Function]}
|
107 |
+
>
|
108 |
+
<div
|
109 |
+
className="css-1hwfws3 tribe-editor__select__value-container"
|
110 |
+
>
|
111 |
+
<div
|
112 |
+
className="css-1492t68 tribe-editor__select__placeholder"
|
113 |
+
>
|
114 |
+
Select...
|
115 |
+
</div>
|
116 |
+
<div
|
117 |
+
className="css-1g6gooi"
|
118 |
+
>
|
119 |
+
<div
|
120 |
+
className="tribe-editor__select__input"
|
121 |
+
style={
|
122 |
+
Object {
|
123 |
+
"display": "inline-block",
|
124 |
+
}
|
125 |
+
}
|
126 |
+
>
|
127 |
+
<input
|
128 |
+
aria-autocomplete="list"
|
129 |
+
autoCapitalize="none"
|
130 |
+
autoComplete="off"
|
131 |
+
autoCorrect="off"
|
132 |
+
disabled={false}
|
133 |
+
id="react-select-3-input"
|
134 |
+
onBlur={[Function]}
|
135 |
+
onChange={[Function]}
|
136 |
+
onFocus={[Function]}
|
137 |
+
spellCheck="false"
|
138 |
+
style={
|
139 |
+
Object {
|
140 |
+
"background": 0,
|
141 |
+
"border": 0,
|
142 |
+
"boxSizing": "content-box",
|
143 |
+
"color": "inherit",
|
144 |
+
"fontSize": "inherit",
|
145 |
+
"opacity": 1,
|
146 |
+
"outline": 0,
|
147 |
+
"padding": 0,
|
148 |
+
"width": "1px",
|
149 |
+
}
|
150 |
+
}
|
151 |
+
tabIndex="0"
|
152 |
+
type="text"
|
153 |
+
value=""
|
154 |
+
/>
|
155 |
+
<div
|
156 |
+
style={
|
157 |
+
Object {
|
158 |
+
"height": 0,
|
159 |
+
"left": 0,
|
160 |
+
"overflow": "scroll",
|
161 |
+
"position": "absolute",
|
162 |
+
"top": 0,
|
163 |
+
"visibility": "hidden",
|
164 |
+
"whiteSpace": "pre",
|
165 |
+
}
|
166 |
+
}
|
167 |
+
>
|
168 |
+
|
169 |
+
</div>
|
170 |
+
</div>
|
171 |
+
</div>
|
172 |
+
</div>
|
173 |
+
<div
|
174 |
+
className="css-1wy0on6 tribe-editor__select__indicators"
|
175 |
+
>
|
176 |
+
<div
|
177 |
+
aria-hidden="true"
|
178 |
+
className="css-1ep9fjw tribe-editor__select__indicator tribe-editor__select__dropdown-indicator"
|
179 |
+
onMouseDown={[Function]}
|
180 |
+
onTouchEnd={[Function]}
|
181 |
+
>
|
182 |
+
<span
|
183 |
+
className="tribe-editor__select__dropdown-indicator"
|
184 |
+
>
|
185 |
+
arrow-down
|
186 |
+
</span>
|
187 |
+
</div>
|
188 |
+
</div>
|
189 |
+
</div>
|
190 |
+
</div>
|
191 |
+
`;
|
192 |
+
|
193 |
+
exports[`Select element Should render the component with extra props 1`] = `
|
194 |
+
<div
|
195 |
+
className="css-10nd86i tribe-editor__select"
|
196 |
+
onKeyDown={[Function]}
|
197 |
+
>
|
198 |
+
<div
|
199 |
+
className="css-vj8t7z tribe-editor__select__control"
|
200 |
+
onMouseDown={[Function]}
|
201 |
+
onTouchEnd={[Function]}
|
202 |
+
>
|
203 |
+
<div
|
204 |
+
className="css-1hwfws3 tribe-editor__select__value-container"
|
205 |
+
>
|
206 |
+
<div
|
207 |
+
className="css-1492t68 tribe-editor__select__placeholder"
|
208 |
+
>
|
209 |
+
Select...
|
210 |
+
</div>
|
211 |
+
<input
|
212 |
+
className="css-14uuagi"
|
213 |
+
id="react-select-4-input"
|
214 |
+
onBlur={[Function]}
|
215 |
+
onChange={[Function]}
|
216 |
+
onFocus={[Function]}
|
217 |
+
readOnly={true}
|
218 |
+
tabIndex="0"
|
219 |
+
value=""
|
220 |
+
/>
|
221 |
+
</div>
|
222 |
+
<div
|
223 |
+
className="css-1wy0on6 tribe-editor__select__indicators"
|
224 |
+
>
|
225 |
+
<div
|
226 |
+
aria-hidden="true"
|
227 |
+
className="css-1ep9fjw tribe-editor__select__indicator tribe-editor__select__dropdown-indicator"
|
228 |
+
onMouseDown={[Function]}
|
229 |
+
onTouchEnd={[Function]}
|
230 |
+
>
|
231 |
+
<span
|
232 |
+
className="tribe-editor__select__dropdown-indicator"
|
233 |
+
>
|
234 |
+
arrow-down
|
235 |
+
</span>
|
236 |
+
</div>
|
237 |
+
</div>
|
238 |
+
</div>
|
239 |
+
</div>
|
240 |
+
`;
|
common/src/modules/elements/select/__tests__/element.test.js
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import Select from '../element.js';
|
10 |
+
|
11 |
+
const options = [
|
12 |
+
{ label: 'Test 1', value: 'test-1' },
|
13 |
+
{ label: 'Test 2', value: 'test-2' },
|
14 |
+
];
|
15 |
+
|
16 |
+
describe( 'Select element', () => {
|
17 |
+
it( 'Should render the component', () => {
|
18 |
+
const component = renderer.create( <Select options={ options } /> );
|
19 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
20 |
+
} );
|
21 |
+
|
22 |
+
it( 'Should render the component with class', () => {
|
23 |
+
const component = renderer.create( <Select options={ options } className="test-class" /> );
|
24 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
25 |
+
} );
|
26 |
+
|
27 |
+
it( 'Should render the component with extra props', () => {
|
28 |
+
const component = renderer.create( <Select options={ options } isSearchable={ false } /> );
|
29 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
30 |
+
} );
|
31 |
+
} );
|
common/src/modules/elements/select/element.js
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
import ReactSelect, { components } from 'react-select';
|
8 |
+
import { Dashicon } from '@wordpress/components';
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Internal dependencies
|
12 |
+
*/
|
13 |
+
import './style.pcss';
|
14 |
+
|
15 |
+
const DropdownIndicator = ( props ) => (
|
16 |
+
components.DropdownIndicator && (
|
17 |
+
<components.DropdownIndicator { ...props }>
|
18 |
+
<Dashicon
|
19 |
+
className="tribe-editor__select__dropdown-indicator"
|
20 |
+
icon={ 'arrow-down' }
|
21 |
+
/>
|
22 |
+
</components.DropdownIndicator>
|
23 |
+
)
|
24 |
+
);
|
25 |
+
|
26 |
+
const IndicatorSeparator = () => null;
|
27 |
+
|
28 |
+
const Select = ( { className, ...rest } ) => (
|
29 |
+
<ReactSelect
|
30 |
+
className={ classNames( 'tribe-editor__select', className ) }
|
31 |
+
classNamePrefix="tribe-editor__select"
|
32 |
+
components={ { DropdownIndicator, IndicatorSeparator } }
|
33 |
+
{ ...rest }
|
34 |
+
/>
|
35 |
+
);
|
36 |
+
|
37 |
+
Select.propTypes = {
|
38 |
+
className: PropTypes.string,
|
39 |
+
};
|
40 |
+
|
41 |
+
export default Select;
|
common/src/modules/elements/select/style.pcss
ADDED
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tribe-editor__select {
|
2 |
+
|
3 |
+
.tribe-editor__select__control {
|
4 |
+
height: 46px;
|
5 |
+
border: 1px solid #E1E3E6;
|
6 |
+
border-radius: 3px;
|
7 |
+
background-color: #FFFFFF;
|
8 |
+
|
9 |
+
&:hover {
|
10 |
+
border: 1px solid #E1E3E6;
|
11 |
+
}
|
12 |
+
|
13 |
+
&--is-focused {
|
14 |
+
box-shadow: none;
|
15 |
+
}
|
16 |
+
}
|
17 |
+
|
18 |
+
.tribe-editor__select__value-container {
|
19 |
+
padding: 2px 10px 2px 15px;
|
20 |
+
}
|
21 |
+
|
22 |
+
.tribe-editor__select__single-value {
|
23 |
+
margin: 0;
|
24 |
+
max-width: calc(100% - 15px);
|
25 |
+
font-size: 16px;
|
26 |
+
line-height: 1.5;
|
27 |
+
}
|
28 |
+
|
29 |
+
.tribe-editor__select__input {
|
30 |
+
font-size: 16px;
|
31 |
+
|
32 |
+
& > input {
|
33 |
+
margin: 0;
|
34 |
+
line-height: 1.5;
|
35 |
+
}
|
36 |
+
}
|
37 |
+
|
38 |
+
svg.tribe-editor__select__dropdown-indicator {
|
39 |
+
fill: #555D66;
|
40 |
+
}
|
41 |
+
|
42 |
+
.tribe-editor__select__menu {
|
43 |
+
margin: 0;
|
44 |
+
border: 1px solid #E1E3E6;
|
45 |
+
border-top: none;
|
46 |
+
border-radius: 0;
|
47 |
+
border-bottom-left-radius: 3px;
|
48 |
+
border-bottom-right-radius: 3px;
|
49 |
+
box-shadow: none;
|
50 |
+
transform: translateY(-7px);
|
51 |
+
}
|
52 |
+
|
53 |
+
.tribe-editor__select__menu-list {
|
54 |
+
padding: 0;
|
55 |
+
}
|
56 |
+
|
57 |
+
.tribe-editor__select__option {
|
58 |
+
font-size: 16px;
|
59 |
+
line-height: 1.5;
|
60 |
+
padding: 3px 15px;
|
61 |
+
|
62 |
+
&--is-focused {
|
63 |
+
background-color: #E7F5FA;
|
64 |
+
}
|
65 |
+
|
66 |
+
&--is-selected {
|
67 |
+
background-color: #11A0D2;
|
68 |
+
}
|
69 |
+
}
|
70 |
+
|
71 |
+
&--is-disabled {
|
72 |
+
|
73 |
+
svg.tribe-editor__select__dropdown-indicator {
|
74 |
+
fill: #AEB4BB;
|
75 |
+
}
|
76 |
+
}
|
77 |
+
}
|
common/src/modules/elements/style.pcss
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
.post-type-tribe_events .editor-styles-wrapper {
|
2 |
+
max-width: none!important;
|
3 |
+
}
|
common/src/modules/elements/textarea/element.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External Dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
|
12 |
+
const Textarea = ( { className, ...rest } ) => (
|
13 |
+
<textarea className={ classNames( 'tribe-editor__textarea', className ) } { ...rest } />
|
14 |
+
);
|
15 |
+
|
16 |
+
Textarea.propTypes = {
|
17 |
+
className: PropTypes.string,
|
18 |
+
};
|
19 |
+
|
20 |
+
export default Textarea;
|
common/src/modules/elements/time-picker/element.js
ADDED
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import moment from 'moment';
|
7 |
+
import { noop } from 'lodash';
|
8 |
+
import classNames from 'classnames';
|
9 |
+
import { ScrollTo, ScrollArea } from 'react-scroll-to';
|
10 |
+
|
11 |
+
/**
|
12 |
+
* WordPress dependencies
|
13 |
+
*/
|
14 |
+
import {
|
15 |
+
Dropdown,
|
16 |
+
Dashicon,
|
17 |
+
} from '@wordpress/components';
|
18 |
+
import { __ } from '@wordpress/i18n';
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Internal dependencies
|
22 |
+
*/
|
23 |
+
import { PreventBlockClose } from '@moderntribe/common/components';
|
24 |
+
import {
|
25 |
+
moment as momentUtil,
|
26 |
+
time as timeUtil,
|
27 |
+
TribePropTypes,
|
28 |
+
} from '@moderntribe/common/utils';
|
29 |
+
import './style.pcss';
|
30 |
+
|
31 |
+
const TimePicker = ( {
|
32 |
+
current,
|
33 |
+
min,
|
34 |
+
max,
|
35 |
+
start,
|
36 |
+
end,
|
37 |
+
step,
|
38 |
+
timeFormat,
|
39 |
+
allDay,
|
40 |
+
onChange,
|
41 |
+
onClick,
|
42 |
+
showAllDay,
|
43 |
+
disabled,
|
44 |
+
} ) => {
|
45 |
+
|
46 |
+
const renderLabel = ( onToggle ) => {
|
47 |
+
if ( allDay ) {
|
48 |
+
return (
|
49 |
+
<button
|
50 |
+
className="tribe-editor__timepicker__all-day-btn"
|
51 |
+
onClick={ onToggle }
|
52 |
+
disabled={ disabled }
|
53 |
+
>
|
54 |
+
{ __( 'All Day', 'events-gutenberg' ) }
|
55 |
+
</button>
|
56 |
+
);
|
57 |
+
}
|
58 |
+
|
59 |
+
const additionalProps = {};
|
60 |
+
if ( min ) {
|
61 |
+
additionalProps.min = min;
|
62 |
+
}
|
63 |
+
|
64 |
+
if ( max ) {
|
65 |
+
additionalProps.max = max;
|
66 |
+
}
|
67 |
+
|
68 |
+
return (
|
69 |
+
<input
|
70 |
+
className="tribe-editor__btn-input"
|
71 |
+
type="time"
|
72 |
+
value={ current }
|
73 |
+
onChange={ onChange }
|
74 |
+
disabled={ disabled }
|
75 |
+
{ ...additionalProps }
|
76 |
+
/>
|
77 |
+
);
|
78 |
+
};
|
79 |
+
|
80 |
+
const toggleDropdown = ( { onToggle, isOpen } ) => (
|
81 |
+
<div className="tribe-editor__timepicker-label-container">
|
82 |
+
{ renderLabel( onToggle ) }
|
83 |
+
<button
|
84 |
+
type="button"
|
85 |
+
aria-expanded={ isOpen }
|
86 |
+
onClick={ onToggle }
|
87 |
+
disabled={ disabled }
|
88 |
+
>
|
89 |
+
<Dashicon className="btn--icon" icon={ isOpen ? 'arrow-up' : 'arrow-down' } />
|
90 |
+
</button>
|
91 |
+
</div>
|
92 |
+
);
|
93 |
+
|
94 |
+
const getItems = () => {
|
95 |
+
const items = [];
|
96 |
+
|
97 |
+
const startSeconds = timeUtil.toSeconds( start, timeUtil.TIME_FORMAT_HH_MM );
|
98 |
+
const endSeconds = timeUtil.toSeconds( end, timeUtil.TIME_FORMAT_HH_MM );
|
99 |
+
|
100 |
+
for ( let time = startSeconds; time <= endSeconds; time += step ) {
|
101 |
+
items.push( {
|
102 |
+
value: time,
|
103 |
+
text: formatLabel( time ),
|
104 |
+
isCurrent: current
|
105 |
+
? time === timeUtil.toSeconds( current, timeUtil.TIME_FORMAT_HH_MM )
|
106 |
+
: false,
|
107 |
+
} );
|
108 |
+
}
|
109 |
+
|
110 |
+
return items;
|
111 |
+
};
|
112 |
+
|
113 |
+
const formatLabel = ( seconds ) => {
|
114 |
+
return momentUtil.setTimeInSeconds( moment(), seconds ).format( momentUtil.toFormat( timeFormat ) );
|
115 |
+
};
|
116 |
+
|
117 |
+
const renderItem = ( item, onClose ) => {
|
118 |
+
const itemClasses = {
|
119 |
+
'tribe-editor__timepicker__item': true,
|
120 |
+
'tribe-editor__timepicker__item--current': item.isCurrent && ! allDay,
|
121 |
+
};
|
122 |
+
|
123 |
+
return (
|
124 |
+
<button
|
125 |
+
key={ `time-${ item.value }` }
|
126 |
+
role="menuitem"
|
127 |
+
className={ classNames( itemClasses ) }
|
128 |
+
value={ item.value }
|
129 |
+
onClick={ () => onClick( item.value, onClose ) }
|
130 |
+
>
|
131 |
+
{ item.text }
|
132 |
+
</button>
|
133 |
+
);
|
134 |
+
};
|
135 |
+
|
136 |
+
const renderDropdownContent = ( { onClose } ) => (
|
137 |
+
<ScrollTo>
|
138 |
+
{ () => (
|
139 |
+
<PreventBlockClose>
|
140 |
+
<ScrollArea
|
141 |
+
id="tribe-element-timepicker-items"
|
142 |
+
key="tribe-element-timepicker-items"
|
143 |
+
role="menu"
|
144 |
+
className={ classNames( 'tribe-editor__timepicker__items' ) }
|
145 |
+
>
|
146 |
+
{ showAllDay && renderItem(
|
147 |
+
{ text: __( 'All Day', 'events-gutenberg' ), value: 'all-day' },
|
148 |
+
onClose,
|
149 |
+
) }
|
150 |
+
{ getItems().map( ( item ) => renderItem( item, onClose ) ) }
|
151 |
+
</ScrollArea>
|
152 |
+
</PreventBlockClose>
|
153 |
+
) }
|
154 |
+
</ScrollTo>
|
155 |
+
);
|
156 |
+
|
157 |
+
return (
|
158 |
+
<div
|
159 |
+
key="tribe-element-timepicker"
|
160 |
+
className="tribe-editor__timepicker"
|
161 |
+
>
|
162 |
+
<Dropdown
|
163 |
+
className="tribe-element-timepicker-label"
|
164 |
+
position="bottom center"
|
165 |
+
contentClassName="tribe-editor__timepicker__dialog"
|
166 |
+
renderToggle={ toggleDropdown }
|
167 |
+
renderContent={ renderDropdownContent }
|
168 |
+
/>
|
169 |
+
</div>
|
170 |
+
);
|
171 |
+
};
|
172 |
+
|
173 |
+
TimePicker.defaultProps = {
|
174 |
+
step: timeUtil.HALF_HOUR_IN_SECONDS,
|
175 |
+
timeFormat: 'H:i',
|
176 |
+
allDay: false,
|
177 |
+
onChange: noop,
|
178 |
+
onClick: noop,
|
179 |
+
};
|
180 |
+
|
181 |
+
TimePicker.propTypes = {
|
182 |
+
/**
|
183 |
+
* TribePropTypes.timeFormat check for string formatted as a time
|
184 |
+
* using 24h clock in hh:mm format
|
185 |
+
* e.g. 00:24, 03:57, 21:12
|
186 |
+
*/
|
187 |
+
current: TribePropTypes.timeFormat.isRequired,
|
188 |
+
min: TribePropTypes.timeFormat,
|
189 |
+
max: TribePropTypes.timeFormat,
|
190 |
+
start: TribePropTypes.timeFormat.isRequired,
|
191 |
+
end: TribePropTypes.timeFormat.isRequired,
|
192 |
+
step: PropTypes.number,
|
193 |
+
timeFormat: PropTypes.string,
|
194 |
+
allDay: PropTypes.bool,
|
195 |
+
onChange: PropTypes.func.isRequired,
|
196 |
+
onClick: PropTypes.func.isRequired,
|
197 |
+
showAllDay: PropTypes.bool,
|
198 |
+
disabled: PropTypes.bool,
|
199 |
+
};
|
200 |
+
|
201 |
+
export default TimePicker;
|
common/src/modules/elements/time-picker/style.pcss
ADDED
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.tribe-editor__timepicker {
|
2 |
+
display: inline-block;
|
3 |
+
}
|
4 |
+
|
5 |
+
.tribe-editor__timepicker-label-container {
|
6 |
+
background-color: #FFF;
|
7 |
+
border: 1px solid #e1e3e6;
|
8 |
+
padding-left: 10px;
|
9 |
+
border-radius: 2px;
|
10 |
+
display: flex;
|
11 |
+
align-items: center;
|
12 |
+
justify-content: center;
|
13 |
+
|
14 |
+
input[type="time"] {
|
15 |
+
font-family: "Noto Serif", serif;
|
16 |
+
font-size: 14px;
|
17 |
+
padding: 6px 0;
|
18 |
+
border: none;
|
19 |
+
|
20 |
+
&::-webkit-clear-button {
|
21 |
+
-webkit-appearance: none;
|
22 |
+
display: none;
|
23 |
+
}
|
24 |
+
|
25 |
+
&:focus {
|
26 |
+
box-shadow: none;
|
27 |
+
}
|
28 |
+
}
|
29 |
+
|
30 |
+
button {
|
31 |
+
background-color: #FEFFFE;
|
32 |
+
color: #545D66;
|
33 |
+
font-family: Helvetica, sans-serif;
|
34 |
+
font-weight: normal;
|
35 |
+
line-height: 1.5;
|
36 |
+
padding: 11px 10px 10px;
|
37 |
+
text-decoration: none;
|
38 |
+
border: none;
|
39 |
+
display: flex;
|
40 |
+
align-items: center;
|
41 |
+
justify-content: center;
|
42 |
+
|
43 |
+
&:disabled > svg.dashicon {
|
44 |
+
fill: #AEB4BB;
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
.tribe-editor__timepicker__all-day-btn {
|
49 |
+
padding: 6px 0;
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
.tribe-editor__timepicker__dialog {
|
54 |
+
&.components-popover {
|
55 |
+
.components-popover__content {
|
56 |
+
min-width: 110px;
|
57 |
+
}
|
58 |
+
}
|
59 |
+
|
60 |
+
.tribe-editor__timepicker__items {
|
61 |
+
height: 250px;
|
62 |
+
overflow: auto;
|
63 |
+
|
64 |
+
.components-placeholder {
|
65 |
+
height: inherit;
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
.tribe-editor__timepicker__item {
|
70 |
+
display: block;
|
71 |
+
width: 100%;
|
72 |
+
color: #555d66;
|
73 |
+
padding: 5px 12px;
|
74 |
+
cursor: pointer;
|
75 |
+
border: 0;
|
76 |
+
border-bottom: 1px solid #e2e4e7;
|
77 |
+
line-height: 20px;
|
78 |
+
background: transparent;
|
79 |
+
text-align: left;
|
80 |
+
|
81 |
+
&--current {
|
82 |
+
color: #ffffff;
|
83 |
+
background-color: #009fd4;
|
84 |
+
|
85 |
+
&:not(:disabled):hover {
|
86 |
+
color: #ffffff;
|
87 |
+
background-color: #009fd4;
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
&:not(:disabled) {
|
92 |
+
&:hover {
|
93 |
+
background-color: #e7f5fa;
|
94 |
+
}
|
95 |
+
|
96 |
+
&:focus,
|
97 |
+
&:active,
|
98 |
+
&.is-active {
|
99 |
+
position: relative;
|
100 |
+
}
|
101 |
+
}
|
102 |
+
}
|
103 |
+
}
|
common/src/modules/elements/tooltip/__tests__/__snapshots__/element.test.js.snap
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Tooltip Element renders a tooltip 1`] = `
|
4 |
+
<div>
|
5 |
+
<span>
|
6 |
+
here is the tooltip text
|
7 |
+
</span>
|
8 |
+
<span>
|
9 |
+
bottom left
|
10 |
+
</span>
|
11 |
+
<span>
|
12 |
+
<button
|
13 |
+
aria-label="here is the tooltip text"
|
14 |
+
className="tribe-editor__button tribe-editor__tooltip-label label-class-name"
|
15 |
+
onClick={[Function]}
|
16 |
+
type="button"
|
17 |
+
>
|
18 |
+
some label
|
19 |
+
</button>
|
20 |
+
</span>
|
21 |
+
</div>
|
22 |
+
`;
|
common/src/modules/elements/tooltip/__tests__/element.test.js
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import renderer from 'react-test-renderer';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Internal dependencies
|
9 |
+
*/
|
10 |
+
import Tooltip from '@moderntribe/common/elements/tooltip/element';
|
11 |
+
|
12 |
+
jest.mock( '@wordpress/components', () => ( {
|
13 |
+
Tooltip: ({ text, position, children }) => (
|
14 |
+
<div>
|
15 |
+
<span>{ text }</span>
|
16 |
+
<span>{ position }</span>
|
17 |
+
<span>{ children }</span>
|
18 |
+
</div>
|
19 |
+
),
|
20 |
+
} ) );
|
21 |
+
|
22 |
+
describe( 'Tooltip Element', () => {
|
23 |
+
it( 'renders a tooltip', () => {
|
24 |
+
const props = {
|
25 |
+
label: 'some label',
|
26 |
+
labelClassName: 'label-class-name',
|
27 |
+
position: 'bottom left',
|
28 |
+
text: 'here is the tooltip text',
|
29 |
+
};
|
30 |
+
const component = renderer.create( <Tooltip { ...props } />)
|
31 |
+
expect( component.toJSON() ).toMatchSnapshot()
|
32 |
+
} );
|
33 |
+
} );
|
common/src/modules/elements/tooltip/element.js
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React, { PureComponent } from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* WordPress dependencies
|
10 |
+
*/
|
11 |
+
import { Tooltip as WpTooltip } from '@wordpress/components';
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Internal dependencies
|
15 |
+
*/
|
16 |
+
import { Button } from '@moderntribe/common/elements';
|
17 |
+
|
18 |
+
class Tooltip extends PureComponent {
|
19 |
+
static defaultProps = {
|
20 |
+
position: 'top right',
|
21 |
+
text: '',
|
22 |
+
};
|
23 |
+
|
24 |
+
static propTypes = {
|
25 |
+
disabled: PropTypes.bool,
|
26 |
+
label: PropTypes.node,
|
27 |
+
labelClassName: PropTypes.string,
|
28 |
+
position: PropTypes.oneOf( [
|
29 |
+
'top left',
|
30 |
+
'top center',
|
31 |
+
'top right',
|
32 |
+
'bottom left',
|
33 |
+
'bottom center',
|
34 |
+
'bottom right',
|
35 |
+
] ),
|
36 |
+
text: PropTypes.string,
|
37 |
+
};
|
38 |
+
|
39 |
+
render() {
|
40 |
+
const { disabled, label, labelClassName, position, text } = this.props;
|
41 |
+
|
42 |
+
return (
|
43 |
+
<WpTooltip text={ text } position={ position }>
|
44 |
+
<Button
|
45 |
+
aria-label={ text }
|
46 |
+
className={ classNames( 'tribe-editor__tooltip-label', labelClassName ) }
|
47 |
+
disabled={ disabled }
|
48 |
+
>
|
49 |
+
{ label }
|
50 |
+
</Button>
|
51 |
+
</WpTooltip>
|
52 |
+
);
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
export default Tooltip;
|
common/src/modules/elements/url-input/element.js
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External Dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import classNames from 'classnames';
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Internal dependencies
|
10 |
+
*/
|
11 |
+
import Input from '@moderntribe/common/elements/input/element';
|
12 |
+
|
13 |
+
const UrlInput = ( { checked, className, onChange, ...rest } ) => (
|
14 |
+
<Input
|
15 |
+
type="url"
|
16 |
+
className={ classNames( 'tribe-editor__input--url', className ) }
|
17 |
+
onChange={ onChange }
|
18 |
+
{ ...rest }
|
19 |
+
/>
|
20 |
+
);
|
21 |
+
|
22 |
+
UrlInput.propTypes = {
|
23 |
+
className: PropTypes.string,
|
24 |
+
onChange: PropTypes.func,
|
25 |
+
};
|
26 |
+
|
27 |
+
export default UrlInput;
|
common/src/modules/hoc/__tests__/__snapshots__/with-details.test.js.snap
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`HOC - With Details Should match the dispatched actions 1`] = `
|
4 |
+
Array [
|
5 |
+
Object {
|
6 |
+
"payload": Object {
|
7 |
+
"id": "event",
|
8 |
+
"postType": undefined,
|
9 |
+
},
|
10 |
+
"type": "@@MT/EVENTS/SET_DETAILS_POST_TYPE",
|
11 |
+
},
|
12 |
+
Object {
|
13 |
+
"meta": Object {
|
14 |
+
"actions": Object {
|
15 |
+
"error": [Function],
|
16 |
+
"start": [Function],
|
17 |
+
"success": [Function],
|
18 |
+
},
|
19 |
+
"path": "tribe_events/event",
|
20 |
+
},
|
21 |
+
"type": "@@MT/COMMON/WP_REQUEST",
|
22 |
+
},
|
23 |
+
]
|
24 |
+
`;
|
25 |
+
|
26 |
+
exports[`HOC - With Details Should render a component 1`] = `
|
27 |
+
<div>
|
28 |
+
With Details!
|
29 |
+
</div>
|
30 |
+
`;
|
common/src/modules/hoc/__tests__/__snapshots__/with-form.test.js.snap
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`HOC - With Form Should register the postType by dispatching the actions 1`] = `
|
4 |
+
Array [
|
5 |
+
Object {
|
6 |
+
"payload": Object {
|
7 |
+
"id": "posts",
|
8 |
+
"type": "post",
|
9 |
+
},
|
10 |
+
"type": "@@MT/COMMON/ADD_FORM",
|
11 |
+
},
|
12 |
+
]
|
13 |
+
`;
|
14 |
+
|
15 |
+
exports[`HOC - With Form Should render a component 1`] = `
|
16 |
+
<div>
|
17 |
+
With Form!
|
18 |
+
</div>
|
19 |
+
`;
|
common/src/modules/hoc/__tests__/__snapshots__/with-save-data.test.js.snap
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`HOC - With Details Should render a component 1`] = `
|
4 |
+
<div
|
5 |
+
attributes={
|
6 |
+
Object {
|
7 |
+
"description": "",
|
8 |
+
"organizers": Array [],
|
9 |
+
"title": "Modern Tribe",
|
10 |
+
}
|
11 |
+
}
|
12 |
+
description="The Next Generation of Digital Agency"
|
13 |
+
isolated={false}
|
14 |
+
name="tribe/event"
|
15 |
+
onBlockCreated={[Function]}
|
16 |
+
onBlockRemoved={[Function]}
|
17 |
+
organizers={Array []}
|
18 |
+
setAttributes={[MockFunction]}
|
19 |
+
setInitialState={
|
20 |
+
[MockFunction] {
|
21 |
+
"calls": Array [
|
22 |
+
Array [
|
23 |
+
Object {
|
24 |
+
"attributes": Object {
|
25 |
+
"description": "",
|
26 |
+
"organizers": Array [],
|
27 |
+
"title": "Modern Tribe",
|
28 |
+
},
|
29 |
+
"description": "The Next Generation of Digital Agency",
|
30 |
+
"get": [Function],
|
31 |
+
"isolated": false,
|
32 |
+
"name": "tribe/event",
|
33 |
+
"onBlockCreated": [Function],
|
34 |
+
"onBlockRemoved": [Function],
|
35 |
+
"organizers": Array [],
|
36 |
+
"setAttributes": [MockFunction],
|
37 |
+
"setInitialState": [MockFunction] {
|
38 |
+
"calls": [Circular],
|
39 |
+
"results": Array [
|
40 |
+
Object {
|
41 |
+
"isThrow": false,
|
42 |
+
"value": undefined,
|
43 |
+
},
|
44 |
+
],
|
45 |
+
},
|
46 |
+
"title": "Modern Tribe!",
|
47 |
+
},
|
48 |
+
],
|
49 |
+
],
|
50 |
+
"results": Array [
|
51 |
+
Object {
|
52 |
+
"isThrow": false,
|
53 |
+
"value": undefined,
|
54 |
+
},
|
55 |
+
],
|
56 |
+
}
|
57 |
+
}
|
58 |
+
title="Modern Tribe!"
|
59 |
+
>
|
60 |
+
With Save Data!
|
61 |
+
</div>
|
62 |
+
`;
|
common/src/modules/hoc/__tests__/__snapshots__/with-store.test.js.snap
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`HOC - With Store Should add the store property 1`] = `
|
4 |
+
<div
|
5 |
+
store={
|
6 |
+
Object {
|
7 |
+
"dispatch": [Function],
|
8 |
+
"getState": [Function],
|
9 |
+
"injectReducers": [Function],
|
10 |
+
"injectedReducers": Object {},
|
11 |
+
"replaceReducer": [Function],
|
12 |
+
"run": [Function],
|
13 |
+
"subscribe": [Function],
|
14 |
+
Symbol(observable): [Function],
|
15 |
+
}
|
16 |
+
}
|
17 |
+
/>
|
18 |
+
`;
|
common/src/modules/hoc/__tests__/with-details.test.js
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import renderer from 'react-test-renderer';
|
5 |
+
import React from 'react';
|
6 |
+
import configureStore from 'redux-mock-store';
|
7 |
+
import thunk from 'redux-thunk';
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Internal dependencies
|
11 |
+
*/
|
12 |
+
import { withDetails } from '@moderntribe/events/hoc';
|
13 |
+
|
14 |
+
const initialState = {
|
15 |
+
events: {
|
16 |
+
details: {},
|
17 |
+
},
|
18 |
+
forms: {
|
19 |
+
byID: {},
|
20 |
+
volatile: [],
|
21 |
+
},
|
22 |
+
};
|
23 |
+
// here it is possible to pass in any middleware if needed into //configureStore
|
24 |
+
const mockStore = configureStore( [ thunk ] );
|
25 |
+
const store = mockStore( initialState );
|
26 |
+
|
27 |
+
const Block = () => <div>With Details!</div>;
|
28 |
+
let Wrapper;
|
29 |
+
let component;
|
30 |
+
let instance;
|
31 |
+
|
32 |
+
describe( 'HOC - With Details', () => {
|
33 |
+
beforeEach( () => {
|
34 |
+
Wrapper = withDetails()( Block );
|
35 |
+
component = renderer.create( <Wrapper store={ store } clientId="event" /> );
|
36 |
+
instance = component.root;
|
37 |
+
} );
|
38 |
+
|
39 |
+
afterEach( () => {
|
40 |
+
mockStore( initialState );
|
41 |
+
store.clearActions();
|
42 |
+
} );
|
43 |
+
|
44 |
+
it( 'Should render a component', () => {
|
45 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
46 |
+
} );
|
47 |
+
|
48 |
+
it( 'Should render the inner component', () => {
|
49 |
+
expect( instance ).not.toBe( null );
|
50 |
+
expect( () => instance.findByType( Block ) ).not.toThrowError();
|
51 |
+
} );
|
52 |
+
|
53 |
+
it( 'Should attach the details properties', () => {
|
54 |
+
const expected = {
|
55 |
+
details: {},
|
56 |
+
isLoading: false,
|
57 |
+
};
|
58 |
+
expect( instance.findByType( Block ).props ).toMatchObject( expected );
|
59 |
+
} );
|
60 |
+
|
61 |
+
it( 'Should match the dispatched actions', () => {
|
62 |
+
expect( store.getActions() ).toMatchSnapshot();
|
63 |
+
} );
|
64 |
+
} );
|
65 |
+
|
common/src/modules/hoc/__tests__/with-form.test.js
ADDED
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import renderer from 'react-test-renderer';
|
5 |
+
import React from 'react';
|
6 |
+
import configureStore from 'redux-mock-store';
|
7 |
+
import thunk from 'redux-thunk';
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Internal dependencies
|
11 |
+
*/
|
12 |
+
import { withForm } from '@moderntribe/common/hoc';
|
13 |
+
|
14 |
+
const initialState = {
|
15 |
+
events: {
|
16 |
+
},
|
17 |
+
forms: {
|
18 |
+
byId: {},
|
19 |
+
},
|
20 |
+
};
|
21 |
+
// here it is possible to pass in any middleware if needed into //configureStore
|
22 |
+
const mockStore = configureStore( [ thunk ] );
|
23 |
+
const store = mockStore( initialState );
|
24 |
+
|
25 |
+
const Block = () => <div>With Form!</div>;
|
26 |
+
let setFormID;
|
27 |
+
let Wrapper;
|
28 |
+
let component;
|
29 |
+
let instance;
|
30 |
+
|
31 |
+
describe( 'HOC - With Form', () => {
|
32 |
+
beforeEach( () => {
|
33 |
+
setFormID = jest.fn( () => 'posts' );
|
34 |
+
Wrapper = withForm( setFormID )( Block );
|
35 |
+
component = renderer.create( <Wrapper store={ store } postType="post"/> );
|
36 |
+
instance = component.root;
|
37 |
+
} );
|
38 |
+
|
39 |
+
afterEach( () => {
|
40 |
+
mockStore( initialState );
|
41 |
+
store.clearActions();
|
42 |
+
setFormID.mockClear();
|
43 |
+
} );
|
44 |
+
|
45 |
+
it( 'Should render a component', () => {
|
46 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
47 |
+
} );
|
48 |
+
|
49 |
+
it( 'Should render the inner component', () => {
|
50 |
+
expect( instance ).not.toBe( null );
|
51 |
+
expect( () => instance.findByType( Block ) ).not.toThrowError();
|
52 |
+
} );
|
53 |
+
|
54 |
+
it( 'Should attach the form properties', () => {
|
55 |
+
const expected = {
|
56 |
+
edit: false,
|
57 |
+
create: false,
|
58 |
+
fields: {},
|
59 |
+
submit: false,
|
60 |
+
};
|
61 |
+
expect( instance.findByType( Block ).props ).toMatchObject( expected );
|
62 |
+
} );
|
63 |
+
|
64 |
+
it( 'Should have properties as functions', () => {
|
65 |
+
const props = instance.findByType( Block ).props;
|
66 |
+
const expectedProps = [
|
67 |
+
'maybeRemoveEntry',
|
68 |
+
'setSubmit',
|
69 |
+
'sendForm',
|
70 |
+
'editEntry',
|
71 |
+
'createDraft',
|
72 |
+
];
|
73 |
+
|
74 |
+
expectedProps.forEach( ( property ) => {
|
75 |
+
expect( props[ property ] ).not.toBeUndefined();
|
76 |
+
expect( typeof props[ property ] ).toBe( 'function' );
|
77 |
+
} );
|
78 |
+
} );
|
79 |
+
|
80 |
+
it( 'Should register the postType by dispatching the actions', () => {
|
81 |
+
expect( store.getActions() ).toMatchSnapshot();
|
82 |
+
} );
|
83 |
+
|
84 |
+
it( 'Should register the ID of the form', () => {
|
85 |
+
expect( setFormID ).toHaveBeenCalled();
|
86 |
+
expect( setFormID ).toHaveBeenCalledTimes( 3 );
|
87 |
+
} );
|
88 |
+
} );
|
89 |
+
|
common/src/modules/hoc/__tests__/with-save-data.test.js
ADDED
@@ -0,0 +1,191 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import renderer from 'react-test-renderer';
|
5 |
+
import React from 'react';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Internal dependencies
|
9 |
+
*/
|
10 |
+
import { withSaveData } from '@moderntribe/common/hoc';
|
11 |
+
|
12 |
+
const Block = ( props ) => <div { ...props }>With Save Data!</div>;
|
13 |
+
const props = {
|
14 |
+
name: 'tribe/event',
|
15 |
+
setInitialState: jest.fn(),
|
16 |
+
setAttributes: jest.fn(),
|
17 |
+
title: 'Modern Tribe!',
|
18 |
+
description: 'The Next Generation of Digital Agency',
|
19 |
+
organizers: [],
|
20 |
+
attributes: {
|
21 |
+
title: 'Modern Tribe',
|
22 |
+
description: '',
|
23 |
+
organizers: [],
|
24 |
+
},
|
25 |
+
};
|
26 |
+
|
27 |
+
describe( 'HOC - With Details', () => {
|
28 |
+
let Wrapper;
|
29 |
+
let component;
|
30 |
+
let instance;
|
31 |
+
|
32 |
+
beforeEach( () => {
|
33 |
+
Wrapper = withSaveData()( Block );
|
34 |
+
component = renderer.create( <Wrapper { ...props } /> );
|
35 |
+
instance = component.root;
|
36 |
+
} );
|
37 |
+
|
38 |
+
afterEach( () => {
|
39 |
+
props.setInitialState.mockClear();
|
40 |
+
props.setAttributes.mockClear();
|
41 |
+
component.getInstance().unregisterBlock();
|
42 |
+
} );
|
43 |
+
|
44 |
+
it( 'Should render a component', () => {
|
45 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
46 |
+
} );
|
47 |
+
|
48 |
+
it( 'Should render the inner component', () => {
|
49 |
+
expect( instance ).not.toBe( null );
|
50 |
+
expect( () => instance.findByType( Block ) ).not.toThrowError();
|
51 |
+
} );
|
52 |
+
|
53 |
+
it( 'Should set the initial state', () => {
|
54 |
+
expect( props.setInitialState ).toHaveBeenCalled();
|
55 |
+
expect( props.setInitialState ).toHaveBeenCalledTimes( 1 );
|
56 |
+
} );
|
57 |
+
|
58 |
+
it( 'Should generate the attributes', () => {
|
59 |
+
const HOC = component.getInstance();
|
60 |
+
expect( HOC.attrs ).toEqual( props.attributes );
|
61 |
+
} );
|
62 |
+
|
63 |
+
it( 'Should generate the keys', () => {
|
64 |
+
const HOC = component.getInstance();
|
65 |
+
expect( HOC.keys ).toEqual( Object.keys( props.attributes ) );
|
66 |
+
} );
|
67 |
+
|
68 |
+
it( 'Simulate componentDidUpdate call', () => {
|
69 |
+
const wrapper = shallow( <Wrapper { ...props } /> );
|
70 |
+
const wrapperInstance = wrapper.instance();
|
71 |
+
expect( wrapperInstance.calculateDiff() ).toEqual( {
|
72 |
+
description: 'The Next Generation of Digital Agency',
|
73 |
+
title: 'Modern Tribe!',
|
74 |
+
} );
|
75 |
+
wrapper.setProps( {
|
76 |
+
attributes: {
|
77 |
+
title: 'Modern Tribe!',
|
78 |
+
description: 'The Next Generation of Digital Agency',
|
79 |
+
organizers: [],
|
80 |
+
}
|
81 |
+
} );
|
82 |
+
expect( wrapperInstance.calculateDiff() ).toEqual( {} );
|
83 |
+
wrapper.setProps( {
|
84 |
+
organizers: [ 3 ],
|
85 |
+
attributes: {
|
86 |
+
title: 'Modern Tribe!',
|
87 |
+
description: 'The Next Generation of Digital Agency',
|
88 |
+
organizers: [ 3 ],
|
89 |
+
},
|
90 |
+
} );
|
91 |
+
expect( wrapperInstance.calculateDiff() ).toEqual( {} );
|
92 |
+
wrapper.setProps( {
|
93 |
+
organizers: [ 2, 3 ],
|
94 |
+
attributes: {
|
95 |
+
title: 'Modern Tribe!',
|
96 |
+
description: 'The Next Generation of Digital Agency',
|
97 |
+
organizers: [ 3, 2 ],
|
98 |
+
},
|
99 |
+
} );
|
100 |
+
expect( wrapperInstance.calculateDiff() ).toEqual( { organizers: [ 2, 3 ] } );
|
101 |
+
wrapperInstance.unregisterBlock();
|
102 |
+
} );
|
103 |
+
|
104 |
+
it( 'Should calculate the diff', () => {
|
105 |
+
const HOC = component.getInstance();
|
106 |
+
const expected = {
|
107 |
+
title: props.title,
|
108 |
+
description: props.description,
|
109 |
+
};
|
110 |
+
expect( HOC.calculateDiff() ).toEqual( expected );
|
111 |
+
} );
|
112 |
+
|
113 |
+
it( 'Should count a single block', () => {
|
114 |
+
const HOC = component.getInstance();
|
115 |
+
expect( HOC.blockCount() ).toBe( 1 );
|
116 |
+
} );
|
117 |
+
} );
|
118 |
+
|
119 |
+
describe( 'HOC - With Details on multiple instances', () => {
|
120 |
+
afterEach( () => {
|
121 |
+
props.setInitialState.mockClear();
|
122 |
+
props.setAttributes.mockClear();
|
123 |
+
} );
|
124 |
+
|
125 |
+
it( 'Should register the initial state just once', () => {
|
126 |
+
const WrapperComponent = withSaveData()( Block );
|
127 |
+
|
128 |
+
renderer.create( <WrapperComponent { ...props } /> );
|
129 |
+
renderer.create( <WrapperComponent { ...props } /> );
|
130 |
+
renderer.create( <WrapperComponent { ...props } /> );
|
131 |
+
|
132 |
+
expect( props.setInitialState ).toHaveBeenCalled();
|
133 |
+
expect( props.setInitialState ).toHaveBeenCalledTimes( 1 );
|
134 |
+
} );
|
135 |
+
|
136 |
+
it( 'Should register the state multiple times on non isolated instances', () => {
|
137 |
+
const WrapperComponent = withSaveData()( Block );
|
138 |
+
props.isolated = true;
|
139 |
+
renderer.create( <WrapperComponent { ...props } /> );
|
140 |
+
renderer.create( <WrapperComponent { ...props } /> );
|
141 |
+
renderer.create( <WrapperComponent { ...props } /> );
|
142 |
+
|
143 |
+
expect( props.setInitialState ).toHaveBeenCalled();
|
144 |
+
expect( props.setInitialState ).toHaveBeenCalledTimes( 3 );
|
145 |
+
} );
|
146 |
+
} );
|
147 |
+
|
148 |
+
describe( 'HOC - test life cycle callbacks', () => {
|
149 |
+
let Wrapper;
|
150 |
+
let component;
|
151 |
+
let instance;
|
152 |
+
let properties = {};
|
153 |
+
|
154 |
+
beforeAll( () => {
|
155 |
+
props.onBlockCreated = jest.fn();
|
156 |
+
props.onBlockRemoved = jest.fn();
|
157 |
+
});
|
158 |
+
|
159 |
+
beforeEach( () => {
|
160 |
+
Wrapper = withSaveData()( Block );
|
161 |
+
component = renderer.create( <Wrapper { ...props } /> );
|
162 |
+
instance = component.root;
|
163 |
+
properties = instance.props;
|
164 |
+
} );
|
165 |
+
|
166 |
+
afterEach( () => {
|
167 |
+
props.setInitialState.mockClear();
|
168 |
+
props.setAttributes.mockClear();
|
169 |
+
props.onBlockCreated.mockClear();
|
170 |
+
props.onBlockRemoved.mockClear();
|
171 |
+
} );
|
172 |
+
|
173 |
+
afterAll( () => {
|
174 |
+
delete props.onBlockCreated;
|
175 |
+
delete props.onBlockRemoved;
|
176 |
+
} );
|
177 |
+
|
178 |
+
it( 'Should call the onBlockCreated callback on mount', () => {
|
179 |
+
expect( props.onBlockCreated ).toHaveBeenCalled();
|
180 |
+
expect( props.onBlockCreated ).toHaveBeenCalledWith( properties );
|
181 |
+
expect( props.onBlockRemoved ).not.toHaveBeenCalled();
|
182 |
+
} );
|
183 |
+
|
184 |
+
it( 'Should call the onBlockRemoved callback on unmount of the block', () => {
|
185 |
+
component.unmount();
|
186 |
+
expect( props.onBlockCreated ).toHaveBeenCalled();
|
187 |
+
expect( props.onBlockCreated ).toHaveBeenCalledWith( properties );
|
188 |
+
expect( props.onBlockRemoved ).toHaveBeenCalled();
|
189 |
+
expect( props.onBlockRemoved ).toHaveBeenCalledWith( properties );
|
190 |
+
} );
|
191 |
+
} );
|
common/src/modules/hoc/__tests__/with-selected.test.js
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import { withSelected } from '@moderntribe/common/hoc';
|
10 |
+
|
11 |
+
const Block = () => ( <div>With Selected!</div> );
|
12 |
+
|
13 |
+
describe( 'withSelected', () => {
|
14 |
+
let HOC;
|
15 |
+
const onFocus = jest.fn();
|
16 |
+
const onBlur = jest.fn();
|
17 |
+
const props = {
|
18 |
+
onBlockFocus: onFocus,
|
19 |
+
onBlockBlur: onBlur,
|
20 |
+
};
|
21 |
+
|
22 |
+
beforeEach( () => {
|
23 |
+
HOC = withSelected()( Block );
|
24 |
+
} );
|
25 |
+
|
26 |
+
afterEach( () => {
|
27 |
+
props.onBlockFocus.mockClear();
|
28 |
+
props.onBlockBlur.mockClear();
|
29 |
+
} );
|
30 |
+
|
31 |
+
test( 'onBlur called when is not selected on mount', () => {
|
32 |
+
props.isSelected = false;
|
33 |
+
const component = mount( <HOC { ...props } /> );
|
34 |
+
expect( props.onBlockBlur ).toHaveBeenCalled();
|
35 |
+
expect( props.onBlockFocus ).not.toHaveBeenCalled();
|
36 |
+
} );
|
37 |
+
|
38 |
+
test( 'onFocus called when is selected on mount', () => {
|
39 |
+
props.isSelected = true;
|
40 |
+
const component = mount( <HOC { ...props } /> );
|
41 |
+
expect( props.onBlockFocus ).toHaveBeenCalled();
|
42 |
+
expect( props.onBlockBlur ).not.toHaveBeenCalled();
|
43 |
+
} );
|
44 |
+
|
45 |
+
test( 'trigger focus when isSelected changes after mounted', () => {
|
46 |
+
props.isSelected = false;
|
47 |
+
const component = mount( <HOC { ...props } /> );
|
48 |
+
expect( props.onBlockBlur ).toHaveBeenCalled();
|
49 |
+
expect( props.onBlockFocus ).not.toHaveBeenCalled();
|
50 |
+
|
51 |
+
props.onBlockBlur.mockClear();
|
52 |
+
props.onBlockFocus.mockClear();
|
53 |
+
|
54 |
+
component.setProps( { isSelected: true } );
|
55 |
+
|
56 |
+
expect( props.onBlockFocus ).toHaveBeenCalled();
|
57 |
+
expect( props.onBlockBlur ).not.toHaveBeenCalled();
|
58 |
+
} );
|
59 |
+
|
60 |
+
test( 'trigger onBlur when isSelected changes after mounted', () => {
|
61 |
+
props.isSelected = true;
|
62 |
+
const component = mount( <HOC { ...props } /> );
|
63 |
+
expect( props.onBlockFocus ).toHaveBeenCalled();
|
64 |
+
expect( props.onBlockBlur ).not.toHaveBeenCalled();
|
65 |
+
|
66 |
+
props.onBlockBlur.mockClear();
|
67 |
+
props.onBlockFocus.mockClear();
|
68 |
+
|
69 |
+
component.setProps( { isSelected: false } );
|
70 |
+
|
71 |
+
expect( props.onBlockBlur ).toHaveBeenCalled();
|
72 |
+
expect( props.onBlockFocus ).not.toHaveBeenCalled();
|
73 |
+
} );
|
74 |
+
|
75 |
+
test( 'blue and focus on the different props changes', () => {
|
76 |
+
props.isSelected = false;
|
77 |
+
const component = mount( <HOC { ...props } /> );
|
78 |
+
expect( props.onBlockBlur ).toHaveBeenCalled();
|
79 |
+
expect( props.onBlockFocus ).not.toHaveBeenCalled();
|
80 |
+
|
81 |
+
props.onBlockBlur.mockClear();
|
82 |
+
props.onBlockFocus.mockClear();
|
83 |
+
|
84 |
+
component.setProps( { isSelected: true } );
|
85 |
+
|
86 |
+
expect( props.onBlockFocus ).toHaveBeenCalled();
|
87 |
+
expect( props.onBlockBlur ).not.toHaveBeenCalled();
|
88 |
+
|
89 |
+
props.onBlockBlur.mockClear();
|
90 |
+
props.onBlockFocus.mockClear();
|
91 |
+
|
92 |
+
component.setProps( { isSelected: false } );
|
93 |
+
|
94 |
+
expect( props.onBlockBlur ).toHaveBeenCalled();
|
95 |
+
expect( props.onBlockFocus ).not.toHaveBeenCalled();
|
96 |
+
} );
|
97 |
+
} );
|
common/src/modules/hoc/__tests__/with-store.test.js
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import renderer from 'react-test-renderer';
|
5 |
+
import React from 'react';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Internal dependencies
|
9 |
+
*/
|
10 |
+
import { withStore } from '@moderntribe/common/hoc';
|
11 |
+
|
12 |
+
jest.mock( '@moderntribe/events/data', () => ( {
|
13 |
+
getStore() {
|
14 |
+
return {};
|
15 |
+
},
|
16 |
+
} ) );
|
17 |
+
|
18 |
+
describe( 'HOC - With Store', () => {
|
19 |
+
it( 'Should add the store property', () => {
|
20 |
+
const Block = ( props ) => <div { ...props } />;
|
21 |
+
const Wrapper = withStore()( Block );
|
22 |
+
const component = renderer.create( <Wrapper /> );
|
23 |
+
expect( component.toJSON() ).toMatchSnapshot();
|
24 |
+
|
25 |
+
const instance = component.root;
|
26 |
+
expect( instance ).not.toBe( null );
|
27 |
+
const props = instance.findByType( Block ).props;
|
28 |
+
expect( props ).toHaveProperty( 'store' );
|
29 |
+
const { store } = props;
|
30 |
+
expect( store ).toHaveProperty( 'dispatch' );
|
31 |
+
expect( store ).toHaveProperty( 'getState' );
|
32 |
+
} );
|
33 |
+
} );
|
34 |
+
|
common/src/modules/hoc/index.js
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export { default as withStore } from './with-store';
|
2 |
+
export { default as withSaveData } from './with-save-data';
|
3 |
+
export { default as withForm } from './with-form';
|
4 |
+
export { default as withBlockCloser } from './with-block-closer';
|
5 |
+
export { default as withSelected } from './with-selected';
|
common/src/modules/hoc/with-block-closer.js
ADDED
@@ -0,0 +1,129 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* eslint-disable max-len */
|
2 |
+
/**
|
3 |
+
* External dependencies
|
4 |
+
*/
|
5 |
+
import React, { PureComponent } from 'react';
|
6 |
+
import PropTypes from 'prop-types';
|
7 |
+
import { noop } from 'lodash';
|
8 |
+
|
9 |
+
const ESCAPE_KEY = 27;
|
10 |
+
export const EVENT_NAMESPACE = 'tribe:click:proxy';
|
11 |
+
export const dispatch = ( e ) => {
|
12 |
+
e.target.dispatchEvent( new CustomEvent( EVENT_NAMESPACE, { bubbles: true } ) );
|
13 |
+
};
|
14 |
+
export const intercept = e => e.stopPropagation();
|
15 |
+
|
16 |
+
export default ( WrappedComponent ) => {
|
17 |
+
/**
|
18 |
+
* Prevents clicks on block or blacklisted DOM elements
|
19 |
+
* from closing the block
|
20 |
+
*
|
21 |
+
* @class WithBlockCloser
|
22 |
+
* @extends {PureComponent}
|
23 |
+
*/
|
24 |
+
class WithBlockCloser extends PureComponent {
|
25 |
+
static displayName = `WithBlockCloser( ${ WrappedComponent.displayName || WrappedComponent.name || 'Component ' }`
|
26 |
+
|
27 |
+
static propTypes = {
|
28 |
+
onClose: PropTypes.func.isRequired,
|
29 |
+
classNameClickBlacklist: PropTypes.arrayOf( PropTypes.string ).isRequired,
|
30 |
+
isOpen: PropTypes.bool.isRequired,
|
31 |
+
};
|
32 |
+
|
33 |
+
static defaultProps = {
|
34 |
+
classNameClickBlacklist: [ '.edit-post-sidebar' ],
|
35 |
+
onClose: noop,
|
36 |
+
isOpen: false,
|
37 |
+
}
|
38 |
+
|
39 |
+
nodeRef = React.createRef();
|
40 |
+
_eventNamespace = EVENT_NAMESPACE;
|
41 |
+
|
42 |
+
/**
|
43 |
+
* dispatches custom events
|
44 |
+
*
|
45 |
+
* @memberof WithBlockCloser
|
46 |
+
* @param {Event} e event
|
47 |
+
*/
|
48 |
+
_dispatchClickProxyEvent = dispatch;
|
49 |
+
|
50 |
+
// Prevent CustomEvents from propagating to document proxy listeners
|
51 |
+
_interceptClickProxyEvent = intercept;
|
52 |
+
|
53 |
+
/**
|
54 |
+
* keydown handler
|
55 |
+
*
|
56 |
+
* @memberof WithBlockCloser
|
57 |
+
* @param {Event} e event
|
58 |
+
*/
|
59 |
+
handleKeyDown = ( e ) => {
|
60 |
+
if ( e.keyCode === ESCAPE_KEY ) {
|
61 |
+
this.props.onClose();
|
62 |
+
}
|
63 |
+
}
|
64 |
+
|
65 |
+
handleClick = () => this.props.onClose()
|
66 |
+
|
67 |
+
componentDidMount() {
|
68 |
+
this.props.isOpen && this._addEventListeners();
|
69 |
+
}
|
70 |
+
|
71 |
+
componentDidUpdate( prevProps ) {
|
72 |
+
if ( prevProps.isOpen !== this.props.isOpen ) {
|
73 |
+
this.props.isOpen
|
74 |
+
? this._addEventListeners()
|
75 |
+
: this._removeEventListeners();
|
76 |
+
}
|
77 |
+
}
|
78 |
+
|
79 |
+
componentWillUnmount() {
|
80 |
+
this._removeEventListeners();
|
81 |
+
}
|
82 |
+
|
83 |
+
get blacklistedNodes() {
|
84 |
+
const classNames = this.props.classNameClickBlacklist.join( ', ' );
|
85 |
+
return Array.from( document.querySelectorAll( classNames ) );
|
86 |
+
}
|
87 |
+
|
88 |
+
get node() {
|
89 |
+
return this.nodeRef.current;
|
90 |
+
}
|
91 |
+
|
92 |
+
_addEventListeners() {
|
93 |
+
// Intercept custom events bubbled in block or blacklisted nodes
|
94 |
+
this.node.addEventListener( this._eventNamespace, this._interceptClickProxyEvent );
|
95 |
+
this.blacklistedNodes.forEach(
|
96 |
+
node => node.addEventListener( this._eventNamespace, this._interceptClickProxyEvent )
|
97 |
+
);
|
98 |
+
|
99 |
+
// Wait to receive custom events, if not intercepted, then go to click handler
|
100 |
+
document.addEventListener( this._eventNamespace, this.handleClick );
|
101 |
+
// Dispatch custom event on regular clicks
|
102 |
+
document.addEventListener( 'click', this._dispatchClickProxyEvent );
|
103 |
+
|
104 |
+
// Close on certain keypresses
|
105 |
+
document.addEventListener( 'keydown', this.handleKeyDown );
|
106 |
+
}
|
107 |
+
|
108 |
+
_removeEventListeners() {
|
109 |
+
this.node.removeEventListener( this._eventNamespace, this._interceptClickProxyEvent );
|
110 |
+
this.blacklistedNodes.forEach(
|
111 |
+
node => node.removeEventListener( this._eventNamespace, this._interceptClickProxyEvent )
|
112 |
+
);
|
113 |
+
|
114 |
+
document.removeEventListener( 'keydown', this.handleKeyDown );
|
115 |
+
document.removeEventListener( this._eventNamespace, this.handleClick );
|
116 |
+
document.removeEventListener( 'click', this._dispatchClickProxyEvent );
|
117 |
+
}
|
118 |
+
|
119 |
+
render() {
|
120 |
+
return (
|
121 |
+
<div ref={ this.nodeRef }>
|
122 |
+
<WrappedComponent { ...this.props } />
|
123 |
+
</div>
|
124 |
+
);
|
125 |
+
}
|
126 |
+
}
|
127 |
+
|
128 |
+
return WithBlockCloser;
|
129 |
+
};
|
common/src/modules/hoc/with-form.js
ADDED
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React, { Component } from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import { bindActionCreators } from 'redux';
|
7 |
+
import { connect } from 'react-redux';
|
8 |
+
import { noop } from 'lodash';
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Internal dependencies
|
12 |
+
*/
|
13 |
+
import { actions, selectors } from '@moderntribe/common/data/forms';
|
14 |
+
|
15 |
+
/**
|
16 |
+
* HOC that register a new object associated with set of fields for a form
|
17 |
+
*
|
18 |
+
* @param {function} getName Function used to set the name of the form, has a props param to generate the name
|
19 |
+
* @returns {function(*): *} Returns a function that takes a Component as argument and returns a component.
|
20 |
+
*/
|
21 |
+
export default ( getName = noop ) => ( WrappedComponent ) => {
|
22 |
+
class WithForm extends Component {
|
23 |
+
static propTypes = {
|
24 |
+
registerForm: PropTypes.func,
|
25 |
+
postType: PropTypes.string,
|
26 |
+
};
|
27 |
+
|
28 |
+
componentDidMount() {
|
29 |
+
const name = getName( this.props );
|
30 |
+
const { registerForm, postType } = this.props;
|
31 |
+
registerForm( name, postType );
|
32 |
+
}
|
33 |
+
|
34 |
+
render() {
|
35 |
+
return <WrappedComponent { ...this.props } { ...this.additionalProps() } />;
|
36 |
+
}
|
37 |
+
|
38 |
+
additionalProps() {
|
39 |
+
const {
|
40 |
+
createDraft,
|
41 |
+
sendForm,
|
42 |
+
setSubmit,
|
43 |
+
editEntry,
|
44 |
+
maybeRemoveEntry,
|
45 |
+
} = this.props;
|
46 |
+
const name = getName( this.props );
|
47 |
+
return {
|
48 |
+
createDraft: ( fieldsObject ) => createDraft( name, fieldsObject ),
|
49 |
+
editEntry: ( fieldsObject ) => editEntry( name, fieldsObject ),
|
50 |
+
sendForm: ( fieldsObject, callback ) => sendForm( name, fieldsObject, callback ),
|
51 |
+
setSubmit: () => setSubmit( name ),
|
52 |
+
maybeRemoveEntry: ( details ) => maybeRemoveEntry( name, details ),
|
53 |
+
};
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
const mapStateToProps = ( state, props ) => {
|
58 |
+
const name = getName( props );
|
59 |
+
const modifiedProps = { name };
|
60 |
+
return {
|
61 |
+
edit: selectors.getFormEdit( state, modifiedProps ),
|
62 |
+
create: selectors.getFormCreate( state, modifiedProps ),
|
63 |
+
fields: selectors.getFormFields( state, modifiedProps ),
|
64 |
+
submit: selectors.getFormSubmit( state, modifiedProps ),
|
65 |
+
};
|
66 |
+
};
|
67 |
+
|
68 |
+
const mapDispatchToProps = ( dispatch ) => bindActionCreators( actions, dispatch );
|
69 |
+
|
70 |
+
return connect( mapStateToProps, mapDispatchToProps )( WithForm );
|
71 |
+
};
|
common/src/modules/hoc/with-save-data.js
ADDED
@@ -0,0 +1,155 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React, { Component } from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import {
|
7 |
+
noop,
|
8 |
+
isEmpty,
|
9 |
+
isArray,
|
10 |
+
isObject,
|
11 |
+
keys,
|
12 |
+
} from 'lodash';
|
13 |
+
import isShallowEqual from '@wordpress/is-shallow-equal';
|
14 |
+
|
15 |
+
const blockRegister = {};
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Higher order component that updates the attributes of a component if any of the properties of the
|
19 |
+
* attributes changes.
|
20 |
+
*
|
21 |
+
* Only updates the attributes that has changed with the new updates into the properties and only
|
22 |
+
* the ones specified as attributes params otherwise will fallback to the property attributes of the
|
23 |
+
* component to extract the keys of those to do the comparision.
|
24 |
+
*
|
25 |
+
* @param {object} selectedAttributes Set of attributes to only update fallback to this.props.attributes
|
26 |
+
* @returns {function} Return a new HOC
|
27 |
+
*/
|
28 |
+
export default ( selectedAttributes = null ) => ( WrappedComponent ) => {
|
29 |
+
class WithSaveData extends Component {
|
30 |
+
static defaultProps = {
|
31 |
+
attributes: {},
|
32 |
+
setInitialState: noop,
|
33 |
+
setAttributes: noop,
|
34 |
+
name: '',
|
35 |
+
isolated: false,
|
36 |
+
onBlockCreated: noop,
|
37 |
+
onBlockRemoved: noop,
|
38 |
+
};
|
39 |
+
|
40 |
+
static propTypes = {
|
41 |
+
setAttributes: PropTypes.func,
|
42 |
+
setInitialState: PropTypes.func,
|
43 |
+
attributes: PropTypes.object,
|
44 |
+
name: PropTypes.string,
|
45 |
+
isolated: PropTypes.bool,
|
46 |
+
increaseRegister: PropTypes.func,
|
47 |
+
decreaseRegister: PropTypes.func,
|
48 |
+
onBlockCreated: PropTypes.func,
|
49 |
+
onBlockRemoved: PropTypes.func,
|
50 |
+
};
|
51 |
+
|
52 |
+
keys = [];
|
53 |
+
saving = null;
|
54 |
+
|
55 |
+
constructor( props ) {
|
56 |
+
super( props );
|
57 |
+
this.keys = this.generateKeys();
|
58 |
+
}
|
59 |
+
|
60 |
+
generateKeys() {
|
61 |
+
if ( isArray( this.attrs ) ) {
|
62 |
+
return this.attrs;
|
63 |
+
}
|
64 |
+
|
65 |
+
if ( isObject( this.attrs ) ) {
|
66 |
+
return keys( this.attrs );
|
67 |
+
}
|
68 |
+
|
69 |
+
console.warn( 'Make sure attributes is from a valid type: Array or Object' );
|
70 |
+
|
71 |
+
return [];
|
72 |
+
}
|
73 |
+
|
74 |
+
// At this point attributes has been set so no need to be set the initial state into the store here.
|
75 |
+
componentDidMount() {
|
76 |
+
const { setInitialState, attributes = {}, isolated, onBlockCreated } = this.props;
|
77 |
+
|
78 |
+
onBlockCreated( this.props );
|
79 |
+
this.registerBlock();
|
80 |
+
|
81 |
+
// Prevent to set the initial state for blocks that are copies from others
|
82 |
+
// overwrite this with the isolated property of the block to `true`
|
83 |
+
if ( this.blockCount() > 1 && ! isolated ) {
|
84 |
+
return;
|
85 |
+
}
|
86 |
+
|
87 |
+
setInitialState( {
|
88 |
+
...this.props,
|
89 |
+
get( key, defaultValue ) {
|
90 |
+
return key in attributes ? attributes[ key ] : defaultValue;
|
91 |
+
},
|
92 |
+
} );
|
93 |
+
}
|
94 |
+
|
95 |
+
componentWillUnmount() {
|
96 |
+
const { onBlockRemoved } = this.props;
|
97 |
+
this.unregisterBlock();
|
98 |
+
onBlockRemoved( this.props );
|
99 |
+
}
|
100 |
+
|
101 |
+
registerBlock() {
|
102 |
+
const { name } = this.props;
|
103 |
+
blockRegister[ name ] = name in blockRegister ? blockRegister[ name ] + 1 : 1;
|
104 |
+
}
|
105 |
+
|
106 |
+
unregisterBlock() {
|
107 |
+
const { name } = this.props;
|
108 |
+
blockRegister[ name ] -= 1;
|
109 |
+
}
|
110 |
+
|
111 |
+
blockCount() {
|
112 |
+
const { name } = this.props;
|
113 |
+
return blockRegister[ name ];
|
114 |
+
}
|
115 |
+
|
116 |
+
componentDidUpdate() {
|
117 |
+
const diff = this.calculateDiff();
|
118 |
+
|
119 |
+
if ( isShallowEqual( this.saving, diff ) ) {
|
120 |
+
return;
|
121 |
+
}
|
122 |
+
|
123 |
+
this.saving = diff;
|
124 |
+
|
125 |
+
if ( isEmpty( diff ) ) {
|
126 |
+
return;
|
127 |
+
}
|
128 |
+
|
129 |
+
this.props.setAttributes( diff );
|
130 |
+
}
|
131 |
+
|
132 |
+
calculateDiff() {
|
133 |
+
const attributes = this.attrs;
|
134 |
+
return this.keys.reduce( ( diff, key ) => {
|
135 |
+
if ( key in this.props && ! isShallowEqual( attributes[ key ], this.props[ key ] ) ) {
|
136 |
+
diff[ key ] = this.props[ key ];
|
137 |
+
}
|
138 |
+
return diff;
|
139 |
+
}, {} );
|
140 |
+
}
|
141 |
+
|
142 |
+
get attrs() {
|
143 |
+
return selectedAttributes || this.props.attributes || {};
|
144 |
+
}
|
145 |
+
|
146 |
+
render() {
|
147 |
+
return <WrappedComponent { ...this.props } />;
|
148 |
+
}
|
149 |
+
}
|
150 |
+
|
151 |
+
WithSaveData.displayName = `WithSaveData( ${ WrappedComponent.displayName || WrappedComponent.name || 'Component ' }`;
|
152 |
+
|
153 |
+
return WithSaveData;
|
154 |
+
};
|
155 |
+
|
common/src/modules/hoc/with-selected.js
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React, { Component } from 'react';
|
5 |
+
import PropTypes from 'prop-types';
|
6 |
+
import {
|
7 |
+
noop,
|
8 |
+
} from 'lodash';
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Higher order component that executes two functions:
|
12 |
+
*
|
13 |
+
* - `onBlockFocus` when the block is selected
|
14 |
+
* - `onBlockBlur` when the block losses focus after being selected
|
15 |
+
*
|
16 |
+
* @returns {function} Return a new HOC
|
17 |
+
*/
|
18 |
+
export default () => ( WrappedComponent ) => {
|
19 |
+
class WithSelected extends Component {
|
20 |
+
static defaultProps = {
|
21 |
+
isSelected: false,
|
22 |
+
onBlockFocus: noop,
|
23 |
+
onBlockBlur: noop,
|
24 |
+
};
|
25 |
+
|
26 |
+
static propTypes = {
|
27 |
+
onBlockFocus: PropTypes.func,
|
28 |
+
onBlockBlur: PropTypes.func,
|
29 |
+
isSelected: PropTypes.bool,
|
30 |
+
};
|
31 |
+
|
32 |
+
componentDidMount() {
|
33 |
+
const { isSelected, onBlockFocus, onBlockBlur } = this.props;
|
34 |
+
if ( isSelected ) {
|
35 |
+
onBlockFocus();
|
36 |
+
} else {
|
37 |
+
onBlockBlur();
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
componentDidUpdate( prevProps ) {
|
42 |
+
const { isSelected, onBlockFocus, onBlockBlur } = this.props;
|
43 |
+
|
44 |
+
if ( prevProps.isSelected === isSelected ) {
|
45 |
+
return;
|
46 |
+
}
|
47 |
+
|
48 |
+
if ( isSelected ) {
|
49 |
+
onBlockFocus();
|
50 |
+
} else {
|
51 |
+
onBlockBlur();
|
52 |
+
}
|
53 |
+
}
|
54 |
+
|
55 |
+
render() {
|
56 |
+
return <WrappedComponent { ...this.props } />;
|
57 |
+
}
|
58 |
+
}
|
59 |
+
|
60 |
+
WithSelected.displayName = `WithIsSelected( ${ WrappedComponent.displayName || WrappedComponent.name || 'Component ' }`;
|
61 |
+
|
62 |
+
return WithSelected;
|
63 |
+
};
|
64 |
+
|
common/src/modules/hoc/with-store.js
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import React from 'react';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import { store } from '@moderntribe/common/store';
|
10 |
+
|
11 |
+
const getStore = () => store;
|
12 |
+
|
13 |
+
export default ( additionalProps = {} ) => ( WrappedComponent ) => {
|
14 |
+
|
15 |
+
const WithStore = ( props ) => {
|
16 |
+
const extraProps = {
|
17 |
+
...additionalProps,
|
18 |
+
store: getStore(),
|
19 |
+
};
|
20 |
+
|
21 |
+
return <WrappedComponent { ...props } { ...extraProps } />;
|
22 |
+
};
|
23 |
+
|
24 |
+
return WithStore;
|
25 |
+
|
26 |
+
};
|
common/src/modules/icons/alert.svg
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<svg width="19" height="17" xmlns="http://www.w3.org/2000/svg"><path d="M10.632 12.074H8.388l-.391-6.33c0-.5.675-.905 1.507-.905.832 0 1.507.405 1.507.904l-.379 6.33zm-.092 2.96c-.247.206-.593.31-1.037.31-.449 0-.8-.104-1.054-.31-.254-.206-.38-.492-.38-.86 0-.371.121-.66.367-.866.244-.206.6-.308 1.067-.308.462 0 .813.103 1.05.308.239.206.358.496.358.866 0 .368-.123.654-.37.86zm8.42.614L10.344.618C10.117.313 9.81 0 9.504 0c-.307 0-.613.312-.84.619L.032 15.675c-.082.316-.06.831.72 1.222h17.494c.805-.402.804-.936.714-1.25z" fill="#D0021B" fill-rule="evenodd"/></svg>
|
common/src/modules/icons/clipboard.svg
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<svg width="16" height="20" xmlns="http://www.w3.org/2000/svg"><path d="M12 16H4v-2h8v2zm0-6H4v2h8v-2zm2-9h-2v2h2v15H2V3h2V1H2a2 2 0 0 0-2 2v15a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2zm-4 2V2a2 2 0 1 0-4 0v1a2 2 0 0 0-2 2v1h8V5a2 2 0 0 0-2-2z"/></svg>
|
common/src/modules/icons/close.svg
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M14.36 15.78L8 9.41l-6.36 6.37-1.42-1.42L6.59 8 .22 1.64 1.64.22 8 6.59 14.36.23l1.41 1.41L9.41 8l6.36 6.36z" fill="#191E23"/></svg>
|
common/src/modules/icons/cog.svg
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg"><path d="M17.867 10c0-.568-.059-1.122-.17-1.656L19.5 6.732l-1.967-3.464-2.283.786a7.813 7.813 0 0 0-2.813-1.657L11.967 0H8.033l-.472 2.396c-1.043.348-2 .913-2.81 1.657l-2.284-.785L.5 6.732l1.804 1.612a8.054 8.054 0 0 0 0 3.312L.5 13.268l1.967 3.464 2.283-.786a7.813 7.813 0 0 0 2.813 1.657L8.033 20h3.934l.472-2.396a7.83 7.83 0 0 0 2.81-1.657l2.284.786 1.967-3.464-1.804-1.613c.112-.535.171-1.09.171-1.657V10zM10 14c-2.173 0-3.934-1.79-3.934-4S7.826 6 10 6c2.173 0 3.934 1.79 3.934 4s-1.76 4-3.934 4z" fill="#191E23"/></svg>
|
common/src/modules/icons/index.js
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
export { default as TEC } from './tec.svg';
|
2 |
+
export { default as Close } from './close.svg';
|
3 |
+
export { default as Alert } from './alert.svg';
|
4 |
+
export { default as Clipboard } from './clipboard.svg';
|
5 |
+
export { default as Cog } from './cog.svg';
|
6 |
+
export { default as Info } from './info.svg';
|
7 |
+
export { default as Pencil } from './pencil.svg';
|
8 |
+
export { default as Tag } from './tag.svg';
|
9 |
+
export { default as User } from './user.svg';
|
common/src/modules/icons/info.svg
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg"><path d="M11 7H9V5h2v2zm0 2H9v6h2V9zm-1-7c-4.41 0-8 3.59-8 8s3.59 8 8 8 8-3.59 8-8-3.59-8-8-8zm0-2c5.523 0 10 4.477 10 10s-4.477 10-10 10S0 15.523 0 10 4.477 0 10 0z"/></svg>
|
common/src/modules/icons/link.svg
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg width="26" height="15" xmlns="http://www.w3.org/2000/svg">
|
2 |
+
<path
|
3 |
+
d="M12.6 7.576H9.227v1.732H12.6v3.742a.2.2 0 0 1-.198.2H1.918a.199.199 0 0 1-.198-.2V5.092c0-.111.089-.201.198-.201h10.485a.2.2 0 0 1 .198.2v2.485zm5.755-3.86l-.066.067L17.16 4.93l2.601 2.646H14.33V2.843a.797.797 0 0 0-.79-.803h-.74c-.034.003-.32.004-.856.004V.804a.797.797 0 0 0-.79-.804c-.446 0-.8.36-.8.803v1.24H3.992V.804A.797.797 0 0 0 3.202 0c-.447 0-.8.36-.8.803v1.24h-.796c-.041 0-.058-.003-.075-.003H.79c-.436 0-.79.36-.79.803V3.91c0 .055.006.108.016.16v8.978a.36.36 0 0 0-.008.082v1.067c0 .443.354.803.79.803h.74a12956.843 12956.843 0 0 1 12.01 0c.437 0 .79-.36.79-.803V13.13a.36.36 0 0 0-.008-.082v-3.74h5.43l-2.599 2.643 1.192 1.215L23 8.44l-4.645-4.725z"
|
4 |
+
fill="#009FD4"
|
5 |
+
fillRule="evenodd"
|
6 |
+
/>
|
7 |
+
</svg>
|
common/src/modules/icons/pencil.svg
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<svg width="18" height="18" xmlns="http://www.w3.org/2000/svg"><path d="M17.254 2.483L15.282.51C14.942.17 14.5 0 14.023 0c-.476 0-.918.17-1.258.51L1.543 11.767c-.034.034-.034.034-.034.068 0 0 0 .034-.034.034-.034.034-.034.034-.034.068v.034c0 .034 0 .034-.034.034L.012 17.14a.57.57 0 0 0 .136.51c.102.102.238.17.374.17.034 0 .102 0 .136-.034l5.136-1.428c.034 0 .034 0 .034-.034h.034c.034 0 .034-.034.068-.034 0 0 .034 0 .034-.034.034-.034.034-.034.068-.034L17.254 4.999c.68-.68.68-1.836 0-2.516zM2.461 16.188l-.884-.885.578-2.176 2.448 2.448-2.142.613zm3.197-1.089l-1.123-1.122-.748-.748-1.122-1.122 9.522-9.522 1.122 1.122.748.748 1.123 1.122L5.658 15.1zM16.506 4.251l-.612.612L12.9 1.87l.612-.612a.692.692 0 0 1 .51-.204c.204 0 .374.068.51.204l1.973 1.973c.272.306.272.748 0 1.02z" fill="#8D949B"/></svg>
|
common/src/modules/icons/tag.svg
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg"><path d="M18 .007h-7.087c-.53 0-1.04.21-1.414.586L.592 9.5a2 2 0 0 0 0 2.827l7.086 7.086a2 2 0 0 0 2.827 0l8.906-8.906c.376-.374.587-.883.587-1.413V2.007a2 2 0 0 0-2-2H18zM15.007 7a2 2 0 1 1-.09-3.999A2 2 0 0 1 15.007 7z" fill="#23282D"/></svg>
|
common/src/modules/icons/tec.svg
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29.99 39.98"><defs><clipPath id="a" transform="translate(-984 -154.02)"><path class="cls-1" d="M989 159.02h19.99V189H989z"/></clipPath><clipPath id="b" transform="translate(-984 -154.02)"><path class="cls-1" d="M0 0h1281v1258H0z"/></clipPath><clipPath id="c" transform="translate(-984 -154.02)"><path class="cls-1" d="M989 159h20v31h-20z"/></clipPath><clipPath id="d" transform="translate(-984 -154.02)"><path d="M1005.81 159a3.24 3.24 0 0 0-3.18 3.28v6.42a3 3 0 0 0-1.36-.32 3.1 3.1 0 0 1-4.54 0 3 3 0 0 0-1.36.32v-6.4a3.18 3.18 0 1 0-6.36 0v16.42a10 10 0 1 0 20 .1.65.65 0 0 0 0-.1V162.3a3.24 3.24 0 0 0-3.2-3.3zm-1.36 3.28a1.36 1.36 0 1 1 2.73 0v12.1a5.84 5.84 0 0 0-2.73-1.22zm-4.54 9.38a1.36 1.36 0 1 1 2.73 0v1.41h-2.74zm-4.54 0a1.36 1.36 0 1 1 2.73 0v1.41h-2.73zm3.63 15.5a8.32 8.32 0 0 1-8.17-8.44V162.3a1.36 1.36 0 1 1 2.73 0V174a6.53 6.53 0 0 0 .65 2.78 5 5 0 0 0 4.79 2.85h.33a5.59 5.59 0 0 0-1.24 3.75.91.91 0 1 0 1.82 0 3.54 3.54 0 0 1 3.63-3.75.94.94 0 0 0 0-1.88H999a3.42 3.42 0 0 1-2.55-.94 3.84 3.84 0 0 1-1-1.88h8.06a4.22 4.22 0 0 1 .91.12 3.29 3.29 0 0 1 2.64 2.69 5 5 0 0 1 .08.94 9.11 9.11 0 0 1 0 .94 8.3 8.3 0 0 1-8.13 7.51z" clip-rule="evenodd" fill="none"/></clipPath><clipPath id="e" transform="translate(-984 -154.02)"><path class="cls-1" d="M989 159h20v30h-20z"/></clipPath></defs><g data-name="Layer 2"><g data-name="Layer 1"><path d="M8.4 6.07l-2 .83-.25 19.88s1.71 3.33 1.88 3.54 3.83 2.79 3.83 2.79l4.75.46 5.42-3.21 1.5-3.83.58-6V7.77l-2.12-2-2.33 1.42-.13 9.38-2.21-1.17-2.37 1-1.8-1.42-2.71.67V6.86z" fill="#fff"/><g clip-path="url(#a)"><g clip-path="url(#b)"><g clip-path="url(#c)"><g clip-path="url(#d)"><g clip-path="url(#e)"><path fill="#020202" d="M0 0h29.99v39.98H0z"/></g></g></g></g></g></g></g></svg>
|
common/src/modules/icons/user.svg
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
<svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M8 0c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm0 16s8 0 8-2c0-2.4-3.9-5-8-5s-8 2.6-8 5c0 2 8 2 8 2z"/></svg>
|
common/src/modules/package.json
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "@moderntribe/common",
|
3 |
+
"version": "0.3.2-alpha",
|
4 |
+
"description": "Common Blocks Editor modules",
|
5 |
+
"main": "src/resources/main.js",
|
6 |
+
"scripts": {},
|
7 |
+
"keywords": [
|
8 |
+
"gutenberg",
|
9 |
+
"common"
|
10 |
+
],
|
11 |
+
"private": true,
|
12 |
+
"repository": "git+https://github.com/moderntribe/tribe-common.git",
|
13 |
+
"author": "Modern Tribe",
|
14 |
+
"license": "GPL-2.0-or-later",
|
15 |
+
"dependencies": {
|
16 |
+
}
|
17 |
+
}
|
common/src/modules/store/configure-store.js
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { createStore, applyMiddleware } from 'redux';
|
5 |
+
import { composeWithDevTools } from 'redux-devtools-extension/developmentOnly';
|
6 |
+
import { augmentStore } from '@nfen/redux-reducer-injector';
|
7 |
+
import thunk from 'redux-thunk';
|
8 |
+
import createSagaMiddleware from 'redux-saga';
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Internal dependencies
|
12 |
+
*/
|
13 |
+
import reducer from '@moderntribe/common/data';
|
14 |
+
import { wpRequest } from './middlewares';
|
15 |
+
|
16 |
+
const sagaMiddleware = createSagaMiddleware();
|
17 |
+
|
18 |
+
export default () => {
|
19 |
+
if ( window.__tribe_common_store__ ) {
|
20 |
+
return window.__tribe_common_store__;
|
21 |
+
}
|
22 |
+
|
23 |
+
const middlewares = [
|
24 |
+
thunk,
|
25 |
+
sagaMiddleware,
|
26 |
+
wpRequest,
|
27 |
+
];
|
28 |
+
|
29 |
+
const composeEnhancers = composeWithDevTools( { name: 'tribe/common' } );
|
30 |
+
|
31 |
+
const store = createStore( reducer( {} ), composeEnhancers( applyMiddleware( ...middlewares ) ) );
|
32 |
+
augmentStore( reducer, store );
|
33 |
+
store.run = sagaMiddleware.run;
|
34 |
+
window.__tribe_common_store__ = store;
|
35 |
+
|
36 |
+
return store;
|
37 |
+
};
|
common/src/modules/store/index.js
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import 'regenerator-runtime/runtime';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import configureStore from './configure-store';
|
10 |
+
import * as middlewares from './middlewares';
|
11 |
+
|
12 |
+
export const store = configureStore();
|
13 |
+
export { middlewares };
|
common/src/modules/store/middlewares/index.js
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
export { default as wpRequest } from './request';
|
2 |
+
import * as request from './request';
|
3 |
+
export { request };
|
common/src/modules/store/middlewares/request/__tests__/__snapshots__/actions.test.js.snap
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`[STORE] - Request actions WP Request action 1`] = `
|
4 |
+
Object {
|
5 |
+
"meta": Object {
|
6 |
+
"actions": Object {},
|
7 |
+
"path": "tribe_organizer/1225",
|
8 |
+
},
|
9 |
+
"type": "@@MT/COMMON/WP_REQUEST",
|
10 |
+
}
|
11 |
+
`;
|
common/src/modules/store/middlewares/request/__tests__/actions.test.js
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { actions } from '@moderntribe/common/store/middlewares/request';
|
5 |
+
|
6 |
+
describe( '[STORE] - Request actions', () => {
|
7 |
+
test( 'WP Request action', () => {
|
8 |
+
const meta = {
|
9 |
+
path: 'tribe_organizer/1225',
|
10 |
+
actions: {},
|
11 |
+
};
|
12 |
+
expect( actions.wpRequest( meta ) ).toMatchSnapshot();
|
13 |
+
} );
|
14 |
+
} );
|
common/src/modules/store/middlewares/request/__tests__/types.test.js
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { PREFIX_COMMON_STORE } from '@moderntribe/common/data/utils';
|
5 |
+
import { types } from '@moderntribe/common/store/middlewares/request';
|
6 |
+
|
7 |
+
describe( '[STORE] - Request types', () => {
|
8 |
+
it( 'Should return the types values', () => {
|
9 |
+
expect( types.WP_REQUEST ).toBe( `${ PREFIX_COMMON_STORE }/WP_REQUEST` );
|
10 |
+
} );
|
11 |
+
} );
|
common/src/modules/store/middlewares/request/__tests__/utils.test.js
ADDED
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { utils } from '@moderntribe/common/store/middlewares/request';
|
5 |
+
|
6 |
+
const wpParamsExpected = {
|
7 |
+
orderby: 'title',
|
8 |
+
status: [ 'draft', 'publish' ],
|
9 |
+
order: 'asc',
|
10 |
+
page: 1,
|
11 |
+
};
|
12 |
+
|
13 |
+
describe( 'Request utils', () => {
|
14 |
+
it( 'Should generate the WP params', () => {
|
15 |
+
expect( utils.toWpParams( {} ) ).toEqual( wpParamsExpected );
|
16 |
+
} );
|
17 |
+
|
18 |
+
it( 'Should order by relevance if has search', () => {
|
19 |
+
expect( utils.toWpParams( { search: 'tribe' } ) )
|
20 |
+
.toEqual( {
|
21 |
+
...wpParamsExpected,
|
22 |
+
search: 'tribe',
|
23 |
+
orderby: 'relevance',
|
24 |
+
} );
|
25 |
+
} );
|
26 |
+
|
27 |
+
it( 'Should update the exclude parameter', () => {
|
28 |
+
expect( utils.toWpParams( { exclude: [] } ) ).toEqual( wpParamsExpected );
|
29 |
+
expect( utils.toWpParams( { exclude: [ 1, 2 ] } ) )
|
30 |
+
.toEqual( {
|
31 |
+
...wpParamsExpected,
|
32 |
+
exclude: [ 1, 2 ],
|
33 |
+
} );
|
34 |
+
} );
|
35 |
+
|
36 |
+
it( 'Should generate a WP Query', () => {
|
37 |
+
expect( utils.toWPQuery() ).toBe( 'orderby=title&status=draft%2Cpublish&order=asc&page=1' );
|
38 |
+
expect( utils.toWPQuery( { search: 'Modern Tribe' } ) )
|
39 |
+
.toBe( 'orderby=relevance&status=draft%2Cpublish&order=asc&page=1&search=Modern%20Tribe' );
|
40 |
+
} );
|
41 |
+
|
42 |
+
it( 'Should return the total of pages', () => {
|
43 |
+
const headers = new Headers();
|
44 |
+
headers.append( 'x-wp-totalpages', 5 );
|
45 |
+
expect( headers.get( 'x-wp-totalpages' ) ).toBe( '5' );
|
46 |
+
expect( utils.getTotalPages( headers ) ).toBe( 5 );
|
47 |
+
|
48 |
+
headers.set( 'x-wp-totalpages', '5' );
|
49 |
+
expect( headers.get( 'x-wp-totalpages' ) ).toBe( '5' );
|
50 |
+
expect( utils.getTotalPages( headers ) ).toBe( 5 );
|
51 |
+
|
52 |
+
headers.set( 'x-wp-totalpages', '5.3' );
|
53 |
+
expect( headers.get( 'x-wp-totalpages' ) ).toBe( '5.3' );
|
54 |
+
expect( utils.getTotalPages( headers ) ).toBe( 5 );
|
55 |
+
|
56 |
+
headers.delete( 'x-wp-totalpages' );
|
57 |
+
headers.set( 'x-wp', 5 );
|
58 |
+
expect( utils.getTotalPages( headers ) ).toBe( 0 );
|
59 |
+
expect( utils.getTotalPages( new Headers() ) ).toBe( 0 );
|
60 |
+
} );
|
61 |
+
} );
|
common/src/modules/store/middlewares/request/__tests__/wp-request.test.js
ADDED
@@ -0,0 +1,169 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import wpRequest, { actions } from '@moderntribe/common/store/middlewares/request';
|
5 |
+
|
6 |
+
let create;
|
7 |
+
const nextMock = jest.fn();
|
8 |
+
const meta = {
|
9 |
+
path: '',
|
10 |
+
params: {},
|
11 |
+
actions: {
|
12 |
+
none: jest.fn(),
|
13 |
+
start: jest.fn(),
|
14 |
+
success: jest.fn(),
|
15 |
+
error: jest.fn(),
|
16 |
+
},
|
17 |
+
};
|
18 |
+
|
19 |
+
describe( '[STORE] - wp-request middleware', () => {
|
20 |
+
let _fetch;
|
21 |
+
beforeAll( () => {
|
22 |
+
create = () => {
|
23 |
+
const invoke = ( action ) => wpRequest()( nextMock )( action );
|
24 |
+
return { next: nextMock, invoke };
|
25 |
+
};
|
26 |
+
_fetch = global.fetch;
|
27 |
+
} );
|
28 |
+
|
29 |
+
afterEach( () => {
|
30 |
+
global.fetch = _fetch;
|
31 |
+
} );
|
32 |
+
|
33 |
+
afterEach( () => {
|
34 |
+
nextMock.mockClear();
|
35 |
+
meta.actions.start.mockClear();
|
36 |
+
meta.actions.error.mockClear();
|
37 |
+
meta.actions.none.mockClear();
|
38 |
+
meta.actions.success.mockClear();
|
39 |
+
window.wp.apiRequest = undefined;
|
40 |
+
} );
|
41 |
+
|
42 |
+
it( 'Should move through a unknown action', () => {
|
43 |
+
const { next, invoke } = create();
|
44 |
+
const action = { type: 'UNKNOWN' };
|
45 |
+
invoke( action );
|
46 |
+
|
47 |
+
expect( next ).toHaveBeenCalled();
|
48 |
+
expect( next ).toHaveBeenCalledTimes( 1 );
|
49 |
+
expect( next ).toHaveBeenCalledWith( action );
|
50 |
+
} );
|
51 |
+
|
52 |
+
it( 'Should execute the none action if the path is empty', () => {
|
53 |
+
const { next, invoke } = create();
|
54 |
+
const action = actions.wpRequest( meta );
|
55 |
+
invoke( action );
|
56 |
+
|
57 |
+
expect( next ).toHaveBeenCalled();
|
58 |
+
expect( next ).toHaveBeenCalledTimes( 1 );
|
59 |
+
expect( next ).toHaveBeenCalledWith( action );
|
60 |
+
expect( meta.actions.none ).toHaveBeenCalled();
|
61 |
+
expect( meta.actions.none ).toHaveBeenCalledTimes( 1 );
|
62 |
+
expect( meta.actions.none ).toHaveBeenLastCalledWith( meta.path );
|
63 |
+
expect( meta.actions.start ).not.toHaveBeenCalled();
|
64 |
+
expect( meta.actions.success ).not.toHaveBeenCalled();
|
65 |
+
expect( meta.actions.error ).not.toHaveBeenCalled();
|
66 |
+
} );
|
67 |
+
|
68 |
+
it( 'Should execute the correct actions on success', async () => {
|
69 |
+
const { invoke } = create();
|
70 |
+
|
71 |
+
const body = {
|
72 |
+
id: 1217,
|
73 |
+
date: '2018-05-26T23:07:05',
|
74 |
+
meta: {},
|
75 |
+
};
|
76 |
+
|
77 |
+
const headers = new Headers();
|
78 |
+
|
79 |
+
global.fetch = jest.fn().mockImplementation( () =>
|
80 |
+
Promise.resolve( {
|
81 |
+
ok: true,
|
82 |
+
status: 200,
|
83 |
+
json: () => body,
|
84 |
+
headers,
|
85 |
+
} ),
|
86 |
+
);
|
87 |
+
|
88 |
+
await invoke( actions.wpRequest( { ...meta, path: 'tribe_organizer/1217' } ) );
|
89 |
+
|
90 |
+
expect.assertions( 8 );
|
91 |
+
expect( meta.actions.none ).not.toHaveBeenCalled();
|
92 |
+
expect( meta.actions.error ).not.toHaveBeenCalled();
|
93 |
+
expect( meta.actions.start ).toHaveBeenCalledWith( 'wp/v2/tribe_organizer/1217', {} );
|
94 |
+
expect( meta.actions.start ).toHaveBeenCalled();
|
95 |
+
expect( meta.actions.start ).toHaveBeenCalledTimes( 1 );
|
96 |
+
expect( meta.actions.success ).toHaveBeenCalled();
|
97 |
+
expect( meta.actions.success )
|
98 |
+
.toHaveBeenCalledWith( { body, headers } );
|
99 |
+
expect( meta.actions.success ).toHaveBeenCalledTimes( 1 );
|
100 |
+
} );
|
101 |
+
|
102 |
+
it( 'execute success actions on 201 response code - creation code', async () => {
|
103 |
+
const { invoke } = create();
|
104 |
+
|
105 |
+
const body = {
|
106 |
+
id: 201,
|
107 |
+
date: '2018-05-26T23:07:05',
|
108 |
+
meta: {
|
109 |
+
title: 'Creating a post....'
|
110 |
+
},
|
111 |
+
};
|
112 |
+
|
113 |
+
const headers = new Headers();
|
114 |
+
|
115 |
+
global.fetch = jest.fn().mockImplementation( () =>
|
116 |
+
Promise.resolve( {
|
117 |
+
ok: true,
|
118 |
+
status: 201,
|
119 |
+
json: () => body,
|
120 |
+
headers,
|
121 |
+
} ),
|
122 |
+
);
|
123 |
+
|
124 |
+
await invoke( actions.wpRequest( { ...meta, path: 'tribe_organizer/1217' } ) );
|
125 |
+
|
126 |
+
expect.assertions( 8 );
|
127 |
+
expect( meta.actions.none ).not.toHaveBeenCalled();
|
128 |
+
expect( meta.actions.error ).not.toHaveBeenCalled();
|
129 |
+
expect( meta.actions.start ).toHaveBeenCalledWith( 'wp/v2/tribe_organizer/1217', {} );
|
130 |
+
expect( meta.actions.start ).toHaveBeenCalled();
|
131 |
+
expect( meta.actions.start ).toHaveBeenCalledTimes( 1 );
|
132 |
+
expect( meta.actions.success ).toHaveBeenCalled();
|
133 |
+
expect( meta.actions.success ).toHaveBeenCalledWith( { body, headers } );
|
134 |
+
expect( meta.actions.success ).toHaveBeenCalledTimes( 1 );
|
135 |
+
} );
|
136 |
+
|
137 |
+
it( 'Should reject on 404 status code', async () => {
|
138 |
+
const { invoke } = create();
|
139 |
+
|
140 |
+
global.fetch = jest.fn().mockImplementation( () => Promise.resolve( { status: 404 } ) );
|
141 |
+
|
142 |
+
const error = await invoke( actions.wpRequest( { ...meta, path: 'tribe_organizer/1217' } ) );
|
143 |
+
expect.assertions( 6 );
|
144 |
+
expect( meta.actions.none ).not.toHaveBeenCalled();
|
145 |
+
expect( meta.actions.success ).not.toHaveBeenCalled();
|
146 |
+
expect( meta.actions.start ).toHaveBeenCalled();
|
147 |
+
expect( meta.actions.start ).toHaveBeenCalledWith( 'wp/v2/tribe_organizer/1217', {} );
|
148 |
+
expect( meta.actions.error ).toHaveBeenCalled();
|
149 |
+
expect( meta.actions.error ).toHaveBeenCalledWith( error );
|
150 |
+
} );
|
151 |
+
|
152 |
+
it( 'Should execute the correct actions on failure', async () => {
|
153 |
+
const { invoke } = create();
|
154 |
+
|
155 |
+
global.fetch = jest.fn().mockImplementation( () => Promise.reject( 'Wrong path' ) );
|
156 |
+
|
157 |
+
const error = await invoke( actions.wpRequest( {
|
158 |
+
...meta,
|
159 |
+
path: 'tribe_organizer/1217//////',
|
160 |
+
} ) );
|
161 |
+
expect.assertions( 6 );
|
162 |
+
expect( meta.actions.none ).not.toHaveBeenCalled();
|
163 |
+
expect( meta.actions.success ).not.toHaveBeenCalled();
|
164 |
+
expect( meta.actions.start ).toHaveBeenCalled();
|
165 |
+
expect( meta.actions.start ).toHaveBeenCalledWith( 'wp/v2/tribe_organizer/1217//////', {} );
|
166 |
+
expect( meta.actions.error ).toHaveBeenCalled();
|
167 |
+
expect( meta.actions.error ).toHaveBeenCalledWith( error );
|
168 |
+
} );
|
169 |
+
} );
|
common/src/modules/store/middlewares/request/actions.js
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import * as types from './types';
|
5 |
+
|
6 |
+
export const wpRequest = ( meta ) => ( {
|
7 |
+
type: types.WP_REQUEST,
|
8 |
+
meta,
|
9 |
+
} );
|
common/src/modules/store/middlewares/request/index.js
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import * as types from './types';
|
5 |
+
import * as actions from './actions';
|
6 |
+
import * as utils from './utils';
|
7 |
+
|
8 |
+
export { default } from './wp-request';
|
9 |
+
export { types, actions, utils };
|
common/src/modules/store/middlewares/request/types.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { PREFIX_COMMON_STORE } from '@moderntribe/common/data/utils';
|
5 |
+
|
6 |
+
export const WP_REQUEST = `${ PREFIX_COMMON_STORE }/WP_REQUEST`;
|
common/src/modules/store/middlewares/request/utils.js
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { isEmpty, isUndefined } from 'lodash';
|
5 |
+
import { stringify } from 'querystringify';
|
6 |
+
|
7 |
+
export const toWpParams = ( args = {} ) => {
|
8 |
+
const params = {
|
9 |
+
orderby: 'title',
|
10 |
+
status: [ 'draft', 'publish' ],
|
11 |
+
order: 'asc',
|
12 |
+
page: 1,
|
13 |
+
...args,
|
14 |
+
};
|
15 |
+
|
16 |
+
if ( ! isUndefined( params.search ) && ! isEmpty( params.search ) ) {
|
17 |
+
params.orderby = 'relevance';
|
18 |
+
}
|
19 |
+
|
20 |
+
if ( isEmpty( params.exclude ) ) {
|
21 |
+
delete params.exclude;
|
22 |
+
}
|
23 |
+
|
24 |
+
return params;
|
25 |
+
};
|
26 |
+
|
27 |
+
export const toWPQuery = ( args = {} ) => stringify( toWpParams( args ) );
|
28 |
+
|
29 |
+
export const getTotalPages = ( headers ) => {
|
30 |
+
const totalPages = parseInt( headers.get( 'x-wp-totalpages' ), 10 );
|
31 |
+
return isNaN( totalPages ) ? 0 : totalPages;
|
32 |
+
};
|
common/src/modules/store/middlewares/request/wp-request.js
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { noop, get, inRange } from 'lodash';
|
5 |
+
import 'whatwg-fetch';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Internal dependencies
|
9 |
+
*/
|
10 |
+
import { rest } from '@moderntribe/common/utils/globals';
|
11 |
+
import { types } from '@moderntribe/common/store/middlewares/request';
|
12 |
+
|
13 |
+
export default () => ( next ) => async ( action ) => {
|
14 |
+
if ( action.type !== types.WP_REQUEST ) {
|
15 |
+
return next( action );
|
16 |
+
}
|
17 |
+
|
18 |
+
const { meta = {} } = action;
|
19 |
+
|
20 |
+
const {
|
21 |
+
path = '',
|
22 |
+
params = {},
|
23 |
+
} = meta;
|
24 |
+
|
25 |
+
next( action );
|
26 |
+
|
27 |
+
const { url = '', nonce = {} } = rest();
|
28 |
+
const wpRESTNonce = nonce.wp_rest || '';
|
29 |
+
const namespaces = rest.namespaces || {};
|
30 |
+
const core = namespaces.core || 'wp/v2';
|
31 |
+
const BASE = `${ url }${ core }`;
|
32 |
+
|
33 |
+
const actions = {
|
34 |
+
start: noop,
|
35 |
+
success: noop,
|
36 |
+
error: noop,
|
37 |
+
none: noop,
|
38 |
+
...get( meta, 'actions', {} ),
|
39 |
+
};
|
40 |
+
|
41 |
+
if ( path === '' ) {
|
42 |
+
actions.none( path );
|
43 |
+
return;
|
44 |
+
}
|
45 |
+
|
46 |
+
const endpoint = `${ BASE }/${ path }`;
|
47 |
+
|
48 |
+
actions.start( endpoint, params );
|
49 |
+
|
50 |
+
const headers = {
|
51 |
+
'Accept': 'application/json',
|
52 |
+
'Content-Type': 'application/json',
|
53 |
+
...get( params, 'headers', {} ),
|
54 |
+
'X-WP-Nonce': wpRESTNonce,
|
55 |
+
};
|
56 |
+
|
57 |
+
try {
|
58 |
+
const response = await fetch( endpoint, {
|
59 |
+
...params,
|
60 |
+
credentials: 'include',
|
61 |
+
headers,
|
62 |
+
} );
|
63 |
+
|
64 |
+
const { status } = response;
|
65 |
+
// inRange includes 200 but excludes 300 from the range so it's from 200 up to 299
|
66 |
+
if ( ! inRange( status, 200, 300 ) ) {
|
67 |
+
throw response;
|
68 |
+
}
|
69 |
+
const body = await response.json();
|
70 |
+
actions.success( { body, headers: response.headers } );
|
71 |
+
return [ response, body ];
|
72 |
+
} catch ( error ) {
|
73 |
+
actions.error( error );
|
74 |
+
return error;
|
75 |
+
}
|
76 |
+
};
|
common/src/modules/utils/__tests__/__snapshots__/globals.test.js.snap
ADDED
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Tests for globals.js Should match the default value for the globals values 1`] = `
|
4 |
+
Object {
|
5 |
+
"common": Object {
|
6 |
+
"countries": Object {},
|
7 |
+
"rest": Object {
|
8 |
+
"namespaces": Object {
|
9 |
+
"core": "wp/v2",
|
10 |
+
},
|
11 |
+
"nonce": Object {
|
12 |
+
"add_ticket_nonce": "0878f40fb2",
|
13 |
+
"wp_rest": "cedcd6967b",
|
14 |
+
},
|
15 |
+
"url": "http://gutenberg.local/wp-json/",
|
16 |
+
},
|
17 |
+
"settings": Object {},
|
18 |
+
"usStates": Object {},
|
19 |
+
},
|
20 |
+
"tec": Object {
|
21 |
+
"googleMap": Object {},
|
22 |
+
},
|
23 |
+
"tickets": Object {
|
24 |
+
"default_currency": "$",
|
25 |
+
"default_provider": "Tribe__Tickets_Plus__Commerce__WooCommerce__Main",
|
26 |
+
"providers": Array [
|
27 |
+
Object {
|
28 |
+
"class": "Tribe__Tickets_Plus__Commerce__WooCommerce__Main",
|
29 |
+
"currency": "$",
|
30 |
+
"currency_position": "prefix",
|
31 |
+
"name": "WooCommerce",
|
32 |
+
},
|
33 |
+
],
|
34 |
+
},
|
35 |
+
}
|
36 |
+
`;
|
37 |
+
|
38 |
+
exports[`Tests for globals.js Should match the default value for the globals values 2`] = `
|
39 |
+
Object {
|
40 |
+
"common": Object {
|
41 |
+
"countries": Object {},
|
42 |
+
"rest": Object {
|
43 |
+
"namespaces": Object {
|
44 |
+
"core": "wp/v2",
|
45 |
+
},
|
46 |
+
"nonce": Object {
|
47 |
+
"add_ticket_nonce": "0878f40fb2",
|
48 |
+
"wp_rest": "cedcd6967b",
|
49 |
+
},
|
50 |
+
"url": "http://gutenberg.local/wp-json/",
|
51 |
+
},
|
52 |
+
"settings": Object {},
|
53 |
+
"usStates": Object {},
|
54 |
+
},
|
55 |
+
"tec": Object {
|
56 |
+
"googleMap": Object {},
|
57 |
+
},
|
58 |
+
"tickets": Object {
|
59 |
+
"default_currency": "$",
|
60 |
+
"default_provider": "Tribe__Tickets_Plus__Commerce__WooCommerce__Main",
|
61 |
+
"providers": Array [
|
62 |
+
Object {
|
63 |
+
"class": "Tribe__Tickets_Plus__Commerce__WooCommerce__Main",
|
64 |
+
"currency": "$",
|
65 |
+
"currency_position": "prefix",
|
66 |
+
"name": "WooCommerce",
|
67 |
+
},
|
68 |
+
],
|
69 |
+
},
|
70 |
+
}
|
71 |
+
`;
|
72 |
+
|
73 |
+
exports[`Tests for globals.js get default value 1`] = `Array []`;
|
74 |
+
|
75 |
+
exports[`Tests for globals.js rest value 1`] = `
|
76 |
+
Object {
|
77 |
+
"namespaces": Object {
|
78 |
+
"core": "wp/v2",
|
79 |
+
},
|
80 |
+
"nonce": Object {
|
81 |
+
"add_ticket_nonce": "0878f40fb2",
|
82 |
+
"wp_rest": "cedcd6967b",
|
83 |
+
},
|
84 |
+
"url": "http://gutenberg.local/wp-json/",
|
85 |
+
}
|
86 |
+
`;
|
87 |
+
|
88 |
+
exports[`Tests for globals.js rest value 2`] = `
|
89 |
+
Object {
|
90 |
+
"add_ticket_nonce": "0878f40fb2",
|
91 |
+
"wp_rest": "cedcd6967b",
|
92 |
+
}
|
93 |
+
`;
|
common/src/modules/utils/__tests__/__snapshots__/time.test.js.snap
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
2 |
+
|
3 |
+
exports[`Tests for time.js fromMilliseconds() test 1`] = `"Argument \`ms\` provided to \`fromMilliseconds\` is not a number or is NaN."`;
|
4 |
+
|
5 |
+
exports[`Tests for time.js fromMilliseconds() test 2`] = `"Argument \`ms\` provided to \`fromMilliseconds\` is not a number or is NaN."`;
|
6 |
+
|
7 |
+
exports[`Tests for time.js fromMilliseconds() test 3`] = `"Argument \`format\` provided to \`formatTime\` is not a recognized format."`;
|
8 |
+
|
9 |
+
exports[`Tests for time.js fromSeconds() test 1`] = `"Argument \`s\` provided to \`fromSeconds\` is not a number or is NaN."`;
|
10 |
+
|
11 |
+
exports[`Tests for time.js fromSeconds() test 2`] = `"Argument \`s\` provided to \`fromSeconds\` is not a number or is NaN."`;
|
12 |
+
|
13 |
+
exports[`Tests for time.js fromSeconds() test 3`] = `"Argument \`format\` provided to \`formatTime\` is not a recognized format."`;
|
14 |
+
|
15 |
+
exports[`Tests for time.js toMilliseconds() test 1`] = `"Argument \`time\` provided to \`toMilliseconds\` is not a recognized format."`;
|
16 |
+
|
17 |
+
exports[`Tests for time.js toMilliseconds() test 2`] = `"Argument \`time\` provided to \`toMilliseconds\` is not a recognized format."`;
|
18 |
+
|
19 |
+
exports[`Tests for time.js toMilliseconds() test 3`] = `"Argument \`time\` provided to \`toMilliseconds\` is not a recognized format."`;
|
20 |
+
|
21 |
+
exports[`Tests for time.js toMilliseconds() test 4`] = `"Argument \`time\` provided to \`toMilliseconds\` contains minutes or seconds greater than 59."`;
|
22 |
+
|
23 |
+
exports[`Tests for time.js toMilliseconds() test 5`] = `"Argument \`format\` provided to \`toMilliseconds\` is not a recognized format."`;
|
24 |
+
|
25 |
+
exports[`Tests for time.js toSeconds() test 1`] = `"Argument \`time\` provided to \`toMilliseconds\` is not a recognized format."`;
|
26 |
+
|
27 |
+
exports[`Tests for time.js toSeconds() test 2`] = `"Argument \`time\` provided to \`toMilliseconds\` is not a recognized format."`;
|
28 |
+
|
29 |
+
exports[`Tests for time.js toSeconds() test 3`] = `"Argument \`time\` provided to \`toMilliseconds\` is not a recognized format."`;
|
30 |
+
|
31 |
+
exports[`Tests for time.js toSeconds() test 4`] = `"Argument \`time\` provided to \`toMilliseconds\` contains minutes or seconds greater than 59."`;
|
32 |
+
|
33 |
+
exports[`Tests for time.js toSeconds() test 5`] = `"Argument \`format\` provided to \`toMilliseconds\` is not a recognized format."`;
|
common/src/modules/utils/__tests__/date.test.js
ADDED
@@ -0,0 +1,189 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { date, moment as momentUtil } from '@moderntribe/common/utils';
|
5 |
+
import moment from 'moment';
|
6 |
+
|
7 |
+
const {
|
8 |
+
FORMATS,
|
9 |
+
TODAY,
|
10 |
+
timezones,
|
11 |
+
timezonesAsSelectData,
|
12 |
+
toNaturalLanguage,
|
13 |
+
rangeToNaturalLanguage,
|
14 |
+
labelToDate,
|
15 |
+
} = date;
|
16 |
+
|
17 |
+
jest.mock( '@moderntribe/common/utils/timezone', () => ( {
|
18 |
+
getItems: () => [
|
19 |
+
{
|
20 |
+
options: [
|
21 |
+
{
|
22 |
+
key: 'America/Argentina/Buenos_Aires',
|
23 |
+
text: 'Argentina - Buenos Aires',
|
24 |
+
},
|
25 |
+
],
|
26 |
+
},
|
27 |
+
{
|
28 |
+
options: [
|
29 |
+
{
|
30 |
+
key: 'America/Argentina/Catamarca',
|
31 |
+
text: 'Argentina - Catamarca',
|
32 |
+
},
|
33 |
+
],
|
34 |
+
},
|
35 |
+
],
|
36 |
+
} ) );
|
37 |
+
|
38 |
+
afterAll( () => {
|
39 |
+
jest.unmock( '@moderntribe/common/utils/timezone' );
|
40 |
+
} );
|
41 |
+
|
42 |
+
describe( 'Tests for date.js', () => {
|
43 |
+
test( 'formats', () => {
|
44 |
+
const draft = {
|
45 |
+
TIME: 'HH:mm:ss',
|
46 |
+
DATE_TIME: 'YYYY-MM-DD HH:mm:ss',
|
47 |
+
WP: {
|
48 |
+
time: 'g:i a',
|
49 |
+
time24Hr: 'H:i',
|
50 |
+
date: 'F j, Y',
|
51 |
+
datetime: 'F j, Y g:i a',
|
52 |
+
dateNoYear: 'F j',
|
53 |
+
},
|
54 |
+
DATABASE: {
|
55 |
+
date: 'Y-m-d',
|
56 |
+
datetime: 'Y-m-d H:i:s',
|
57 |
+
time: 'H:i:s',
|
58 |
+
},
|
59 |
+
TIMEZONE: {
|
60 |
+
string: 'UTC',
|
61 |
+
},
|
62 |
+
};
|
63 |
+
expect( FORMATS ).toEqual( draft );
|
64 |
+
} );
|
65 |
+
|
66 |
+
test( 'today', () => {
|
67 |
+
const now = new Date();
|
68 |
+
expect( TODAY ).toBeInstanceOf( Date );
|
69 |
+
expect( TODAY ).hasOwnProperty( 'getDay' );
|
70 |
+
expect( TODAY.getDay() ).toEqual( now.getDay() );
|
71 |
+
} );
|
72 |
+
|
73 |
+
test( 'timezones', () => {
|
74 |
+
const expected = [
|
75 |
+
{
|
76 |
+
key: 'America/Argentina/Buenos_Aires',
|
77 |
+
text: 'Argentina - Buenos Aires',
|
78 |
+
},
|
79 |
+
{
|
80 |
+
key: 'America/Argentina/Catamarca',
|
81 |
+
text: 'Argentina - Catamarca',
|
82 |
+
},
|
83 |
+
];
|
84 |
+
expect( timezones() ).toEqual( expected );
|
85 |
+
} );
|
86 |
+
|
87 |
+
test( 'timezonesAsSelectData', () => {
|
88 |
+
const expected = [
|
89 |
+
{
|
90 |
+
value: 'America/Argentina/Buenos_Aires',
|
91 |
+
label: 'Argentina - Buenos Aires',
|
92 |
+
},
|
93 |
+
{
|
94 |
+
value: 'America/Argentina/Catamarca',
|
95 |
+
label: 'Argentina - Catamarca',
|
96 |
+
},
|
97 |
+
];
|
98 |
+
expect( timezonesAsSelectData() ).toEqual( expected );
|
99 |
+
} );
|
100 |
+
|
101 |
+
describe( 'toNaturalLanguage', () => {
|
102 |
+
it( 'Should return empty string when non parsed', () => {
|
103 |
+
const defaultDetail = { month: '', day: '', year: '', time: '' };
|
104 |
+
expect( toNaturalLanguage( {} ) ).toEqual( { moment: null, text: '', detail: defaultDetail, isValid: false } );
|
105 |
+
expect( toNaturalLanguage( { date: undefined } ) ).toEqual( {
|
106 |
+
moment: undefined,
|
107 |
+
text: '',
|
108 |
+
detail: defaultDetail,
|
109 |
+
isValid: false
|
110 |
+
} );
|
111 |
+
expect( toNaturalLanguage( { date: '' } ) ).toEqual( {
|
112 |
+
moment: '',
|
113 |
+
text: '',
|
114 |
+
detail: defaultDetail,
|
115 |
+
isValid: false
|
116 |
+
} );
|
117 |
+
} );
|
118 |
+
|
119 |
+
it( 'Should return the parsed date', () => {
|
120 |
+
expect( toNaturalLanguage( { date: '2018-05-04 17:00:00' } ) )
|
121 |
+
.toEqual( {
|
122 |
+
moment: momentUtil.toMoment( '2018-05-04 17:00:00' ),
|
123 |
+
text: 'May 4 2018 5:00 pm',
|
124 |
+
detail: {
|
125 |
+
month: 'May',
|
126 |
+
day: '4',
|
127 |
+
year: '2018',
|
128 |
+
time: '5:00 pm',
|
129 |
+
},
|
130 |
+
isValid: true,
|
131 |
+
} );
|
132 |
+
expect( toNaturalLanguage( { date: '2019-12-24 12:00:00' } ) )
|
133 |
+
.toEqual( {
|
134 |
+
moment: momentUtil.toMoment( '2019-12-24 12:00:00' ),
|
135 |
+
text: 'December 24 2019 12:00 pm',
|
136 |
+
detail: {
|
137 |
+
month: 'December',
|
138 |
+
day: '24',
|
139 |
+
year: '2019',
|
140 |
+
time: '12:00 pm',
|
141 |
+
},
|
142 |
+
isValid: true,
|
143 |
+
} );
|
144 |
+
} );
|
145 |
+
} );
|
146 |
+
|
147 |
+
describe( 'rangeToNaturalLanguage', () => {
|
148 |
+
it( 'Should return empty string when range is invalid', () => {
|
149 |
+
expect( rangeToNaturalLanguage( null, null ) ).toBe( '' );
|
150 |
+
expect( rangeToNaturalLanguage( undefined, undefined ) ).toBe( '' );
|
151 |
+
expect( rangeToNaturalLanguage( '', '' ) ).toBe( '' );
|
152 |
+
} );
|
153 |
+
|
154 |
+
it( 'Should return only the start date', () => {
|
155 |
+
expect( rangeToNaturalLanguage( '2019-12-24 12:00:00' ) )
|
156 |
+
.toBe( 'December 24 2019 at 12:00 pm' );
|
157 |
+
expect( rangeToNaturalLanguage( '2019-12-24 12:00:00', '' ) )
|
158 |
+
.toBe( 'December 24 2019 at 12:00 pm' );
|
159 |
+
} );
|
160 |
+
|
161 |
+
it( 'Should return the range with time on same day', () => {
|
162 |
+
expect( rangeToNaturalLanguage( '2019-12-24 12:00:00', '2019-12-24 17:00:00' ) )
|
163 |
+
.toBe( 'December 24 2019 at 12:00 pm - 5:00 pm' );
|
164 |
+
} );
|
165 |
+
|
166 |
+
it( 'Should return the range without year on same year', () => {
|
167 |
+
expect( rangeToNaturalLanguage( '2019-12-24 12:00:00', '2019-12-29 17:00:00' ) )
|
168 |
+
.toBe( 'December 24 2019 at 12:00 pm - December 29 at 5:00 pm' );
|
169 |
+
} );
|
170 |
+
|
171 |
+
it( 'Should return the range on different years', () => {
|
172 |
+
expect( rangeToNaturalLanguage( '2019-12-24 12:00:00', '2020-12-24 17:00:00' ) )
|
173 |
+
.toBe( 'December 24 2019 at 12:00 pm - December 24 2020 at 5:00 pm' );
|
174 |
+
} );
|
175 |
+
} );
|
176 |
+
|
177 |
+
describe( 'labelToDate - be aware chrono module is being mocked to avoid parsing', () => {
|
178 |
+
test( 'Default value when date is invalid', () => {
|
179 |
+
expect( labelToDate() ).toEqual( { start: null, end: null } );
|
180 |
+
} );
|
181 |
+
|
182 |
+
test( 'Valid dates', () => {
|
183 |
+
const momentDate = moment( '12-25-1995', 'MM-DD-YYYY' );
|
184 |
+
expect( labelToDate( momentDate ) )
|
185 |
+
.toEqual( { start: momentUtil.toDateTime( momentDate ), end: momentUtil.toDateTime( momentDate ) } );
|
186 |
+
} );
|
187 |
+
} );
|
188 |
+
|
189 |
+
} );
|
common/src/modules/utils/__tests__/dom.test.js
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import {
|
5 |
+
hasClass,
|
6 |
+
isRootNode,
|
7 |
+
searchParent,
|
8 |
+
} from '@moderntribe/common/utils/dom';
|
9 |
+
|
10 |
+
describe( 'Tests for dom.js', () => {
|
11 |
+
beforeAll( () => {
|
12 |
+
window.document.body.classList.add( 'one', 'two' );
|
13 |
+
} );
|
14 |
+
|
15 |
+
afterAll( () => {
|
16 |
+
window.document.body.classList.remove( 'one', 'two' );
|
17 |
+
} );
|
18 |
+
|
19 |
+
describe( 'hasClass dom utility', () => {
|
20 |
+
it( 'Should return false when the dom element does not have any class', () => {
|
21 |
+
expect( hasClass( window.document.body, [] ) ).toBe( false );
|
22 |
+
expect( hasClass( window.document.body, [ 'five', 'seven' ] ) ).toBe( false );
|
23 |
+
expect( hasClass( window.document.body, [ 'eight' ] ) ).toBe( false );
|
24 |
+
} );
|
25 |
+
|
26 |
+
it( 'Should return true whe the dom element has any of the classes', () => {
|
27 |
+
expect( hasClass( window.document.body, [ 'one', 'two' ] ) ).toBe( true );
|
28 |
+
expect( hasClass( window.document.body, [ 'two', 'one' ] ) ).toBe( true );
|
29 |
+
expect( hasClass( window.document.body, [ 'four', 'two' ] ) ).toBe( true );
|
30 |
+
expect( hasClass( window.document.body, [ 'one', 'five' ] ) ).toBe( true );
|
31 |
+
expect( hasClass( window.document.body, [ 'nostyle', 'six', 'seven', 'one' ] ) ).toBe( true );
|
32 |
+
} );
|
33 |
+
} );
|
34 |
+
|
35 |
+
test( 'Test for searchParent', () => {
|
36 |
+
expect( searchParent( null ) ).toBeFalsy();
|
37 |
+
const treeWithNode = {
|
38 |
+
parentNode: {
|
39 |
+
value: 10,
|
40 |
+
parentNode: {
|
41 |
+
value: 20,
|
42 |
+
},
|
43 |
+
},
|
44 |
+
};
|
45 |
+
|
46 |
+
const callback = jest.fn( ( node ) => node.value === 20 );
|
47 |
+
const result = searchParent( treeWithNode, callback );
|
48 |
+
expect( callback ).toBeCalled();
|
49 |
+
expect( callback ).toBeCalledWith( { value: 20 } );
|
50 |
+
expect( result ).toBeTruthy();
|
51 |
+
|
52 |
+
const treeWithoutNode = {
|
53 |
+
parentNode: {
|
54 |
+
parentNode: {
|
55 |
+
parentNode: {
|
56 |
+
top: {
|
57 |
+
document: 'global',
|
58 |
+
},
|
59 |
+
},
|
60 |
+
},
|
61 |
+
},
|
62 |
+
};
|
63 |
+
|
64 |
+
expect( searchParent( treeWithoutNode ) ).toBeFalsy();
|
65 |
+
} );
|
66 |
+
|
67 |
+
test( 'Test for isRootNode', () => {
|
68 |
+
expect( isRootNode( null ) ).toBeFalsy();
|
69 |
+
expect( isRootNode( 'text' ) ).toBeFalsy();
|
70 |
+
expect( isRootNode( window.document.body ) ).toBeFalsy();
|
71 |
+
expect( isRootNode( window.document ) ).toBeTruthy();
|
72 |
+
} );
|
73 |
+
} );
|
common/src/modules/utils/__tests__/globals.test.js
ADDED
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import {
|
5 |
+
google,
|
6 |
+
mapsAPI,
|
7 |
+
settings,
|
8 |
+
list,
|
9 |
+
get,
|
10 |
+
config,
|
11 |
+
rest,
|
12 |
+
restNonce,
|
13 |
+
} from '@moderntribe/common/utils/globals';
|
14 |
+
|
15 |
+
describe( 'Tests for globals.js', () => {
|
16 |
+
|
17 |
+
beforeAll( () => {
|
18 |
+
window.tribe_editor_config = {
|
19 |
+
common: {
|
20 |
+
countries: {},
|
21 |
+
usStates: {},
|
22 |
+
settings: {},
|
23 |
+
rest: {
|
24 |
+
namespaces: {
|
25 |
+
core: 'wp/v2',
|
26 |
+
},
|
27 |
+
nonce: {
|
28 |
+
wp_rest: 'cedcd6967b',
|
29 |
+
add_ticket_nonce: '0878f40fb2',
|
30 |
+
},
|
31 |
+
url: 'http://gutenberg.local/wp-json/',
|
32 |
+
},
|
33 |
+
},
|
34 |
+
tec: {
|
35 |
+
googleMap: {},
|
36 |
+
},
|
37 |
+
tickets: {
|
38 |
+
providers: [ {
|
39 |
+
class: 'Tribe__Tickets_Plus__Commerce__WooCommerce__Main',
|
40 |
+
currency: '$',
|
41 |
+
currency_position: 'prefix',
|
42 |
+
name: 'WooCommerce',
|
43 |
+
} ],
|
44 |
+
default_provider: 'Tribe__Tickets_Plus__Commerce__WooCommerce__Main',
|
45 |
+
default_currency: '$',
|
46 |
+
},
|
47 |
+
};
|
48 |
+
} );
|
49 |
+
|
50 |
+
test( 'Should match the default value for the globals values', () => {
|
51 |
+
expect( get( 'random' ) ).toBe( undefined );
|
52 |
+
expect( get( 'google' ) ).toBe( undefined );
|
53 |
+
expect( google() ).toBe( undefined );
|
54 |
+
expect( get( 'tribe_editor_config' ) ).toMatchSnapshot();
|
55 |
+
expect( settings() ).toEqual( {} );
|
56 |
+
expect( mapsAPI() ).toEqual( {} );
|
57 |
+
expect( list() ).toEqual( {
|
58 |
+
countries: {},
|
59 |
+
us_states: {},
|
60 |
+
} );
|
61 |
+
expect( config() ).toMatchSnapshot();
|
62 |
+
} );
|
63 |
+
|
64 |
+
test( 'get default value', () => {
|
65 |
+
expect( get( 'UNKNOWN', 10 ) ).toBe( 10 );
|
66 |
+
expect( get( 'tribe_js_config', [] ) ).toMatchSnapshot();
|
67 |
+
} );
|
68 |
+
|
69 |
+
test( 'rest value', () => {
|
70 |
+
expect( rest() ).toMatchSnapshot();
|
71 |
+
expect( restNonce() ).toMatchSnapshot();
|
72 |
+
} );
|
73 |
+
|
74 |
+
afterAll( () => {
|
75 |
+
delete window.tribe_editor_config;
|
76 |
+
} );
|
77 |
+
} );
|
78 |
+
|
79 |
+
describe( 'Test default values on globals', () => {
|
80 |
+
test( 'rest default values', () => {
|
81 |
+
expect( rest() ).toEqual( {} );
|
82 |
+
expect( restNonce() ).toEqual( {} );
|
83 |
+
} );
|
84 |
+
} );
|
common/src/modules/utils/__tests__/input.test.js
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { sendValue } from '@moderntribe/common/utils/input';
|
5 |
+
|
6 |
+
describe( 'Tests for input.js', () => {
|
7 |
+
const event = {
|
8 |
+
target: {
|
9 |
+
value: 'Sample',
|
10 |
+
},
|
11 |
+
};
|
12 |
+
|
13 |
+
test( 'Callback being executed', () => {
|
14 |
+
const mockCallback = jest.fn();
|
15 |
+
sendValue( mockCallback )( event );
|
16 |
+
expect( mockCallback ).toHaveBeenCalled();
|
17 |
+
expect( mockCallback ).toHaveBeenCalledTimes( 1 );
|
18 |
+
expect( mockCallback ).toHaveBeenCalledWith( 'Sample' );
|
19 |
+
} );
|
20 |
+
} );
|
common/src/modules/utils/__tests__/moment.test.js
ADDED
@@ -0,0 +1,328 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import moment from 'moment/moment';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import {
|
10 |
+
date,
|
11 |
+
moment as momentUtil,
|
12 |
+
time,
|
13 |
+
} from '@moderntribe/common/utils';
|
14 |
+
|
15 |
+
const FORMAT = 'MM-DD-YYYY HH:mm:ss';
|
16 |
+
|
17 |
+
describe( 'Tests for moment.js', () => {
|
18 |
+
let console;
|
19 |
+
beforeAll( () => {
|
20 |
+
console = window.console;
|
21 |
+
window.console = {
|
22 |
+
...console,
|
23 |
+
warn: jest.fn(),
|
24 |
+
};
|
25 |
+
} );
|
26 |
+
|
27 |
+
afterAll( () => {
|
28 |
+
window.console = console;
|
29 |
+
} );
|
30 |
+
|
31 |
+
test( 'roundTime', () => {
|
32 |
+
const test1 = momentUtil.roundTime(
|
33 |
+
moment( '05-09-2018 12:26:02', FORMAT ),
|
34 |
+
);
|
35 |
+
expect( test1 ).toBeInstanceOf( moment );
|
36 |
+
expect( test1.hour() ).toEqual( 12 );
|
37 |
+
expect( test1.minutes() ).toEqual( 0 );
|
38 |
+
expect( test1.seconds() ).toEqual( 0 );
|
39 |
+
|
40 |
+
const test2 = momentUtil.roundTime(
|
41 |
+
moment( '05-09-2018 15:30:02', FORMAT ),
|
42 |
+
);
|
43 |
+
expect( test2 ).toBeInstanceOf( moment );
|
44 |
+
expect( test2.hour() ).toEqual( 15 );
|
45 |
+
expect( test2.minutes() ).toEqual( 30 );
|
46 |
+
expect( test2.seconds() ).toEqual( 0 );
|
47 |
+
|
48 |
+
const test3 = momentUtil.roundTime(
|
49 |
+
moment( '05-09-2018 23:59:59', FORMAT ),
|
50 |
+
);
|
51 |
+
expect( test3 ).toBeInstanceOf( moment );
|
52 |
+
expect( test3.hour() ).toEqual( 23 );
|
53 |
+
expect( test3.minutes() ).toEqual( 30 );
|
54 |
+
expect( test3.seconds() ).toEqual( 0 );
|
55 |
+
|
56 |
+
const test4 = momentUtil.roundTime(
|
57 |
+
moment( '05-09-2018 08:01:59', FORMAT ),
|
58 |
+
);
|
59 |
+
expect( test4 ).toBeInstanceOf( moment );
|
60 |
+
expect( test4.hour() ).toEqual( 8 );
|
61 |
+
expect( test4.minutes() ).toEqual( 0 );
|
62 |
+
expect( test4.seconds() ).toEqual( 0 );
|
63 |
+
} );
|
64 |
+
|
65 |
+
test( 'toMoment', () => {
|
66 |
+
const input = momentUtil.toMoment( new Date( 'January 2, 2015 08:01:59 UTC' ).toISOString() );
|
67 |
+
|
68 |
+
expect( input ).toBeInstanceOf( moment );
|
69 |
+
expect( input.date() ).toEqual( 2 );
|
70 |
+
expect( input.month() ).toEqual( 0 );
|
71 |
+
expect( input.year() ).toEqual( 2015 );
|
72 |
+
expect( input.hour() ).toEqual( 8 );
|
73 |
+
expect( input.minutes() ).toEqual( 1 );
|
74 |
+
expect( input.seconds() ).toEqual( 59 );
|
75 |
+
expect( input.milliseconds() ).toEqual( 0 );
|
76 |
+
expect( input.format( FORMAT ) ).toEqual( '01-02-2015 08:01:59' );
|
77 |
+
} );
|
78 |
+
|
79 |
+
test( 'replaceDate', () => {
|
80 |
+
expect( () => momentUtil.replaceDate( 'Sample string', 123123 ) ).toThrowError();
|
81 |
+
|
82 |
+
const a = moment( '02-28-2010 14:24:40', FORMAT );
|
83 |
+
const b = moment( '05-10-2012 20:14:20', FORMAT );
|
84 |
+
|
85 |
+
const replaced = momentUtil.replaceDate( a, b );
|
86 |
+
expect( replaced ).toBeInstanceOf( moment );
|
87 |
+
expect( replaced.date() ).toEqual( 10 );
|
88 |
+
expect( replaced.month() ).toEqual( 4 );
|
89 |
+
expect( replaced.year() ).toEqual( 2012 );
|
90 |
+
expect( replaced.hour() ).toEqual( 14 );
|
91 |
+
expect( replaced.minute() ).toEqual( 24 );
|
92 |
+
expect( replaced.second() ).toEqual( 40 );
|
93 |
+
expect( replaced.format( FORMAT ) ).toEqual( '05-10-2012 14:24:40' );
|
94 |
+
} );
|
95 |
+
|
96 |
+
test( 'setTimeInSeconds', () => {
|
97 |
+
expect( () => momentUtil.setTimeInSeconds( 'Sample String', 123123 ) ).toThrowError();
|
98 |
+
|
99 |
+
const a = moment( '02-28-2010 14:24:40', FORMAT );
|
100 |
+
const SECONDS = ( 12.5 ) * 60 * 60;
|
101 |
+
const replaced = momentUtil.setTimeInSeconds( a, SECONDS );
|
102 |
+
expect( replaced ).toBeInstanceOf( moment );
|
103 |
+
expect( replaced.date() ).toEqual( 28 );
|
104 |
+
expect( replaced.month() ).toEqual( 1 );
|
105 |
+
expect( replaced.year() ).toEqual( 2010 );
|
106 |
+
expect( replaced.hour() ).toEqual( 12 );
|
107 |
+
expect( replaced.minute() ).toEqual( 30 );
|
108 |
+
expect( replaced.seconds() ).toEqual( 0 );
|
109 |
+
expect( replaced.milliseconds() ).toEqual( 0 );
|
110 |
+
|
111 |
+
const test2 = momentUtil.setTimeInSeconds( a, 0 );
|
112 |
+
expect( test2.date() ).toEqual( 28 );
|
113 |
+
expect( test2.month() ).toEqual( 1 );
|
114 |
+
expect( test2.year() ).toEqual( 2010 );
|
115 |
+
expect( test2.hour() ).toEqual( 0 );
|
116 |
+
expect( test2.minute() ).toEqual( 0 );
|
117 |
+
expect( test2.seconds() ).toEqual( 0 );
|
118 |
+
expect( test2.milliseconds() ).toEqual( 0 );
|
119 |
+
} );
|
120 |
+
|
121 |
+
test( 'totalSeconds', () => {
|
122 |
+
expect( momentUtil.totalSeconds( null ) ).toEqual( 0 );
|
123 |
+
expect( momentUtil.totalSeconds( new Date() ) ).toEqual( 0 );
|
124 |
+
expect( momentUtil.totalSeconds( moment().startOf( 'day' ) ) ).toEqual( 0 );
|
125 |
+
expect( momentUtil.totalSeconds( moment( 'May 23, 2018 12:30 am', 'MMM D, YYYY k:m a' ) ) )
|
126 |
+
.toEqual( time.HALF_HOUR_IN_SECONDS );
|
127 |
+
} );
|
128 |
+
|
129 |
+
test( 'toDateTime', () => {
|
130 |
+
const converted = momentUtil.toDateTime( moment() );
|
131 |
+
expect( typeof converted ).toBe( 'string' );
|
132 |
+
const format = momentUtil.toFormat( date.FORMATS.DATABASE.datetime );
|
133 |
+
expect( converted ).toBe( moment().format( format ) );
|
134 |
+
} );
|
135 |
+
|
136 |
+
test( 'toDate', () => {
|
137 |
+
const converted = momentUtil.toDate( moment() );
|
138 |
+
expect( typeof converted ).toBe( 'string' );
|
139 |
+
expect( typeof converted ).toBe( 'string' );
|
140 |
+
const format = momentUtil.toFormat( date.FORMATS.WP.date );
|
141 |
+
expect( converted ).toBe( moment().format( format ) );
|
142 |
+
} );
|
143 |
+
|
144 |
+
test( 'toDateNoYear', () => {
|
145 |
+
const converted = momentUtil.toDateNoYear( moment() );
|
146 |
+
expect( typeof converted ).toBe( 'string' );
|
147 |
+
expect( converted ).toBe( moment().format( 'MMMM D' ) );
|
148 |
+
} );
|
149 |
+
|
150 |
+
test( 'toTime', () => {
|
151 |
+
const converted = momentUtil.toTime( moment() );
|
152 |
+
expect( typeof converted ).toBe( 'string' );
|
153 |
+
expect( converted ).toBe( moment().format( 'h:mm a' ) );
|
154 |
+
} );
|
155 |
+
|
156 |
+
test( 'toTime24Hr', () => {
|
157 |
+
const converted = momentUtil.toTime24Hr( moment() );
|
158 |
+
expect( typeof converted ).toBe( 'string' );
|
159 |
+
expect( converted ).toBe( moment().format( 'HH:mm' ) );
|
160 |
+
} );
|
161 |
+
|
162 |
+
test( 'toDatabaseDate', () => {
|
163 |
+
const converted = momentUtil.toDatabaseDate( moment() );
|
164 |
+
expect( typeof converted ).toBe( 'string' );
|
165 |
+
expect( converted ).toBe( moment().format( 'YYYY-MM-DD' ) );
|
166 |
+
} );
|
167 |
+
|
168 |
+
test( 'toDatabaseTime', () => {
|
169 |
+
const converted = momentUtil.toDatabaseTime( moment() );
|
170 |
+
expect( typeof converted ).toBe( 'string' );
|
171 |
+
expect( converted ).toBe( moment().format( 'HH:mm:ss' ) );
|
172 |
+
} );
|
173 |
+
|
174 |
+
test( 'toDatePicker', () => {
|
175 |
+
const converted = momentUtil.toDatePicker( moment() );
|
176 |
+
expect( typeof converted ).toBe( 'string' );
|
177 |
+
expect( converted ).toBe( moment().format( 'YYYY-MM-DDTHH:mm:ss' ) );
|
178 |
+
} );
|
179 |
+
|
180 |
+
test( 'isSameDay', () => {
|
181 |
+
expect( momentUtil.isSameDay() ).toBe( false );
|
182 |
+
expect( momentUtil.isSameDay( false, '' ) ).toBe( false );
|
183 |
+
expect( momentUtil.isSameDay( 0, null ) ).toBe( false );
|
184 |
+
expect( momentUtil.isSameDay( moment(), moment().endOf( 'day' ) ) ).toBeTruthy();
|
185 |
+
expect( momentUtil.isSameDay( moment().endOf( 'day' ), moment().endOf( 'day' ) ) ).toBeTruthy();
|
186 |
+
expect( momentUtil.isSameDay( moment(), moment().add( 10, 'days' ) ) ).toBeFalsy();
|
187 |
+
expect( momentUtil.isSameDay( new Date(), new Date() ) ).toBeTruthy();
|
188 |
+
} );
|
189 |
+
|
190 |
+
test( 'isSameMonth', () => {
|
191 |
+
const date = moment( 'October 8, 2018 5:30 pm', 'MMMM D, Y h:mm a' );
|
192 |
+
|
193 |
+
expect( momentUtil.isSameMonth() ).toBe( false );
|
194 |
+
expect( momentUtil.isSameMonth( false, '' ) ).toBe( false );
|
195 |
+
expect( momentUtil.isSameMonth( 0, null ) ).toBe( false );
|
196 |
+
expect( momentUtil.isSameMonth( date, date.clone().add( 24, 'days' ) ) ).toBe( false );
|
197 |
+
expect( momentUtil.isSameMonth( date, date.clone().add( 23, 'days' ) ) ).toBe( true );
|
198 |
+
expect( momentUtil.isSameMonth( date, date.clone().endOf( 'month' ) ) ).toBe( true );
|
199 |
+
expect( momentUtil.isSameMonth( date.clone().endOf( 'month' ), date.clone().endOf( 'month' ) ) ).toBe( true );
|
200 |
+
expect( momentUtil.isSameMonth( date, date.clone().add( 10, 'days' ) ) ).toBe( true );
|
201 |
+
expect( momentUtil.isSameMonth( date, date ) ).toBe( true );
|
202 |
+
} );
|
203 |
+
|
204 |
+
test( 'isSameYear', () => {
|
205 |
+
expect( momentUtil.isSameYear(
|
206 |
+
moment( 'May 23, 2018 12:30 am', 'MMM D, YYYY k:m a' ),
|
207 |
+
moment( 'September 15, 2018 5:30 am', 'MMM D, YYYY k:m a' )
|
208 |
+
) ).toBeTruthy();
|
209 |
+
expect( momentUtil.isSameYear(
|
210 |
+
moment( 'May 23, 2022 12:30 am', 'MMM D, YYYY k:m a' ),
|
211 |
+
moment( 'September 15, 2022 5:30 am', 'MMM D, YYYY k:m a' )
|
212 |
+
) ).toBeTruthy();
|
213 |
+
expect( momentUtil.isSameYear(
|
214 |
+
moment( 'May 23, 2018 12:30 am', 'MMM D, YYYY k:m a' ),
|
215 |
+
moment( 'September 15, 2022 5:30 am', 'MMM D, YYYY k:m a' )
|
216 |
+
) ).toBeFalsy();
|
217 |
+
} );
|
218 |
+
|
219 |
+
test( 'toMomentFromDate', () => {
|
220 |
+
expect( () => momentUtil.toMomentFromDate( '' ) ).toThrowError();
|
221 |
+
expect( () => momentUtil.toMomentFromDate( moment() ) ).toThrowError();
|
222 |
+
Date.now = jest.fn( () => '2018-05-04T05:23:19.000Z' );
|
223 |
+
const format = 'YYYY-MM-DD HH:mm:ss';
|
224 |
+
const now = new Date( 'December 17, 2015 03:24:00' );
|
225 |
+
expect( momentUtil.toMomentFromDate( now ) ).toBeInstanceOf( moment );
|
226 |
+
const expected = momentUtil.toMomentFromDate( now ).format( format );
|
227 |
+
expect( expected ).toBe( '2015-12-17 00:00:00' );
|
228 |
+
} );
|
229 |
+
|
230 |
+
test( 'toFormat', () => {
|
231 |
+
expect( momentUtil.toFormat( '' ) ).toEqual( '' );
|
232 |
+
expect( momentUtil.toFormat( 'Y-m-d H:i:s' ) ).toEqual( 'YYYY-MM-DD HH:mm:ss' );
|
233 |
+
expect( momentUtil.toFormat( 'F j, Y g:i a' ) ).toEqual( 'MMMM D, YYYY h:mm a' );
|
234 |
+
expect( momentUtil.toFormat( 'tLBIOPTZcr' ) ).toEqual( '' );
|
235 |
+
expect( momentUtil.toFormat( 'd' ) ).toEqual( 'DD' );
|
236 |
+
expect( momentUtil.toFormat( 'D' ) ).toEqual( 'ddd' );
|
237 |
+
expect( momentUtil.toFormat( 'j' ) ).toEqual( 'D' );
|
238 |
+
expect( momentUtil.toFormat( 'l' ) ).toEqual( 'dddd' );
|
239 |
+
expect( momentUtil.toFormat( 'N' ) ).toEqual( 'E' );
|
240 |
+
expect( momentUtil.toFormat( 'S' ) ).toEqual( 'o' );
|
241 |
+
expect( momentUtil.toFormat( 'w' ) ).toEqual( 'e' );
|
242 |
+
expect( momentUtil.toFormat( 'z' ) ).toEqual( 'DDD' );
|
243 |
+
expect( momentUtil.toFormat( 'W' ) ).toEqual( 'W' );
|
244 |
+
expect( momentUtil.toFormat( 'F' ) ).toEqual( 'MMMM' );
|
245 |
+
expect( momentUtil.toFormat( 'm' ) ).toEqual( 'MM' );
|
246 |
+
expect( momentUtil.toFormat( 'M' ) ).toEqual( 'MMM' );
|
247 |
+
expect( momentUtil.toFormat( 'n' ) ).toEqual( 'M' );
|
248 |
+
expect( momentUtil.toFormat( 'o' ) ).toEqual( 'YYYY' );
|
249 |
+
expect( momentUtil.toFormat( 'Y' ) ).toEqual( 'YYYY' );
|
250 |
+
expect( momentUtil.toFormat( 'y' ) ).toEqual( 'YY' );
|
251 |
+
expect( momentUtil.toFormat( 'a' ) ).toEqual( 'a' );
|
252 |
+
expect( momentUtil.toFormat( 'A' ) ).toEqual( 'A' );
|
253 |
+
expect( momentUtil.toFormat( 'g' ) ).toEqual( 'h' );
|
254 |
+
expect( momentUtil.toFormat( 'G' ) ).toEqual( 'H' );
|
255 |
+
expect( momentUtil.toFormat( 'h' ) ).toEqual( 'hh' );
|
256 |
+
expect( momentUtil.toFormat( 'H' ) ).toEqual( 'HH' );
|
257 |
+
expect( momentUtil.toFormat( 'i' ) ).toEqual( 'mm' );
|
258 |
+
expect( momentUtil.toFormat( 's' ) ).toEqual( 'ss' );
|
259 |
+
expect( momentUtil.toFormat( 'u' ) ).toEqual( 'SSS' );
|
260 |
+
expect( momentUtil.toFormat( 'e' ) ).toEqual( 'zz' );
|
261 |
+
expect( momentUtil.toFormat( 'U' ) ).toEqual( 'X' );
|
262 |
+
} );
|
263 |
+
|
264 |
+
describe( 'parseFormats', () => {
|
265 |
+
test( 'Use DB format', () => {
|
266 |
+
const format = 'YYYY-MM-DD HH:mm:ss';
|
267 |
+
const expected = momentUtil.parseFormats( '2019-11-19 22:32:00' );
|
268 |
+
expect( expected.format( format ) ).toBe( '2019-11-19 22:32:00' );
|
269 |
+
} );
|
270 |
+
|
271 |
+
test( 'Use WP datetime format', () => {
|
272 |
+
const format = 'MMMM D, YYYY h:mm a';
|
273 |
+
const expected = momentUtil.parseFormats( 'November 19, 2019 10:32 pm' );
|
274 |
+
expect( expected.format( format ) ).toBe( 'November 19, 2019 10:32 pm' );
|
275 |
+
} );
|
276 |
+
|
277 |
+
test( 'Invalid date', () => {
|
278 |
+
Date.now = jest.fn( () => new Date( 'July 1, 2018 00:07:31 UTC' ).toISOString() );
|
279 |
+
const format = 'YYYY-MM-DD HH:mm:ss';
|
280 |
+
const expected = momentUtil.parseFormats( 'No date!' );
|
281 |
+
expect( expected.format( format ) ).toBe( '2018-07-01 00:07:31' );
|
282 |
+
expect( window.console.warn ).toHaveBeenCalled();
|
283 |
+
} );
|
284 |
+
} );
|
285 |
+
|
286 |
+
describe( 'resetTimes', () => {
|
287 |
+
const format = 'YYYY-MM-DD HH:mm:ss';
|
288 |
+
it( 'Should add an hour in seconds', () => {
|
289 |
+
const startMoment = moment( new Date( 'July 19, 2018 19:30:00 UTC' ).toISOString() );
|
290 |
+
const { start, end } = momentUtil.resetTimes( startMoment );
|
291 |
+
expect( start.format( format ) ).toBe( '2018-07-19 19:30:00' );
|
292 |
+
expect( end.format( format ) ).toBe( '2018-07-19 20:30:00' );
|
293 |
+
} );
|
294 |
+
|
295 |
+
it( 'Should add hour in seconds on start of the day', () => {
|
296 |
+
const startMoment = moment( new Date( 'July 19, 2018 00:00:00 UTC' ).toISOString() );
|
297 |
+
const { start, end } = momentUtil.resetTimes( startMoment );
|
298 |
+
expect( start.format( format ) ).toBe( '2018-07-19 00:00:00' );
|
299 |
+
expect( end.format( format ) ).toBe( '2018-07-19 01:00:00' );
|
300 |
+
} );
|
301 |
+
|
302 |
+
it( 'Should prevent overflow to the next day', () => {
|
303 |
+
const startMoment = moment( new Date( 'July 19, 2018 23:59:59 UTC' ).toISOString() );
|
304 |
+
const { start, end } = momentUtil.resetTimes( startMoment );
|
305 |
+
expect( start.format( format ) ).toBe( '2018-07-19 22:59:59' );
|
306 |
+
expect( end.format( format ) ).toBe( '2018-07-19 23:59:59' );
|
307 |
+
} );
|
308 |
+
} );
|
309 |
+
|
310 |
+
describe( 'adjustStart', () => {
|
311 |
+
const format = 'YYYY-MM-DD HH:mm:ss';
|
312 |
+
it( 'Should keep the same order when start is before', () => {
|
313 |
+
const start = moment( new Date( 'July 10, 2018 14:30:00 UTC' ).toISOString() );
|
314 |
+
const end = moment( new Date( 'July 10, 2018 20:35:00 UTC' ).toISOString() );
|
315 |
+
const output = momentUtil.adjustStart( start, end );
|
316 |
+
expect( output.start.format( format ) ).toBe( '2018-07-10 14:30:00' );
|
317 |
+
expect( output.end.format( format ) ).toBe( '2018-07-10 20:35:00' );
|
318 |
+
} );
|
319 |
+
|
320 |
+
it( 'Should adjust the start and end time', () => {
|
321 |
+
const start = moment( new Date( 'July 10, 2018 20:35:00 UTC' ).toISOString() );
|
322 |
+
const end = moment( new Date( 'July 10, 2018 10:30:00 UTC' ).toISOString() );
|
323 |
+
const output = momentUtil.adjustStart( start, end );
|
324 |
+
expect( output.start.format( format ) ).toBe( '2018-07-10 20:35:00' );
|
325 |
+
expect( output.end.format( format ) ).toBe( '2018-07-10 21:35:00' );
|
326 |
+
} );
|
327 |
+
} );
|
328 |
+
} );
|
common/src/modules/utils/__tests__/number.test.js
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { percentage } from '@moderntribe/common/utils/number';
|
5 |
+
|
6 |
+
describe( 'percentage', () => {
|
7 |
+
test( 'with default values', () => {
|
8 |
+
expect( percentage() ).toBe( 0 );
|
9 |
+
} );
|
10 |
+
|
11 |
+
test( 'with non numbers', () => {
|
12 |
+
expect( () => percentage( 'modern', 'tribe' ) ).toThrow();
|
13 |
+
} );
|
14 |
+
|
15 |
+
test( 'limits outside 100 percent', () => {
|
16 |
+
expect( percentage( 120, 100 ) ).toBe( 120 );
|
17 |
+
expect( percentage( 1220, 100 ) ).toBe( 1220 );
|
18 |
+
expect( percentage( 101, 100 ) ).toBe( 101 );
|
19 |
+
expect( percentage( 100, 100 ) ).toBe( 100 );
|
20 |
+
} );
|
21 |
+
|
22 |
+
test( 'common cases', () => {
|
23 |
+
expect( percentage( 10, 100 ) ).toBe( 10 );
|
24 |
+
expect( percentage( 17, 100 ) ).toBe( 17 );
|
25 |
+
expect( percentage( 20, 1000 ) ).toBe( 2 );
|
26 |
+
expect( percentage( 155, 1000 ) ).toBe( 15.5 );
|
27 |
+
expect( percentage( 999, 1000 ) ).toBe( 99.9 );
|
28 |
+
expect( percentage( 1000, 1000 ) ).toBe( 100 );
|
29 |
+
} );
|
30 |
+
|
31 |
+
test( 'negative percentages', () => {
|
32 |
+
expect( percentage( -10, 100 ) ).toBe( -10 );
|
33 |
+
expect( percentage( -80, 100 ) ).toBe( -80 );
|
34 |
+
expect( percentage( -200, 100 ) ).toBe( -200 );
|
35 |
+
} );
|
36 |
+
} );
|
common/src/modules/utils/__tests__/proptypes.test.js
ADDED
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { noop } from 'lodash';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import * as proptypes from '@moderntribe/common/utils/proptypes';
|
10 |
+
|
11 |
+
describe( 'Tests for proptypes utils', () => {
|
12 |
+
describe( 'createChainableValidator', () => {
|
13 |
+
it( 'should not return an error when prop is undefined and is not required', () => {
|
14 |
+
const props = {};
|
15 |
+
const chainedValidator = jest.fn( proptypes.createChainableValidator( noop ) );
|
16 |
+
chainedValidator( props, 'time', 'component' );
|
17 |
+
|
18 |
+
expect( chainedValidator ).toHaveReturned();
|
19 |
+
expect( chainedValidator ).toHaveReturnedWith( null );
|
20 |
+
} );
|
21 |
+
|
22 |
+
it( 'should return an error when prop is undefined and is required', () => {
|
23 |
+
const props = {};
|
24 |
+
const chainedValidator = jest.fn( proptypes.createChainableValidator( noop ).isRequired );
|
25 |
+
chainedValidator( props, 'time', 'component' );
|
26 |
+
|
27 |
+
expect( chainedValidator ).toHaveReturned();
|
28 |
+
expect( chainedValidator ).toHaveReturnedWith( Error( 'The prop `time` is marked as required in `component`, but its value is `undefined`.' ) );
|
29 |
+
} );
|
30 |
+
|
31 |
+
it( 'should return an error when prop is null and is required', () => {
|
32 |
+
const props = {
|
33 |
+
time: null,
|
34 |
+
};
|
35 |
+
const chainedValidator = jest.fn( proptypes.createChainableValidator( noop ).isRequired );
|
36 |
+
chainedValidator( props, 'time', 'component' );
|
37 |
+
|
38 |
+
expect( chainedValidator ).toHaveReturned();
|
39 |
+
expect( chainedValidator ).toHaveReturnedWith( Error( 'The prop `time` is marked as required in `component`, but its value is `null`.' ) );
|
40 |
+
} );
|
41 |
+
|
42 |
+
it( 'should call the validator when prop is provided, not undefined or null, and is not required', () => {
|
43 |
+
const props = {
|
44 |
+
time: '15:34',
|
45 |
+
};
|
46 |
+
const validator = jest.fn( noop );
|
47 |
+
const chainedValidator = jest.fn( proptypes.createChainableValidator( validator ) );
|
48 |
+
chainedValidator( props, 'time', 'component' );
|
49 |
+
|
50 |
+
expect( validator ).toHaveBeenCalled();
|
51 |
+
expect( validator ).toHaveBeenCalledTimes( 1 );
|
52 |
+
} );
|
53 |
+
|
54 |
+
it( 'should call the validator when prop is provided, not undefined or null, and is required', () => {
|
55 |
+
const props = {
|
56 |
+
time: '15:34',
|
57 |
+
};
|
58 |
+
const validator = jest.fn( noop );
|
59 |
+
const chainedValidator = jest.fn( proptypes.createChainableValidator( validator ).isRequired );
|
60 |
+
chainedValidator( props, 'time', 'component' );
|
61 |
+
|
62 |
+
expect( validator ).toHaveBeenCalled();
|
63 |
+
expect( validator ).toHaveBeenCalledTimes( 1 );
|
64 |
+
} );
|
65 |
+
} );
|
66 |
+
|
67 |
+
describe( 'timeRegex', () => {
|
68 |
+
it( 'should return true when provided proper time formatted string', () => {
|
69 |
+
expect( proptypes.timeRegex.test( '00:00' ) ).toEqual( true );
|
70 |
+
expect( proptypes.timeRegex.test( '23:59' ) ).toEqual( true );
|
71 |
+
expect( proptypes.timeRegex.test( '12:42' ) ).toEqual( true );
|
72 |
+
expect( proptypes.timeRegex.test( '03:01' ) ).toEqual( true );
|
73 |
+
expect( proptypes.timeRegex.test( '19:47' ) ).toEqual( true );
|
74 |
+
expect( proptypes.timeRegex.test( '05:56' ) ).toEqual( true );
|
75 |
+
expect( proptypes.timeRegex.test( '14:11' ) ).toEqual( true );
|
76 |
+
} );
|
77 |
+
|
78 |
+
it( 'should return false when not provided proper time formatted string', () => {
|
79 |
+
expect( proptypes.timeRegex.test( 'random string' ) ).toEqual( false );
|
80 |
+
expect( proptypes.timeRegex.test( '-00:00' ) ).toEqual( false );
|
81 |
+
expect( proptypes.timeRegex.test( '24:00' ) ).toEqual( false );
|
82 |
+
expect( proptypes.timeRegex.test( '00:60' ) ).toEqual( false );
|
83 |
+
expect( proptypes.timeRegex.test( '24:60' ) ).toEqual( false );
|
84 |
+
expect( proptypes.timeRegex.test( '75:93' ) ).toEqual( false );
|
85 |
+
expect( proptypes.timeRegex.test( '90:90' ) ).toEqual( false );
|
86 |
+
} );
|
87 |
+
} );
|
88 |
+
|
89 |
+
describe( 'timeFormat', () => {
|
90 |
+
it( 'should not return an error when provided proper time formatted string', () => {
|
91 |
+
const props = {
|
92 |
+
time: '15:34',
|
93 |
+
};
|
94 |
+
const timeFormat = jest.fn( () => proptypes.timeFormat( props, 'time', 'component' ) );
|
95 |
+
timeFormat();
|
96 |
+
|
97 |
+
expect( timeFormat ).toHaveReturned();
|
98 |
+
expect( timeFormat ).toHaveReturnedWith( null );
|
99 |
+
} );
|
100 |
+
|
101 |
+
it( 'should return an error when not provided a string', () => {
|
102 |
+
const props = {
|
103 |
+
time: true,
|
104 |
+
};
|
105 |
+
const timeFormat = jest.fn( () => proptypes.timeFormat( props, 'time', 'component' ) );
|
106 |
+
timeFormat();
|
107 |
+
|
108 |
+
expect( timeFormat ).toHaveReturned();
|
109 |
+
expect( timeFormat ).toHaveReturnedWith( Error( 'Invalid prop `time` of type `boolean` supplied to `component`, expected `string`.' ) );
|
110 |
+
} );
|
111 |
+
|
112 |
+
it( 'should return an error when not provided proper time format', () => {
|
113 |
+
const props = {
|
114 |
+
time: 'random string',
|
115 |
+
};
|
116 |
+
const timeFormat = jest.fn( () => proptypes.timeFormat( props, 'time', 'component' ) );
|
117 |
+
timeFormat();
|
118 |
+
|
119 |
+
expect( timeFormat ).toHaveReturned();
|
120 |
+
expect( timeFormat ).toHaveReturnedWith( Error( 'Invalid prop `time` format supplied to `component`, expected `hh:mm`.' ) );
|
121 |
+
} );
|
122 |
+
} );
|
123 |
+
|
124 |
+
describe( 'nullType', () => {
|
125 |
+
test( 'valid prop types', () => {
|
126 |
+
const props = {
|
127 |
+
name: null,
|
128 |
+
}
|
129 |
+
const format = jest.fn( () => proptypes.nullType( props, 'name', 'Test Type' ) );
|
130 |
+
format();
|
131 |
+
expect( format ).toHaveReturned();
|
132 |
+
expect( format ).toHaveReturnedWith( undefined );
|
133 |
+
} );
|
134 |
+
|
135 |
+
test( 'invalid prop types', () => {
|
136 |
+
const props = {
|
137 |
+
name: 'Modern Tribe',
|
138 |
+
}
|
139 |
+
const format = jest.fn( () => proptypes.nullType( props, 'name', 'Test Type' ) );
|
140 |
+
format();
|
141 |
+
expect( format ).toHaveReturned();
|
142 |
+
expect( format ).toHaveReturnedWith( Error( 'Invalid prop: `name` supplied to `Test Type`, expect null.') );
|
143 |
+
} );
|
144 |
+
} );
|
145 |
+
} );
|
common/src/modules/utils/__tests__/range.test.js
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import {
|
5 |
+
parseChars,
|
6 |
+
extractParts,
|
7 |
+
parser,
|
8 |
+
isFree,
|
9 |
+
} from '@moderntribe/common/utils/range';
|
10 |
+
|
11 |
+
describe( 'Tests for range.js', () => {
|
12 |
+
test( 'parseChars', () => {
|
13 |
+
expect( parseChars( '' ) ).toEqual( '' );
|
14 |
+
expect( parseChars( '12312312321321 123123123123' ) ).toEqual( '12312312321321 123123123123' );
|
15 |
+
expect( parseChars( '1"$!%$&/)=(=?^^Ǩ¨_:;' ) ).toEqual( '1' );
|
16 |
+
expect( parseChars( ',.-¨¨*^^?=)(/&%$·"!ª12' ) ).toEqual( ',.-12' );
|
17 |
+
expect( parseChars( '1-2-3-!"·$%&4-5-6$,.-' ) ).toEqual( '1-2-3-4-5-6,.-' );
|
18 |
+
} );
|
19 |
+
|
20 |
+
test( 'extractParts', () => {
|
21 |
+
expect( extractParts( '' ) ).toEqual( [] );
|
22 |
+
expect( extractParts( '12' ) ).toEqual( [ '12' ] );
|
23 |
+
expect( extractParts( '12 - 23' ) ).toEqual( [ '12', '23' ] );
|
24 |
+
expect( extractParts( '12.23 - ' ) ).toEqual( [ '12.23' ] );
|
25 |
+
expect( extractParts( '12.23 - 5,10' ) ).toEqual( [ '12.23', '5.10' ] );
|
26 |
+
expect( extractParts( '12.23 - - - - - 5,10' ) ).toEqual( [ '12.23', '5.10' ] );
|
27 |
+
expect( extractParts( '- - - - - 12.23 - 5,10' ) ).toEqual( [ '12.23', '5.10' ] );
|
28 |
+
expect( extractParts( '......,,,,12.23 - 5,10' ) ).toEqual( [ '12.23', '5.10' ] );
|
29 |
+
expect( extractParts( '.12.23 - 5,10.....,,,,' ) ).toEqual( [ '12.23', '5.10' ] );
|
30 |
+
expect( extractParts( '12.2.....3 ,-. 5,10' ) ).toEqual( [ '12.20', '5.10' ] );
|
31 |
+
expect( extractParts( '1-2-3-!"·$%&4-5-6$,.-' ) ).toEqual( [ '1', '2' ] );
|
32 |
+
expect( extractParts( '12.23 ,-. ----5,,,,,,10' ) ).toEqual( [ '12.23', '5' ] );
|
33 |
+
} );
|
34 |
+
|
35 |
+
test( 'parser', () => {
|
36 |
+
expect( parser( '' ) ).toEqual( '' );
|
37 |
+
expect( parser( 'cupidatat occaecat' ) ).toEqual( '' );
|
38 |
+
expect( parser( 'cupidatat 12 occaecat - 1,2' ) ).toEqual( '1.20 - 12' );
|
39 |
+
expect( parser( '1,2 cupidatat 12 occaecat' ) ).toEqual( '1.20' );
|
40 |
+
expect( parser( '1-2-1-1-1-1' ) ).toEqual( '1 - 2' );
|
41 |
+
expect( parser( '......,,,,12.23 - 5,10' ) ).toEqual( '5.10 - 12.23' );
|
42 |
+
expect( parser( '2.2.....3 ,-. 2,10' ) ).toEqual( '2.10 - 2.20' );
|
43 |
+
expect( parser( '12.23 ,-. ----5,,,,,,10' ) ).toEqual( '5 - 12.23' );
|
44 |
+
expect( parser( '1-2-3-!"·$%&4-5-6$,.-' ) ).toEqual( '1 - 2' );
|
45 |
+
expect( parser( ',.-¨¨*^^?=)(/&%$·"!ª12' ) ).toEqual( '12' );
|
46 |
+
expect( parser( '10 - 10' ) ).toEqual( '10' );
|
47 |
+
expect( parser( '0' ) ).toEqual( '' );
|
48 |
+
expect( parser( '0.0' ) ).toEqual( '' );
|
49 |
+
expect( parser( '0 -' ) ).toEqual( '' );
|
50 |
+
expect( parser( '0 - 0' ) ).toEqual( '' );
|
51 |
+
expect( parser( '0.0 - 0' ) ).toEqual( '' );
|
52 |
+
expect( parser( '0.0 - 0.5' ) ).toEqual( '0.00 - 0.50' );
|
53 |
+
} );
|
54 |
+
|
55 |
+
test( 'isFree', () => {
|
56 |
+
expect( isFree( '' ) ).toEqual( false );
|
57 |
+
expect( isFree( '0.12' ) ).toEqual( false );
|
58 |
+
expect( isFree( '0 - 0.12' ) ).toEqual( false );
|
59 |
+
expect( isFree( '0.12 - 0' ) ).toEqual( false );
|
60 |
+
expect( isFree( '0' ) ).toEqual( true );
|
61 |
+
expect( isFree( '0.0' ) ).toEqual( true );
|
62 |
+
expect( isFree( '0 - 0' ) ).toEqual( true );
|
63 |
+
expect( isFree( '0.0 - 0.0' ) ).toEqual( true );
|
64 |
+
} );
|
65 |
+
} );
|
common/src/modules/utils/__tests__/slide.test.js
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { checkRequestIds } from '@moderntribe/common/utils/slide';
|
5 |
+
|
6 |
+
describe( 'Tests for slide.js', () => {
|
7 |
+
it( 'should return null for up and down', () => {
|
8 |
+
const ids = checkRequestIds( 'test-id' );
|
9 |
+
expect( ids.up ).toEqual( null );
|
10 |
+
expect( ids.down ).toEqual( null );
|
11 |
+
} );
|
12 |
+
} );
|
common/src/modules/utils/__tests__/string.test.js
ADDED
@@ -0,0 +1,135 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import {
|
5 |
+
isTruthy,
|
6 |
+
isFalsy,
|
7 |
+
replaceWithObject,
|
8 |
+
getWords,
|
9 |
+
wordsAsList,
|
10 |
+
normalize,
|
11 |
+
toBlockName,
|
12 |
+
} from '@moderntribe/common/utils/string';
|
13 |
+
|
14 |
+
describe( 'Tests for string.js', () => {
|
15 |
+
test( 'isTruthy', () => {
|
16 |
+
expect( isTruthy( 'Sample string' ) ).toEqual( false );
|
17 |
+
expect( isTruthy( '0' ) ).toEqual( false );
|
18 |
+
expect( isTruthy( 'false' ) ).toEqual( false );
|
19 |
+
expect( isTruthy( '1' ) ).toEqual( true );
|
20 |
+
expect( isTruthy( 'yes' ) ).toEqual( true );
|
21 |
+
expect( isTruthy( 'true' ) ).toEqual( true );
|
22 |
+
} );
|
23 |
+
|
24 |
+
test( 'isFalsy', () => {
|
25 |
+
expect( isFalsy( 'Sample string' ) ).toEqual( false );
|
26 |
+
expect( isFalsy( '1' ) ).toEqual( false );
|
27 |
+
expect( isFalsy( 'true' ) ).toEqual( false );
|
28 |
+
expect( isFalsy( '' ) ).toEqual( true );
|
29 |
+
expect( isFalsy( '0' ) ).toEqual( true );
|
30 |
+
expect( isFalsy( 'no' ) ).toEqual( true );
|
31 |
+
expect( isFalsy( 'false' ) ).toEqual( true );
|
32 |
+
} );
|
33 |
+
|
34 |
+
test( 'replaceWithObject', () => {
|
35 |
+
expect( replaceWithObject() ).toEqual( '' );
|
36 |
+
expect( replaceWithObject( '', {} ) ).toEqual( '' );
|
37 |
+
expect( replaceWithObject( 'abcd' ) ).toEqual( 'abcd' );
|
38 |
+
expect( replaceWithObject( 'abcd', { z: 'a' } ) ).toEqual( 'abcd' );
|
39 |
+
expect( replaceWithObject( 'abcd', { a: 'b', c: 'd' } ) ).toEqual( 'bbdd' );
|
40 |
+
expect( replaceWithObject( 'abcd', { a: '', c: '' } ) ).toEqual( 'bd' );
|
41 |
+
} );
|
42 |
+
|
43 |
+
describe( 'getWords', () => {
|
44 |
+
test( 'when strings are formed correctly', () => {
|
45 |
+
expect( getWords( 'Modern Tribe' ) ).toEqual( [ 'Modern', 'Tribe' ] );
|
46 |
+
expect( getWords( 'The Next Generation of Digital Agency' ) )
|
47 |
+
.toEqual( [ 'The', 'Next', 'Generation', 'of', 'Digital', 'Agency' ] );
|
48 |
+
expect( getWords( 'A list with numbers: 1, 2, 3' ) )
|
49 |
+
.toEqual( [ 'A', 'list', 'with', 'numbers:', '1,', '2,', '3' ] );
|
50 |
+
} );
|
51 |
+
|
52 |
+
test( 'Words with multiple spaces on it', () => {
|
53 |
+
expect( getWords( ' Modern Tribe ' ) ).toEqual( [ 'Modern', 'Tribe' ] );
|
54 |
+
} );
|
55 |
+
} );
|
56 |
+
|
57 |
+
describe( 'applySeparatorsAsCheckboxList', () => {
|
58 |
+
test( 'Single word no separator is applied', () => {
|
59 |
+
expect( wordsAsList( [ 'Modern' ] ) ).toEqual( 'Modern' );
|
60 |
+
} );
|
61 |
+
|
62 |
+
test( 'Two words last separator is applied', () => {
|
63 |
+
expect( wordsAsList( getWords( 'Modern Tribe' ) ) ).toEqual( 'Modern & Tribe' );
|
64 |
+
expect( wordsAsList( getWords( 'Events Calendar' ), ',', ' - ' ) )
|
65 |
+
.toEqual( 'Events - Calendar' );
|
66 |
+
} );
|
67 |
+
|
68 |
+
test( 'A large number of words', () => {
|
69 |
+
expect(
|
70 |
+
wordsAsList( [ 'Dog', 'Cat', 'Hamster', 'Parrot', 'Spider', 'Goldfish' ] ),
|
71 |
+
).toEqual( 'Dog, Cat, Hamster, Parrot, Spider & Goldfish' );
|
72 |
+
} );
|
73 |
+
|
74 |
+
test( 'Custom separators', () => {
|
75 |
+
expect(
|
76 |
+
wordsAsList( [ 'Dog', 'Cat', 'Hamster', 'Parrot', 'Spider', 'Goldfish' ], ' - ', ' => ' ),
|
77 |
+
).toEqual( 'Dog - Cat - Hamster - Parrot - Spider => Goldfish' );
|
78 |
+
} );
|
79 |
+
} );
|
80 |
+
|
81 |
+
describe( 'normalize', () => {
|
82 |
+
test( 'single words', () => {
|
83 |
+
expect( normalize( 'modern' ) ).toEqual( 'modern' );
|
84 |
+
expect( normalize( 'TRIBE' ) ).toEqual( 'tribe' );
|
85 |
+
} );
|
86 |
+
|
87 |
+
test( 'multiple words', () => {
|
88 |
+
expect( normalize( 'Modern Tribe' ) ).toEqual( 'modern-tribe' );
|
89 |
+
expect( normalize( 'https://theeventscalendar.com/' ) )
|
90 |
+
.toEqual( 'httpstheeventscalendarcom' );
|
91 |
+
} );
|
92 |
+
|
93 |
+
test( 'Multiple spaces', () => {
|
94 |
+
expect( normalize( ' modern TriBe' ) ).toEqual( 'modern-tribe' );
|
95 |
+
} );
|
96 |
+
|
97 |
+
test( 'non words', () => {
|
98 |
+
expect( normalize( ' 12312321-,-.(()=^^ ¨¨:;:_¨¨Ç *¿?=)(/&%$·"!.+' ) ).toEqual( '' );
|
99 |
+
} );
|
100 |
+
|
101 |
+
test( 'non strings types', () => {
|
102 |
+
expect( normalize( undefined ) ).toBe( '' );
|
103 |
+
expect( normalize( [] ) ).toBe( '' );
|
104 |
+
expect( normalize( [] ) ).toBe( '' );
|
105 |
+
expect( normalize( null ) ).toBe( '' );
|
106 |
+
expect( normalize( 1 ) ).toBe( '' );
|
107 |
+
} );
|
108 |
+
} );
|
109 |
+
|
110 |
+
describe( 'toBlockName', () => {
|
111 |
+
test( 'words', () => {
|
112 |
+
expect( toBlockName( 'modern tribe' ) )
|
113 |
+
.toBe( 'moderntribe' );
|
114 |
+
expect( toBlockName( 'https://theeventscalendar.com/' ) )
|
115 |
+
.toBe( 'httpstheeventscalendarcom' );
|
116 |
+
} );
|
117 |
+
|
118 |
+
test( 'non valid characters of a block', () => {
|
119 |
+
expect( toBlockName( '_ecp_custom_2' ) ).toBe( 'ecpcustom2' );
|
120 |
+
expect( toBlockName( 'ecp-custom-2' ) ).toBe( 'ecp-custom-2' );
|
121 |
+
expect( toBlockName( '„…–~~}][‚|#¢∞ecp-custom-2;:_¨¨Ç¨^^=)(/&%$·"!' ) )
|
122 |
+
.toBe( 'ecp-custom-2' );
|
123 |
+
expect( toBlockName( '„…– ~~}] [‚|#¢∞ecp-custom-2;:_¨ ¨Ç¨^^=)(/ &%$·"!' ) )
|
124 |
+
.toBe( 'ecp-custom-2' );
|
125 |
+
} );
|
126 |
+
|
127 |
+
test( 'non strings types', () => {
|
128 |
+
expect( toBlockName( undefined ) ).toBe( '' );
|
129 |
+
expect( toBlockName( [] ) ).toBe( '' );
|
130 |
+
expect( toBlockName( [] ) ).toBe( '' );
|
131 |
+
expect( toBlockName( null ) ).toBe( '' );
|
132 |
+
expect( toBlockName( 1 ) ).toBe( '' );
|
133 |
+
} );
|
134 |
+
} );
|
135 |
+
} );
|
common/src/modules/utils/__tests__/time.test.js
ADDED
@@ -0,0 +1,222 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Internal dependencies
|
3 |
+
*/
|
4 |
+
import { time } from '@moderntribe/common/utils';
|
5 |
+
import { roundTime } from '../moment';
|
6 |
+
|
7 |
+
describe( 'Tests for time.js', () => {
|
8 |
+
test( 'MINUTE_IN_SECONDS', () => {
|
9 |
+
expect( time.MINUTE_IN_SECONDS ).toEqual( 60 );
|
10 |
+
} );
|
11 |
+
|
12 |
+
test( 'HALF_HOUR_IN_SECONDS', () => {
|
13 |
+
expect( time.HALF_HOUR_IN_SECONDS ).toEqual( 1800 );
|
14 |
+
} );
|
15 |
+
|
16 |
+
test( 'HOUR_IN_SECONDS', () => {
|
17 |
+
expect( time.HOUR_IN_SECONDS ).toEqual( 3600 );
|
18 |
+
} );
|
19 |
+
|
20 |
+
test( 'DAY_IN_SECONDS', () => {
|
21 |
+
expect( time.DAY_IN_SECONDS ).toEqual( 86400 );
|
22 |
+
} );
|
23 |
+
|
24 |
+
test( 'roundTime', () => {
|
25 |
+
expect( time.roundTime( '01:23:54.423', time.TIME_FORMAT_HH_MM_SS_SSS ) )
|
26 |
+
.toEqual( '01:00:00.000' );
|
27 |
+
expect( time.roundTime( '14:46:13.042', time.TIME_FORMAT_HH_MM_SS_SSS ) )
|
28 |
+
.toEqual( '14:30:00.000' );
|
29 |
+
expect( time.roundTime( '01:23:54', time.TIME_FORMAT_HH_MM_SS ) )
|
30 |
+
.toEqual( '01:00:00' );
|
31 |
+
expect( time.roundTime( '14:46:13', time.TIME_FORMAT_HH_MM_SS ) )
|
32 |
+
.toEqual( '14:30:00' );
|
33 |
+
expect( time.roundTime( '01:23', time.TIME_FORMAT_HH_MM ) )
|
34 |
+
.toEqual( '01:00' );
|
35 |
+
expect( time.roundTime( '14:46', time.TIME_FORMAT_HH_MM ) )
|
36 |
+
.toEqual( '14:30' );
|
37 |
+
expect( time.roundTime( '23:54.423', time.TIME_FORMAT_MM_SS_SSS ) )
|
38 |
+
.toEqual( '00:00.000' );
|
39 |
+
expect( time.roundTime( '46:13.042', time.TIME_FORMAT_MM_SS_SSS ) )
|
40 |
+
.toEqual( '30:00.000' );
|
41 |
+
expect( time.roundTime( '23:54', time.TIME_FORMAT_MM_SS ) )
|
42 |
+
.toEqual( '00:00' );
|
43 |
+
expect( time.roundTime( '46:13', time.TIME_FORMAT_MM_SS ) )
|
44 |
+
.toEqual( '30:00' );
|
45 |
+
} );
|
46 |
+
|
47 |
+
test( 'START_OF_DAY', () => {
|
48 |
+
expect( time.START_OF_DAY ).toEqual( '00:00' );
|
49 |
+
} );
|
50 |
+
|
51 |
+
test( 'END_OF_DAY', () => {
|
52 |
+
expect( time.END_OF_DAY ).toEqual( '23:59' );
|
53 |
+
} );
|
54 |
+
|
55 |
+
test( 'TIME_FORMAT_HH_MM_SS_SSS', () => {
|
56 |
+
expect( time.TIME_FORMAT_HH_MM_SS_SSS ).toEqual( 'hh:mm:ss.sss' );
|
57 |
+
} );
|
58 |
+
|
59 |
+
test( 'TIME_FORMAT_HH_MM_SS', () => {
|
60 |
+
expect( time.TIME_FORMAT_HH_MM_SS ).toEqual( 'hh:mm:ss' );
|
61 |
+
} );
|
62 |
+
|
63 |
+
test( 'TIME_FORMAT_HH_MM', () => {
|
64 |
+
expect( time.TIME_FORMAT_HH_MM ).toEqual( 'hh:mm' );
|
65 |
+
} );
|
66 |
+
|
67 |
+
test( 'TIME_FORMAT_MM_SS_SSS', () => {
|
68 |
+
expect( time.TIME_FORMAT_MM_SS_SSS ).toEqual( 'mm:ss.sss' );
|
69 |
+
} );
|
70 |
+
|
71 |
+
test( 'TIME_FORMAT_MM_SS', () => {
|
72 |
+
expect( time.TIME_FORMAT_MM_SS ).toEqual( 'mm:ss' );
|
73 |
+
} );
|
74 |
+
|
75 |
+
test( 'HOUR_IN_MS', () => {
|
76 |
+
expect( time.HOUR_IN_MS ).toEqual( 3600000 );
|
77 |
+
} );
|
78 |
+
|
79 |
+
test( 'MINUTE_IN_MS', () => {
|
80 |
+
expect( time.MINUTE_IN_MS ).toEqual( 60000 );
|
81 |
+
} );
|
82 |
+
|
83 |
+
test( 'SECOND_IN_MS', () => {
|
84 |
+
expect( time.SECOND_IN_MS ).toEqual( 1000 );
|
85 |
+
} );
|
86 |
+
|
87 |
+
/**
|
88 |
+
* Below are tests copied from the hh-mm-ss library and adjusted to use
|
89 |
+
* Jest instead of Tape for testing.
|
90 |
+
* Link: https://github.com/Goldob/hh-mm-ss/blob/master/test/index.js
|
91 |
+
*/
|
92 |
+
test( 'fromMilliseconds() test', () => {
|
93 |
+
// Basic functionality
|
94 |
+
expect( time.fromMilliseconds( 75000 ) ).toEqual( '01:15' );
|
95 |
+
expect( time.fromMilliseconds( 442800000 ) ).toEqual( '123:00:00' );
|
96 |
+
expect( time.fromMilliseconds( 90576 ) ).toEqual( '01:30.576' );
|
97 |
+
expect( time.fromMilliseconds( -157250 ) ).toEqual( '-02:37.250' );
|
98 |
+
|
99 |
+
// Output formatting
|
100 |
+
expect( time.fromMilliseconds( 38000, 'mm:ss.sss' ) ).toEqual( '00:38.000' );
|
101 |
+
expect( time.fromMilliseconds( 0, 'hh:mm:ss' ) ).toEqual( '00:00:00' );
|
102 |
+
expect( time.fromMilliseconds( 3600000, 'mm:ss' ) ).toEqual( '01:00:00' );
|
103 |
+
expect( time.fromMilliseconds( 4500000, 'hh:mm' ) ).toEqual( '01:15' );
|
104 |
+
expect( time.fromMilliseconds( -9900000, 'hh:mm' ) ).toEqual( '-02:45' );
|
105 |
+
|
106 |
+
// Input validation
|
107 |
+
expect( () => time.fromMilliseconds( null ) ).toThrowErrorMatchingSnapshot();
|
108 |
+
expect( () => time.fromMilliseconds('text') ).toThrowErrorMatchingSnapshot();
|
109 |
+
expect( () => time.fromMilliseconds(0, 'mm:hh:ss') ).toThrowErrorMatchingSnapshot();
|
110 |
+
} );
|
111 |
+
|
112 |
+
test( 'fromSeconds() test', () => {
|
113 |
+
// Basic functionality
|
114 |
+
expect( time.fromSeconds( 75 ) ).toEqual( '01:15' );
|
115 |
+
expect( time.fromSeconds( 442800 ) ).toEqual( '123:00:00' );
|
116 |
+
expect( time.fromSeconds( -442800 ) ).toEqual( '-123:00:00' );
|
117 |
+
|
118 |
+
// Output formatting
|
119 |
+
expect( time.fromSeconds( 38, 'mm:ss.sss' ) ).toEqual( '00:38.000' );
|
120 |
+
expect( time.fromSeconds( 0, 'hh:mm:ss' ) ).toEqual( '00:00:00' );
|
121 |
+
expect( time.fromSeconds( 3600, 'mm:ss' ) ).toEqual( '01:00:00' );
|
122 |
+
expect( time.fromSeconds( 4500, 'hh:mm' ) ).toEqual( '01:15' );
|
123 |
+
expect( time.fromSeconds( -9900, 'hh:mm' ) ).toEqual( '-02:45' );
|
124 |
+
|
125 |
+
// Input validation
|
126 |
+
expect( () => time.fromSeconds( null ) ).toThrowErrorMatchingSnapshot();
|
127 |
+
expect( () => time.fromSeconds( 'text' ) ).toThrowErrorMatchingSnapshot();
|
128 |
+
expect( () => time.fromSeconds( 0, 'mm:hh:ss' ) ).toThrowErrorMatchingSnapshot();
|
129 |
+
} );
|
130 |
+
|
131 |
+
test( 'toMilliseconds() test', () => {
|
132 |
+
// Basic functionality
|
133 |
+
expect( time.toMilliseconds( '01:05:17' ) ).toEqual( 3917000 );
|
134 |
+
expect( time.toMilliseconds( '137:00:00.0' ) ).toEqual( 493200000 );
|
135 |
+
expect( time.toMilliseconds( '00:10.230' ) ).toEqual( 10230 );
|
136 |
+
expect( time.toMilliseconds( '00:00:07.10845' ) ).toEqual( 7108 );
|
137 |
+
expect( time.toMilliseconds( '-02:07:12' ) ).toEqual( -7632000 );
|
138 |
+
expect( time.toMilliseconds( '02:00' ) ).toEqual( 120000 );
|
139 |
+
expect( time.toMilliseconds( '02:00', 'hh:mm' ) ).toEqual( 7200000 );
|
140 |
+
expect( time.toMilliseconds( '-04:35', 'hh:mm' ) ).toEqual( -16500000 );
|
141 |
+
expect( time.toMilliseconds( '00:00:07.10845', 'hh:mm' ) ).toEqual( 7108 );
|
142 |
+
|
143 |
+
// Input validation
|
144 |
+
expect( () => time.toMilliseconds( '13:05:02:11' ) ).toThrowErrorMatchingSnapshot();
|
145 |
+
expect( () => time.toMilliseconds( '153' ) ).toThrowErrorMatchingSnapshot();
|
146 |
+
expect( () => time.toMilliseconds( null ) ).toThrowErrorMatchingSnapshot();
|
147 |
+
expect( () => time.toMilliseconds( '00:62' ) ).toThrowErrorMatchingSnapshot();
|
148 |
+
expect( () => time.toMilliseconds( '01:30', 'mm:hh:ss' ) ).toThrowErrorMatchingSnapshot();
|
149 |
+
} );
|
150 |
+
|
151 |
+
test( 'toSeconds() test', () => {
|
152 |
+
// Basic functionality
|
153 |
+
expect( time.toSeconds( '01:05:17' ) ).toEqual( 3917 );
|
154 |
+
expect( time.toSeconds( '137:00:00.0' ) ).toEqual( 493200 );
|
155 |
+
expect( time.toSeconds( '00:10.230' ) ).toEqual( 10 );
|
156 |
+
expect( time.toSeconds( '00:00:07.10845' ) ).toEqual( 7 );
|
157 |
+
expect( time.toSeconds( '-02:07:12' ) ).toEqual( -7632 );
|
158 |
+
expect( time.toSeconds( '02:00' ) ).toEqual( 120 );
|
159 |
+
expect( time.toSeconds( '02:00', 'hh:mm' ) ).toEqual( 7200 );
|
160 |
+
expect( time.toSeconds( '-04:35', 'hh:mm' ) ).toEqual( -16500 );
|
161 |
+
expect( time.toSeconds( '00:00:07.10845', 'hh:mm' ) ).toEqual( 7 );
|
162 |
+
|
163 |
+
// Input validation
|
164 |
+
expect( () => time.toSeconds( '13:05:02:11' ) ).toThrowErrorMatchingSnapshot();
|
165 |
+
expect( () => time.toSeconds( '153' ) ).toThrowErrorMatchingSnapshot();
|
166 |
+
expect( () => time.toSeconds( null ) ).toThrowErrorMatchingSnapshot();
|
167 |
+
expect( () => time.toSeconds( '00:62' ) ).toThrowErrorMatchingSnapshot();
|
168 |
+
expect( () => time.toSeconds( '01:30', 'mm:hh:ss' ) ).toThrowErrorMatchingSnapshot();
|
169 |
+
} );
|
170 |
+
|
171 |
+
test( 'symmetrical conversion test', () => {
|
172 |
+
/*
|
173 |
+
* fromMilliseconds() and toMilliseconds() for all formats
|
174 |
+
*/
|
175 |
+
|
176 |
+
// 90000ms = 1m 30s
|
177 |
+
expect( time.toMilliseconds( time.fromMilliseconds( 90000, 'mm:ss' ), 'mm:ss' ) ).toEqual( 90000 );
|
178 |
+
expect( time.toMilliseconds( time.fromMilliseconds( 90000, 'mm:ss.sss' ), 'mm:ss.sss' ) ).toEqual( 90000 );
|
179 |
+
expect( time.toMilliseconds( time.fromMilliseconds( 90000, 'hh:mm' ), 'hh:mm' ) ).toEqual( 90000 );
|
180 |
+
expect( time.toMilliseconds( time.fromMilliseconds( 90000, 'hh:mm:ss' ), 'hh:mm:ss' ) ).toEqual( 90000 );
|
181 |
+
expect( time.toMilliseconds( time.fromMilliseconds( 90000, 'hh:mm:ss.sss' ), 'hh:mm:ss.sss' ) ).toEqual( 90000 );
|
182 |
+
|
183 |
+
// 7517245ms = 2h 5m 17.245s
|
184 |
+
expect( time.toMilliseconds( time.fromMilliseconds( 7517245, 'mm:ss' ), 'mm:ss' ) ).toEqual( 7517245 );
|
185 |
+
expect( time.toMilliseconds( time.fromMilliseconds( 7517245, 'mm:ss.sss' ), 'mm:ss.sss' ) ).toEqual( 7517245 );
|
186 |
+
expect( time.toMilliseconds( time.fromMilliseconds( 7517245, 'hh:mm' ), 'hh:mm' ) ).toEqual( 7517245 );
|
187 |
+
expect( time.toMilliseconds( time.fromMilliseconds( 7517245, 'hh:mm:ss' ), 'hh:mm:ss' ) ).toEqual( 7517245 );
|
188 |
+
expect( time.toMilliseconds( time.fromMilliseconds( 7517245, 'hh:mm:ss.sss' ), 'hh:mm:ss.sss' ) ).toEqual( 7517245 );
|
189 |
+
|
190 |
+
// -10800000ms = -3h
|
191 |
+
expect( time.toMilliseconds( time.fromMilliseconds( -10800000, 'mm:ss' ), 'mm:ss' ) ).toEqual( -10800000 );
|
192 |
+
expect( time.toMilliseconds( time.fromMilliseconds( -10800000, 'mm:ss.sss' ), 'mm:ss.sss' ) ).toEqual( -10800000 );
|
193 |
+
expect( time.toMilliseconds( time.fromMilliseconds( -10800000, 'hh:mm' ), 'hh:mm' ) ).toEqual( -10800000 );
|
194 |
+
expect( time.toMilliseconds( time.fromMilliseconds( -10800000, 'hh:mm:ss' ), 'hh:mm:ss' ) ).toEqual( -10800000 );
|
195 |
+
expect( time.toMilliseconds( time.fromMilliseconds( -10800000, 'hh:mm:ss.sss' ), 'hh:mm:ss.sss' ) ).toEqual( -10800000 );
|
196 |
+
|
197 |
+
/*
|
198 |
+
* fromSeconds() and toMilliseconds() for all formats
|
199 |
+
*/
|
200 |
+
|
201 |
+
// 930s = 15m 30s
|
202 |
+
expect( time.toSeconds( time.fromSeconds( 930, 'mm:ss' ), 'mm:ss') ).toEqual( 930 );
|
203 |
+
expect( time.toSeconds( time.fromSeconds( 930, 'mm:ss.sss' ), 'mm:ss.sss') ).toEqual( 930 );
|
204 |
+
expect( time.toSeconds( time.fromSeconds( 930, 'hh:mm' ), 'hh:mm') ).toEqual( 930 );
|
205 |
+
expect( time.toSeconds( time.fromSeconds( 930, 'hh:mm:ss' ), 'hh:mm:ss') ).toEqual( 930 );
|
206 |
+
expect( time.toSeconds( time.fromSeconds( 930, 'hh:mm:ss.sss' ), 'hh:mm:ss.sss') ).toEqual( 930 );
|
207 |
+
|
208 |
+
// 4850s = 1h 20m 50s
|
209 |
+
expect( time.toSeconds( time.fromSeconds( 4850, 'mm:ss' ), 'mm:ss') ).toEqual( 4850 );
|
210 |
+
expect( time.toSeconds( time.fromSeconds( 4850, 'mm:ss.sss' ), 'mm:ss.sss') ).toEqual( 4850 );
|
211 |
+
expect( time.toSeconds( time.fromSeconds( 4850, 'hh:mm' ), 'hh:mm') ).toEqual( 4850 );
|
212 |
+
expect( time.toSeconds( time.fromSeconds( 4850, 'hh:mm:ss' ), 'hh:mm:ss') ).toEqual( 4850 );
|
213 |
+
expect( time.toSeconds( time.fromSeconds( 4850, 'hh:mm:ss.sss' ), 'hh:mm:ss.sss') ).toEqual( 4850 );
|
214 |
+
|
215 |
+
// -300s = -5m
|
216 |
+
expect( time.toSeconds( time.fromSeconds( -300, 'mm:ss' ), 'mm:ss') ).toEqual( -300 );
|
217 |
+
expect( time.toSeconds( time.fromSeconds( -300, 'mm:ss.sss' ), 'mm:ss.sss') ).toEqual( -300 );
|
218 |
+
expect( time.toSeconds( time.fromSeconds( -300, 'hh:mm' ), 'hh:mm') ).toEqual( -300 );
|
219 |
+
expect( time.toSeconds( time.fromSeconds( -300, 'hh:mm:ss' ), 'hh:mm:ss') ).toEqual( -300 );
|
220 |
+
expect( time.toSeconds( time.fromSeconds( -300, 'hh:mm:ss.sss' ), 'hh:mm:ss.sss') ).toEqual( -300 );
|
221 |
+
} );
|
222 |
+
} );
|
common/src/modules/utils/api.js
ADDED
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { rest } from '@moderntribe/common/utils/globals';
|
2 |
+
import 'whatwg-fetch';
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Send a request into a wp-json endpoint
|
6 |
+
*
|
7 |
+
* @param {Object} params An object with the following properties:
|
8 |
+
* - path: Path for the endpoint
|
9 |
+
* - headers: Array of extra headers for the request
|
10 |
+
* - initParams: Params send into the fetch along with headers and credentials
|
11 |
+
* - namespace: Endpoint namespace default to `wp/v2`
|
12 |
+
*
|
13 |
+
* @returns {Promise<Response>} return a fetch promise
|
14 |
+
*/
|
15 |
+
export const wpREST = async ( params ) => {
|
16 |
+
const { url = '', nonce = {}, namespaces = {} } = rest();
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @todo refactor this method as for more details look into:
|
20 |
+
* - https://github.com/moderntribe/events-gutenberg/pull/346#discussion_r222217138
|
21 |
+
*/
|
22 |
+
const options = {
|
23 |
+
path: '',
|
24 |
+
headers: {},
|
25 |
+
initParams: {},
|
26 |
+
namespace: namespaces.core || 'wp/v2',
|
27 |
+
...params,
|
28 |
+
};
|
29 |
+
|
30 |
+
const endpoint = `${ url }${ options.namespace }/${ options.path }`;
|
31 |
+
|
32 |
+
const headers = {
|
33 |
+
'X-WP-Nonce': nonce.wp_rest || '',
|
34 |
+
...options.headers,
|
35 |
+
};
|
36 |
+
|
37 |
+
try {
|
38 |
+
const response = await fetch( endpoint, {
|
39 |
+
...options.initParams,
|
40 |
+
credentials: 'include',
|
41 |
+
headers,
|
42 |
+
} );
|
43 |
+
|
44 |
+
let data = {};
|
45 |
+
|
46 |
+
if ( response.ok ) {
|
47 |
+
data = await response.json();
|
48 |
+
}
|
49 |
+
|
50 |
+
return {
|
51 |
+
response,
|
52 |
+
data,
|
53 |
+
};
|
54 |
+
} catch ( e ) {
|
55 |
+
throw e;
|
56 |
+
}
|
57 |
+
};
|
common/src/modules/utils/date.js
ADDED
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { identity } from 'lodash';
|
5 |
+
import chrono from 'chrono-node';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Wordpress dependencies
|
9 |
+
*/
|
10 |
+
import { __ } from '@wordpress/i18n';
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Internal dependencies
|
14 |
+
*/
|
15 |
+
import {
|
16 |
+
moment as momentUtil,
|
17 |
+
timezone as timezoneUtil,
|
18 |
+
} from '@moderntribe/common/utils';
|
19 |
+
import { dateSettings } from '@moderntribe/common/utils/globals';
|
20 |
+
|
21 |
+
const formats = dateSettings() && dateSettings().formats ? dateSettings().formats : {};
|
22 |
+
const timezone = dateSettings() && dateSettings().formats ? dateSettings().formats : {};
|
23 |
+
|
24 |
+
export const FORMATS = {
|
25 |
+
TIME: 'HH:mm:ss',
|
26 |
+
DATE_TIME: 'YYYY-MM-DD HH:mm:ss',
|
27 |
+
WP: {
|
28 |
+
time: 'g:i a',
|
29 |
+
time24Hr: 'H:i',
|
30 |
+
date: 'F j, Y',
|
31 |
+
datetime: 'F j, Y g:i a',
|
32 |
+
dateNoYear: 'F j',
|
33 |
+
...formats,
|
34 |
+
},
|
35 |
+
TIMEZONE: {
|
36 |
+
string: 'UTC',
|
37 |
+
...timezone,
|
38 |
+
},
|
39 |
+
DATABASE: {
|
40 |
+
date: 'Y-m-d',
|
41 |
+
datetime: 'Y-m-d H:i:s',
|
42 |
+
time: 'H:i:s',
|
43 |
+
},
|
44 |
+
};
|
45 |
+
|
46 |
+
export const TODAY = new Date();
|
47 |
+
|
48 |
+
export const timezonesAsSelectData = () => {
|
49 |
+
return timezones().map( ( tzone ) => ( {
|
50 |
+
value: tzone.key,
|
51 |
+
label: tzone.text,
|
52 |
+
} ) );
|
53 |
+
};
|
54 |
+
|
55 |
+
export const timezones = () => {
|
56 |
+
return timezoneUtil.getItems()
|
57 |
+
.map( ( group ) => group.options || [] )
|
58 |
+
.reduce( ( prev, current ) => [ ...prev, ...current ], [] );
|
59 |
+
};
|
60 |
+
|
61 |
+
export const toNaturalLanguage = ( params = {} ) => {
|
62 |
+
const options = {
|
63 |
+
date: null,
|
64 |
+
format: {
|
65 |
+
month: 'MMMM',
|
66 |
+
day: 'D',
|
67 |
+
year: 'YYYY',
|
68 |
+
time: 'h:mm a',
|
69 |
+
},
|
70 |
+
separator: '',
|
71 |
+
...params,
|
72 |
+
};
|
73 |
+
|
74 |
+
const parsed = {
|
75 |
+
text: '',
|
76 |
+
moment: options.date && momentUtil.toMoment( options.date ),
|
77 |
+
detail: {
|
78 |
+
day: '',
|
79 |
+
month: '',
|
80 |
+
year: '',
|
81 |
+
time: '',
|
82 |
+
},
|
83 |
+
isValid: false,
|
84 |
+
};
|
85 |
+
|
86 |
+
parsed.isValid = Boolean( parsed.moment && parsed.moment.isValid() );
|
87 |
+
|
88 |
+
if ( parsed.isValid ) {
|
89 |
+
parsed.detail = {
|
90 |
+
month: `${ parsed.moment.format( options.format.month ) }`,
|
91 |
+
day: `${ parsed.moment.format( options.format.day ) }`,
|
92 |
+
year: `${ parsed.moment.format( options.format.year ) }`,
|
93 |
+
time: `${ parsed.moment.format( options.format.time ) }`,
|
94 |
+
};
|
95 |
+
const { detail } = parsed;
|
96 |
+
parsed.text = `${ detail.month } ${ detail.day } ${ detail.year } ${ options.separator } ${ detail.time }`;
|
97 |
+
}
|
98 |
+
return parsed;
|
99 |
+
};
|
100 |
+
|
101 |
+
export const rangeToNaturalLanguage = ( start = '', end = '', separators = {} ) => {
|
102 |
+
const separatorOptions = {
|
103 |
+
time: __( 'at', 'events-gutenberg' ),
|
104 |
+
date: ' - ',
|
105 |
+
...separators,
|
106 |
+
};
|
107 |
+
const from = toNaturalLanguage( { date: start, separator: separatorOptions.time } );
|
108 |
+
const to = toNaturalLanguage( { date: end, separator: separatorOptions.time } );
|
109 |
+
const parts = [ from.text ];
|
110 |
+
|
111 |
+
if ( from.isValid && to.isValid ) {
|
112 |
+
if ( momentUtil.isSameDay( from.moment, to.moment ) ) {
|
113 |
+
/**
|
114 |
+
* If both dates are happening on the same day the only relevant thing is the time on the second
|
115 |
+
* part of the string (to keep string cleaner).
|
116 |
+
*
|
117 |
+
* - Current behavior 'Oct 8 2018 at 12:00 pm - Oct 8 2018 at 12:30 pm'
|
118 |
+
* - New behavior: 'Oct 8 2018 at 12:00 pm - 12:30 pm'
|
119 |
+
*/
|
120 |
+
parts.push( to.detail.time );
|
121 |
+
} else if ( momentUtil.isSameMonth( from.moment, to.moment ) ) {
|
122 |
+
/**
|
123 |
+
* If both dates are happening on the same month and not on the same day but during the same year
|
124 |
+
* we don't need to show the same year twice.
|
125 |
+
*
|
126 |
+
* - Current Behavior: 'Oct 8 2018 at 12:00 pm - Oct 24 2018 12:30 pm'
|
127 |
+
* - New Behavior: 'Oct 8 2018 at 12:00 pm - Oct 24 12:30 pm'
|
128 |
+
*/
|
129 |
+
parts.push( `${ to.detail.month } ${ to.detail.day } ${ separatorOptions.time } ${ to.detail.time }` );
|
130 |
+
} else {
|
131 |
+
// Otherwise just use the full text
|
132 |
+
parts.push( to.text );
|
133 |
+
}
|
134 |
+
}
|
135 |
+
|
136 |
+
return parts.filter( identity ).join( separatorOptions.date );
|
137 |
+
};
|
138 |
+
|
139 |
+
export const labelToDate = ( label ) => {
|
140 |
+
const [ parsed ] = chrono.parse( label );
|
141 |
+
const dates = {
|
142 |
+
start: null,
|
143 |
+
end: null,
|
144 |
+
};
|
145 |
+
if ( parsed ) {
|
146 |
+
const { start, end } = parsed;
|
147 |
+
dates.start = start ? momentUtil.toDateTime( momentUtil.toMoment( start.date() ) ) : null;
|
148 |
+
dates.end = end ? momentUtil.toDateTime( momentUtil.toMoment( end.date() ) ) : null;
|
149 |
+
}
|
150 |
+
return dates;
|
151 |
+
};
|
common/src/modules/utils/dom.js
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { noop } from 'lodash';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Test if a node element has a class present on it
|
8 |
+
*
|
9 |
+
* @param {HTMLElement|Element} node The node where to look for the class names
|
10 |
+
* @param {array} classNames List of class names as an array of strings
|
11 |
+
* @returns {boolean} `true` if has any of the classes or false if does not have any
|
12 |
+
*/
|
13 |
+
export const hasClass = ( node, classNames = [] ) => {
|
14 |
+
for ( let i = 0; i < classNames.length; i++ ) {
|
15 |
+
if ( node.classList.contains( classNames[ i ] ) ) {
|
16 |
+
return true;
|
17 |
+
}
|
18 |
+
}
|
19 |
+
return false;
|
20 |
+
};
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Utility to search the parent of a node looking from the current node Up to the highest
|
24 |
+
* node on the DOM Tree
|
25 |
+
*
|
26 |
+
* @param {(DOMElement|object)} node - The DOM node where the search starts
|
27 |
+
* @param {function} callback - Is executed on every iteration, it should return a boolean
|
28 |
+
* @returns {boolean} Returns tre if the callback returns true with any of the parents.
|
29 |
+
*/
|
30 |
+
export const searchParent = ( node = {}, callback = noop ) => {
|
31 |
+
let found = false;
|
32 |
+
let testNode = node;
|
33 |
+
do {
|
34 |
+
if ( testNode ) {
|
35 |
+
found = callback( testNode );
|
36 |
+
}
|
37 |
+
const nextNode = testNode && testNode.parentNode ? testNode.parentNode : null;
|
38 |
+
testNode = isRootNode( nextNode ) ? null : nextNode;
|
39 |
+
} while ( ! found && testNode !== null );
|
40 |
+
|
41 |
+
return found;
|
42 |
+
};
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Test if a node is the same as the root element or the base node of the document.
|
46 |
+
*
|
47 |
+
* @param {Element} node A Document Node
|
48 |
+
* @returns {boolean} true if node is the root Node Document
|
49 |
+
*/
|
50 |
+
export const isRootNode = ( node ) => node === window.top.document;
|
common/src/modules/utils/get-hidden-height.js
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* @function getHiddenHeight
|
3 |
+
* @desc gets the height of hidden objects.
|
4 |
+
*/
|
5 |
+
|
6 |
+
const getHiddenHeight = ( el ) => {
|
7 |
+
const width = el.clientWidth;
|
8 |
+
const element = el;
|
9 |
+
|
10 |
+
element.style.visibility = 'hidden';
|
11 |
+
element.style.height = 'auto';
|
12 |
+
element.style.maxHeight = 'none';
|
13 |
+
element.style.position = 'fixed';
|
14 |
+
element.style.width = `${width}px`;
|
15 |
+
|
16 |
+
const tHeight = element.offsetHeight;
|
17 |
+
|
18 |
+
element.style.visibility = '';
|
19 |
+
element.style.height = '';
|
20 |
+
element.style.maxHeight = '';
|
21 |
+
element.style.width = '';
|
22 |
+
element.style.position = '';
|
23 |
+
element.style.zIndex = '';
|
24 |
+
|
25 |
+
return tHeight;
|
26 |
+
};
|
27 |
+
|
28 |
+
export default getHiddenHeight;
|
common/src/modules/utils/globals.js
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* @todo: handle globals in a better way
|
3 |
+
*/
|
4 |
+
export const get = ( key, defaultValue ) => window[ key ] || defaultValue;
|
5 |
+
export const google = () => get( 'google' );
|
6 |
+
// Localized Config
|
7 |
+
export const config = () => get( 'tribe_editor_config', {} );
|
8 |
+
// Common
|
9 |
+
export const common = () => config().common || {};
|
10 |
+
export const adminUrl = () => common().adminUrl || '';
|
11 |
+
export const rest = () => common().rest || {};
|
12 |
+
export const restNonce = () => rest().nonce || {};
|
13 |
+
export const dateSettings = () => common().dateSettings || {};
|
14 |
+
export const editorConstants = () => common().constants || {};
|
15 |
+
export const list = () => ( {
|
16 |
+
countries: common().countries || {},
|
17 |
+
us_states: common().usStates || {},
|
18 |
+
} );
|
19 |
+
|
20 |
+
// TEC
|
21 |
+
export const tec = () => config().events || {};
|
22 |
+
export const editor = () => tec().editor || {};
|
23 |
+
export const settings = () => tec().settings || {};
|
24 |
+
export const mapsAPI = () => tec().googleMap || {};
|
25 |
+
export const priceSettings = () => tec().priceSettings || {};
|
26 |
+
export const timezoneHtml = () => tec().timezoneHTML || '';
|
27 |
+
// PRO
|
28 |
+
export const pro = () => config().eventsPRO || {};
|
29 |
+
export const editorDefaults = () => pro().defaults || {};
|
30 |
+
// Tickets
|
31 |
+
export const tickets = () => config().tickets || {};
|
common/src/modules/utils/index.js
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import * as date from './date';
|
2 |
+
import * as dom from './dom';
|
3 |
+
import * as globals from './globals';
|
4 |
+
import * as input from './input';
|
5 |
+
import * as moment from './moment';
|
6 |
+
import * as range from './range';
|
7 |
+
import * as slide from './slide';
|
8 |
+
import * as string from './string';
|
9 |
+
import * as time from './time';
|
10 |
+
import * as timezone from './timezone';
|
11 |
+
import * as number from './number';
|
12 |
+
import * as api from './api';
|
13 |
+
|
14 |
+
export { date };
|
15 |
+
export { dom };
|
16 |
+
export { default as getHiddenHeight } from './get-hidden-height';
|
17 |
+
export { globals };
|
18 |
+
export { input };
|
19 |
+
export { moment };
|
20 |
+
export { range };
|
21 |
+
export { slide };
|
22 |
+
export { string };
|
23 |
+
export { time };
|
24 |
+
export { timezone };
|
25 |
+
export { number };
|
26 |
+
export { api };
|
27 |
+
export { default as TribePropTypes } from './proptypes';
|
common/src/modules/utils/input.js
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Allow to set a function (callback) as the parameter of onChange which will send the value of the
|
3 |
+
* event into the callback to avoid arrow functions around props of components.
|
4 |
+
*
|
5 |
+
* @param {Function} callback executed once the event is fired.
|
6 |
+
* @return {Function} Function executed by the event to extract the value
|
7 |
+
*/
|
8 |
+
export const sendValue = ( callback ) => ( event ) => {
|
9 |
+
const { target = {} } = event;
|
10 |
+
const { value = '' } = target;
|
11 |
+
callback( value );
|
12 |
+
};
|
common/src/modules/utils/moment.js
ADDED
@@ -0,0 +1,331 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { isString } from 'lodash';
|
5 |
+
import moment from 'moment/moment';
|
6 |
+
|
7 |
+
/**
|
8 |
+
* Internal dependencies
|
9 |
+
*/
|
10 |
+
import {
|
11 |
+
date as dateUtil,
|
12 |
+
time,
|
13 |
+
string,
|
14 |
+
} from '@moderntribe/common/utils';
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Make sure the format provided matches the spec used by moment.js
|
18 |
+
*
|
19 |
+
* @param {string} format The format to be converted to a moment format
|
20 |
+
* @returns {string} return a moment.js valid format
|
21 |
+
*/
|
22 |
+
export const toFormat = ( format ) => {
|
23 |
+
const replacements = {
|
24 |
+
d: 'DD',
|
25 |
+
D: 'ddd',
|
26 |
+
j: 'D',
|
27 |
+
l: 'dddd',
|
28 |
+
N: 'E',
|
29 |
+
S: 'o',
|
30 |
+
w: 'e',
|
31 |
+
z: 'DDD',
|
32 |
+
W: 'W',
|
33 |
+
F: 'MMMM',
|
34 |
+
m: 'MM',
|
35 |
+
M: 'MMM',
|
36 |
+
n: 'M',
|
37 |
+
t: '', // no equivalent
|
38 |
+
L: '', // no equivalent
|
39 |
+
o: 'YYYY',
|
40 |
+
Y: 'YYYY',
|
41 |
+
y: 'YY',
|
42 |
+
a: 'a',
|
43 |
+
A: 'A',
|
44 |
+
B: '', // no equivalent
|
45 |
+
g: 'h',
|
46 |
+
G: 'H',
|
47 |
+
h: 'hh',
|
48 |
+
H: 'HH',
|
49 |
+
i: 'mm',
|
50 |
+
s: 'ss',
|
51 |
+
u: 'SSS',
|
52 |
+
e: 'zz', // deprecated since version 1.6.0 of moment.js
|
53 |
+
I: '', // no equivalent
|
54 |
+
O: '', // no equivalent
|
55 |
+
P: '', // no equivalent
|
56 |
+
T: '', // no equivalent
|
57 |
+
Z: '', // no equivalent
|
58 |
+
c: '', // no equivalent
|
59 |
+
r: '', // no equivalent
|
60 |
+
U: 'X',
|
61 |
+
};
|
62 |
+
|
63 |
+
return string.replaceWithObject( format, replacements );
|
64 |
+
};
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Round the time of a moment object if the minutes on the date is lower than 30 will set to 0 if
|
68 |
+
* is greater will se 30 so is either 30 or 0.
|
69 |
+
*
|
70 |
+
* @param {moment} date Make sure the date is rounded between 0 or 30 minutes
|
71 |
+
* @returns {moment} A moment object
|
72 |
+
*/
|
73 |
+
export const roundTime = ( date ) => {
|
74 |
+
if ( ! ( date instanceof moment ) ) {
|
75 |
+
return date;
|
76 |
+
}
|
77 |
+
|
78 |
+
let minutes = date.minute();
|
79 |
+
if ( minutes >= 30 ) {
|
80 |
+
minutes = ( minutes % 30 );
|
81 |
+
}
|
82 |
+
|
83 |
+
return date
|
84 |
+
.clone()
|
85 |
+
.subtract( minutes, 'm' )
|
86 |
+
.seconds( 0 );
|
87 |
+
};
|
88 |
+
|
89 |
+
/**
|
90 |
+
* Parse multiple formats in a date to ensure the generated dates are valid
|
91 |
+
*
|
92 |
+
* @param {string} date The date to be converted
|
93 |
+
* @param {array} formats The list of formats used to format
|
94 |
+
* @returns {moment} moment Object with the date or current date if is non valid
|
95 |
+
*/
|
96 |
+
export const parseFormats = ( date, formats = [ dateUtil.FORMATS.DATABASE.datetime, dateUtil.FORMATS.WP.datetime ] ) => {
|
97 |
+
for ( let i = 0; i < formats.length; i ++ ) {
|
98 |
+
const format = formats[ i ];
|
99 |
+
const result = toMoment( date, format );
|
100 |
+
if ( result.isValid() ) {
|
101 |
+
return result;
|
102 |
+
}
|
103 |
+
}
|
104 |
+
|
105 |
+
const noFormat = moment( date );
|
106 |
+
return noFormat.isValid() ? noFormat : moment();
|
107 |
+
};
|
108 |
+
|
109 |
+
/**
|
110 |
+
* Convert a Date() object into a Moment.js object avoiding warnings of different formats
|
111 |
+
* used by Date
|
112 |
+
*
|
113 |
+
* @param {(Date|moment|string)} date The date to be converted.
|
114 |
+
* @param {string} format The format of the data to be used
|
115 |
+
* @param {bool} Force the parse of the format default to true
|
116 |
+
* @returns {moment} A moment object
|
117 |
+
*/
|
118 |
+
export const toMoment = ( date, format = dateUtil.FORMATS.DATABASE.datetime, parseFormat = true ) => {
|
119 |
+
if ( date instanceof moment || date instanceof Date ) {
|
120 |
+
return moment( date );
|
121 |
+
} else if ( isString( date ) ) {
|
122 |
+
return moment( date, parseFormat ? toFormat( format ) : format );
|
123 |
+
}
|
124 |
+
|
125 |
+
return moment();
|
126 |
+
};
|
127 |
+
|
128 |
+
export const toMomentFromDate = ( date ) => {
|
129 |
+
if ( ! ( date instanceof Date ) ) {
|
130 |
+
throw new Error( 'Make sure your date is an instance of Date' );
|
131 |
+
}
|
132 |
+
|
133 |
+
const year = date.getFullYear();
|
134 |
+
const month = date.getMonth();
|
135 |
+
const day = date.getDate();
|
136 |
+
|
137 |
+
return moment()
|
138 |
+
.year( year )
|
139 |
+
.month( month )
|
140 |
+
.date( day )
|
141 |
+
.startOf( 'day' );
|
142 |
+
};
|
143 |
+
|
144 |
+
/**
|
145 |
+
* Convert a Date() object or date string and time into a moment object
|
146 |
+
*
|
147 |
+
* @param {(Date|moment|string)} date The date to be converted.
|
148 |
+
* @param {string} time The time string in HH:mm format..
|
149 |
+
* @returns {moment} A moment object
|
150 |
+
*/
|
151 |
+
export const toMomentFromDateTime = ( date, time ) => {
|
152 |
+
const [ hours, minutes ] = time.split( ':' );
|
153 |
+
return moment( date ).hours( hours ).minutes( minutes );
|
154 |
+
};
|
155 |
+
|
156 |
+
/**
|
157 |
+
* Replace the date of a moment object with another date from another moment object
|
158 |
+
*
|
159 |
+
* @param {moment} original The moment object where the date is going to be replaced
|
160 |
+
* @param {moment} replaced The moment object where the date to be used to replace is located
|
161 |
+
* @returns {moment} A moment object where the date is replaced
|
162 |
+
*/
|
163 |
+
export const replaceDate = ( original, replaced ) => {
|
164 |
+
if ( ! ( original instanceof moment ) || ! ( replaced instanceof moment ) ) {
|
165 |
+
throw new Error( 'Make sure your values are instances of moment' );
|
166 |
+
}
|
167 |
+
|
168 |
+
return original
|
169 |
+
.year( replaced.year() )
|
170 |
+
.month( replaced.month() )
|
171 |
+
.date( replaced.date() );
|
172 |
+
};
|
173 |
+
|
174 |
+
/**
|
175 |
+
* Set time in seconds to a moment object
|
176 |
+
*
|
177 |
+
* @param {moment} original The original moment where the date is going to be set
|
178 |
+
* @param {number} seconds Amount of seconds to be set to the moment object.
|
179 |
+
* @returns {moment} A moment object with the new date
|
180 |
+
*/
|
181 |
+
export const setTimeInSeconds = ( original, seconds = 0 ) => {
|
182 |
+
if ( ! ( original instanceof moment ) ) {
|
183 |
+
throw new Error( 'Make sure your values are instances of moment' );
|
184 |
+
}
|
185 |
+
|
186 |
+
if ( seconds < 0 ) {
|
187 |
+
return original;
|
188 |
+
}
|
189 |
+
|
190 |
+
return original
|
191 |
+
.startOf( 'day' )
|
192 |
+
.seconds( seconds || original.seconds() );
|
193 |
+
};
|
194 |
+
|
195 |
+
/**
|
196 |
+
* Total seconds of a current date from moment
|
197 |
+
*
|
198 |
+
* @param {moment} date The date to compare on the current day
|
199 |
+
* @returns {int} Total of seconds from start of the day to the current moment,
|
200 |
+
*/
|
201 |
+
export const totalSeconds = ( date ) => {
|
202 |
+
if ( ! date || ! ( date instanceof moment ) ) {
|
203 |
+
return 0;
|
204 |
+
}
|
205 |
+
|
206 |
+
return date.diff( moment( date ).startOf( 'day' ), 'seconds' );
|
207 |
+
};
|
208 |
+
|
209 |
+
/**
|
210 |
+
* Convert a moment object into a WP date time format
|
211 |
+
*
|
212 |
+
* @param {moment} date A moment date object
|
213 |
+
* @param {string} format Format used to output the date
|
214 |
+
* @returns {string} A date time format
|
215 |
+
*/
|
216 |
+
export const toDateTime = ( date, format = dateUtil.FORMATS.DATABASE.datetime ) => (
|
217 |
+
date.format( toFormat( format ) )
|
218 |
+
);
|
219 |
+
|
220 |
+
export const toDate = ( date, format = dateUtil.FORMATS.WP.date ) => (
|
221 |
+
date.format( toFormat( format ) )
|
222 |
+
);
|
223 |
+
|
224 |
+
export const toDateNoYear = ( date, format = dateUtil.FORMATS.WP.dateNoYear ) => (
|
225 |
+
date.format( toFormat( format ) )
|
226 |
+
);
|
227 |
+
|
228 |
+
export const toTime = ( date, format = dateUtil.FORMATS.WP.time ) => (
|
229 |
+
date.format( toFormat( format ) )
|
230 |
+
);
|
231 |
+
|
232 |
+
export const toTime24Hr = ( date, format = dateUtil.FORMATS.WP.time24Hr ) => (
|
233 |
+
date.format( toFormat( format ) )
|
234 |
+
);
|
235 |
+
|
236 |
+
export const toDatabaseDate = ( date, format = dateUtil.FORMATS.DATABASE.date ) => (
|
237 |
+
date.format( toFormat( format ) )
|
238 |
+
);
|
239 |
+
|
240 |
+
export const toDatabaseTime = ( date, format = dateUtil.FORMATS.DATABASE.time ) => (
|
241 |
+
date.format( toFormat( format ) )
|
242 |
+
);
|
243 |
+
|
244 |
+
export const toDatePicker = ( date = moment(), format = 'YYYY-MM-DDTHH:mm:ss' ) => (
|
245 |
+
date.format( format )
|
246 |
+
);
|
247 |
+
|
248 |
+
/**
|
249 |
+
* Test if the start and end dates are the same day.
|
250 |
+
*
|
251 |
+
* @param {moment} start The start date
|
252 |
+
* @param {(moment|String)} end The end date
|
253 |
+
* @returns {boolean} if the start and end dates are the same day
|
254 |
+
*/
|
255 |
+
export const isSameDay = ( start, end ) => {
|
256 |
+
|
257 |
+
if ( ! start || ! end ) {
|
258 |
+
return false;
|
259 |
+
}
|
260 |
+
|
261 |
+
return moment( start ).isSame( end, 'day' );
|
262 |
+
};
|
263 |
+
|
264 |
+
/**
|
265 |
+
* Test if two moment objects are in the same month
|
266 |
+
*
|
267 |
+
* @param {moment} start The start moment
|
268 |
+
* @param {moment} end The end moment
|
269 |
+
* @returns {boolean} true if start and end are on the same month
|
270 |
+
*/
|
271 |
+
export const isSameMonth = ( start, end ) => {
|
272 |
+
|
273 |
+
if ( ! start || ! end ) {
|
274 |
+
return false;
|
275 |
+
}
|
276 |
+
|
277 |
+
return moment( start ).isSame( end, 'month' );
|
278 |
+
};
|
279 |
+
|
280 |
+
/**
|
281 |
+
* Test if the start and end dates have the same year.
|
282 |
+
*
|
283 |
+
* @param {moment} start The start date
|
284 |
+
* @param {(moment|String)} end The end date
|
285 |
+
* @returns {boolean} if the start and end dates have the same year
|
286 |
+
*/
|
287 |
+
export const isSameYear = ( start, end ) => (
|
288 |
+
toMoment( start ).isSame( toMoment( end ), 'year' )
|
289 |
+
);
|
290 |
+
|
291 |
+
/**
|
292 |
+
* Reset the time of an event by creating an object with start and end ensuring the end event is
|
293 |
+
* after the start date and both are on the same day if the start is one hour before the end of the
|
294 |
+
* day it will remove an hour of the start to ensure both start / end happen on the same day
|
295 |
+
*
|
296 |
+
* @param {moment} start The start date
|
297 |
+
* @returns {{start: {moment}, end: {moment}}} Object with two keys: start, end
|
298 |
+
*/
|
299 |
+
export const resetTimes = ( start ) => {
|
300 |
+
const testMoment = start.clone().add( time.HOUR_IN_SECONDS, 'seconds' );
|
301 |
+
|
302 |
+
// Rollback an hour before adding half an hour as we are on the edge of the day
|
303 |
+
if ( ! isSameDay( start, testMoment ) ) {
|
304 |
+
start.subtract( time.HOUR_IN_SECONDS, 'seconds' );
|
305 |
+
}
|
306 |
+
|
307 |
+
const end = start.clone().add( time.HOUR_IN_SECONDS, 'seconds' );
|
308 |
+
|
309 |
+
return {
|
310 |
+
start,
|
311 |
+
end,
|
312 |
+
};
|
313 |
+
};
|
314 |
+
|
315 |
+
/**
|
316 |
+
* Make sure the start time is always before the end time
|
317 |
+
*
|
318 |
+
* @param {moment} start The start date
|
319 |
+
* @param {moment} end The end date
|
320 |
+
* @returns {{start: {moment}, end: {moment}}} Object with two keys: start, end
|
321 |
+
*/
|
322 |
+
export const adjustStart = ( start, end ) => {
|
323 |
+
if ( end.isSameOrBefore( start ) ) {
|
324 |
+
return resetTimes( start );
|
325 |
+
}
|
326 |
+
|
327 |
+
return {
|
328 |
+
start,
|
329 |
+
end,
|
330 |
+
};
|
331 |
+
};
|
common/src/modules/utils/number.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Calculate the percentage of two numbers
|
3 |
+
*
|
4 |
+
* @param {number} value Initial value from where to take the percentage
|
5 |
+
* @param {number} total Total value to get the percentage relative to this value
|
6 |
+
* @returns {number} total percentage value
|
7 |
+
*/
|
8 |
+
export const percentage = ( value = 0, total = 0 ) => {
|
9 |
+
if ( total === 0 ) {
|
10 |
+
return 0;
|
11 |
+
}
|
12 |
+
|
13 |
+
const result = Number.parseFloat( ( value / total ) * 100 );
|
14 |
+
|
15 |
+
if ( isNaN( result ) ) {
|
16 |
+
throw new RangeError(
|
17 |
+
`Make sure ${value} and ${total} are valid numbers, operation result in NaN value`
|
18 |
+
);
|
19 |
+
}
|
20 |
+
|
21 |
+
return result;
|
22 |
+
};
|
common/src/modules/utils/proptypes.js
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Create chainable validator with isRequired check
|
3 |
+
* @param {function} validator
|
4 |
+
*/
|
5 |
+
export const createChainableValidator = ( validator ) => {
|
6 |
+
const createChainedValidator = (
|
7 |
+
isRequired,
|
8 |
+
props,
|
9 |
+
propName,
|
10 |
+
componentName,
|
11 |
+
) => {
|
12 |
+
const propValue = props[ propName ];
|
13 |
+
|
14 |
+
if ( propValue == null ) {
|
15 |
+
if ( isRequired ) {
|
16 |
+
if ( propValue === null ) {
|
17 |
+
/* eslint-disable-next-line max-len */
|
18 |
+
return new Error( `The prop \`${propName}\` is marked as required in \`${componentName}\`, but its value is \`null\`.` );
|
19 |
+
}
|
20 |
+
/* eslint-disable-next-line max-len */
|
21 |
+
return new Error( `The prop \`${propName}\` is marked as required in \`${componentName}\`, but its value is \`undefined\`.` );
|
22 |
+
}
|
23 |
+
return null;
|
24 |
+
} else {
|
25 |
+
return validator( props, propName, componentName );
|
26 |
+
}
|
27 |
+
};
|
28 |
+
|
29 |
+
const chainedValidator = createChainedValidator.bind( null, false );
|
30 |
+
chainedValidator.isRequired = createChainedValidator.bind( null, true );
|
31 |
+
|
32 |
+
return chainedValidator;
|
33 |
+
}
|
34 |
+
|
35 |
+
export const timeRegex = /^([01]?[0-9]|2[0-3]):[0-5][0-9]$/;
|
36 |
+
|
37 |
+
/**
|
38 |
+
* PropTypes check for type string and time format using 24h clock in hh:mm format
|
39 |
+
* e.g. 00:24, 03:57, 21:12
|
40 |
+
*
|
41 |
+
* @param {object} props
|
42 |
+
* @param {string} propName
|
43 |
+
* @param {string} componentName
|
44 |
+
*/
|
45 |
+
export const timeFormat = ( props, propName, componentName ) => {
|
46 |
+
const propValue = props[ propName ];
|
47 |
+
|
48 |
+
if ( typeof propValue !== 'string' ) {
|
49 |
+
const type = typeof propValue;
|
50 |
+
/* eslint-disable-next-line max-len */
|
51 |
+
return new Error( `Invalid prop \`${propName}\` of type \`${type}\` supplied to \`${componentName}\`, expected \`string\`.` );
|
52 |
+
}
|
53 |
+
|
54 |
+
if ( ! timeRegex.test( propValue ) ) {
|
55 |
+
/* eslint-disable-next-line max-len */
|
56 |
+
return new Error( `Invalid prop \`${propName}\` format supplied to \`${componentName}\`, expected \`hh:mm\`.` );
|
57 |
+
}
|
58 |
+
|
59 |
+
return null;
|
60 |
+
};
|
61 |
+
|
62 |
+
export const nullType = ( props, propName, componentName ) => {
|
63 |
+
if ( null !== props[ propName ] ) {
|
64 |
+
return new Error(
|
65 |
+
`Invalid prop: \`${propName}\` supplied to \`${ componentName }\`, expect null.`
|
66 |
+
);
|
67 |
+
}
|
68 |
+
}
|
69 |
+
|
70 |
+
export default {
|
71 |
+
timeFormat: createChainableValidator( timeFormat ),
|
72 |
+
nullType: createChainableValidator( nullType ),
|
73 |
+
};
|
common/src/modules/utils/range.js
ADDED
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { trim, isEmpty, split } from 'lodash';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Parse a string into a range type of string {a} - {b} where a and b are numbers
|
8 |
+
*
|
9 |
+
* @param {string} input The original string
|
10 |
+
* @returns {string} A formatted range string.
|
11 |
+
*/
|
12 |
+
export const parser = ( input ) => {
|
13 |
+
const range = trim( input );
|
14 |
+
|
15 |
+
if ( isEmpty( range ) ) {
|
16 |
+
return range;
|
17 |
+
}
|
18 |
+
|
19 |
+
const chars = parseChars( input );
|
20 |
+
|
21 |
+
if ( isEmpty( chars ) ) {
|
22 |
+
return chars;
|
23 |
+
}
|
24 |
+
|
25 |
+
const [ a, b ] = extractParts( chars );
|
26 |
+
const [ num_a, num_b ] = [ parseFloat( a ), parseFloat( b ) ];
|
27 |
+
|
28 |
+
if ( ! num_b || num_b === num_a ) {
|
29 |
+
return num_a === 0 ? '' : trim( a );
|
30 |
+
}
|
31 |
+
|
32 |
+
return num_a >= num_b ? `${ trim( b ) } - ${ trim( a ) }` : `${ trim( a ) } - ${ trim( b ) }`;
|
33 |
+
};
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Remove any char that is not a: number, dash, dot or comma.
|
37 |
+
*
|
38 |
+
* @param {string} input The string from where to extract the chars
|
39 |
+
* @returns {string} A string with only valid chars
|
40 |
+
*/
|
41 |
+
export const parseChars = ( input = '' ) => (
|
42 |
+
split( input, ' ' )
|
43 |
+
.map( ( part ) => {
|
44 |
+
// Remove anything that is not a number a period or a dash
|
45 |
+
return part.replace( /[^0-9.,-]/g, '' );
|
46 |
+
} )
|
47 |
+
.join( ' ' )
|
48 |
+
.trim()
|
49 |
+
);
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Extract only valid numbers from the string
|
53 |
+
*
|
54 |
+
* @param {string} chars The chars to be split into parts.
|
55 |
+
* @returns {array} An array with the parts
|
56 |
+
*/
|
57 |
+
export const extractParts = ( chars ) => (
|
58 |
+
split( chars.replace( /,/g, '.' ), '-' )
|
59 |
+
// Convert , into . so we can parse into numbers
|
60 |
+
.map( ( item ) => {
|
61 |
+
const re = /([0-9]+(.[0-9]+)?)/g;
|
62 |
+
const result = re.exec( item.trim() );
|
63 |
+
return null === result ? '' : result[ 1 ];
|
64 |
+
} )
|
65 |
+
.filter( ( item ) => ! isEmpty( item ) )
|
66 |
+
.map( ( item ) => {
|
67 |
+
// If the user input the price with decimals (even .00) we want to keep them
|
68 |
+
const decimals = 0 < item.indexOf( '.' ) ? 2 : 0;
|
69 |
+
return parseFloat( item ).toFixed( decimals );
|
70 |
+
} )
|
71 |
+
.filter( ( item ) => ! isNaN( item ) )
|
72 |
+
.slice( 0, 2 )
|
73 |
+
);
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Test to see if an input range is free of cost
|
77 |
+
*
|
78 |
+
* @param {string} input Range input
|
79 |
+
* @returns {boolean} true if the event has 0 on all parts of the range, false otherwise
|
80 |
+
*/
|
81 |
+
export const isFree = ( input ) => {
|
82 |
+
const parts = split( input, '-' );
|
83 |
+
const test = parts
|
84 |
+
.map( ( item ) => parseFloat( item ) )
|
85 |
+
.filter( ( item ) => ! isNaN( item ) )
|
86 |
+
.filter( ( item ) => item === 0 );
|
87 |
+
|
88 |
+
return parts.length === test.length;
|
89 |
+
};
|
common/src/modules/utils/slide.js
ADDED
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* Element to slide gets the following CSS:
|
3 |
+
* max-height: 0;
|
4 |
+
* overflow: hidden;
|
5 |
+
*/
|
6 |
+
import BezierEasing from 'bezier-easing';
|
7 |
+
import getHiddenHeight from './get-hidden-height';
|
8 |
+
|
9 |
+
const ease = BezierEasing( 0.25, 0.1, 0.25, 1 );
|
10 |
+
|
11 |
+
const requestIds = {};
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Check that request id exists, if not create an entry
|
15 |
+
* @param {string} id Unique ID of animation
|
16 |
+
*/
|
17 |
+
export const checkRequestIds = ( id ) => {
|
18 |
+
if ( ! requestIds[ id ] ) {
|
19 |
+
requestIds[ id ] = {
|
20 |
+
up: null,
|
21 |
+
down: null,
|
22 |
+
};
|
23 |
+
}
|
24 |
+
|
25 |
+
return requestIds[ id ];
|
26 |
+
};
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Cancel animations with request id
|
30 |
+
* @param {string} id Unique ID of animation
|
31 |
+
*/
|
32 |
+
const cancelAnimations = ( id ) => {
|
33 |
+
if ( requestIds[ id ].up ) {
|
34 |
+
window.cancelAnimationFrame( requestIds[ id ].up );
|
35 |
+
requestIds[ id ].up = null;
|
36 |
+
}
|
37 |
+
if ( requestIds[ id ].down ) {
|
38 |
+
window.cancelAnimationFrame( requestIds[ id ].down );
|
39 |
+
requestIds[ id ].down = null;
|
40 |
+
}
|
41 |
+
};
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Like jQuery's slideDown function
|
45 |
+
* @param {Node} elem Element to show and hide
|
46 |
+
* @param {string} id Unique ID of animation
|
47 |
+
* @param {int} time Length of animation in ms
|
48 |
+
* @param {function} callback Callback function
|
49 |
+
*/
|
50 |
+
export const down = ( elem, id, time = 400, callback = null ) => {
|
51 |
+
const startHeight = elem.offsetHeight;
|
52 |
+
const endHeight = getHiddenHeight( elem );
|
53 |
+
let startTime = null;
|
54 |
+
elem.style.maxHeight = '0';
|
55 |
+
|
56 |
+
checkRequestIds( id );
|
57 |
+
cancelAnimations( id );
|
58 |
+
|
59 |
+
const step = ( timestamp ) => {
|
60 |
+
if ( ! startTime ) {
|
61 |
+
startTime = timestamp;
|
62 |
+
}
|
63 |
+
const timeDiff = timestamp - startTime;
|
64 |
+
const progress = ease( timeDiff / time );
|
65 |
+
const height = ( progress * ( endHeight - startHeight ) ) + startHeight;
|
66 |
+
elem.style.maxHeight = `${height}px`;
|
67 |
+
|
68 |
+
if ( timeDiff < time ) {
|
69 |
+
requestIds[ id ].down = window.requestAnimationFrame( step );
|
70 |
+
} else {
|
71 |
+
requestIds[ id ].down = null;
|
72 |
+
elem.style.maxHeight = 'none';
|
73 |
+
if ( callback ) {
|
74 |
+
callback();
|
75 |
+
}
|
76 |
+
}
|
77 |
+
};
|
78 |
+
|
79 |
+
requestIds[ id ].down = window.requestAnimationFrame( step );
|
80 |
+
};
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Slide element up
|
84 |
+
* @param {Node} elem Element to show and hide
|
85 |
+
* @param {string} id Unique ID of animation
|
86 |
+
* @param {int} time Length of animation in ms
|
87 |
+
* @param {function} callback Callback function
|
88 |
+
*/
|
89 |
+
export const up = ( elem, id, time = 400, callback = null ) => {
|
90 |
+
const startHeight = elem.offsetHeight;
|
91 |
+
const endHeight = 0;
|
92 |
+
let startTime = null;
|
93 |
+
elem.style.maxHeight = `${startHeight}px`;
|
94 |
+
|
95 |
+
checkRequestIds( id );
|
96 |
+
cancelAnimations( id );
|
97 |
+
|
98 |
+
const step = ( timestamp ) => {
|
99 |
+
if ( ! startTime ) {
|
100 |
+
startTime = timestamp;
|
101 |
+
}
|
102 |
+
const timeDiff = timestamp - startTime;
|
103 |
+
const progress = ease( timeDiff / time );
|
104 |
+
const height = ( progress * ( endHeight - startHeight ) ) + startHeight;
|
105 |
+
elem.style.maxHeight = `${height}px`;
|
106 |
+
|
107 |
+
if ( timeDiff < time ) {
|
108 |
+
requestIds[ id ].up = window.requestAnimationFrame( step );
|
109 |
+
} else {
|
110 |
+
requestIds[ id ].up = null;
|
111 |
+
elem.style.maxHeight = '0';
|
112 |
+
if ( callback ) {
|
113 |
+
callback();
|
114 |
+
}
|
115 |
+
}
|
116 |
+
};
|
117 |
+
|
118 |
+
requestIds[ id ].up = window.requestAnimationFrame( step );
|
119 |
+
};
|
common/src/modules/utils/string.js
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { escapeRegExp, isUndefined, isString, identity } from 'lodash';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Test if a string is equivalent to a true value
|
8 |
+
*
|
9 |
+
* @param {string} value The value to be tested
|
10 |
+
* @returns {boolean} true if the value is a valid "true" value.
|
11 |
+
*/
|
12 |
+
export const isTruthy = ( value ) => {
|
13 |
+
const validValues = [
|
14 |
+
'true',
|
15 |
+
'yes',
|
16 |
+
'1',
|
17 |
+
];
|
18 |
+
return validValues.indexOf( value ) !== -1;
|
19 |
+
};
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Test if a string is equivalent to a false value
|
23 |
+
*
|
24 |
+
* @param {string} value The value to be tested
|
25 |
+
* @returns {boolean} true if the value is a valid "false" value.
|
26 |
+
*/
|
27 |
+
export const isFalsy = ( value ) => {
|
28 |
+
const validValues = [
|
29 |
+
'false',
|
30 |
+
'no',
|
31 |
+
'0',
|
32 |
+
'',
|
33 |
+
];
|
34 |
+
return validValues.indexOf( value ) !== -1;
|
35 |
+
};
|
36 |
+
|
37 |
+
export const replaceWithObject = ( str = '', pairs = {} ) => {
|
38 |
+
const substrs = Object.keys( pairs ).map( escapeRegExp );
|
39 |
+
return str.split( RegExp( `(${ substrs.join( '|' ) })` ) )
|
40 |
+
.map( part => isUndefined( pairs[ part ] ) ? part : pairs[ part ] )
|
41 |
+
.join( '' );
|
42 |
+
};
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Extract the words from a string into an array of words removing all the empty spaces.
|
46 |
+
*
|
47 |
+
* @param {string} text The initial text
|
48 |
+
* @returns {array} Return an array with the words
|
49 |
+
*/
|
50 |
+
export const getWords = ( text = '' ) => {
|
51 |
+
if ( ! isString( text ) ) {
|
52 |
+
return [];
|
53 |
+
}
|
54 |
+
return text.split( /\s/ ).filter( identity );
|
55 |
+
};
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Apply separators specifically for check box style list where if there are more than 2 words the first
|
59 |
+
* separators except the last is different from the rest, and if there are only 2 words it only uses
|
60 |
+
* the last separator instead
|
61 |
+
*
|
62 |
+
* @param {array} words The list of words to join
|
63 |
+
* @param {string} startSeparator the separator applied if there are more than 2 words between all the words except the last one
|
64 |
+
* @param {string} endSeparator separator applied between the last words
|
65 |
+
* @returns {string} return a string with custom separators between words
|
66 |
+
*/
|
67 |
+
export const wordsAsList = ( words, startSeparator = ', ', endSeparator = ' & ' ) => {
|
68 |
+
if ( words.length <= 1 ) {
|
69 |
+
return words.join( '' );
|
70 |
+
} else {
|
71 |
+
const start = words.slice( 0, words.length - 1 ).join( startSeparator );
|
72 |
+
const last = words[ words.length - 1 ];
|
73 |
+
return `${ start }${ endSeparator }${ last }`;
|
74 |
+
}
|
75 |
+
};
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Creates a string that only contains a-z characters, useful specially for keys
|
79 |
+
*
|
80 |
+
* @param {string} text Then ame to be normalized
|
81 |
+
* @returns {string} A formatted string with no spacing and only a-z chars
|
82 |
+
*/
|
83 |
+
export const normalize = ( text = '' ) => {
|
84 |
+
if ( ! isString( text ) ) {
|
85 |
+
return '';
|
86 |
+
}
|
87 |
+
return text.toLowerCase()
|
88 |
+
// Remove any non word or space
|
89 |
+
.replace( /[^a-z\s]/g, '' )
|
90 |
+
.trim()
|
91 |
+
.replace( /\s+/g, '-' );
|
92 |
+
};
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Remove invalid characters from a string that aren't consider as valid for a block name.
|
96 |
+
*
|
97 |
+
* @since 4.8
|
98 |
+
*
|
99 |
+
* @param {string} text The text to be formatted as block name
|
100 |
+
* @returns {string} The formatted text
|
101 |
+
*/
|
102 |
+
export const toBlockName = ( text = '' ) => {
|
103 |
+
if ( ! isString( text ) ) {
|
104 |
+
return '';
|
105 |
+
}
|
106 |
+
|
107 |
+
// Remove any non numeric, a-z or - value
|
108 |
+
return text.replace(/[^a-zA-Z0-9-]/g, '' );
|
109 |
+
}
|
common/src/modules/utils/time.js
ADDED
@@ -0,0 +1,207 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import zeroFill from 'zero-fill';
|
5 |
+
|
6 |
+
export const MINUTE_IN_SECONDS = 60;
|
7 |
+
export const HALF_HOUR_IN_SECONDS = MINUTE_IN_SECONDS * 30;
|
8 |
+
export const HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS;
|
9 |
+
export const DAY_IN_SECONDS = 24 * HOUR_IN_SECONDS;
|
10 |
+
|
11 |
+
export const START_OF_DAY = '00:00';
|
12 |
+
export const END_OF_DAY = '23:59';
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Round the time of a time string
|
16 |
+
* If the minutes is lower than 30, it will round the minutes to 0
|
17 |
+
* If the minutes is greater than or equal to 30, it will round the minutes to 30
|
18 |
+
*
|
19 |
+
* @param {string} time
|
20 |
+
* @returns {moment} A moment object
|
21 |
+
*/
|
22 |
+
export const roundTime = ( time, format = TIME_FORMAT_MM_SS ) => {
|
23 |
+
const seconds = toSeconds( time, format );
|
24 |
+
const overage = seconds % ( MINUTE_IN_SECONDS * 30 );
|
25 |
+
const roundedSeconds = seconds - overage;
|
26 |
+
return fromSeconds( roundedSeconds, format );
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* The code below is copied from the library hh-mm-ss
|
31 |
+
* Link: https://www.npmjs.com/package/hh-mm-ss
|
32 |
+
* The code has been copied so that Modern Tribe can maintain this library
|
33 |
+
* internally and adjust as needed.
|
34 |
+
*/
|
35 |
+
export const TIME_FORMAT_HH_MM_SS_SSS = 'hh:mm:ss.sss';
|
36 |
+
export const TIME_FORMAT_HH_MM_SS = 'hh:mm:ss';
|
37 |
+
export const TIME_FORMAT_HH_MM = 'hh:mm';
|
38 |
+
export const TIME_FORMAT_MM_SS_SSS = 'mm:ss.sss';
|
39 |
+
export const TIME_FORMAT_MM_SS = 'mm:ss';
|
40 |
+
|
41 |
+
export const SECOND_IN_MS = 1000;
|
42 |
+
export const MINUTE_IN_MS = MINUTE_IN_SECONDS * SECOND_IN_MS;
|
43 |
+
export const HOUR_IN_MS = HOUR_IN_SECONDS * SECOND_IN_MS;
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Converts milliseconds to time in the format provided
|
47 |
+
*
|
48 |
+
* @param {int} ms Milliseconds to convert from
|
49 |
+
* @param {string} format Format of time to convert to
|
50 |
+
* @returns {string} Time string equivalent of milliseconds in format provided
|
51 |
+
*/
|
52 |
+
export const fromMilliseconds = ( ms, format = TIME_FORMAT_MM_SS ) => {
|
53 |
+
if ( typeof ms !== 'number' || Number.isNaN( ms ) ) {
|
54 |
+
/* eslint-disable-next-line max-len */
|
55 |
+
throw new Error( 'Argument `ms` provided to `fromMilliseconds` is not a number or is NaN.' );
|
56 |
+
}
|
57 |
+
|
58 |
+
const absMs = Math.abs( ms );
|
59 |
+
|
60 |
+
const negative = ( ms < 0 );
|
61 |
+
const hours = Math.floor( absMs / HOUR_IN_MS );
|
62 |
+
const minutes = Math.floor( absMs % HOUR_IN_MS / MINUTE_IN_MS );
|
63 |
+
const seconds = Math.floor( absMs % MINUTE_IN_MS / SECOND_IN_MS );
|
64 |
+
const miliseconds = Math.floor( absMs % SECOND_IN_MS );
|
65 |
+
|
66 |
+
return formatTime( {
|
67 |
+
negative,
|
68 |
+
hours,
|
69 |
+
minutes,
|
70 |
+
seconds,
|
71 |
+
miliseconds,
|
72 |
+
}, format );
|
73 |
+
};
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Converts seconds to time in the format provided
|
77 |
+
*
|
78 |
+
* @param {int} s Seconds to convert from
|
79 |
+
* @param {string} format Format of time to convert to
|
80 |
+
* @returns {string} Time string equivalent of seconds in format provided
|
81 |
+
*/
|
82 |
+
export const fromSeconds = ( s, format = TIME_FORMAT_MM_SS ) => {
|
83 |
+
if ( typeof s !== 'number' || Number.isNaN( s ) ) {
|
84 |
+
/* eslint-disable-next-line max-len */
|
85 |
+
throw new Error( 'Argument `s` provided to `fromSeconds` is not a number or is NaN.' );
|
86 |
+
}
|
87 |
+
|
88 |
+
const ms = s * SECOND_IN_MS;
|
89 |
+
|
90 |
+
return fromMilliseconds( ms, format );
|
91 |
+
};
|
92 |
+
|
93 |
+
/**
|
94 |
+
* Converts time in the format provided to milliseconds
|
95 |
+
*
|
96 |
+
* @param {string} time Time string to convert from
|
97 |
+
* @param {string} format Format of time to convert from
|
98 |
+
* @returns {int} Milliseconds equivalent of time string in format provided
|
99 |
+
*/
|
100 |
+
export const toMilliseconds = ( time, format = TIME_FORMAT_MM_SS ) => {
|
101 |
+
let re;
|
102 |
+
|
103 |
+
if ( [
|
104 |
+
TIME_FORMAT_HH_MM_SS_SSS,
|
105 |
+
TIME_FORMAT_HH_MM_SS,
|
106 |
+
TIME_FORMAT_MM_SS_SSS,
|
107 |
+
TIME_FORMAT_MM_SS,
|
108 |
+
].includes( format ) ) {
|
109 |
+
re = /^(-)?(?:(\d\d+):)?(\d\d):(\d\d)(\.\d+)?$/;
|
110 |
+
} else if ( format === TIME_FORMAT_HH_MM ) {
|
111 |
+
re = /^(-)?(\d\d):(\d\d)(?::(\d\d)(?:(\.\d+))?)?$/;
|
112 |
+
} else {
|
113 |
+
/* eslint-disable-next-line max-len */
|
114 |
+
throw new Error( 'Argument `format` provided to `toMilliseconds` is not a recognized format.' );
|
115 |
+
}
|
116 |
+
|
117 |
+
const result = re.exec( time );
|
118 |
+
if ( ! result ) {
|
119 |
+
/* eslint-disable-next-line max-len */
|
120 |
+
throw new Error( 'Argument `time` provided to `toMilliseconds` is not a recognized format.' );
|
121 |
+
}
|
122 |
+
|
123 |
+
const negative = result[ 1 ] === '-';
|
124 |
+
const hours = result[ 2 ] | 0;
|
125 |
+
const minutes = result[ 3 ] | 0;
|
126 |
+
const seconds = result[ 4 ] | 0;
|
127 |
+
const miliseconds = Math.floor( 1000 * result[ 5 ] | 0 );
|
128 |
+
|
129 |
+
if ( minutes >= 60 || seconds >= 60 ) {
|
130 |
+
/* eslint-disable-next-line max-len */
|
131 |
+
throw new Error( 'Argument `time` provided to `toMilliseconds` contains minutes or seconds greater than 59.' );
|
132 |
+
}
|
133 |
+
|
134 |
+
return ( negative ? -1 : 1 ) * (
|
135 |
+
hours * HOUR_IN_MS
|
136 |
+
+ minutes * MINUTE_IN_MS
|
137 |
+
+ seconds * SECOND_IN_MS
|
138 |
+
+ miliseconds
|
139 |
+
);
|
140 |
+
};
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Converts time in the format provided to seconds
|
144 |
+
*
|
145 |
+
* @param {string} time Time string to convert from
|
146 |
+
* @param {string} format Format of time to convert from
|
147 |
+
* @returns {int} Seconds equivalent of time string in format provided
|
148 |
+
*/
|
149 |
+
export const toSeconds = ( time, format = TIME_FORMAT_MM_SS ) => {
|
150 |
+
const ms = toMilliseconds( time, format );
|
151 |
+
return Math.floor( ms / SECOND_IN_MS );
|
152 |
+
};
|
153 |
+
|
154 |
+
/**
|
155 |
+
* Formats time object to time string in the format provided
|
156 |
+
*
|
157 |
+
* @param {object} time Time object to format from
|
158 |
+
* @param {string} format Format of time to format to
|
159 |
+
* @returns {string} Time string in format provided
|
160 |
+
*/
|
161 |
+
export const formatTime = ( time, format ) => {
|
162 |
+
let showMs;
|
163 |
+
let showSc;
|
164 |
+
let showHr;
|
165 |
+
|
166 |
+
switch ( format ) {
|
167 |
+
case TIME_FORMAT_HH_MM_SS_SSS:
|
168 |
+
showMs = true;
|
169 |
+
showSc = true;
|
170 |
+
showHr = true;
|
171 |
+
break;
|
172 |
+
case TIME_FORMAT_HH_MM_SS:
|
173 |
+
showMs = ! ! time.miliseconds;
|
174 |
+
showSc = true;
|
175 |
+
showHr = true;
|
176 |
+
break;
|
177 |
+
case TIME_FORMAT_HH_MM:
|
178 |
+
showMs = ! ! time.miliseconds;
|
179 |
+
showSc = showMs || ! ! time.seconds;
|
180 |
+
showHr = true;
|
181 |
+
break;
|
182 |
+
case TIME_FORMAT_MM_SS_SSS:
|
183 |
+
showMs = true;
|
184 |
+
showSc = true;
|
185 |
+
showHr = ! ! time.hours;
|
186 |
+
break;
|
187 |
+
case TIME_FORMAT_MM_SS:
|
188 |
+
showMs = ! ! time.miliseconds;
|
189 |
+
showSc = true;
|
190 |
+
showHr = ! ! time.hours;
|
191 |
+
break;
|
192 |
+
default:
|
193 |
+
/* eslint-disable-next-line max-len */
|
194 |
+
throw new Error( 'Argument `format` provided to `formatTime` is not a recognized format.' );
|
195 |
+
}
|
196 |
+
|
197 |
+
const hh = zeroFill( 2, time.hours );
|
198 |
+
const mm = zeroFill( 2, time.minutes );
|
199 |
+
const ss = zeroFill( 2, time.seconds );
|
200 |
+
const sss = zeroFill( 3, time.miliseconds );
|
201 |
+
|
202 |
+
return ( time.negative ? '-' : '' ) + ( showHr ? (
|
203 |
+
showMs ? `${hh}:${mm}:${ss}.${sss}` : showSc ? `${hh}:${mm}:${ss}` : `${hh}:${mm}`
|
204 |
+
) : (
|
205 |
+
showMs ? `${mm}:${ss}.${sss}` : `${mm}:${ss}`
|
206 |
+
) );
|
207 |
+
};
|
common/src/modules/utils/timezone.js
ADDED
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* External dependencies
|
3 |
+
*/
|
4 |
+
import { find, flatten, map, get } from 'lodash';
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Internal dependencies
|
8 |
+
*/
|
9 |
+
import { timezoneHtml } from '@moderntribe/common/utils/globals';
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Module Code
|
13 |
+
*/
|
14 |
+
|
15 |
+
let timezoneOpts;
|
16 |
+
|
17 |
+
export const getTimezoneOpts = () => {
|
18 |
+
// Verify if we have it in cache solved
|
19 |
+
if ( timezoneOpts ) {
|
20 |
+
return timezoneOpts;
|
21 |
+
}
|
22 |
+
|
23 |
+
const $timezoneOpts = jQuery( timezoneHtml() );
|
24 |
+
const groups = [];
|
25 |
+
let number = 0;
|
26 |
+
|
27 |
+
$timezoneOpts.each( ( index, item ) => {
|
28 |
+
const $group = jQuery( item );
|
29 |
+
|
30 |
+
if ( ! $group.is( 'optgroup' ) ) {
|
31 |
+
return;
|
32 |
+
}
|
33 |
+
|
34 |
+
number++;
|
35 |
+
|
36 |
+
const label = $group.attr( 'label' );
|
37 |
+
const group = {
|
38 |
+
key: label,
|
39 |
+
text: label,
|
40 |
+
options: [],
|
41 |
+
};
|
42 |
+
|
43 |
+
$group.find( 'option' ).each( ( optIndex, optionEl ) => {
|
44 |
+
number++;
|
45 |
+
|
46 |
+
const $option = jQuery( optionEl );
|
47 |
+
group.options.push( {
|
48 |
+
key: $option.val(),
|
49 |
+
text: $option.text(),
|
50 |
+
index: number,
|
51 |
+
} );
|
52 |
+
} );
|
53 |
+
|
54 |
+
groups.push( group );
|
55 |
+
} );
|
56 |
+
|
57 |
+
// Save it in a cache
|
58 |
+
timezoneOpts = groups;
|
59 |
+
|
60 |
+
return groups;
|
61 |
+
}
|
62 |
+
|
63 |
+
export const getItems = ( searchFor ) => {
|
64 |
+
const groups = getTimezoneOpts();
|
65 |
+
|
66 |
+
if ( searchFor ) {
|
67 |
+
const opts = flatten( map( groups, 'options' ) );
|
68 |
+
return find( opts, searchFor );
|
69 |
+
}
|
70 |
+
|
71 |
+
return groups;
|
72 |
+
}
|
common/src/resources/css/accessibility.css
CHANGED
@@ -15,16 +15,14 @@
|
|
15 |
* @link https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
|
16 |
*/
|
17 |
.tribe-js .tribe-accessible-js-hidden {
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
width: 1px;
|
27 |
-
}
|
28 |
.tribe-accessible-hidden {
|
29 |
clip: rect( 1px 1px 1px 1px ); /* IE 6/7 */
|
30 |
clip: rect( 1px, 1px, 1px, 1px );
|
15 |
* @link https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
|
16 |
*/
|
17 |
.tribe-js .tribe-accessible-js-hidden {
|
18 |
+
clip: rect( 1px 1px 1px 1px ); /* IE 6/7 */
|
19 |
+
clip: rect( 1px, 1px, 1px, 1px );
|
20 |
+
height: 1px;
|
21 |
+
overflow: hidden;
|
22 |
+
position: absolute;
|
23 |
+
white-space: nowrap; /* added line */
|
24 |
+
width: 1px;
|
25 |
+
}
|
|
|
|
|
26 |
.tribe-accessible-hidden {
|
27 |
clip: rect( 1px 1px 1px 1px ); /* IE 6/7 */
|
28 |
clip: rect( 1px, 1px, 1px, 1px );
|
common/src/resources/css/app-shop.css
CHANGED
@@ -11,76 +11,92 @@
|
|
11 |
#tribe-app-shop {
|
12 |
max-width: 960px;
|
13 |
}
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
#tribe-app-shop .
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
}
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
}
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
#tribe-app-shop .tribe-addon.
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
}
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
margin-bottom: 20px;
|
86 |
-
}
|
11 |
#tribe-app-shop {
|
12 |
max-width: 960px;
|
13 |
}
|
14 |
+
|
15 |
+
#tribe-app-shop .addon-grid {
|
16 |
+
width: 100%;
|
17 |
+
}
|
18 |
+
|
19 |
+
#tribe-app-shop .header h1 {
|
20 |
+
display: inline-block;
|
21 |
+
}
|
22 |
+
|
23 |
+
#tribe-app-shop .header .button {
|
24 |
+
margin-top: 10px;
|
25 |
+
}
|
26 |
+
|
27 |
+
#tribe-app-shop .tribe-addon {
|
28 |
+
background-color: #fff;
|
29 |
+
border-bottom: 1px solid #dfdfdf;
|
30 |
+
display: inline-block;
|
31 |
+
margin: 0 15px 15px 0;
|
32 |
+
overflow: hidden;
|
33 |
+
padding: 0;
|
34 |
+
position: relative;
|
35 |
+
vertical-align: top;
|
36 |
+
width: 300px;
|
37 |
+
border-radius: 3px 3px 3px 3px;
|
38 |
+
box-sizing: border-box;
|
39 |
+
}
|
40 |
+
|
41 |
+
#tribe-app-shop .tribe-addon h4 {
|
42 |
+
font-size: 1.17em;
|
43 |
+
margin: 15px 0;
|
44 |
+
}
|
45 |
+
|
46 |
+
#tribe-app-shop .tribe-addon h4 a {
|
47 |
+
text-decoration: none;
|
48 |
+
}
|
49 |
+
|
50 |
+
#tribe-app-shop .tribe-addon .button {
|
51 |
+
bottom: 15px;
|
52 |
+
display: block;
|
53 |
+
position: absolute;
|
54 |
+
}
|
55 |
+
|
56 |
+
#tribe-app-shop .tribe-addon .button-disabled {
|
57 |
+
padding-left: 3px;
|
58 |
+
}
|
59 |
+
|
60 |
+
#tribe-app-shop .tribe-addon .button-disabled .dashicons {
|
61 |
+
font-size: 28px;
|
62 |
+
padding-right: 9px;
|
63 |
+
}
|
64 |
+
|
65 |
+
#tribe-app-shop .tribe-addon .caption {
|
66 |
+
padding: 0 15px 45px 15px;
|
67 |
+
}
|
68 |
+
|
69 |
+
#tribe-app-shop .tribe-addon .thumb img {
|
70 |
+
height: 228px;
|
71 |
+
max-width: 100%;
|
72 |
+
width: 300px;
|
73 |
+
}
|
74 |
+
|
75 |
+
#tribe-app-shop .tribe-addon.first {
|
76 |
+
margin: 20px 0;
|
77 |
+
overflow: hidden;
|
78 |
+
padding: 0;
|
79 |
+
width: 937px;
|
80 |
+
}
|
81 |
+
|
82 |
+
#tribe-app-shop .tribe-addon.first h4 {
|
83 |
+
font-size: 20px;
|
84 |
+
line-height: 1.4;
|
85 |
+
margin: 15px 0 0 0;
|
86 |
+
}
|
87 |
+
|
88 |
+
#tribe-app-shop .tribe-addon.first .caption {
|
89 |
+
display: inline-block;
|
90 |
+
padding-left: 20px;
|
91 |
+
width: 600px;
|
92 |
+
}
|
93 |
+
|
94 |
+
#tribe-app-shop .tribe-addon.first .thumb {
|
95 |
+
float: left;
|
96 |
+
height: 228px;
|
97 |
+
width: 300px;
|
98 |
+
}
|
99 |
+
|
100 |
+
#tribe-app-shop .tribe-installed-headline {
|
101 |
margin-bottom: 20px;
|
102 |
+
}
|
common/src/resources/css/app/components.css
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{margin:0;max-width:100%!important;padding:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-hovered>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected-parent>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected>.editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block
|
2 |
.tribe-common-form-select{display:flex}.tribe-common-form-select>div{flex:0 0 auto;min-width:193px}.tribe-common-form-select__toggle{background-color:#fff;border-radius:2px;border:2px solid #eaebec}.tribe-common-form-select__toggle button{align-items:center;background-color:#fefffe;border:none;color:#545d66;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;justify-content:center;line-height:1.5;padding:6px 10px;text-align:left;text-decoration:none;width:100%}.tribe-common-form-select__toggle button>span{flex:1}.tribe-common-form-select__options__option{background:transparent;border:0;color:#555d66;cursor:pointer;display:block;line-height:20px;padding:5px 12px;text-align:left;width:100%}.tribe-common-form-select__options__option:hover{background-color:#009fd4;color:#fff}
|
1 |
+
.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{margin:0;max-width:100%!important;padding:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-hovered>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected-parent>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected>.editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit .editor-block-contextual-toolbar{display:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{outline:none}
|
2 |
.tribe-common-form-select{display:flex}.tribe-common-form-select>div{flex:0 0 auto;min-width:193px}.tribe-common-form-select__toggle{background-color:#fff;border-radius:2px;border:2px solid #eaebec}.tribe-common-form-select__toggle button{align-items:center;background-color:#fefffe;border:none;color:#545d66;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;justify-content:center;line-height:1.5;padding:6px 10px;text-align:left;text-decoration:none;width:100%}.tribe-common-form-select__toggle button>span{flex:1}.tribe-common-form-select__options__option{background:transparent;border:0;color:#555d66;cursor:pointer;display:block;line-height:20px;padding:5px 12px;text-align:left;width:100%}.tribe-common-form-select__options__option:hover{background-color:#009fd4;color:#fff}
|
common/src/resources/css/app/components.min.css
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{margin:0;max-width:100%!important;padding:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-hovered>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected-parent>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected>.editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block
|
2 |
.tribe-common-form-select{display:flex}.tribe-common-form-select>div{flex:0 0 auto;min-width:193px}.tribe-common-form-select__toggle{background-color:#fff;border-radius:2px;border:2px solid #eaebec}.tribe-common-form-select__toggle button{align-items:center;background-color:#fefffe;border:none;color:#545d66;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;justify-content:center;line-height:1.5;padding:6px 10px;text-align:left;text-decoration:none;width:100%}.tribe-common-form-select__toggle button>span{flex:1}.tribe-common-form-select__options__option{background:transparent;border:0;color:#555d66;cursor:pointer;display:block;line-height:20px;padding:5px 12px;text-align:left;width:100%}.tribe-common-form-select__options__option:hover{background-color:#009fd4;color:#fff}
|
3 |
|
4 |
/*# sourceMappingURL=components.min.css.map*/
|
1 |
+
.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{margin:0;max-width:100%!important;padding:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-hovered>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected-parent>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected>.editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit .editor-block-contextual-toolbar{display:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{outline:none}
|
2 |
.tribe-common-form-select{display:flex}.tribe-common-form-select>div{flex:0 0 auto;min-width:193px}.tribe-common-form-select__toggle{background-color:#fff;border-radius:2px;border:2px solid #eaebec}.tribe-common-form-select__toggle button{align-items:center;background-color:#fefffe;border:none;color:#545d66;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;justify-content:center;line-height:1.5;padding:6px 10px;text-align:left;text-decoration:none;width:100%}.tribe-common-form-select__toggle button>span{flex:1}.tribe-common-form-select__options__option{background:transparent;border:0;color:#555d66;cursor:pointer;display:block;line-height:20px;padding:5px 12px;text-align:left;width:100%}.tribe-common-form-select__options__option:hover{background-color:#009fd4;color:#fff}
|
3 |
|
4 |
/*# sourceMappingURL=components.min.css.map*/
|
common/src/resources/css/app/components.min.css.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["webpack://tribe.common.[name]/./src/modules/components/plugin-block-hooks/style.pcss","webpack://tribe.common.[name]/./src/modules/components/form/select/style.pcss"],"names":[],"mappings":"AAAA,iFAAiF,SAAS,2GAA2G,SAAS,yBAAyB,UAAU,6dAA6d,aAAa,0IAA0I,SAAS,
|
1 |
+
{"version":3,"sources":["webpack://tribe.common.[name]/./src/modules/components/plugin-block-hooks/style.pcss","webpack://tribe.common.[name]/./src/modules/components/form/select/style.pcss"],"names":[],"mappings":"AAAA,iFAAiF,SAAS,2GAA2G,SAAS,yBAAyB,UAAU,6dAA6d,aAAa,0IAA0I,SAAS,iJAAiJ,aAAa,2KAA2K,aAAa,2GAA2G,a;ACA/yC,0BAA0B,aAAa,8BAA8B,cAAc,gBAAgB,kCAAkC,sBAAsB,kBAAkB,yBAAyB,yCAAyC,mBAAmB,yBAAyB,YAAY,cAAc,aAAa,iCAAiC,eAAe,gBAAgB,uBAAuB,gBAAgB,iBAAiB,gBAAgB,qBAAqB,WAAW,8CAA8C,OAAO,2CAA2C,uBAAuB,SAAS,cAAc,eAAe,cAAc,iBAAiB,iBAAiB,gBAAgB,WAAW,iDAAiD,yBAAyB,W","file":"src/resources/css/app/components.min.css","sourcesContent":[".tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{margin:0;max-width:100%!important;padding:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-hovered>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected-parent>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected>.editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit .editor-block-contextual-toolbar{display:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{outline:none}",".tribe-common-form-select{display:flex}.tribe-common-form-select>div{flex:0 0 auto;min-width:193px}.tribe-common-form-select__toggle{background-color:#fff;border-radius:2px;border:2px solid #eaebec}.tribe-common-form-select__toggle button{align-items:center;background-color:#fefffe;border:none;color:#545d66;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;justify-content:center;line-height:1.5;padding:6px 10px;text-align:left;text-decoration:none;width:100%}.tribe-common-form-select__toggle button>span{flex:1}.tribe-common-form-select__options__option{background:transparent;border:0;color:#555d66;cursor:pointer;display:block;line-height:20px;padding:5px 12px;text-align:left;width:100%}.tribe-common-form-select__options__option:hover{background-color:#009fd4;color:#fff}"],"sourceRoot":""}
|
common/src/resources/css/app/elements.css
CHANGED
@@ -1,13 +1,14 @@
|
|
1 |
-
.tribe-
|
2 |
.tribe-editor__accordion__row-content{max-height:0;overflow:hidden}.tribe-editor__accordion__row-content.active{max-height:none}
|
3 |
.editor-block-inspector__card .tribe-editor__icons__container{padding:4px;display:flex;align-items:center;justify-content:center}.editor-block-inspector__card .tribe-editor__icons__container svg{width:28px;height:28px}.editor-block-inspector__card .tribe-editor__icons--tec{background-color:#199fd1}button[class*=" editor-block-list-item-tribe-"] svg,button[class^=editor-block-list-item-tribe-] svg{color:#16a0d6}
|
4 |
.tribe-editor__counter{display:flex;flex-direction:column;align-items:center}.tribe-editor__counter__count{flex:none;color:#aeb4bb;font-size:32px;font-weight:700;line-height:40px;margin-bottom:10px}.tribe-editor__counter__label{flex:none;color:#aeb4bb;font-size:12px;line-height:14px;letter-spacing:.04px}
|
5 |
-
.tribe-editor__image-upload__title{margin:0 0 12px;color:#000;font-size:15px;font-weight:700;line-height:18px}.tribe-editor__image-upload__content{display:flex;justify-content:space-between;align-items:center}.tribe-editor__image-upload--has-image .tribe-editor__image-upload__content{align-items:flex-start}.tribe-editor__image-upload__content p.tribe-editor__image-upload__description{flex:none;width:52%;font-family:Helvetica,sans-serif;font-size:14px;color:#545d66;line-height:18px;margin:0}.tribe-editor__image-upload__upload-button{flex:none;margin-right:10px}.tribe-editor__image-upload__image-wrapper{flex:none;width:42%;max-width:325px;padding-left:25px;position:relative}.tribe-editor__image-upload__remove-button{position:absolute;top:10px;right:10px;width:32px;height:32px;padding:8px;border-radius:50%;background-color:#f8f9fb}.tribe-editor__image-upload__remove-button>svg,.tribe-editor__image-upload__remove-button>svg path{fill:#545d66}.tribe-editor__image-upload__remove-button:focus>svg,.tribe-editor__image-upload__remove-button:focus>svg path,.tribe-editor__image-upload__remove-button:hover>svg,.tribe-editor__image-upload__remove-button:hover>svg path{fill:#009fd4}.tribe-editor__image-upload__remove-button:disabled:focus>svg,.tribe-editor__image-upload__remove-button:disabled:focus>svg path,.tribe-editor__image-upload__remove-button:disabled:hover>svg,.tribe-editor__image-upload__remove-button:disabled:hover>svg path,.tribe-editor__image-upload__remove-button:disabled>svg,.tribe-editor__image-upload__remove-button:disabled>svg path{fill:#aeb4bb}.tribe-editor__image-upload__remove-button-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}
|
6 |
-
.tribe-editor__rsvp .tribe-editor__label-with-link,.tribe-editor__ticket .tribe-editor__label-with-link{display:flex;align-items:center;background-color:#fff;padding:10px 17px;border:1px solid #e1e3e6}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__labeled-item__label,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__labeled-item__label{flex:auto;color:#545d66;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;padding-right:10px}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link{flex:none;color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;text-decoration:none;transition:color .2s ease}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link:focus,.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link:hover,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link:focus,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link:hover{color:#007bb4}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link.tribe-editor__label-with-link__link--disabled,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link.tribe-editor__label-with-link__link--disabled{color:#aeb4bb}
|
7 |
.tribe-editor__label-with-modal{display:flex;align-items:center;background-color:#fff;padding:11px 17px;border:1px solid #e1e3e6;height:40px}.tribe-editor__label-with-modal .tribe-editor__labeled-item__label{flex:auto;color:#545d66;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px}.tribe-editor__label-with-modal .tribe-editor__label-with-modal__modal-button{flex:none}.tribe-editor__label-with-modal .tribe-editor__modal-button__button{color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;transition:color .2s ease}.tribe-editor__label-with-modal .tribe-editor__modal-button__button:focus,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:hover{color:#007bb4}.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled:focus,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled:hover{color:#aeb4bb}
|
8 |
-
.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{margin:0;max-width:100%!important;padding:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-hovered>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected-parent>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected>.editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block
|
9 |
.tribe-common-form-select{display:flex}.tribe-common-form-select>div{flex:0 0 auto;min-width:193px}.tribe-common-form-select__toggle{background-color:#fff;border-radius:2px;border:2px solid #eaebec}.tribe-common-form-select__toggle button{align-items:center;background-color:#fefffe;border:none;color:#545d66;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;justify-content:center;line-height:1.5;padding:6px 10px;text-align:left;text-decoration:none;width:100%}.tribe-common-form-select__toggle button>span{flex:1}.tribe-common-form-select__options__option{background:transparent;border:0;color:#555d66;cursor:pointer;display:block;line-height:20px;padding:5px 12px;text-align:left;width:100%}.tribe-common-form-select__options__option:hover{background-color:#009fd4;color:#fff}
|
10 |
.tribe-editor__timepicker{display:inline-block}.tribe-editor__timepicker-label-container{background-color:#fff;border:1px solid #e1e3e6;padding-left:10px;border-radius:2px;display:flex;align-items:center;justify-content:center}.tribe-editor__timepicker-label-container input[type=time]{font-family:Noto Serif,serif;font-size:14px;padding:6px 0;border:none}.tribe-editor__timepicker-label-container input[type=time]::-webkit-clear-button{-webkit-appearance:none;display:none}.tribe-editor__timepicker-label-container input[type=time]:focus{box-shadow:none}.tribe-editor__timepicker-label-container button{background-color:#fefffe;color:#545d66;font-family:Helvetica,sans-serif;font-weight:400;line-height:1.5;padding:11px 10px 10px;text-decoration:none;border:none;display:flex;align-items:center;justify-content:center}.tribe-editor__timepicker-label-container button:disabled>svg.dashicon{fill:#aeb4bb}.tribe-editor__timepicker-label-container .tribe-editor__timepicker__all-day-btn{padding:6px 0}.tribe-editor__timepicker__dialog.components-popover .components-popover__content{min-width:110px}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__items{height:250px;overflow:auto}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__items .components-placeholder{height:inherit}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item{display:block;width:100%;color:#555d66;padding:5px 12px;cursor:pointer;border:0;border-bottom:1px solid #e2e4e7;line-height:20px;background:transparent;text-align:left}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item--current,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item--current:not(:disabled):hover{color:#fff;background-color:#009fd4}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):hover{background-color:#e7f5fa}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled).is-active,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):active,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):focus{position:relative}
|
|
|
11 |
.tribe-editor__day-picker-input.DayPickerInput>input{border:1px solid #e1e3e6;color:#545d66;font-size:16px;line-height:24px;padding:7px 15px;width:100%;height:40px}.tribe-editor__day-picker-input.DayPickerInput>input:disabled{color:#aeb4bb}.tribe-editor__day-picker-input .DayPickerInput-Overlay{padding:20px;z-index:10}.tribe-editor__day-picker-input .DayPicker{width:100%}.tribe-editor__day-picker-input .DayPicker-Month{margin:0}.tribe-editor__day-picker-input .DayPicker-Caption>div,.tribe-editor__day-picker-input .DayPicker-Day,.tribe-editor__day-picker-input .DayPicker-Weekday{color:#545d66;font-family:Helvetica,"sans-serif";font-weight:400}.tribe-editor__day-picker-input .DayPicker-Caption>div{font-size:16px;margin-bottom:12px;text-align:center}.tribe-editor__day-picker-input .DayPicker-Weekday{font-size:12px}.tribe-editor__day-picker-input .DayPicker-Day{font-size:14px}.tribe-editor__day-picker-input .DayPicker-Day:hover{color:#007bb4;background-color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--today{color:#545d66}.tribe-editor__day-picker-input .DayPicker-Day--disabled{pointer-events:none;color:#ccc}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--outside){border-radius:0;background-color:#009fd4;color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--outside):hover{background-color:#007bb4;color:#fff}.tribe-editor__day-picker-input .DayPicker-NavButton--prev{left:0;top:0}.tribe-editor__day-picker-input .DayPicker-NavButton--next{right:0;top:0}.tribe-editor__day-picker-input .DayPicker:not(.DayPicker--interactionDisabled) .DayPicker-Day:not(.DayPicker-Day--disabled):not(.DayPicker-Day--selected):not(.DayPicker-Day--outside):hover{background-color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside){background-color:#e7f5fa;color:#545d66}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside):hover{color:#007bb4}
|
12 |
.tribe-editor__creatable-select .tribe-editor__creatable-select__control{height:40px;border:1px solid #e1e3e6;border-radius:3px;background-color:#fff}.tribe-editor__creatable-select .tribe-editor__creatable-select__control:hover{border:1px solid #e1e3e6}.tribe-editor__creatable-select .tribe-editor__creatable-select__control--is-focused{box-shadow:none}.tribe-editor__creatable-select .tribe-editor__creatable-select__value-container{padding:2px 5px 2px 15px}.tribe-editor__creatable-select .tribe-editor__creatable-select__single-value{margin:0;max-width:calc(100% - 15px);font-size:16px;line-height:1.5}.tribe-editor__creatable-select .tribe-editor__creatable-select__input{font-size:16px}.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input{margin:0;line-height:1.5}.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input,.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input:focus{box-shadow:none}.tribe-editor__creatable-select svg.tribe-editor__creatable-select__dropdown-indicator{fill:#555d66}.tribe-editor__creatable-select .tribe-editor__creatable-select__menu{margin:0;border:1px solid #e1e3e6;border-top:none;border-radius:0;border-bottom-left-radius:3px;border-bottom-right-radius:3px;box-shadow:none;-webkit-transform:translateY(-7px);transform:translateY(-7px)}.tribe-editor__creatable-select .tribe-editor__creatable-select__menu-list{padding:0}.tribe-editor__creatable-select .tribe-editor__creatable-select__option{font-size:16px;line-height:1.5;padding:3px 15px}.tribe-editor__creatable-select .tribe-editor__creatable-select__option--is-focused{background-color:#e7f5fa}.tribe-editor__creatable-select .tribe-editor__creatable-select__option--is-selected{background-color:#11a0d2}
|
13 |
.tribe-editor__placeholder{border:2px dashed #e1e3e6;padding:12px 15px 14px;text-align:center;font-family:Helvetica,Arial,"sans-serif";font-size:1rem;line-height:1.5;font-weight:700;color:#8d949b;min-width:260px;display:inline-block}
|
1 |
+
.tribe-editor__btn--label{background-color:transparent;border:none;padding:0;margin:0;text-align:left}.editor-styles-wrapper .tribe-editor__button{background-color:transparent;border:none;padding:0;margin:0;font-family:Helvetica,"sans-serif";cursor:pointer}.editor-styles-wrapper .tribe-editor__button--sm{background-color:#009fd4;color:#fff;padding:11px 16px 9px;font-size:15px;font-weight:700;line-height:18px;transition:background-color .2s ease}.editor-styles-wrapper .tribe-editor__button--sm:focus,.editor-styles-wrapper .tribe-editor__button--sm:hover{background-color:#007bb4}.editor-styles-wrapper .tribe-editor__button--sm[disabled],.editor-styles-wrapper .tribe-editor__button--sm[disabled]:focus,.editor-styles-wrapper .tribe-editor__button--sm[disabled]:hover{background-color:#f3f4f5;color:#8d949b}
|
2 |
.tribe-editor__accordion__row-content{max-height:0;overflow:hidden}.tribe-editor__accordion__row-content.active{max-height:none}
|
3 |
.editor-block-inspector__card .tribe-editor__icons__container{padding:4px;display:flex;align-items:center;justify-content:center}.editor-block-inspector__card .tribe-editor__icons__container svg{width:28px;height:28px}.editor-block-inspector__card .tribe-editor__icons--tec{background-color:#199fd1}button[class*=" editor-block-list-item-tribe-"] svg,button[class^=editor-block-list-item-tribe-] svg{color:#16a0d6}
|
4 |
.tribe-editor__counter{display:flex;flex-direction:column;align-items:center}.tribe-editor__counter__count{flex:none;color:#aeb4bb;font-size:32px;font-weight:700;line-height:40px;margin-bottom:10px}.tribe-editor__counter__label{flex:none;color:#aeb4bb;font-size:12px;line-height:14px;letter-spacing:.04px}
|
5 |
+
.edit-post-visual-editor .editor-block-list__block .tribe-editor__image-upload__title{padding:0;margin:0 0 12px;color:#000;font-size:15px;font-weight:700;line-height:18px}.tribe-editor__image-upload__content{display:flex;justify-content:space-between;align-items:center}.tribe-editor__image-upload--has-image .tribe-editor__image-upload__content{align-items:flex-start}.tribe-editor__image-upload__content p.tribe-editor__image-upload__description{flex:none;width:52%;font-family:Helvetica,sans-serif;font-size:14px;color:#545d66;line-height:18px;margin:0}.tribe-editor__image-upload__upload-button{flex:none;margin-right:10px}.tribe-editor__image-upload__image-wrapper{flex:none;width:42%;max-width:325px;padding-left:25px;position:relative}.tribe-editor__image-upload__remove-button{position:absolute;top:10px;right:10px;width:32px;height:32px;padding:8px;border-radius:50%;background-color:#f8f9fb}.tribe-editor__image-upload__remove-button>svg,.tribe-editor__image-upload__remove-button>svg path{fill:#545d66}.tribe-editor__image-upload__remove-button:focus>svg,.tribe-editor__image-upload__remove-button:focus>svg path,.tribe-editor__image-upload__remove-button:hover>svg,.tribe-editor__image-upload__remove-button:hover>svg path{fill:#009fd4}.tribe-editor__image-upload__remove-button:disabled:focus>svg,.tribe-editor__image-upload__remove-button:disabled:focus>svg path,.tribe-editor__image-upload__remove-button:disabled:hover>svg,.tribe-editor__image-upload__remove-button:disabled:hover>svg path,.tribe-editor__image-upload__remove-button:disabled>svg,.tribe-editor__image-upload__remove-button:disabled>svg path{fill:#aeb4bb}.tribe-editor__image-upload__remove-button-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}
|
6 |
+
.tribe-editor__rsvp .tribe-editor__label-with-link,.tribe-editor__ticket .tribe-editor__label-with-link{display:flex;align-items:center;background-color:#fff;padding:10px 17px;border:1px solid #e1e3e6}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__labeled-item__label,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__labeled-item__label{flex:auto;color:#545d66;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;padding-right:10px}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link{flex:none;color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;text-decoration:none;box-shadow:none;transition:color .2s ease}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link:focus,.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link:hover,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link:focus,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link:hover{color:#007bb4}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link.tribe-editor__label-with-link__link--disabled,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link.tribe-editor__label-with-link__link--disabled{color:#aeb4bb}
|
7 |
.tribe-editor__label-with-modal{display:flex;align-items:center;background-color:#fff;padding:11px 17px;border:1px solid #e1e3e6;height:40px}.tribe-editor__label-with-modal .tribe-editor__labeled-item__label{flex:auto;color:#545d66;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px}.tribe-editor__label-with-modal .tribe-editor__label-with-modal__modal-button{flex:none}.tribe-editor__label-with-modal .tribe-editor__modal-button__button{color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;transition:color .2s ease}.tribe-editor__label-with-modal .tribe-editor__modal-button__button:focus,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:hover{color:#007bb4}.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled:focus,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled:hover{color:#aeb4bb}
|
8 |
+
.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{margin:0;max-width:100%!important;padding:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-hovered>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected-parent>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected>.editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit .editor-block-contextual-toolbar{display:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{outline:none}
|
9 |
.tribe-common-form-select{display:flex}.tribe-common-form-select>div{flex:0 0 auto;min-width:193px}.tribe-common-form-select__toggle{background-color:#fff;border-radius:2px;border:2px solid #eaebec}.tribe-common-form-select__toggle button{align-items:center;background-color:#fefffe;border:none;color:#545d66;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;justify-content:center;line-height:1.5;padding:6px 10px;text-align:left;text-decoration:none;width:100%}.tribe-common-form-select__toggle button>span{flex:1}.tribe-common-form-select__options__option{background:transparent;border:0;color:#555d66;cursor:pointer;display:block;line-height:20px;padding:5px 12px;text-align:left;width:100%}.tribe-common-form-select__options__option:hover{background-color:#009fd4;color:#fff}
|
10 |
.tribe-editor__timepicker{display:inline-block}.tribe-editor__timepicker-label-container{background-color:#fff;border:1px solid #e1e3e6;padding-left:10px;border-radius:2px;display:flex;align-items:center;justify-content:center}.tribe-editor__timepicker-label-container input[type=time]{font-family:Noto Serif,serif;font-size:14px;padding:6px 0;border:none}.tribe-editor__timepicker-label-container input[type=time]::-webkit-clear-button{-webkit-appearance:none;display:none}.tribe-editor__timepicker-label-container input[type=time]:focus{box-shadow:none}.tribe-editor__timepicker-label-container button{background-color:#fefffe;color:#545d66;font-family:Helvetica,sans-serif;font-weight:400;line-height:1.5;padding:11px 10px 10px;text-decoration:none;border:none;display:flex;align-items:center;justify-content:center}.tribe-editor__timepicker-label-container button:disabled>svg.dashicon{fill:#aeb4bb}.tribe-editor__timepicker-label-container .tribe-editor__timepicker__all-day-btn{padding:6px 0}.tribe-editor__timepicker__dialog.components-popover .components-popover__content{min-width:110px}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__items{height:250px;overflow:auto}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__items .components-placeholder{height:inherit}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item{display:block;width:100%;color:#555d66;padding:5px 12px;cursor:pointer;border:0;border-bottom:1px solid #e2e4e7;line-height:20px;background:transparent;text-align:left}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item--current,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item--current:not(:disabled):hover{color:#fff;background-color:#009fd4}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):hover{background-color:#e7f5fa}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled).is-active,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):active,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):focus{position:relative}
|
11 |
+
.DayPicker{display:inline-block;font-size:1rem}.DayPicker-wrapper{position:relative;flex-direction:row;padding-bottom:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.DayPicker-Months{display:flex;flex-wrap:wrap;justify-content:center}.DayPicker-Month{display:table;margin:0 1em;margin-top:1em;border-spacing:0;border-collapse:collapse;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.DayPicker-NavButton{position:absolute;top:1em;right:1.5em;left:auto;display:inline-block;margin-top:2px;width:1.25em;height:1.25em;background-position:50%;background-size:50%;background-repeat:no-repeat;color:#8b9898;cursor:pointer}.DayPicker-NavButton:hover{opacity:.8}.DayPicker-NavButton--prev{margin-right:1.5em;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAwCAYAAAB5R9gVAAAABGdBTUEAALGPC/xhBQAAAVVJREFUWAnN2G0KgjAYwPHpGfRkaZeqvgQaK+hY3SUHrk1YzNLay/OiEFp92I+/Mp2F2Mh2lLISWnflFjzH263RQjzMZ19wgs73ez0o1WmtW+dgA01VxrE3p6l2GLsnBy1VYQOtVSEH/atCCgqpQgKKqYIOiq2CBkqtggLKqQIKgqgCBjpJ2Y5CdJ+zrT9A7HHSTA1dxUdHgzCqJIEwq0SDsKsEg6iqBIEoq/wEcVRZBXFV+QJxV5mBtlDFB5VjYTaGZ2sf4R9PM7U9ZU+lLuaetPP/5Die3ToO1+u+MKtHs06qODB2zBnI/jBd4MPQm1VkY79Tb18gB+C62FdBFsZR6yeIo1YQiLJWMIiqVjQIu1YSCLNWFgijVjYIuhYYCKoWKAiiFgoopxYaKLUWOii2FgkophYp6F3r42W5A9s9OcgNvva8xQaysKXlFytoqdYmQH6tF3toSUo0INq9AAAAAElFTkSuQmCC")}.DayPicker-NavButton--next{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAwCAYAAAB5R9gVAAAABGdBTUEAALGPC/xhBQAAAXRJREFUWAnN119ugjAcwPHWzJ1gnmxzB/BBE0n24m4xfNkTaOL7wOtsl3AXMMb+Vjaa1BG00N8fSEibPpAP3xAKKs2yjzTPH9RAjhEo9WzPr/Vm8zgE0+gXATAxxuxtqeJ9t5tIwv5AtQAApsfT6TPdbp+kUBcgVwvO51KqVhMkXKsVJFXrOkigVhCIs1Y4iKlWZxB1rX4gwlpRIIpa8SDkWmggrFq4IIRaJKCYWnSgnrXIQV1r8YD+1Vrn+bReagysIFfLABRt31v8oBu1xEBttfRbltmfjgEcWh9snUS2kNdBK6WN1vrOWxObWsz+fjxevsxmB1GQDfINWiev83nhaoiB/CoOU438oPrhXS0WpQ9xc1ZQWxWHqUYe0I0qrKCQKjygDlXIQV2r0IF6ViEBxVTBBSFUQQNhVYkHIVeJAtkNsbQ7c1LtzP6FsObhb2rCKv7NBIGoq4SDmKoEgTirXAcJVGkFSVVpgoSrXICGUMUH/QBZNSUy5XWUhwAAAABJRU5ErkJggg==")}.DayPicker-NavButton--interactionDisabled{display:none}.DayPicker-Caption{display:table-caption;margin-bottom:.5em;padding:0 .5em;text-align:left}.DayPicker-Caption>div{font-weight:500;font-size:1.15em}.DayPicker-Weekdays{display:table-header-group;margin-top:1em}.DayPicker-WeekdaysRow{display:table-row}.DayPicker-Weekday{display:table-cell;padding:.5em;color:#8b9898;text-align:center;font-size:.875em}.DayPicker-Weekday abbr[title]{border-bottom:none;text-decoration:none}.DayPicker-Body{display:table-row-group}.DayPicker-Week{display:table-row}.DayPicker-Day{border-radius:50%;text-align:center}.DayPicker-Day,.DayPicker-WeekNumber{display:table-cell;padding:.5em;vertical-align:middle;cursor:pointer}.DayPicker-WeekNumber{min-width:1em;border-right:1px solid #eaecec;color:#8b9898;text-align:right;font-size:.75em}.DayPicker--interactionDisabled .DayPicker-Day{cursor:default}.DayPicker-Footer{padding-top:.5em}.DayPicker-TodayButton{border:none;background-color:transparent;background-image:none;box-shadow:none;color:#4a90e2;font-size:.875em;cursor:pointer}.DayPicker-Day--today{color:#d0021b;font-weight:700}.DayPicker-Day--outside{color:#8b9898;cursor:default}.DayPicker-Day--disabled{color:#dce0e0;cursor:default}.DayPicker-Day--sunday{background-color:#f7f8f8}.DayPicker-Day--sunday:not(.DayPicker-Day--today){color:#dce0e0}.DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside){position:relative;background-color:#4a90e2;color:#f0f8ff}.DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside):hover{background-color:#51a0fa}.DayPicker:not(.DayPicker--interactionDisabled) .DayPicker-Day:not(.DayPicker-Day--disabled):not(.DayPicker-Day--selected):not(.DayPicker-Day--outside):hover{background-color:#f0f8ff}.DayPickerInput{display:inline-block}.DayPickerInput-OverlayWrapper{position:relative}.DayPickerInput-Overlay{position:absolute;left:0;z-index:1;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.15)}
|
12 |
.tribe-editor__day-picker-input.DayPickerInput>input{border:1px solid #e1e3e6;color:#545d66;font-size:16px;line-height:24px;padding:7px 15px;width:100%;height:40px}.tribe-editor__day-picker-input.DayPickerInput>input:disabled{color:#aeb4bb}.tribe-editor__day-picker-input .DayPickerInput-Overlay{padding:20px;z-index:10}.tribe-editor__day-picker-input .DayPicker{width:100%}.tribe-editor__day-picker-input .DayPicker-Month{margin:0}.tribe-editor__day-picker-input .DayPicker-Caption>div,.tribe-editor__day-picker-input .DayPicker-Day,.tribe-editor__day-picker-input .DayPicker-Weekday{color:#545d66;font-family:Helvetica,"sans-serif";font-weight:400}.tribe-editor__day-picker-input .DayPicker-Caption>div{font-size:16px;margin-bottom:12px;text-align:center}.tribe-editor__day-picker-input .DayPicker-Weekday{font-size:12px}.tribe-editor__day-picker-input .DayPicker-Day{font-size:14px}.tribe-editor__day-picker-input .DayPicker-Day:hover{color:#007bb4;background-color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--today{color:#545d66}.tribe-editor__day-picker-input .DayPicker-Day--disabled{pointer-events:none;color:#ccc}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--outside){border-radius:0;background-color:#009fd4;color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--outside):hover{background-color:#007bb4;color:#fff}.tribe-editor__day-picker-input .DayPicker-NavButton--prev{left:0;top:0}.tribe-editor__day-picker-input .DayPicker-NavButton--next{right:0;top:0}.tribe-editor__day-picker-input .DayPicker:not(.DayPicker--interactionDisabled) .DayPicker-Day:not(.DayPicker-Day--disabled):not(.DayPicker-Day--selected):not(.DayPicker-Day--outside):hover{background-color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside){background-color:#e7f5fa;color:#545d66}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside):hover{color:#007bb4}
|
13 |
.tribe-editor__creatable-select .tribe-editor__creatable-select__control{height:40px;border:1px solid #e1e3e6;border-radius:3px;background-color:#fff}.tribe-editor__creatable-select .tribe-editor__creatable-select__control:hover{border:1px solid #e1e3e6}.tribe-editor__creatable-select .tribe-editor__creatable-select__control--is-focused{box-shadow:none}.tribe-editor__creatable-select .tribe-editor__creatable-select__value-container{padding:2px 5px 2px 15px}.tribe-editor__creatable-select .tribe-editor__creatable-select__single-value{margin:0;max-width:calc(100% - 15px);font-size:16px;line-height:1.5}.tribe-editor__creatable-select .tribe-editor__creatable-select__input{font-size:16px}.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input{margin:0;line-height:1.5}.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input,.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input:focus{box-shadow:none}.tribe-editor__creatable-select svg.tribe-editor__creatable-select__dropdown-indicator{fill:#555d66}.tribe-editor__creatable-select .tribe-editor__creatable-select__menu{margin:0;border:1px solid #e1e3e6;border-top:none;border-radius:0;border-bottom-left-radius:3px;border-bottom-right-radius:3px;box-shadow:none;-webkit-transform:translateY(-7px);transform:translateY(-7px)}.tribe-editor__creatable-select .tribe-editor__creatable-select__menu-list{padding:0}.tribe-editor__creatable-select .tribe-editor__creatable-select__option{font-size:16px;line-height:1.5;padding:3px 15px}.tribe-editor__creatable-select .tribe-editor__creatable-select__option--is-focused{background-color:#e7f5fa}.tribe-editor__creatable-select .tribe-editor__creatable-select__option--is-selected{background-color:#11a0d2}
|
14 |
.tribe-editor__placeholder{border:2px dashed #e1e3e6;padding:12px 15px 14px;text-align:center;font-family:Helvetica,Arial,"sans-serif";font-size:1rem;line-height:1.5;font-weight:700;color:#8d949b;min-width:260px;display:inline-block}
|
common/src/resources/css/app/elements.min.css
CHANGED
@@ -1,13 +1,14 @@
|
|
1 |
-
.tribe-
|
2 |
.tribe-editor__accordion__row-content{max-height:0;overflow:hidden}.tribe-editor__accordion__row-content.active{max-height:none}
|
3 |
.editor-block-inspector__card .tribe-editor__icons__container{padding:4px;display:flex;align-items:center;justify-content:center}.editor-block-inspector__card .tribe-editor__icons__container svg{width:28px;height:28px}.editor-block-inspector__card .tribe-editor__icons--tec{background-color:#199fd1}button[class*=" editor-block-list-item-tribe-"] svg,button[class^=editor-block-list-item-tribe-] svg{color:#16a0d6}
|
4 |
.tribe-editor__counter{display:flex;flex-direction:column;align-items:center}.tribe-editor__counter__count{flex:none;color:#aeb4bb;font-size:32px;font-weight:700;line-height:40px;margin-bottom:10px}.tribe-editor__counter__label{flex:none;color:#aeb4bb;font-size:12px;line-height:14px;letter-spacing:.04px}
|
5 |
-
.tribe-editor__image-upload__title{margin:0 0 12px;color:#000;font-size:15px;font-weight:700;line-height:18px}.tribe-editor__image-upload__content{display:flex;justify-content:space-between;align-items:center}.tribe-editor__image-upload--has-image .tribe-editor__image-upload__content{align-items:flex-start}.tribe-editor__image-upload__content p.tribe-editor__image-upload__description{flex:none;width:52%;font-family:Helvetica,sans-serif;font-size:14px;color:#545d66;line-height:18px;margin:0}.tribe-editor__image-upload__upload-button{flex:none;margin-right:10px}.tribe-editor__image-upload__image-wrapper{flex:none;width:42%;max-width:325px;padding-left:25px;position:relative}.tribe-editor__image-upload__remove-button{position:absolute;top:10px;right:10px;width:32px;height:32px;padding:8px;border-radius:50%;background-color:#f8f9fb}.tribe-editor__image-upload__remove-button>svg,.tribe-editor__image-upload__remove-button>svg path{fill:#545d66}.tribe-editor__image-upload__remove-button:focus>svg,.tribe-editor__image-upload__remove-button:focus>svg path,.tribe-editor__image-upload__remove-button:hover>svg,.tribe-editor__image-upload__remove-button:hover>svg path{fill:#009fd4}.tribe-editor__image-upload__remove-button:disabled:focus>svg,.tribe-editor__image-upload__remove-button:disabled:focus>svg path,.tribe-editor__image-upload__remove-button:disabled:hover>svg,.tribe-editor__image-upload__remove-button:disabled:hover>svg path,.tribe-editor__image-upload__remove-button:disabled>svg,.tribe-editor__image-upload__remove-button:disabled>svg path{fill:#aeb4bb}.tribe-editor__image-upload__remove-button-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}
|
6 |
-
.tribe-editor__rsvp .tribe-editor__label-with-link,.tribe-editor__ticket .tribe-editor__label-with-link{display:flex;align-items:center;background-color:#fff;padding:10px 17px;border:1px solid #e1e3e6}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__labeled-item__label,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__labeled-item__label{flex:auto;color:#545d66;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;padding-right:10px}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link{flex:none;color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;text-decoration:none;transition:color .2s ease}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link:focus,.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link:hover,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link:focus,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link:hover{color:#007bb4}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link.tribe-editor__label-with-link__link--disabled,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link.tribe-editor__label-with-link__link--disabled{color:#aeb4bb}
|
7 |
.tribe-editor__label-with-modal{display:flex;align-items:center;background-color:#fff;padding:11px 17px;border:1px solid #e1e3e6;height:40px}.tribe-editor__label-with-modal .tribe-editor__labeled-item__label{flex:auto;color:#545d66;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px}.tribe-editor__label-with-modal .tribe-editor__label-with-modal__modal-button{flex:none}.tribe-editor__label-with-modal .tribe-editor__modal-button__button{color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;transition:color .2s ease}.tribe-editor__label-with-modal .tribe-editor__modal-button__button:focus,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:hover{color:#007bb4}.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled:focus,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled:hover{color:#aeb4bb}
|
8 |
-
.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{margin:0;max-width:100%!important;padding:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-hovered>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected-parent>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected>.editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block
|
9 |
.tribe-common-form-select{display:flex}.tribe-common-form-select>div{flex:0 0 auto;min-width:193px}.tribe-common-form-select__toggle{background-color:#fff;border-radius:2px;border:2px solid #eaebec}.tribe-common-form-select__toggle button{align-items:center;background-color:#fefffe;border:none;color:#545d66;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;justify-content:center;line-height:1.5;padding:6px 10px;text-align:left;text-decoration:none;width:100%}.tribe-common-form-select__toggle button>span{flex:1}.tribe-common-form-select__options__option{background:transparent;border:0;color:#555d66;cursor:pointer;display:block;line-height:20px;padding:5px 12px;text-align:left;width:100%}.tribe-common-form-select__options__option:hover{background-color:#009fd4;color:#fff}
|
10 |
.tribe-editor__timepicker{display:inline-block}.tribe-editor__timepicker-label-container{background-color:#fff;border:1px solid #e1e3e6;padding-left:10px;border-radius:2px;display:flex;align-items:center;justify-content:center}.tribe-editor__timepicker-label-container input[type=time]{font-family:Noto Serif,serif;font-size:14px;padding:6px 0;border:none}.tribe-editor__timepicker-label-container input[type=time]::-webkit-clear-button{-webkit-appearance:none;display:none}.tribe-editor__timepicker-label-container input[type=time]:focus{box-shadow:none}.tribe-editor__timepicker-label-container button{background-color:#fefffe;color:#545d66;font-family:Helvetica,sans-serif;font-weight:400;line-height:1.5;padding:11px 10px 10px;text-decoration:none;border:none;display:flex;align-items:center;justify-content:center}.tribe-editor__timepicker-label-container button:disabled>svg.dashicon{fill:#aeb4bb}.tribe-editor__timepicker-label-container .tribe-editor__timepicker__all-day-btn{padding:6px 0}.tribe-editor__timepicker__dialog.components-popover .components-popover__content{min-width:110px}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__items{height:250px;overflow:auto}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__items .components-placeholder{height:inherit}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item{display:block;width:100%;color:#555d66;padding:5px 12px;cursor:pointer;border:0;border-bottom:1px solid #e2e4e7;line-height:20px;background:transparent;text-align:left}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item--current,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item--current:not(:disabled):hover{color:#fff;background-color:#009fd4}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):hover{background-color:#e7f5fa}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled).is-active,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):active,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):focus{position:relative}
|
|
|
11 |
.tribe-editor__day-picker-input.DayPickerInput>input{border:1px solid #e1e3e6;color:#545d66;font-size:16px;line-height:24px;padding:7px 15px;width:100%;height:40px}.tribe-editor__day-picker-input.DayPickerInput>input:disabled{color:#aeb4bb}.tribe-editor__day-picker-input .DayPickerInput-Overlay{padding:20px;z-index:10}.tribe-editor__day-picker-input .DayPicker{width:100%}.tribe-editor__day-picker-input .DayPicker-Month{margin:0}.tribe-editor__day-picker-input .DayPicker-Caption>div,.tribe-editor__day-picker-input .DayPicker-Day,.tribe-editor__day-picker-input .DayPicker-Weekday{color:#545d66;font-family:Helvetica,"sans-serif";font-weight:400}.tribe-editor__day-picker-input .DayPicker-Caption>div{font-size:16px;margin-bottom:12px;text-align:center}.tribe-editor__day-picker-input .DayPicker-Weekday{font-size:12px}.tribe-editor__day-picker-input .DayPicker-Day{font-size:14px}.tribe-editor__day-picker-input .DayPicker-Day:hover{color:#007bb4;background-color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--today{color:#545d66}.tribe-editor__day-picker-input .DayPicker-Day--disabled{pointer-events:none;color:#ccc}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--outside){border-radius:0;background-color:#009fd4;color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--outside):hover{background-color:#007bb4;color:#fff}.tribe-editor__day-picker-input .DayPicker-NavButton--prev{left:0;top:0}.tribe-editor__day-picker-input .DayPicker-NavButton--next{right:0;top:0}.tribe-editor__day-picker-input .DayPicker:not(.DayPicker--interactionDisabled) .DayPicker-Day:not(.DayPicker-Day--disabled):not(.DayPicker-Day--selected):not(.DayPicker-Day--outside):hover{background-color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside){background-color:#e7f5fa;color:#545d66}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside):hover{color:#007bb4}
|
12 |
.tribe-editor__creatable-select .tribe-editor__creatable-select__control{height:40px;border:1px solid #e1e3e6;border-radius:3px;background-color:#fff}.tribe-editor__creatable-select .tribe-editor__creatable-select__control:hover{border:1px solid #e1e3e6}.tribe-editor__creatable-select .tribe-editor__creatable-select__control--is-focused{box-shadow:none}.tribe-editor__creatable-select .tribe-editor__creatable-select__value-container{padding:2px 5px 2px 15px}.tribe-editor__creatable-select .tribe-editor__creatable-select__single-value{margin:0;max-width:calc(100% - 15px);font-size:16px;line-height:1.5}.tribe-editor__creatable-select .tribe-editor__creatable-select__input{font-size:16px}.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input{margin:0;line-height:1.5}.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input,.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input:focus{box-shadow:none}.tribe-editor__creatable-select svg.tribe-editor__creatable-select__dropdown-indicator{fill:#555d66}.tribe-editor__creatable-select .tribe-editor__creatable-select__menu{margin:0;border:1px solid #e1e3e6;border-top:none;border-radius:0;border-bottom-left-radius:3px;border-bottom-right-radius:3px;box-shadow:none;-webkit-transform:translateY(-7px);transform:translateY(-7px)}.tribe-editor__creatable-select .tribe-editor__creatable-select__menu-list{padding:0}.tribe-editor__creatable-select .tribe-editor__creatable-select__option{font-size:16px;line-height:1.5;padding:3px 15px}.tribe-editor__creatable-select .tribe-editor__creatable-select__option--is-focused{background-color:#e7f5fa}.tribe-editor__creatable-select .tribe-editor__creatable-select__option--is-selected{background-color:#11a0d2}
|
13 |
.tribe-editor__placeholder{border:2px dashed #e1e3e6;padding:12px 15px 14px;text-align:center;font-family:Helvetica,Arial,"sans-serif";font-size:1rem;line-height:1.5;font-weight:700;color:#8d949b;min-width:260px;display:inline-block}
|
1 |
+
.tribe-editor__btn--label{background-color:transparent;border:none;padding:0;margin:0;text-align:left}.editor-styles-wrapper .tribe-editor__button{background-color:transparent;border:none;padding:0;margin:0;font-family:Helvetica,"sans-serif";cursor:pointer}.editor-styles-wrapper .tribe-editor__button--sm{background-color:#009fd4;color:#fff;padding:11px 16px 9px;font-size:15px;font-weight:700;line-height:18px;transition:background-color .2s ease}.editor-styles-wrapper .tribe-editor__button--sm:focus,.editor-styles-wrapper .tribe-editor__button--sm:hover{background-color:#007bb4}.editor-styles-wrapper .tribe-editor__button--sm[disabled],.editor-styles-wrapper .tribe-editor__button--sm[disabled]:focus,.editor-styles-wrapper .tribe-editor__button--sm[disabled]:hover{background-color:#f3f4f5;color:#8d949b}
|
2 |
.tribe-editor__accordion__row-content{max-height:0;overflow:hidden}.tribe-editor__accordion__row-content.active{max-height:none}
|
3 |
.editor-block-inspector__card .tribe-editor__icons__container{padding:4px;display:flex;align-items:center;justify-content:center}.editor-block-inspector__card .tribe-editor__icons__container svg{width:28px;height:28px}.editor-block-inspector__card .tribe-editor__icons--tec{background-color:#199fd1}button[class*=" editor-block-list-item-tribe-"] svg,button[class^=editor-block-list-item-tribe-] svg{color:#16a0d6}
|
4 |
.tribe-editor__counter{display:flex;flex-direction:column;align-items:center}.tribe-editor__counter__count{flex:none;color:#aeb4bb;font-size:32px;font-weight:700;line-height:40px;margin-bottom:10px}.tribe-editor__counter__label{flex:none;color:#aeb4bb;font-size:12px;line-height:14px;letter-spacing:.04px}
|
5 |
+
.edit-post-visual-editor .editor-block-list__block .tribe-editor__image-upload__title{padding:0;margin:0 0 12px;color:#000;font-size:15px;font-weight:700;line-height:18px}.tribe-editor__image-upload__content{display:flex;justify-content:space-between;align-items:center}.tribe-editor__image-upload--has-image .tribe-editor__image-upload__content{align-items:flex-start}.tribe-editor__image-upload__content p.tribe-editor__image-upload__description{flex:none;width:52%;font-family:Helvetica,sans-serif;font-size:14px;color:#545d66;line-height:18px;margin:0}.tribe-editor__image-upload__upload-button{flex:none;margin-right:10px}.tribe-editor__image-upload__image-wrapper{flex:none;width:42%;max-width:325px;padding-left:25px;position:relative}.tribe-editor__image-upload__remove-button{position:absolute;top:10px;right:10px;width:32px;height:32px;padding:8px;border-radius:50%;background-color:#f8f9fb}.tribe-editor__image-upload__remove-button>svg,.tribe-editor__image-upload__remove-button>svg path{fill:#545d66}.tribe-editor__image-upload__remove-button:focus>svg,.tribe-editor__image-upload__remove-button:focus>svg path,.tribe-editor__image-upload__remove-button:hover>svg,.tribe-editor__image-upload__remove-button:hover>svg path{fill:#009fd4}.tribe-editor__image-upload__remove-button:disabled:focus>svg,.tribe-editor__image-upload__remove-button:disabled:focus>svg path,.tribe-editor__image-upload__remove-button:disabled:hover>svg,.tribe-editor__image-upload__remove-button:disabled:hover>svg path,.tribe-editor__image-upload__remove-button:disabled>svg,.tribe-editor__image-upload__remove-button:disabled>svg path{fill:#aeb4bb}.tribe-editor__image-upload__remove-button-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}
|
6 |
+
.tribe-editor__rsvp .tribe-editor__label-with-link,.tribe-editor__ticket .tribe-editor__label-with-link{display:flex;align-items:center;background-color:#fff;padding:10px 17px;border:1px solid #e1e3e6}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__labeled-item__label,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__labeled-item__label{flex:auto;color:#545d66;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;padding-right:10px}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link{flex:none;color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;text-decoration:none;box-shadow:none;transition:color .2s ease}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link:focus,.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link:hover,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link:focus,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link:hover{color:#007bb4}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link.tribe-editor__label-with-link__link--disabled,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link.tribe-editor__label-with-link__link--disabled{color:#aeb4bb}
|
7 |
.tribe-editor__label-with-modal{display:flex;align-items:center;background-color:#fff;padding:11px 17px;border:1px solid #e1e3e6;height:40px}.tribe-editor__label-with-modal .tribe-editor__labeled-item__label{flex:auto;color:#545d66;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px}.tribe-editor__label-with-modal .tribe-editor__label-with-modal__modal-button{flex:none}.tribe-editor__label-with-modal .tribe-editor__modal-button__button{color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;transition:color .2s ease}.tribe-editor__label-with-modal .tribe-editor__modal-button__button:focus,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:hover{color:#007bb4}.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled:focus,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled:hover{color:#aeb4bb}
|
8 |
+
.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{margin:0;max-width:100%!important;padding:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-hovered>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected-parent>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected>.editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit .editor-block-contextual-toolbar{display:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{outline:none}
|
9 |
.tribe-common-form-select{display:flex}.tribe-common-form-select>div{flex:0 0 auto;min-width:193px}.tribe-common-form-select__toggle{background-color:#fff;border-radius:2px;border:2px solid #eaebec}.tribe-common-form-select__toggle button{align-items:center;background-color:#fefffe;border:none;color:#545d66;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;justify-content:center;line-height:1.5;padding:6px 10px;text-align:left;text-decoration:none;width:100%}.tribe-common-form-select__toggle button>span{flex:1}.tribe-common-form-select__options__option{background:transparent;border:0;color:#555d66;cursor:pointer;display:block;line-height:20px;padding:5px 12px;text-align:left;width:100%}.tribe-common-form-select__options__option:hover{background-color:#009fd4;color:#fff}
|
10 |
.tribe-editor__timepicker{display:inline-block}.tribe-editor__timepicker-label-container{background-color:#fff;border:1px solid #e1e3e6;padding-left:10px;border-radius:2px;display:flex;align-items:center;justify-content:center}.tribe-editor__timepicker-label-container input[type=time]{font-family:Noto Serif,serif;font-size:14px;padding:6px 0;border:none}.tribe-editor__timepicker-label-container input[type=time]::-webkit-clear-button{-webkit-appearance:none;display:none}.tribe-editor__timepicker-label-container input[type=time]:focus{box-shadow:none}.tribe-editor__timepicker-label-container button{background-color:#fefffe;color:#545d66;font-family:Helvetica,sans-serif;font-weight:400;line-height:1.5;padding:11px 10px 10px;text-decoration:none;border:none;display:flex;align-items:center;justify-content:center}.tribe-editor__timepicker-label-container button:disabled>svg.dashicon{fill:#aeb4bb}.tribe-editor__timepicker-label-container .tribe-editor__timepicker__all-day-btn{padding:6px 0}.tribe-editor__timepicker__dialog.components-popover .components-popover__content{min-width:110px}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__items{height:250px;overflow:auto}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__items .components-placeholder{height:inherit}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item{display:block;width:100%;color:#555d66;padding:5px 12px;cursor:pointer;border:0;border-bottom:1px solid #e2e4e7;line-height:20px;background:transparent;text-align:left}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item--current,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item--current:not(:disabled):hover{color:#fff;background-color:#009fd4}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):hover{background-color:#e7f5fa}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled).is-active,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):active,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):focus{position:relative}
|
11 |
+
.DayPicker{display:inline-block;font-size:1rem}.DayPicker-wrapper{position:relative;flex-direction:row;padding-bottom:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.DayPicker-Months{display:flex;flex-wrap:wrap;justify-content:center}.DayPicker-Month{display:table;margin:0 1em;margin-top:1em;border-spacing:0;border-collapse:collapse;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.DayPicker-NavButton{position:absolute;top:1em;right:1.5em;left:auto;display:inline-block;margin-top:2px;width:1.25em;height:1.25em;background-position:50%;background-size:50%;background-repeat:no-repeat;color:#8b9898;cursor:pointer}.DayPicker-NavButton:hover{opacity:.8}.DayPicker-NavButton--prev{margin-right:1.5em;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAwCAYAAAB5R9gVAAAABGdBTUEAALGPC/xhBQAAAVVJREFUWAnN2G0KgjAYwPHpGfRkaZeqvgQaK+hY3SUHrk1YzNLay/OiEFp92I+/Mp2F2Mh2lLISWnflFjzH263RQjzMZ19wgs73ez0o1WmtW+dgA01VxrE3p6l2GLsnBy1VYQOtVSEH/atCCgqpQgKKqYIOiq2CBkqtggLKqQIKgqgCBjpJ2Y5CdJ+zrT9A7HHSTA1dxUdHgzCqJIEwq0SDsKsEg6iqBIEoq/wEcVRZBXFV+QJxV5mBtlDFB5VjYTaGZ2sf4R9PM7U9ZU+lLuaetPP/5Die3ToO1+u+MKtHs06qODB2zBnI/jBd4MPQm1VkY79Tb18gB+C62FdBFsZR6yeIo1YQiLJWMIiqVjQIu1YSCLNWFgijVjYIuhYYCKoWKAiiFgoopxYaKLUWOii2FgkophYp6F3r42W5A9s9OcgNvva8xQaysKXlFytoqdYmQH6tF3toSUo0INq9AAAAAElFTkSuQmCC")}.DayPicker-NavButton--next{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAwCAYAAAB5R9gVAAAABGdBTUEAALGPC/xhBQAAAXRJREFUWAnN119ugjAcwPHWzJ1gnmxzB/BBE0n24m4xfNkTaOL7wOtsl3AXMMb+Vjaa1BG00N8fSEibPpAP3xAKKs2yjzTPH9RAjhEo9WzPr/Vm8zgE0+gXATAxxuxtqeJ9t5tIwv5AtQAApsfT6TPdbp+kUBcgVwvO51KqVhMkXKsVJFXrOkigVhCIs1Y4iKlWZxB1rX4gwlpRIIpa8SDkWmggrFq4IIRaJKCYWnSgnrXIQV1r8YD+1Vrn+bReagysIFfLABRt31v8oBu1xEBttfRbltmfjgEcWh9snUS2kNdBK6WN1vrOWxObWsz+fjxevsxmB1GQDfINWiev83nhaoiB/CoOU438oPrhXS0WpQ9xc1ZQWxWHqUYe0I0qrKCQKjygDlXIQV2r0IF6ViEBxVTBBSFUQQNhVYkHIVeJAtkNsbQ7c1LtzP6FsObhb2rCKv7NBIGoq4SDmKoEgTirXAcJVGkFSVVpgoSrXICGUMUH/QBZNSUy5XWUhwAAAABJRU5ErkJggg==")}.DayPicker-NavButton--interactionDisabled{display:none}.DayPicker-Caption{display:table-caption;margin-bottom:.5em;padding:0 .5em;text-align:left}.DayPicker-Caption>div{font-weight:500;font-size:1.15em}.DayPicker-Weekdays{display:table-header-group;margin-top:1em}.DayPicker-WeekdaysRow{display:table-row}.DayPicker-Weekday{display:table-cell;padding:.5em;color:#8b9898;text-align:center;font-size:.875em}.DayPicker-Weekday abbr[title]{border-bottom:none;text-decoration:none}.DayPicker-Body{display:table-row-group}.DayPicker-Week{display:table-row}.DayPicker-Day{border-radius:50%;text-align:center}.DayPicker-Day,.DayPicker-WeekNumber{display:table-cell;padding:.5em;vertical-align:middle;cursor:pointer}.DayPicker-WeekNumber{min-width:1em;border-right:1px solid #eaecec;color:#8b9898;text-align:right;font-size:.75em}.DayPicker--interactionDisabled .DayPicker-Day{cursor:default}.DayPicker-Footer{padding-top:.5em}.DayPicker-TodayButton{border:none;background-color:transparent;background-image:none;box-shadow:none;color:#4a90e2;font-size:.875em;cursor:pointer}.DayPicker-Day--today{color:#d0021b;font-weight:700}.DayPicker-Day--outside{color:#8b9898;cursor:default}.DayPicker-Day--disabled{color:#dce0e0;cursor:default}.DayPicker-Day--sunday{background-color:#f7f8f8}.DayPicker-Day--sunday:not(.DayPicker-Day--today){color:#dce0e0}.DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside){position:relative;background-color:#4a90e2;color:#f0f8ff}.DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside):hover{background-color:#51a0fa}.DayPicker:not(.DayPicker--interactionDisabled) .DayPicker-Day:not(.DayPicker-Day--disabled):not(.DayPicker-Day--selected):not(.DayPicker-Day--outside):hover{background-color:#f0f8ff}.DayPickerInput{display:inline-block}.DayPickerInput-OverlayWrapper{position:relative}.DayPickerInput-Overlay{position:absolute;left:0;z-index:1;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.15)}
|
12 |
.tribe-editor__day-picker-input.DayPickerInput>input{border:1px solid #e1e3e6;color:#545d66;font-size:16px;line-height:24px;padding:7px 15px;width:100%;height:40px}.tribe-editor__day-picker-input.DayPickerInput>input:disabled{color:#aeb4bb}.tribe-editor__day-picker-input .DayPickerInput-Overlay{padding:20px;z-index:10}.tribe-editor__day-picker-input .DayPicker{width:100%}.tribe-editor__day-picker-input .DayPicker-Month{margin:0}.tribe-editor__day-picker-input .DayPicker-Caption>div,.tribe-editor__day-picker-input .DayPicker-Day,.tribe-editor__day-picker-input .DayPicker-Weekday{color:#545d66;font-family:Helvetica,"sans-serif";font-weight:400}.tribe-editor__day-picker-input .DayPicker-Caption>div{font-size:16px;margin-bottom:12px;text-align:center}.tribe-editor__day-picker-input .DayPicker-Weekday{font-size:12px}.tribe-editor__day-picker-input .DayPicker-Day{font-size:14px}.tribe-editor__day-picker-input .DayPicker-Day:hover{color:#007bb4;background-color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--today{color:#545d66}.tribe-editor__day-picker-input .DayPicker-Day--disabled{pointer-events:none;color:#ccc}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--outside){border-radius:0;background-color:#009fd4;color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--outside):hover{background-color:#007bb4;color:#fff}.tribe-editor__day-picker-input .DayPicker-NavButton--prev{left:0;top:0}.tribe-editor__day-picker-input .DayPicker-NavButton--next{right:0;top:0}.tribe-editor__day-picker-input .DayPicker:not(.DayPicker--interactionDisabled) .DayPicker-Day:not(.DayPicker-Day--disabled):not(.DayPicker-Day--selected):not(.DayPicker-Day--outside):hover{background-color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside){background-color:#e7f5fa;color:#545d66}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside):hover{color:#007bb4}
|
13 |
.tribe-editor__creatable-select .tribe-editor__creatable-select__control{height:40px;border:1px solid #e1e3e6;border-radius:3px;background-color:#fff}.tribe-editor__creatable-select .tribe-editor__creatable-select__control:hover{border:1px solid #e1e3e6}.tribe-editor__creatable-select .tribe-editor__creatable-select__control--is-focused{box-shadow:none}.tribe-editor__creatable-select .tribe-editor__creatable-select__value-container{padding:2px 5px 2px 15px}.tribe-editor__creatable-select .tribe-editor__creatable-select__single-value{margin:0;max-width:calc(100% - 15px);font-size:16px;line-height:1.5}.tribe-editor__creatable-select .tribe-editor__creatable-select__input{font-size:16px}.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input{margin:0;line-height:1.5}.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input,.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input:focus{box-shadow:none}.tribe-editor__creatable-select svg.tribe-editor__creatable-select__dropdown-indicator{fill:#555d66}.tribe-editor__creatable-select .tribe-editor__creatable-select__menu{margin:0;border:1px solid #e1e3e6;border-top:none;border-radius:0;border-bottom-left-radius:3px;border-bottom-right-radius:3px;box-shadow:none;-webkit-transform:translateY(-7px);transform:translateY(-7px)}.tribe-editor__creatable-select .tribe-editor__creatable-select__menu-list{padding:0}.tribe-editor__creatable-select .tribe-editor__creatable-select__option{font-size:16px;line-height:1.5;padding:3px 15px}.tribe-editor__creatable-select .tribe-editor__creatable-select__option--is-focused{background-color:#e7f5fa}.tribe-editor__creatable-select .tribe-editor__creatable-select__option--is-selected{background-color:#11a0d2}
|
14 |
.tribe-editor__placeholder{border:2px dashed #e1e3e6;padding:12px 15px 14px;text-align:center;font-family:Helvetica,Arial,"sans-serif";font-size:1rem;line-height:1.5;font-weight:700;color:#8d949b;min-width:260px;display:inline-block}
|
common/src/resources/css/app/elements.min.css.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["webpack://tribe.common.[name]/./src/modules/elements/button/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/accordion/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/block-icon/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/counter/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/image-upload/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/label-with-link/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/label-with-modal/style.pcss","webpack://tribe.common.[name]/./src/modules/components/plugin-block-hooks/style.pcss","webpack://tribe.common.[name]/./src/modules/components/form/select/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/time-picker/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/day-picker-input/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/creatable-select/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/placeholder/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/heading/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/paragraph/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/input/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/checkbox-input/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/select/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/style.pcss"],"names":[],"mappings":"AAAA,sBAAsB,eAAe,gDAAgD,6BAA6B,YAAY,UAAU,SAAS,0BAA0B,gBAAgB,0BAA0B,yBAAyB,WAAW,sBAAsB,eAAe,gBAAgB,iBAAiB,qCAAqC,gEAAgE,yBAAyB,wHAAwH,yBAAyB,c;ACA9kB,sCAAsC,aAAa,gBAAgB,6CAA6C,gB;ACAhH,8DAA8D,YAAY,aAAa,mBAAmB,uBAAuB,kEAAkE,WAAW,YAAY,wDAAwD,yBAAyB,qGAAqG,c;ACAhZ,uBAAuB,aAAa,sBAAsB,mBAAmB,8BAA8B,UAAU,cAAc,eAAe,gBAAgB,iBAAiB,mBAAmB,8BAA8B,UAAU,cAAc,eAAe,iBAAiB,qB;ACA5R,mCAAmC,gBAAgB,WAAW,eAAe,gBAAgB,iBAAiB,qCAAqC,aAAa,8BAA8B,mBAAmB,4EAA4E,uBAAuB,+EAA+E,UAAU,UAAU,iCAAiC,eAAe,cAAc,iBAAiB,SAAS,2CAA2C,UAAU,kBAAkB,2CAA2C,UAAU,UAAU,gBAAgB,kBAAkB,kBAAkB,2CAA2C,kBAAkB,SAAS,WAAW,WAAW,YAAY,YAAY,kBAAkB,yBAAyB,mGAAmG,aAAa,8NAA8N,aAAa,uXAAuX,aAAa,gDAAgD,SAAS,mBAAmB,WAAW,YAAY,gBAAgB,UAAU,kBAAkB,U;ACAtrD,wGAAwG,aAAa,mBAAmB,sBAAsB,kBAAkB,yBAAyB,8KAA8K,UAAU,cAAc,eAAe,gBAAgB,iBAAiB,qBAAqB,mBAAmB,kLAAkL,UAAU,cAAc,eAAe,gBAAgB,iBAAiB,qBAAqB,qBAAqB,0BAA0B,4XAA4X,cAAc,8QAA8Q,c;ACA77C,gCAAgC,aAAa,mBAAmB,sBAAsB,kBAAkB,yBAAyB,YAAY,mEAAmE,UAAU,cAAc,eAAe,gBAAgB,iBAAiB,qBAAqB,8EAA8E,UAAU,oEAAoE,cAAc,eAAe,gBAAgB,iBAAiB,qBAAqB,0BAA0B,oJAAoJ,cAAc,mPAAmP,c;ACA38B,iFAAiF,SAAS,2GAA2G,SAAS,yBAAyB,UAAU,6dAA6d,aAAa,0IAA0I,SAAS,4PAA4P,a;ACA1mC,0BAA0B,aAAa,8BAA8B,cAAc,gBAAgB,kCAAkC,sBAAsB,kBAAkB,yBAAyB,yCAAyC,mBAAmB,yBAAyB,YAAY,cAAc,aAAa,iCAAiC,eAAe,gBAAgB,uBAAuB,gBAAgB,iBAAiB,gBAAgB,qBAAqB,WAAW,8CAA8C,OAAO,2CAA2C,uBAAuB,SAAS,cAAc,eAAe,cAAc,iBAAiB,iBAAiB,gBAAgB,WAAW,iDAAiD,yBAAyB,W;ACA5xB,0BAA0B,qBAAqB,0CAA0C,sBAAsB,yBAAyB,kBAAkB,kBAAkB,aAAa,mBAAmB,uBAAuB,2DAA2D,6BAA6B,eAAe,cAAc,YAAY,iFAAiF,wBAAwB,aAAa,iEAAiE,gBAAgB,iDAAiD,yBAAyB,cAAc,iCAAiC,gBAAgB,gBAAgB,uBAAuB,qBAAqB,YAAY,aAAa,mBAAmB,uBAAuB,uEAAuE,aAAa,iFAAiF,cAAc,kFAAkF,gBAAgB,mEAAmE,aAAa,cAAc,2FAA2F,eAAe,kEAAkE,cAAc,WAAW,cAAc,iBAAiB,eAAe,SAAS,gCAAgC,iBAAiB,uBAAuB,gBAAgB,2KAA2K,WAAW,yBAAyB,uFAAuF,yBAAyB,0QAA0Q,kB;ACAnkE,qDAAqD,yBAAyB,cAAc,eAAe,iBAAiB,iBAAiB,WAAW,YAAY,8DAA8D,cAAc,wDAAwD,aAAa,WAAW,2CAA2C,WAAW,iDAAiD,SAAS,yJAAyJ,cAAc,mCAAmC,gBAAgB,uDAAuD,eAAe,mBAAmB,kBAAkB,mDAAmD,eAAe,+CAA+C,eAAe,qDAAqD,cAAc,sBAAsB,sDAAsD,cAAc,yDAAyD,oBAAoB,WAAW,sFAAsF,gBAAgB,yBAAyB,WAAW,4FAA4F,yBAAyB,WAAW,2DAA2D,OAAO,MAAM,2DAA2D,QAAQ,MAAM,8LAA8L,sBAAsB,0IAA0I,yBAAyB,cAAc,gJAAgJ,c;ACA1hE,yEAAyE,YAAY,yBAAyB,kBAAkB,sBAAsB,+EAA+E,yBAAyB,qFAAqF,gBAAgB,iFAAiF,yBAAyB,8EAA8E,SAAS,4BAA4B,eAAe,gBAAgB,uEAAuE,eAAe,6EAA6E,SAAS,gBAAgB,gKAAgK,gBAAgB,uFAAuF,aAAa,sEAAsE,SAAS,yBAAyB,gBAAgB,gBAAgB,8BAA8B,+BAA+B,gBAAgB,mCAAmC,2BAA2B,2EAA2E,UAAU,wEAAwE,eAAe,gBAAgB,iBAAiB,oFAAoF,yBAAyB,qFAAqF,yB;ACAjtD,2BAA2B,0BAA0B,uBAAuB,kBAAkB,yCAAyC,eAAe,gBAAgB,gBAAgB,cAAc,gBAAgB,qB;ACApN,uBAAuB,yCAAyC,WAAW,2BAA2B,mBAAmB,2BAA2B,oBAAoB,2BAA2B,e;ACAnM,yBAAyB,yCAAyC,gBAAgB,gBAAgB,iCAAiC,eAAe,gCAAgC,kBAAkB,2BAA2B,cAAc,iCAAiC,qBAAqB,c;ACAnS,4EAA4E,WAAW,eAAe,iBAAiB,yBAAyB,iBAAiB,SAAS,YAAY,8FAA8F,c;ACApR,mDAAmD,sBAAsB,yBAAyB,gBAAgB,yDAAyD,yBAAyB,6BAA6B,2DAA2D,sBAAsB,yBAAyB,iEAAiE,yBAAyB,6BAA6B,kEAAkE,c;ACApgB,qDAAqD,YAAY,yBAAyB,kBAAkB,sBAAsB,2DAA2D,yBAAyB,iEAAiE,gBAAgB,6DAA6D,0BAA0B,0DAA0D,SAAS,4BAA4B,eAAe,gBAAgB,mDAAmD,eAAe,yDAAyD,SAAS,gBAAgB,mEAAmE,aAAa,kDAAkD,SAAS,yBAAyB,gBAAgB,gBAAgB,8BAA8B,+BAA+B,gBAAgB,mCAAmC,2BAA2B,uDAAuD,UAAU,oDAAoD,eAAe,gBAAgB,iBAAiB,gEAAgE,yBAAyB,iEAAiE,yBAAyB,gFAAgF,a;ACAv4C,+CAA+C,yB","file":"src/resources/css/app/elements.min.css","sourcesContent":[".tribe-editor__button{cursor:pointer}.tribe-editor__btn--label,.tribe-editor__button{background-color:transparent;border:none;padding:0;margin:0}.tribe-editor__btn--label{text-align:left}.tribe-editor__button--sm{background-color:#009fd4;color:#fff;padding:11px 16px 9px;font-size:15px;font-weight:700;line-height:18px;transition:background-color .2s ease}.tribe-editor__button--sm:focus,.tribe-editor__button--sm:hover{background-color:#007bb4}.tribe-editor__button--sm[disabled],.tribe-editor__button--sm[disabled]:focus,.tribe-editor__button--sm[disabled]:hover{background-color:#f3f4f5;color:#8d949b}",".tribe-editor__accordion__row-content{max-height:0;overflow:hidden}.tribe-editor__accordion__row-content.active{max-height:none}",".editor-block-inspector__card .tribe-editor__icons__container{padding:4px;display:flex;align-items:center;justify-content:center}.editor-block-inspector__card .tribe-editor__icons__container svg{width:28px;height:28px}.editor-block-inspector__card .tribe-editor__icons--tec{background-color:#199fd1}button[class*=\" editor-block-list-item-tribe-\"] svg,button[class^=editor-block-list-item-tribe-] svg{color:#16a0d6}",".tribe-editor__counter{display:flex;flex-direction:column;align-items:center}.tribe-editor__counter__count{flex:none;color:#aeb4bb;font-size:32px;font-weight:700;line-height:40px;margin-bottom:10px}.tribe-editor__counter__label{flex:none;color:#aeb4bb;font-size:12px;line-height:14px;letter-spacing:.04px}",".tribe-editor__image-upload__title{margin:0 0 12px;color:#000;font-size:15px;font-weight:700;line-height:18px}.tribe-editor__image-upload__content{display:flex;justify-content:space-between;align-items:center}.tribe-editor__image-upload--has-image .tribe-editor__image-upload__content{align-items:flex-start}.tribe-editor__image-upload__content p.tribe-editor__image-upload__description{flex:none;width:52%;font-family:Helvetica,sans-serif;font-size:14px;color:#545d66;line-height:18px;margin:0}.tribe-editor__image-upload__upload-button{flex:none;margin-right:10px}.tribe-editor__image-upload__image-wrapper{flex:none;width:42%;max-width:325px;padding-left:25px;position:relative}.tribe-editor__image-upload__remove-button{position:absolute;top:10px;right:10px;width:32px;height:32px;padding:8px;border-radius:50%;background-color:#f8f9fb}.tribe-editor__image-upload__remove-button>svg,.tribe-editor__image-upload__remove-button>svg path{fill:#545d66}.tribe-editor__image-upload__remove-button:focus>svg,.tribe-editor__image-upload__remove-button:focus>svg path,.tribe-editor__image-upload__remove-button:hover>svg,.tribe-editor__image-upload__remove-button:hover>svg path{fill:#009fd4}.tribe-editor__image-upload__remove-button:disabled:focus>svg,.tribe-editor__image-upload__remove-button:disabled:focus>svg path,.tribe-editor__image-upload__remove-button:disabled:hover>svg,.tribe-editor__image-upload__remove-button:disabled:hover>svg path,.tribe-editor__image-upload__remove-button:disabled>svg,.tribe-editor__image-upload__remove-button:disabled>svg path{fill:#aeb4bb}.tribe-editor__image-upload__remove-button-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}",".tribe-editor__rsvp .tribe-editor__label-with-link,.tribe-editor__ticket .tribe-editor__label-with-link{display:flex;align-items:center;background-color:#fff;padding:10px 17px;border:1px solid #e1e3e6}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__labeled-item__label,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__labeled-item__label{flex:auto;color:#545d66;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;padding-right:10px}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link{flex:none;color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;text-decoration:none;transition:color .2s ease}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link:focus,.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link:hover,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link:focus,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link:hover{color:#007bb4}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link.tribe-editor__label-with-link__link--disabled,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link.tribe-editor__label-with-link__link--disabled{color:#aeb4bb}",".tribe-editor__label-with-modal{display:flex;align-items:center;background-color:#fff;padding:11px 17px;border:1px solid #e1e3e6;height:40px}.tribe-editor__label-with-modal .tribe-editor__labeled-item__label{flex:auto;color:#545d66;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px}.tribe-editor__label-with-modal .tribe-editor__label-with-modal__modal-button{flex:none}.tribe-editor__label-with-modal .tribe-editor__modal-button__button{color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;transition:color .2s ease}.tribe-editor__label-with-modal .tribe-editor__modal-button__button:focus,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:hover{color:#007bb4}.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled:focus,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled:hover{color:#aeb4bb}",".tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{margin:0;max-width:100%!important;padding:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-hovered>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected-parent>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected>.editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit:before{outline:none}",".tribe-common-form-select{display:flex}.tribe-common-form-select>div{flex:0 0 auto;min-width:193px}.tribe-common-form-select__toggle{background-color:#fff;border-radius:2px;border:2px solid #eaebec}.tribe-common-form-select__toggle button{align-items:center;background-color:#fefffe;border:none;color:#545d66;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;justify-content:center;line-height:1.5;padding:6px 10px;text-align:left;text-decoration:none;width:100%}.tribe-common-form-select__toggle button>span{flex:1}.tribe-common-form-select__options__option{background:transparent;border:0;color:#555d66;cursor:pointer;display:block;line-height:20px;padding:5px 12px;text-align:left;width:100%}.tribe-common-form-select__options__option:hover{background-color:#009fd4;color:#fff}",".tribe-editor__timepicker{display:inline-block}.tribe-editor__timepicker-label-container{background-color:#fff;border:1px solid #e1e3e6;padding-left:10px;border-radius:2px;display:flex;align-items:center;justify-content:center}.tribe-editor__timepicker-label-container input[type=time]{font-family:Noto Serif,serif;font-size:14px;padding:6px 0;border:none}.tribe-editor__timepicker-label-container input[type=time]::-webkit-clear-button{-webkit-appearance:none;display:none}.tribe-editor__timepicker-label-container input[type=time]:focus{box-shadow:none}.tribe-editor__timepicker-label-container button{background-color:#fefffe;color:#545d66;font-family:Helvetica,sans-serif;font-weight:400;line-height:1.5;padding:11px 10px 10px;text-decoration:none;border:none;display:flex;align-items:center;justify-content:center}.tribe-editor__timepicker-label-container button:disabled>svg.dashicon{fill:#aeb4bb}.tribe-editor__timepicker-label-container .tribe-editor__timepicker__all-day-btn{padding:6px 0}.tribe-editor__timepicker__dialog.components-popover .components-popover__content{min-width:110px}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__items{height:250px;overflow:auto}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__items .components-placeholder{height:inherit}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item{display:block;width:100%;color:#555d66;padding:5px 12px;cursor:pointer;border:0;border-bottom:1px solid #e2e4e7;line-height:20px;background:transparent;text-align:left}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item--current,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item--current:not(:disabled):hover{color:#fff;background-color:#009fd4}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):hover{background-color:#e7f5fa}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled).is-active,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):active,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):focus{position:relative}",".tribe-editor__day-picker-input.DayPickerInput>input{border:1px solid #e1e3e6;color:#545d66;font-size:16px;line-height:24px;padding:7px 15px;width:100%;height:40px}.tribe-editor__day-picker-input.DayPickerInput>input:disabled{color:#aeb4bb}.tribe-editor__day-picker-input .DayPickerInput-Overlay{padding:20px;z-index:10}.tribe-editor__day-picker-input .DayPicker{width:100%}.tribe-editor__day-picker-input .DayPicker-Month{margin:0}.tribe-editor__day-picker-input .DayPicker-Caption>div,.tribe-editor__day-picker-input .DayPicker-Day,.tribe-editor__day-picker-input .DayPicker-Weekday{color:#545d66;font-family:Helvetica,\"sans-serif\";font-weight:400}.tribe-editor__day-picker-input .DayPicker-Caption>div{font-size:16px;margin-bottom:12px;text-align:center}.tribe-editor__day-picker-input .DayPicker-Weekday{font-size:12px}.tribe-editor__day-picker-input .DayPicker-Day{font-size:14px}.tribe-editor__day-picker-input .DayPicker-Day:hover{color:#007bb4;background-color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--today{color:#545d66}.tribe-editor__day-picker-input .DayPicker-Day--disabled{pointer-events:none;color:#ccc}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--outside){border-radius:0;background-color:#009fd4;color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--outside):hover{background-color:#007bb4;color:#fff}.tribe-editor__day-picker-input .DayPicker-NavButton--prev{left:0;top:0}.tribe-editor__day-picker-input .DayPicker-NavButton--next{right:0;top:0}.tribe-editor__day-picker-input .DayPicker:not(.DayPicker--interactionDisabled) .DayPicker-Day:not(.DayPicker-Day--disabled):not(.DayPicker-Day--selected):not(.DayPicker-Day--outside):hover{background-color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside){background-color:#e7f5fa;color:#545d66}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside):hover{color:#007bb4}",".tribe-editor__creatable-select .tribe-editor__creatable-select__control{height:40px;border:1px solid #e1e3e6;border-radius:3px;background-color:#fff}.tribe-editor__creatable-select .tribe-editor__creatable-select__control:hover{border:1px solid #e1e3e6}.tribe-editor__creatable-select .tribe-editor__creatable-select__control--is-focused{box-shadow:none}.tribe-editor__creatable-select .tribe-editor__creatable-select__value-container{padding:2px 5px 2px 15px}.tribe-editor__creatable-select .tribe-editor__creatable-select__single-value{margin:0;max-width:calc(100% - 15px);font-size:16px;line-height:1.5}.tribe-editor__creatable-select .tribe-editor__creatable-select__input{font-size:16px}.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input{margin:0;line-height:1.5}.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input,.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input:focus{box-shadow:none}.tribe-editor__creatable-select svg.tribe-editor__creatable-select__dropdown-indicator{fill:#555d66}.tribe-editor__creatable-select .tribe-editor__creatable-select__menu{margin:0;border:1px solid #e1e3e6;border-top:none;border-radius:0;border-bottom-left-radius:3px;border-bottom-right-radius:3px;box-shadow:none;-webkit-transform:translateY(-7px);transform:translateY(-7px)}.tribe-editor__creatable-select .tribe-editor__creatable-select__menu-list{padding:0}.tribe-editor__creatable-select .tribe-editor__creatable-select__option{font-size:16px;line-height:1.5;padding:3px 15px}.tribe-editor__creatable-select .tribe-editor__creatable-select__option--is-focused{background-color:#e7f5fa}.tribe-editor__creatable-select .tribe-editor__creatable-select__option--is-selected{background-color:#11a0d2}",".tribe-editor__placeholder{border:2px dashed #e1e3e6;padding:12px 15px 14px;text-align:center;font-family:Helvetica,Arial,\"sans-serif\";font-size:1rem;line-height:1.5;font-weight:700;color:#8d949b;min-width:260px;display:inline-block}",".tribe-editor__heading{font-family:Helvetica,Arial,\"sans-serif\";color:#000}.tribe-editor__heading--h1{font-size:2.375rem}.tribe-editor__heading--h2{font-size:1.3125rem}.tribe-editor__heading--h3{font-size:1rem}",".tribe-editor__paragraph{font-family:Helvetica,Arial,\"sans-serif\";line-height:1.5;font-weight:400}.tribe-editor__paragraph--medium{font-size:1rem}.tribe-editor__paragraph--small{font-size:.875rem}.tribe-editor__paragraph a{color:#11a0d2}.tribe-editor__paragraph a:hover{text-decoration:none;color:#007bb4}","input.tribe-editor__input[type=number],input.tribe-editor__input[type=text]{color:#000;font-size:16px;line-height:24px;border:1px solid #e1e3e6;padding:7px 15px;margin:0;height:40px}input.tribe-editor__input[type=number]:disabled,input.tribe-editor__input[type=text]:disabled{color:#aeb4bb}","input[type=checkbox].tribe-editor__input--checkbox{background-color:#fff;border:1px solid #e0e5e9;border-radius:0}input[type=checkbox].tribe-editor__input--checkbox:focus{border:1px solid #e0e5e9;box-shadow:0 0 0 1px #e0e5e9}input[type=checkbox].tribe-editor__input--checkbox:checked{background-color:#fff;border:1px solid #e0e5e9}input[type=checkbox].tribe-editor__input--checkbox:checked:focus{border:1px solid #e0e5e9;box-shadow:0 0 0 1px #e0e5e9}input[type=checkbox].tribe-editor__input--checkbox:checked:before{color:#11a0d2}",".tribe-editor__select .tribe-editor__select__control{height:46px;border:1px solid #e1e3e6;border-radius:3px;background-color:#fff}.tribe-editor__select .tribe-editor__select__control:hover{border:1px solid #e1e3e6}.tribe-editor__select .tribe-editor__select__control--is-focused{box-shadow:none}.tribe-editor__select .tribe-editor__select__value-container{padding:2px 10px 2px 15px}.tribe-editor__select .tribe-editor__select__single-value{margin:0;max-width:calc(100% - 15px);font-size:16px;line-height:1.5}.tribe-editor__select .tribe-editor__select__input{font-size:16px}.tribe-editor__select .tribe-editor__select__input>input{margin:0;line-height:1.5}.tribe-editor__select svg.tribe-editor__select__dropdown-indicator{fill:#555d66}.tribe-editor__select .tribe-editor__select__menu{margin:0;border:1px solid #e1e3e6;border-top:none;border-radius:0;border-bottom-left-radius:3px;border-bottom-right-radius:3px;box-shadow:none;-webkit-transform:translateY(-7px);transform:translateY(-7px)}.tribe-editor__select .tribe-editor__select__menu-list{padding:0}.tribe-editor__select .tribe-editor__select__option{font-size:16px;line-height:1.5;padding:3px 15px}.tribe-editor__select .tribe-editor__select__option--is-focused{background-color:#e7f5fa}.tribe-editor__select .tribe-editor__select__option--is-selected{background-color:#11a0d2}.tribe-editor__select--is-disabled svg.tribe-editor__select__dropdown-indicator{fill:#aeb4bb}",".post-type-tribe_events .editor-styles-wrapper{max-width:none!important}"],"sourceRoot":""}
|
1 |
+
{"version":3,"sources":["webpack://tribe.common.[name]/./src/modules/elements/button/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/accordion/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/block-icon/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/counter/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/image-upload/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/label-with-link/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/label-with-modal/style.pcss","webpack://tribe.common.[name]/./src/modules/components/plugin-block-hooks/style.pcss","webpack://tribe.common.[name]/./src/modules/components/form/select/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/time-picker/style.pcss","webpack://tribe.common.[name]/./node_modules/react-day-picker/lib/style.css","webpack://tribe.common.[name]/./src/modules/elements/day-picker-input/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/creatable-select/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/placeholder/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/heading/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/paragraph/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/input/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/checkbox-input/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/select/style.pcss","webpack://tribe.common.[name]/./src/modules/elements/style.pcss"],"names":[],"mappings":"AAAA,0BAA0B,6BAA6B,YAAY,UAAU,SAAS,gBAAgB,6CAA6C,6BAA6B,YAAY,UAAU,SAAS,mCAAmC,eAAe,iDAAiD,yBAAyB,WAAW,sBAAsB,eAAe,gBAAgB,iBAAiB,qCAAqC,8GAA8G,yBAAyB,6LAA6L,yBAAyB,c;ACA9xB,sCAAsC,aAAa,gBAAgB,6CAA6C,gB;ACAhH,8DAA8D,YAAY,aAAa,mBAAmB,uBAAuB,kEAAkE,WAAW,YAAY,wDAAwD,yBAAyB,qGAAqG,c;ACAhZ,uBAAuB,aAAa,sBAAsB,mBAAmB,8BAA8B,UAAU,cAAc,eAAe,gBAAgB,iBAAiB,mBAAmB,8BAA8B,UAAU,cAAc,eAAe,iBAAiB,qB;ACA5R,sFAAsF,UAAU,gBAAgB,WAAW,eAAe,gBAAgB,iBAAiB,qCAAqC,aAAa,8BAA8B,mBAAmB,4EAA4E,uBAAuB,+EAA+E,UAAU,UAAU,iCAAiC,eAAe,cAAc,iBAAiB,SAAS,2CAA2C,UAAU,kBAAkB,2CAA2C,UAAU,UAAU,gBAAgB,kBAAkB,kBAAkB,2CAA2C,kBAAkB,SAAS,WAAW,WAAW,YAAY,YAAY,kBAAkB,yBAAyB,mGAAmG,aAAa,8NAA8N,aAAa,uXAAuX,aAAa,gDAAgD,SAAS,mBAAmB,WAAW,YAAY,gBAAgB,UAAU,kBAAkB,U;ACAnvD,wGAAwG,aAAa,mBAAmB,sBAAsB,kBAAkB,yBAAyB,8KAA8K,UAAU,cAAc,eAAe,gBAAgB,iBAAiB,qBAAqB,mBAAmB,kLAAkL,UAAU,cAAc,eAAe,gBAAgB,iBAAiB,qBAAqB,qBAAqB,gBAAgB,0BAA0B,4XAA4X,cAAc,8QAA8Q,c;ACA78C,gCAAgC,aAAa,mBAAmB,sBAAsB,kBAAkB,yBAAyB,YAAY,mEAAmE,UAAU,cAAc,eAAe,gBAAgB,iBAAiB,qBAAqB,8EAA8E,UAAU,oEAAoE,cAAc,eAAe,gBAAgB,iBAAiB,qBAAqB,0BAA0B,oJAAoJ,cAAc,mPAAmP,c;ACA38B,iFAAiF,SAAS,2GAA2G,SAAS,yBAAyB,UAAU,6dAA6d,aAAa,0IAA0I,SAAS,iJAAiJ,aAAa,2KAA2K,aAAa,2GAA2G,a;ACA/yC,0BAA0B,aAAa,8BAA8B,cAAc,gBAAgB,kCAAkC,sBAAsB,kBAAkB,yBAAyB,yCAAyC,mBAAmB,yBAAyB,YAAY,cAAc,aAAa,iCAAiC,eAAe,gBAAgB,uBAAuB,gBAAgB,iBAAiB,gBAAgB,qBAAqB,WAAW,8CAA8C,OAAO,2CAA2C,uBAAuB,SAAS,cAAc,eAAe,cAAc,iBAAiB,iBAAiB,gBAAgB,WAAW,iDAAiD,yBAAyB,W;ACA5xB,0BAA0B,qBAAqB,0CAA0C,sBAAsB,yBAAyB,kBAAkB,kBAAkB,aAAa,mBAAmB,uBAAuB,2DAA2D,6BAA6B,eAAe,cAAc,YAAY,iFAAiF,wBAAwB,aAAa,iEAAiE,gBAAgB,iDAAiD,yBAAyB,cAAc,iCAAiC,gBAAgB,gBAAgB,uBAAuB,qBAAqB,YAAY,aAAa,mBAAmB,uBAAuB,uEAAuE,aAAa,iFAAiF,cAAc,kFAAkF,gBAAgB,mEAAmE,aAAa,cAAc,2FAA2F,eAAe,kEAAkE,cAAc,WAAW,cAAc,iBAAiB,eAAe,SAAS,gCAAgC,iBAAiB,uBAAuB,gBAAgB,2KAA2K,WAAW,yBAAyB,uFAAuF,yBAAyB,0QAA0Q,kB;ACAnkE,WAAW,qBAAqB,eAAe,mBAAmB,kBAAkB,mBAAmB,mBAAmB,yBAAyB,sBAAsB,qBAAqB,iBAAiB,kBAAkB,aAAa,eAAe,uBAAuB,iBAAiB,cAAc,aAAa,eAAe,iBAAiB,yBAAyB,yBAAyB,sBAAsB,qBAAqB,iBAAiB,qBAAqB,kBAAkB,QAAQ,YAAY,UAAU,qBAAqB,eAAe,aAAa,cAAc,wBAAwB,oBAAoB,4BAA4B,cAAc,eAAe,2BAA2B,WAAW,2BAA2B,mBAAmB,qCAAqC,kjBAAkjB,2BAA2B,qCAAqC,8lBAA8lB,0CAA0C,aAAa,mBAAmB,sBAAsB,mBAAmB,eAAe,gBAAgB,uBAAuB,gBAAgB,iBAAiB,oBAAoB,2BAA2B,eAAe,uBAAuB,kBAAkB,mBAAmB,mBAAmB,aAAa,cAAc,kBAAkB,iBAAiB,+BAA+B,mBAAmB,qBAAqB,gBAAgB,wBAAwB,gBAAgB,kBAAkB,eAAe,kBAAkB,kBAAkB,qCAAqC,mBAAmB,aAAa,sBAAsB,eAAe,sBAAsB,cAAc,+BAA+B,cAAc,iBAAiB,gBAAgB,+CAA+C,eAAe,kBAAkB,iBAAiB,uBAAuB,YAAY,6BAA6B,sBAAsB,gBAAgB,cAAc,iBAAiB,eAAe,sBAAsB,cAAc,gBAAgB,wBAAwB,cAAc,eAAe,yBAAyB,cAAc,eAAe,uBAAuB,yBAAyB,kDAAkD,cAAc,oFAAoF,kBAAkB,yBAAyB,cAAc,0FAA0F,yBAAyB,8JAA8J,yBAAyB,gBAAgB,qBAAqB,+BAA+B,kBAAkB,wBAAwB,kBAAkB,OAAO,UAAU,gBAAgB,qC;ACAj5H,qDAAqD,yBAAyB,cAAc,eAAe,iBAAiB,iBAAiB,WAAW,YAAY,8DAA8D,cAAc,wDAAwD,aAAa,WAAW,2CAA2C,WAAW,iDAAiD,SAAS,yJAAyJ,cAAc,mCAAmC,gBAAgB,uDAAuD,eAAe,mBAAmB,kBAAkB,mDAAmD,eAAe,+CAA+C,eAAe,qDAAqD,cAAc,sBAAsB,sDAAsD,cAAc,yDAAyD,oBAAoB,WAAW,sFAAsF,gBAAgB,yBAAyB,WAAW,4FAA4F,yBAAyB,WAAW,2DAA2D,OAAO,MAAM,2DAA2D,QAAQ,MAAM,8LAA8L,sBAAsB,0IAA0I,yBAAyB,cAAc,gJAAgJ,c;ACA1hE,yEAAyE,YAAY,yBAAyB,kBAAkB,sBAAsB,+EAA+E,yBAAyB,qFAAqF,gBAAgB,iFAAiF,yBAAyB,8EAA8E,SAAS,4BAA4B,eAAe,gBAAgB,uEAAuE,eAAe,6EAA6E,SAAS,gBAAgB,gKAAgK,gBAAgB,uFAAuF,aAAa,sEAAsE,SAAS,yBAAyB,gBAAgB,gBAAgB,8BAA8B,+BAA+B,gBAAgB,mCAAmC,2BAA2B,2EAA2E,UAAU,wEAAwE,eAAe,gBAAgB,iBAAiB,oFAAoF,yBAAyB,qFAAqF,yB;ACAjtD,2BAA2B,0BAA0B,uBAAuB,kBAAkB,yCAAyC,eAAe,gBAAgB,gBAAgB,cAAc,gBAAgB,qB;ACApN,uBAAuB,yCAAyC,WAAW,2BAA2B,mBAAmB,2BAA2B,oBAAoB,2BAA2B,e;ACAnM,yBAAyB,yCAAyC,gBAAgB,gBAAgB,iCAAiC,eAAe,gCAAgC,kBAAkB,2BAA2B,cAAc,iCAAiC,qBAAqB,c;ACAnS,4EAA4E,WAAW,eAAe,iBAAiB,yBAAyB,iBAAiB,SAAS,YAAY,8FAA8F,c;ACApR,mDAAmD,sBAAsB,yBAAyB,gBAAgB,yDAAyD,yBAAyB,6BAA6B,2DAA2D,sBAAsB,yBAAyB,iEAAiE,yBAAyB,6BAA6B,kEAAkE,c;ACApgB,qDAAqD,YAAY,yBAAyB,kBAAkB,sBAAsB,2DAA2D,yBAAyB,iEAAiE,gBAAgB,6DAA6D,0BAA0B,0DAA0D,SAAS,4BAA4B,eAAe,gBAAgB,mDAAmD,eAAe,yDAAyD,SAAS,gBAAgB,mEAAmE,aAAa,kDAAkD,SAAS,yBAAyB,gBAAgB,gBAAgB,8BAA8B,+BAA+B,gBAAgB,mCAAmC,2BAA2B,uDAAuD,UAAU,oDAAoD,eAAe,gBAAgB,iBAAiB,gEAAgE,yBAAyB,iEAAiE,yBAAyB,gFAAgF,a;ACAv4C,+CAA+C,yB","file":"src/resources/css/app/elements.min.css","sourcesContent":[".tribe-editor__btn--label{background-color:transparent;border:none;padding:0;margin:0;text-align:left}.editor-styles-wrapper .tribe-editor__button{background-color:transparent;border:none;padding:0;margin:0;font-family:Helvetica,\"sans-serif\";cursor:pointer}.editor-styles-wrapper .tribe-editor__button--sm{background-color:#009fd4;color:#fff;padding:11px 16px 9px;font-size:15px;font-weight:700;line-height:18px;transition:background-color .2s ease}.editor-styles-wrapper .tribe-editor__button--sm:focus,.editor-styles-wrapper .tribe-editor__button--sm:hover{background-color:#007bb4}.editor-styles-wrapper .tribe-editor__button--sm[disabled],.editor-styles-wrapper .tribe-editor__button--sm[disabled]:focus,.editor-styles-wrapper .tribe-editor__button--sm[disabled]:hover{background-color:#f3f4f5;color:#8d949b}",".tribe-editor__accordion__row-content{max-height:0;overflow:hidden}.tribe-editor__accordion__row-content.active{max-height:none}",".editor-block-inspector__card .tribe-editor__icons__container{padding:4px;display:flex;align-items:center;justify-content:center}.editor-block-inspector__card .tribe-editor__icons__container svg{width:28px;height:28px}.editor-block-inspector__card .tribe-editor__icons--tec{background-color:#199fd1}button[class*=\" editor-block-list-item-tribe-\"] svg,button[class^=editor-block-list-item-tribe-] svg{color:#16a0d6}",".tribe-editor__counter{display:flex;flex-direction:column;align-items:center}.tribe-editor__counter__count{flex:none;color:#aeb4bb;font-size:32px;font-weight:700;line-height:40px;margin-bottom:10px}.tribe-editor__counter__label{flex:none;color:#aeb4bb;font-size:12px;line-height:14px;letter-spacing:.04px}",".edit-post-visual-editor .editor-block-list__block .tribe-editor__image-upload__title{padding:0;margin:0 0 12px;color:#000;font-size:15px;font-weight:700;line-height:18px}.tribe-editor__image-upload__content{display:flex;justify-content:space-between;align-items:center}.tribe-editor__image-upload--has-image .tribe-editor__image-upload__content{align-items:flex-start}.tribe-editor__image-upload__content p.tribe-editor__image-upload__description{flex:none;width:52%;font-family:Helvetica,sans-serif;font-size:14px;color:#545d66;line-height:18px;margin:0}.tribe-editor__image-upload__upload-button{flex:none;margin-right:10px}.tribe-editor__image-upload__image-wrapper{flex:none;width:42%;max-width:325px;padding-left:25px;position:relative}.tribe-editor__image-upload__remove-button{position:absolute;top:10px;right:10px;width:32px;height:32px;padding:8px;border-radius:50%;background-color:#f8f9fb}.tribe-editor__image-upload__remove-button>svg,.tribe-editor__image-upload__remove-button>svg path{fill:#545d66}.tribe-editor__image-upload__remove-button:focus>svg,.tribe-editor__image-upload__remove-button:focus>svg path,.tribe-editor__image-upload__remove-button:hover>svg,.tribe-editor__image-upload__remove-button:hover>svg path{fill:#009fd4}.tribe-editor__image-upload__remove-button:disabled:focus>svg,.tribe-editor__image-upload__remove-button:disabled:focus>svg path,.tribe-editor__image-upload__remove-button:disabled:hover>svg,.tribe-editor__image-upload__remove-button:disabled:hover>svg path,.tribe-editor__image-upload__remove-button:disabled>svg,.tribe-editor__image-upload__remove-button:disabled>svg path{fill:#aeb4bb}.tribe-editor__image-upload__remove-button-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}",".tribe-editor__rsvp .tribe-editor__label-with-link,.tribe-editor__ticket .tribe-editor__label-with-link{display:flex;align-items:center;background-color:#fff;padding:10px 17px;border:1px solid #e1e3e6}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__labeled-item__label,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__labeled-item__label{flex:auto;color:#545d66;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;padding-right:10px}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link{flex:none;color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;text-decoration:none;box-shadow:none;transition:color .2s ease}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link:focus,.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link:hover,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link:focus,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link:hover{color:#007bb4}.tribe-editor__rsvp .tribe-editor__label-with-link .tribe-editor__label-with-link__link.tribe-editor__label-with-link__link--disabled,.tribe-editor__ticket .tribe-editor__label-with-link .tribe-editor__label-with-link__link.tribe-editor__label-with-link__link--disabled{color:#aeb4bb}",".tribe-editor__label-with-modal{display:flex;align-items:center;background-color:#fff;padding:11px 17px;border:1px solid #e1e3e6;height:40px}.tribe-editor__label-with-modal .tribe-editor__labeled-item__label{flex:auto;color:#545d66;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px}.tribe-editor__label-with-modal .tribe-editor__label-with-modal__modal-button{flex:none}.tribe-editor__label-with-modal .tribe-editor__modal-button__button{color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;transition:color .2s ease}.tribe-editor__label-with-modal .tribe-editor__modal-button__button:focus,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:hover{color:#007bb4}.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled:focus,.tribe-editor__label-with-modal .tribe-editor__modal-button__button:disabled:hover{color:#aeb4bb}",".tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{margin:0;max-width:100%!important;padding:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-hovered>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected-parent>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected>.editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit{margin:0}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit:before{outline:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit .editor-block-contextual-toolbar{display:none}.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout .editor-block-list__block{outline:none}",".tribe-common-form-select{display:flex}.tribe-common-form-select>div{flex:0 0 auto;min-width:193px}.tribe-common-form-select__toggle{background-color:#fff;border-radius:2px;border:2px solid #eaebec}.tribe-common-form-select__toggle button{align-items:center;background-color:#fefffe;border:none;color:#545d66;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;justify-content:center;line-height:1.5;padding:6px 10px;text-align:left;text-decoration:none;width:100%}.tribe-common-form-select__toggle button>span{flex:1}.tribe-common-form-select__options__option{background:transparent;border:0;color:#555d66;cursor:pointer;display:block;line-height:20px;padding:5px 12px;text-align:left;width:100%}.tribe-common-form-select__options__option:hover{background-color:#009fd4;color:#fff}",".tribe-editor__timepicker{display:inline-block}.tribe-editor__timepicker-label-container{background-color:#fff;border:1px solid #e1e3e6;padding-left:10px;border-radius:2px;display:flex;align-items:center;justify-content:center}.tribe-editor__timepicker-label-container input[type=time]{font-family:Noto Serif,serif;font-size:14px;padding:6px 0;border:none}.tribe-editor__timepicker-label-container input[type=time]::-webkit-clear-button{-webkit-appearance:none;display:none}.tribe-editor__timepicker-label-container input[type=time]:focus{box-shadow:none}.tribe-editor__timepicker-label-container button{background-color:#fefffe;color:#545d66;font-family:Helvetica,sans-serif;font-weight:400;line-height:1.5;padding:11px 10px 10px;text-decoration:none;border:none;display:flex;align-items:center;justify-content:center}.tribe-editor__timepicker-label-container button:disabled>svg.dashicon{fill:#aeb4bb}.tribe-editor__timepicker-label-container .tribe-editor__timepicker__all-day-btn{padding:6px 0}.tribe-editor__timepicker__dialog.components-popover .components-popover__content{min-width:110px}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__items{height:250px;overflow:auto}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__items .components-placeholder{height:inherit}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item{display:block;width:100%;color:#555d66;padding:5px 12px;cursor:pointer;border:0;border-bottom:1px solid #e2e4e7;line-height:20px;background:transparent;text-align:left}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item--current,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item--current:not(:disabled):hover{color:#fff;background-color:#009fd4}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):hover{background-color:#e7f5fa}.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled).is-active,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):active,.tribe-editor__timepicker__dialog .tribe-editor__timepicker__item:not(:disabled):focus{position:relative}",".DayPicker{display:inline-block;font-size:1rem}.DayPicker-wrapper{position:relative;flex-direction:row;padding-bottom:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.DayPicker-Months{display:flex;flex-wrap:wrap;justify-content:center}.DayPicker-Month{display:table;margin:0 1em;margin-top:1em;border-spacing:0;border-collapse:collapse;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.DayPicker-NavButton{position:absolute;top:1em;right:1.5em;left:auto;display:inline-block;margin-top:2px;width:1.25em;height:1.25em;background-position:50%;background-size:50%;background-repeat:no-repeat;color:#8b9898;cursor:pointer}.DayPicker-NavButton:hover{opacity:.8}.DayPicker-NavButton--prev{margin-right:1.5em;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAwCAYAAAB5R9gVAAAABGdBTUEAALGPC/xhBQAAAVVJREFUWAnN2G0KgjAYwPHpGfRkaZeqvgQaK+hY3SUHrk1YzNLay/OiEFp92I+/Mp2F2Mh2lLISWnflFjzH263RQjzMZ19wgs73ez0o1WmtW+dgA01VxrE3p6l2GLsnBy1VYQOtVSEH/atCCgqpQgKKqYIOiq2CBkqtggLKqQIKgqgCBjpJ2Y5CdJ+zrT9A7HHSTA1dxUdHgzCqJIEwq0SDsKsEg6iqBIEoq/wEcVRZBXFV+QJxV5mBtlDFB5VjYTaGZ2sf4R9PM7U9ZU+lLuaetPP/5Die3ToO1+u+MKtHs06qODB2zBnI/jBd4MPQm1VkY79Tb18gB+C62FdBFsZR6yeIo1YQiLJWMIiqVjQIu1YSCLNWFgijVjYIuhYYCKoWKAiiFgoopxYaKLUWOii2FgkophYp6F3r42W5A9s9OcgNvva8xQaysKXlFytoqdYmQH6tF3toSUo0INq9AAAAAElFTkSuQmCC\")}.DayPicker-NavButton--next{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAwCAYAAAB5R9gVAAAABGdBTUEAALGPC/xhBQAAAXRJREFUWAnN119ugjAcwPHWzJ1gnmxzB/BBE0n24m4xfNkTaOL7wOtsl3AXMMb+Vjaa1BG00N8fSEibPpAP3xAKKs2yjzTPH9RAjhEo9WzPr/Vm8zgE0+gXATAxxuxtqeJ9t5tIwv5AtQAApsfT6TPdbp+kUBcgVwvO51KqVhMkXKsVJFXrOkigVhCIs1Y4iKlWZxB1rX4gwlpRIIpa8SDkWmggrFq4IIRaJKCYWnSgnrXIQV1r8YD+1Vrn+bReagysIFfLABRt31v8oBu1xEBttfRbltmfjgEcWh9snUS2kNdBK6WN1vrOWxObWsz+fjxevsxmB1GQDfINWiev83nhaoiB/CoOU438oPrhXS0WpQ9xc1ZQWxWHqUYe0I0qrKCQKjygDlXIQV2r0IF6ViEBxVTBBSFUQQNhVYkHIVeJAtkNsbQ7c1LtzP6FsObhb2rCKv7NBIGoq4SDmKoEgTirXAcJVGkFSVVpgoSrXICGUMUH/QBZNSUy5XWUhwAAAABJRU5ErkJggg==\")}.DayPicker-NavButton--interactionDisabled{display:none}.DayPicker-Caption{display:table-caption;margin-bottom:.5em;padding:0 .5em;text-align:left}.DayPicker-Caption>div{font-weight:500;font-size:1.15em}.DayPicker-Weekdays{display:table-header-group;margin-top:1em}.DayPicker-WeekdaysRow{display:table-row}.DayPicker-Weekday{display:table-cell;padding:.5em;color:#8b9898;text-align:center;font-size:.875em}.DayPicker-Weekday abbr[title]{border-bottom:none;text-decoration:none}.DayPicker-Body{display:table-row-group}.DayPicker-Week{display:table-row}.DayPicker-Day{border-radius:50%;text-align:center}.DayPicker-Day,.DayPicker-WeekNumber{display:table-cell;padding:.5em;vertical-align:middle;cursor:pointer}.DayPicker-WeekNumber{min-width:1em;border-right:1px solid #eaecec;color:#8b9898;text-align:right;font-size:.75em}.DayPicker--interactionDisabled .DayPicker-Day{cursor:default}.DayPicker-Footer{padding-top:.5em}.DayPicker-TodayButton{border:none;background-color:transparent;background-image:none;box-shadow:none;color:#4a90e2;font-size:.875em;cursor:pointer}.DayPicker-Day--today{color:#d0021b;font-weight:700}.DayPicker-Day--outside{color:#8b9898;cursor:default}.DayPicker-Day--disabled{color:#dce0e0;cursor:default}.DayPicker-Day--sunday{background-color:#f7f8f8}.DayPicker-Day--sunday:not(.DayPicker-Day--today){color:#dce0e0}.DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside){position:relative;background-color:#4a90e2;color:#f0f8ff}.DayPicker-Day--selected:not(.DayPicker-Day--disabled):not(.DayPicker-Day--outside):hover{background-color:#51a0fa}.DayPicker:not(.DayPicker--interactionDisabled) .DayPicker-Day:not(.DayPicker-Day--disabled):not(.DayPicker-Day--selected):not(.DayPicker-Day--outside):hover{background-color:#f0f8ff}.DayPickerInput{display:inline-block}.DayPickerInput-OverlayWrapper{position:relative}.DayPickerInput-Overlay{position:absolute;left:0;z-index:1;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.15)}",".tribe-editor__day-picker-input.DayPickerInput>input{border:1px solid #e1e3e6;color:#545d66;font-size:16px;line-height:24px;padding:7px 15px;width:100%;height:40px}.tribe-editor__day-picker-input.DayPickerInput>input:disabled{color:#aeb4bb}.tribe-editor__day-picker-input .DayPickerInput-Overlay{padding:20px;z-index:10}.tribe-editor__day-picker-input .DayPicker{width:100%}.tribe-editor__day-picker-input .DayPicker-Month{margin:0}.tribe-editor__day-picker-input .DayPicker-Caption>div,.tribe-editor__day-picker-input .DayPicker-Day,.tribe-editor__day-picker-input .DayPicker-Weekday{color:#545d66;font-family:Helvetica,\"sans-serif\";font-weight:400}.tribe-editor__day-picker-input .DayPicker-Caption>div{font-size:16px;margin-bottom:12px;text-align:center}.tribe-editor__day-picker-input .DayPicker-Weekday{font-size:12px}.tribe-editor__day-picker-input .DayPicker-Day{font-size:14px}.tribe-editor__day-picker-input .DayPicker-Day:hover{color:#007bb4;background-color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--today{color:#545d66}.tribe-editor__day-picker-input .DayPicker-Day--disabled{pointer-events:none;color:#ccc}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--outside){border-radius:0;background-color:#009fd4;color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--outside):hover{background-color:#007bb4;color:#fff}.tribe-editor__day-picker-input .DayPicker-NavButton--prev{left:0;top:0}.tribe-editor__day-picker-input .DayPicker-NavButton--next{right:0;top:0}.tribe-editor__day-picker-input .DayPicker:not(.DayPicker--interactionDisabled) .DayPicker-Day:not(.DayPicker-Day--disabled):not(.DayPicker-Day--selected):not(.DayPicker-Day--outside):hover{background-color:#fff}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside){background-color:#e7f5fa;color:#545d66}.tribe-editor__day-picker-input .DayPicker-Day--selected:not(.DayPicker-Day--start):not(.DayPicker-Day--end):not(.DayPicker-Day--outside):hover{color:#007bb4}",".tribe-editor__creatable-select .tribe-editor__creatable-select__control{height:40px;border:1px solid #e1e3e6;border-radius:3px;background-color:#fff}.tribe-editor__creatable-select .tribe-editor__creatable-select__control:hover{border:1px solid #e1e3e6}.tribe-editor__creatable-select .tribe-editor__creatable-select__control--is-focused{box-shadow:none}.tribe-editor__creatable-select .tribe-editor__creatable-select__value-container{padding:2px 5px 2px 15px}.tribe-editor__creatable-select .tribe-editor__creatable-select__single-value{margin:0;max-width:calc(100% - 15px);font-size:16px;line-height:1.5}.tribe-editor__creatable-select .tribe-editor__creatable-select__input{font-size:16px}.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input{margin:0;line-height:1.5}.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input,.tribe-editor__creatable-select .tribe-editor__creatable-select__input>input:focus{box-shadow:none}.tribe-editor__creatable-select svg.tribe-editor__creatable-select__dropdown-indicator{fill:#555d66}.tribe-editor__creatable-select .tribe-editor__creatable-select__menu{margin:0;border:1px solid #e1e3e6;border-top:none;border-radius:0;border-bottom-left-radius:3px;border-bottom-right-radius:3px;box-shadow:none;-webkit-transform:translateY(-7px);transform:translateY(-7px)}.tribe-editor__creatable-select .tribe-editor__creatable-select__menu-list{padding:0}.tribe-editor__creatable-select .tribe-editor__creatable-select__option{font-size:16px;line-height:1.5;padding:3px 15px}.tribe-editor__creatable-select .tribe-editor__creatable-select__option--is-focused{background-color:#e7f5fa}.tribe-editor__creatable-select .tribe-editor__creatable-select__option--is-selected{background-color:#11a0d2}",".tribe-editor__placeholder{border:2px dashed #e1e3e6;padding:12px 15px 14px;text-align:center;font-family:Helvetica,Arial,\"sans-serif\";font-size:1rem;line-height:1.5;font-weight:700;color:#8d949b;min-width:260px;display:inline-block}",".tribe-editor__heading{font-family:Helvetica,Arial,\"sans-serif\";color:#000}.tribe-editor__heading--h1{font-size:2.375rem}.tribe-editor__heading--h2{font-size:1.3125rem}.tribe-editor__heading--h3{font-size:1rem}",".tribe-editor__paragraph{font-family:Helvetica,Arial,\"sans-serif\";line-height:1.5;font-weight:400}.tribe-editor__paragraph--medium{font-size:1rem}.tribe-editor__paragraph--small{font-size:.875rem}.tribe-editor__paragraph a{color:#11a0d2}.tribe-editor__paragraph a:hover{text-decoration:none;color:#007bb4}","input.tribe-editor__input[type=number],input.tribe-editor__input[type=text]{color:#000;font-size:16px;line-height:24px;border:1px solid #e1e3e6;padding:7px 15px;margin:0;height:40px}input.tribe-editor__input[type=number]:disabled,input.tribe-editor__input[type=text]:disabled{color:#aeb4bb}","input[type=checkbox].tribe-editor__input--checkbox{background-color:#fff;border:1px solid #e0e5e9;border-radius:0}input[type=checkbox].tribe-editor__input--checkbox:focus{border:1px solid #e0e5e9;box-shadow:0 0 0 1px #e0e5e9}input[type=checkbox].tribe-editor__input--checkbox:checked{background-color:#fff;border:1px solid #e0e5e9}input[type=checkbox].tribe-editor__input--checkbox:checked:focus{border:1px solid #e0e5e9;box-shadow:0 0 0 1px #e0e5e9}input[type=checkbox].tribe-editor__input--checkbox:checked:before{color:#11a0d2}",".tribe-editor__select .tribe-editor__select__control{height:46px;border:1px solid #e1e3e6;border-radius:3px;background-color:#fff}.tribe-editor__select .tribe-editor__select__control:hover{border:1px solid #e1e3e6}.tribe-editor__select .tribe-editor__select__control--is-focused{box-shadow:none}.tribe-editor__select .tribe-editor__select__value-container{padding:2px 10px 2px 15px}.tribe-editor__select .tribe-editor__select__single-value{margin:0;max-width:calc(100% - 15px);font-size:16px;line-height:1.5}.tribe-editor__select .tribe-editor__select__input{font-size:16px}.tribe-editor__select .tribe-editor__select__input>input{margin:0;line-height:1.5}.tribe-editor__select svg.tribe-editor__select__dropdown-indicator{fill:#555d66}.tribe-editor__select .tribe-editor__select__menu{margin:0;border:1px solid #e1e3e6;border-top:none;border-radius:0;border-bottom-left-radius:3px;border-bottom-right-radius:3px;box-shadow:none;-webkit-transform:translateY(-7px);transform:translateY(-7px)}.tribe-editor__select .tribe-editor__select__menu-list{padding:0}.tribe-editor__select .tribe-editor__select__option{font-size:16px;line-height:1.5;padding:3px 15px}.tribe-editor__select .tribe-editor__select__option--is-focused{background-color:#e7f5fa}.tribe-editor__select .tribe-editor__select__option--is-selected{background-color:#11a0d2}.tribe-editor__select--is-disabled svg.tribe-editor__select__dropdown-indicator{fill:#aeb4bb}",".post-type-tribe_events .editor-styles-wrapper{max-width:none!important}"],"sourceRoot":""}
|
common/src/resources/css/bumpdown.css
CHANGED
@@ -14,15 +14,14 @@
|
|
14 |
.tribe-bumpdown,
|
15 |
.tribe-bumpdown-cell.tribe-bumpdown {
|
16 |
display: none;
|
17 |
-
margin: 16px 0;
|
18 |
margin: 1rem 0;
|
19 |
}
|
20 |
.wrap .tribe-bumpdown .tribe-bumpdown-content, .tribe-bumpdown .tribe-bumpdown-content, .tribe-bumpdown-cell.tribe-bumpdown .tribe-bumpdown-content {
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
}
|
26 |
.tribe-bumpdown-cell.tribe-bumpdown {
|
27 |
padding: 0;
|
28 |
}
|
@@ -52,9 +51,7 @@
|
|
52 |
color: #686868;
|
53 |
cursor: pointer;
|
54 |
position: absolute;
|
55 |
-
right: 8px;
|
56 |
right: .5rem;
|
57 |
-
top: 8px;
|
58 |
top: .5rem;
|
59 |
z-index: 2;
|
60 |
}
|
@@ -65,6 +62,7 @@
|
|
65 |
.wrap td.tribe-bumpdown {
|
66 |
padding-right: 35px;
|
67 |
}
|
|
|
68 |
.tribe-bumpdown-arrow {
|
69 |
margin-left: -15px;
|
70 |
}
|
14 |
.tribe-bumpdown,
|
15 |
.tribe-bumpdown-cell.tribe-bumpdown {
|
16 |
display: none;
|
|
|
17 |
margin: 1rem 0;
|
18 |
}
|
19 |
.wrap .tribe-bumpdown .tribe-bumpdown-content, .tribe-bumpdown .tribe-bumpdown-content, .tribe-bumpdown-cell.tribe-bumpdown .tribe-bumpdown-content {
|
20 |
+
background: #f1f1f1;
|
21 |
+
padding: 10px 35px 10px 10px;
|
22 |
+
font-size: 12px;
|
23 |
+
position: relative;
|
24 |
+
}
|
25 |
.tribe-bumpdown-cell.tribe-bumpdown {
|
26 |
padding: 0;
|
27 |
}
|
51 |
color: #686868;
|
52 |
cursor: pointer;
|
53 |
position: absolute;
|
|
|
54 |
right: .5rem;
|
|
|
55 |
top: .5rem;
|
56 |
z-index: 2;
|
57 |
}
|
62 |
.wrap td.tribe-bumpdown {
|
63 |
padding-right: 35px;
|
64 |
}
|
65 |
+
|
66 |
.tribe-bumpdown-arrow {
|
67 |
margin-left: -15px;
|
68 |
}
|
common/src/resources/css/bumpdown.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.tribe-bumpdown,.tribe-bumpdown-cell.tribe-bumpdown,.wrap .tribe-bumpdown{display:none;margin:
|
1 |
+
.tribe-bumpdown,.tribe-bumpdown-cell.tribe-bumpdown,.wrap .tribe-bumpdown{display:none;margin:1rem 0}.tribe-bumpdown-cell.tribe-bumpdown .tribe-bumpdown-content,.tribe-bumpdown .tribe-bumpdown-content,.wrap .tribe-bumpdown .tribe-bumpdown-content{background:#f1f1f1;padding:10px 35px 10px 10px;font-size:12px;position:relative}.tribe-bumpdown-cell.tribe-bumpdown{padding:0}#poststuff .tribe-bumpdown h1,#poststuff .tribe-bumpdown h2,#poststuff .tribe-bumpdown h3,#poststuff .tribe-bumpdown h4,.tribe-bumpdown h1,.tribe-bumpdown h2,.tribe-bumpdown h3,.tribe-bumpdown h4{padding-left:0;padding-top:0}.tribe-bumpdown-arrow{position:absolute;width:0;height:0;top:-11px;margin-left:-18px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:11px solid #f1f1f1}.tribe-bumpdown-close{color:#686868;cursor:pointer;position:absolute;right:.5rem;top:.5rem;z-index:2}.tribe-bumpdown-trigger .target{color:#0074a2}@media screen and (max-width:782px){.wrap td.tribe-bumpdown{padding-right:35px}.tribe-bumpdown-arrow{margin-left:-15px}}
|
common/src/resources/css/buttonset.css
CHANGED
@@ -9,8 +9,8 @@
|
|
9 |
*/
|
10 |
|
11 |
.tribe-buttonset .tribe-button-field {
|
12 |
-
|
13 |
-
}
|
14 |
|
15 |
.tribe-button-field {
|
16 |
color: #444;
|
@@ -33,7 +33,7 @@
|
|
33 |
}
|
34 |
|
35 |
.tribe-button-field.tribe-active {
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
}
|
9 |
*/
|
10 |
|
11 |
.tribe-buttonset .tribe-button-field {
|
12 |
+
background-color: #f7f7f7;
|
13 |
+
}
|
14 |
|
15 |
.tribe-button-field {
|
16 |
color: #444;
|
33 |
}
|
34 |
|
35 |
.tribe-button-field.tribe-active {
|
36 |
+
color: #fff;
|
37 |
+
background-color: #585858;
|
38 |
+
border-color: #585858;
|
39 |
+
}
|
common/src/resources/css/datatables.css
CHANGED
@@ -20,207 +20,207 @@ table.dataTable {
|
|
20 |
}
|
21 |
table.dataTable thead th:active,
|
22 |
table.dataTable thead td:active {
|
23 |
-
|
24 |
-
}
|
25 |
table.dataTable thead .sorting,
|
26 |
table.dataTable thead .sorting_asc,
|
27 |
table.dataTable thead .sorting_desc {
|
28 |
-
|
29 |
-
|
30 |
-
}
|
31 |
table.dataTable thead .sorting,
|
32 |
table.dataTable thead .sorting_asc,
|
33 |
table.dataTable thead .sorting_desc,
|
34 |
table.dataTable thead .sorting_asc_disabled,
|
35 |
table.dataTable thead .sorting_desc_disabled {
|
36 |
-
|
37 |
-
|
38 |
-
}
|
39 |
table.dataTable thead .sorting {
|
40 |
-
|
41 |
-
}
|
42 |
table.dataTable thead .sorting_asc {
|
43 |
-
|
44 |
-
}
|
45 |
table.dataTable thead .sorting_desc {
|
46 |
-
|
47 |
-
}
|
48 |
table.dataTable thead .sorting_asc_disabled {
|
49 |
-
|
50 |
-
}
|
51 |
table.dataTable thead .sorting_desc_disabled {
|
52 |
-
|
53 |
-
}
|
54 |
table.dataTable.widefat thead th input, table.dataTable.widefat thead td input, table.dataTable.widefat tfoot th input, table.dataTable.widefat tfoot td input {
|
55 |
-
|
56 |
-
|
57 |
-
}
|
58 |
table.dataTable.widefat thead td.check-column, table.dataTable.widefat tfoot td.check-column {
|
59 |
-
|
60 |
-
|
61 |
-
}
|
62 |
table.dataTable.widefat thead th.check-column, table.dataTable.widefat tfoot th.check-column, table.dataTable.widefat tbody th.check-column {
|
63 |
-
|
64 |
-
}
|
65 |
table.dataTable .check-column {
|
66 |
-
|
67 |
-
}
|
68 |
table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
|
69 |
-
|
70 |
-
}
|
71 |
table.dataTable.row-border tbody tr:first-child th,
|
72 |
table.dataTable.row-border tbody tr:first-child td,
|
73 |
table.dataTable.display tbody tr:first-child th,
|
74 |
table.dataTable.display tbody tr:first-child td {
|
75 |
-
|
76 |
-
}
|
77 |
table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td {
|
78 |
-
|
79 |
-
|
80 |
-
}
|
81 |
table.dataTable.cell-border tbody tr th:first-child,
|
82 |
table.dataTable.cell-border tbody tr td:first-child {
|
83 |
-
|
84 |
-
}
|
85 |
table.dataTable.cell-border tbody tr:first-child th,
|
86 |
table.dataTable.cell-border tbody tr:first-child td {
|
87 |
-
|
88 |
-
}
|
89 |
table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {
|
90 |
-
|
91 |
-
}
|
92 |
table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover {
|
93 |
-
|
94 |
-
}
|
95 |
table.dataTable.order-column tbody tr > .sorting_1,
|
96 |
table.dataTable.order-column tbody tr > .sorting_2,
|
97 |
table.dataTable.order-column tbody tr > .sorting_3,
|
98 |
table.dataTable.display tbody tr > .sorting_1,
|
99 |
table.dataTable.display tbody tr > .sorting_2,
|
100 |
table.dataTable.display tbody tr > .sorting_3 {
|
101 |
-
|
102 |
-
}
|
103 |
table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
|
104 |
-
|
105 |
-
}
|
106 |
table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 {
|
107 |
-
|
108 |
-
}
|
109 |
table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 {
|
110 |
-
|
111 |
-
}
|
112 |
table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
|
113 |
-
|
114 |
-
}
|
115 |
table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 {
|
116 |
-
|
117 |
-
}
|
118 |
table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 {
|
119 |
-
|
120 |
-
}
|
121 |
table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 {
|
122 |
-
|
123 |
-
}
|
124 |
table.dataTable.display tbody tr:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2 {
|
125 |
-
|
126 |
-
}
|
127 |
table.dataTable.display tbody tr:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3 {
|
128 |
-
|
129 |
-
}
|
130 |
table.dataTable.no-footer {
|
131 |
-
|
132 |
-
}
|
133 |
table.dataTable.nowrap th, table.dataTable.nowrap td {
|
134 |
-
|
135 |
-
}
|
136 |
table.dataTable.compact thead th,
|
137 |
table.dataTable.compact thead td {
|
138 |
-
|
139 |
-
}
|
140 |
table.dataTable.compact tfoot th,
|
141 |
table.dataTable.compact tfoot td {
|
142 |
-
|
143 |
-
}
|
144 |
table.dataTable.compact tbody th,
|
145 |
table.dataTable.compact tbody td {
|
146 |
-
|
147 |
-
}
|
148 |
table.dataTable th.dt-left,
|
149 |
table.dataTable td.dt-left {
|
150 |
-
|
151 |
-
}
|
152 |
table.dataTable th.dt-center,
|
153 |
table.dataTable td.dt-center,
|
154 |
table.dataTable td.dataTables_empty {
|
155 |
-
|
156 |
-
}
|
157 |
table.dataTable th.dt-right,
|
158 |
table.dataTable td.dt-right {
|
159 |
-
|
160 |
-
}
|
161 |
table.dataTable th.dt-justify,
|
162 |
table.dataTable td.dt-justify {
|
163 |
-
|
164 |
-
}
|
165 |
table.dataTable th.dt-nowrap,
|
166 |
table.dataTable td.dt-nowrap {
|
167 |
-
|
168 |
-
}
|
169 |
table.dataTable thead th.dt-head-left,
|
170 |
table.dataTable thead td.dt-head-left,
|
171 |
table.dataTable tfoot th.dt-head-left,
|
172 |
table.dataTable tfoot td.dt-head-left {
|
173 |
-
|
174 |
-
}
|
175 |
table.dataTable thead th.dt-head-center,
|
176 |
table.dataTable thead td.dt-head-center,
|
177 |
table.dataTable tfoot th.dt-head-center,
|
178 |
table.dataTable tfoot td.dt-head-center {
|
179 |
-
|
180 |
-
}
|
181 |
table.dataTable thead th.dt-head-right,
|
182 |
table.dataTable thead td.dt-head-right,
|
183 |
table.dataTable tfoot th.dt-head-right,
|
184 |
table.dataTable tfoot td.dt-head-right {
|
185 |
-
|
186 |
-
}
|
187 |
table.dataTable thead th.dt-head-justify,
|
188 |
table.dataTable thead td.dt-head-justify,
|
189 |
table.dataTable tfoot th.dt-head-justify,
|
190 |
table.dataTable tfoot td.dt-head-justify {
|
191 |
-
|
192 |
-
}
|
193 |
table.dataTable thead th.dt-head-nowrap,
|
194 |
table.dataTable thead td.dt-head-nowrap,
|
195 |
table.dataTable tfoot th.dt-head-nowrap,
|
196 |
table.dataTable tfoot td.dt-head-nowrap {
|
197 |
-
|
198 |
-
}
|
199 |
table.dataTable tbody th.dt-body-left,
|
200 |
table.dataTable tbody td.dt-body-left {
|
201 |
-
|
202 |
-
}
|
203 |
table.dataTable tbody th.dt-body-center,
|
204 |
table.dataTable tbody td.dt-body-center {
|
205 |
-
|
206 |
-
}
|
207 |
table.dataTable tbody th.dt-body-right,
|
208 |
table.dataTable tbody td.dt-body-right {
|
209 |
-
|
210 |
-
}
|
211 |
table.dataTable tbody th.dt-body-justify,
|
212 |
table.dataTable tbody td.dt-body-justify {
|
213 |
-
|
214 |
-
}
|
215 |
table.dataTable tbody th.dt-body-nowrap,
|
216 |
table.dataTable tbody td.dt-body-nowrap {
|
217 |
-
|
218 |
-
}
|
219 |
table.dataTable,
|
220 |
table.dataTable th,
|
221 |
table.dataTable td {
|
222 |
-
|
223 |
-
}
|
224 |
/*
|
225 |
* Control feature layout
|
226 |
*/
|
@@ -230,152 +230,154 @@ table.dataTable,
|
|
230 |
zoom: 1;
|
231 |
}
|
232 |
.dataTables_wrapper .dataTables_length {
|
233 |
-
|
234 |
-
}
|
235 |
.dataTables_wrapper .dataTables_filter {
|
236 |
-
|
237 |
-
|
238 |
-
}
|
239 |
.dataTables_wrapper .dataTables_filter input {
|
240 |
-
|
241 |
-
}
|
242 |
.dataTables_wrapper .dataTables_info {
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
}
|
247 |
.dataTables_wrapper .dataTables_paginate {
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
}
|
252 |
.dataTables_wrapper .dataTables_paginate .paginate_button {
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
}
|
271 |
.dataTables_wrapper .dataTables_paginate .paginate_button:hover,
|
272 |
.dataTables_wrapper .dataTables_paginate .paginate_button:active {
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
}
|
277 |
.dataTables_wrapper .dataTables_paginate .paginate_button.next,
|
278 |
.dataTables_wrapper .dataTables_paginate .paginate_button.previous {
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
}
|
284 |
.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled {
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
}
|
289 |
.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled:hover {
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
}
|
295 |
.dataTables_wrapper .dataTables_paginate .paginate_button.next:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.previous:hover {
|
296 |
-
|
297 |
-
|
298 |
-
}
|
299 |
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
|
300 |
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
}
|
307 |
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
|
308 |
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,
|
309 |
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
|
|
318 |
.dataTables_wrapper .dataTables_paginate .ellipsis {
|
319 |
-
|
320 |
-
}
|
321 |
.dataTables_wrapper .dataTables_processing {
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
}
|
335 |
.dataTables_wrapper .dataTables_length,
|
336 |
.dataTables_wrapper .dataTables_filter,
|
337 |
.dataTables_wrapper .dataTables_info,
|
338 |
.dataTables_wrapper .dataTables_processing,
|
339 |
.dataTables_wrapper .dataTables_paginate {
|
340 |
-
|
341 |
-
}
|
342 |
.dataTables_wrapper .dataTables_scroll {
|
343 |
-
|
344 |
-
}
|
345 |
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
|
346 |
-
|
347 |
-
|
348 |
-
}
|
349 |
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td {
|
350 |
-
|
351 |
-
}
|
352 |
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th > div.dataTables_sizing,
|
353 |
.dataTables_wrapper .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td > div.dataTables_sizing {
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
}
|
359 |
.dataTables_wrapper.no-footer .dataTables_scrollBody {
|
360 |
-
|
361 |
-
}
|
362 |
.dataTables_wrapper.no-footer div.dataTables_scrollHead table,
|
363 |
.dataTables_wrapper.no-footer div.dataTables_scrollBody table {
|
364 |
-
|
365 |
-
}
|
366 |
.dataTables_wrapper:after {
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
}
|
373 |
@media screen and (max-width: 767px) {
|
374 |
.dataTables_wrapper .dataTables_info,
|
375 |
.dataTables_wrapper .dataTables_paginate {
|
376 |
float: none;
|
377 |
text-align: center;
|
378 |
}
|
|
|
379 |
.dataTables_wrapper .dataTables_paginate {
|
380 |
margin-top: 0.5em;
|
381 |
}
|
@@ -386,6 +388,7 @@ table.dataTable,
|
|
386 |
float: none;
|
387 |
text-align: center;
|
388 |
}
|
|
|
389 |
.dataTables_wrapper .dataTables_filter {
|
390 |
margin-top: 0.5em;
|
391 |
}
|
20 |
}
|
21 |
table.dataTable thead th:active,
|
22 |
table.dataTable thead td:active {
|
23 |
+
outline: none;
|
24 |
+
}
|
25 |
table.dataTable thead .sorting,
|
26 |
table.dataTable thead .sorting_asc,
|
27 |
table.dataTable thead .sorting_desc {
|
28 |
+
cursor: pointer;
|
29 |
+
*cursor: hand;
|
30 |
+
}
|
31 |
table.dataTable thead .sorting,
|
32 |
table.dataTable thead .sorting_asc,
|
33 |
table.dataTable thead .sorting_desc,
|
34 |
table.dataTable thead .sorting_asc_disabled,
|
35 |
table.dataTable thead .sorting_desc_disabled {
|
36 |
+
background-position: center right;
|
37 |
+
background-repeat: no-repeat;
|
38 |
+
}
|
39 |
table.dataTable thead .sorting {
|
40 |
+
background-image: url("../../../vendor/datatables/DataTables/images/sort_both.png");
|
41 |
+
}
|
42 |
table.dataTable thead .sorting_asc {
|
43 |
+
background-image: url("../../../vendor/datatables/DataTables/images/sort_asc.png");
|
44 |
+
}
|
45 |
table.dataTable thead .sorting_desc {
|
46 |
+
background-image: url("../../../vendor/datatables/DataTables/images/sort_desc.png");
|
47 |
+
}
|
48 |
table.dataTable thead .sorting_asc_disabled {
|
49 |
+
background-image: url("../../../vendor/datatables/DataTables/images/sort_asc_disabled.png");
|
50 |
+
}
|
51 |
table.dataTable thead .sorting_desc_disabled {
|
52 |
+
background-image: url("../../../vendor/datatables/DataTables/images/sort_desc_disabled.png");
|
53 |
+
}
|
54 |
table.dataTable.widefat thead th input, table.dataTable.widefat thead td input, table.dataTable.widefat tfoot th input, table.dataTable.widefat tfoot td input {
|
55 |
+
margin: 0 0 0 8px;
|
56 |
+
vertical-align: text-top;
|
57 |
+
}
|
58 |
table.dataTable.widefat thead td.check-column, table.dataTable.widefat tfoot td.check-column {
|
59 |
+
padding-top: 4px;
|
60 |
+
vertical-align: middle;
|
61 |
+
}
|
62 |
table.dataTable.widefat thead th.check-column, table.dataTable.widefat tfoot th.check-column, table.dataTable.widefat tbody th.check-column {
|
63 |
+
padding: 11px 0 0 3px;
|
64 |
+
}
|
65 |
table.dataTable .check-column {
|
66 |
+
width: 2.2em;
|
67 |
+
}
|
68 |
table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
|
69 |
+
border-top: 1px solid #ddd;
|
70 |
+
}
|
71 |
table.dataTable.row-border tbody tr:first-child th,
|
72 |
table.dataTable.row-border tbody tr:first-child td,
|
73 |
table.dataTable.display tbody tr:first-child th,
|
74 |
table.dataTable.display tbody tr:first-child td {
|
75 |
+
border-top: none;
|
76 |
+
}
|
77 |
table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td {
|
78 |
+
border-top: 1px solid #ddd;
|
79 |
+
border-right: 1px solid #ddd;
|
80 |
+
}
|
81 |
table.dataTable.cell-border tbody tr th:first-child,
|
82 |
table.dataTable.cell-border tbody tr td:first-child {
|
83 |
+
border-left: 1px solid #ddd;
|
84 |
+
}
|
85 |
table.dataTable.cell-border tbody tr:first-child th,
|
86 |
table.dataTable.cell-border tbody tr:first-child td {
|
87 |
+
border-top: none;
|
88 |
+
}
|
89 |
table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {
|
90 |
+
background-color: #f9f9f9;
|
91 |
+
}
|
92 |
table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover {
|
93 |
+
background-color: #f6f6f6;
|
94 |
+
}
|
95 |
table.dataTable.order-column tbody tr > .sorting_1,
|
96 |
table.dataTable.order-column tbody tr > .sorting_2,
|
97 |
table.dataTable.order-column tbody tr > .sorting_3,
|
98 |
table.dataTable.display tbody tr > .sorting_1,
|
99 |
table.dataTable.display tbody tr > .sorting_2,
|
100 |
table.dataTable.display tbody tr > .sorting_3 {
|
101 |
+
background-color: #fafafa;
|
102 |
+
}
|
103 |
table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
|
104 |
+
background-color: #f1f1f1;
|
105 |
+
}
|
106 |
table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 {
|
107 |
+
background-color: #f3f3f3;
|
108 |
+
}
|
109 |
table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 {
|
110 |
+
background-color: whitesmoke;
|
111 |
+
}
|
112 |
table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
|
113 |
+
background-color: #fafafa;
|
114 |
+
}
|
115 |
table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 {
|
116 |
+
background-color: #fcfcfc;
|
117 |
+
}
|
118 |
table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 {
|
119 |
+
background-color: #fefefe;
|
120 |
+
}
|
121 |
table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 {
|
122 |
+
background-color: #eaeaea;
|
123 |
+
}
|
124 |
table.dataTable.display tbody tr:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2 {
|
125 |
+
background-color: #ececec;
|
126 |
+
}
|
127 |
table.dataTable.display tbody tr:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3 {
|
128 |
+
background-color: #efefef;
|
129 |
+
}
|
130 |
table.dataTable.no-footer {
|
131 |
+
border-bottom: 1px solid #111;
|
132 |
+
}
|
133 |
table.dataTable.nowrap th, table.dataTable.nowrap td {
|
134 |
+
white-space: nowrap;
|
135 |
+
}
|
136 |
table.dataTable.compact thead th,
|
137 |
table.dataTable.compact thead td {
|
138 |
+
padding: 4px 17px 4px 4px;
|
139 |
+
}
|
140 |
table.dataTable.compact tfoot th,
|
141 |
table.dataTable.compact tfoot td {
|
142 |
+
padding: 4px;
|
143 |
+
}
|
144 |
table.dataTable.compact tbody th,
|
145 |
table.dataTable.compact tbody td {
|
146 |
+
padding: 4px;
|
147 |
+
}
|
148 |
table.dataTable th.dt-left,
|
149 |
table.dataTable td.dt-left {
|
150 |
+
text-align: left;
|
151 |
+
}
|
152 |
table.dataTable th.dt-center,
|
153 |
table.dataTable td.dt-center,
|
154 |
table.dataTable td.dataTables_empty {
|
155 |
+
text-align: center;
|
156 |
+
}
|
157 |
table.dataTable th.dt-right,
|
158 |
table.dataTable td.dt-right {
|
159 |
+
text-align: right;
|
160 |
+
}
|
161 |
table.dataTable th.dt-justify,
|
162 |
table.dataTable td.dt-justify {
|
163 |
+
text-align: justify;
|
164 |
+
}
|
165 |
table.dataTable th.dt-nowrap,
|
166 |
table.dataTable td.dt-nowrap {
|
167 |
+
white-space: nowrap;
|
168 |
+
}
|
169 |
table.dataTable thead th.dt-head-left,
|
170 |
table.dataTable thead td.dt-head-left,
|
171 |
table.dataTable tfoot th.dt-head-left,
|
172 |
table.dataTable tfoot td.dt-head-left {
|
173 |
+
text-align: left;
|
174 |
+
}
|
175 |
table.dataTable thead th.dt-head-center,
|
176 |
table.dataTable thead td.dt-head-center,
|
177 |
table.dataTable tfoot th.dt-head-center,
|
178 |
table.dataTable tfoot td.dt-head-center {
|
179 |
+
text-align: center;
|
180 |
+
}
|
181 |
table.dataTable thead th.dt-head-right,
|
182 |
table.dataTable thead td.dt-head-right,
|
183 |
table.dataTable tfoot th.dt-head-right,
|
184 |
table.dataTable tfoot td.dt-head-right {
|
185 |
+
text-align: right;
|
186 |
+
}
|
187 |
table.dataTable thead th.dt-head-justify,
|
188 |
table.dataTable thead td.dt-head-justify,
|
189 |
table.dataTable tfoot th.dt-head-justify,
|
190 |
table.dataTable tfoot td.dt-head-justify {
|
191 |
+
text-align: justify;
|
192 |
+
}
|
193 |
table.dataTable thead th.dt-head-nowrap,
|
194 |
table.dataTable thead td.dt-head-nowrap,
|
195 |
table.dataTable tfoot th.dt-head-nowrap,
|
196 |
table.dataTable tfoot td.dt-head-nowrap {
|
197 |
+
white-space: nowrap;
|
198 |
+
}
|
199 |
table.dataTable tbody th.dt-body-left,
|
200 |
table.dataTable tbody td.dt-body-left {
|
201 |
+
text-align: left;
|
202 |
+
}
|
203 |
table.dataTable tbody th.dt-body-center,
|
204 |
table.dataTable tbody td.dt-body-center {
|
205 |
+
text-align: center;
|
206 |
+
}
|
207 |
table.dataTable tbody th.dt-body-right,
|
208 |
table.dataTable tbody td.dt-body-right {
|
209 |
+
text-align: right;
|
210 |
+
}
|
211 |
table.dataTable tbody th.dt-body-justify,
|
212 |
table.dataTable tbody td.dt-body-justify {
|
213 |
+
text-align: justify;
|
214 |
+
}
|
215 |
table.dataTable tbody th.dt-body-nowrap,
|
216 |
table.dataTable tbody td.dt-body-nowrap {
|
217 |
+
white-space: nowrap;
|
218 |
+
}
|
219 |
table.dataTable,
|
220 |
table.dataTable th,
|
221 |
table.dataTable td {
|
222 |
+
box-sizing: content-box;
|
223 |
+
}
|
224 |
/*
|
225 |
* Control feature layout
|
226 |
*/
|
230 |
zoom: 1;
|
231 |
}
|
232 |
.dataTables_wrapper .dataTables_length {
|
233 |
+
float: left;
|
234 |
+
}
|
235 |
.dataTables_wrapper .dataTables_filter {
|
236 |
+
float: right;
|
237 |
+
text-align: right;
|
238 |
+
}
|
239 |
.dataTables_wrapper .dataTables_filter input {
|
240 |
+
margin-left: 0.5em;
|
241 |
+
}
|
242 |
.dataTables_wrapper .dataTables_info {
|
243 |
+
clear: both;
|
244 |
+
float: left;
|
245 |
+
padding-top: 0.755em;
|
246 |
+
}
|
247 |
.dataTables_wrapper .dataTables_paginate {
|
248 |
+
float: right;
|
249 |
+
padding-top: 0.25em;
|
250 |
+
text-align: right;
|
251 |
+
}
|
252 |
.dataTables_wrapper .dataTables_paginate .paginate_button {
|
253 |
+
border-color: transparent;
|
254 |
+
border-radius: 3px;
|
255 |
+
border-style: solid;
|
256 |
+
border-width: 1px;
|
257 |
+
box-shadow: none;
|
258 |
+
box-sizing: border-box;
|
259 |
+
color: #555;
|
260 |
+
cursor: pointer;
|
261 |
+
display: inline-block;
|
262 |
+
font-size: 13px;
|
263 |
+
height: 28px;
|
264 |
+
line-height: 26px;
|
265 |
+
margin: 0 0 0 2px;
|
266 |
+
padding: 0 10px 1px;
|
267 |
+
text-decoration: none;
|
268 |
+
vertical-align: top;
|
269 |
+
white-space: nowrap;
|
270 |
+
}
|
271 |
.dataTables_wrapper .dataTables_paginate .paginate_button:hover,
|
272 |
.dataTables_wrapper .dataTables_paginate .paginate_button:active {
|
273 |
+
background: #fafafa;
|
274 |
+
border-color: #999;
|
275 |
+
color: #23282d;
|
276 |
+
}
|
277 |
.dataTables_wrapper .dataTables_paginate .paginate_button.next,
|
278 |
.dataTables_wrapper .dataTables_paginate .paginate_button.previous {
|
279 |
+
background: transparent;
|
280 |
+
border-color: transparent;
|
281 |
+
box-shadow: none;
|
282 |
+
color: #23282d;
|
283 |
+
}
|
284 |
.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled {
|
285 |
+
background: transparent;
|
286 |
+
border-color: transparent;
|
287 |
+
box-shadow: none;
|
288 |
+
}
|
289 |
.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled:hover {
|
290 |
+
background: transparent;
|
291 |
+
border-color: transparent;
|
292 |
+
box-shadow: none;
|
293 |
+
text-decoration: none;
|
294 |
+
}
|
295 |
.dataTables_wrapper .dataTables_paginate .paginate_button.next:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.previous:hover {
|
296 |
+
color: #222;
|
297 |
+
text-decoration: underline;
|
298 |
+
}
|
299 |
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
|
300 |
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
|
301 |
+
background: #fcfcfc;
|
302 |
+
border-color: #999;
|
303 |
+
box-shadow: 0 1px 0 #cccccc;
|
304 |
+
color: #23282d;
|
305 |
+
text-decoration: none;
|
306 |
+
}
|
307 |
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
|
308 |
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,
|
309 |
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
|
310 |
+
background: #f7f7f7;
|
311 |
+
border-color: #ddd;
|
312 |
+
box-shadow: none;
|
313 |
+
color: #a0a5aa;
|
314 |
+
cursor: default;
|
315 |
+
text-shadow: 0 1px 0 #fff;
|
316 |
+
-webkit-transform: none;
|
317 |
+
transform: none;
|
318 |
+
}
|
319 |
.dataTables_wrapper .dataTables_paginate .ellipsis {
|
320 |
+
padding: 0 1em;
|
321 |
+
}
|
322 |
.dataTables_wrapper .dataTables_processing {
|
323 |
+
position: absolute;
|
324 |
+
top: 50%;
|
325 |
+
left: 50%;
|
326 |
+
width: 100%;
|
327 |
+
height: 40px;
|
328 |
+
margin-left: -50%;
|
329 |
+
margin-top: -25px;
|
330 |
+
padding-top: 20px;
|
331 |
+
text-align: center;
|
332 |
+
font-size: 1.2em;
|
333 |
+
background-color: white;
|
334 |
+
background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
335 |
+
}
|
336 |
.dataTables_wrapper .dataTables_length,
|
337 |
.dataTables_wrapper .dataTables_filter,
|
338 |
.dataTables_wrapper .dataTables_info,
|
339 |
.dataTables_wrapper .dataTables_processing,
|
340 |
.dataTables_wrapper .dataTables_paginate {
|
341 |
+
color: #333;
|
342 |
+
}
|
343 |
.dataTables_wrapper .dataTables_scroll {
|
344 |
+
clear: both;
|
345 |
+
}
|
346 |
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
|
347 |
+
*margin-top: -1px;
|
348 |
+
-webkit-overflow-scrolling: touch;
|
349 |
+
}
|
350 |
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td {
|
351 |
+
vertical-align: middle;
|
352 |
+
}
|
353 |
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th > div.dataTables_sizing,
|
354 |
.dataTables_wrapper .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td > div.dataTables_sizing {
|
355 |
+
height: 0;
|
356 |
+
overflow: hidden;
|
357 |
+
margin: 0 !important;
|
358 |
+
padding: 0 !important;
|
359 |
+
}
|
360 |
.dataTables_wrapper.no-footer .dataTables_scrollBody {
|
361 |
+
border-bottom: 1px solid #111;
|
362 |
+
}
|
363 |
.dataTables_wrapper.no-footer div.dataTables_scrollHead table,
|
364 |
.dataTables_wrapper.no-footer div.dataTables_scrollBody table {
|
365 |
+
border-bottom: none;
|
366 |
+
}
|
367 |
.dataTables_wrapper:after {
|
368 |
+
visibility: hidden;
|
369 |
+
display: block;
|
370 |
+
content: "";
|
371 |
+
clear: both;
|
372 |
+
height: 0;
|
373 |
+
}
|
374 |
@media screen and (max-width: 767px) {
|
375 |
.dataTables_wrapper .dataTables_info,
|
376 |
.dataTables_wrapper .dataTables_paginate {
|
377 |
float: none;
|
378 |
text-align: center;
|
379 |
}
|
380 |
+
|
381 |
.dataTables_wrapper .dataTables_paginate {
|
382 |
margin-top: 0.5em;
|
383 |
}
|
388 |
float: none;
|
389 |
text-align: center;
|
390 |
}
|
391 |
+
|
392 |
.dataTables_wrapper .dataTables_filter {
|
393 |
margin-top: 0.5em;
|
394 |
}
|
common/src/resources/css/datatables.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
table.dataTable{border-collapse:separate;border-spacing:0;clear:both;margin:0 auto;width:100%}table.dataTable thead td:active,table.dataTable thead th:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{cursor:pointer;cursor:hand}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_desc_disabled{background-position:100%;background-repeat:no-repeat}table.dataTable thead .sorting{background-image:url(../../../vendor/datatables/DataTables/images/sort_both.png)}table.dataTable thead .sorting_asc{background-image:url(../../../vendor/datatables/DataTables/images/sort_asc.png)}table.dataTable thead .sorting_desc{background-image:url(../../../vendor/datatables/DataTables/images/sort_desc.png)}table.dataTable thead .sorting_asc_disabled{background-image:url(../../../vendor/datatables/DataTables/images/sort_asc_disabled.png)}table.dataTable thead .sorting_desc_disabled{background-image:url(../../../vendor/datatables/DataTables/images/sort_desc_disabled.png)}table.dataTable.widefat tfoot td input,table.dataTable.widefat tfoot th input,table.dataTable.widefat thead td input,table.dataTable.widefat thead th input{margin:0 0 0 8px;vertical-align:text-top}table.dataTable.widefat tfoot td.check-column,table.dataTable.widefat thead td.check-column{padding-top:4px;vertical-align:middle}table.dataTable.widefat tbody th.check-column,table.dataTable.widefat tfoot th.check-column,table.dataTable.widefat thead th.check-column{padding:11px 0 0 3px}table.dataTable .check-column{width:2.2em}table.dataTable.display tbody td,table.dataTable.display tbody th,table.dataTable.row-border tbody td,table.dataTable.row-border tbody th{border-top:1px solid #ddd}table.dataTable.display tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.row-border tbody tr:first-child th{border-top:none}table.dataTable.cell-border tbody td,table.dataTable.cell-border tbody th{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr td:first-child,table.dataTable.cell-border tbody tr th:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child td,table.dataTable.cell-border tbody tr:first-child th{border-top:none}table.dataTable.display tbody tr.odd,table.dataTable.stripe tbody tr.odd{background-color:#f9f9f9}table.dataTable.display tbody tr:hover,table.dataTable.hover tbody tr:hover{background-color:#f6f6f6}table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3,table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#f5f5f5}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap td,table.dataTable.nowrap th{white-space:nowrap}table.dataTable.compact thead td,table.dataTable.compact thead th{padding:4px 17px 4px 4px}table.dataTable.compact tbody td,table.dataTable.compact tbody th,table.dataTable.compact tfoot td,table.dataTable.compact tfoot th{padding:4px}table.dataTable td.dt-left,table.dataTable th.dt-left{text-align:left}table.dataTable td.dataTables_empty,table.dataTable td.dt-center,table.dataTable th.dt-center{text-align:center}table.dataTable td.dt-right,table.dataTable th.dt-right{text-align:right}table.dataTable td.dt-justify,table.dataTable th.dt-justify{text-align:justify}table.dataTable td.dt-nowrap,table.dataTable th.dt-nowrap{white-space:nowrap}table.dataTable tfoot td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable thead th.dt-head-left{text-align:left}table.dataTable tfoot td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable thead th.dt-head-center{text-align:center}table.dataTable tfoot td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable thead th.dt-head-right{text-align:right}table.dataTable tfoot td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable thead th.dt-head-justify{text-align:justify}table.dataTable tfoot td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable thead th.dt-head-nowrap{white-space:nowrap}table.dataTable tbody td.dt-body-left,table.dataTable tbody th.dt-body-left{text-align:left}table.dataTable tbody td.dt-body-center,table.dataTable tbody th.dt-body-center{text-align:center}table.dataTable tbody td.dt-body-right,table.dataTable tbody th.dt-body-right{text-align:right}table.dataTable tbody td.dt-body-justify,table.dataTable tbody th.dt-body-justify{text-align:justify}table.dataTable tbody td.dt-body-nowrap,table.dataTable tbody th.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable td,table.dataTable th{box-sizing:content-box}.dataTables_wrapper{clear:both;position:relative;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:.755em}.dataTables_wrapper .dataTables_paginate{float:right;padding-top:.25em;text-align:right}.dataTables_wrapper .dataTables_paginate .paginate_button{border:1px solid transparent;border-radius:3px;box-shadow:none;box-sizing:border-box;color:#555;cursor:pointer;display:inline-block;font-size:13px;height:28px;line-height:26px;margin:0 0 0 2px;padding:0 10px 1px;text-decoration:none;vertical-align:top;white-space:nowrap}.dataTables_wrapper .dataTables_paginate .paginate_button:active,.dataTables_wrapper .dataTables_paginate .paginate_button:hover{background:#fafafa;border-color:#999;color:#23282d}.dataTables_wrapper .dataTables_paginate .paginate_button.next,.dataTables_wrapper .dataTables_paginate .paginate_button.previous{background:transparent;border-color:transparent;box-shadow:none;color:#23282d}.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled{background:transparent;border-color:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled:hover{background:transparent;border-color:transparent;box-shadow:none;text-decoration:none}.dataTables_wrapper .dataTables_paginate .paginate_button.next:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.previous:hover{color:#222;text-decoration:underline}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{background:#fcfcfc;border-color:#999;box-shadow:0 1px 0 #ccc;color:#23282d;text-decoration:none}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{background:#f7f7f7;border-color:#ddd;box-shadow:none;color:#a0a5aa;cursor:default;text-shadow:0 1px 0 #fff;transform:none}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:#fff;background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,.9) 25%,hsla(0,0%,100%,.9) 75%,hsla(0,0%,100%,0))}.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_paginate,.dataTables_wrapper .dataTables_processing{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.dataTables_wrapper .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollBody table,.dataTables_wrapper.no-footer div.dataTables_scrollHead table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width:767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:.5em}}@media screen and (max-width:640px){.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_length{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:.5em}}
|
1 |
+
table.dataTable{border-collapse:separate;border-spacing:0;clear:both;margin:0 auto;width:100%}table.dataTable thead td:active,table.dataTable thead th:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{cursor:pointer;*cursor:hand}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_desc_disabled{background-position:100%;background-repeat:no-repeat}table.dataTable thead .sorting{background-image:url(../../../vendor/datatables/DataTables/images/sort_both.png)}table.dataTable thead .sorting_asc{background-image:url(../../../vendor/datatables/DataTables/images/sort_asc.png)}table.dataTable thead .sorting_desc{background-image:url(../../../vendor/datatables/DataTables/images/sort_desc.png)}table.dataTable thead .sorting_asc_disabled{background-image:url(../../../vendor/datatables/DataTables/images/sort_asc_disabled.png)}table.dataTable thead .sorting_desc_disabled{background-image:url(../../../vendor/datatables/DataTables/images/sort_desc_disabled.png)}table.dataTable.widefat tfoot td input,table.dataTable.widefat tfoot th input,table.dataTable.widefat thead td input,table.dataTable.widefat thead th input{margin:0 0 0 8px;vertical-align:text-top}table.dataTable.widefat tfoot td.check-column,table.dataTable.widefat thead td.check-column{padding-top:4px;vertical-align:middle}table.dataTable.widefat tbody th.check-column,table.dataTable.widefat tfoot th.check-column,table.dataTable.widefat thead th.check-column{padding:11px 0 0 3px}table.dataTable .check-column{width:2.2em}table.dataTable.display tbody td,table.dataTable.display tbody th,table.dataTable.row-border tbody td,table.dataTable.row-border tbody th{border-top:1px solid #ddd}table.dataTable.display tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.row-border tbody tr:first-child th{border-top:none}table.dataTable.cell-border tbody td,table.dataTable.cell-border tbody th{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr td:first-child,table.dataTable.cell-border tbody tr th:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child td,table.dataTable.cell-border tbody tr:first-child th{border-top:none}table.dataTable.display tbody tr.odd,table.dataTable.stripe tbody tr.odd{background-color:#f9f9f9}table.dataTable.display tbody tr:hover,table.dataTable.hover tbody tr:hover{background-color:#f6f6f6}table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3,table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#f5f5f5}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap td,table.dataTable.nowrap th{white-space:nowrap}table.dataTable.compact thead td,table.dataTable.compact thead th{padding:4px 17px 4px 4px}table.dataTable.compact tbody td,table.dataTable.compact tbody th,table.dataTable.compact tfoot td,table.dataTable.compact tfoot th{padding:4px}table.dataTable td.dt-left,table.dataTable th.dt-left{text-align:left}table.dataTable td.dataTables_empty,table.dataTable td.dt-center,table.dataTable th.dt-center{text-align:center}table.dataTable td.dt-right,table.dataTable th.dt-right{text-align:right}table.dataTable td.dt-justify,table.dataTable th.dt-justify{text-align:justify}table.dataTable td.dt-nowrap,table.dataTable th.dt-nowrap{white-space:nowrap}table.dataTable tfoot td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable thead th.dt-head-left{text-align:left}table.dataTable tfoot td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable thead th.dt-head-center{text-align:center}table.dataTable tfoot td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable thead th.dt-head-right{text-align:right}table.dataTable tfoot td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable thead th.dt-head-justify{text-align:justify}table.dataTable tfoot td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable thead th.dt-head-nowrap{white-space:nowrap}table.dataTable tbody td.dt-body-left,table.dataTable tbody th.dt-body-left{text-align:left}table.dataTable tbody td.dt-body-center,table.dataTable tbody th.dt-body-center{text-align:center}table.dataTable tbody td.dt-body-right,table.dataTable tbody th.dt-body-right{text-align:right}table.dataTable tbody td.dt-body-justify,table.dataTable tbody th.dt-body-justify{text-align:justify}table.dataTable tbody td.dt-body-nowrap,table.dataTable tbody th.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable td,table.dataTable th{box-sizing:content-box}.dataTables_wrapper{clear:both;position:relative;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:.755em}.dataTables_wrapper .dataTables_paginate{float:right;padding-top:.25em;text-align:right}.dataTables_wrapper .dataTables_paginate .paginate_button{border:1px solid transparent;border-radius:3px;box-shadow:none;box-sizing:border-box;color:#555;cursor:pointer;display:inline-block;font-size:13px;height:28px;line-height:26px;margin:0 0 0 2px;padding:0 10px 1px;text-decoration:none;vertical-align:top;white-space:nowrap}.dataTables_wrapper .dataTables_paginate .paginate_button:active,.dataTables_wrapper .dataTables_paginate .paginate_button:hover{background:#fafafa;border-color:#999;color:#23282d}.dataTables_wrapper .dataTables_paginate .paginate_button.next,.dataTables_wrapper .dataTables_paginate .paginate_button.previous{background:transparent;border-color:transparent;box-shadow:none;color:#23282d}.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled{background:transparent;border-color:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled:hover{background:transparent;border-color:transparent;box-shadow:none;text-decoration:none}.dataTables_wrapper .dataTables_paginate .paginate_button.next:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.previous:hover{color:#222;text-decoration:underline}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{background:#fcfcfc;border-color:#999;box-shadow:0 1px 0 #ccc;color:#23282d;text-decoration:none}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{background:#f7f7f7;border-color:#ddd;box-shadow:none;color:#a0a5aa;cursor:default;text-shadow:0 1px 0 #fff;transform:none}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:#fff;background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,.9) 25%,hsla(0,0%,100%,.9) 75%,hsla(0,0%,100%,0))}.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_paginate,.dataTables_wrapper .dataTables_processing{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.dataTables_wrapper .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollBody table,.dataTables_wrapper.no-footer div.dataTables_scrollHead table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width:767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:.5em}}@media screen and (max-width:640px){.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_length{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:.5em}}
|
common/src/resources/css/datepicker.css
CHANGED
@@ -13,12 +13,11 @@
|
|
13 |
.tribe-ui-datepicker.ui-datepicker input,
|
14 |
.tribe-ui-datepicker.ui-datepicker select,
|
15 |
.tribe-ui-datepicker.ui-datepicker textarea {
|
16 |
-
|
17 |
-
}
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
}
|
22 |
|
23 |
.tribe-ui-datepicker .ui-datepicker-month {
|
24 |
font-weight: bold;
|
@@ -36,16 +35,15 @@
|
|
36 |
----------------------------------*/
|
37 |
|
38 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-group span.ui-icon {
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
}
|
49 |
|
50 |
.tribe-ui-datepicker .ui-widget-icon-block {
|
51 |
left: 50%;
|
@@ -68,14 +66,13 @@
|
|
68 |
|
69 |
.tribe-ui-datepicker.ui-datepicker {
|
70 |
background: #fff;
|
71 |
-
box-shadow: 1px 1px 5px rgba(0,
|
72 |
width: 17em;
|
73 |
padding: 1em;
|
74 |
display: none;
|
75 |
}
|
76 |
|
77 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-header {
|
78 |
-
margin-bottom: 16px;
|
79 |
margin-bottom: 1rem;
|
80 |
position: relative;
|
81 |
padding: 0;
|
@@ -88,30 +85,31 @@
|
|
88 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next {
|
89 |
position: absolute;
|
90 |
top: 50%;
|
91 |
-
transform: translateY(-50%);
|
|
|
92 |
line-height: 1.8em;
|
93 |
text-align: center;
|
94 |
}
|
95 |
|
96 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev:before {
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
}
|
101 |
|
102 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev:hover:before {
|
103 |
-
|
104 |
-
}
|
105 |
|
106 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next:before {
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
}
|
111 |
|
112 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next:hover:before {
|
113 |
-
|
114 |
-
}
|
115 |
|
116 |
.tribe-ui-datepicker .ui-datepicker-prev-hover,
|
117 |
.tribe-ui-datepicker .ui-datepicker-next-hover {
|
@@ -121,110 +119,101 @@
|
|
121 |
}
|
122 |
|
123 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev {
|
124 |
-
|
125 |
-
}
|
126 |
|
127 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next {
|
128 |
-
|
129 |
-
}
|
130 |
|
131 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev-hover {
|
132 |
-
|
133 |
-
}
|
134 |
|
135 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next-hover {
|
136 |
-
|
137 |
-
}
|
138 |
|
139 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-title {
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
}
|
144 |
|
145 |
.tribe-ui-datepicker select.ui-datepicker-month,
|
146 |
.tribe-ui-datepicker select.ui-datepicker-year {
|
147 |
border: none;
|
148 |
-
box-shadow: 0 1px 0 rgba(0,
|
149 |
margin-right: 1px;
|
150 |
-
width: 72px;
|
151 |
width: 4.5rem;
|
152 |
}
|
153 |
|
154 |
.tribe-ui-datepicker.ui-datepicker table {
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
margin: 0 0 .4rem;
|
161 |
-
}
|
162 |
|
163 |
.tribe-ui-datepicker.ui-datepicker th {
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
}
|
170 |
|
171 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-calendar td {
|
172 |
-
|
173 |
-
|
174 |
-
}
|
175 |
|
176 |
.tribe-ui-datepicker.ui-datepicker td.ui-datepicker-unselectable {
|
177 |
-
|
178 |
-
}
|
179 |
|
180 |
.tribe-ui-datepicker.ui-datepicker a.ui-state-active {
|
181 |
-
|
182 |
-
|
183 |
-
}
|
184 |
|
185 |
.tribe-ui-datepicker.ui-datepicker td span,
|
186 |
.tribe-ui-datepicker.ui-datepicker td a {
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
}
|
193 |
|
194 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane {
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
border-bottom: 0;
|
203 |
-
}
|
204 |
|
205 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane button {
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
overflow: visible;
|
214 |
-
}
|
215 |
|
216 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
}
|
221 |
|
222 |
.tribe-ui-datepicker.ui-datepicker button.ui-datepicker-close {
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
}
|
228 |
|
229 |
/* with multiple calendars */
|
230 |
|
@@ -238,7 +227,6 @@
|
|
238 |
|
239 |
.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group table {
|
240 |
width: 95%;
|
241 |
-
margin: 0 auto 6.4px;
|
242 |
margin: 0 auto .4rem;
|
243 |
}
|
244 |
|
@@ -273,13 +261,11 @@
|
|
273 |
----------------------------------*/
|
274 |
|
275 |
.tribe-ui-datepicker.ui-widget {
|
276 |
-
font-size: 19.2px;
|
277 |
font-size: 1.2rem;
|
278 |
font-family: inherit;
|
279 |
}
|
280 |
|
281 |
.tribe-ui-datepicker.ui-widget .ui-widget {
|
282 |
-
font-size: 16px;
|
283 |
font-size: 1rem;
|
284 |
}
|
285 |
|
@@ -287,7 +273,6 @@
|
|
287 |
.tribe-ui-datepicker.ui-widget select,
|
288 |
.tribe-ui-datepicker.ui-widget textarea,
|
289 |
.tribe-ui-datepicker.ui-widget button {
|
290 |
-
font-size: 16px;
|
291 |
font-size: 1rem;
|
292 |
}
|
293 |
|
@@ -321,9 +306,9 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
|
|
321 |
.tribe-ui-datepicker a:link.ui-button,
|
322 |
.tribe-ui-datepicker a:visited.ui-button,
|
323 |
.tribe-ui-datepicker .ui-button {
|
324 |
-
|
325 |
-
|
326 |
-
}
|
327 |
|
328 |
.tribe-ui-datepicker .ui-state-hover,
|
329 |
.tribe-ui-datepicker .ui-widget-content .ui-state-hover,
|
@@ -333,10 +318,10 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
|
|
333 |
.tribe-ui-datepicker .ui-widget-header .ui-state-focus,
|
334 |
.tribe-ui-datepicker .ui-button:hover,
|
335 |
.tribe-ui-datepicker .ui-button:focus {
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
}
|
340 |
|
341 |
.tribe-ui-datepicker .ui-state-hover a,
|
342 |
.tribe-ui-datepicker .ui-state-hover a:hover,
|
@@ -348,15 +333,15 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
|
|
348 |
.tribe-ui-datepicker .ui-state-focus a:visited,
|
349 |
.tribe-ui-datepicker a.ui-button:hover,
|
350 |
.tribe-ui-datepicker a.ui-button:focus {
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
}
|
356 |
|
357 |
.tribe-ui-datepicker .ui-visual-focus {
|
358 |
-
|
359 |
-
}
|
360 |
|
361 |
.tribe-ui-datepicker .ui-state-active,
|
362 |
.tribe-ui-datepicker .ui-widget-content .ui-state-active,
|
@@ -364,22 +349,22 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
|
|
364 |
.tribe-ui-datepicker a.ui-button:active,
|
365 |
.tribe-ui-datepicker .ui-button:active,
|
366 |
.tribe-ui-datepicker .ui-button.ui-state-active:hover {
|
367 |
-
|
368 |
-
|
369 |
-
}
|
370 |
|
371 |
.tribe-ui-datepicker .ui-icon-background,
|
372 |
.tribe-ui-datepicker .ui-state-active .ui-icon-background {
|
373 |
-
|
374 |
-
|
375 |
-
}
|
376 |
|
377 |
.tribe-ui-datepicker .ui-state-active a,
|
378 |
.tribe-ui-datepicker .ui-state-active a:link,
|
379 |
.tribe-ui-datepicker .ui-state-active a:visited {
|
380 |
-
|
381 |
-
|
382 |
-
}
|
383 |
|
384 |
/* Interaction Cues
|
385 |
----------------------------------*/
|
@@ -448,96 +433,92 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
|
|
448 |
.tribe-ui-datepicker .ui-corner-top,
|
449 |
.tribe-ui-datepicker .ui-corner-left,
|
450 |
.tribe-ui-datepicker .ui-corner-tl {
|
451 |
-
|
452 |
-
}
|
453 |
|
454 |
.tribe-ui-datepicker .ui-corner-all,
|
455 |
.tribe-ui-datepicker .ui-corner-top,
|
456 |
.tribe-ui-datepicker .ui-corner-right,
|
457 |
.tribe-ui-datepicker .ui-corner-tr {
|
458 |
-
|
459 |
-
}
|
460 |
|
461 |
.tribe-ui-datepicker .ui-corner-all,
|
462 |
.tribe-ui-datepicker .ui-corner-bottom,
|
463 |
.tribe-ui-datepicker .ui-corner-left,
|
464 |
.tribe-ui-datepicker .ui-corner-bl {
|
465 |
-
|
466 |
-
}
|
467 |
|
468 |
.tribe-ui-datepicker .ui-corner-all,
|
469 |
.tribe-ui-datepicker .ui-corner-bottom,
|
470 |
.tribe-ui-datepicker .ui-corner-right,
|
471 |
.tribe-ui-datepicker .ui-corner-br {
|
472 |
-
|
473 |
-
}
|
474 |
|
475 |
/* Overlays */
|
476 |
|
477 |
.tribe-ui-datepicker .ui-widget-overlay {
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
/* support: IE8 */
|
483 |
-
}
|
484 |
|
485 |
.tribe-ui-datepicker .ui-widget-shadow {
|
486 |
-
|
487 |
-
}
|
488 |
|
489 |
.tribe-ui-datepicker .ui-helper-hidden {
|
490 |
-
|
491 |
-
}
|
492 |
|
493 |
.tribe-ui-datepicker .ui-helper-hidden-accessible {
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
}
|
503 |
|
504 |
.tribe-ui-datepicker .ui-helper-reset {
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
}
|
514 |
|
515 |
.tribe-ui-datepicker .ui-helper-clearfix:before,
|
516 |
.tribe-ui-datepicker .ui-helper-clearfix:after {
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
}
|
521 |
|
522 |
.tribe-ui-datepicker .ui-helper-clearfix:after {
|
523 |
-
|
524 |
-
}
|
525 |
|
526 |
.tribe-ui-datepicker .ui-helper-zfix {
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
/* support: IE8 */
|
536 |
-
}
|
537 |
|
538 |
.tribe-ui-datepicker .ui-front {
|
539 |
-
|
540 |
-
}
|
541 |
|
542 |
/* RTL support */
|
543 |
|
@@ -546,40 +527,40 @@ html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
|
|
546 |
}
|
547 |
|
548 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-prev {
|
549 |
-
|
550 |
-
|
551 |
-
}
|
552 |
|
553 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-next {
|
554 |
-
|
555 |
-
|
556 |
-
}
|
557 |
|
558 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-prev:hover {
|
559 |
-
|
560 |
-
|
561 |
-
}
|
562 |
|
563 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-next:hover {
|
564 |
-
|
565 |
-
|
566 |
-
}
|
567 |
|
568 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane {
|
569 |
-
|
570 |
-
}
|
571 |
|
572 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane button {
|
573 |
-
|
574 |
-
}
|
575 |
|
576 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
|
577 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group {
|
578 |
-
|
579 |
-
}
|
580 |
|
581 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
|
582 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
|
583 |
-
|
584 |
-
|
585 |
-
}
|
13 |
.tribe-ui-datepicker.ui-datepicker input,
|
14 |
.tribe-ui-datepicker.ui-datepicker select,
|
15 |
.tribe-ui-datepicker.ui-datepicker textarea {
|
16 |
+
font-family: "Verdana", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
|
17 |
+
}
|
18 |
+
.tribe-ui-datepicker.ui-datepicker table {
|
19 |
+
border: none;
|
20 |
+
}
|
|
|
21 |
|
22 |
.tribe-ui-datepicker .ui-datepicker-month {
|
23 |
font-weight: bold;
|
35 |
----------------------------------*/
|
36 |
|
37 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-group span.ui-icon {
|
38 |
+
display: inline-block;
|
39 |
+
vertical-align: middle;
|
40 |
+
margin-top: -.25rem;
|
41 |
+
position: relative;
|
42 |
+
text-indent: -99999px;
|
43 |
+
overflow: hidden;
|
44 |
+
background-repeat: no-repeat;
|
45 |
+
background-image: none;
|
46 |
+
}
|
|
|
47 |
|
48 |
.tribe-ui-datepicker .ui-widget-icon-block {
|
49 |
left: 50%;
|
66 |
|
67 |
.tribe-ui-datepicker.ui-datepicker {
|
68 |
background: #fff;
|
69 |
+
box-shadow: 1px 1px 5px rgba(0,0,0,.5);
|
70 |
width: 17em;
|
71 |
padding: 1em;
|
72 |
display: none;
|
73 |
}
|
74 |
|
75 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-header {
|
|
|
76 |
margin-bottom: 1rem;
|
77 |
position: relative;
|
78 |
padding: 0;
|
85 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next {
|
86 |
position: absolute;
|
87 |
top: 50%;
|
88 |
+
-webkit-transform: translateY(-50%);
|
89 |
+
transform: translateY(-50%);
|
90 |
line-height: 1.8em;
|
91 |
text-align: center;
|
92 |
}
|
93 |
|
94 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev:before {
|
95 |
+
color: #b1b1b1;
|
96 |
+
content: '\2190';
|
97 |
+
cursor: pointer;
|
98 |
+
}
|
99 |
|
100 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev:hover:before {
|
101 |
+
color: #000;
|
102 |
+
}
|
103 |
|
104 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next:before {
|
105 |
+
color: #b1b1b1;
|
106 |
+
content: '\2192';
|
107 |
+
cursor: pointer;
|
108 |
+
}
|
109 |
|
110 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next:hover:before {
|
111 |
+
color: #000;
|
112 |
+
}
|
113 |
|
114 |
.tribe-ui-datepicker .ui-datepicker-prev-hover,
|
115 |
.tribe-ui-datepicker .ui-datepicker-next-hover {
|
119 |
}
|
120 |
|
121 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev {
|
122 |
+
left: 1px;
|
123 |
+
}
|
124 |
|
125 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next {
|
126 |
+
right: 1px;
|
127 |
+
}
|
128 |
|
129 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev-hover {
|
130 |
+
left: 1px;
|
131 |
+
}
|
132 |
|
133 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next-hover {
|
134 |
+
right: 1px;
|
135 |
+
}
|
136 |
|
137 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-title {
|
138 |
+
margin: 0 2.3em;
|
139 |
+
line-height: 1.8;
|
140 |
+
text-align: center;
|
141 |
+
}
|
142 |
|
143 |
.tribe-ui-datepicker select.ui-datepicker-month,
|
144 |
.tribe-ui-datepicker select.ui-datepicker-year {
|
145 |
border: none;
|
146 |
+
box-shadow: 0 1px 0 rgba(0,0,0,0.1);
|
147 |
margin-right: 1px;
|
|
|
148 |
width: 4.5rem;
|
149 |
}
|
150 |
|
151 |
.tribe-ui-datepicker.ui-datepicker table {
|
152 |
+
width: 100%;
|
153 |
+
font-size: .9rem;
|
154 |
+
border-collapse: collapse;
|
155 |
+
margin: 0 0 .4rem;
|
156 |
+
}
|
|
|
|
|
157 |
|
158 |
.tribe-ui-datepicker.ui-datepicker th {
|
159 |
+
color: #b1b1b1;
|
160 |
+
padding: .7rem .3rem;
|
161 |
+
text-align: center;
|
162 |
+
border: 0;
|
163 |
+
}
|
|
|
164 |
|
165 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-calendar td {
|
166 |
+
border: 1px solid #ddd;
|
167 |
+
padding: 1px;
|
168 |
+
}
|
169 |
|
170 |
.tribe-ui-datepicker.ui-datepicker td.ui-datepicker-unselectable {
|
171 |
+
border: none;
|
172 |
+
}
|
173 |
|
174 |
.tribe-ui-datepicker.ui-datepicker a.ui-state-active {
|
175 |
+
background: #0085ba;
|
176 |
+
color: #fff;
|
177 |
+
}
|
178 |
|
179 |
.tribe-ui-datepicker.ui-datepicker td span,
|
180 |
.tribe-ui-datepicker.ui-datepicker td a {
|
181 |
+
display: block;
|
182 |
+
padding: .5rem .2rem;
|
183 |
+
text-align: center;
|
184 |
+
text-decoration: none;
|
185 |
+
}
|
|
|
186 |
|
187 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane {
|
188 |
+
background-image: none;
|
189 |
+
margin: .7rem 0 0 0;
|
190 |
+
padding: 0 .2rem;
|
191 |
+
border-left: 0;
|
192 |
+
border-right: 0;
|
193 |
+
border-bottom: 0;
|
194 |
+
}
|
|
|
|
|
195 |
|
196 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane button {
|
197 |
+
float: right;
|
198 |
+
margin: .5rem .2rem .4rem;
|
199 |
+
cursor: pointer;
|
200 |
+
padding: .2rem .6rem .3rem .6rem;
|
201 |
+
width: auto;
|
202 |
+
overflow: visible;
|
203 |
+
}
|
|
|
|
|
204 |
|
205 |
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
|
206 |
+
float: left;
|
207 |
+
background: #fff;
|
208 |
+
border: 1px solid #b1b1b1;
|
209 |
+
}
|
210 |
|
211 |
.tribe-ui-datepicker.ui-datepicker button.ui-datepicker-close {
|
212 |
+
background: linear-gradient(354deg, rgba(10,85,160,1.00) 0%, rgba(18,136,235,1.00) 100%);
|
213 |
+
border: 1px solid #0085ba;
|
214 |
+
color: #fff !important;
|
215 |
+
font-weight: 400;
|
216 |
+
}
|
217 |
|
218 |
/* with multiple calendars */
|
219 |
|
227 |
|
228 |
.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group table {
|
229 |
width: 95%;
|
|
|
230 |
margin: 0 auto .4rem;
|
231 |
}
|
232 |
|
261 |
----------------------------------*/
|
262 |
|
263 |
.tribe-ui-datepicker.ui-widget {
|
|
|
264 |
font-size: 1.2rem;
|
265 |
font-family: inherit;
|
266 |
}
|
267 |
|
268 |
.tribe-ui-datepicker.ui-widget .ui-widget {
|
|
|
269 |
font-size: 1rem;
|
270 |
}
|
271 |
|
273 |
.tribe-ui-datepicker.ui-widget select,
|
274 |
.tribe-ui-datepicker.ui-widget textarea,
|
275 |
.tribe-ui-datepicker.ui-widget button {
|
|
|
276 |
font-size: 1rem;
|
277 |
}
|
278 |
|
306 |
.tribe-ui-datepicker a:link.ui-button,
|
307 |
.tribe-ui-datepicker a:visited.ui-button,
|
308 |
.tribe-ui-datepicker .ui-button {
|
309 |
+
color: #23282d;
|
310 |
+
text-decoration: none;
|
311 |
+
}
|
312 |
|
313 |
.tribe-ui-datepicker .ui-state-hover,
|
314 |
.tribe-ui-datepicker .ui-widget-content .ui-state-hover,
|
318 |
.tribe-ui-datepicker .ui-widget-header .ui-state-focus,
|
319 |
.tribe-ui-datepicker .ui-button:hover,
|
320 |
.tribe-ui-datepicker .ui-button:focus {
|
321 |
+
color: #000;
|
322 |
+
border: 0;
|
323 |
+
background: none;
|
324 |
+
}
|
325 |
|
326 |
.tribe-ui-datepicker .ui-state-hover a,
|
327 |
.tribe-ui-datepicker .ui-state-hover a:hover,
|
333 |
.tribe-ui-datepicker .ui-state-focus a:visited,
|
334 |
.tribe-ui-datepicker a.ui-button:hover,
|
335 |
.tribe-ui-datepicker a.ui-button:focus {
|
336 |
+
color: #b1b1b1;
|
337 |
+
text-decoration: none;
|
338 |
+
background-color: none;
|
339 |
+
background-image: none;
|
340 |
+
}
|
341 |
|
342 |
.tribe-ui-datepicker .ui-visual-focus {
|
343 |
+
box-shadow: 0 0 3px 1px rgb(94, 158, 214);
|
344 |
+
}
|
345 |
|
346 |
.tribe-ui-datepicker .ui-state-active,
|
347 |
.tribe-ui-datepicker .ui-widget-content .ui-state-active,
|
349 |
.tribe-ui-datepicker a.ui-button:active,
|
350 |
.tribe-ui-datepicker .ui-button:active,
|
351 |
.tribe-ui-datepicker .ui-button.ui-state-active:hover {
|
352 |
+
background: linear-gradient(354deg, rgba(10,85,160,1.00) 0%, rgba(18,136,235,1.00) 100%);
|
353 |
+
color: #fff;
|
354 |
+
}
|
355 |
|
356 |
.tribe-ui-datepicker .ui-icon-background,
|
357 |
.tribe-ui-datepicker .ui-state-active .ui-icon-background {
|
358 |
+
border: #dddddd;
|
359 |
+
background-color: #1c94c4;
|
360 |
+
}
|
361 |
|
362 |
.tribe-ui-datepicker .ui-state-active a,
|
363 |
.tribe-ui-datepicker .ui-state-active a:link,
|
364 |
.tribe-ui-datepicker .ui-state-active a:visited {
|
365 |
+
color: #23282d;
|
366 |
+
text-decoration: none;
|
367 |
+
}
|
368 |
|
369 |
/* Interaction Cues
|
370 |
----------------------------------*/
|
433 |
.tribe-ui-datepicker .ui-corner-top,
|
434 |
.tribe-ui-datepicker .ui-corner-left,
|
435 |
.tribe-ui-datepicker .ui-corner-tl {
|
436 |
+
border-top-left-radius: 4px;
|
437 |
+
}
|
438 |
|
439 |
.tribe-ui-datepicker .ui-corner-all,
|
440 |
.tribe-ui-datepicker .ui-corner-top,
|
441 |
.tribe-ui-datepicker .ui-corner-right,
|
442 |
.tribe-ui-datepicker .ui-corner-tr {
|
443 |
+
border-top-right-radius: 4px;
|
444 |
+
}
|
445 |
|
446 |
.tribe-ui-datepicker .ui-corner-all,
|
447 |
.tribe-ui-datepicker .ui-corner-bottom,
|
448 |
.tribe-ui-datepicker .ui-corner-left,
|
449 |
.tribe-ui-datepicker .ui-corner-bl {
|
450 |
+
border-bottom-left-radius: 4px;
|
451 |
+
}
|
452 |
|
453 |
.tribe-ui-datepicker .ui-corner-all,
|
454 |
.tribe-ui-datepicker .ui-corner-bottom,
|
455 |
.tribe-ui-datepicker .ui-corner-right,
|
456 |
.tribe-ui-datepicker .ui-corner-br {
|
457 |
+
border-bottom-right-radius: 4px;
|
458 |
+
}
|
459 |
|
460 |
/* Overlays */
|
461 |
|
462 |
.tribe-ui-datepicker .ui-widget-overlay {
|
463 |
+
background: #666666 url("images/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat;
|
464 |
+
opacity: .5;
|
465 |
+
filter: Alpha(Opacity=50); /* support: IE8 */
|
466 |
+
}
|
|
|
|
|
467 |
|
468 |
.tribe-ui-datepicker .ui-widget-shadow {
|
469 |
+
box-shadow: -5px -5px 5px #000000;
|
470 |
+
}
|
471 |
|
472 |
.tribe-ui-datepicker .ui-helper-hidden {
|
473 |
+
display: none;
|
474 |
+
}
|
475 |
|
476 |
.tribe-ui-datepicker .ui-helper-hidden-accessible {
|
477 |
+
border: 0;
|
478 |
+
clip: rect(0 0 0 0);
|
479 |
+
height: 1px;
|
480 |
+
margin: -1px;
|
481 |
+
overflow: hidden;
|
482 |
+
padding: 0;
|
483 |
+
position: absolute;
|
484 |
+
width: 1px;
|
485 |
+
}
|
486 |
|
487 |
.tribe-ui-datepicker .ui-helper-reset {
|
488 |
+
margin: 0;
|
489 |
+
padding: 0;
|
490 |
+
border: 0;
|
491 |
+
outline: 0;
|
492 |
+
line-height: 1.3;
|
493 |
+
text-decoration: none;
|
494 |
+
font-size: 100%;
|
495 |
+
list-style: none;
|
496 |
+
}
|
497 |
|
498 |
.tribe-ui-datepicker .ui-helper-clearfix:before,
|
499 |
.tribe-ui-datepicker .ui-helper-clearfix:after {
|
500 |
+
content: "";
|
501 |
+
display: table;
|
502 |
+
border-collapse: collapse;
|
503 |
+
}
|
504 |
|
505 |
.tribe-ui-datepicker .ui-helper-clearfix:after {
|
506 |
+
clear: both;
|
507 |
+
}
|
508 |
|
509 |
.tribe-ui-datepicker .ui-helper-zfix {
|
510 |
+
width: 100%;
|
511 |
+
height: 100%;
|
512 |
+
top: 0;
|
513 |
+
left: 0;
|
514 |
+
position: absolute;
|
515 |
+
opacity: 0;
|
516 |
+
filter:Alpha(Opacity=0); /* support: IE8 */
|
517 |
+
}
|
|
|
|
|
518 |
|
519 |
.tribe-ui-datepicker .ui-front {
|
520 |
+
z-index: 100;
|
521 |
+
}
|
522 |
|
523 |
/* RTL support */
|
524 |
|
527 |
}
|
528 |
|
529 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-prev {
|
530 |
+
right: 2px;
|
531 |
+
left: auto;
|
532 |
+
}
|
533 |
|
534 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-next {
|
535 |
+
left: 2px;
|
536 |
+
right: auto;
|
537 |
+
}
|
538 |
|
539 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-prev:hover {
|
540 |
+
right: 1px;
|
541 |
+
left: auto;
|
542 |
+
}
|
543 |
|
544 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-next:hover {
|
545 |
+
left: 1px;
|
546 |
+
right: auto;
|
547 |
+
}
|
548 |
|
549 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane {
|
550 |
+
clear: right;
|
551 |
+
}
|
552 |
|
553 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane button {
|
554 |
+
float: left;
|
555 |
+
}
|
556 |
|
557 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
|
558 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group {
|
559 |
+
float: right;
|
560 |
+
}
|
561 |
|
562 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
|
563 |
.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
|
564 |
+
border-right-width: 0;
|
565 |
+
border-left-width: 1px;
|
566 |
+
}
|
common/src/resources/css/datepicker.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.tribe-ui-datepicker.ui-datepicker body,.tribe-ui-datepicker.ui-datepicker button,.tribe-ui-datepicker.ui-datepicker input,.tribe-ui-datepicker.ui-datepicker select,.tribe-ui-datepicker.ui-datepicker textarea{font-family:Verdana,Helvetica Neue,Helvetica,Arial,sans-serif}.tribe-ui-datepicker.ui-datepicker table{border:none}.tribe-ui-datepicker .ui-datepicker-month{font-weight:700}.tribe-ui-datepicker .ui-state-disabled{cursor:default!important;pointer-events:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-group span.ui-icon{display:inline-block;vertical-align:middle;margin-top:-4px;margin-top:-.25rem;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;background-image:none}.tribe-ui-datepicker .ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.tribe-ui-datepicker.ui-datepicker{background:#fff;box-shadow:1px 1px 5px rgba(0,0,0,.5);width:17em;padding:1em;display:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-header{margin-bottom:16px;margin-bottom:1rem;position:relative;padding:0;border:0;background-color:transparent;background-image:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next,.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev{position:absolute;top:50%;transform:translateY(-50%);line-height:1.8em;text-align:center}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev:before{color:#b1b1b1;content:"\2190";cursor:pointer}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev:hover:before{color:#000}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next:before{color:#b1b1b1;content:"\2192";cursor:pointer}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next:hover:before{color:#000}.tribe-ui-datepicker .ui-datepicker-next-hover,.tribe-ui-datepicker .ui-datepicker-prev-hover{color:darken(#b1b1b1,10%);border:0;background:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev{left:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next{right:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev-hover{left:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next-hover{right:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8;text-align:center}.tribe-ui-datepicker select.ui-datepicker-month,.tribe-ui-datepicker select.ui-datepicker-year{border:none;box-shadow:0 1px 0 rgba(0,0,0,.1);margin-right:1px;width:72px;width:4.5rem}.tribe-ui-datepicker.ui-datepicker table{width:100%;font-size:14.4px;font-size:.9rem;border-collapse:collapse;margin:0 0 6.4px;margin:0 0 .4rem}.tribe-ui-datepicker.ui-datepicker th{color:#b1b1b1;padding:11.2px 4.8px;padding:.7rem .3rem;text-align:center;border:0}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-calendar td{border:1px solid #ddd;padding:1px}.tribe-ui-datepicker.ui-datepicker td.ui-datepicker-unselectable{border:none}.tribe-ui-datepicker.ui-datepicker a.ui-state-active{background:#0085ba;color:#fff}.tribe-ui-datepicker.ui-datepicker td a,.tribe-ui-datepicker.ui-datepicker td span{display:block;padding:8px 3.2px;padding:.5rem .2rem;text-align:center;text-decoration:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:11.2px 0 0;margin:.7rem 0 0;padding:0 3.2px;padding:0 .2rem;border-left:0;border-right:0;border-bottom:0}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:8px 3.2px 6.4px;margin:.5rem .2rem .4rem;cursor:pointer;padding:3.2px 9.6px 4.8px;padding:.2rem .6rem .3rem;width:auto;overflow:visible}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;background:#fff;border:1px solid #b1b1b1}.tribe-ui-datepicker.ui-datepicker button.ui-datepicker-close{background:linear-gradient(354deg,#0a55a0,#1288eb);border:1px solid #0085ba;color:#fff!important;font-weight:400}.tribe-ui-datepicker.ui-datepicker.ui-datepicker-multi{width:auto}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group{float:left}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto 6.4px;margin:0 auto .4rem}.tribe-ui-datepicker.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.tribe-ui-datepicker.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.tribe-ui-datepicker.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.tribe-ui-datepicker .ui-datepicker-row-break{clear:both;width:100%;font-size:0}.tribe-ui-datepicker.ui-widget{font-size:19.2px;font-size:1.2rem;font-family:inherit}.tribe-ui-datepicker.ui-widget .ui-widget,.tribe-ui-datepicker.ui-widget button,.tribe-ui-datepicker.ui-widget input,.tribe-ui-datepicker.ui-widget select,.tribe-ui-datepicker.ui-widget textarea{font-size:16px;font-size:1rem}.tribe-ui-datepicker.ui-widget-content a,.tribe-ui-datepicker .ui-widget-header a{color:#23282d}.tribe-ui-datepicker .ui-button,.tribe-ui-datepicker .ui-state-default,.tribe-ui-datepicker.ui-widget-content .ui-state-default,.tribe-ui-datepicker .ui-widget-header .ui-state-default,html .tribe-ui-datepicker .ui-button.ui-state-disabled:active,html .tribe-ui-datepicker .ui-button.ui-state-disabled:hover{color:#23282d;border:0;background-color:transparent;background-image:none}.tribe-ui-datepicker .ui-button,.tribe-ui-datepicker .ui-state-default a,.tribe-ui-datepicker .ui-state-default a:link,.tribe-ui-datepicker .ui-state-default a:visited,.tribe-ui-datepicker a.ui-button,.tribe-ui-datepicker a:link.ui-button,.tribe-ui-datepicker a:visited.ui-button{color:#23282d;text-decoration:none}.tribe-ui-datepicker .ui-button:focus,.tribe-ui-datepicker .ui-button:hover,.tribe-ui-datepicker .ui-state-focus,.tribe-ui-datepicker .ui-state-hover,.tribe-ui-datepicker .ui-widget-content .ui-state-focus,.tribe-ui-datepicker .ui-widget-content .ui-state-hover,.tribe-ui-datepicker .ui-widget-header .ui-state-focus,.tribe-ui-datepicker .ui-widget-header .ui-state-hover{color:#000;border:0;background:none}.tribe-ui-datepicker .ui-state-focus a,.tribe-ui-datepicker .ui-state-focus a:hover,.tribe-ui-datepicker .ui-state-focus a:link,.tribe-ui-datepicker .ui-state-focus a:visited,.tribe-ui-datepicker .ui-state-hover a,.tribe-ui-datepicker .ui-state-hover a:hover,.tribe-ui-datepicker .ui-state-hover a:link,.tribe-ui-datepicker .ui-state-hover a:visited,.tribe-ui-datepicker a.ui-button:focus,.tribe-ui-datepicker a.ui-button:hover{color:#b1b1b1;text-decoration:none;background-color:none;background-image:none}.tribe-ui-datepicker .ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.tribe-ui-datepicker .ui-button.ui-state-active:hover,.tribe-ui-datepicker .ui-button:active,.tribe-ui-datepicker .ui-state-active,.tribe-ui-datepicker .ui-widget-content .ui-state-active,.tribe-ui-datepicker .ui-widget-header .ui-state-active,.tribe-ui-datepicker a.ui-button:active{background:linear-gradient(354deg,#0a55a0,#1288eb);color:#fff}.tribe-ui-datepicker .ui-icon-background,.tribe-ui-datepicker .ui-state-active .ui-icon-background{border:#ddd;background-color:#1c94c4}.tribe-ui-datepicker .ui-state-active a,.tribe-ui-datepicker .ui-state-active a:link,.tribe-ui-datepicker .ui-state-active a:visited{color:#23282d;text-decoration:none}.tribe-ui-datepicker .ui-state-highlight,.tribe-ui-datepicker.ui-widget-content .ui-state-highlight,.tribe-ui-datepicker .ui-widget-header .ui-state-highlight{background:#fff;color:#363636;border:0;background-image:none}.tribe-ui-datepicker .ui-state-checked{background:#fff}.tribe-ui-datepicker .ui-state-highlight a,.tribe-ui-datepicker.ui-widget-content .ui-state-highlight a,.tribe-ui-datepicker .ui-widget-header .ui-state-highlight a{color:#363636}.tribe-ui-datepicker .ui-state-error,.tribe-ui-datepicker.ui-widget-content .ui-state-error,.tribe-ui-datepicker .ui-widget-header .ui-state-error{background:#b81900;color:#fff}.tribe-ui-datepicker .ui-state-error-text,.tribe-ui-datepicker .ui-state-error a,.tribe-ui-datepicker.ui-widget-content .ui-state-error-text,.tribe-ui-datepicker.ui-widget-content .ui-state-error a,.tribe-ui-datepicker .ui-widget-header .ui-state-error-text,.tribe-ui-datepicker .ui-widget-header .ui-state-error a{color:#fff}.tribe-ui-datepicker .ui-priority-secondary,.tribe-ui-datepicker.ui-widget-content .ui-priority-secondary,.tribe-ui-datepicker .ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.tribe-ui-datepicker .ui-state-disabled,.tribe-ui-datepicker.ui-widget-content .ui-state-disabled,.tribe-ui-datepicker .ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.tribe-ui-datepicker .ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-left,.tribe-ui-datepicker .ui-corner-tl,.tribe-ui-datepicker .ui-corner-top{border-top-left-radius:4px}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-right,.tribe-ui-datepicker .ui-corner-top,.tribe-ui-datepicker .ui-corner-tr{border-top-right-radius:4px}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-bl,.tribe-ui-datepicker .ui-corner-bottom,.tribe-ui-datepicker .ui-corner-left{border-bottom-left-radius:4px}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-bottom,.tribe-ui-datepicker .ui-corner-br,.tribe-ui-datepicker .ui-corner-right{border-bottom-right-radius:4px}.tribe-ui-datepicker .ui-widget-overlay{background:#666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.tribe-ui-datepicker .ui-widget-shadow{box-shadow:-5px -5px 5px #000}.tribe-ui-datepicker .ui-helper-hidden{display:none}.tribe-ui-datepicker .ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-ui-datepicker .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.tribe-ui-datepicker .ui-helper-clearfix:after,.tribe-ui-datepicker .ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.tribe-ui-datepicker .ui-helper-clearfix:after{clear:both}.tribe-ui-datepicker .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.tribe-ui-datepicker .ui-front{z-index:100}.tribe-ui-datepicker.ui-datepicker-rtl{direction:rtl}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group{float:right}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}
|
1 |
+
.tribe-ui-datepicker.ui-datepicker body,.tribe-ui-datepicker.ui-datepicker button,.tribe-ui-datepicker.ui-datepicker input,.tribe-ui-datepicker.ui-datepicker select,.tribe-ui-datepicker.ui-datepicker textarea{font-family:Verdana,Helvetica Neue,Helvetica,Arial,sans-serif}.tribe-ui-datepicker.ui-datepicker table{border:none}.tribe-ui-datepicker .ui-datepicker-month{font-weight:700}.tribe-ui-datepicker .ui-state-disabled{cursor:default!important;pointer-events:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-group span.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25rem;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;background-image:none}.tribe-ui-datepicker .ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.tribe-ui-datepicker.ui-datepicker{background:#fff;box-shadow:1px 1px 5px rgba(0,0,0,.5);width:17em;padding:1em;display:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-header{margin-bottom:1rem;position:relative;padding:0;border:0;background-color:transparent;background-image:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next,.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev{position:absolute;top:50%;transform:translateY(-50%);line-height:1.8em;text-align:center}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev:before{color:#b1b1b1;content:"\2190";cursor:pointer}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev:hover:before{color:#000}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next:before{color:#b1b1b1;content:"\2192";cursor:pointer}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next:hover:before{color:#000}.tribe-ui-datepicker .ui-datepicker-next-hover,.tribe-ui-datepicker .ui-datepicker-prev-hover{color:darken(#b1b1b1,10%);border:0;background:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev{left:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next{right:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev-hover{left:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-next-hover{right:1px}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8;text-align:center}.tribe-ui-datepicker select.ui-datepicker-month,.tribe-ui-datepicker select.ui-datepicker-year{border:none;box-shadow:0 1px 0 rgba(0,0,0,.1);margin-right:1px;width:4.5rem}.tribe-ui-datepicker.ui-datepicker table{width:100%;font-size:.9rem;border-collapse:collapse;margin:0 0 .4rem}.tribe-ui-datepicker.ui-datepicker th{color:#b1b1b1;padding:.7rem .3rem;text-align:center;border:0}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-calendar td{border:1px solid #ddd;padding:1px}.tribe-ui-datepicker.ui-datepicker td.ui-datepicker-unselectable{border:none}.tribe-ui-datepicker.ui-datepicker a.ui-state-active{background:#0085ba;color:#fff}.tribe-ui-datepicker.ui-datepicker td a,.tribe-ui-datepicker.ui-datepicker td span{display:block;padding:.5rem .2rem;text-align:center;text-decoration:none}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7rem 0 0;padding:0 .2rem;border-left:0;border-right:0;border-bottom:0}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5rem .2rem .4rem;cursor:pointer;padding:.2rem .6rem .3rem;width:auto;overflow:visible}.tribe-ui-datepicker.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left;background:#fff;border:1px solid #b1b1b1}.tribe-ui-datepicker.ui-datepicker button.ui-datepicker-close{background:linear-gradient(354deg,#0a55a0,#1288eb);border:1px solid #0085ba;color:#fff!important;font-weight:400}.tribe-ui-datepicker.ui-datepicker.ui-datepicker-multi{width:auto}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group{float:left}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4rem}.tribe-ui-datepicker.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.tribe-ui-datepicker.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.tribe-ui-datepicker.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.tribe-ui-datepicker .ui-datepicker-row-break{clear:both;width:100%;font-size:0}.tribe-ui-datepicker.ui-widget{font-size:1.2rem;font-family:inherit}.tribe-ui-datepicker.ui-widget .ui-widget,.tribe-ui-datepicker.ui-widget button,.tribe-ui-datepicker.ui-widget input,.tribe-ui-datepicker.ui-widget select,.tribe-ui-datepicker.ui-widget textarea{font-size:1rem}.tribe-ui-datepicker.ui-widget-content a,.tribe-ui-datepicker .ui-widget-header a{color:#23282d}.tribe-ui-datepicker .ui-button,.tribe-ui-datepicker .ui-state-default,.tribe-ui-datepicker.ui-widget-content .ui-state-default,.tribe-ui-datepicker .ui-widget-header .ui-state-default,html .tribe-ui-datepicker .ui-button.ui-state-disabled:active,html .tribe-ui-datepicker .ui-button.ui-state-disabled:hover{color:#23282d;border:0;background-color:transparent;background-image:none}.tribe-ui-datepicker .ui-button,.tribe-ui-datepicker .ui-state-default a,.tribe-ui-datepicker .ui-state-default a:link,.tribe-ui-datepicker .ui-state-default a:visited,.tribe-ui-datepicker a.ui-button,.tribe-ui-datepicker a:link.ui-button,.tribe-ui-datepicker a:visited.ui-button{color:#23282d;text-decoration:none}.tribe-ui-datepicker .ui-button:focus,.tribe-ui-datepicker .ui-button:hover,.tribe-ui-datepicker .ui-state-focus,.tribe-ui-datepicker .ui-state-hover,.tribe-ui-datepicker .ui-widget-content .ui-state-focus,.tribe-ui-datepicker .ui-widget-content .ui-state-hover,.tribe-ui-datepicker .ui-widget-header .ui-state-focus,.tribe-ui-datepicker .ui-widget-header .ui-state-hover{color:#000;border:0;background:none}.tribe-ui-datepicker .ui-state-focus a,.tribe-ui-datepicker .ui-state-focus a:hover,.tribe-ui-datepicker .ui-state-focus a:link,.tribe-ui-datepicker .ui-state-focus a:visited,.tribe-ui-datepicker .ui-state-hover a,.tribe-ui-datepicker .ui-state-hover a:hover,.tribe-ui-datepicker .ui-state-hover a:link,.tribe-ui-datepicker .ui-state-hover a:visited,.tribe-ui-datepicker a.ui-button:focus,.tribe-ui-datepicker a.ui-button:hover{color:#b1b1b1;text-decoration:none;background-color:none;background-image:none}.tribe-ui-datepicker .ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.tribe-ui-datepicker .ui-button.ui-state-active:hover,.tribe-ui-datepicker .ui-button:active,.tribe-ui-datepicker .ui-state-active,.tribe-ui-datepicker .ui-widget-content .ui-state-active,.tribe-ui-datepicker .ui-widget-header .ui-state-active,.tribe-ui-datepicker a.ui-button:active{background:linear-gradient(354deg,#0a55a0,#1288eb);color:#fff}.tribe-ui-datepicker .ui-icon-background,.tribe-ui-datepicker .ui-state-active .ui-icon-background{border:#ddd;background-color:#1c94c4}.tribe-ui-datepicker .ui-state-active a,.tribe-ui-datepicker .ui-state-active a:link,.tribe-ui-datepicker .ui-state-active a:visited{color:#23282d;text-decoration:none}.tribe-ui-datepicker .ui-state-highlight,.tribe-ui-datepicker.ui-widget-content .ui-state-highlight,.tribe-ui-datepicker .ui-widget-header .ui-state-highlight{background:#fff;color:#363636;border:0;background-image:none}.tribe-ui-datepicker .ui-state-checked{background:#fff}.tribe-ui-datepicker .ui-state-highlight a,.tribe-ui-datepicker.ui-widget-content .ui-state-highlight a,.tribe-ui-datepicker .ui-widget-header .ui-state-highlight a{color:#363636}.tribe-ui-datepicker .ui-state-error,.tribe-ui-datepicker.ui-widget-content .ui-state-error,.tribe-ui-datepicker .ui-widget-header .ui-state-error{background:#b81900;color:#fff}.tribe-ui-datepicker .ui-state-error-text,.tribe-ui-datepicker .ui-state-error a,.tribe-ui-datepicker.ui-widget-content .ui-state-error-text,.tribe-ui-datepicker.ui-widget-content .ui-state-error a,.tribe-ui-datepicker .ui-widget-header .ui-state-error-text,.tribe-ui-datepicker .ui-widget-header .ui-state-error a{color:#fff}.tribe-ui-datepicker .ui-priority-secondary,.tribe-ui-datepicker.ui-widget-content .ui-priority-secondary,.tribe-ui-datepicker .ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:400}.tribe-ui-datepicker .ui-state-disabled,.tribe-ui-datepicker.ui-widget-content .ui-state-disabled,.tribe-ui-datepicker .ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.tribe-ui-datepicker .ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-left,.tribe-ui-datepicker .ui-corner-tl,.tribe-ui-datepicker .ui-corner-top{border-top-left-radius:4px}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-right,.tribe-ui-datepicker .ui-corner-top,.tribe-ui-datepicker .ui-corner-tr{border-top-right-radius:4px}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-bl,.tribe-ui-datepicker .ui-corner-bottom,.tribe-ui-datepicker .ui-corner-left{border-bottom-left-radius:4px}.tribe-ui-datepicker .ui-corner-all,.tribe-ui-datepicker .ui-corner-bottom,.tribe-ui-datepicker .ui-corner-br,.tribe-ui-datepicker .ui-corner-right{border-bottom-right-radius:4px}.tribe-ui-datepicker .ui-widget-overlay{background:#666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.tribe-ui-datepicker .ui-widget-shadow{box-shadow:-5px -5px 5px #000}.tribe-ui-datepicker .ui-helper-hidden{display:none}.tribe-ui-datepicker .ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-ui-datepicker .ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.tribe-ui-datepicker .ui-helper-clearfix:after,.tribe-ui-datepicker .ui-helper-clearfix:before{content:"";display:table;border-collapse:collapse}.tribe-ui-datepicker .ui-helper-clearfix:after{clear:both}.tribe-ui-datepicker .ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.tribe-ui-datepicker .ui-front{z-index:100}.tribe-ui-datepicker.ui-datepicker-rtl{direction:rtl}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group{float:right}.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.tribe-ui-datepicker.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}
|
common/src/resources/css/dependency.css
CHANGED
@@ -13,18 +13,18 @@
|
|
13 |
display: none;
|
14 |
}
|
15 |
.tribe-dependent.tribe-active {
|
16 |
-
|
17 |
-
}
|
18 |
div.tribe-dependent.tribe-active {
|
19 |
-
|
20 |
-
}
|
21 |
div.tribe-dependent.tribe-active.select2-container {
|
22 |
-
|
23 |
-
}
|
24 |
td.tribe-dependent.tribe-active,
|
25 |
th.tribe-dependent.tribe-active {
|
26 |
-
|
27 |
-
}
|
28 |
tr.tribe-dependent.tribe-active {
|
29 |
-
|
30 |
-
}
|
13 |
display: none;
|
14 |
}
|
15 |
.tribe-dependent.tribe-active {
|
16 |
+
display: inline-block;
|
17 |
+
}
|
18 |
div.tribe-dependent.tribe-active {
|
19 |
+
display: block;
|
20 |
+
}
|
21 |
div.tribe-dependent.tribe-active.select2-container {
|
22 |
+
display: inline-block;
|
23 |
+
}
|
24 |
td.tribe-dependent.tribe-active,
|
25 |
th.tribe-dependent.tribe-active {
|
26 |
+
display: table-cell;
|
27 |
+
}
|
28 |
tr.tribe-dependent.tribe-active {
|
29 |
+
display: table-row;
|
30 |
+
}
|
common/src/resources/css/tribe-common-admin.css
CHANGED
@@ -122,8 +122,8 @@ table.plugins .tribe-plugin-update-message a {
|
|
122 |
max-width: 500px;
|
123 |
}
|
124 |
.tribe-settings-form .tribe-field-wrap *:first-child {
|
125 |
-
|
126 |
-
}
|
127 |
.tribe-settings-form .tribe-field-radio label,
|
128 |
.tribe-settings-form .tribe-field-checkbox_list label {
|
129 |
display: block;
|
@@ -259,8 +259,8 @@ table.plugins .tribe-plugin-update-message a {
|
|
259 |
max-width: 600px;
|
260 |
}
|
261 |
.tribe-field-wrapped_html.tribe-size-large .tribe-field-wrap .description{
|
262 |
-
|
263 |
-
}
|
264 |
.tribe-field-dropdown_chosen.tribe-size-small select {
|
265 |
width: 100px;
|
266 |
}
|
@@ -271,27 +271,27 @@ table.plugins .tribe-plugin-update-message a {
|
|
271 |
width: 300px;
|
272 |
}
|
273 |
.tribe-field-wrap .tooltip:first-child {
|
274 |
-
|
275 |
-
}
|
276 |
.tribe-field.indent {
|
277 |
-
|
278 |
-
|
279 |
-
}
|
280 |
.tribe-field.indent legend {
|
281 |
-
|
282 |
-
|
283 |
-
}
|
284 |
.tribe-field.indent .tribe-field-wrap {
|
285 |
-
|
286 |
-
}
|
287 |
.tribe-field.indent.tribe-field-radio .tribe-field-wrap {
|
288 |
-
|
289 |
-
|
290 |
-
}
|
291 |
.tribe-field.light-bordered {
|
292 |
-
|
293 |
-
|
294 |
-
}
|
295 |
/* license keys */
|
296 |
.ajax-loading-license,
|
297 |
.valid-key,
|
@@ -452,25 +452,23 @@ table.plugins .tribe-plugin-update-message a {
|
|
452 |
list-style: circle;
|
453 |
}
|
454 |
#tribe-log-controls {
|
455 |
-
padding-bottom: 16px;
|
456 |
padding-bottom: 1rem;
|
457 |
|
458 |
/* For consistency with help screen h3 and p elements */
|
459 |
padding-left: 12px;
|
460 |
}
|
461 |
#tribe-log-controls > div {
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
}
|
466 |
#tribe-log-controls .working {
|
467 |
-
|
468 |
-
|
469 |
-
}
|
470 |
#tribe-log-controls .working.hidden {
|
471 |
-
|
472 |
-
|
473 |
-
}
|
474 |
#tribe-system-info dl.support-stats,
|
475 |
#tribe-log-viewer,
|
476 |
.template-updates-wrapper {
|
@@ -495,11 +493,11 @@ table.plugins .tribe-plugin-update-message a {
|
|
495 |
padding-left: 10px;
|
496 |
}
|
497 |
.system-info-copy .system-info-copy-btn {
|
498 |
-
|
499 |
-
}
|
500 |
.system-info-copy .system-info-copy-btn .dashicons {
|
501 |
-
|
502 |
-
}
|
503 |
.template-updates-wrapper p {
|
504 |
margin-top: 0;
|
505 |
}
|
@@ -853,15 +851,12 @@ a.tribe-rating-link {
|
|
853 |
.tribe-update-bar .progress {
|
854 |
border: 1px solid #ccc;
|
855 |
float: left;
|
856 |
-
margin-right: 16px;
|
857 |
margin-right: 1rem;
|
858 |
padding: 1px;
|
859 |
-
width: 288px;
|
860 |
width: 18rem;
|
861 |
}
|
862 |
.tribe-update-bar .progress .bar {
|
863 |
background: #ffba00;
|
864 |
-
height: 16px;
|
865 |
height: 1rem;
|
866 |
width: 1%;
|
867 |
}
|
@@ -871,43 +866,42 @@ a.tribe-rating-link {
|
|
871 |
/* = Modals/thickbox dialogs
|
872 |
============================ */
|
873 |
#tribe-dialog-wrapper > div {
|
874 |
-
|
875 |
-
|
876 |
-
}
|
877 |
#tribe-dialog-wrapper > div .stage {
|
878 |
-
|
879 |
-
}
|
880 |
#tribe-dialog-wrapper #heading {
|
881 |
-
|
882 |
-
}
|
883 |
#tribe-dialog-wrapper label {
|
884 |
-
|
885 |
-
}
|
886 |
#tribe-dialog-wrapper .select-single-container {
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
}
|
891 |
#tribe-dialog-wrapper .select-single-container label {
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
}
|
896 |
#tribe-dialog-wrapper .select-single-container label:nth-child(odd) {
|
897 |
-
|
898 |
-
}
|
899 |
#tribe-dialog-wrapper .select-single-container label.selected {
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
}
|
904 |
#tribe-dialog-wrapper .select-single-container label input {
|
905 |
-
|
906 |
-
}
|
907 |
#tribe-dialog-wrapper .select-single-container.updating label {
|
908 |
-
|
909 |
-
|
910 |
-
}
|
911 |
/* Useful to ensure modals rise above the grey 'miasma' */
|
912 |
.ui-front {
|
913 |
z-index: 1000000;
|
@@ -917,248 +911,246 @@ a.tribe-rating-link {
|
|
917 |
top: 6px;
|
918 |
}
|
919 |
.wp-list-table.plugins .column-description .update-message {
|
920 |
-
|
921 |
-
}
|
922 |
.api-check {
|
923 |
padding: 1em;
|
924 |
}
|
925 |
.api-check + .notice-dismiss:hover:before {
|
926 |
-
|
927 |
-
}
|
928 |
.api-check:before,
|
929 |
.api-check:after {
|
930 |
-
|
931 |
-
|
932 |
-
}
|
933 |
.api-check:after {
|
934 |
-
|
935 |
-
}
|
936 |
.api-check .tribe-mascot {
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
}
|
946 |
.api-check .tribe-mascot:before {
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
}
|
953 |
.api-check .tribe-mascot img {
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
}
|
959 |
.api-check p {
|
960 |
-
|
961 |
-
|
962 |
-
}
|
963 |
.api-check a {
|
964 |
-
|
965 |
-
}
|
966 |
.api-check a:hover {
|
967 |
-
|
968 |
-
}
|
969 |
.api-check .plugin-list {
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
}
|
975 |
.api-check .plugin-list span.plugin-invalid:after {
|
976 |
-
|
977 |
-
}
|
978 |
.api-check .plugin-list span.plugin-invalid:last-of-type:after {
|
979 |
-
|
980 |
-
}
|
981 |
.tribe-marketing-notice {
|
982 |
padding: 1em;
|
983 |
}
|
984 |
.tribe-marketing-notice + .notice-dismiss:hover:before {
|
985 |
-
|
986 |
-
}
|
987 |
.tribe-marketing-notice:before,
|
988 |
.tribe-marketing-notice:after {
|
989 |
-
|
990 |
-
|
991 |
-
}
|
992 |
.tribe-marketing-notice:after {
|
993 |
-
|
994 |
-
}
|
995 |
.tribe-marketing-notice .tribe-notice-icon {
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
}
|
1005 |
.tribe-marketing-notice .tribe-notice-icon:before {
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
}
|
1012 |
.tribe-marketing-notice .tribe-notice-icon img {
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
}
|
1018 |
.tribe-marketing-notice h3 {
|
1019 |
-
|
1020 |
-
|
1021 |
-
}
|
1022 |
.tribe-marketing-notice p {
|
1023 |
-
|
1024 |
-
|
1025 |
-
}
|
1026 |
.tribe-marketing-notice a {
|
1027 |
-
|
1028 |
-
}
|
1029 |
.tribe-marketing-notice a:hover {
|
1030 |
-
|
1031 |
-
}
|
1032 |
.tribe-marketing-notice.tribe-bf-2018-tec .button.button-primary {
|
1033 |
-
|
1034 |
-
}
|
1035 |
.tribe-ea-dropdown,
|
1036 |
.tribe-dropdown {
|
1037 |
max-width: 100%;
|
1038 |
width: auto;
|
1039 |
}
|
1040 |
.tribe-ea-dropdown.select2-container-active .select2-choice, .tribe-dropdown.select2-container-active .select2-choice {
|
1041 |
-
|
1042 |
-
|
1043 |
-
}
|
1044 |
.tribe-ea-dropdown.select2-dropdown-open .select2-choice, .tribe-dropdown.select2-dropdown-open .select2-choice {
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
}
|
1049 |
.tribe-ea-dropdown .select2-choice, .tribe-dropdown .select2-choice {
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
}
|
1054 |
.tribe-ea-dropdown .select2-choice > .select2-chosen, .tribe-dropdown .select2-choice > .select2-chosen {
|
1055 |
-
|
1056 |
-
}
|
1057 |
.tribe-ea-dropdown .select2-choice .select2-arrow, .tribe-dropdown .select2-choice .select2-arrow {
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
}
|
1062 |
.tribe-ea-dropdown .select2-choice div, .tribe-dropdown .select2-choice div {
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
}
|
1067 |
.tribe-ea-dropdown.select2-container-multi .select2-choices, .tribe-dropdown.select2-container-multi .select2-choices {
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
}
|
1073 |
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-field, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-field {
|
1074 |
-
|
1075 |
-
}
|
1076 |
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-field input, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-field input {
|
1077 |
-
|
1078 |
-
|
1079 |
-
}
|
1080 |
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice {
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
}
|
1086 |
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice div, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice div {
|
1087 |
-
|
1088 |
-
}
|
1089 |
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice-close, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice-close {
|
1090 |
-
|
1091 |
-
|
1092 |
-
|
1093 |
-
}
|
1094 |
.select2-results .select2-selected {
|
1095 |
-
|
1096 |
-
}
|
1097 |
.select2-results .select2-selected > .select2-result-label {
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
}
|
1102 |
.select2-results li.select2-result-with-children > .select2-result-label {
|
1103 |
-
|
1104 |
-
}
|
1105 |
.select2-results li.select2-result-with-children.select2-selected {
|
1106 |
-
|
1107 |
-
}
|
1108 |
.select2-results li.select2-result-with-children.select2-selected .select2-result {
|
1109 |
-
|
1110 |
-
}
|
1111 |
.select2-results li.select2-result-with-children.select2-selected > .select2-result-label {
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
}
|
1116 |
.select2-results li.select2-result-with-children.select2-result-unselectable > .select2-result-label {
|
1117 |
-
|
1118 |
-
|
1119 |
-
}
|
1120 |
/*
|
1121 |
Red button styles.
|
1122 |
|
1123 |
Credit to https://github.com/jensjns/wp-admin-red-button
|
1124 |
=============================================*/
|
1125 |
.wp-core-ui .button-red {
|
1126 |
-
-webkit-box-shadow: inset 0 1px 0 rgba(120,
|
1127 |
background-color: #a00;
|
1128 |
border-bottom-color: #8D1F21;
|
1129 |
border-color: #9B2124;
|
1130 |
-
box-shadow: inset 0 1px 0 rgba(120,
|
1131 |
color: #fff;
|
1132 |
text-decoration: none;
|
1133 |
-
text-shadow: 0 1px 0 rgba(0,
|
1134 |
}
|
1135 |
.wp-core-ui .button-red.hover,
|
1136 |
.wp-core-ui .button-red:hover,
|
1137 |
.wp-core-ui .button-red.focus,
|
1138 |
.wp-core-ui .button-red:focus {
|
1139 |
-
-webkit-box-shadow: inset 0 1px 0 rgba(120,
|
1140 |
background-color: #a00;
|
1141 |
border-color: #7F1C1F;
|
1142 |
-
box-shadow: inset 0 1px 0 rgba(120,
|
1143 |
color: #fff;
|
1144 |
-
text-shadow: 0 -1px 0 rgba(0,
|
1145 |
}
|
1146 |
.wp-core-ui .button-red.focus,
|
1147 |
.wp-core-ui .button-red:focus {
|
1148 |
-
-webkit-box-shadow: inset 0 1px 0 rgba(120,
|
1149 |
border-color: #500F0E;
|
1150 |
-
box-shadow: inset 0 1px 0 rgba(120,
|
1151 |
}
|
1152 |
.wp-core-ui .button-red.active,
|
1153 |
.wp-core-ui .button-red.active:hover,
|
1154 |
.wp-core-ui .button-red.active:focus,
|
1155 |
.wp-core-ui .button-red:active {
|
1156 |
-
-webkit-box-shadow: inset 0 1px 0 rgba(0,
|
1157 |
background: #7F1C1F;
|
1158 |
border-color: #601312 #AE2426 #AE2426 #AE2426;
|
1159 |
-
box-shadow: inset 0 1px 0 rgba(0,
|
1160 |
-
color: rgba(255,
|
1161 |
-
text-shadow: 0 1px 0 rgba(0,
|
1162 |
}
|
1163 |
.wp-core-ui .button-red[disabled],
|
1164 |
.wp-core-ui .button-red:disabled,
|
@@ -1167,45 +1159,53 @@ Credit to https://github.com/jensjns/wp-admin-red-button
|
|
1167 |
background: #BA292B !important;
|
1168 |
border-color: #7F1C1F !important;
|
1169 |
box-shadow: none !important;
|
1170 |
-
text-shadow: 0 -1px 0 rgba(0,
|
1171 |
cursor: default;
|
1172 |
}
|
1173 |
.ticket_form .select2-container .select2-choice .select2-arrow {
|
1174 |
-
|
1175 |
-
}
|
1176 |
/* Clearfix Utility */
|
1177 |
.clear {
|
1178 |
zoom: 1;
|
1179 |
}
|
1180 |
.clear:after,
|
1181 |
.clear:before {
|
1182 |
-
|
1183 |
-
|
1184 |
-
}
|
1185 |
.clear:after {
|
1186 |
-
|
1187 |
-
}
|
1188 |
/* from https://codepen.io/lajlev/pen/diKbz */
|
1189 |
-
.checkmark:after {
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1198 |
.checkmark.checkmark-right:after {
|
1199 |
-
|
1200 |
-
|
1201 |
-
}
|
1202 |
.checkmark.checkmark-left:after {
|
1203 |
-
|
1204 |
-
|
1205 |
-
}
|
1206 |
.checkmark.no-checkmark:after {
|
1207 |
-
|
1208 |
-
}
|
1209 |
.complete, .ok, .yes, .on,
|
1210 |
[data-status="complete"],
|
1211 |
[data-status="ok"],
|
@@ -1253,8 +1253,8 @@ Credit to https://github.com/jensjns/wp-admin-red-button
|
|
1253 |
.plugin-card-image-widget-plus .column-rating,
|
1254 |
.plugin-card-image-widget-plus .column-updated,
|
1255 |
.plugin-card-image-widget-plus .column-downloaded {
|
1256 |
-
|
1257 |
-
}
|
1258 |
@media
|
1259 |
only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {
|
1260 |
#tribe-loading span {
|
@@ -1267,6 +1267,7 @@ only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device
|
|
1267 |
margin: 0 0 20px 0;
|
1268 |
width: 100%;
|
1269 |
}
|
|
|
1270 |
input[type='email'] {
|
1271 |
width: 100%;
|
1272 |
}
|
@@ -1275,48 +1276,53 @@ only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device
|
|
1275 |
.events-cal .subsubsub {
|
1276 |
float: none;
|
1277 |
}
|
|
|
1278 |
.events-cal .search-box {
|
1279 |
width: 98%;
|
1280 |
}
|
|
|
1281 |
.events-cal #search-submit {
|
1282 |
width: 100%;
|
1283 |
}
|
|
|
1284 |
.events-cal .tablenav.top {
|
1285 |
display: none;
|
1286 |
}
|
1287 |
}
|
1288 |
@media screen and (min-width: 500px) {
|
1289 |
-
|
1290 |
-
|
1291 |
}
|
1292 |
-
|
1293 |
-
|
1294 |
}
|
1295 |
-
}
|
1296 |
@media screen and (min-width: 600px) and (max-width: 782px ) {
|
1297 |
-
|
1298 |
-
|
1299 |
}
|
1300 |
-
|
1301 |
-
|
1302 |
}
|
1303 |
-
}
|
1304 |
@media screen and (min-width: 600px) {
|
1305 |
-
|
1306 |
-
|
1307 |
}
|
1308 |
-
}
|
1309 |
@media screen and (min-width: 782px) {
|
1310 |
-
|
1311 |
-
|
1312 |
}
|
1313 |
-
}
|
1314 |
@media screen and (max-width: 956px) {
|
1315 |
-
|
1316 |
-
|
1317 |
-
|
1318 |
-
|
1319 |
-
|
1320 |
-
|
1321 |
-
|
1322 |
-
|
|
|
|
122 |
max-width: 500px;
|
123 |
}
|
124 |
.tribe-settings-form .tribe-field-wrap *:first-child {
|
125 |
+
margin-top: 0;
|
126 |
+
}
|
127 |
.tribe-settings-form .tribe-field-radio label,
|
128 |
.tribe-settings-form .tribe-field-checkbox_list label {
|
129 |
display: block;
|
259 |
max-width: 600px;
|
260 |
}
|
261 |
.tribe-field-wrapped_html.tribe-size-large .tribe-field-wrap .description{
|
262 |
+
max-width: 100%;
|
263 |
+
}
|
264 |
.tribe-field-dropdown_chosen.tribe-size-small select {
|
265 |
width: 100px;
|
266 |
}
|
271 |
width: 300px;
|
272 |
}
|
273 |
.tribe-field-wrap .tooltip:first-child {
|
274 |
+
font-style: normal;
|
275 |
+
}
|
276 |
.tribe-field.indent {
|
277 |
+
margin-left: 252px;
|
278 |
+
width: 75%;
|
279 |
+
}
|
280 |
.tribe-field.indent legend {
|
281 |
+
font-weight: normal;
|
282 |
+
width: auto;
|
283 |
+
}
|
284 |
.tribe-field.indent .tribe-field-wrap {
|
285 |
+
padding-right: 12px;
|
286 |
+
}
|
287 |
.tribe-field.indent.tribe-field-radio .tribe-field-wrap {
|
288 |
+
clear: left;
|
289 |
+
margin-top: 12px;
|
290 |
+
}
|
291 |
.tribe-field.light-bordered {
|
292 |
+
background-color: white;
|
293 |
+
border: solid lightgrey 1px;
|
294 |
+
}
|
295 |
/* license keys */
|
296 |
.ajax-loading-license,
|
297 |
.valid-key,
|
452 |
list-style: circle;
|
453 |
}
|
454 |
#tribe-log-controls {
|
|
|
455 |
padding-bottom: 1rem;
|
456 |
|
457 |
/* For consistency with help screen h3 and p elements */
|
458 |
padding-left: 12px;
|
459 |
}
|
460 |
#tribe-log-controls > div {
|
461 |
+
display: inline-block;
|
462 |
+
padding-right: 1rem;
|
463 |
+
}
|
|
|
464 |
#tribe-log-controls .working {
|
465 |
+
opacity: 1;
|
466 |
+
transition: opacity 0.2s;
|
467 |
+
}
|
468 |
#tribe-log-controls .working.hidden {
|
469 |
+
opacity: 0;
|
470 |
+
transition: opacity 0.2s;
|
471 |
+
}
|
472 |
#tribe-system-info dl.support-stats,
|
473 |
#tribe-log-viewer,
|
474 |
.template-updates-wrapper {
|
493 |
padding-left: 10px;
|
494 |
}
|
495 |
.system-info-copy .system-info-copy-btn {
|
496 |
+
padding: 6px;
|
497 |
+
}
|
498 |
.system-info-copy .system-info-copy-btn .dashicons {
|
499 |
+
padding-right: 10px;
|
500 |
+
}
|
501 |
.template-updates-wrapper p {
|
502 |
margin-top: 0;
|
503 |
}
|
851 |
.tribe-update-bar .progress {
|
852 |
border: 1px solid #ccc;
|
853 |
float: left;
|
|
|
854 |
margin-right: 1rem;
|
855 |
padding: 1px;
|
|
|
856 |
width: 18rem;
|
857 |
}
|
858 |
.tribe-update-bar .progress .bar {
|
859 |
background: #ffba00;
|
|
|
860 |
height: 1rem;
|
861 |
width: 1%;
|
862 |
}
|
866 |
/* = Modals/thickbox dialogs
|
867 |
============================ */
|
868 |
#tribe-dialog-wrapper > div {
|
869 |
+
padding: 1rem;
|
870 |
+
}
|
|
|
871 |
#tribe-dialog-wrapper > div .stage {
|
872 |
+
display: none;
|
873 |
+
}
|
874 |
#tribe-dialog-wrapper #heading {
|
875 |
+
background: white;
|
876 |
+
}
|
877 |
#tribe-dialog-wrapper label {
|
878 |
+
display: block;
|
879 |
+
}
|
880 |
#tribe-dialog-wrapper .select-single-container {
|
881 |
+
border: 1px solid #888;
|
882 |
+
overflow-y: scroll;
|
883 |
+
height: 300px;
|
884 |
+
}
|
885 |
#tribe-dialog-wrapper .select-single-container label {
|
886 |
+
opacity: 1;
|
887 |
+
padding: 3px 5px;
|
888 |
+
transition: opacity 0.2s;
|
889 |
+
}
|
890 |
#tribe-dialog-wrapper .select-single-container label:nth-child(odd) {
|
891 |
+
background: white;
|
892 |
+
}
|
893 |
#tribe-dialog-wrapper .select-single-container label.selected {
|
894 |
+
background: #0073aa;
|
895 |
+
color: white;
|
896 |
+
font-weight: bold;
|
897 |
+
}
|
898 |
#tribe-dialog-wrapper .select-single-container label input {
|
899 |
+
display: none;
|
900 |
+
}
|
901 |
#tribe-dialog-wrapper .select-single-container.updating label {
|
902 |
+
opacity: 0.35;
|
903 |
+
transition: opacity 0.2s;
|
904 |
+
}
|
905 |
/* Useful to ensure modals rise above the grey 'miasma' */
|
906 |
.ui-front {
|
907 |
z-index: 1000000;
|
911 |
top: 6px;
|
912 |
}
|
913 |
.wp-list-table.plugins .column-description .update-message {
|
914 |
+
color: #d54e21;
|
915 |
+
}
|
916 |
.api-check {
|
917 |
padding: 1em;
|
918 |
}
|
919 |
.api-check + .notice-dismiss:hover:before {
|
920 |
+
color: #fff;
|
921 |
+
}
|
922 |
.api-check:before,
|
923 |
.api-check:after {
|
924 |
+
content: '';
|
925 |
+
display: table;
|
926 |
+
}
|
927 |
.api-check:after {
|
928 |
+
clear: both;
|
929 |
+
}
|
930 |
.api-check .tribe-mascot {
|
931 |
+
bottom: 0;
|
932 |
+
display: none;
|
933 |
+
padding: 1rem;
|
934 |
+
position: absolute;
|
935 |
+
right: 0;
|
936 |
+
top: 0;
|
937 |
+
width: 125px;
|
938 |
+
}
|
|
|
939 |
.api-check .tribe-mascot:before {
|
940 |
+
content: '';
|
941 |
+
display: inline-block;
|
942 |
+
height: 100%;
|
943 |
+
width: 1%;
|
944 |
+
vertical-align: middle;
|
945 |
+
}
|
946 |
.api-check .tribe-mascot img {
|
947 |
+
display: inline-block;
|
948 |
+
max-height: 100%;
|
949 |
+
max-width: 96%;
|
950 |
+
vertical-align: middle;
|
951 |
+
}
|
952 |
.api-check p {
|
953 |
+
line-height: 1.7;
|
954 |
+
margin-bottom: 1em;
|
955 |
+
}
|
956 |
.api-check a {
|
957 |
+
text-decoration: none;
|
958 |
+
}
|
959 |
.api-check a:hover {
|
960 |
+
text-decoration: underline;
|
961 |
+
}
|
962 |
.api-check .plugin-list {
|
963 |
+
display: inline;
|
964 |
+
font-weight: 600;
|
965 |
+
margin: 0;
|
966 |
+
padding: 0;
|
967 |
+
}
|
968 |
.api-check .plugin-list span.plugin-invalid:after {
|
969 |
+
content: ', ';
|
970 |
+
}
|
971 |
.api-check .plugin-list span.plugin-invalid:last-of-type:after {
|
972 |
+
content: '';
|
973 |
+
}
|
974 |
.tribe-marketing-notice {
|
975 |
padding: 1em;
|
976 |
}
|
977 |
.tribe-marketing-notice + .notice-dismiss:hover:before {
|
978 |
+
color: #fff;
|
979 |
+
}
|
980 |
.tribe-marketing-notice:before,
|
981 |
.tribe-marketing-notice:after {
|
982 |
+
content: '';
|
983 |
+
display: table;
|
984 |
+
}
|
985 |
.tribe-marketing-notice:after {
|
986 |
+
clear: both;
|
987 |
+
}
|
988 |
.tribe-marketing-notice .tribe-notice-icon {
|
989 |
+
bottom: 0;
|
990 |
+
display: none;
|
991 |
+
padding: 1rem;
|
992 |
+
position: absolute;
|
993 |
+
left: 0;
|
994 |
+
top: 0;
|
995 |
+
width: 125px;
|
996 |
+
}
|
|
|
997 |
.tribe-marketing-notice .tribe-notice-icon:before {
|
998 |
+
content: '';
|
999 |
+
display: inline-block;
|
1000 |
+
height: 100%;
|
1001 |
+
width: 1%;
|
1002 |
+
vertical-align: middle;
|
1003 |
+
}
|
1004 |
.tribe-marketing-notice .tribe-notice-icon img {
|
1005 |
+
display: inline-block;
|
1006 |
+
max-height: 100%;
|
1007 |
+
max-width: 96%;
|
1008 |
+
vertical-align: middle;
|
1009 |
+
}
|
1010 |
.tribe-marketing-notice h3 {
|
1011 |
+
margin-bottom: 0.5em;
|
1012 |
+
margin-top: 0.5em;
|
1013 |
+
}
|
1014 |
.tribe-marketing-notice p {
|
1015 |
+
line-height: 1.7;
|
1016 |
+
margin-bottom: 0.5em;
|
1017 |
+
}
|
1018 |
.tribe-marketing-notice a {
|
1019 |
+
text-decoration: none;
|
1020 |
+
}
|
1021 |
.tribe-marketing-notice a:hover {
|
1022 |
+
text-decoration: underline;
|
1023 |
+
}
|
1024 |
.tribe-marketing-notice.tribe-bf-2018-tec .button.button-primary {
|
1025 |
+
margin: 10px 10px 0 0;
|
1026 |
+
}
|
1027 |
.tribe-ea-dropdown,
|
1028 |
.tribe-dropdown {
|
1029 |
max-width: 100%;
|
1030 |
width: auto;
|
1031 |
}
|
1032 |
.tribe-ea-dropdown.select2-container-active .select2-choice, .tribe-dropdown.select2-container-active .select2-choice {
|
1033 |
+
border-color: #5897fb;
|
1034 |
+
box-shadow: 0 0 5px rgba( 0, 0, 0, .1 );
|
1035 |
+
}
|
1036 |
.tribe-ea-dropdown.select2-dropdown-open .select2-choice, .tribe-dropdown.select2-dropdown-open .select2-choice {
|
1037 |
+
border-bottom-left-radius: 0;
|
1038 |
+
border-bottom-right-radius: 0;
|
1039 |
+
border-color: #aaa;
|
1040 |
+
}
|
1041 |
.tribe-ea-dropdown .select2-choice, .tribe-dropdown .select2-choice {
|
1042 |
+
background-image: none;
|
1043 |
+
border-radius: 3px;
|
1044 |
+
border: 1px solid #ccc;
|
1045 |
+
}
|
1046 |
.tribe-ea-dropdown .select2-choice > .select2-chosen, .tribe-dropdown .select2-choice > .select2-chosen {
|
1047 |
+
white-space: normal;
|
1048 |
+
}
|
1049 |
.tribe-ea-dropdown .select2-choice .select2-arrow, .tribe-dropdown .select2-choice .select2-arrow {
|
1050 |
+
background-image: none;
|
1051 |
+
background: transparent;
|
1052 |
+
border-left: 0;
|
1053 |
+
}
|
1054 |
.tribe-ea-dropdown .select2-choice div, .tribe-dropdown .select2-choice div {
|
1055 |
+
background-image: none;
|
1056 |
+
background: none;
|
1057 |
+
border-left: 0;
|
1058 |
+
}
|
1059 |
.tribe-ea-dropdown.select2-container-multi .select2-choices, .tribe-dropdown.select2-container-multi .select2-choices {
|
1060 |
+
background-image: none;
|
1061 |
+
border-radius: 3px;
|
1062 |
+
border: 1px solid #ccc;
|
1063 |
+
min-height: 25px;
|
1064 |
+
}
|
1065 |
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-field, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-field {
|
1066 |
+
line-height: 25px;
|
1067 |
+
}
|
1068 |
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-field input, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-field input {
|
1069 |
+
padding-top: 0;
|
1070 |
+
padding-bottom: 0;
|
1071 |
+
}
|
1072 |
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice {
|
1073 |
+
margin-top: 2px;
|
1074 |
+
padding-top: 0;
|
1075 |
+
padding-bottom: 0;
|
1076 |
+
line-height: 19px;
|
1077 |
+
}
|
1078 |
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice div, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice div {
|
1079 |
+
line-height: inherit;
|
1080 |
+
}
|
1081 |
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice-close, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice-close {
|
1082 |
+
top: 3px;
|
1083 |
+
left: 4px;
|
1084 |
+
transition-property: border,color;
|
1085 |
+
}
|
1086 |
.select2-results .select2-selected {
|
1087 |
+
display: block;
|
1088 |
+
}
|
1089 |
.select2-results .select2-selected > .select2-result-label {
|
1090 |
+
background-color: #efefef;
|
1091 |
+
color: #a1a1a1;
|
1092 |
+
cursor: default;
|
1093 |
+
}
|
1094 |
.select2-results li.select2-result-with-children > .select2-result-label {
|
1095 |
+
font-weight: normal;
|
1096 |
+
}
|
1097 |
.select2-results li.select2-result-with-children.select2-selected {
|
1098 |
+
display: block;
|
1099 |
+
}
|
1100 |
.select2-results li.select2-result-with-children.select2-selected .select2-result {
|
1101 |
+
display: block;
|
1102 |
+
}
|
1103 |
.select2-results li.select2-result-with-children.select2-selected > .select2-result-label {
|
1104 |
+
background-color: #efefef;
|
1105 |
+
color: #a1a1a1;
|
1106 |
+
cursor: default;
|
1107 |
+
}
|
1108 |
.select2-results li.select2-result-with-children.select2-result-unselectable > .select2-result-label {
|
1109 |
+
color: #939393;
|
1110 |
+
font-weight: normal;
|
1111 |
+
}
|
1112 |
/*
|
1113 |
Red button styles.
|
1114 |
|
1115 |
Credit to https://github.com/jensjns/wp-admin-red-button
|
1116 |
=============================================*/
|
1117 |
.wp-core-ui .button-red {
|
1118 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.5);
|
1119 |
background-color: #a00;
|
1120 |
border-bottom-color: #8D1F21;
|
1121 |
border-color: #9B2124;
|
1122 |
+
box-shadow: inset 0 1px 0 rgba(120,200,230,0.5);
|
1123 |
color: #fff;
|
1124 |
text-decoration: none;
|
1125 |
+
text-shadow: 0 1px 0 rgba(0,0,0,0.1);
|
1126 |
}
|
1127 |
.wp-core-ui .button-red.hover,
|
1128 |
.wp-core-ui .button-red:hover,
|
1129 |
.wp-core-ui .button-red.focus,
|
1130 |
.wp-core-ui .button-red:focus {
|
1131 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
|
1132 |
background-color: #a00;
|
1133 |
border-color: #7F1C1F;
|
1134 |
+
box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
|
1135 |
color: #fff;
|
1136 |
+
text-shadow: 0 -1px 0 rgba(0,0,0,0.3);
|
1137 |
}
|
1138 |
.wp-core-ui .button-red.focus,
|
1139 |
.wp-core-ui .button-red:focus {
|
1140 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
|
1141 |
border-color: #500F0E;
|
1142 |
+
box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
|
1143 |
}
|
1144 |
.wp-core-ui .button-red.active,
|
1145 |
.wp-core-ui .button-red.active:hover,
|
1146 |
.wp-core-ui .button-red.active:focus,
|
1147 |
.wp-core-ui .button-red:active {
|
1148 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
|
1149 |
background: #7F1C1F;
|
1150 |
border-color: #601312 #AE2426 #AE2426 #AE2426;
|
1151 |
+
box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
|
1152 |
+
color: rgba(255,255,255,0.95);
|
1153 |
+
text-shadow: 0 1px 0 rgba(0,0,0,0.1);
|
1154 |
}
|
1155 |
.wp-core-ui .button-red[disabled],
|
1156 |
.wp-core-ui .button-red:disabled,
|
1159 |
background: #BA292B !important;
|
1160 |
border-color: #7F1C1F !important;
|
1161 |
box-shadow: none !important;
|
1162 |
+
text-shadow: 0 -1px 0 rgba(0,0,0,0.1) !important;
|
1163 |
cursor: default;
|
1164 |
}
|
1165 |
.ticket_form .select2-container .select2-choice .select2-arrow {
|
1166 |
+
display: none;
|
1167 |
+
}
|
1168 |
/* Clearfix Utility */
|
1169 |
.clear {
|
1170 |
zoom: 1;
|
1171 |
}
|
1172 |
.clear:after,
|
1173 |
.clear:before {
|
1174 |
+
content: " ";
|
1175 |
+
display: table;
|
1176 |
+
}
|
1177 |
.clear:after {
|
1178 |
+
clear: both;
|
1179 |
+
}
|
1180 |
/* from https://codepen.io/lajlev/pen/diKbz */
|
1181 |
+
.checkmark:after {
|
1182 |
+
/*Add another block-level blank space*/
|
1183 |
+
content: '';
|
1184 |
+
display: block;
|
1185 |
+
|
1186 |
+
/*Make it a small rectangle so the border will create an L-shape*/
|
1187 |
+
width: 8px;
|
1188 |
+
height: 15px;
|
1189 |
+
|
1190 |
+
/*Add a white border on the bottom and left, creating that 'L' */
|
1191 |
+
border: solid #0AB152;
|
1192 |
+
border-width: 0 3px 3px 0;
|
1193 |
+
|
1194 |
+
/*Rotate the L 45 degrees to turn it into a checkmark*/
|
1195 |
+
-webkit-transform: rotate(45deg);
|
1196 |
+
transform: rotate(45deg);
|
1197 |
+
}
|
1198 |
.checkmark.checkmark-right:after {
|
1199 |
+
float: right;
|
1200 |
+
margin-right: 2em;
|
1201 |
+
}
|
1202 |
.checkmark.checkmark-left:after {
|
1203 |
+
float: left;
|
1204 |
+
margin-left: 2em;
|
1205 |
+
}
|
1206 |
.checkmark.no-checkmark:after {
|
1207 |
+
display: none;
|
1208 |
+
}
|
1209 |
.complete, .ok, .yes, .on,
|
1210 |
[data-status="complete"],
|
1211 |
[data-status="ok"],
|
1253 |
.plugin-card-image-widget-plus .column-rating,
|
1254 |
.plugin-card-image-widget-plus .column-updated,
|
1255 |
.plugin-card-image-widget-plus .column-downloaded {
|
1256 |
+
display: none;
|
1257 |
+
}
|
1258 |
@media
|
1259 |
only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) {
|
1260 |
#tribe-loading span {
|
1267 |
margin: 0 0 20px 0;
|
1268 |
width: 100%;
|
1269 |
}
|
1270 |
+
|
1271 |
input[type='email'] {
|
1272 |
width: 100%;
|
1273 |
}
|
1276 |
.events-cal .subsubsub {
|
1277 |
float: none;
|
1278 |
}
|
1279 |
+
|
1280 |
.events-cal .search-box {
|
1281 |
width: 98%;
|
1282 |
}
|
1283 |
+
|
1284 |
.events-cal #search-submit {
|
1285 |
width: 100%;
|
1286 |
}
|
1287 |
+
|
1288 |
.events-cal .tablenav.top {
|
1289 |
display: none;
|
1290 |
}
|
1291 |
}
|
1292 |
@media screen and (min-width: 500px) {
|
1293 |
+
.api-check .tribe-mascot {
|
1294 |
+
display: block
|
1295 |
}
|
1296 |
+
.api-check .notice-content {
|
1297 |
+
margin-right: 180px
|
1298 |
}
|
1299 |
+
}
|
1300 |
@media screen and (min-width: 600px) and (max-width: 782px ) {
|
1301 |
+
.tribe-marketing-notice .tribe-notice-icon {
|
1302 |
+
width: 135px
|
1303 |
}
|
1304 |
+
.tribe-marketing-notice .tribe-notice-content {
|
1305 |
+
margin-left: 145px
|
1306 |
}
|
1307 |
+
}
|
1308 |
@media screen and (min-width: 600px) {
|
1309 |
+
.tribe-marketing-notice .tribe-notice-icon {
|
1310 |
+
display: block
|
1311 |
}
|
1312 |
+
}
|
1313 |
@media screen and (min-width: 782px) {
|
1314 |
+
.tribe-marketing-notice .tribe-notice-content {
|
1315 |
+
margin-left: 130px
|
1316 |
}
|
1317 |
+
}
|
1318 |
@media screen and (max-width: 956px) {
|
1319 |
+
|
1320 |
+
.tribe-marketing-notice.tribe-bf-2018-tec .button.button-primary {
|
1321 |
+
margin: 0 0 10px 0;
|
1322 |
+
}
|
1323 |
+
|
1324 |
+
.tribe-marketing-notice.tribe-bf-2018-tec em {
|
1325 |
+
clear: both;
|
1326 |
+
display: block;
|
1327 |
+
}
|
1328 |
+
}
|
common/src/resources/css/tribe-common-admin.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.invalid input{border:2px solid red!important}.valid input{border:1px solid green}.clearfix{zoom:1}.placeholder{color:#999;cursor:text;padding:4px}input:placeholder,textarea:placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.bubble{-khtml-border-radius:3px;background-color:#f9f9f9;border:1px solid #dfdfdf;border-radius:3px;border-spacing:0;border-style:solid;padding:10px}.tribe-sticky-tooltip{color:#bbb}td.tribe_message{padding-bottom:10px!important}#tribe_thanks{float:left;margin:5px 0 0;width:200px}.tribe_brand{font-family:Georgia!important;font-size:17px!important;font-weight:400;margin:8px 0}#tribe-upgrade{background:#f6f6f6;border:1px solid #ccc;border-radius:5px;margin:20px 0 30px;padding:0 20px 20px}#tribe-upgrade .message{background-color:#ffffe0;border:1px solid #e6db55;border-radius:3px;padding:6px 12px}table.plugins .tribe-plugin-update-message{background:#d54e21;color:#fff;display:inline-table;margin:6px 0;padding:10px 12px}table.plugins .tribe-plugin-update-message h4{display:inline;font-weight:700;margin-right:8px}table.plugins .tribe-plugin-update-message h4:after{content:" \00BB "}table.plugins .tribe-plugin-update-message a{color:#fff;text-decoration:underline}.tribe-settings-form{max-width:1000px}.tribe-settings-form fieldset{clear:both;display:inline-block;padding:10px 0}.tribe-settings-form legend{float:left;font-weight:700;margin-right:20px;width:220px}.tribe-settings-form fieldset.tribe-field-license_key legend{width:auto}.tribe-settings-form .tribe-field-wrap{float:left;max-width:500px}.tribe-settings-form .tribe-field-wrap :first-child{margin-top:0}.tribe-settings-form .tribe-field-checkbox_list label,.tribe-settings-form .tribe-field-radio label{display:block;margin:5px 0 5px 20px;text-indent:-20px}.tribe-settings-form .tribe-field-checkbox_list label input,.tribe-settings-form .tribe-field-radio label input{margin-right:5px}.tribe-settings-form .tribe-settings-form-wrap .description,.tribe-settings-form .tribe-settings-form-wrap fieldset,.tribe-settings-form fieldset[id^=tribe-field-geoloc_]{padding-left:12px}.tribe-settings-form .tribe-settings-form-wrap fieldset .description{margin-left:0;max-width:450px;padding-left:0}.tribe-settings-form .tribe-settings-form-wrap h3{background-color:#f9f9f9;margin-bottom:10px;padding:6px 0 6px 12px}.tribe-settings-form .tribe-settings-form-wrap .contained,.tribe-settings-form .tribe-settings-form-wrap .system-info,.tribe-settings-form .tribe-settings-form-wrap .tribe-sysinfo-optin-msg,.tribe-settings-form .tribe-settings-form-wrap h3+p{margin:0 0 10px;padding-left:12px}.tribe_settings .tribe-field-indent{margin-left:245px}.tribe_settings #pu_dashboard_message{display:none}.tribe_settings .tribe-errors-list{margin-left:15px}.tribe_settings .expiring-license{color:red}.tribe_settings .tribe-error{border:1px solid red}.tribe_settings .tribe-field-description{margin-bottom:0;position:relative;top:-12px}.tribe_settings #ical-link{top:-14px}.tribe-settings-form #tribe-field-stylesheetOption label{margin-left:20px}.tribe-settings-form #tribe-field-stylesheetOption input{margin-left:-20px;margin-right:8px}.tribe-settings-form #tribe-field-stylesheetOption p.description{color:#999}#modern-tribe-info{-khtml-border-radius:4px;background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;margin:20px 0;padding:8px 20px 12px}#modern-tribe-info img{height:18px;margin:10px 0;width:250px}#modern-tribe-info ul{list-style:disc;margin-left:20px}#modern-tribe-info ul ul{list-style:circle}.tribe-field-inline-dropdown{margin-left:0;margin-right:0}.tribe-field-inline-text{line-height:28px;margin:0 2px}.tribe-field-textarea.tribe-size-small textarea{height:60px;width:180px}.tribe-field-textarea.tribe-size-medium textarea{height:80px;width:300px}.tribe-field-textarea.tribe-size-large textarea{height:120px;width:450px}.tribe-field-email.tribe-size-small input,.tribe-field-license_key.tribe-size-small input,.tribe-field-text.tribe-size-small input{width:50px}.tribe-field-email.tribe-size-medium input,.tribe-field-license_key.tribe-size-medium input,.tribe-field-text.tribe-size-medium input{width:225px}.tribe-field-email.tribe-size-large input,.tribe-field-license_key.tribe-size-large input,.tribe-field-text.tribe-size-large input{width:450px}.tribe-field-dropdown.tribe-size-small select{width:100px}.tribe-field-dropdown.tribe-size-medium select{width:300px}.tribe-field-dropdown.tribe-size-large select{width:450px}.tribe-field-wrapped_html.tribe-size-large .tribe-field-wrap{max-width:600px}.tribe-field-wrapped_html.tribe-size-large .tribe-field-wrap .description{max-width:100%}.tribe-field-dropdown_chosen.tribe-size-small select{width:100px}.tribe-field-dropdown_chosen.tribe-size-medium select{width:200px}.tribe-field-dropdown_chosen.tribe-size-large select{width:300px}.tribe-field-wrap .tooltip:first-child{font-style:normal}.tribe-field.indent{margin-left:252px;width:75%}.tribe-field.indent legend{font-weight:400;width:auto}.tribe-field.indent .tribe-field-wrap{padding-right:12px}.tribe-field.indent.tribe-field-radio .tribe-field-wrap{clear:left;margin-top:12px}.tribe-field.light-bordered{background-color:#fff;border:1px solid #d3d3d3}.ajax-loading-license,.invalid-key,.valid-key{display:none;margin:0 5px}.ajax-loading-license{position:relative;top:5px}.key-validity{display:inline-block}.invalid-key,.optin-fail{color:red}.optin-success,.valid-key{color:green}.valid-key.service-msg{color:#b72}#additional-field-table{margin-bottom:20px}.tribe-admin-box-left{float:left;width:20%}.tribe-admin-box-left,.tribe-admin-box-right{-khtml-border-radius:4px;background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;margin:20px 0;padding:0 20px 15px}.tribe-admin-box-right{float:right;width:68%}.ajax-loader{float:right;margin:10px}.tribe-arrangeable-item{border:1px solid #d3d3d3;border-radius:3px}.tribe-arrangeable-item .ui-state-default{border:none}.tribe-arrangeable-item-top{padding:6px}.tribe-arrangeable-item-top:hover{cursor:move}.tribe-arrangeable-action{float:right}.tribe-arrangeable-child{background-color:#f9f9f9;border-top:1px solid #d3d3d3;display:none;padding:25px}.tribe-arrangeable-child label{display:block;margin:0 0 7px}.tribe_events_active_filter_type_options{margin:10px 0}.tribe_events_active_filter_type_options label{margin:7px 0}.tribe-settings-form .tribe-settings-form-wrap fieldset .tribe-style-selection{margin-bottom:18px}#event_organizer td small,.OrganizerInfo td small{display:block;margin:0;max-width:250px}#event_organizer .organizer-email,.OrganizerInfo .organizer-email{vertical-align:top}.tribe-table-field-label{max-width:100%;width:200px}#tribe-help-general,#tribe-help-sidebar{float:left;margin-top:20px}#tribe-help-general p{margin-left:15px}#tribe-help-general ul{list-style-type:square}#tribe-help-general ol,#tribe-help-general ul{margin-bottom:20px;margin-left:35px}#tribe-help-general h3{background-color:#f9f9f9;margin-bottom:10px;padding:6px 0 6px 12px}#tribe-help-general h3~h3{margin-top:2.25em}#tribe-help-general h3+p{margin:0 0 20px;padding-left:12px}#tribe-help-general{width:65%}.tribe-help-section{padding-bottom:10px}.tribe-section-type-box{-khtml-border-radius:4px;background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;padding:8px 20px 12px}.tribe-section-type-box img{height:auto;margin:10px 0;max-width:300px}.tribe-section-type-box ul{list-style:disc;margin-left:20px}.tribe-section-type-box ul ul{list-style:circle}#tribe-log-controls{padding-bottom:16px;padding-bottom:1rem;padding-left:12px}#tribe-log-controls>div{display:inline-block;padding-right:16px;padding-right:1rem}#tribe-log-controls .working{opacity:1;transition:opacity .2s}#tribe-log-controls .working.hidden{opacity:0;transition:opacity .2s}#tribe-log-viewer,#tribe-system-info dl.support-stats,.template-updates-wrapper{background:#000;border-radius:2px;color:#888;max-height:400px;overflow:scroll;padding:10px}#tribe-system-info dl.support-stats dt,.template-updates-wrapper dt{clear:both;float:left;font-weight:700;text-transform:uppercase;width:25%}#tribe-system-info dl.support-stats dd,.template-updates-wrapper dd{margin-left:25%;padding-left:10px}.system-info-copy .system-info-copy-btn{padding:6px}.system-info-copy .system-info-copy-btn .dashicons{padding-right:10px}.template-updates-wrapper p{margin-top:0}#tribe-help-sidebar{margin:20px 0 0 3%;max-width:225px;width:32%}.tribe-help-plugin-info{border:1px solid #ccc;padding:0 12px 12px}.tribe-help-plugin-info dd,.tribe-help-plugin-info dt{display:inline;margin:0}.tribe-help-plugin-info dt{font-weight:700}.tribe-help-plugin-info dd:after{content:"";display:block;height:.4em}.tribe-help-plugin-info dd:last-child:after{height:0}.tribe-help-plugin-info+.tribe-help-plugin-info{margin-top:20px}.tribe-help-plugin-info>div{line-height:2em}.tribe-help-plugin-info .star-rating{display:inline-block;margin-left:3px;position:relative;top:-2px}.tribe-help-plugin-info .tribe-list-addons{color:#21a6cb;font-size:24px;list-style:circle inside;margin-bottom:10px;margin-top:10px;padding-left:4px}.tribe-help-plugin-info .tribe-list-addons a{font-size:13px;left:-5px;position:relative;top:-5px}.tribe-help-plugin-info .tribe-list-addons .tribe-active-addon{list-style:disc inside}.ui-widget-overlay{background:#666;filter:Alpha(Opacity=50);opacity:.5}.ui-widget-shadow{background:#000;-webkit-border-radius:5px;-moz-border-radius:5px;filter:Alpha(Opacity=20);margin:-5px 0 0 -5px;opacity:.2;padding:5px}.ui-resizable{position:relative}.ui-resizable-handle{display:block;font-size:.1px;position:absolute;z-index:99999}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;left:0;top:-5px;width:100%}.ui-resizable-s{bottom:-5px;cursor:s-resize;height:7px;left:0;width:100%}.ui-resizable-e{cursor:e-resize;height:100%;right:-5px;top:0;width:7px}.ui-resizable-w{cursor:w-resize;height:100%;left:-5px;top:0;width:7px}.ui-resizable-se{bottom:1px;cursor:se-resize;height:12px;right:1px;width:12px}.ui-resizable-sw{bottom:-5px;cursor:sw-resize;height:9px;left:-5px;width:9px}.ui-resizable-nw{cursor:nw-resize;height:9px;left:-5px;top:-5px;width:9px}.ui-resizable-ne{cursor:ne-resize;height:9px;right:-5px;top:-5px;width:9px}.ui-dialog{padding:.2em;position:relative;width:375px}.ui-dialog .ui-dialog-titlebar{padding:.5em .3em .3em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0 .2em}.ui-dialog .ui-dialog-titlebar-close{height:18px;margin:-10px 0 0;padding:1px;position:absolute;right:.3em;top:50%;width:19px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin-left:-8px;margin-top:-8px}.ui-dialog .ui-dialog-titlebar-close:focus,.ui-dialog .ui-dialog-titlebar-close:hover{padding:0}.ui-dialog .ui-dialog-content{background:none;border:0;overflow:auto;padding:.5em 1em;zoom:1}.ui-dialog .ui-dialog-buttonpane{background-image:none;border-width:1px 0 0;margin:.5em 0 0;padding:.3em 1em .5em!important;text-align:right}.ui-dialog .ui-dialog-buttonpane button{cursor:pointer;line-height:1.4em;margin:.5em .4em!important;overflow:visible;padding:.2em .6em .3em;text-shadow:none;width:auto}.ui-dialog .ui-resizable-se{bottom:3px;height:14px;right:3px;width:14px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:none!important;text-align:center}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button .ui-button-text{display:block;line-height:1.4}#ui-datepicker-div{display:none}#tribe-loading{background:#fff;background:hsla(0,0%,100%,.8);display:none;height:100%;left:0;position:absolute;top:0;transition:all 1s linear;webkit-transition:all 1s linear;width:100%;z-index:4}#tribe-loading span{background:url(../images/tribe-loading.gif) 0 0 no-repeat;background-size:32px 32px;height:32px;left:50%;margin:-16px 0 0 -16px;position:absolute;top:50%;width:32px}.tribe_update_page,.tribe_welcome_page{max-width:1000px}.tribe-half-column{float:left;margin-bottom:30px;margin-right:5%;width:45%}.tribe-row:after,.tribe-row:before{content:"";display:table}.tribe-row,.tribe-row:after{clear:both}.tribe-row .tribe-half-column:last-child{margin-right:0;width:50%}.tribe_update_page h2,.tribe_welcome_page h2{font-size:30px;line-height:1.2;margin-bottom:20px}.tribe_update_page h3,.tribe_welcome_page h3{font-size:24px;font-weight:400;line-height:24px;margin-top:0}.tribe_update_page h4,.tribe_welcome_page h4{font-size:18px;font-weight:600;line-height:18px;margin:0}.tribe_update_page p,.tribe_welcome_page p{font-size:14px}p.tribe-welcome-message{font-size:20px;font-weight:400}.tribe_update_page h2:before,.tribe_welcome_page h2:before{content:"\f145";font-family:dashicons;font-size:34px;line-height:1;margin-right:5px;position:relative;top:5px}.tribe-welcome-video-wrapper{height:0;margin-bottom:40px;padding-bottom:56.25%;padding-top:25px;position:relative}.tribe-welcome-video-wrapper iframe{height:100%;left:0;position:absolute;top:0;width:100%}a.tribe-rating-link{text-decoration:none}.tribe-update-links,.tribe-welcome-links{margin-top:30px}.tribe_update_page li:before,.tribe_welcome_page li:before{content:"\2022";padding-right:3px}.tribe_update_page .rss-widget{margin:1em 0}.tribe_update_page a.rsswidget{font-size:14px;font-weight:400;line-height:1}.tribe_update_page .rss-widget li:before{display:none}.tribe-update-bar{display:inline-block}.tribe-update-bar .progress{border:1px solid #ccc;float:left;margin-right:16px;margin-right:1rem;padding:1px;width:288px;width:18rem}.tribe-update-bar .progress .bar{background:#ffba00;height:16px;height:1rem;width:1%;background:#7ad03a}#tribe-dialog-wrapper>div{padding:16px;padding:1rem}#tribe-dialog-wrapper>div .stage{display:none}#tribe-dialog-wrapper #heading{background:#fff}#tribe-dialog-wrapper label{display:block}#tribe-dialog-wrapper .select-single-container{border:1px solid #888;overflow-y:scroll;height:300px}#tribe-dialog-wrapper .select-single-container label{opacity:1;padding:3px 5px;transition:opacity .2s}#tribe-dialog-wrapper .select-single-container label:nth-child(odd){background:#fff}#tribe-dialog-wrapper .select-single-container label.selected{background:#0073aa;color:#fff;font-weight:700}#tribe-dialog-wrapper .select-single-container label input{display:none}#tribe-dialog-wrapper .select-single-container.updating label{opacity:.35;transition:opacity .2s}.ui-front{z-index:1000000}.select2-container .select2-choice abbr{top:6px}.wp-list-table.plugins .column-description .update-message{color:#d54e21}.api-check{padding:1em}.api-check+.notice-dismiss:hover:before{color:#fff}.api-check:after,.api-check:before{content:"";display:table}.api-check:after{clear:both}.api-check .tribe-mascot{bottom:0;display:none;padding:16px;padding:1rem;position:absolute;right:0;top:0;width:125px}.api-check .tribe-mascot:before{content:"";display:inline-block;height:100%;width:1%;vertical-align:middle}.api-check .tribe-mascot img{display:inline-block;max-height:100%;max-width:96%;vertical-align:middle}.api-check p{line-height:1.7;margin-bottom:1em}.api-check a{text-decoration:none}.api-check a:hover{text-decoration:underline}.api-check .plugin-list{display:inline;font-weight:600;margin:0;padding:0}.api-check .plugin-list span.plugin-invalid:after{content:", "}.api-check .plugin-list span.plugin-invalid:last-of-type:after{content:""}.tribe-marketing-notice{padding:1em}.tribe-marketing-notice+.notice-dismiss:hover:before{color:#fff}.tribe-marketing-notice:after,.tribe-marketing-notice:before{content:"";display:table}.tribe-marketing-notice:after{clear:both}.tribe-marketing-notice .tribe-notice-icon{bottom:0;display:none;padding:16px;padding:1rem;position:absolute;left:0;top:0;width:125px}.tribe-marketing-notice .tribe-notice-icon:before{content:"";display:inline-block;height:100%;width:1%;vertical-align:middle}.tribe-marketing-notice .tribe-notice-icon img{display:inline-block;max-height:100%;max-width:96%;vertical-align:middle}.tribe-marketing-notice h3{margin-bottom:.5em;margin-top:.5em}.tribe-marketing-notice p{line-height:1.7;margin-bottom:.5em}.tribe-marketing-notice a{text-decoration:none}.tribe-marketing-notice a:hover{text-decoration:underline}.tribe-marketing-notice.tribe-bf-2018-tec .button.button-primary{margin:10px 10px 0 0}.tribe-dropdown,.tribe-ea-dropdown{max-width:100%;width:auto}.tribe-dropdown.select2-container-active .select2-choice,.tribe-ea-dropdown.select2-container-active .select2-choice{border-color:#5897fb;box-shadow:0 0 5px rgba(0,0,0,.1)}.tribe-dropdown.select2-dropdown-open .select2-choice,.tribe-ea-dropdown.select2-dropdown-open .select2-choice{border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:#aaa}.tribe-dropdown .select2-choice,.tribe-ea-dropdown .select2-choice{background-image:none;border-radius:3px;border:1px solid #ccc}.tribe-dropdown .select2-choice>.select2-chosen,.tribe-ea-dropdown .select2-choice>.select2-chosen{white-space:normal}.tribe-dropdown .select2-choice .select2-arrow,.tribe-ea-dropdown .select2-choice .select2-arrow{background-image:none;background:transparent;border-left:0}.tribe-dropdown .select2-choice div,.tribe-ea-dropdown .select2-choice div{background-image:none;background:none;border-left:0}.tribe-dropdown.select2-container-multi .select2-choices,.tribe-ea-dropdown.select2-container-multi .select2-choices{background-image:none;border-radius:3px;border:1px solid #ccc;min-height:25px}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-field,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-field{line-height:25px}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-field input,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-field input{padding-top:0;padding-bottom:0}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice{margin-top:2px;padding-top:0;padding-bottom:0;line-height:19px}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice div,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice div{line-height:inherit}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice-close,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice-close{top:3px;left:4px;transition-property:border,color}.select2-results .select2-selected{display:block}.select2-results .select2-selected>.select2-result-label{background-color:#efefef;color:#a1a1a1;cursor:default}.select2-results li.select2-result-with-children>.select2-result-label{font-weight:400}.select2-results li.select2-result-with-children.select2-selected,.select2-results li.select2-result-with-children.select2-selected .select2-result{display:block}.select2-results li.select2-result-with-children.select2-selected>.select2-result-label{background-color:#efefef;color:#a1a1a1;cursor:default}.select2-results li.select2-result-with-children.select2-result-unselectable>.select2-result-label{color:#939393;font-weight:400}.wp-core-ui .button-red{-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5);background-color:#a00;border-bottom-color:#8d1f21;border-color:#9b2124;box-shadow:inset 0 1px 0 rgba(120,200,230,.5);color:#fff;text-decoration:none;text-shadow:0 1px 0 rgba(0,0,0,.1)}.wp-core-ui .button-red.focus,.wp-core-ui .button-red.hover,.wp-core-ui .button-red:focus,.wp-core-ui .button-red:hover{-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);background-color:#a00;border-color:#7f1c1f;box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.3)}.wp-core-ui .button-red.focus,.wp-core-ui .button-red:focus{-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4);border-color:#500f0e;box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4)}.wp-core-ui .button-red.active,.wp-core-ui .button-red.active:focus,.wp-core-ui .button-red.active:hover,.wp-core-ui .button-red:active{-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);background:#7f1c1f;border-color:#601312 #ae2426 #ae2426;box-shadow:inset 0 1px 0 rgba(0,0,0,.1);color:hsla(0,0%,100%,.95);text-shadow:0 1px 0 rgba(0,0,0,.1)}.wp-core-ui .button-red-disabled,.wp-core-ui .button-red:disabled,.wp-core-ui .button-red[disabled]{color:#e79496!important;background:#ba292b!important;border-color:#7f1c1f!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.ticket_form .select2-container .select2-choice .select2-arrow{display:none}.clear{zoom:1}.clear:after,.clear:before{content:" ";display:table}.clear:after{clear:both}.checkmark:after{content:"";display:block;width:8px;height:15px;border:solid #0ab152;border-width:0 3px 3px 0;transform:rotate(45deg)}.checkmark.checkmark-right:after{float:right;margin-right:2em}.checkmark.checkmark-left:after{float:left;margin-left:2em}.checkmark.no-checkmark:after{display:none}.complete,.ok,.on,.yes,[data-status=complete],[data-status=ok],[data-status=on],[data-status=yes]{color:#0ab152}.incomplete,.ko,.no,.off,[data-status=incomplete],[data-status=ko],[data-status=no],[data-status=off]{color:#ff2500}.plugin-card-event-tickets-plus .column-downloaded,.plugin-card-event-tickets-plus .column-rating,.plugin-card-event-tickets-plus .column-updated,.plugin-card-event-tickets .column-downloaded,.plugin-card-event-tickets .column-rating,.plugin-card-event-tickets .column-updated,.plugin-card-events-calendar-pro .column-downloaded,.plugin-card-events-calendar-pro .column-rating,.plugin-card-events-calendar-pro .column-updated,.plugin-card-events-community-tickets .column-downloaded,.plugin-card-events-community-tickets .column-rating,.plugin-card-events-community-tickets .column-updated,.plugin-card-events-community .column-downloaded,.plugin-card-events-community .column-rating,.plugin-card-events-community .column-updated,.plugin-card-image-widget-plus .column-downloaded,.plugin-card-image-widget-plus .column-rating,.plugin-card-image-widget-plus .column-updated,.plugin-card-image-widget .column-downloaded,.plugin-card-image-widget .column-rating,.plugin-card-image-widget .column-updated,.plugin-card-the-events-calendar .column-downloaded,.plugin-card-the-events-calendar .column-rating,.plugin-card-the-events-calendar .column-updated,.plugin-card-tribe-eventbrite .column-downloaded,.plugin-card-tribe-eventbrite .column-rating,.plugin-card-tribe-eventbrite .column-updated,.plugin-card-tribe-filterbar .column-downloaded,.plugin-card-tribe-filterbar .column-rating,.plugin-card-tribe-filterbar .column-updated{display:none}@media only screen and (-o-min-device-pixel-ratio:2/1),only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2){#tribe-loading span{background-image:url(../images/tribe-loading@2x.gif)}}@media screen and (max-width:782px){.tribe-half-column,.tribe-row .tribe-half-column:last-child{margin:0 0 20px;width:100%}input[type=email]{width:100%}}@media screen and (max-width:782px){.events-cal .subsubsub{float:none}.events-cal .search-box{width:98%}.events-cal #search-submit{width:100%}.events-cal .tablenav.top{display:none}}@media screen and (min-width:500px){.api-check .tribe-mascot{display:block}.api-check .notice-content{margin-right:180px}}@media screen and (min-width:600px) and (max-width:782px){.tribe-marketing-notice .tribe-notice-icon{width:135px}.tribe-marketing-notice .tribe-notice-content{margin-left:145px}}@media screen and (min-width:600px){.tribe-marketing-notice .tribe-notice-icon{display:block}}@media screen and (min-width:782px){.tribe-marketing-notice .tribe-notice-content{margin-left:130px}}@media screen and (max-width:956px){.tribe-marketing-notice.tribe-bf-2018-tec .button.button-primary{margin:0 0 10px}.tribe-marketing-notice.tribe-bf-2018-tec em{clear:both;display:block}}
|
1 |
+
.invalid input{border:2px solid red!important}.valid input{border:1px solid green}.clearfix{zoom:1}.placeholder{color:#999;cursor:text;padding:4px}input:placeholder,textarea:placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.bubble{-khtml-border-radius:3px;background-color:#f9f9f9;border:1px solid #dfdfdf;border-radius:3px;border-spacing:0;border-style:solid;padding:10px}.tribe-sticky-tooltip{color:#bbb}td.tribe_message{padding-bottom:10px!important}#tribe_thanks{float:left;margin:5px 0 0;width:200px}.tribe_brand{font-family:Georgia!important;font-size:17px!important;font-weight:400;margin:8px 0}#tribe-upgrade{background:#f6f6f6;border:1px solid #ccc;border-radius:5px;margin:20px 0 30px;padding:0 20px 20px}#tribe-upgrade .message{background-color:#ffffe0;border:1px solid #e6db55;border-radius:3px;padding:6px 12px}table.plugins .tribe-plugin-update-message{background:#d54e21;color:#fff;display:inline-table;margin:6px 0;padding:10px 12px}table.plugins .tribe-plugin-update-message h4{display:inline;font-weight:700;margin-right:8px}table.plugins .tribe-plugin-update-message h4:after{content:" \00BB "}table.plugins .tribe-plugin-update-message a{color:#fff;text-decoration:underline}.tribe-settings-form{max-width:1000px}.tribe-settings-form fieldset{clear:both;display:inline-block;padding:10px 0}.tribe-settings-form legend{float:left;font-weight:700;margin-right:20px;width:220px}.tribe-settings-form fieldset.tribe-field-license_key legend{width:auto}.tribe-settings-form .tribe-field-wrap{float:left;max-width:500px}.tribe-settings-form .tribe-field-wrap :first-child{margin-top:0}.tribe-settings-form .tribe-field-checkbox_list label,.tribe-settings-form .tribe-field-radio label{display:block;margin:5px 0 5px 20px;text-indent:-20px}.tribe-settings-form .tribe-field-checkbox_list label input,.tribe-settings-form .tribe-field-radio label input{margin-right:5px}.tribe-settings-form .tribe-settings-form-wrap .description,.tribe-settings-form .tribe-settings-form-wrap fieldset,.tribe-settings-form fieldset[id^=tribe-field-geoloc_]{padding-left:12px}.tribe-settings-form .tribe-settings-form-wrap fieldset .description{margin-left:0;max-width:450px;padding-left:0}.tribe-settings-form .tribe-settings-form-wrap h3{background-color:#f9f9f9;margin-bottom:10px;padding:6px 0 6px 12px}.tribe-settings-form .tribe-settings-form-wrap .contained,.tribe-settings-form .tribe-settings-form-wrap .system-info,.tribe-settings-form .tribe-settings-form-wrap .tribe-sysinfo-optin-msg,.tribe-settings-form .tribe-settings-form-wrap h3+p{margin:0 0 10px;padding-left:12px}.tribe_settings .tribe-field-indent{margin-left:245px}.tribe_settings #pu_dashboard_message{display:none}.tribe_settings .tribe-errors-list{margin-left:15px}.tribe_settings .expiring-license{color:red}.tribe_settings .tribe-error{border:1px solid red}.tribe_settings .tribe-field-description{margin-bottom:0;position:relative;top:-12px}.tribe_settings #ical-link{top:-14px}.tribe-settings-form #tribe-field-stylesheetOption label{margin-left:20px}.tribe-settings-form #tribe-field-stylesheetOption input{margin-left:-20px;margin-right:8px}.tribe-settings-form #tribe-field-stylesheetOption p.description{color:#999}#modern-tribe-info{-khtml-border-radius:4px;background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;margin:20px 0;padding:8px 20px 12px}#modern-tribe-info img{height:18px;margin:10px 0;width:250px}#modern-tribe-info ul{list-style:disc;margin-left:20px}#modern-tribe-info ul ul{list-style:circle}.tribe-field-inline-dropdown{margin-left:0;margin-right:0}.tribe-field-inline-text{line-height:28px;margin:0 2px}.tribe-field-textarea.tribe-size-small textarea{height:60px;width:180px}.tribe-field-textarea.tribe-size-medium textarea{height:80px;width:300px}.tribe-field-textarea.tribe-size-large textarea{height:120px;width:450px}.tribe-field-email.tribe-size-small input,.tribe-field-license_key.tribe-size-small input,.tribe-field-text.tribe-size-small input{width:50px}.tribe-field-email.tribe-size-medium input,.tribe-field-license_key.tribe-size-medium input,.tribe-field-text.tribe-size-medium input{width:225px}.tribe-field-email.tribe-size-large input,.tribe-field-license_key.tribe-size-large input,.tribe-field-text.tribe-size-large input{width:450px}.tribe-field-dropdown.tribe-size-small select{width:100px}.tribe-field-dropdown.tribe-size-medium select{width:300px}.tribe-field-dropdown.tribe-size-large select{width:450px}.tribe-field-wrapped_html.tribe-size-large .tribe-field-wrap{max-width:600px}.tribe-field-wrapped_html.tribe-size-large .tribe-field-wrap .description{max-width:100%}.tribe-field-dropdown_chosen.tribe-size-small select{width:100px}.tribe-field-dropdown_chosen.tribe-size-medium select{width:200px}.tribe-field-dropdown_chosen.tribe-size-large select{width:300px}.tribe-field-wrap .tooltip:first-child{font-style:normal}.tribe-field.indent{margin-left:252px;width:75%}.tribe-field.indent legend{font-weight:400;width:auto}.tribe-field.indent .tribe-field-wrap{padding-right:12px}.tribe-field.indent.tribe-field-radio .tribe-field-wrap{clear:left;margin-top:12px}.tribe-field.light-bordered{background-color:#fff;border:1px solid #d3d3d3}.ajax-loading-license,.invalid-key,.valid-key{display:none;margin:0 5px}.ajax-loading-license{position:relative;top:5px}.key-validity{display:inline-block}.invalid-key,.optin-fail{color:red}.optin-success,.valid-key{color:green}.valid-key.service-msg{color:#b72}#additional-field-table{margin-bottom:20px}.tribe-admin-box-left{float:left;width:20%}.tribe-admin-box-left,.tribe-admin-box-right{-khtml-border-radius:4px;background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;margin:20px 0;padding:0 20px 15px}.tribe-admin-box-right{float:right;width:68%}.ajax-loader{float:right;margin:10px}.tribe-arrangeable-item{border:1px solid #d3d3d3;border-radius:3px}.tribe-arrangeable-item .ui-state-default{border:none}.tribe-arrangeable-item-top{padding:6px}.tribe-arrangeable-item-top:hover{cursor:move}.tribe-arrangeable-action{float:right}.tribe-arrangeable-child{background-color:#f9f9f9;border-top:1px solid #d3d3d3;display:none;padding:25px}.tribe-arrangeable-child label{display:block;margin:0 0 7px}.tribe_events_active_filter_type_options{margin:10px 0}.tribe_events_active_filter_type_options label{margin:7px 0}.tribe-settings-form .tribe-settings-form-wrap fieldset .tribe-style-selection{margin-bottom:18px}#event_organizer td small,.OrganizerInfo td small{display:block;margin:0;max-width:250px}#event_organizer .organizer-email,.OrganizerInfo .organizer-email{vertical-align:top}.tribe-table-field-label{max-width:100%;width:200px}#tribe-help-general,#tribe-help-sidebar{float:left;margin-top:20px}#tribe-help-general p{margin-left:15px}#tribe-help-general ul{list-style-type:square}#tribe-help-general ol,#tribe-help-general ul{margin-bottom:20px;margin-left:35px}#tribe-help-general h3{background-color:#f9f9f9;margin-bottom:10px;padding:6px 0 6px 12px}#tribe-help-general h3~h3{margin-top:2.25em}#tribe-help-general h3+p{margin:0 0 20px;padding-left:12px}#tribe-help-general{width:65%}.tribe-help-section{padding-bottom:10px}.tribe-section-type-box{-khtml-border-radius:4px;background-color:#f9f9f9;border:1px solid #ccc;border-radius:4px;padding:8px 20px 12px}.tribe-section-type-box img{height:auto;margin:10px 0;max-width:300px}.tribe-section-type-box ul{list-style:disc;margin-left:20px}.tribe-section-type-box ul ul{list-style:circle}#tribe-log-controls{padding-bottom:1rem;padding-left:12px}#tribe-log-controls>div{display:inline-block;padding-right:1rem}#tribe-log-controls .working{opacity:1;transition:opacity .2s}#tribe-log-controls .working.hidden{opacity:0;transition:opacity .2s}#tribe-log-viewer,#tribe-system-info dl.support-stats,.template-updates-wrapper{background:#000;border-radius:2px;color:#888;max-height:400px;overflow:scroll;padding:10px}#tribe-system-info dl.support-stats dt,.template-updates-wrapper dt{clear:both;float:left;font-weight:700;text-transform:uppercase;width:25%}#tribe-system-info dl.support-stats dd,.template-updates-wrapper dd{margin-left:25%;padding-left:10px}.system-info-copy .system-info-copy-btn{padding:6px}.system-info-copy .system-info-copy-btn .dashicons{padding-right:10px}.template-updates-wrapper p{margin-top:0}#tribe-help-sidebar{margin:20px 0 0 3%;max-width:225px;width:32%}.tribe-help-plugin-info{border:1px solid #ccc;padding:0 12px 12px}.tribe-help-plugin-info dd,.tribe-help-plugin-info dt{display:inline;margin:0}.tribe-help-plugin-info dt{font-weight:700}.tribe-help-plugin-info dd:after{content:"";display:block;height:.4em}.tribe-help-plugin-info dd:last-child:after{height:0}.tribe-help-plugin-info+.tribe-help-plugin-info{margin-top:20px}.tribe-help-plugin-info>div{line-height:2em}.tribe-help-plugin-info .star-rating{display:inline-block;margin-left:3px;position:relative;top:-2px}.tribe-help-plugin-info .tribe-list-addons{color:#21a6cb;font-size:24px;list-style:circle inside;margin-bottom:10px;margin-top:10px;padding-left:4px}.tribe-help-plugin-info .tribe-list-addons a{font-size:13px;left:-5px;position:relative;top:-5px}.tribe-help-plugin-info .tribe-list-addons .tribe-active-addon{list-style:disc inside}.ui-widget-overlay{background:#666;filter:Alpha(Opacity=50);opacity:.5}.ui-widget-shadow{background:#000;-webkit-border-radius:5px;-moz-border-radius:5px;filter:Alpha(Opacity=20);margin:-5px 0 0 -5px;opacity:.2;padding:5px}.ui-resizable{position:relative}.ui-resizable-handle{display:block;font-size:.1px;position:absolute;z-index:99999}.ui-resizable-autohide .ui-resizable-handle,.ui-resizable-disabled .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;left:0;top:-5px;width:100%}.ui-resizable-s{bottom:-5px;cursor:s-resize;height:7px;left:0;width:100%}.ui-resizable-e{cursor:e-resize;height:100%;right:-5px;top:0;width:7px}.ui-resizable-w{cursor:w-resize;height:100%;left:-5px;top:0;width:7px}.ui-resizable-se{bottom:1px;cursor:se-resize;height:12px;right:1px;width:12px}.ui-resizable-sw{bottom:-5px;cursor:sw-resize;height:9px;left:-5px;width:9px}.ui-resizable-nw{cursor:nw-resize;height:9px;left:-5px;top:-5px;width:9px}.ui-resizable-ne{cursor:ne-resize;height:9px;right:-5px;top:-5px;width:9px}.ui-dialog{padding:.2em;position:relative;width:375px}.ui-dialog .ui-dialog-titlebar{padding:.5em .3em .3em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0 .2em}.ui-dialog .ui-dialog-titlebar-close{height:18px;margin:-10px 0 0;padding:1px;position:absolute;right:.3em;top:50%;width:19px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin-left:-8px;margin-top:-8px}.ui-dialog .ui-dialog-titlebar-close:focus,.ui-dialog .ui-dialog-titlebar-close:hover{padding:0}.ui-dialog .ui-dialog-content{background:none;border:0;overflow:auto;padding:.5em 1em;zoom:1}.ui-dialog .ui-dialog-buttonpane{background-image:none;border-width:1px 0 0;margin:.5em 0 0;padding:.3em 1em .5em!important;text-align:right}.ui-dialog .ui-dialog-buttonpane button{cursor:pointer;line-height:1.4em;margin:.5em .4em!important;overflow:visible;padding:.2em .6em .3em;text-shadow:none;width:auto}.ui-dialog .ui-resizable-se{bottom:3px;height:14px;right:3px;width:14px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:none!important;text-align:center}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button .ui-button-text{display:block;line-height:1.4}#ui-datepicker-div{display:none}#tribe-loading{background:#fff;background:hsla(0,0%,100%,.8);display:none;height:100%;left:0;position:absolute;top:0;transition:all 1s linear;webkit-transition:all 1s linear;width:100%;z-index:4}#tribe-loading span{background:url(../images/tribe-loading.gif) 0 0 no-repeat;background-size:32px 32px;height:32px;left:50%;margin:-16px 0 0 -16px;position:absolute;top:50%;width:32px}.tribe_update_page,.tribe_welcome_page{max-width:1000px}.tribe-half-column{float:left;margin-bottom:30px;margin-right:5%;width:45%}.tribe-row:after,.tribe-row:before{content:"";display:table}.tribe-row,.tribe-row:after{clear:both}.tribe-row .tribe-half-column:last-child{margin-right:0;width:50%}.tribe_update_page h2,.tribe_welcome_page h2{font-size:30px;line-height:1.2;margin-bottom:20px}.tribe_update_page h3,.tribe_welcome_page h3{font-size:24px;font-weight:400;line-height:24px;margin-top:0}.tribe_update_page h4,.tribe_welcome_page h4{font-size:18px;font-weight:600;line-height:18px;margin:0}.tribe_update_page p,.tribe_welcome_page p{font-size:14px}p.tribe-welcome-message{font-size:20px;font-weight:400}.tribe_update_page h2:before,.tribe_welcome_page h2:before{content:"\f145";font-family:dashicons;font-size:34px;line-height:1;margin-right:5px;position:relative;top:5px}.tribe-welcome-video-wrapper{height:0;margin-bottom:40px;padding-bottom:56.25%;padding-top:25px;position:relative}.tribe-welcome-video-wrapper iframe{height:100%;left:0;position:absolute;top:0;width:100%}a.tribe-rating-link{text-decoration:none}.tribe-update-links,.tribe-welcome-links{margin-top:30px}.tribe_update_page li:before,.tribe_welcome_page li:before{content:"\2022";padding-right:3px}.tribe_update_page .rss-widget{margin:1em 0}.tribe_update_page a.rsswidget{font-size:14px;font-weight:400;line-height:1}.tribe_update_page .rss-widget li:before{display:none}.tribe-update-bar{display:inline-block}.tribe-update-bar .progress{border:1px solid #ccc;float:left;margin-right:1rem;padding:1px;width:18rem}.tribe-update-bar .progress .bar{background:#ffba00;height:1rem;width:1%;background:#7ad03a}#tribe-dialog-wrapper>div{padding:1rem}#tribe-dialog-wrapper>div .stage{display:none}#tribe-dialog-wrapper #heading{background:#fff}#tribe-dialog-wrapper label{display:block}#tribe-dialog-wrapper .select-single-container{border:1px solid #888;overflow-y:scroll;height:300px}#tribe-dialog-wrapper .select-single-container label{opacity:1;padding:3px 5px;transition:opacity .2s}#tribe-dialog-wrapper .select-single-container label:nth-child(odd){background:#fff}#tribe-dialog-wrapper .select-single-container label.selected{background:#0073aa;color:#fff;font-weight:700}#tribe-dialog-wrapper .select-single-container label input{display:none}#tribe-dialog-wrapper .select-single-container.updating label{opacity:.35;transition:opacity .2s}.ui-front{z-index:1000000}.select2-container .select2-choice abbr{top:6px}.wp-list-table.plugins .column-description .update-message{color:#d54e21}.api-check{padding:1em}.api-check+.notice-dismiss:hover:before{color:#fff}.api-check:after,.api-check:before{content:"";display:table}.api-check:after{clear:both}.api-check .tribe-mascot{bottom:0;display:none;padding:1rem;position:absolute;right:0;top:0;width:125px}.api-check .tribe-mascot:before{content:"";display:inline-block;height:100%;width:1%;vertical-align:middle}.api-check .tribe-mascot img{display:inline-block;max-height:100%;max-width:96%;vertical-align:middle}.api-check p{line-height:1.7;margin-bottom:1em}.api-check a{text-decoration:none}.api-check a:hover{text-decoration:underline}.api-check .plugin-list{display:inline;font-weight:600;margin:0;padding:0}.api-check .plugin-list span.plugin-invalid:after{content:", "}.api-check .plugin-list span.plugin-invalid:last-of-type:after{content:""}.tribe-marketing-notice{padding:1em}.tribe-marketing-notice+.notice-dismiss:hover:before{color:#fff}.tribe-marketing-notice:after,.tribe-marketing-notice:before{content:"";display:table}.tribe-marketing-notice:after{clear:both}.tribe-marketing-notice .tribe-notice-icon{bottom:0;display:none;padding:1rem;position:absolute;left:0;top:0;width:125px}.tribe-marketing-notice .tribe-notice-icon:before{content:"";display:inline-block;height:100%;width:1%;vertical-align:middle}.tribe-marketing-notice .tribe-notice-icon img{display:inline-block;max-height:100%;max-width:96%;vertical-align:middle}.tribe-marketing-notice h3{margin-bottom:.5em;margin-top:.5em}.tribe-marketing-notice p{line-height:1.7;margin-bottom:.5em}.tribe-marketing-notice a{text-decoration:none}.tribe-marketing-notice a:hover{text-decoration:underline}.tribe-marketing-notice.tribe-bf-2018-tec .button.button-primary{margin:10px 10px 0 0}.tribe-dropdown,.tribe-ea-dropdown{max-width:100%;width:auto}.tribe-dropdown.select2-container-active .select2-choice,.tribe-ea-dropdown.select2-container-active .select2-choice{border-color:#5897fb;box-shadow:0 0 5px rgba(0,0,0,.1)}.tribe-dropdown.select2-dropdown-open .select2-choice,.tribe-ea-dropdown.select2-dropdown-open .select2-choice{border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:#aaa}.tribe-dropdown .select2-choice,.tribe-ea-dropdown .select2-choice{background-image:none;border-radius:3px;border:1px solid #ccc}.tribe-dropdown .select2-choice>.select2-chosen,.tribe-ea-dropdown .select2-choice>.select2-chosen{white-space:normal}.tribe-dropdown .select2-choice .select2-arrow,.tribe-ea-dropdown .select2-choice .select2-arrow{background-image:none;background:transparent;border-left:0}.tribe-dropdown .select2-choice div,.tribe-ea-dropdown .select2-choice div{background-image:none;background:none;border-left:0}.tribe-dropdown.select2-container-multi .select2-choices,.tribe-ea-dropdown.select2-container-multi .select2-choices{background-image:none;border-radius:3px;border:1px solid #ccc;min-height:25px}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-field,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-field{line-height:25px}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-field input,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-field input{padding-top:0;padding-bottom:0}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice{margin-top:2px;padding-top:0;padding-bottom:0;line-height:19px}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice div,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice div{line-height:inherit}.tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice-close,.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice-close{top:3px;left:4px;transition-property:border,color}.select2-results .select2-selected{display:block}.select2-results .select2-selected>.select2-result-label{background-color:#efefef;color:#a1a1a1;cursor:default}.select2-results li.select2-result-with-children>.select2-result-label{font-weight:400}.select2-results li.select2-result-with-children.select2-selected,.select2-results li.select2-result-with-children.select2-selected .select2-result{display:block}.select2-results li.select2-result-with-children.select2-selected>.select2-result-label{background-color:#efefef;color:#a1a1a1;cursor:default}.select2-results li.select2-result-with-children.select2-result-unselectable>.select2-result-label{color:#939393;font-weight:400}.wp-core-ui .button-red{-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.5);background-color:#a00;border-bottom-color:#8d1f21;border-color:#9b2124;box-shadow:inset 0 1px 0 rgba(120,200,230,.5);color:#fff;text-decoration:none;text-shadow:0 1px 0 rgba(0,0,0,.1)}.wp-core-ui .button-red.focus,.wp-core-ui .button-red.hover,.wp-core-ui .button-red:focus,.wp-core-ui .button-red:hover{-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6);background-color:#a00;border-color:#7f1c1f;box-shadow:inset 0 1px 0 rgba(120,200,230,.6);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.3)}.wp-core-ui .button-red.focus,.wp-core-ui .button-red:focus{-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4);border-color:#500f0e;box-shadow:inset 0 1px 0 rgba(120,200,230,.6),1px 1px 2px rgba(0,0,0,.4)}.wp-core-ui .button-red.active,.wp-core-ui .button-red.active:focus,.wp-core-ui .button-red.active:hover,.wp-core-ui .button-red:active{-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);background:#7f1c1f;border-color:#601312 #ae2426 #ae2426;box-shadow:inset 0 1px 0 rgba(0,0,0,.1);color:hsla(0,0%,100%,.95);text-shadow:0 1px 0 rgba(0,0,0,.1)}.wp-core-ui .button-red-disabled,.wp-core-ui .button-red:disabled,.wp-core-ui .button-red[disabled]{color:#e79496!important;background:#ba292b!important;border-color:#7f1c1f!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.ticket_form .select2-container .select2-choice .select2-arrow{display:none}.clear{zoom:1}.clear:after,.clear:before{content:" ";display:table}.clear:after{clear:both}.checkmark:after{content:"";display:block;width:8px;height:15px;border:solid #0ab152;border-width:0 3px 3px 0;transform:rotate(45deg)}.checkmark.checkmark-right:after{float:right;margin-right:2em}.checkmark.checkmark-left:after{float:left;margin-left:2em}.checkmark.no-checkmark:after{display:none}.complete,.ok,.on,.yes,[data-status=complete],[data-status=ok],[data-status=on],[data-status=yes]{color:#0ab152}.incomplete,.ko,.no,.off,[data-status=incomplete],[data-status=ko],[data-status=no],[data-status=off]{color:#ff2500}.plugin-card-event-tickets-plus .column-downloaded,.plugin-card-event-tickets-plus .column-rating,.plugin-card-event-tickets-plus .column-updated,.plugin-card-event-tickets .column-downloaded,.plugin-card-event-tickets .column-rating,.plugin-card-event-tickets .column-updated,.plugin-card-events-calendar-pro .column-downloaded,.plugin-card-events-calendar-pro .column-rating,.plugin-card-events-calendar-pro .column-updated,.plugin-card-events-community-tickets .column-downloaded,.plugin-card-events-community-tickets .column-rating,.plugin-card-events-community-tickets .column-updated,.plugin-card-events-community .column-downloaded,.plugin-card-events-community .column-rating,.plugin-card-events-community .column-updated,.plugin-card-image-widget-plus .column-downloaded,.plugin-card-image-widget-plus .column-rating,.plugin-card-image-widget-plus .column-updated,.plugin-card-image-widget .column-downloaded,.plugin-card-image-widget .column-rating,.plugin-card-image-widget .column-updated,.plugin-card-the-events-calendar .column-downloaded,.plugin-card-the-events-calendar .column-rating,.plugin-card-the-events-calendar .column-updated,.plugin-card-tribe-eventbrite .column-downloaded,.plugin-card-tribe-eventbrite .column-rating,.plugin-card-tribe-eventbrite .column-updated,.plugin-card-tribe-filterbar .column-downloaded,.plugin-card-tribe-filterbar .column-rating,.plugin-card-tribe-filterbar .column-updated{display:none}@media only screen and (-o-min-device-pixel-ratio:2/1),only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2){#tribe-loading span{background-image:url(../images/tribe-loading@2x.gif)}}@media screen and (max-width:782px){.tribe-half-column,.tribe-row .tribe-half-column:last-child{margin:0 0 20px;width:100%}input[type=email]{width:100%}}@media screen and (max-width:782px){.events-cal .subsubsub{float:none}.events-cal .search-box{width:98%}.events-cal #search-submit{width:100%}.events-cal .tablenav.top{display:none}}@media screen and (min-width:500px){.api-check .tribe-mascot{display:block}.api-check .notice-content{margin-right:180px}}@media screen and (min-width:600px) and (max-width:782px){.tribe-marketing-notice .tribe-notice-icon{width:135px}.tribe-marketing-notice .tribe-notice-content{margin-left:145px}}@media screen and (min-width:600px){.tribe-marketing-notice .tribe-notice-icon{display:block}}@media screen and (min-width:782px){.tribe-marketing-notice .tribe-notice-content{margin-left:130px}}@media screen and (max-width:956px){.tribe-marketing-notice.tribe-bf-2018-tec .button.button-primary{margin:0 0 10px}.tribe-marketing-notice.tribe-bf-2018-tec em{clear:both;display:block}}
|
common/src/resources/css/tribe-ui.css
CHANGED
@@ -8,10 +8,16 @@
|
|
8 |
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
*/
|
10 |
|
|
|
|
|
|
|
|
|
|
|
11 |
.tribe-button {
|
12 |
border: 0;
|
13 |
border-radius: 3px;
|
14 |
-
background: #009FF1 linear-gradient( to bottom, #009FF1, #0080DB
|
|
|
15 |
cursor: pointer;
|
16 |
color: #fff;
|
17 |
display: inline-block;
|
@@ -30,5 +36,6 @@
|
|
30 |
.tribe-button:hover,
|
31 |
.tribe-button:active,
|
32 |
.tribe-button:focus {
|
33 |
-
|
34 |
-
|
|
8 |
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
*/
|
10 |
|
11 |
+
:root {
|
12 |
+
--button-light-color: #009FF1;
|
13 |
+
--button-dark-color: #0080DB;
|
14 |
+
}
|
15 |
+
|
16 |
.tribe-button {
|
17 |
border: 0;
|
18 |
border-radius: 3px;
|
19 |
+
background: #009FF1 linear-gradient( to bottom, #009FF1, #0080DB);
|
20 |
+
background: var(--button-light-color) linear-gradient( to bottom, var(--button-light-color), var(--button-dark-color) );
|
21 |
cursor: pointer;
|
22 |
color: #fff;
|
23 |
display: inline-block;
|
36 |
.tribe-button:hover,
|
37 |
.tribe-button:active,
|
38 |
.tribe-button:focus {
|
39 |
+
background: #0080DB;
|
40 |
+
background: var(--button-dark-color);
|
41 |
+
}
|
common/src/resources/css/tribe-ui.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.tribe-button{border:0;border-radius:3px;background:#009ff1 linear-gradient(180deg,#009ff1,#0080db);cursor:pointer;color:#fff;display:inline-block;font-size:14px;font-weight:400;font-family:sans-serif;letter-spacing:1px;line-height:1;height:auto;padding:10px;text-align:center;transition:all .15s ease-in;-webkit-font-smoothing:subpixel-antialiased}.tribe-button:active,.tribe-button:focus,.tribe-button:hover{background:#0080db}
|
1 |
+
:root{--button-light-color:#009ff1;--button-dark-color:#0080db}.tribe-button{border:0;border-radius:3px;background:#009ff1 linear-gradient(180deg,#009ff1,#0080db);background:var(--button-light-color) linear-gradient(180deg,var(--button-light-color),var(--button-dark-color));cursor:pointer;color:#fff;display:inline-block;font-size:14px;font-weight:400;font-family:sans-serif;letter-spacing:1px;line-height:1;height:auto;padding:10px;text-align:center;transition:all .15s ease-in;-webkit-font-smoothing:subpixel-antialiased}.tribe-button:active,.tribe-button:focus,.tribe-button:hover{background:#0080db;background:var(--button-dark-color)}
|
common/src/resources/css/validation.css
CHANGED
@@ -8,15 +8,18 @@
|
|
8 |
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
*/
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
border-color: #dc3232;
|
15 |
}
|
16 |
|
17 |
|
18 |
-
.tribe-validation .tribe-
|
|
|
|
|
|
|
19 |
|
20 |
|
21 |
-
|
22 |
-
|
|
|
|
8 |
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
*/
|
10 |
|
11 |
+
:root {
|
12 |
+
--error-border-color: #dc3232;
|
|
|
|
|
13 |
}
|
14 |
|
15 |
|
16 |
+
.tribe-validation input[type="text"].tribe-validation-error, .tribe-validation input[type="password"].tribe-validation-error, .tribe-validation input[type="checkbox"].tribe-validation-error, .tribe-validation input[type="color"].tribe-validation-error, .tribe-validation input[type="date"].tribe-validation-error, .tribe-validation input[type="datetime"].tribe-validation-error, .tribe-validation input[type="datetime-local"].tribe-validation-error, .tribe-validation input[type="email"].tribe-validation-error, .tribe-validation input[type="month"].tribe-validation-error, .tribe-validation input[type="number"].tribe-validation-error, .tribe-validation input[type="search"].tribe-validation-error, .tribe-validation input[type="radio"].tribe-validation-error, .tribe-validation input[type="tel"].tribe-validation-error, .tribe-validation input[type="text"].tribe-validation-error, .tribe-validation input[type="time"].tribe-validation-error, .tribe-validation input[type="url"].tribe-validation-error, .tribe-validation input[type="week"].tribe-validation-error, .tribe-validation select.tribe-validation-error, .tribe-validation textarea.tribe-validation-error {
|
17 |
+
border-color: #dc3232;
|
18 |
+
border-color: var(--error-border-color);
|
19 |
+
}
|
20 |
|
21 |
|
22 |
+
.tribe-validation .tribe-dropdown.tribe-validation-error .select2-choice {
|
23 |
+
border-color: #dc3232;
|
24 |
+
border-color: var(--error-border-color);
|
25 |
+
}
|
common/src/resources/css/validation.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.tribe-validation .tribe-dropdown.tribe-validation-error .select2-choice,.tribe-validation input[type=checkbox].tribe-validation-error,.tribe-validation input[type=color].tribe-validation-error,.tribe-validation input[type=date].tribe-validation-error,.tribe-validation input[type=datetime-local].tribe-validation-error,.tribe-validation input[type=datetime].tribe-validation-error,.tribe-validation input[type=email].tribe-validation-error,.tribe-validation input[type=month].tribe-validation-error,.tribe-validation input[type=number].tribe-validation-error,.tribe-validation input[type=password].tribe-validation-error,.tribe-validation input[type=radio].tribe-validation-error,.tribe-validation input[type=search].tribe-validation-error,.tribe-validation input[type=tel].tribe-validation-error,.tribe-validation input[type=text].tribe-validation-error,.tribe-validation input[type=time].tribe-validation-error,.tribe-validation input[type=url].tribe-validation-error,.tribe-validation input[type=week].tribe-validation-error,.tribe-validation select.tribe-validation-error,.tribe-validation textarea.tribe-validation-error{border-color:#dc3232}
|
1 |
+
:root{--error-border-color:#dc3232}.tribe-validation .tribe-dropdown.tribe-validation-error .select2-choice,.tribe-validation input[type=checkbox].tribe-validation-error,.tribe-validation input[type=color].tribe-validation-error,.tribe-validation input[type=date].tribe-validation-error,.tribe-validation input[type=datetime-local].tribe-validation-error,.tribe-validation input[type=datetime].tribe-validation-error,.tribe-validation input[type=email].tribe-validation-error,.tribe-validation input[type=month].tribe-validation-error,.tribe-validation input[type=number].tribe-validation-error,.tribe-validation input[type=password].tribe-validation-error,.tribe-validation input[type=radio].tribe-validation-error,.tribe-validation input[type=search].tribe-validation-error,.tribe-validation input[type=tel].tribe-validation-error,.tribe-validation input[type=text].tribe-validation-error,.tribe-validation input[type=time].tribe-validation-error,.tribe-validation input[type=url].tribe-validation-error,.tribe-validation input[type=week].tribe-validation-error,.tribe-validation select.tribe-validation-error,.tribe-validation textarea.tribe-validation-error{border-color:#dc3232;border-color:var(--error-border-color)}
|
common/src/resources/images/mascot.png
CHANGED
Binary file
|
common/src/resources/js/admin-date-preview.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function(
|
1 |
+
jQuery(document).ready(function(a){a(".live-date-preview").siblings("input").change(function(){var i=a(this),e=i.val(),n=i.siblings(".live-date-preview");n.append("<span class='spinner'></span>"),n.find(".spinner").css("visibility","visible");var t={action:"date_format",date:e};a.post(ajaxurl,t,function(i){i=a("<div/>").html(i).text(),n.html(i)},"text")})});
|
common/src/resources/js/admin-log-controls.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var tribe_logger_admin=tribe_logger_admin||{},tribe_logger_data=tribe_logger_data||{};!function(
|
1 |
+
var tribe_logger_admin=tribe_logger_admin||{},tribe_logger_data=tribe_logger_data||{};!function(n,e){var a=!1,o="",i="",l=!1,t=n("#tribe-log-controls"),d=t.find("select"),g=t.find(".working"),r=n("#tribe-log-viewer"),c=n("a.download_log");function s(e){v(),n.isArray(e.data.entries)&&(r.html(function(e){var t="<table>";for(var r in e){for(var n in t+="<tr>",e[r])t+="<td>"+e[r][n]+"</td>";t+="</tr>"}return t+"</table>"}(e.data.entries)),f())}function f(){var e=c.attr("href"),t=encodeURI(_()),r=e.match(/&log=([a-z0-9\-]+)/i);e=n.isArray(r)&&2===r.length?e.replace(r[0],"&log="+t):e.indexOf("?")?e+"&log="+t:e+"?log="+t,c.attr("href",e)}function u(){v()}function v(){a=!1,d.prop("disabled",!1),g.addClass("hidden")}function _(){return n("#log-selector").find(":selected").attr("name")}function b(){return n("#log-engine").find(":selected").attr("name")}o=_(),i=b(),f(),d.change(function(){var e,t;a||(e=_(),t=b(),e!==o||t!==i?(l=!0,o=e,i=t):l=!1,a=!0,d.prop("disabled",!0),g.removeClass("hidden"),r={action:"tribe_logging_controls",check:tribe_logger_data.check,"log-level":n("#log-level").find(":selected").attr("name"),"log-engine":n("#log-engine").find(":selected").attr("name")},l&&(r["log-view"]=o),n.ajax(ajaxurl,{method:"POST",success:s,error:u,dataType:"json",data:r}));var r})}(jQuery);
|
common/src/resources/js/app-shop.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function(){var
|
1 |
+
jQuery(document).ready(function(){var t=0;jQuery("div.tribe-addon .caption").each(function(){var i=jQuery(this).height();t=t<i?i:t}),jQuery("div.tribe-addon:not(.first) .caption").css("height",t)});
|
common/src/resources/js/app/components.js
CHANGED
@@ -1039,9 +1039,9 @@ module.exports = isObject;
|
|
1039 |
|
1040 |
var global = __webpack_require__(8);
|
1041 |
var core = __webpack_require__(9);
|
1042 |
-
var ctx = __webpack_require__(
|
1043 |
-
var hide = __webpack_require__(
|
1044 |
-
var has = __webpack_require__(
|
1045 |
var PROTOTYPE = 'prototype';
|
1046 |
|
1047 |
var $export = function (type, name, source) {
|
@@ -1105,7 +1105,7 @@ module.exports = $export;
|
|
1105 |
/* 19 */
|
1106 |
/***/ (function(module, exports, __webpack_require__) {
|
1107 |
|
1108 |
-
var Symbol = __webpack_require__(
|
1109 |
getRawTag = __webpack_require__(221),
|
1110 |
objectToString = __webpack_require__(222);
|
1111 |
|
@@ -1311,6 +1311,101 @@ exports.default = function (subClass, superClass) {
|
|
1311 |
|
1312 |
/***/ }),
|
1313 |
/* 28 */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1314 |
/***/ (function(module, exports, __webpack_require__) {
|
1315 |
|
1316 |
var dP = __webpack_require__(21);
|
@@ -1324,12 +1419,12 @@ module.exports = __webpack_require__(22) ? function (object, key, value) {
|
|
1324 |
|
1325 |
|
1326 |
/***/ }),
|
1327 |
-
/*
|
1328 |
/***/ (function(module, exports, __webpack_require__) {
|
1329 |
|
1330 |
var arrayLikeKeys = __webpack_require__(157),
|
1331 |
baseKeys = __webpack_require__(93),
|
1332 |
-
isArrayLike = __webpack_require__(
|
1333 |
|
1334 |
/**
|
1335 |
* Creates an array of the own enumerable property names of `object`.
|
@@ -1367,14 +1462,14 @@ module.exports = keys;
|
|
1367 |
|
1368 |
|
1369 |
/***/ }),
|
1370 |
-
/*
|
1371 |
/***/ (function(module, exports, __webpack_require__) {
|
1372 |
|
1373 |
var baseKeys = __webpack_require__(93),
|
1374 |
-
getTag = __webpack_require__(
|
1375 |
isArguments = __webpack_require__(57),
|
1376 |
isArray = __webpack_require__(5),
|
1377 |
-
isArrayLike = __webpack_require__(
|
1378 |
isBuffer = __webpack_require__(58),
|
1379 |
isPrototype = __webpack_require__(62),
|
1380 |
isTypedArray = __webpack_require__(85);
|
@@ -1450,7 +1545,7 @@ module.exports = isEmpty;
|
|
1450 |
|
1451 |
|
1452 |
/***/ }),
|
1453 |
-
/*
|
1454 |
/***/ (function(module, exports, __webpack_require__) {
|
1455 |
|
1456 |
"use strict";
|
@@ -1477,7 +1572,7 @@ exports.default = function (arr) {
|
|
1477 |
};
|
1478 |
|
1479 |
/***/ }),
|
1480 |
-
/*
|
1481 |
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
1482 |
|
1483 |
"use strict";
|
@@ -1606,7 +1701,7 @@ var DEFAULT_STATE = {
|
|
1606 |
}
|
1607 |
});
|
1608 |
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/toConsumableArray.js
|
1609 |
-
var toConsumableArray = __webpack_require__(
|
1610 |
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
|
1611 |
|
1612 |
// CONCATENATED MODULE: ./src/modules/data/forms/reducers/volatile.js
|
@@ -1671,18 +1766,18 @@ var reducer_byId = function byId() {
|
|
1671 |
volatile: reducers_volatile
|
1672 |
}));
|
1673 |
// EXTERNAL MODULE: ./node_modules/lodash/get.js
|
1674 |
-
var get = __webpack_require__(
|
1675 |
var get_default = /*#__PURE__*/__webpack_require__.n(get);
|
1676 |
|
1677 |
// EXTERNAL MODULE: ./node_modules/lodash/isEmpty.js
|
1678 |
-
var isEmpty = __webpack_require__(
|
1679 |
var isEmpty_default = /*#__PURE__*/__webpack_require__.n(isEmpty);
|
1680 |
|
1681 |
// EXTERNAL MODULE: ./src/modules/store/middlewares/request/index.js + 4 modules
|
1682 |
-
var request = __webpack_require__(
|
1683 |
|
1684 |
// EXTERNAL MODULE: ./node_modules/reselect/lib/index.js
|
1685 |
-
var lib = __webpack_require__(
|
1686 |
|
1687 |
// CONCATENATED MODULE: ./src/modules/data/forms/selectors.js
|
1688 |
/**
|
@@ -1928,8 +2023,8 @@ var actions_maybeRemoveEntry = function maybeRemoveEntry(id) {
|
|
1928 |
|
1929 |
|
1930 |
/***/ }),
|
1931 |
-
/*
|
1932 |
-
/*
|
1933 |
/***/ (function(module, exports) {
|
1934 |
|
1935 |
var hasOwnProperty = {}.hasOwnProperty;
|
@@ -1938,124 +2033,8 @@ module.exports = function (it, key) {
|
|
1938 |
};
|
1939 |
|
1940 |
|
1941 |
-
/***/ }),
|
1942 |
-
/* 35 */
|
1943 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1944 |
-
|
1945 |
-
var baseGet = __webpack_require__(142);
|
1946 |
-
|
1947 |
-
/**
|
1948 |
-
* Gets the value at `path` of `object`. If the resolved value is
|
1949 |
-
* `undefined`, the `defaultValue` is returned in its place.
|
1950 |
-
*
|
1951 |
-
* @static
|
1952 |
-
* @memberOf _
|
1953 |
-
* @since 3.7.0
|
1954 |
-
* @category Object
|
1955 |
-
* @param {Object} object The object to query.
|
1956 |
-
* @param {Array|string} path The path of the property to get.
|
1957 |
-
* @param {*} [defaultValue] The value returned for `undefined` resolved values.
|
1958 |
-
* @returns {*} Returns the resolved value.
|
1959 |
-
* @example
|
1960 |
-
*
|
1961 |
-
* var object = { 'a': [{ 'b': { 'c': 3 } }] };
|
1962 |
-
*
|
1963 |
-
* _.get(object, 'a[0].b.c');
|
1964 |
-
* // => 3
|
1965 |
-
*
|
1966 |
-
* _.get(object, ['a', '0', 'b', 'c']);
|
1967 |
-
* // => 3
|
1968 |
-
*
|
1969 |
-
* _.get(object, 'a.b.c', 'default');
|
1970 |
-
* // => 'default'
|
1971 |
-
*/
|
1972 |
-
function get(object, path, defaultValue) {
|
1973 |
-
var result = object == null ? undefined : baseGet(object, path);
|
1974 |
-
return result === undefined ? defaultValue : result;
|
1975 |
-
}
|
1976 |
-
|
1977 |
-
module.exports = get;
|
1978 |
-
|
1979 |
-
|
1980 |
/***/ }),
|
1981 |
/* 36 */
|
1982 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
1983 |
-
|
1984 |
-
"use strict";
|
1985 |
-
__webpack_require__.r(__webpack_exports__);
|
1986 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "get", function() { return get; });
|
1987 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "google", function() { return google; });
|
1988 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dateSettings", function() { return dateSettings; });
|
1989 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "editor", function() { return editor; });
|
1990 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "editorConstants", function() { return editorConstants; });
|
1991 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapsAPI", function() { return mapsAPI; });
|
1992 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "priceSettings", function() { return priceSettings; });
|
1993 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settings", function() { return settings; });
|
1994 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timezoneHtml", function() { return timezoneHtml; });
|
1995 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "config", function() { return config; });
|
1996 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "adminUrl", function() { return adminUrl; });
|
1997 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tickets", function() { return tickets; });
|
1998 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rest", function() { return rest; });
|
1999 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "restNonce", function() { return restNonce; });
|
2000 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "editorDefaults", function() { return editorDefaults; });
|
2001 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "list", function() { return list; });
|
2002 |
-
/**
|
2003 |
-
* @todo: handle globals in a better way
|
2004 |
-
*/
|
2005 |
-
var get = function get(key, defaultValue) {
|
2006 |
-
return window[key] || defaultValue;
|
2007 |
-
};
|
2008 |
-
var google = function google() {
|
2009 |
-
return get('google');
|
2010 |
-
};
|
2011 |
-
var dateSettings = function dateSettings() {
|
2012 |
-
return get('tribe_date_settings');
|
2013 |
-
};
|
2014 |
-
var editor = function editor() {
|
2015 |
-
return get('tribe_blocks_editor');
|
2016 |
-
};
|
2017 |
-
var editorConstants = function editorConstants() {
|
2018 |
-
return get('tribe_blocks_editor_constants');
|
2019 |
-
};
|
2020 |
-
var mapsAPI = function mapsAPI() {
|
2021 |
-
return get('tribe_blocks_editor_google_maps_api');
|
2022 |
-
};
|
2023 |
-
var priceSettings = function priceSettings() {
|
2024 |
-
return get('tribe_blocks_editor_price_settings');
|
2025 |
-
};
|
2026 |
-
var settings = function settings() {
|
2027 |
-
return get('tribe_blocks_editor_settings');
|
2028 |
-
};
|
2029 |
-
var timezoneHtml = function timezoneHtml() {
|
2030 |
-
return get('tribe_blocks_editor_timezone_html', '');
|
2031 |
-
};
|
2032 |
-
var config = function config() {
|
2033 |
-
return get('tribe_js_config', {});
|
2034 |
-
};
|
2035 |
-
var adminUrl = function adminUrl() {
|
2036 |
-
return config().admin_url || '';
|
2037 |
-
};
|
2038 |
-
var tickets = function tickets() {
|
2039 |
-
return config().tickets || {};
|
2040 |
-
};
|
2041 |
-
var rest = function rest() {
|
2042 |
-
return config().rest || {};
|
2043 |
-
};
|
2044 |
-
var restNonce = function restNonce() {
|
2045 |
-
return rest().nonce || {};
|
2046 |
-
};
|
2047 |
-
var editorDefaults = function editorDefaults() {
|
2048 |
-
return config().editor_defaults || {};
|
2049 |
-
};
|
2050 |
-
var list = function list() {
|
2051 |
-
return {
|
2052 |
-
countries: get('tribe_data_countries'),
|
2053 |
-
us_states: get('tribe_data_us_states')
|
2054 |
-
};
|
2055 |
-
};
|
2056 |
-
|
2057 |
-
/***/ }),
|
2058 |
-
/* 37 */
|
2059 |
/***/ (function(module, exports, __webpack_require__) {
|
2060 |
|
2061 |
var root = __webpack_require__(10);
|
@@ -2067,7 +2046,7 @@ module.exports = Symbol;
|
|
2067 |
|
2068 |
|
2069 |
/***/ }),
|
2070 |
-
/*
|
2071 |
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
2072 |
|
2073 |
"use strict";
|
@@ -2115,7 +2094,7 @@ var isUndefined = __webpack_require__(120);
|
|
2115 |
var isUndefined_default = /*#__PURE__*/__webpack_require__.n(isUndefined);
|
2116 |
|
2117 |
// EXTERNAL MODULE: ./node_modules/lodash/isEmpty.js
|
2118 |
-
var isEmpty = __webpack_require__(
|
2119 |
var isEmpty_default = /*#__PURE__*/__webpack_require__.n(isEmpty);
|
2120 |
|
2121 |
// EXTERNAL MODULE: ./node_modules/querystringify/index.js
|
@@ -2173,7 +2152,7 @@ var inRange = __webpack_require__(201);
|
|
2173 |
var inRange_default = /*#__PURE__*/__webpack_require__.n(inRange);
|
2174 |
|
2175 |
// EXTERNAL MODULE: ./node_modules/lodash/get.js
|
2176 |
-
var get = __webpack_require__(
|
2177 |
var get_default = /*#__PURE__*/__webpack_require__.n(get);
|
2178 |
|
2179 |
// EXTERNAL MODULE: ./node_modules/lodash/noop.js
|
@@ -2184,7 +2163,7 @@ var noop_default = /*#__PURE__*/__webpack_require__.n(noop);
|
|
2184 |
var whatwg_fetch_fetch = __webpack_require__(205);
|
2185 |
|
2186 |
// EXTERNAL MODULE: ./src/modules/utils/globals.js
|
2187 |
-
var globals = __webpack_require__(
|
2188 |
|
2189 |
// CONCATENATED MODULE: ./src/modules/store/middlewares/request/wp-request.js
|
2190 |
|
@@ -2210,7 +2189,7 @@ var _this = undefined;
|
|
2210 |
return function (next) {
|
2211 |
return function () {
|
2212 |
var _ref = asyncToGenerator_default()( /*#__PURE__*/regenerator_default.a.mark(function _callee(action) {
|
2213 |
-
var _action$meta, meta, _meta$path, path, _meta$params, params,
|
2214 |
|
2215 |
return regenerator_default.a.wrap(function _callee$(_context) {
|
2216 |
while (1) {
|
@@ -2230,10 +2209,9 @@ var _this = undefined;
|
|
2230 |
|
2231 |
next(action);
|
2232 |
|
2233 |
-
|
2234 |
-
_rest$url = rest.url, url = _rest$url === undefined ? '' : _rest$url, _rest$nonce = rest.nonce, nonce = _rest$nonce === undefined ? {} : _rest$nonce;
|
2235 |
wpRESTNonce = nonce.wp_rest || '';
|
2236 |
-
namespaces = rest.namespaces || {};
|
2237 |
core = namespaces.core || 'wp/v2';
|
2238 |
BASE = '' + url + core;
|
2239 |
actions = extends_default()({
|
@@ -2244,14 +2222,14 @@ var _this = undefined;
|
|
2244 |
}, get_default()(meta, 'actions', {}));
|
2245 |
|
2246 |
if (!(path === '')) {
|
2247 |
-
_context.next =
|
2248 |
break;
|
2249 |
}
|
2250 |
|
2251 |
actions.none(path);
|
2252 |
return _context.abrupt('return');
|
2253 |
|
2254 |
-
case
|
2255 |
endpoint = BASE + '/' + path;
|
2256 |
|
2257 |
|
@@ -2263,48 +2241,48 @@ var _this = undefined;
|
|
2263 |
}, get_default()(params, 'headers', {}), {
|
2264 |
'X-WP-Nonce': wpRESTNonce
|
2265 |
});
|
2266 |
-
_context.prev =
|
2267 |
-
_context.next =
|
2268 |
return fetch(endpoint, extends_default()({}, params, {
|
2269 |
credentials: 'include',
|
2270 |
headers: headers
|
2271 |
}));
|
2272 |
|
2273 |
-
case
|
2274 |
response = _context.sent;
|
2275 |
status = response.status;
|
2276 |
// inRange includes 200 but excludes 300 from the range so it's from 200 up to 299
|
2277 |
|
2278 |
if (inRange_default()(status, 200, 300)) {
|
2279 |
-
_context.next =
|
2280 |
break;
|
2281 |
}
|
2282 |
|
2283 |
throw response;
|
2284 |
|
2285 |
-
case
|
2286 |
-
_context.next =
|
2287 |
return response.json();
|
2288 |
|
2289 |
-
case
|
2290 |
body = _context.sent;
|
2291 |
|
2292 |
actions.success({ body: body, headers: response.headers });
|
2293 |
return _context.abrupt('return', [response, body]);
|
2294 |
|
2295 |
-
case
|
2296 |
-
_context.prev =
|
2297 |
-
_context.t0 = _context['catch'](
|
2298 |
|
2299 |
actions.error(_context.t0);
|
2300 |
return _context.abrupt('return', _context.t0);
|
2301 |
|
2302 |
-
case
|
2303 |
case 'end':
|
2304 |
return _context.stop();
|
2305 |
}
|
2306 |
}
|
2307 |
-
}, _callee, _this, [[
|
2308 |
}));
|
2309 |
|
2310 |
return function (_x) {
|
@@ -2329,7 +2307,7 @@ var _this = undefined;
|
|
2329 |
|
2330 |
|
2331 |
/***/ }),
|
2332 |
-
/*
|
2333 |
/***/ (function(module, exports, __webpack_require__) {
|
2334 |
|
2335 |
"use strict";
|
@@ -2460,7 +2438,7 @@ function createStructuredSelector(selectors) {
|
|
2460 |
}
|
2461 |
|
2462 |
/***/ }),
|
2463 |
-
/*
|
2464 |
/***/ (function(module, exports, __webpack_require__) {
|
2465 |
|
2466 |
// optional / simple context binding
|
@@ -2486,14 +2464,14 @@ module.exports = function (fn, that, length) {
|
|
2486 |
|
2487 |
|
2488 |
/***/ }),
|
2489 |
-
/*
|
2490 |
/***/ (function(module, exports) {
|
2491 |
|
2492 |
module.exports = {};
|
2493 |
|
2494 |
|
2495 |
/***/ }),
|
2496 |
-
/*
|
2497 |
/***/ (function(module, exports, __webpack_require__) {
|
2498 |
|
2499 |
var isFunction = __webpack_require__(92),
|
@@ -2532,7 +2510,7 @@ module.exports = isArrayLike;
|
|
2532 |
|
2533 |
|
2534 |
/***/ }),
|
2535 |
-
/*
|
2536 |
/***/ (function(module, exports, __webpack_require__) {
|
2537 |
|
2538 |
var DataView = __webpack_require__(255),
|
@@ -2595,6 +2573,45 @@ if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
|
|
2595 |
module.exports = getTag;
|
2596 |
|
2597 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2598 |
/***/ }),
|
2599 |
/* 44 */
|
2600 |
/***/ (function(module, exports, __webpack_require__) {
|
@@ -2969,7 +2986,7 @@ __webpack_require__.d(proptypes_namespaceObject, "ReactSelectOption", function()
|
|
2969 |
__webpack_require__.d(proptypes_namespaceObject, "ReactSelectOptions", function() { return ReactSelectOptions; });
|
2970 |
|
2971 |
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/toConsumableArray.js
|
2972 |
-
var toConsumableArray = __webpack_require__(
|
2973 |
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
|
2974 |
|
2975 |
// EXTERNAL MODULE: ./node_modules/lodash/uniq.js
|
@@ -3130,7 +3147,7 @@ __webpack_require__(130)(String, 'String', function (iterated) {
|
|
3130 |
/***/ (function(module, exports, __webpack_require__) {
|
3131 |
|
3132 |
var def = __webpack_require__(21).f;
|
3133 |
-
var has = __webpack_require__(
|
3134 |
var TAG = __webpack_require__(11)('toStringTag');
|
3135 |
|
3136 |
module.exports = function (it, tag, stat) {
|
@@ -3423,28 +3440,28 @@ module.exports = copyObject;
|
|
3423 |
/* 73 */
|
3424 |
/***/ (function(module, exports) {
|
3425 |
|
3426 |
-
module.exports = function(module) {
|
3427 |
-
if (!module.webpackPolyfill) {
|
3428 |
-
module.deprecate = function() {};
|
3429 |
-
module.paths = [];
|
3430 |
-
// module.parent = undefined by default
|
3431 |
-
if (!module.children) module.children = [];
|
3432 |
-
Object.defineProperty(module, "loaded", {
|
3433 |
-
enumerable: true,
|
3434 |
-
get: function() {
|
3435 |
-
return module.l;
|
3436 |
-
}
|
3437 |
-
});
|
3438 |
-
Object.defineProperty(module, "id", {
|
3439 |
-
enumerable: true,
|
3440 |
-
get: function() {
|
3441 |
-
return module.i;
|
3442 |
-
}
|
3443 |
-
});
|
3444 |
-
module.webpackPolyfill = 1;
|
3445 |
-
}
|
3446 |
-
return module;
|
3447 |
-
};
|
3448 |
|
3449 |
|
3450 |
/***/ }),
|
@@ -4600,8 +4617,8 @@ module.exports = baseIteratee;
|
|
4600 |
|
4601 |
__webpack_require__(285);
|
4602 |
var global = __webpack_require__(8);
|
4603 |
-
var hide = __webpack_require__(
|
4604 |
-
var Iterators = __webpack_require__(
|
4605 |
var TO_STRING_TAG = __webpack_require__(11)('toStringTag');
|
4606 |
|
4607 |
var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
|
@@ -4625,7 +4642,7 @@ for (var i = 0; i < DOMIterables.length; i++) {
|
|
4625 |
|
4626 |
var classof = __webpack_require__(109);
|
4627 |
var ITERATOR = __webpack_require__(11)('iterator');
|
4628 |
-
var Iterators = __webpack_require__(
|
4629 |
module.exports = __webpack_require__(9).getIteratorMethod = function (it) {
|
4630 |
if (it != undefined) return it[ITERATOR]
|
4631 |
|| it['@@iterator']
|
@@ -5262,7 +5279,7 @@ g = (function() {
|
|
5262 |
|
5263 |
try {
|
5264 |
// This works if eval is allowed (see CSP)
|
5265 |
-
g = g || Function("return this")()
|
5266 |
} catch (e) {
|
5267 |
// This works if the window reference is available
|
5268 |
if (typeof window === "object") g = window;
|
@@ -5327,7 +5344,7 @@ module.exports = Object.create || function create(O, Properties) {
|
|
5327 |
/***/ (function(module, exports, __webpack_require__) {
|
5328 |
|
5329 |
var baseIndexOf = __webpack_require__(112),
|
5330 |
-
isArrayLike = __webpack_require__(
|
5331 |
isString = __webpack_require__(97),
|
5332 |
toInteger = __webpack_require__(84),
|
5333 |
values = __webpack_require__(363);
|
@@ -5638,8 +5655,8 @@ module.exports = wp.components;
|
|
5638 |
var LIBRARY = __webpack_require__(48);
|
5639 |
var $export = __webpack_require__(18);
|
5640 |
var redefine = __webpack_require__(165);
|
5641 |
-
var hide = __webpack_require__(
|
5642 |
-
var Iterators = __webpack_require__(
|
5643 |
var $iterCreate = __webpack_require__(210);
|
5644 |
var setToStringTag = __webpack_require__(61);
|
5645 |
var getPrototypeOf = __webpack_require__(214);
|
@@ -5748,7 +5765,7 @@ module.exports = function (iterator, fn, value, entries) {
|
|
5748 |
/***/ (function(module, exports, __webpack_require__) {
|
5749 |
|
5750 |
// check on default Array iterator
|
5751 |
-
var Iterators = __webpack_require__(
|
5752 |
var ITERATOR = __webpack_require__(11)('iterator');
|
5753 |
var ArrayProto = Array.prototype;
|
5754 |
|
@@ -6074,7 +6091,7 @@ module.exports = function (O, D) {
|
|
6074 |
/* 145 */
|
6075 |
/***/ (function(module, exports, __webpack_require__) {
|
6076 |
|
6077 |
-
var ctx = __webpack_require__(
|
6078 |
var invoke = __webpack_require__(291);
|
6079 |
var html = __webpack_require__(132);
|
6080 |
var cel = __webpack_require__(78);
|
@@ -6202,7 +6219,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
6202 |
var post_types = __webpack_require__(75);
|
6203 |
|
6204 |
// EXTERNAL MODULE: ./src/modules/data/forms/index.js + 7 modules
|
6205 |
-
var data_forms = __webpack_require__(
|
6206 |
|
6207 |
// EXTERNAL MODULE: ./src/modules/data/plugins/index.js + 6 modules
|
6208 |
var plugins = __webpack_require__(59);
|
@@ -6589,7 +6606,7 @@ module.exports = stubArray;
|
|
6589 |
|
6590 |
var baseGetAllKeys = __webpack_require__(161),
|
6591 |
getSymbols = __webpack_require__(105),
|
6592 |
-
keys = __webpack_require__(
|
6593 |
|
6594 |
/**
|
6595 |
* Creates an array of own enumerable property names and symbols of `object`.
|
@@ -6689,14 +6706,14 @@ module.exports = !__webpack_require__(22) && !__webpack_require__(49)(function (
|
|
6689 |
/* 165 */
|
6690 |
/***/ (function(module, exports, __webpack_require__) {
|
6691 |
|
6692 |
-
module.exports = __webpack_require__(
|
6693 |
|
6694 |
|
6695 |
/***/ }),
|
6696 |
/* 166 */
|
6697 |
/***/ (function(module, exports, __webpack_require__) {
|
6698 |
|
6699 |
-
var has = __webpack_require__(
|
6700 |
var toIObject = __webpack_require__(44);
|
6701 |
var arrayIndexOf = __webpack_require__(212)(false);
|
6702 |
var IE_PROTO = __webpack_require__(80)('IE_PROTO');
|
@@ -6719,7 +6736,7 @@ module.exports = function (object, names) {
|
|
6719 |
/* 167 */
|
6720 |
/***/ (function(module, exports, __webpack_require__) {
|
6721 |
|
6722 |
-
var Symbol = __webpack_require__(
|
6723 |
arrayMap = __webpack_require__(74),
|
6724 |
isArray = __webpack_require__(5),
|
6725 |
isSymbol = __webpack_require__(45);
|
@@ -7307,7 +7324,7 @@ module.exports = defineProperty;
|
|
7307 |
/***/ (function(module, exports, __webpack_require__) {
|
7308 |
|
7309 |
var copyObject = __webpack_require__(72),
|
7310 |
-
keys = __webpack_require__(
|
7311 |
|
7312 |
/**
|
7313 |
* The base implementation of `_.assign` without support for multiple sources
|
@@ -7405,7 +7422,7 @@ var Stack = __webpack_require__(94),
|
|
7405 |
copySymbolsIn = __webpack_require__(343),
|
7406 |
getAllKeys = __webpack_require__(160),
|
7407 |
getAllKeysIn = __webpack_require__(344),
|
7408 |
-
getTag = __webpack_require__(
|
7409 |
initCloneArray = __webpack_require__(345),
|
7410 |
initCloneByTag = __webpack_require__(346),
|
7411 |
initCloneObject = __webpack_require__(351),
|
@@ -7414,7 +7431,7 @@ var Stack = __webpack_require__(94),
|
|
7414 |
isMap = __webpack_require__(352),
|
7415 |
isObject = __webpack_require__(17),
|
7416 |
isSet = __webpack_require__(354),
|
7417 |
-
keys = __webpack_require__(
|
7418 |
|
7419 |
/** Used to compose bitmasks for cloning. */
|
7420 |
var CLONE_DEEP_FLAG = 1,
|
@@ -7573,7 +7590,7 @@ module.exports = baseClone;
|
|
7573 |
|
7574 |
var arrayLikeKeys = __webpack_require__(157),
|
7575 |
baseKeysIn = __webpack_require__(339),
|
7576 |
-
isArrayLike = __webpack_require__(
|
7577 |
|
7578 |
/**
|
7579 |
* Creates an array of the own and inherited enumerable property names of `object`.
|
@@ -9500,7 +9517,7 @@ var setToStringTag = __webpack_require__(61);
|
|
9500 |
var IteratorPrototype = {};
|
9501 |
|
9502 |
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
|
9503 |
-
__webpack_require__(
|
9504 |
|
9505 |
module.exports = function (Constructor, NAME, next) {
|
9506 |
Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
|
@@ -9574,7 +9591,7 @@ module.exports = function (index, length) {
|
|
9574 |
/***/ (function(module, exports, __webpack_require__) {
|
9575 |
|
9576 |
// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
|
9577 |
-
var has = __webpack_require__(
|
9578 |
var toObject = __webpack_require__(81);
|
9579 |
var IE_PROTO = __webpack_require__(80)('IE_PROTO');
|
9580 |
var ObjectProto = Object.prototype;
|
@@ -9594,7 +9611,7 @@ module.exports = Object.getPrototypeOf || function (O) {
|
|
9594 |
|
9595 |
"use strict";
|
9596 |
|
9597 |
-
var ctx = __webpack_require__(
|
9598 |
var $export = __webpack_require__(18);
|
9599 |
var toObject = __webpack_require__(81);
|
9600 |
var call = __webpack_require__(133);
|
@@ -9790,7 +9807,7 @@ module.exports = baseIsNative;
|
|
9790 |
/* 221 */
|
9791 |
/***/ (function(module, exports, __webpack_require__) {
|
9792 |
|
9793 |
-
var Symbol = __webpack_require__(
|
9794 |
|
9795 |
/** Used for built-in method references. */
|
9796 |
var objectProto = Object.prototype;
|
@@ -10826,7 +10843,7 @@ var Stack = __webpack_require__(94),
|
|
10826 |
equalArrays = __webpack_require__(139),
|
10827 |
equalByTag = __webpack_require__(261),
|
10828 |
equalObjects = __webpack_require__(263),
|
10829 |
-
getTag = __webpack_require__(
|
10830 |
isArray = __webpack_require__(5),
|
10831 |
isBuffer = __webpack_require__(58),
|
10832 |
isTypedArray = __webpack_require__(85);
|
@@ -10940,7 +10957,7 @@ module.exports = arraySome;
|
|
10940 |
/* 261 */
|
10941 |
/***/ (function(module, exports, __webpack_require__) {
|
10942 |
|
10943 |
-
var Symbol = __webpack_require__(
|
10944 |
Uint8Array = __webpack_require__(162),
|
10945 |
eq = __webpack_require__(67),
|
10946 |
equalArrays = __webpack_require__(139),
|
@@ -11178,7 +11195,7 @@ module.exports = equalObjects;
|
|
11178 |
/***/ (function(module, exports, __webpack_require__) {
|
11179 |
|
11180 |
var isStrictComparable = __webpack_require__(140),
|
11181 |
-
keys = __webpack_require__(
|
11182 |
|
11183 |
/**
|
11184 |
* Gets the property names, values, and compare flags of `object`.
|
@@ -11208,7 +11225,7 @@ module.exports = getMatchData;
|
|
11208 |
/***/ (function(module, exports, __webpack_require__) {
|
11209 |
|
11210 |
var baseIsEqual = __webpack_require__(138),
|
11211 |
-
get = __webpack_require__(
|
11212 |
hasIn = __webpack_require__(268),
|
11213 |
isKey = __webpack_require__(89),
|
11214 |
isStrictComparable = __webpack_require__(140),
|
@@ -11585,7 +11602,7 @@ module.exports = baseFlatten;
|
|
11585 |
/* 275 */
|
11586 |
/***/ (function(module, exports, __webpack_require__) {
|
11587 |
|
11588 |
-
var Symbol = __webpack_require__(
|
11589 |
isArguments = __webpack_require__(57),
|
11590 |
isArray = __webpack_require__(5);
|
11591 |
|
@@ -12515,7 +12532,7 @@ module.exports = __webpack_require__(9).Promise;
|
|
12515 |
|
12516 |
var addToUnscopables = __webpack_require__(286);
|
12517 |
var step = __webpack_require__(287);
|
12518 |
-
var Iterators = __webpack_require__(
|
12519 |
var toIObject = __webpack_require__(44);
|
12520 |
|
12521 |
// 22.1.3.4 Array.prototype.entries()
|
@@ -12572,7 +12589,7 @@ module.exports = function (done, value) {
|
|
12572 |
|
12573 |
var LIBRARY = __webpack_require__(48);
|
12574 |
var global = __webpack_require__(8);
|
12575 |
-
var ctx = __webpack_require__(
|
12576 |
var classof = __webpack_require__(109);
|
12577 |
var $export = __webpack_require__(18);
|
12578 |
var isObject = __webpack_require__(23);
|
@@ -12872,7 +12889,7 @@ module.exports = function (it, Constructor, name, forbiddenField) {
|
|
12872 |
/* 290 */
|
12873 |
/***/ (function(module, exports, __webpack_require__) {
|
12874 |
|
12875 |
-
var ctx = __webpack_require__(
|
12876 |
var call = __webpack_require__(133);
|
12877 |
var isArrayIter = __webpack_require__(134);
|
12878 |
var anObject = __webpack_require__(16);
|
@@ -13010,7 +13027,7 @@ module.exports = navigator && navigator.userAgent || '';
|
|
13010 |
/* 294 */
|
13011 |
/***/ (function(module, exports, __webpack_require__) {
|
13012 |
|
13013 |
-
var hide = __webpack_require__(
|
13014 |
module.exports = function (target, src, safe) {
|
13015 |
for (var key in src) {
|
13016 |
if (safe && target[key]) target[key] = src[key];
|
@@ -13187,7 +13204,7 @@ var pIE = __webpack_require__(90);
|
|
13187 |
var createDesc = __webpack_require__(50);
|
13188 |
var toIObject = __webpack_require__(44);
|
13189 |
var toPrimitive = __webpack_require__(111);
|
13190 |
-
var has = __webpack_require__(
|
13191 |
var IE8_DOM_DEFINE = __webpack_require__(164);
|
13192 |
var gOPD = Object.getOwnPropertyDescriptor;
|
13193 |
|
@@ -15271,7 +15288,7 @@ function io_helpers_throttle(ms, pattern, worker) {
|
|
15271 |
var modules_data = __webpack_require__(148);
|
15272 |
|
15273 |
// EXTERNAL MODULE: ./src/modules/store/middlewares/request/index.js + 4 modules
|
15274 |
-
var request = __webpack_require__(
|
15275 |
|
15276 |
// CONCATENATED MODULE: ./src/modules/store/middlewares/index.js
|
15277 |
|
@@ -17831,7 +17848,7 @@ module.exports = cloneRegExp;
|
|
17831 |
/* 349 */
|
17832 |
/***/ (function(module, exports, __webpack_require__) {
|
17833 |
|
17834 |
-
var Symbol = __webpack_require__(
|
17835 |
|
17836 |
/** Used to convert symbols to primitives and strings. */
|
17837 |
var symbolProto = Symbol ? Symbol.prototype : undefined,
|
@@ -17934,7 +17951,7 @@ module.exports = isMap;
|
|
17934 |
/* 353 */
|
17935 |
/***/ (function(module, exports, __webpack_require__) {
|
17936 |
|
17937 |
-
var getTag = __webpack_require__(
|
17938 |
isObjectLike = __webpack_require__(13);
|
17939 |
|
17940 |
/** `Object#toString` result references. */
|
@@ -17991,7 +18008,7 @@ module.exports = isSet;
|
|
17991 |
/* 355 */
|
17992 |
/***/ (function(module, exports, __webpack_require__) {
|
17993 |
|
17994 |
-
var getTag = __webpack_require__(
|
17995 |
isObjectLike = __webpack_require__(13);
|
17996 |
|
17997 |
/** `Object#toString` result references. */
|
@@ -18125,7 +18142,7 @@ module.exports = isPlainObject;
|
|
18125 |
/* 358 */
|
18126 |
/***/ (function(module, exports, __webpack_require__) {
|
18127 |
|
18128 |
-
var getTag = __webpack_require__(
|
18129 |
isObjectLike = __webpack_require__(13);
|
18130 |
|
18131 |
/** `Object#toString` result references. */
|
@@ -18319,7 +18336,7 @@ module.exports = toPath;
|
|
18319 |
/***/ (function(module, exports, __webpack_require__) {
|
18320 |
|
18321 |
var baseValues = __webpack_require__(364),
|
18322 |
-
keys = __webpack_require__(
|
18323 |
|
18324 |
/**
|
18325 |
* Creates an array of the own enumerable string keyed property values of `object`.
|
@@ -19285,7 +19302,7 @@ module.exports = __webpack_require__(9).Symbol;
|
|
19285 |
|
19286 |
// ECMAScript 6 symbols shim
|
19287 |
var global = __webpack_require__(8);
|
19288 |
-
var has = __webpack_require__(
|
19289 |
var DESCRIPTORS = __webpack_require__(22);
|
19290 |
var $export = __webpack_require__(18);
|
19291 |
var redefine = __webpack_require__(165);
|
@@ -19509,7 +19526,7 @@ $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
|
|
19509 |
});
|
19510 |
|
19511 |
// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
|
19512 |
-
$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(
|
19513 |
// 19.4.3.5 Symbol.prototype[@@toStringTag]
|
19514 |
setToStringTag($Symbol, 'Symbol');
|
19515 |
// 20.2.1.9 Math[@@toStringTag]
|
@@ -19524,7 +19541,7 @@ setToStringTag(global.JSON, 'JSON', true);
|
|
19524 |
|
19525 |
var META = __webpack_require__(66)('meta');
|
19526 |
var isObject = __webpack_require__(23);
|
19527 |
-
var has = __webpack_require__(
|
19528 |
var setDesc = __webpack_require__(21).f;
|
19529 |
var id = 0;
|
19530 |
var isExtensible = Object.isExtensible || function () {
|
@@ -19737,7 +19754,7 @@ var inherits = __webpack_require__(27);
|
|
19737 |
var inherits_default = /*#__PURE__*/__webpack_require__.n(inherits);
|
19738 |
|
19739 |
// EXTERNAL MODULE: ./node_modules/lodash/keys.js
|
19740 |
-
var keys = __webpack_require__(
|
19741 |
var keys_default = /*#__PURE__*/__webpack_require__.n(keys);
|
19742 |
|
19743 |
// EXTERNAL MODULE: ./node_modules/lodash/isObject.js
|
@@ -19749,7 +19766,7 @@ var isArray = __webpack_require__(5);
|
|
19749 |
var isArray_default = /*#__PURE__*/__webpack_require__.n(isArray);
|
19750 |
|
19751 |
// EXTERNAL MODULE: ./node_modules/lodash/isEmpty.js
|
19752 |
-
var isEmpty = __webpack_require__(
|
19753 |
var isEmpty_default = /*#__PURE__*/__webpack_require__.n(isEmpty);
|
19754 |
|
19755 |
// EXTERNAL MODULE: ./node_modules/lodash/noop.js
|
@@ -19966,7 +19983,7 @@ var redux = __webpack_require__(14);
|
|
19966 |
var es = __webpack_require__(206);
|
19967 |
|
19968 |
// EXTERNAL MODULE: ./src/modules/data/forms/index.js + 7 modules
|
19969 |
-
var data_forms = __webpack_require__(
|
19970 |
|
19971 |
// CONCATENATED MODULE: ./src/modules/hoc/with-form.js
|
19972 |
|
@@ -20255,7 +20272,7 @@ module.exports = {
|
|
20255 |
set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
|
20256 |
function (test, buggy, set) {
|
20257 |
try {
|
20258 |
-
set = __webpack_require__(
|
20259 |
set(test, []);
|
20260 |
buggy = !(test instanceof Array);
|
20261 |
} catch (e) { buggy = true; }
|
@@ -20403,7 +20420,7 @@ module.exports = __webpack_require__(406);
|
|
20403 |
|
20404 |
var classof = __webpack_require__(109);
|
20405 |
var ITERATOR = __webpack_require__(11)('iterator');
|
20406 |
-
var Iterators = __webpack_require__(
|
20407 |
module.exports = __webpack_require__(9).isIterable = function (it) {
|
20408 |
var O = Object(it);
|
20409 |
return O[ITERATOR] !== undefined
|
@@ -20446,7 +20463,7 @@ module.exports = __webpack_require__(9).getIterator = function (it) {
|
|
20446 |
/***/ (function(module, exports, __webpack_require__) {
|
20447 |
|
20448 |
var baseFor = __webpack_require__(411),
|
20449 |
-
keys = __webpack_require__(
|
20450 |
|
20451 |
/**
|
20452 |
* The base implementation of `_.forOwn` without support for iteratee shorthands.
|
@@ -20520,7 +20537,7 @@ module.exports = createBaseFor;
|
|
20520 |
/* 413 */
|
20521 |
/***/ (function(module, exports, __webpack_require__) {
|
20522 |
|
20523 |
-
var isArrayLike = __webpack_require__(
|
20524 |
|
20525 |
/**
|
20526 |
* Creates a `baseEach` or `baseEachRight` function.
|
@@ -20559,7 +20576,7 @@ module.exports = createBaseEach;
|
|
20559 |
/***/ (function(module, exports, __webpack_require__) {
|
20560 |
|
20561 |
var baseEach = __webpack_require__(385),
|
20562 |
-
isArrayLike = __webpack_require__(
|
20563 |
|
20564 |
/**
|
20565 |
* The base implementation of `_.map` without support for iteratee shorthands.
|
@@ -20587,8 +20604,8 @@ module.exports = baseMap;
|
|
20587 |
/***/ (function(module, exports, __webpack_require__) {
|
20588 |
|
20589 |
var baseIteratee = __webpack_require__(106),
|
20590 |
-
isArrayLike = __webpack_require__(
|
20591 |
-
keys = __webpack_require__(
|
20592 |
|
20593 |
/**
|
20594 |
* Creates a `_.find` or `_.findLast` function.
|
@@ -20939,7 +20956,7 @@ var plugins = __webpack_require__(59);
|
|
20939 |
var hoc = __webpack_require__(390);
|
20940 |
|
20941 |
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/toConsumableArray.js
|
20942 |
-
var toConsumableArray = __webpack_require__(
|
20943 |
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
|
20944 |
|
20945 |
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/slicedToArray.js
|
@@ -21074,6 +21091,7 @@ var component_PluginBlockHooks = function (_PureComponent) {
|
|
21074 |
allowedBlocks: this.props.allowedBlocks,
|
21075 |
layouts: this.props.layouts,
|
21076 |
template: this.template,
|
|
|
21077 |
templateLock: this.props.templateLock
|
21078 |
})
|
21079 |
);
|
@@ -21156,7 +21174,11 @@ component_PluginBlockHooks.propTypes = {
|
|
21156 |
* ```
|
21157 |
*/
|
21158 |
pluginTemplates: prop_types_default.a.objectOf(prop_types_default.a.arrayOf(prop_types_default.a.array)),
|
21159 |
-
|
|
|
|
|
|
|
|
|
21160 |
/* harmony default export */ var component = (component_PluginBlockHooks);
|
21161 |
// CONCATENATED MODULE: ./src/modules/components/plugin-block-hooks/container.js
|
21162 |
/**
|
1039 |
|
1040 |
var global = __webpack_require__(8);
|
1041 |
var core = __webpack_require__(9);
|
1042 |
+
var ctx = __webpack_require__(39);
|
1043 |
+
var hide = __webpack_require__(29);
|
1044 |
+
var has = __webpack_require__(35);
|
1045 |
var PROTOTYPE = 'prototype';
|
1046 |
|
1047 |
var $export = function (type, name, source) {
|
1105 |
/* 19 */
|
1106 |
/***/ (function(module, exports, __webpack_require__) {
|
1107 |
|
1108 |
+
var Symbol = __webpack_require__(36),
|
1109 |
getRawTag = __webpack_require__(221),
|
1110 |
objectToString = __webpack_require__(222);
|
1111 |
|
1311 |
|
1312 |
/***/ }),
|
1313 |
/* 28 */
|
1314 |
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
1315 |
+
|
1316 |
+
"use strict";
|
1317 |
+
__webpack_require__.r(__webpack_exports__);
|
1318 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "get", function() { return get; });
|
1319 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "google", function() { return google; });
|
1320 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "config", function() { return config; });
|
1321 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "common", function() { return common; });
|
1322 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "adminUrl", function() { return adminUrl; });
|
1323 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rest", function() { return rest; });
|
1324 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "restNonce", function() { return restNonce; });
|
1325 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dateSettings", function() { return dateSettings; });
|
1326 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "editorConstants", function() { return editorConstants; });
|
1327 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "list", function() { return list; });
|
1328 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tec", function() { return tec; });
|
1329 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "editor", function() { return editor; });
|
1330 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settings", function() { return settings; });
|
1331 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapsAPI", function() { return mapsAPI; });
|
1332 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "priceSettings", function() { return priceSettings; });
|
1333 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timezoneHtml", function() { return timezoneHtml; });
|
1334 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pro", function() { return pro; });
|
1335 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "editorDefaults", function() { return editorDefaults; });
|
1336 |
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tickets", function() { return tickets; });
|
1337 |
+
/**
|
1338 |
+
* @todo: handle globals in a better way
|
1339 |
+
*/
|
1340 |
+
var get = function get(key, defaultValue) {
|
1341 |
+
return window[key] || defaultValue;
|
1342 |
+
};
|
1343 |
+
var google = function google() {
|
1344 |
+
return get('google');
|
1345 |
+
};
|
1346 |
+
// Localized Config
|
1347 |
+
var config = function config() {
|
1348 |
+
return get('tribe_editor_config', {});
|
1349 |
+
};
|
1350 |
+
// Common
|
1351 |
+
var common = function common() {
|
1352 |
+
return config().common || {};
|
1353 |
+
};
|
1354 |
+
var adminUrl = function adminUrl() {
|
1355 |
+
return common().adminUrl || '';
|
1356 |
+
};
|
1357 |
+
var rest = function rest() {
|
1358 |
+
return common().rest || {};
|
1359 |
+
};
|
1360 |
+
var restNonce = function restNonce() {
|
1361 |
+
return rest().nonce || {};
|
1362 |
+
};
|
1363 |
+
var dateSettings = function dateSettings() {
|
1364 |
+
return common().dateSettings || {};
|
1365 |
+
};
|
1366 |
+
var editorConstants = function editorConstants() {
|
1367 |
+
return common().constants || {};
|
1368 |
+
};
|
1369 |
+
var list = function list() {
|
1370 |
+
return {
|
1371 |
+
countries: common().countries || {},
|
1372 |
+
us_states: common().usStates || {}
|
1373 |
+
};
|
1374 |
+
};
|
1375 |
+
|
1376 |
+
// TEC
|
1377 |
+
var tec = function tec() {
|
1378 |
+
return config().events || {};
|
1379 |
+
};
|
1380 |
+
var editor = function editor() {
|
1381 |
+
return tec().editor || {};
|
1382 |
+
};
|
1383 |
+
var settings = function settings() {
|
1384 |
+
return tec().settings || {};
|
1385 |
+
};
|
1386 |
+
var mapsAPI = function mapsAPI() {
|
1387 |
+
return tec().googleMap || {};
|
1388 |
+
};
|
1389 |
+
var priceSettings = function priceSettings() {
|
1390 |
+
return tec().priceSettings || {};
|
1391 |
+
};
|
1392 |
+
var timezoneHtml = function timezoneHtml() {
|
1393 |
+
return tec().timezoneHTML || '';
|
1394 |
+
};
|
1395 |
+
// PRO
|
1396 |
+
var pro = function pro() {
|
1397 |
+
return config().eventsPRO || {};
|
1398 |
+
};
|
1399 |
+
var editorDefaults = function editorDefaults() {
|
1400 |
+
return pro().defaults || {};
|
1401 |
+
};
|
1402 |
+
// Tickets
|
1403 |
+
var tickets = function tickets() {
|
1404 |
+
return config().tickets || {};
|
1405 |
+
};
|
1406 |
+
|
1407 |
+
/***/ }),
|
1408 |
+
/* 29 */
|
1409 |
/***/ (function(module, exports, __webpack_require__) {
|
1410 |
|
1411 |
var dP = __webpack_require__(21);
|
1419 |
|
1420 |
|
1421 |
/***/ }),
|
1422 |
+
/* 30 */
|
1423 |
/***/ (function(module, exports, __webpack_require__) {
|
1424 |
|
1425 |
var arrayLikeKeys = __webpack_require__(157),
|
1426 |
baseKeys = __webpack_require__(93),
|
1427 |
+
isArrayLike = __webpack_require__(41);
|
1428 |
|
1429 |
/**
|
1430 |
* Creates an array of the own enumerable property names of `object`.
|
1462 |
|
1463 |
|
1464 |
/***/ }),
|
1465 |
+
/* 31 */
|
1466 |
/***/ (function(module, exports, __webpack_require__) {
|
1467 |
|
1468 |
var baseKeys = __webpack_require__(93),
|
1469 |
+
getTag = __webpack_require__(42),
|
1470 |
isArguments = __webpack_require__(57),
|
1471 |
isArray = __webpack_require__(5),
|
1472 |
+
isArrayLike = __webpack_require__(41),
|
1473 |
isBuffer = __webpack_require__(58),
|
1474 |
isPrototype = __webpack_require__(62),
|
1475 |
isTypedArray = __webpack_require__(85);
|
1545 |
|
1546 |
|
1547 |
/***/ }),
|
1548 |
+
/* 32 */
|
1549 |
/***/ (function(module, exports, __webpack_require__) {
|
1550 |
|
1551 |
"use strict";
|
1572 |
};
|
1573 |
|
1574 |
/***/ }),
|
1575 |
+
/* 33 */
|
1576 |
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
1577 |
|
1578 |
"use strict";
|
1701 |
}
|
1702 |
});
|
1703 |
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/toConsumableArray.js
|
1704 |
+
var toConsumableArray = __webpack_require__(32);
|
1705 |
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
|
1706 |
|
1707 |
// CONCATENATED MODULE: ./src/modules/data/forms/reducers/volatile.js
|
1766 |
volatile: reducers_volatile
|
1767 |
}));
|
1768 |
// EXTERNAL MODULE: ./node_modules/lodash/get.js
|
1769 |
+
var get = __webpack_require__(43);
|
1770 |
var get_default = /*#__PURE__*/__webpack_require__.n(get);
|
1771 |
|
1772 |
// EXTERNAL MODULE: ./node_modules/lodash/isEmpty.js
|
1773 |
+
var isEmpty = __webpack_require__(31);
|
1774 |
var isEmpty_default = /*#__PURE__*/__webpack_require__.n(isEmpty);
|
1775 |
|
1776 |
// EXTERNAL MODULE: ./src/modules/store/middlewares/request/index.js + 4 modules
|
1777 |
+
var request = __webpack_require__(37);
|
1778 |
|
1779 |
// EXTERNAL MODULE: ./node_modules/reselect/lib/index.js
|
1780 |
+
var lib = __webpack_require__(38);
|
1781 |
|
1782 |
// CONCATENATED MODULE: ./src/modules/data/forms/selectors.js
|
1783 |
/**
|
2023 |
|
2024 |
|
2025 |
/***/ }),
|
2026 |
+
/* 34 */,
|
2027 |
+
/* 35 */
|
2028 |
/***/ (function(module, exports) {
|
2029 |
|
2030 |
var hasOwnProperty = {}.hasOwnProperty;
|
2033 |
};
|
2034 |
|
2035 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2036 |
/***/ }),
|
2037 |
/* 36 */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2038 |
/***/ (function(module, exports, __webpack_require__) {
|
2039 |
|
2040 |
var root = __webpack_require__(10);
|
2046 |
|
2047 |
|
2048 |
/***/ }),
|
2049 |
+
/* 37 */
|
2050 |
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
2051 |
|
2052 |
"use strict";
|
2094 |
var isUndefined_default = /*#__PURE__*/__webpack_require__.n(isUndefined);
|
2095 |
|
2096 |
// EXTERNAL MODULE: ./node_modules/lodash/isEmpty.js
|
2097 |
+
var isEmpty = __webpack_require__(31);
|
2098 |
var isEmpty_default = /*#__PURE__*/__webpack_require__.n(isEmpty);
|
2099 |
|
2100 |
// EXTERNAL MODULE: ./node_modules/querystringify/index.js
|
2152 |
var inRange_default = /*#__PURE__*/__webpack_require__.n(inRange);
|
2153 |
|
2154 |
// EXTERNAL MODULE: ./node_modules/lodash/get.js
|
2155 |
+
var get = __webpack_require__(43);
|
2156 |
var get_default = /*#__PURE__*/__webpack_require__.n(get);
|
2157 |
|
2158 |
// EXTERNAL MODULE: ./node_modules/lodash/noop.js
|
2163 |
var whatwg_fetch_fetch = __webpack_require__(205);
|
2164 |
|
2165 |
// EXTERNAL MODULE: ./src/modules/utils/globals.js
|
2166 |
+
var globals = __webpack_require__(28);
|
2167 |
|
2168 |
// CONCATENATED MODULE: ./src/modules/store/middlewares/request/wp-request.js
|
2169 |
|
2189 |
return function (next) {
|
2190 |
return function () {
|
2191 |
var _ref = asyncToGenerator_default()( /*#__PURE__*/regenerator_default.a.mark(function _callee(action) {
|
2192 |
+
var _action$meta, meta, _meta$path, path, _meta$params, params, _rest, _rest$url, url, _rest$nonce, nonce, wpRESTNonce, namespaces, core, BASE, actions, endpoint, headers, response, status, body;
|
2193 |
|
2194 |
return regenerator_default.a.wrap(function _callee$(_context) {
|
2195 |
while (1) {
|
2209 |
|
2210 |
next(action);
|
2211 |
|
2212 |
+
_rest = Object(globals["rest"])(), _rest$url = _rest.url, url = _rest$url === undefined ? '' : _rest$url, _rest$nonce = _rest.nonce, nonce = _rest$nonce === undefined ? {} : _rest$nonce;
|
|
|
2213 |
wpRESTNonce = nonce.wp_rest || '';
|
2214 |
+
namespaces = globals["rest"].namespaces || {};
|
2215 |
core = namespaces.core || 'wp/v2';
|
2216 |
BASE = '' + url + core;
|
2217 |
actions = extends_default()({
|
2222 |
}, get_default()(meta, 'actions', {}));
|
2223 |
|
2224 |
if (!(path === '')) {
|
2225 |
+
_context.next = 14;
|
2226 |
break;
|
2227 |
}
|
2228 |
|
2229 |
actions.none(path);
|
2230 |
return _context.abrupt('return');
|
2231 |
|
2232 |
+
case 14:
|
2233 |
endpoint = BASE + '/' + path;
|
2234 |
|
2235 |
|
2241 |
}, get_default()(params, 'headers', {}), {
|
2242 |
'X-WP-Nonce': wpRESTNonce
|
2243 |
});
|
2244 |
+
_context.prev = 17;
|
2245 |
+
_context.next = 20;
|
2246 |
return fetch(endpoint, extends_default()({}, params, {
|
2247 |
credentials: 'include',
|
2248 |
headers: headers
|
2249 |
}));
|
2250 |
|
2251 |
+
case 20:
|
2252 |
response = _context.sent;
|
2253 |
status = response.status;
|
2254 |
// inRange includes 200 but excludes 300 from the range so it's from 200 up to 299
|
2255 |
|
2256 |
if (inRange_default()(status, 200, 300)) {
|
2257 |
+
_context.next = 24;
|
2258 |
break;
|
2259 |
}
|
2260 |
|
2261 |
throw response;
|
2262 |
|
2263 |
+
case 24:
|
2264 |
+
_context.next = 26;
|
2265 |
return response.json();
|
2266 |
|
2267 |
+
case 26:
|
2268 |
body = _context.sent;
|
2269 |
|
2270 |
actions.success({ body: body, headers: response.headers });
|
2271 |
return _context.abrupt('return', [response, body]);
|
2272 |
|
2273 |
+
case 31:
|
2274 |
+
_context.prev = 31;
|
2275 |
+
_context.t0 = _context['catch'](17);
|
2276 |
|
2277 |
actions.error(_context.t0);
|
2278 |
return _context.abrupt('return', _context.t0);
|
2279 |
|
2280 |
+
case 35:
|
2281 |
case 'end':
|
2282 |
return _context.stop();
|
2283 |
}
|
2284 |
}
|
2285 |
+
}, _callee, _this, [[17, 31]]);
|
2286 |
}));
|
2287 |
|
2288 |
return function (_x) {
|
2307 |
|
2308 |
|
2309 |
/***/ }),
|
2310 |
+
/* 38 */
|
2311 |
/***/ (function(module, exports, __webpack_require__) {
|
2312 |
|
2313 |
"use strict";
|
2438 |
}
|
2439 |
|
2440 |
/***/ }),
|
2441 |
+
/* 39 */
|
2442 |
/***/ (function(module, exports, __webpack_require__) {
|
2443 |
|
2444 |
// optional / simple context binding
|
2464 |
|
2465 |
|
2466 |
/***/ }),
|
2467 |
+
/* 40 */
|
2468 |
/***/ (function(module, exports) {
|
2469 |
|
2470 |
module.exports = {};
|
2471 |
|
2472 |
|
2473 |
/***/ }),
|
2474 |
+
/* 41 */
|
2475 |
/***/ (function(module, exports, __webpack_require__) {
|
2476 |
|
2477 |
var isFunction = __webpack_require__(92),
|
2510 |
|
2511 |
|
2512 |
/***/ }),
|
2513 |
+
/* 42 */
|
2514 |
/***/ (function(module, exports, __webpack_require__) {
|
2515 |
|
2516 |
var DataView = __webpack_require__(255),
|
2573 |
module.exports = getTag;
|
2574 |
|
2575 |
|
2576 |
+
/***/ }),
|
2577 |
+
/* 43 */
|
2578 |
+
/***/ (function(module, exports, __webpack_require__) {
|
2579 |
+
|
2580 |
+
var baseGet = __webpack_require__(142);
|
2581 |
+
|
2582 |
+
/**
|
2583 |
+
* Gets the value at `path` of `object`. If the resolved value is
|
2584 |
+
* `undefined`, the `defaultValue` is returned in its place.
|
2585 |
+
*
|
2586 |
+
* @static
|
2587 |
+
* @memberOf _
|
2588 |
+
* @since 3.7.0
|
2589 |
+
* @category Object
|
2590 |
+
* @param {Object} object The object to query.
|
2591 |
+
* @param {Array|string} path The path of the property to get.
|
2592 |
+
* @param {*} [defaultValue] The value returned for `undefined` resolved values.
|
2593 |
+
* @returns {*} Returns the resolved value.
|
2594 |
+
* @example
|
2595 |
+
*
|
2596 |
+
* var object = { 'a': [{ 'b': { 'c': 3 } }] };
|
2597 |
+
*
|
2598 |
+
* _.get(object, 'a[0].b.c');
|
2599 |
+
* // => 3
|
2600 |
+
*
|
2601 |
+
* _.get(object, ['a', '0', 'b', 'c']);
|
2602 |
+
* // => 3
|
2603 |
+
*
|
2604 |
+
* _.get(object, 'a.b.c', 'default');
|
2605 |
+
* // => 'default'
|
2606 |
+
*/
|
2607 |
+
function get(object, path, defaultValue) {
|
2608 |
+
var result = object == null ? undefined : baseGet(object, path);
|
2609 |
+
return result === undefined ? defaultValue : result;
|
2610 |
+
}
|
2611 |
+
|
2612 |
+
module.exports = get;
|
2613 |
+
|
2614 |
+
|
2615 |
/***/ }),
|
2616 |
/* 44 */
|
2617 |
/***/ (function(module, exports, __webpack_require__) {
|
2986 |
__webpack_require__.d(proptypes_namespaceObject, "ReactSelectOptions", function() { return ReactSelectOptions; });
|
2987 |
|
2988 |
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/toConsumableArray.js
|
2989 |
+
var toConsumableArray = __webpack_require__(32);
|
2990 |
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
|
2991 |
|
2992 |
// EXTERNAL MODULE: ./node_modules/lodash/uniq.js
|
3147 |
/***/ (function(module, exports, __webpack_require__) {
|
3148 |
|
3149 |
var def = __webpack_require__(21).f;
|
3150 |
+
var has = __webpack_require__(35);
|
3151 |
var TAG = __webpack_require__(11)('toStringTag');
|
3152 |
|
3153 |
module.exports = function (it, tag, stat) {
|
3440 |
/* 73 */
|
3441 |
/***/ (function(module, exports) {
|
3442 |
|
3443 |
+
module.exports = function(module) {
|
3444 |
+
if (!module.webpackPolyfill) {
|
3445 |
+
module.deprecate = function() {};
|
3446 |
+
module.paths = [];
|
3447 |
+
// module.parent = undefined by default
|
3448 |
+
if (!module.children) module.children = [];
|
3449 |
+
Object.defineProperty(module, "loaded", {
|
3450 |
+
enumerable: true,
|
3451 |
+
get: function() {
|
3452 |
+
return module.l;
|
3453 |
+
}
|
3454 |
+
});
|
3455 |
+
Object.defineProperty(module, "id", {
|
3456 |
+
enumerable: true,
|
3457 |
+
get: function() {
|
3458 |
+
return module.i;
|
3459 |
+
}
|
3460 |
+
});
|
3461 |
+
module.webpackPolyfill = 1;
|
3462 |
+
}
|
3463 |
+
return module;
|
3464 |
+
};
|
3465 |
|
3466 |
|
3467 |
/***/ }),
|
4617 |
|
4618 |
__webpack_require__(285);
|
4619 |
var global = __webpack_require__(8);
|
4620 |
+
var hide = __webpack_require__(29);
|
4621 |
+
var Iterators = __webpack_require__(40);
|
4622 |
var TO_STRING_TAG = __webpack_require__(11)('toStringTag');
|
4623 |
|
4624 |
var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
|
4642 |
|
4643 |
var classof = __webpack_require__(109);
|
4644 |
var ITERATOR = __webpack_require__(11)('iterator');
|
4645 |
+
var Iterators = __webpack_require__(40);
|
4646 |
module.exports = __webpack_require__(9).getIteratorMethod = function (it) {
|
4647 |
if (it != undefined) return it[ITERATOR]
|
4648 |
|| it['@@iterator']
|
5279 |
|
5280 |
try {
|
5281 |
// This works if eval is allowed (see CSP)
|
5282 |
+
g = g || new Function("return this")();
|
5283 |
} catch (e) {
|
5284 |
// This works if the window reference is available
|
5285 |
if (typeof window === "object") g = window;
|
5344 |
/***/ (function(module, exports, __webpack_require__) {
|
5345 |
|
5346 |
var baseIndexOf = __webpack_require__(112),
|
5347 |
+
isArrayLike = __webpack_require__(41),
|
5348 |
isString = __webpack_require__(97),
|
5349 |
toInteger = __webpack_require__(84),
|
5350 |
values = __webpack_require__(363);
|
5655 |
var LIBRARY = __webpack_require__(48);
|
5656 |
var $export = __webpack_require__(18);
|
5657 |
var redefine = __webpack_require__(165);
|
5658 |
+
var hide = __webpack_require__(29);
|
5659 |
+
var Iterators = __webpack_require__(40);
|
5660 |
var $iterCreate = __webpack_require__(210);
|
5661 |
var setToStringTag = __webpack_require__(61);
|
5662 |
var getPrototypeOf = __webpack_require__(214);
|
5765 |
/***/ (function(module, exports, __webpack_require__) {
|
5766 |
|
5767 |
// check on default Array iterator
|
5768 |
+
var Iterators = __webpack_require__(40);
|
5769 |
var ITERATOR = __webpack_require__(11)('iterator');
|
5770 |
var ArrayProto = Array.prototype;
|
5771 |
|
6091 |
/* 145 */
|
6092 |
/***/ (function(module, exports, __webpack_require__) {
|
6093 |
|
6094 |
+
var ctx = __webpack_require__(39);
|
6095 |
var invoke = __webpack_require__(291);
|
6096 |
var html = __webpack_require__(132);
|
6097 |
var cel = __webpack_require__(78);
|
6219 |
var post_types = __webpack_require__(75);
|
6220 |
|
6221 |
// EXTERNAL MODULE: ./src/modules/data/forms/index.js + 7 modules
|
6222 |
+
var data_forms = __webpack_require__(33);
|
6223 |
|
6224 |
// EXTERNAL MODULE: ./src/modules/data/plugins/index.js + 6 modules
|
6225 |
var plugins = __webpack_require__(59);
|
6606 |
|
6607 |
var baseGetAllKeys = __webpack_require__(161),
|
6608 |
getSymbols = __webpack_require__(105),
|
6609 |
+
keys = __webpack_require__(30);
|
6610 |
|
6611 |
/**
|
6612 |
* Creates an array of own enumerable property names and symbols of `object`.
|
6706 |
/* 165 */
|
6707 |
/***/ (function(module, exports, __webpack_require__) {
|
6708 |
|
6709 |
+
module.exports = __webpack_require__(29);
|
6710 |
|
6711 |
|
6712 |
/***/ }),
|
6713 |
/* 166 */
|
6714 |
/***/ (function(module, exports, __webpack_require__) {
|
6715 |
|
6716 |
+
var has = __webpack_require__(35);
|
6717 |
var toIObject = __webpack_require__(44);
|
6718 |
var arrayIndexOf = __webpack_require__(212)(false);
|
6719 |
var IE_PROTO = __webpack_require__(80)('IE_PROTO');
|
6736 |
/* 167 */
|
6737 |
/***/ (function(module, exports, __webpack_require__) {
|
6738 |
|
6739 |
+
var Symbol = __webpack_require__(36),
|
6740 |
arrayMap = __webpack_require__(74),
|
6741 |
isArray = __webpack_require__(5),
|
6742 |
isSymbol = __webpack_require__(45);
|
7324 |
/***/ (function(module, exports, __webpack_require__) {
|
7325 |
|
7326 |
var copyObject = __webpack_require__(72),
|
7327 |
+
keys = __webpack_require__(30);
|
7328 |
|
7329 |
/**
|
7330 |
* The base implementation of `_.assign` without support for multiple sources
|
7422 |
copySymbolsIn = __webpack_require__(343),
|
7423 |
getAllKeys = __webpack_require__(160),
|
7424 |
getAllKeysIn = __webpack_require__(344),
|
7425 |
+
getTag = __webpack_require__(42),
|
7426 |
initCloneArray = __webpack_require__(345),
|
7427 |
initCloneByTag = __webpack_require__(346),
|
7428 |
initCloneObject = __webpack_require__(351),
|
7431 |
isMap = __webpack_require__(352),
|
7432 |
isObject = __webpack_require__(17),
|
7433 |
isSet = __webpack_require__(354),
|
7434 |
+
keys = __webpack_require__(30);
|
7435 |
|
7436 |
/** Used to compose bitmasks for cloning. */
|
7437 |
var CLONE_DEEP_FLAG = 1,
|
7590 |
|
7591 |
var arrayLikeKeys = __webpack_require__(157),
|
7592 |
baseKeysIn = __webpack_require__(339),
|
7593 |
+
isArrayLike = __webpack_require__(41);
|
7594 |
|
7595 |
/**
|
7596 |
* Creates an array of the own and inherited enumerable property names of `object`.
|
9517 |
var IteratorPrototype = {};
|
9518 |
|
9519 |
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
|
9520 |
+
__webpack_require__(29)(IteratorPrototype, __webpack_require__(11)('iterator'), function () { return this; });
|
9521 |
|
9522 |
module.exports = function (Constructor, NAME, next) {
|
9523 |
Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
|
9591 |
/***/ (function(module, exports, __webpack_require__) {
|
9592 |
|
9593 |
// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
|
9594 |
+
var has = __webpack_require__(35);
|
9595 |
var toObject = __webpack_require__(81);
|
9596 |
var IE_PROTO = __webpack_require__(80)('IE_PROTO');
|
9597 |
var ObjectProto = Object.prototype;
|
9611 |
|
9612 |
"use strict";
|
9613 |
|
9614 |
+
var ctx = __webpack_require__(39);
|
9615 |
var $export = __webpack_require__(18);
|
9616 |
var toObject = __webpack_require__(81);
|
9617 |
var call = __webpack_require__(133);
|
9807 |
/* 221 */
|
9808 |
/***/ (function(module, exports, __webpack_require__) {
|
9809 |
|
9810 |
+
var Symbol = __webpack_require__(36);
|
9811 |
|
9812 |
/** Used for built-in method references. */
|
9813 |
var objectProto = Object.prototype;
|
10843 |
equalArrays = __webpack_require__(139),
|
10844 |
equalByTag = __webpack_require__(261),
|
10845 |
equalObjects = __webpack_require__(263),
|
10846 |
+
getTag = __webpack_require__(42),
|
10847 |
isArray = __webpack_require__(5),
|
10848 |
isBuffer = __webpack_require__(58),
|
10849 |
isTypedArray = __webpack_require__(85);
|
10957 |
/* 261 */
|
10958 |
/***/ (function(module, exports, __webpack_require__) {
|
10959 |
|
10960 |
+
var Symbol = __webpack_require__(36),
|
10961 |
Uint8Array = __webpack_require__(162),
|
10962 |
eq = __webpack_require__(67),
|
10963 |
equalArrays = __webpack_require__(139),
|
11195 |
/***/ (function(module, exports, __webpack_require__) {
|
11196 |
|
11197 |
var isStrictComparable = __webpack_require__(140),
|
11198 |
+
keys = __webpack_require__(30);
|
11199 |
|
11200 |
/**
|
11201 |
* Gets the property names, values, and compare flags of `object`.
|
11225 |
/***/ (function(module, exports, __webpack_require__) {
|
11226 |
|
11227 |
var baseIsEqual = __webpack_require__(138),
|
11228 |
+
get = __webpack_require__(43),
|
11229 |
hasIn = __webpack_require__(268),
|
11230 |
isKey = __webpack_require__(89),
|
11231 |
isStrictComparable = __webpack_require__(140),
|
11602 |
/* 275 */
|
11603 |
/***/ (function(module, exports, __webpack_require__) {
|
11604 |
|
11605 |
+
var Symbol = __webpack_require__(36),
|
11606 |
isArguments = __webpack_require__(57),
|
11607 |
isArray = __webpack_require__(5);
|
11608 |
|
12532 |
|
12533 |
var addToUnscopables = __webpack_require__(286);
|
12534 |
var step = __webpack_require__(287);
|
12535 |
+
var Iterators = __webpack_require__(40);
|
12536 |
var toIObject = __webpack_require__(44);
|
12537 |
|
12538 |
// 22.1.3.4 Array.prototype.entries()
|
12589 |
|
12590 |
var LIBRARY = __webpack_require__(48);
|
12591 |
var global = __webpack_require__(8);
|
12592 |
+
var ctx = __webpack_require__(39);
|
12593 |
var classof = __webpack_require__(109);
|
12594 |
var $export = __webpack_require__(18);
|
12595 |
var isObject = __webpack_require__(23);
|
12889 |
/* 290 */
|
12890 |
/***/ (function(module, exports, __webpack_require__) {
|
12891 |
|
12892 |
+
var ctx = __webpack_require__(39);
|
12893 |
var call = __webpack_require__(133);
|
12894 |
var isArrayIter = __webpack_require__(134);
|
12895 |
var anObject = __webpack_require__(16);
|
13027 |
/* 294 */
|
13028 |
/***/ (function(module, exports, __webpack_require__) {
|
13029 |
|
13030 |
+
var hide = __webpack_require__(29);
|
13031 |
module.exports = function (target, src, safe) {
|
13032 |
for (var key in src) {
|
13033 |
if (safe && target[key]) target[key] = src[key];
|
13204 |
var createDesc = __webpack_require__(50);
|
13205 |
var toIObject = __webpack_require__(44);
|
13206 |
var toPrimitive = __webpack_require__(111);
|
13207 |
+
var has = __webpack_require__(35);
|
13208 |
var IE8_DOM_DEFINE = __webpack_require__(164);
|
13209 |
var gOPD = Object.getOwnPropertyDescriptor;
|
13210 |
|
15288 |
var modules_data = __webpack_require__(148);
|
15289 |
|
15290 |
// EXTERNAL MODULE: ./src/modules/store/middlewares/request/index.js + 4 modules
|
15291 |
+
var request = __webpack_require__(37);
|
15292 |
|
15293 |
// CONCATENATED MODULE: ./src/modules/store/middlewares/index.js
|
15294 |
|
17848 |
/* 349 */
|
17849 |
/***/ (function(module, exports, __webpack_require__) {
|
17850 |
|
17851 |
+
var Symbol = __webpack_require__(36);
|
17852 |
|
17853 |
/** Used to convert symbols to primitives and strings. */
|
17854 |
var symbolProto = Symbol ? Symbol.prototype : undefined,
|
17951 |
/* 353 */
|
17952 |
/***/ (function(module, exports, __webpack_require__) {
|
17953 |
|
17954 |
+
var getTag = __webpack_require__(42),
|
17955 |
isObjectLike = __webpack_require__(13);
|
17956 |
|
17957 |
/** `Object#toString` result references. */
|
18008 |
/* 355 */
|
18009 |
/***/ (function(module, exports, __webpack_require__) {
|
18010 |
|
18011 |
+
var getTag = __webpack_require__(42),
|
18012 |
isObjectLike = __webpack_require__(13);
|
18013 |
|
18014 |
/** `Object#toString` result references. */
|
18142 |
/* 358 */
|
18143 |
/***/ (function(module, exports, __webpack_require__) {
|
18144 |
|
18145 |
+
var getTag = __webpack_require__(42),
|
18146 |
isObjectLike = __webpack_require__(13);
|
18147 |
|
18148 |
/** `Object#toString` result references. */
|
18336 |
/***/ (function(module, exports, __webpack_require__) {
|
18337 |
|
18338 |
var baseValues = __webpack_require__(364),
|
18339 |
+
keys = __webpack_require__(30);
|
18340 |
|
18341 |
/**
|
18342 |
* Creates an array of the own enumerable string keyed property values of `object`.
|
19302 |
|
19303 |
// ECMAScript 6 symbols shim
|
19304 |
var global = __webpack_require__(8);
|
19305 |
+
var has = __webpack_require__(35);
|
19306 |
var DESCRIPTORS = __webpack_require__(22);
|
19307 |
var $export = __webpack_require__(18);
|
19308 |
var redefine = __webpack_require__(165);
|
19526 |
});
|
19527 |
|
19528 |
// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
|
19529 |
+
$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(29)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
|
19530 |
// 19.4.3.5 Symbol.prototype[@@toStringTag]
|
19531 |
setToStringTag($Symbol, 'Symbol');
|
19532 |
// 20.2.1.9 Math[@@toStringTag]
|
19541 |
|
19542 |
var META = __webpack_require__(66)('meta');
|
19543 |
var isObject = __webpack_require__(23);
|
19544 |
+
var has = __webpack_require__(35);
|
19545 |
var setDesc = __webpack_require__(21).f;
|
19546 |
var id = 0;
|
19547 |
var isExtensible = Object.isExtensible || function () {
|
19754 |
var inherits_default = /*#__PURE__*/__webpack_require__.n(inherits);
|
19755 |
|
19756 |
// EXTERNAL MODULE: ./node_modules/lodash/keys.js
|
19757 |
+
var keys = __webpack_require__(30);
|
19758 |
var keys_default = /*#__PURE__*/__webpack_require__.n(keys);
|
19759 |
|
19760 |
// EXTERNAL MODULE: ./node_modules/lodash/isObject.js
|
19766 |
var isArray_default = /*#__PURE__*/__webpack_require__.n(isArray);
|
19767 |
|
19768 |
// EXTERNAL MODULE: ./node_modules/lodash/isEmpty.js
|
19769 |
+
var isEmpty = __webpack_require__(31);
|
19770 |
var isEmpty_default = /*#__PURE__*/__webpack_require__.n(isEmpty);
|
19771 |
|
19772 |
// EXTERNAL MODULE: ./node_modules/lodash/noop.js
|
19983 |
var es = __webpack_require__(206);
|
19984 |
|
19985 |
// EXTERNAL MODULE: ./src/modules/data/forms/index.js + 7 modules
|
19986 |
+
var data_forms = __webpack_require__(33);
|
19987 |
|
19988 |
// CONCATENATED MODULE: ./src/modules/hoc/with-form.js
|
19989 |
|
20272 |
set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
|
20273 |
function (test, buggy, set) {
|
20274 |
try {
|
20275 |
+
set = __webpack_require__(39)(Function.call, __webpack_require__(304).f(Object.prototype, '__proto__').set, 2);
|
20276 |
set(test, []);
|
20277 |
buggy = !(test instanceof Array);
|
20278 |
} catch (e) { buggy = true; }
|
20420 |
|
20421 |
var classof = __webpack_require__(109);
|
20422 |
var ITERATOR = __webpack_require__(11)('iterator');
|
20423 |
+
var Iterators = __webpack_require__(40);
|
20424 |
module.exports = __webpack_require__(9).isIterable = function (it) {
|
20425 |
var O = Object(it);
|
20426 |
return O[ITERATOR] !== undefined
|
20463 |
/***/ (function(module, exports, __webpack_require__) {
|
20464 |
|
20465 |
var baseFor = __webpack_require__(411),
|
20466 |
+
keys = __webpack_require__(30);
|
20467 |
|
20468 |
/**
|
20469 |
* The base implementation of `_.forOwn` without support for iteratee shorthands.
|
20537 |
/* 413 */
|
20538 |
/***/ (function(module, exports, __webpack_require__) {
|
20539 |
|
20540 |
+
var isArrayLike = __webpack_require__(41);
|
20541 |
|
20542 |
/**
|
20543 |
* Creates a `baseEach` or `baseEachRight` function.
|
20576 |
/***/ (function(module, exports, __webpack_require__) {
|
20577 |
|
20578 |
var baseEach = __webpack_require__(385),
|
20579 |
+
isArrayLike = __webpack_require__(41);
|
20580 |
|
20581 |
/**
|
20582 |
* The base implementation of `_.map` without support for iteratee shorthands.
|
20604 |
/***/ (function(module, exports, __webpack_require__) {
|
20605 |
|
20606 |
var baseIteratee = __webpack_require__(106),
|
20607 |
+
isArrayLike = __webpack_require__(41),
|
20608 |
+
keys = __webpack_require__(30);
|
20609 |
|
20610 |
/**
|
20611 |
* Creates a `_.find` or `_.findLast` function.
|
20956 |
var hoc = __webpack_require__(390);
|
20957 |
|
20958 |
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/toConsumableArray.js
|
20959 |
+
var toConsumableArray = __webpack_require__(32);
|
20960 |
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
|
20961 |
|
20962 |
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/slicedToArray.js
|
21091 |
allowedBlocks: this.props.allowedBlocks,
|
21092 |
layouts: this.props.layouts,
|
21093 |
template: this.template,
|
21094 |
+
templateInsertUpdatesSelection: this.props.templateInsertUpdatesSelection,
|
21095 |
templateLock: this.props.templateLock
|
21096 |
})
|
21097 |
);
|
21174 |
* ```
|
21175 |
*/
|
21176 |
pluginTemplates: prop_types_default.a.objectOf(prop_types_default.a.arrayOf(prop_types_default.a.array)),
|
21177 |
+
templateInsertUpdatesSelection: prop_types_default.a.bool.isRequired,
|
21178 |
+
templateLock: prop_types_default.a.oneOf(['all', 'insert', false])
|
21179 |
+
};
|
21180 |
+
component_PluginBlockHooks.defaultProps = {
|
21181 |
+
templateInsertUpdatesSelection: false };
|
21182 |
/* harmony default export */ var component = (component_PluginBlockHooks);
|
21183 |
// CONCATENATED MODULE: ./src/modules/components/plugin-block-hooks/container.js
|
21184 |
/**
|
common/src/resources/js/app/components.min.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
var tribe="object"==typeof tribe?tribe:{};tribe.common=tribe.common||{},tribe.common.components=function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=546)}([,function(t,e,n){t.exports=n(310)()},function(t,e){t.exports=React},function(t,e,n){"use strict";e.__esModule=!0;var r=
|
2 |
/*!
|
3 |
Copyright (c) 2017 Jed Watson.
|
4 |
Licensed under the MIT License (MIT), see
|
@@ -9,7 +9,7 @@ var tribe="object"==typeof tribe?tribe:{};tribe.common=tribe.common||{},tribe.co
|
|
9 |
Licensed under the MIT License (MIT), see
|
10 |
http://jedwatson.github.io/classnames
|
11 |
*/
|
12 |
-
!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var t=[],e=0;e<arguments.length;e++){var r=arguments[e];if(r){var i=typeof r;if("string"===i||"number"===i)t.push(r);else if(Array.isArray(r)&&r.length){var u=o.apply(null,r);u&&t.push(u)}else if("object"===i)for(var a in r)n.call(r,a)&&r[a]&&t.push(a)}}return t.join(" ")}t.exports?(o.default=o,t.exports=o):void 0===(r=function(){return o}.apply(e,[]))||(t.exports=r)}()},function(t,e,n){var r=n(23);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},function(t,e,n){var r=n(8),o=n(9),i=n(40),u=n(28),a=n(34),c=function(t,e,n){var s,f,l,p=t&c.F,d=t&c.G,h=t&c.S,v=t&c.P,y=t&c.B,b=t&c.W,g=d?o:o[e]||(o[e]={}),m=g.prototype,_=d?r:h?r[e]:(r[e]||{}).prototype;for(s in d&&(n=e),n)(f=!p&&_&&void 0!==_[s])&&a(g,s)||(l=f?_[s]:n[s],g[s]=d&&"function"!=typeof _[s]?n[s]:y&&f?i(l,r):b&&_[s]==l?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(l):v&&"function"==typeof l?i(Function.call,l):l,v&&((g.virtual||(g.virtual={}))[s]=l,t&c.R&&m&&!m[s]&&u(m,s,l)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},function(t,e,n){var r=n(37),o=n(221),i=n(222),u="[object Null]",a="[object Undefined]",c=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?a:u:c&&c in Object(t)?o(t):i(t)}},function(t,e,n){"use strict";e.__esModule=!0;var r=function(t){return t&&t.__esModule?t:{default:t}}(n(203));e.default=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==(void 0===e?"undefined":(0,r.default)(e))&&"function"!=typeof e?t:e}},function(t,e,n){var r=n(16),o=n(164),i=n(111),u=Object.defineProperty;e.f=n(22)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return u(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){t.exports=!n(49)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var r=n(220),o=n(225);t.exports=function(t,e){var n=o(t,e);return r(n)?n:void 0}},function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";e.__esModule=!0;var r=function(t){return t&&t.__esModule?t:{default:t}}(n(204));e.default=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),(0,r.default)(t,o.key,o)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}()},function(t,e,n){"use strict";e.__esModule=!0;var r=u(n(395)),o=u(n(399)),i=u(n(203));function u(t){return t&&t.__esModule?t:{default:t}}e.default=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+(void 0===e?"undefined":(0,i.default)(e)));t.prototype=(0,o.default)(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(r.default?(0,r.default)(t,e):t.__proto__=e)}},function(t,e,n){var r=n(21),o=n(50);t.exports=n(22)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(157),o=n(93),i=n(42);t.exports=function(t){return i(t)?r(t):o(t)}},function(t,e,n){var r=n(93),o=n(43),i=n(57),u=n(5),a=n(42),c=n(58),s=n(62),f=n(85),l="[object Map]",p="[object Set]",d=Object.prototype.hasOwnProperty;t.exports=function(t){if(null==t)return!0;if(a(t)&&(u(t)||"string"==typeof t||"function"==typeof t.splice||c(t)||f(t)||i(t)))return!t.length;var e=o(t);if(e==l||e==p)return!t.size;if(s(t))return!r(t).length;for(var n in t)if(d.call(t,n))return!1;return!0}},function(t,e,n){"use strict";e.__esModule=!0;var r=function(t){return t&&t.__esModule?t:{default:t}}(n(207));e.default=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return(0,r.default)(t)}},function(t,e,n){"use strict";n.r(e);var r={};n.r(r),n.d(r,"ADD_FORM",function(){return p}),n.d(r,"SET_FORM_FIELDS",function(){return d}),n.d(r,"CREATE_FORM_DRAFT",function(){return h}),n.d(r,"EDIT_FORM_ENTRY",function(){return v}),n.d(r,"SUBMIT_FORM",function(){return y}),n.d(r,"CLEAR_FORM",function(){return b}),n.d(r,"SET_SAVING_FORM",function(){return g}),n.d(r,"ADD_VOLATILE_ID",function(){return m}),n.d(r,"REMOVE_VOLATILE_ID",function(){return _});var o={};n.r(o),n.d(o,"formSelector",function(){return R}),n.d(o,"getFormType",function(){return C}),n.d(o,"getFormEdit",function(){return I}),n.d(o,"getFormCreate",function(){return M}),n.d(o,"getFormSubmit",function(){return L}),n.d(o,"getFormFields",function(){return N}),n.d(o,"getFormSaving",function(){return F}),n.d(o,"getVolatile",function(){return D});var i={};n.r(i),n.d(i,"registerForm",function(){return B}),n.d(i,"clearForm",function(){return W}),n.d(i,"createDraft",function(){return U}),n.d(i,"editEntry",function(){return q}),n.d(i,"setSubmit",function(){return z}),n.d(i,"setSaving",function(){return G}),n.d(i,"addVolatile",function(){return V}),n.d(i,"removeVolatile",function(){return $}),n.d(i,"sendForm",function(){return K}),n.d(i,"maybeRemoveEntry",function(){return H});var u=n(199),a=n.n(u),c=n(3),s=n.n(c),f=n(14),l=n(12),p=l.a+"/ADD_FORM",d=l.a+"/SET_FORM_FIELDS",h=l.a+"/CREATE_FORM_DRAFT",v=l.a+"/EDIT_FORM_ENTRY",y=l.a+"/SUBMIT_FORM",b=l.a+"/CLEAR_FORM",g=l.a+"/SET_SAVING_FORM",m=l.a+"/ADD_VOLATILE_ID",_=l.a+"/REMOVE_VOLATILE_ID",x={edit:!1,create:!1,submit:!1,saving:!1,fields:{},type:n(75).EVENT},w=n(31),O=n.n(w),j=Object(f.combineReducers)({byId:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments[1];switch(e.type){case p:case b:case d:case h:case v:case y:case g:return s()({},t,a()({},e.payload.id,function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:x,e=arguments[1];switch(e.type){case p:return s()({},t,{type:e.payload.type});case b:return s()({},t,x,{type:t.type});case h:return s()({},t,{submit:!1,edit:!1,create:!0,fields:e.payload.fields});case g:return s()({},t,{saving:e.payload.saving});case v:return s()({},t,{create:!1,submit:!1,edit:!0,fields:e.payload.fields});case y:return s()({},t,{submit:!0});default:return t}}(t[e.payload.id],e)));default:return t}},volatile:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments[1];switch(e.type){case m:return[].concat(O()(t),[e.payload.id]);case _:return t.filter(function(t){return t!==e.payload.id});default:return t}}}),E=n(35),S=n.n(E),P=n(30),A=n.n(P),k=n(38),T=n(39),R=function(t,e){return t.forms.byId[e.name]},C=Object(T.createSelector)([R],function(t){return t?t.type:x.type}),I=Object(T.createSelector)([R],function(t){return t?t.edit:x.edit}),M=Object(T.createSelector)([R],function(t){return t?t.create:x.create}),L=Object(T.createSelector)([R],function(t){return t?t.submit:x.submit}),N=Object(T.createSelector)([R],function(t){return t?t.fields:x.fields}),F=Object(T.createSelector)([R],function(t){return t?t.saving:x.saving}),D=function(t){return t.forms.volatile},B=function(t,e){return{type:p,payload:{id:t,type:e}}},W=function(t){return{type:b,payload:{id:t}}},U=function(t,e){return{type:h,payload:{id:t,fields:e}}},q=function(t,e){return{type:v,payload:{id:t,fields:e}}},z=function(t){return{type:y,payload:{id:t}}},G=function(t,e){return{type:g,payload:{id:t,saving:e}}},V=function(t){return{type:m,payload:{id:t}}},$=function(t){return{type:_,payload:{id:t}}},K=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments[2];return function(r,o){var i=o(),u={name:t},a=C(i,u),c=M(i,u),s=N(i,u);if(!F(i,u)){var f={path:c?""+a:a+"/"+s.id,params:{method:c?"POST":"PUT",body:JSON.stringify(e)},actions:{start:function(){return r(G(t,!0))},success:function(e){var o=e.body,i=S()(o,"id","");c&&i&&r(V(i)),n(o),r(W(t)),r(G(t,!1))},error:function(){r(W(t)),r(G(t,!1))}}};r(k.actions.wpRequest(f))}}},H=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(n,r){var o=r(),i=C(o,{name:t});if(!A()(e)){var u=i+"/"+e.id,a={path:u,actions:{success:function(t){return function(e){return function(n){var r=n.body,o=r.id;if("draft"===r.status){var i={path:e,params:{method:"DELETE"},actions:{success:function(){return t($(o))}}};t(k.actions.wpRequest(i))}else t($(o))}}}(n)(u)}};n(k.actions.wpRequest(a))}}};n.d(e,"types",function(){return r}),n.d(e,"actions",function(){return i}),n.d(e,"selectors",function(){return o});e.default=j},,function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(142);t.exports=function(t,e,n){var o=null==t?void 0:r(t,e);return void 0===o?n:o}},function(t,e,n){"use strict";n.r(e),n.d(e,"get",function(){return r}),n.d(e,"google",function(){return o}),n.d(e,"dateSettings",function(){return i}),n.d(e,"editor",function(){return u}),n.d(e,"editorConstants",function(){return a}),n.d(e,"mapsAPI",function(){return c}),n.d(e,"priceSettings",function(){return s}),n.d(e,"settings",function(){return f}),n.d(e,"timezoneHtml",function(){return l}),n.d(e,"config",function(){return p}),n.d(e,"adminUrl",function(){return d}),n.d(e,"tickets",function(){return h}),n.d(e,"rest",function(){return v}),n.d(e,"restNonce",function(){return y}),n.d(e,"editorDefaults",function(){return b}),n.d(e,"list",function(){return g});var r=function(t,e){return window[t]||e},o=function(){return r("google")},i=function(){return r("tribe_date_settings")},u=function(){return r("tribe_blocks_editor")},a=function(){return r("tribe_blocks_editor_constants")},c=function(){return r("tribe_blocks_editor_google_maps_api")},s=function(){return r("tribe_blocks_editor_price_settings")},f=function(){return r("tribe_blocks_editor_settings")},l=function(){return r("tribe_blocks_editor_timezone_html","")},p=function(){return r("tribe_js_config",{})},d=function(){return p().admin_url||""},h=function(){return p().tickets||{}},v=function(){return p().rest||{}},y=function(){return v().nonce||{}},b=function(){return p().editor_defaults||{}},g=function(){return{countries:r("tribe_data_countries"),us_states:r("tribe_data_us_states")}}},function(t,e,n){var r=n(10).Symbol;t.exports=r},function(t,e,n){"use strict";n.r(e);var r={};n.r(r),n.d(r,"WP_REQUEST",function(){return u});var o={};n.r(o),n.d(o,"wpRequest",function(){return a});var i={};n.r(i),n.d(i,"toWpParams",function(){return v}),n.d(i,"toWPQuery",function(){return y}),n.d(i,"getTotalPages",function(){return b});var u=n(12).a+"/WP_REQUEST",a=function(t){return{type:u,meta:t}},c=n(3),s=n.n(c),f=n(120),l=n.n(f),p=n(30),d=n.n(p),h=n(200),v=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=s()({orderby:"title",status:["draft","publish"],order:"asc",page:1},t);return l()(e.search)||d()(e.search)||(e.orderby="relevance"),d()(e.exclude)&&delete e.exclude,e},y=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object(h.stringify)(v(t))},b=function(t){var e=parseInt(t.get("x-wp-totalpages"),10);return isNaN(e)?0:e},g=n(64),m=n.n(g),_=n(121),x=n.n(_),w=n(201),O=n.n(w),j=n(35),E=n.n(j),S=n(6),P=n.n(S),A=(n(205),n(36)),k=function(){return function(t){return function(){var e=x()(m.a.mark(function e(n){var o,i,u,a,c,f,l,p,d,h,v,y,b,g,_,x,w,j,S,k;return m.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n.type===r.WP_REQUEST){e.next=2;break}return e.abrupt("return",t(n));case 2:if(o=n.meta,u=(i=void 0===o?{}:o).path,a=void 0===u?"":u,c=i.params,f=void 0===c?{}:c,t(n),l=E()(Object(A.config)(),"rest",{}),p=l.url,d=void 0===p?"":p,h=l.nonce,v=(void 0===h?{}:h).wp_rest||"",y=l.namespaces||{},b=y.core||"wp/v2",g=""+d+b,_=s()({start:P.a,success:P.a,error:P.a,none:P.a},E()(i,"actions",{})),""!==a){e.next=15;break}return _.none(a),e.abrupt("return");case 15:return x=g+"/"+a,_.start(x,f),w=s()({Accept:"application/json","Content-Type":"application/json"},E()(f,"headers",{}),{"X-WP-Nonce":v}),e.prev=18,e.next=21,fetch(x,s()({},f,{credentials:"include",headers:w}));case 21:if(j=e.sent,S=j.status,O()(S,200,300)){e.next=25;break}throw j;case 25:return e.next=27,j.json();case 27:return k=e.sent,_.success({body:k,headers:j.headers}),e.abrupt("return",[j,k]);case 32:return e.prev=32,e.t0=e.catch(18),_.error(e.t0),e.abrupt("return",e.t0);case 36:case"end":return e.stop()}},e,void 0,[[18,32]])}));return function(t){return e.apply(this,arguments)}}()}};n.d(e,"default",function(){return k}),n.d(e,"types",function(){return r}),n.d(e,"actions",function(){return o}),n.d(e,"utils",function(){return i})},function(t,e,n){"use strict";function r(t,e){return t===e}function o(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r,n=null,o=null;return function(){return function(t,e,n){if(null===e||null===n||e.length!==n.length)return!1;for(var r=e.length,o=0;o<r;o++)if(!t(e[o],n[o]))return!1;return!0}(e,n,arguments)||(o=t.apply(null,arguments)),n=arguments,o}}function i(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];return function(){for(var e=arguments.length,r=Array(e),i=0;i<e;i++)r[i]=arguments[i];var u=0,a=r.pop(),c=function(t){var e=Array.isArray(t[0])?t[0]:t;if(!e.every(function(t){return"function"==typeof t})){var n=e.map(function(t){return typeof t}).join(", ");throw new Error("Selector creators expect all input-selectors to be functions, instead received the following types: ["+n+"]")}return e}(r),s=t.apply(void 0,[function(){return u++,a.apply(null,arguments)}].concat(n)),f=o(function(){for(var t=[],e=c.length,n=0;n<e;n++)t.push(c[n].apply(null,arguments));return s.apply(null,t)});return f.resultFunc=a,f.recomputations=function(){return u},f.resetRecomputations=function(){return u=0},f}}e.__esModule=!0,e.defaultMemoize=o,e.createSelectorCreator=i,e.createStructuredSelector=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:u;if("object"!=typeof t)throw new Error("createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof t);var n=Object.keys(t);return e(n.map(function(e){return t[e]}),function(){for(var t=arguments.length,e=Array(t),r=0;r<t;r++)e[r]=arguments[r];return e.reduce(function(t,e,r){return t[n[r]]=e,t},{})})};var u=e.createSelector=i(o)},function(t,e,n){var r=n(52);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports={}},function(t,e,n){var r=n(92),o=n(86);t.exports=function(t){return null!=t&&o(t.length)&&!r(t)}},function(t,e,n){var r=n(255),o=n(83),i=n(256),u=n(151),a=n(152),c=n(19),s=n(137),f=s(r),l=s(o),p=s(i),d=s(u),h=s(a),v=c;(r&&"[object DataView]"!=v(new r(new ArrayBuffer(1)))||o&&"[object Map]"!=v(new o)||i&&"[object Promise]"!=v(i.resolve())||u&&"[object Set]"!=v(new u)||a&&"[object WeakMap]"!=v(new a))&&(v=function(t){var e=c(t),n="[object Object]"==e?t.constructor:void 0,r=n?s(n):"";if(r)switch(r){case f:return"[object DataView]";case l:return"[object Map]";case p:return"[object Promise]";case d:return"[object Set]";case h:return"[object WeakMap]"}return e}),t.exports=v},function(t,e,n){var r=n(131),o=n(77);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(19),o=n(13),i="[object Symbol]";t.exports=function(t){return"symbol"==typeof t||o(t)&&r(t)==i}},function(t,e,n){var r=n(45),o=1/0;t.exports=function(t){if("string"==typeof t||r(t))return t;var e=t+"";return"0"==e&&1/t==-o?"-0":e}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){t.exports=!0},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){t.exports=function(t){return t}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,n){var r=n(24)(Object,"create");t.exports=r},function(t,e,n){var r=n(230),o=n(231),i=n(232),u=n(233),a=n(234);function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=i,c.prototype.has=u,c.prototype.set=a,t.exports=c},function(t,e,n){var r=n(67);t.exports=function(t,e){for(var n=t.length;n--;)if(r(t[n][0],e))return n;return-1}},function(t,e,n){var r=n(236);t.exports=function(t,e){var n=t.__data__;return r(e)?n["string"==typeof e?"string":"hash"]:n.map}},function(t,e,n){var r=n(245),o=n(13),i=Object.prototype,u=i.hasOwnProperty,a=i.propertyIsEnumerable,c=r(function(){return arguments}())?r:function(t){return o(t)&&u.call(t,"callee")&&!a.call(t,"callee")};t.exports=c},function(t,e,n){(function(t){var r=n(10),o=n(246),i=e&&!e.nodeType&&e,u=i&&"object"==typeof t&&t&&!t.nodeType&&t,a=u&&u.exports===i?r.Buffer:void 0,c=(a?a.isBuffer:void 0)||o;t.exports=c}).call(this,n(73)(t))},function(t,e,n){"use strict";n.r(e);var r={};n.r(r),n.d(r,"ADD_PLUGIN",function(){return d}),n.d(r,"REMOVE_PLUGIN",function(){return h});var o={};n.r(o),n.d(o,"addPlugin",function(){return v}),n.d(o,"removePlugin",function(){return y});var i={};n.r(i),n.d(i,"getPlugins",function(){return x}),n.d(i,"hasPlugin",function(){return w});var u={};n.r(u),n.d(u,"EVENTS_PLUGIN",function(){return O}),n.d(u,"EVENTS_PRO_PLUGIN",function(){return j}),n.d(u,"TICKETS",function(){return E}),n.d(u,"TICKETS_PLUS",function(){return S});var a={};n.r(a),n.d(a,"ReactSelectOption",function(){return k}),n.d(a,"ReactSelectOptions",function(){return T});var c=n(31),s=n.n(c),f=n(197),l=n.n(f),p=n(12),d=p.a+"/ADD_PLUGIN",h=p.a+"/REMOVE_PLUGIN",v=function(t){return{type:d,payload:{name:t}}},y=function(t){return{type:h,payload:{name:t}}},b=n(198),g=n.n(b),m=n(126),_=n.n(m),x=function(t){return t.plugins},w=g()(function(t,e){return _()(x(t),e)}),O="events",j="events-pro",E="tickets",S="tickets-plus",P=n(1),A=n.n(P),k=A.a.shape({label:A.a.string.isRequired,value:A.a.any.isRequired}),T=A.a.arrayOf(k);n.d(e,"types",function(){return r}),n.d(e,"actions",function(){return o}),n.d(e,"selectors",function(){return i}),n.d(e,"constants",function(){return u}),n.d(e,"proptypes",function(){return a});e.default=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments[1];switch(e.type){case r.ADD_PLUGIN:return l()([].concat(s()(t),[e.payload.name]));case r.REMOVE_PLUGIN:return[].concat(s()(t)).filter(function(t){return t!==e.payload.name});default:return t}}},function(t,e,n){"use strict";var r=n(209)(!0);n(130)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){var r=n(21).f,o=n(34),i=n(11)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e){var n=Object.prototype;t.exports=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||n)}},,function(t,e,n){t.exports=n(281)},function(t,e,n){var r=n(166),o=n(101);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},function(t,e,n){var r=n(69),o=n(17);t.exports=function(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=r(t.prototype),i=t.apply(n,e);return o(i)?i:n}}},function(t,e,n){var r=n(17),o=Object.create,i=function(){function t(){}return function(e){if(!r(e))return{};if(o)return o(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();t.exports=i},function(t,e){t.exports=function(t,e){var n=-1,r=t.length;for(e||(e=Array(r));++n<r;)e[n]=t[n];return e}},function(t,e){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){var o=typeof t;return!!(e=null==e?n:e)&&("number"==o||"symbol"!=o&&r.test(t))&&t>-1&&t%1==0&&t<e}},function(t,e,n){var r=n(189),o=n(190);t.exports=function(t,e,n,i){var u=!n;n||(n={});for(var a=-1,c=e.length;++a<c;){var s=e[a],f=i?i(n[s],t[s],s,n,t):void 0;void 0===f&&(f=t[s]),u?o(n,s,f):r(n,s,f)}return n}},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,o=Array(r);++n<r;)o[n]=e(t[n],n,t);return o}},function(t,e,n){"use strict";n.r(e),n.d(e,"EVENT",function(){return r}),n.d(e,"VENUE",function(){return o}),n.d(e,"ORGANIZER",function(){return i});var r="tribe_events",o="tribe_venue",i="tribe_organizer"},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var r=n(23),o=n(8).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e,n){var r=n(76),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(100)("keys"),o=n(66);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(77);t.exports=function(t){return Object(r(t))}},function(t,e,n){var r=n(217),o=n(235),i=n(237),u=n(238),a=n(239);function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=i,c.prototype.has=u,c.prototype.set=a,t.exports=c},function(t,e,n){var r=n(24)(n(10),"Map");t.exports=r},function(t,e,n){var r=n(155);t.exports=function(t){var e=r(t),n=e%1;return e==e?n?e-n:e:0}},function(t,e,n){var r=n(247),o=n(87),i=n(88),u=i&&i.isTypedArray,a=u?o(u):r;t.exports=a},function(t,e){var n=9007199254740991;t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=n}},function(t,e){t.exports=function(t){return function(e){return t(e)}}},function(t,e,n){(function(t){var r=n(136),o=e&&!e.nodeType&&e,i=o&&"object"==typeof t&&t&&!t.nodeType&&t,u=i&&i.exports===o&&r.process,a=function(){try{var t=i&&i.require&&i.require("util").types;return t||u&&u.binding&&u.binding("util")}catch(t){}}();t.exports=a}).call(this,n(73)(t))},function(t,e,n){var r=n(5),o=n(45),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,u=/^\w*$/;t.exports=function(t,e){if(r(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!o(t))||u.test(t)||!i.test(t)||null!=e&&t in Object(e)}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){"use strict";var r=n(52);t.exports.f=function(t){return new function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}(t)}},function(t,e,n){var r=n(19),o=n(17),i="[object AsyncFunction]",u="[object Function]",a="[object GeneratorFunction]",c="[object Proxy]";t.exports=function(t){if(!o(t))return!1;var e=r(t);return e==u||e==a||e==i||e==c}},function(t,e,n){var r=n(62),o=n(248),i=Object.prototype.hasOwnProperty;t.exports=function(t){if(!r(t))return o(t);var e=[];for(var n in Object(t))i.call(t,n)&&"constructor"!=n&&e.push(n);return e}},function(t,e,n){var r=n(54),o=n(249),i=n(250),u=n(251),a=n(252),c=n(253);function s(t){var e=this.__data__=new r(t);this.size=e.size}s.prototype.clear=o,s.prototype.delete=i,s.prototype.get=u,s.prototype.has=a,s.prototype.set=c,t.exports=s},function(t,e){t.exports=function(t,e){for(var n=-1,r=e.length,o=t.length;++n<r;)t[o+n]=e[n];return t}},function(t,e,n){var r=n(167);t.exports=function(t){return null==t?"":r(t)}},function(t,e,n){var r=n(19),o=n(5),i=n(13),u="[object String]";t.exports=function(t){return"string"==typeof t||!o(t)&&i(t)&&r(t)==u}},function(t,e,n){"use strict";var r=n(14),o=function(t){return function(t){return!!t&&"object"==typeof t}(t)&&!function(t){var e=Object.prototype.toString.call(t);return"[object RegExp]"===e||"[object Date]"===e||function(t){return t.$$typeof===i}(t)}(t)};var i="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function u(t,e){return!1!==e.clone&&e.isMergeableObject(t)?c(function(t){return Array.isArray(t)?[]:{}}(t),t,e):t}function a(t,e,n){return t.concat(e).map(function(t){return u(t,n)})}function c(t,e,n){(n=n||{}).arrayMerge=n.arrayMerge||a,n.isMergeableObject=n.isMergeableObject||o;var r=Array.isArray(e);return r===Array.isArray(t)?r?n.arrayMerge(t,e,n):function(t,e,n){var r={};return n.isMergeableObject(t)&&Object.keys(t).forEach(function(e){r[e]=u(t[e],n)}),Object.keys(e).forEach(function(o){n.isMergeableObject(e[o])&&t[o]?r[o]=c(t[o],e[o],n):r[o]=u(e[o],n)}),r}(t,e,n):u(e,n)}c.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(t,n){return c(t,n,e)},{})};var s=c;var f=function t(e){for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return e.length<=r.length?e.apply(void 0,r):function(){for(var n=arguments.length,o=Array(n),i=0;i<n;i++)o[i]=arguments[i];return t.apply(void 0,[e].concat(r,o))}},l=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},p=function(){return function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=t[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function h(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var v=function(t){return null!==t&&"object"===(void 0===t?"undefined":d(t))},y=function(t){return function(t){return"function"==typeof t}(t)},b=function(t){return(y(t)||v(t))&&function(t){return Object.values(t).some(y)}(t)},g=function(){for(var t=arguments.length,e=Array(t),n=0;n<t;n++)e[n]=arguments[n];return r.compose.apply(void 0,function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}(e.reverse()))}(function(t){return Object.entries(t).map(function(t){var e=p(t,2),n=e[0],o=e[1];return b(o)?h({},n,Object(r.combineReducers)(g(o))):y(o)?h({},n,o):void 0})},function(t){return t.filter(v)},function(t){return t.reduce(function(t,e){return s(t,e)},{})});var m=f(function(t,e){return Object(r.combineReducers)(l({},t,g(e)))});function _(t){return m(t)}var x=n(123),w=function(){return function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var n=[],r=!0,o=!1,i=void 0;try{for(var u,a=t[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(t){o=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(o)throw i}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();var O=f(function(t,e){return e.injectedReducers={},e.injectReducers=function(n){Object.entries(n).forEach(function(n){var r=w(n,2),o=r[0],i=r[1];Object(x.has)(e.injectedReducers,o)||(Object(x.set)(e.injectedReducers,o,i),e.replaceReducer(t(e.injectedReducers)))})},e});n.d(e,"b",function(){return _}),n.d(e,"a",function(){return O})},,function(t,e,n){var r=n(9),o=n(8),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(48)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach(function(t){n[++e]=t}),n}},function(t,e,n){var r=n(176),o=n(321),i=n(322),u=n(178),a=n(335),c=n(182),s=n(336),f=n(184),l=n(186),p=n(84),d="Expected a function",h=1,v=2,y=8,b=16,g=32,m=64,_=Math.max;t.exports=function(t,e,n,x,w,O,j,E){var S=e&v;if(!S&&"function"!=typeof t)throw new TypeError(d);var P=x?x.length:0;if(P||(e&=~(g|m),x=w=void 0),j=void 0===j?j:_(p(j),0),E=void 0===E?E:p(E),P-=w?w.length:0,e&m){var A=x,k=w;x=w=void 0}var T=S?void 0:c(t),R=[t,e,n,x,w,A,k,O,j,E];if(T&&s(R,T),t=R[0],e=R[1],n=R[2],x=R[3],w=R[4],!(E=R[9]=void 0===R[9]?S?0:t.length:_(R[9]-P,0))&&e&(y|b)&&(e&=~(y|b)),e&&e!=h)C=e==y||e==b?i(t,e,E):e!=g&&e!=(h|g)||w.length?u.apply(void 0,R):a(t,e,n,x);else var C=o(t,e,n);return l((T?r:f)(C,R),t,e)}},function(t,e){var n="__lodash_placeholder__";t.exports=function(t,e){for(var r=-1,o=t.length,i=0,u=[];++r<o;){var a=t[r];a!==e&&a!==n||(t[r]=n,u[i++]=r)}return u}},function(t,e,n){var r=n(254),o=n(159),i=Object.prototype.propertyIsEnumerable,u=Object.getOwnPropertySymbols,a=u?function(t){return null==t?[]:(t=Object(t),r(u(t),function(e){return i.call(t,e)}))}:o;t.exports=a},function(t,e,n){var r=n(257),o=n(265),i=n(51),u=n(5),a=n(271);t.exports=function(t){return"function"==typeof t?t:null==t?i:"object"==typeof t?u(t)?o(t[0],t[1]):r(t):a(t)}},function(t,e,n){n(285);for(var r=n(8),o=n(28),i=n(41),u=n(11)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),c=0;c<a.length;c++){var s=a[c],f=r[s],l=f&&f.prototype;l&&!l[u]&&o(l,u,s),i[s]=i.Array}},function(t,e,n){var r=n(109),o=n(11)("iterator"),i=n(41);t.exports=n(9).getIteratorMethod=function(t){if(void 0!=t)return t[o]||t["@@iterator"]||i[r(t)]}},function(t,e,n){var r=n(47),o=n(11)("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?n:i?r(e):"Object"==(u=r(e))&&"function"==typeof e.callee?"Arguments":u}},,function(t,e,n){var r=n(23);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(174),o=n(242),i=n(243);t.exports=function(t,e,n){return e==e?i(t,e,n):r(t,o,n)}},function(t,e){t.exports=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}},function(t,e,n){var r=n(69),o=n(115),i=4294967295;function u(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=i,this.__views__=[]}u.prototype=r(o.prototype),u.prototype.constructor=u,t.exports=u},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}},function(t,e,n){var r=n(158)(Object.getPrototypeOf,Object);t.exports=r},function(t,e,n){var r=n(162);t.exports=function(t){var e=new t.constructor(t.byteLength);return new r(e).set(new r(t)),e}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e){t.exports=function(t){return void 0===t}},function(t,e,n){"use strict";e.__esModule=!0;var r=function(t){return t&&t.__esModule?t:{default:t}}(n(283));e.default=function(t){return function(){var e=t.apply(this,arguments);return new r.default(function(t,n){return function o(i,u){try{var a=e[i](u),c=a.value}catch(t){return void n(t)}if(!a.done)return r.default.resolve(c).then(function(t){o("next",t)},function(t){o("throw",t)});t(c)}("next")})}}},function(t,e,n){"use strict";(function(t,r){var o,i=n(196);o="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==t?t:r;var u=Object(i.a)(o);e.a=u}).call(this,n(124),n(312)(t))},function(t,e,n){var r,o,i;!function(n,u){"use strict";"object"==typeof t.exports?t.exports=u():(o=[],void 0===(i="function"==typeof(r=u)?r.apply(e,o):r)||(t.exports=i))}(0,function(){"use strict";var t=Object.prototype.toString;function e(t,e){return null!=t&&Object.prototype.hasOwnProperty.call(t,e)}function n(t){if(!t)return!0;if(o(t)&&0===t.length)return!0;if("string"!=typeof t){for(var n in t)if(e(t,n))return!1;return!0}return!1}function r(e){return t.call(e)}var o=Array.isArray||function(e){return"[object Array]"===t.call(e)};function i(t){var e=parseInt(t);return e.toString()===t?e:t}function u(t){t=t||{};var u=function(t){return Object.keys(u).reduce(function(e,n){return"create"===n?e:("function"==typeof u[n]&&(e[n]=u[n].bind(u,t)),e)},{})};function a(n,r){return t.includeInheritedProps||"number"==typeof r&&Array.isArray(n)||e(n,r)}function c(t,e){if(a(t,e))return t[e]}function s(t,e,n,r){if("number"==typeof e&&(e=[e]),!e||0===e.length)return t;if("string"==typeof e)return s(t,e.split(".").map(i),n,r);var o=e[0],u=c(t,o);return 1===e.length?(void 0!==u&&r||(t[o]=n),u):(void 0===u&&("number"==typeof e[1]?t[o]=[]:t[o]={}),s(t[o],e.slice(1),n,r))}return u.has=function(n,r){if("number"==typeof r?r=[r]:"string"==typeof r&&(r=r.split(".")),!r||0===r.length)return!!n;for(var u=0;u<r.length;u++){var a=i(r[u]);if(!("number"==typeof a&&o(n)&&a<n.length||(t.includeInheritedProps?a in Object(n):e(n,a))))return!1;n=n[a]}return!0},u.ensureExists=function(t,e,n){return s(t,e,n,!0)},u.set=function(t,e,n,r){return s(t,e,n,r)},u.insert=function(t,e,n,r){var i=u.get(t,e);r=~~r,o(i)||(i=[],u.set(t,e,i)),i.splice(r,0,n)},u.empty=function(t,e){var i,c;if(!n(e)&&(null!=t&&(i=u.get(t,e)))){if("string"==typeof i)return u.set(t,e,"");if(function(t){return"boolean"==typeof t||"[object Boolean]"===r(t)}(i))return u.set(t,e,!1);if("number"==typeof i)return u.set(t,e,0);if(o(i))i.length=0;else{if(!function(t){return"object"==typeof t&&"[object Object]"===r(t)}(i))return u.set(t,e,null);for(c in i)a(i,c)&&delete i[c]}}},u.push=function(t,e){var n=u.get(t,e);o(n)||(n=[],u.set(t,e,n)),n.push.apply(n,Array.prototype.slice.call(arguments,2))},u.coalesce=function(t,e,n){for(var r,o=0,i=e.length;o<i;o++)if(void 0!==(r=u.get(t,e[o])))return r;return n},u.get=function(t,e,n){if("number"==typeof e&&(e=[e]),!e||0===e.length)return t;if(null==t)return n;if("string"==typeof e)return u.get(t,e.split("."),n);var r=i(e[0]),o=c(t,r);return void 0===o?n:1===e.length?o:u.get(t[r],e.slice(1),n)},u.del=function(t,e){if("number"==typeof e&&(e=[e]),null==t)return t;if(n(e))return t;if("string"==typeof e)return u.del(t,e.split("."));var r=i(e[0]);return a(t,r)?1!==e.length?u.del(t[r],e.slice(1)):(o(t)?t.splice(r,1):delete t[r],t):t},u}var a=u();return a.create=u,a.withInheritedProps=u({includeInheritedProps:!0}),a})},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){var r=n(16),o=n(211),i=n(101),u=n(80)("IE_PROTO"),a=function(){},c=function(){var t,e=n(78)("iframe"),r=i.length;for(e.style.display="none",n(132).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),c=t.F;r--;)delete c.prototype[i[r]];return c()};t.exports=Object.create||function(t,e){var n;return null!==t?(a.prototype=r(t),n=new a,a.prototype=null,n[u]=t):n=c(),void 0===e?n:o(n,e)}},function(t,e,n){var r=n(112),o=n(42),i=n(97),u=n(84),a=n(363),c=Math.max;t.exports=function(t,e,n,s){t=o(t)?t:a(t),n=n&&!s?u(n):0;var f=t.length;return n<0&&(n=c(f+n,0)),i(t)?n<=f&&t.indexOf(e,n)>-1:!!f&&r(t,e,n)>-1}},function(t,e,n){"use strict";n.d(e,"a",function(){return g}),n.d(e,"c",function(){return _});var r=n(25),o=n.n(r),i=n(26),u=n.n(i),a=n(20),c=n.n(a),s=n(27),f=n.n(s),l=n(6),p=n.n(l),d=n(2),h=n.n(d),v=n(1),y=n.n(v),b=27,g="tribe:click:proxy",m=function(t){t.target.dispatchEvent(new CustomEvent(g,{bubbles:!0}))},_=function(t){return t.stopPropagation()};e.b=function(t){var e=function(e){function n(){var t,e,r,i;o()(this,n);for(var u=arguments.length,a=Array(u),s=0;s<u;s++)a[s]=arguments[s];return e=r=c()(this,(t=n.__proto__||Object.getPrototypeOf(n)).call.apply(t,[this].concat(a))),r.nodeRef=h.a.createRef(),r._eventNamespace=g,r._dispatchClickProxyEvent=m,r._interceptClickProxyEvent=_,r.handleKeyDown=function(t){t.keyCode===b&&r.props.onClose()},r.handleClick=function(){return r.props.onClose()},i=e,c()(r,i)}return f()(n,e),u()(n,[{key:"componentDidMount",value:function(){this.props.isOpen&&this._addEventListeners()}},{key:"componentDidUpdate",value:function(t){t.isOpen!==this.props.isOpen&&(this.props.isOpen?this._addEventListeners():this._removeEventListeners())}},{key:"componentWillUnmount",value:function(){this._removeEventListeners()}},{key:"_addEventListeners",value:function(){var t=this;this.node.addEventListener(this._eventNamespace,this._interceptClickProxyEvent),this.blacklistedNodes.forEach(function(e){return e.addEventListener(t._eventNamespace,t._interceptClickProxyEvent)}),document.addEventListener(this._eventNamespace,this.handleClick),document.addEventListener("click",this._dispatchClickProxyEvent),document.addEventListener("keydown",this.handleKeyDown)}},{key:"_removeEventListeners",value:function(){var t=this;this.node.removeEventListener(this._eventNamespace,this._interceptClickProxyEvent),this.blacklistedNodes.forEach(function(e){return e.removeEventListener(t._eventNamespace,t._interceptClickProxyEvent)}),document.removeEventListener("keydown",this.handleKeyDown),document.removeEventListener(this._eventNamespace,this.handleClick),document.removeEventListener("click",this._dispatchClickProxyEvent)}},{key:"render",value:function(){return wp.element.createElement("div",{ref:this.nodeRef},wp.element.createElement(t,this.props))}},{key:"blacklistedNodes",get:function(){var t=this.props.classNameClickBlacklist.join(", ");return Array.from(document.querySelectorAll(t))}},{key:"node",get:function(){return this.nodeRef.current}}]),n}(d.PureComponent);return e.displayName="WithBlockCloser( "+(t.displayName||t.name||"Component "),e.propTypes={onClose:y.a.func.isRequired,classNameClickBlacklist:y.a.arrayOf(y.a.string).isRequired,isOpen:y.a.bool.isRequired},e.defaultProps={classNameClickBlacklist:[".edit-post-sidebar"],onClose:p.a,isOpen:!1},e}},function(t,e,n){"use strict";e.__esModule=!0;var r=i(n(404)),o=i(n(407));function i(t){return t&&t.__esModule?t:{default:t}}e.default=function(){return function(t,e){if(Array.isArray(t))return t;if((0,r.default)(Object(t)))return function(t,e){var n=[],r=!0,i=!1,u=void 0;try{for(var a,c=(0,o.default)(t);!(r=(a=c.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){i=!0,u=t}finally{try{!r&&c.return&&c.return()}finally{if(i)throw u}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(t,e){t.exports=wp.components},function(t,e,n){"use strict";var r=n(48),o=n(18),i=n(165),u=n(28),a=n(41),c=n(210),s=n(61),f=n(214),l=n(11)("iterator"),p=!([].keys&&"next"in[].keys()),d=function(){return this};t.exports=function(t,e,n,h,v,y,b){c(n,e,h);var g,m,_,x=function(t){if(!p&&t in E)return E[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},w=e+" Iterator",O="values"==v,j=!1,E=t.prototype,S=E[l]||E["@@iterator"]||v&&E[v],P=S||x(v),A=v?O?x("entries"):P:void 0,k="Array"==e&&E.entries||S;if(k&&(_=f(k.call(new t)))!==Object.prototype&&_.next&&(s(_,w,!0),r||"function"==typeof _[l]||u(_,l,d)),O&&S&&"values"!==S.name&&(j=!0,P=function(){return S.call(this)}),r&&!b||!p&&!j&&E[l]||u(E,l,P),a[e]=P,a[w]=d,v)if(g={values:O?P:x("values"),keys:y?P:x("keys"),entries:A},b)for(m in g)m in E||i(E,m,g[m]);else o(o.P+o.F*(p||j),e,g);return g}},function(t,e,n){var r=n(47);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(8).document;t.exports=r&&r.documentElement},function(t,e,n){var r=n(16);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(e){var i=t.return;throw void 0!==i&&r(i.call(t)),e}}},function(t,e,n){var r=n(41),o=n(11)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},function(t,e,n){var r=n(11)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],u=i[r]();u.next=function(){return{done:n=!0}},i[r]=function(){return u},t(i)}catch(t){}return n}},function(t,e,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(this,n(124))},function(t,e){var n=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return n.call(t)}catch(t){}try{return t+""}catch(t){}}return""}},function(t,e,n){var r=n(259),o=n(13);t.exports=function t(e,n,i,u,a){return e===n||(null==e||null==n||!o(e)&&!o(n)?e!=e&&n!=n:r(e,n,i,u,t,a))}},function(t,e,n){var r=n(149),o=n(260),i=n(150),u=1,a=2;t.exports=function(t,e,n,c,s,f){var l=n&u,p=t.length,d=e.length;if(p!=d&&!(l&&d>p))return!1;var h=f.get(t);if(h&&f.get(e))return h==e;var v=-1,y=!0,b=n&a?new r:void 0;for(f.set(t,e),f.set(e,t);++v<p;){var g=t[v],m=e[v];if(c)var _=l?c(m,g,v,e,t,f):c(g,m,v,t,e,f);if(void 0!==_){if(_)continue;y=!1;break}if(b){if(!o(e,function(t,e){if(!i(b,e)&&(g===t||s(g,t,n,c,f)))return b.push(e)})){y=!1;break}}else if(g!==m&&!s(g,m,n,c,f)){y=!1;break}}return f.delete(t),f.delete(e),y}},function(t,e,n){var r=n(17);t.exports=function(t){return t==t&&!r(t)}},function(t,e){t.exports=function(t,e){return function(n){return null!=n&&n[t]===e&&(void 0!==e||t in Object(n))}}},function(t,e,n){var r=n(143),o=n(46);t.exports=function(t,e){for(var n=0,i=(e=r(e,t)).length;null!=t&&n<i;)t=t[o(e[n++])];return n&&n==i?t:void 0}},function(t,e,n){var r=n(5),o=n(89),i=n(163),u=n(96);t.exports=function(t,e){return r(t)?t:o(t,e)?[t]:i(u(t))}},function(t,e,n){var r=n(16),o=n(52),i=n(11)("species");t.exports=function(t,e){var n,u=r(t).constructor;return void 0===u||void 0==(n=r(u)[i])?e:o(n)}},function(t,e,n){var r,o,i,u=n(40),a=n(291),c=n(132),s=n(78),f=n(8),l=f.process,p=f.setImmediate,d=f.clearImmediate,h=f.MessageChannel,v=f.Dispatch,y=0,b={},g=function(){var t=+this;if(b.hasOwnProperty(t)){var e=b[t];delete b[t],e()}},m=function(t){g.call(t.data)};p&&d||(p=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return b[++y]=function(){a("function"==typeof t?t:Function(t),e)},r(y),y},d=function(t){delete b[t]},"process"==n(47)(l)?r=function(t){l.nextTick(u(g,t,1))}:v&&v.now?r=function(t){v.now(u(g,t,1))}:h?(i=(o=new h).port2,o.port1.onmessage=m,r=u(i.postMessage,i,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(r=function(t){f.postMessage(t+"","*")},f.addEventListener("message",m,!1)):r="onreadystatechange"in s("script")?function(t){c.appendChild(s("script")).onreadystatechange=function(){c.removeChild(this),g.call(t)}}:function(t){setTimeout(u(g,t,1),0)}),t.exports={set:p,clear:d}},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},function(t,e,n){var r=n(16),o=n(23),i=n(91);t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t);return(0,n.resolve)(e),n.promise}},function(t,e,n){"use strict";n.r(e);var r=n(75),o=n(32),i=n(59),u=n(98),a=Object(u.b)({plugins:i.default,forms:o.default});n.d(e,"default",function(){return a}),n.d(e,"editor",function(){return r}),n.d(e,"forms",function(){return o}),n.d(e,"plugins",function(){return i})},function(t,e,n){var r=n(82),o=n(240),i=n(241);function u(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new r;++e<n;)this.add(t[e])}u.prototype.add=u.prototype.push=o,u.prototype.has=i,t.exports=u},function(t,e){t.exports=function(t,e){return t.has(e)}},function(t,e,n){var r=n(24)(n(10),"Set");t.exports=r},function(t,e,n){var r=n(24)(n(10),"WeakMap");t.exports=r},function(t,e,n){var r=n(331),o=n(185)(r);t.exports=o},function(t,e){t.exports=function(t){return t.placeholder}},function(t,e,n){var r=n(156),o=1/0,i=1.7976931348623157e308;t.exports=function(t){return t?(t=r(t))===o||t===-o?(t<0?-1:1)*i:t==t?t:0:0===t?t:0}},function(t,e,n){var r=n(17),o=n(45),i=NaN,u=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,s=/^0o[0-7]+$/i,f=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(o(t))return i;if(r(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=r(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(u,"");var n=c.test(t);return n||s.test(t)?f(t.slice(2),n?2:8):a.test(t)?i:+t}},function(t,e,n){var r=n(244),o=n(57),i=n(5),u=n(58),a=n(71),c=n(85),s=Object.prototype.hasOwnProperty;t.exports=function(t,e){var n=i(t),f=!n&&o(t),l=!n&&!f&&u(t),p=!n&&!f&&!l&&c(t),d=n||f||l||p,h=d?r(t.length,String):[],v=h.length;for(var y in t)!e&&!s.call(t,y)||d&&("length"==y||l&&("offset"==y||"parent"==y)||p&&("buffer"==y||"byteLength"==y||"byteOffset"==y)||a(y,v))||h.push(y);return h}},function(t,e){t.exports=function(t,e){return function(n){return t(e(n))}}},function(t,e){t.exports=function(){return[]}},function(t,e,n){var r=n(161),o=n(105),i=n(29);t.exports=function(t){return r(t,i,o)}},function(t,e,n){var r=n(95),o=n(5);t.exports=function(t,e,n){var i=e(t);return o(t)?i:r(i,n(t))}},function(t,e,n){var r=n(10).Uint8Array;t.exports=r},function(t,e,n){var r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,i=n(266)(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(r,function(t,n,r,i){e.push(r?i.replace(o,"$1"):n||t)}),e});t.exports=i},function(t,e,n){t.exports=!n(22)&&!n(49)(function(){return 7!=Object.defineProperty(n(78)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){t.exports=n(28)},function(t,e,n){var r=n(34),o=n(44),i=n(212)(!1),u=n(80)("IE_PROTO");t.exports=function(t,e){var n,a=o(t),c=0,s=[];for(n in a)n!=u&&r(a,n)&&s.push(n);for(;e.length>c;)r(a,n=e[c++])&&(~i(s,n)||s.push(n));return s}},function(t,e,n){var r=n(37),o=n(74),i=n(5),u=n(45),a=1/0,c=r?r.prototype:void 0,s=c?c.toString:void 0;t.exports=function t(e){if("string"==typeof e)return e;if(i(e))return o(e,t)+"";if(u(e))return s?s.call(e):"";var n=e+"";return"0"==n&&1/e==-a?"-0":n}},function(t,e){},function(t,e,n){e.f=n(11)},function(t,e,n){var r=n(8),o=n(9),i=n(48),u=n(169),a=n(21).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:u.f(t)})}},,,function(t,e,n){var r=n(112);t.exports=function(t,e){return!(null==t||!t.length)&&r(t,e,0)>-1}},function(t,e){t.exports=function(t,e,n,r){for(var o=t.length,i=n+(r?1:-1);r?i--:++i<o;)if(e(t[i],i,t))return i;return-1}},function(t,e){t.exports={}},function(t,e,n){var r=n(51),o=n(177),i=o?function(t,e){return o.set(t,e),t}:r;t.exports=i},function(t,e,n){var r=n(152),o=r&&new r;t.exports=o},function(t,e,n){var r=n(179),o=n(180),i=n(323),u=n(68),a=n(181),c=n(154),s=n(334),f=n(104),l=n(10),p=1,d=2,h=8,v=16,y=128,b=512;t.exports=function t(e,n,g,m,_,x,w,O,j,E){var S=n&y,P=n&p,A=n&d,k=n&(h|v),T=n&b,R=A?void 0:u(e);return function p(){for(var d=arguments.length,h=Array(d),v=d;v--;)h[v]=arguments[v];if(k)var y=c(p),b=i(h,y);if(m&&(h=r(h,m,_,k)),x&&(h=o(h,x,w,k)),d-=b,k&&d<E){var C=f(h,y);return a(e,n,t,p.placeholder,g,h,C,O,j,E-d)}var I=P?g:this,M=A?I[e]:e;return d=h.length,O?h=s(h,O):T&&d>1&&h.reverse(),S&&j<d&&(h.length=j),this&&this!==l&&this instanceof p&&(M=R||u(M)),M.apply(I,h)}}},function(t,e){var n=Math.max;t.exports=function(t,e,r,o){for(var i=-1,u=t.length,a=r.length,c=-1,s=e.length,f=n(u-a,0),l=Array(s+f),p=!o;++c<s;)l[c]=e[c];for(;++i<a;)(p||i<u)&&(l[r[i]]=t[i]);for(;f--;)l[c++]=t[i++];return l}},function(t,e){var n=Math.max;t.exports=function(t,e,r,o){for(var i=-1,u=t.length,a=-1,c=r.length,s=-1,f=e.length,l=n(u-c,0),p=Array(l+f),d=!o;++i<l;)p[i]=t[i];for(var h=i;++s<f;)p[h+s]=e[s];for(;++a<c;)(d||i<u)&&(p[h+r[a]]=t[i++]);return p}},function(t,e,n){var r=n(324),o=n(184),i=n(186),u=1,a=2,c=4,s=8,f=32,l=64;t.exports=function(t,e,n,p,d,h,v,y,b,g){var m=e&s;e|=m?f:l,(e&=~(m?l:f))&c||(e&=~(u|a));var _=[t,e,d,m?h:void 0,m?v:void 0,m?void 0:h,m?void 0:v,y,b,g],x=n.apply(void 0,_);return r(t)&&o(x,_),x.placeholder=p,i(x,t,e)}},function(t,e,n){var r=n(177),o=n(6),i=r?function(t){return r.get(t)}:o;t.exports=i},function(t,e,n){var r=n(69),o=n(115);function i(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}i.prototype=r(o.prototype),i.prototype.constructor=i,t.exports=i},function(t,e,n){var r=n(176),o=n(185)(r);t.exports=o},function(t,e){var n=800,r=16,o=Date.now;t.exports=function(t){var e=0,i=0;return function(){var u=o(),a=r-(u-i);if(i=u,a>0){if(++e>=n)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},function(t,e,n){var r=n(329),o=n(330),i=n(153),u=n(333);t.exports=function(t,e,n){var a=e+"";return i(t,o(a,u(r(a),n)))}},function(t,e,n){var r=n(24),o=function(){try{var t=r(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();t.exports=o},function(t,e,n){var r=n(72),o=n(29);t.exports=function(t,e){return t&&r(e,o(e),t)}},function(t,e,n){var r=n(190),o=n(67),i=Object.prototype.hasOwnProperty;t.exports=function(t,e,n){var u=t[e];i.call(t,e)&&o(u,n)&&(void 0!==n||e in t)||r(t,e,n)}},function(t,e,n){var r=n(187);t.exports=function(t,e,n){"__proto__"==e&&r?r(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}},function(t,e,n){var r=n(94),o=n(116),i=n(189),u=n(188),a=n(338),c=n(341),s=n(70),f=n(342),l=n(343),p=n(160),d=n(344),h=n(43),v=n(345),y=n(346),b=n(351),g=n(5),m=n(58),_=n(352),x=n(17),w=n(354),O=n(29),j=1,E=2,S=4,P="[object Arguments]",A="[object Function]",k="[object GeneratorFunction]",T="[object Object]",R={};R[P]=R["[object Array]"]=R["[object ArrayBuffer]"]=R["[object DataView]"]=R["[object Boolean]"]=R["[object Date]"]=R["[object Float32Array]"]=R["[object Float64Array]"]=R["[object Int8Array]"]=R["[object Int16Array]"]=R["[object Int32Array]"]=R["[object Map]"]=R["[object Number]"]=R[T]=R["[object RegExp]"]=R["[object Set]"]=R["[object String]"]=R["[object Symbol]"]=R["[object Uint8Array]"]=R["[object Uint8ClampedArray]"]=R["[object Uint16Array]"]=R["[object Uint32Array]"]=!0,R["[object Error]"]=R[A]=R["[object WeakMap]"]=!1,t.exports=function t(e,n,C,I,M,L){var N,F=n&j,D=n&E,B=n&S;if(C&&(N=M?C(e,I,M,L):C(e)),void 0!==N)return N;if(!x(e))return e;var W=g(e);if(W){if(N=v(e),!F)return s(e,N)}else{var U=h(e),q=U==A||U==k;if(m(e))return c(e,F);if(U==T||U==P||q&&!M){if(N=D||q?{}:b(e),!F)return D?l(e,a(N,e)):f(e,u(N,e))}else{if(!R[U])return M?e:{};N=y(e,U,F)}}L||(L=new r);var z=L.get(e);if(z)return z;if(L.set(e,N),w(e))return e.forEach(function(r){N.add(t(r,n,C,r,e,L))}),N;if(_(e))return e.forEach(function(r,o){N.set(o,t(r,n,C,o,e,L))}),N;var G=B?D?d:p:D?keysIn:O,V=W?void 0:G(e);return o(V||e,function(r,o){V&&(r=e[o=r]),i(N,o,t(r,n,C,o,e,L))}),N}},function(t,e,n){var r=n(157),o=n(339),i=n(42);t.exports=function(t){return i(t)?r(t,!0):o(t)}},function(t,e,n){var r=n(95),o=n(117),i=n(105),u=n(159),a=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)r(e,i(t)),t=o(t);return e}:u;t.exports=a},function(t,e,n){var r=n(103),o=8;function i(t,e,n){var u=r(t,o,void 0,void 0,void 0,void 0,void 0,e=n?void 0:e);return u.placeholder=i.placeholder,u}i.placeholder={},t.exports=i},function(t,e,n){var r=n(274);t.exports=function(t){return null!=t&&t.length?r(t,1):[]}},function(t,e,n){"use strict";function r(t){var e,n=t.Symbol;return"function"==typeof n?n.observable?e=n.observable:(e=n("observable"),n.observable=e):e="@@observable",e}n.d(e,"a",function(){return r})},function(t,e,n){var r=n(313);t.exports=function(t){return t&&t.length?r(t):[]}},function(t,e,n){var r=n(316)("curry",n(194));r.placeholder=n(175),t.exports=r},function(t,e,n){"use strict";e.__esModule=!0;var r=function(t){return t&&t.__esModule?t:{default:t}}(n(204));e.default=function(t,e,n){return e in t?(0,r.default)(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},function(t,e,n){"use strict";var r=Object.prototype.hasOwnProperty;function o(t){return decodeURIComponent(t.replace(/\+/g," "))}e.stringify=function(t,e){e=e||"";var n=[];for(var o in"string"!=typeof e&&(e="?"),t)r.call(t,o)&&n.push(encodeURIComponent(o)+"="+encodeURIComponent(t[o]));return n.length?e+n.join("&"):""},e.parse=function(t){for(var e,n=/([^=?&]+)=?([^&]*)/g,r={};e=n.exec(t);r[o(e[1])]=o(e[2]));return r}},function(t,e,n){var r=n(367),o=n(155),i=n(156);t.exports=function(t,e,n){return e=o(e),void 0===n?(n=e,e=0):n=o(n),t=i(t),r(t,e,n)}},function(t,e,n){"use strict";t.exports=function(t,e,n,r,o,i,u,a){if(!t){var c;if(void 0===e)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[n,r,o,i,u,a],f=0;(c=new Error(e.replace(/%s/g,function(){return s[f++]}))).name="Invariant Violation"}throw c.framesToPop=1,c}}},function(t,e,n){"use strict";e.__esModule=!0;var r=u(n(374)),o=u(n(376)),i="function"==typeof o.default&&"symbol"==typeof r.default?function(t){return typeof t}:function(t){return t&&"function"==typeof o.default&&t.constructor===o.default&&t!==o.default.prototype?"symbol":typeof t};function u(t){return t&&t.__esModule?t:{default:t}}e.default="function"==typeof o.default&&"symbol"===i(r.default)?function(t){return void 0===t?"undefined":i(t)}:function(t){return t&&"function"==typeof o.default&&t.constructor===o.default&&t!==o.default.prototype?"symbol":void 0===t?"undefined":i(t)}},function(t,e,n){t.exports={default:n(365),__esModule:!0}},function(t,e){!function(t){"use strict";if(!t.fetch){var e={searchParams:"URLSearchParams"in t,iterable:"Symbol"in t&&"iterator"in Symbol,blob:"FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch(t){return!1}}(),formData:"FormData"in t,arrayBuffer:"ArrayBuffer"in t};if(e.arrayBuffer)var n=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],r=function(t){return t&&DataView.prototype.isPrototypeOf(t)},o=ArrayBuffer.isView||function(t){return t&&n.indexOf(Object.prototype.toString.call(t))>-1};f.prototype.append=function(t,e){t=a(t),e=c(e);var n=this.map[t];this.map[t]=n?n+","+e:e},f.prototype.delete=function(t){delete this.map[a(t)]},f.prototype.get=function(t){return t=a(t),this.has(t)?this.map[t]:null},f.prototype.has=function(t){return this.map.hasOwnProperty(a(t))},f.prototype.set=function(t,e){this.map[a(t)]=c(e)},f.prototype.forEach=function(t,e){for(var n in this.map)this.map.hasOwnProperty(n)&&t.call(e,this.map[n],n,this)},f.prototype.keys=function(){var t=[];return this.forEach(function(e,n){t.push(n)}),s(t)},f.prototype.values=function(){var t=[];return this.forEach(function(e){t.push(e)}),s(t)},f.prototype.entries=function(){var t=[];return this.forEach(function(e,n){t.push([n,e])}),s(t)},e.iterable&&(f.prototype[Symbol.iterator]=f.prototype.entries);var i=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];y.prototype.clone=function(){return new y(this,{body:this._bodyInit})},v.call(y.prototype),v.call(g.prototype),g.prototype.clone=function(){return new g(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new f(this.headers),url:this.url})},g.error=function(){var t=new g(null,{status:0,statusText:""});return t.type="error",t};var u=[301,302,303,307,308];g.redirect=function(t,e){if(-1===u.indexOf(e))throw new RangeError("Invalid status code");return new g(null,{status:e,headers:{location:t}})},t.Headers=f,t.Request=y,t.Response=g,t.fetch=function(t,n){return new Promise(function(r,o){var i=new y(t,n),u=new XMLHttpRequest;u.onload=function(){var t={status:u.status,statusText:u.statusText,headers:function(t){var e=new f;return t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var n=t.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();e.append(r,o)}}),e}(u.getAllResponseHeaders()||"")};t.url="responseURL"in u?u.responseURL:t.headers.get("X-Request-URL");var e="response"in u?u.response:u.responseText;r(new g(e,t))},u.onerror=function(){o(new TypeError("Network request failed"))},u.ontimeout=function(){o(new TypeError("Network request failed"))},u.open(i.method,i.url,!0),"include"===i.credentials?u.withCredentials=!0:"omit"===i.credentials&&(u.withCredentials=!1),"responseType"in u&&e.blob&&(u.responseType="blob"),i.headers.forEach(function(t,e){u.setRequestHeader(e,t)}),u.send(void 0===i._bodyInit?null:i._bodyInit)})},t.fetch.polyfill=!0}function a(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function c(t){return"string"!=typeof t&&(t=String(t)),t}function s(t){var n={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return e.iterable&&(n[Symbol.iterator]=function(){return n}),n}function f(t){this.map={},t instanceof f?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function l(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function p(t){return new Promise(function(e,n){t.onload=function(){e(t.result)},t.onerror=function(){n(t.error)}})}function d(t){var e=new FileReader,n=p(e);return e.readAsArrayBuffer(t),n}function h(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function v(){return this.bodyUsed=!1,this._initBody=function(t){if(this._bodyInit=t,t)if("string"==typeof t)this._bodyText=t;else if(e.blob&&Blob.prototype.isPrototypeOf(t))this._bodyBlob=t;else if(e.formData&&FormData.prototype.isPrototypeOf(t))this._bodyFormData=t;else if(e.searchParams&&URLSearchParams.prototype.isPrototypeOf(t))this._bodyText=t.toString();else if(e.arrayBuffer&&e.blob&&r(t))this._bodyArrayBuffer=h(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!e.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(t)&&!o(t))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=h(t)}else this._bodyText="";this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):e.searchParams&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},e.blob&&(this.blob=function(){var t=l(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?l(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(d)}),this.text=function(){var t=l(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,n=p(e);return e.readAsText(t),n}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),n=new Array(e.length),r=0;r<e.length;r++)n[r]=String.fromCharCode(e[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},e.formData&&(this.formData=function(){return this.text().then(b)}),this.json=function(){return this.text().then(JSON.parse)},this}function y(t,e){var n=(e=e||{}).body;if(t instanceof y){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url,this.credentials=t.credentials,e.headers||(this.headers=new f(t.headers)),this.method=t.method,this.mode=t.mode,n||null==t._bodyInit||(n=t._bodyInit,t.bodyUsed=!0)}else this.url=String(t);if(this.credentials=e.credentials||this.credentials||"omit",!e.headers&&this.headers||(this.headers=new f(e.headers)),this.method=function(t){var e=t.toUpperCase();return i.indexOf(e)>-1?e:t}(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function b(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var n=t.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");e.append(decodeURIComponent(r),decodeURIComponent(o))}}),e}function g(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new f(e.headers),this.url=e.url||"",this._initBody(t)}}("undefined"!=typeof self?self:this)},function(t,e,n){"use strict";function r(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}var o=n(2),i=n(1),u=n.n(i),a=u.a.shape({trySubscribe:u.a.func.isRequired,tryUnsubscribe:u.a.func.isRequired,notifyNestedSubs:u.a.func.isRequired,isSubscribed:u.a.func.isRequired}),c=u.a.shape({subscribe:u.a.func.isRequired,dispatch:u.a.func.isRequired,getState:u.a.func.isRequired});!function(t){var e;void 0===t&&(t="store");var n=t+"Subscription",i=function(e){r(u,e);var i=u.prototype;function u(n,r){var o;return(o=e.call(this,n,r)||this)[t]=n.store,o}return i.getChildContext=function(){var e;return(e={})[t]=this[t],e[n]=null,e},i.render=function(){return o.Children.only(this.props.children)},u}(o.Component);i.propTypes={store:c.isRequired,children:u.a.element.isRequired},i.childContextTypes=((e={})[t]=c.isRequired,e[n]=a,e)}();function s(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function f(){return(f=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}function l(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r<i.length;r++)n=i[r],e.indexOf(n)>=0||(o[n]=t[n]);return o}var p=n(372),d=n.n(p),h=n(202),v=n.n(h),y=n(300),b=null,g={notify:function(){}};var m=function(){function t(t,e,n){this.store=t,this.parentSub=e,this.onStateChange=n,this.unsubscribe=null,this.listeners=g}var e=t.prototype;return e.addNestedSub=function(t){return this.trySubscribe(),this.listeners.subscribe(t)},e.notifyNestedSubs=function(){this.listeners.notify()},e.isSubscribed=function(){return Boolean(this.unsubscribe)},e.trySubscribe=function(){this.unsubscribe||(this.unsubscribe=this.parentSub?this.parentSub.addNestedSub(this.onStateChange):this.store.subscribe(this.onStateChange),this.listeners=function(){var t=[],e=[];return{clear:function(){e=b,t=b},notify:function(){for(var n=t=e,r=0;r<n.length;r++)n[r]()},get:function(){return e},subscribe:function(n){var r=!0;return e===t&&(e=t.slice()),e.push(n),function(){r&&t!==b&&(r=!1,e===t&&(e=t.slice()),e.splice(e.indexOf(n),1))}}}}())},e.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null,this.listeners.clear(),this.listeners=g)},t}(),_=0,x={};function w(){}function O(t,e){var n,i;void 0===e&&(e={});var u=e,p=u.getDisplayName,h=void 0===p?function(t){return"ConnectAdvanced("+t+")"}:p,b=u.methodName,g=void 0===b?"connectAdvanced":b,O=u.renderCountProp,j=void 0===O?void 0:O,E=u.shouldHandleStateChanges,S=void 0===E||E,P=u.storeKey,A=void 0===P?"store":P,k=u.withRef,T=void 0!==k&&k,R=l(u,["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef"]),C=A+"Subscription",I=_++,M=((n={})[A]=c,n[C]=a,n),L=((i={})[C]=a,i);return function(e){v()(Object(y.isValidElementType)(e),"You must pass a component to the function returned by "+g+". Instead received "+JSON.stringify(e));var n=e.displayName||e.name||"Component",i=h(n),u=f({},R,{getDisplayName:h,methodName:g,renderCountProp:j,shouldHandleStateChanges:S,storeKey:A,withRef:T,displayName:i,wrappedComponentName:n,WrappedComponent:e}),a=function(n){function a(t,e){var r;return(r=n.call(this,t,e)||this).version=I,r.state={},r.renderCount=0,r.store=t[A]||e[A],r.propsMode=Boolean(t[A]),r.setWrappedInstance=r.setWrappedInstance.bind(s(s(r))),v()(r.store,'Could not find "'+A+'" in either the context or props of "'+i+'". Either wrap the root component in a <Provider>, or explicitly pass "'+A+'" as a prop to "'+i+'".'),r.initSelector(),r.initSubscription(),r}r(a,n);var c=a.prototype;return c.getChildContext=function(){var t,e=this.propsMode?null:this.subscription;return(t={})[C]=e||this.context[C],t},c.componentDidMount=function(){S&&(this.subscription.trySubscribe(),this.selector.run(this.props),this.selector.shouldComponentUpdate&&this.forceUpdate())},c.componentWillReceiveProps=function(t){this.selector.run(t)},c.shouldComponentUpdate=function(){return this.selector.shouldComponentUpdate},c.componentWillUnmount=function(){this.subscription&&this.subscription.tryUnsubscribe(),this.subscription=null,this.notifyNestedSubs=w,this.store=null,this.selector.run=w,this.selector.shouldComponentUpdate=!1},c.getWrappedInstance=function(){return v()(T,"To access the wrapped instance, you need to specify { withRef: true } in the options argument of the "+g+"() call."),this.wrappedInstance},c.setWrappedInstance=function(t){this.wrappedInstance=t},c.initSelector=function(){var e=t(this.store.dispatch,u);this.selector=function(t,e){var n={run:function(r){try{var o=t(e.getState(),r);(o!==n.props||n.error)&&(n.shouldComponentUpdate=!0,n.props=o,n.error=null)}catch(t){n.shouldComponentUpdate=!0,n.error=t}}};return n}(e,this.store),this.selector.run(this.props)},c.initSubscription=function(){if(S){var t=(this.propsMode?this.props:this.context)[C];this.subscription=new m(this.store,t,this.onStateChange.bind(this)),this.notifyNestedSubs=this.subscription.notifyNestedSubs.bind(this.subscription)}},c.onStateChange=function(){this.selector.run(this.props),this.selector.shouldComponentUpdate?(this.componentDidUpdate=this.notifyNestedSubsOnComponentDidUpdate,this.setState(x)):this.notifyNestedSubs()},c.notifyNestedSubsOnComponentDidUpdate=function(){this.componentDidUpdate=void 0,this.notifyNestedSubs()},c.isSubscribed=function(){return Boolean(this.subscription)&&this.subscription.isSubscribed()},c.addExtraProps=function(t){if(!(T||j||this.propsMode&&this.subscription))return t;var e=f({},t);return T&&(e.ref=this.setWrappedInstance),j&&(e[j]=this.renderCount++),this.propsMode&&this.subscription&&(e[C]=this.subscription),e},c.render=function(){var t=this.selector;if(t.shouldComponentUpdate=!1,t.error)throw t.error;return Object(o.createElement)(e,this.addExtraProps(t.props))},a}(o.Component);return a.WrappedComponent=e,a.displayName=i,a.childContextTypes=L,a.contextTypes=M,a.propTypes=M,d()(a,e)}}var j=Object.prototype.hasOwnProperty;function E(t,e){return t===e?0!==t||0!==e||1/t==1/e:t!=t&&e!=e}function S(t,e){if(E(t,e))return!0;if("object"!=typeof t||null===t||"object"!=typeof e||null===e)return!1;var n=Object.keys(t),r=Object.keys(e);if(n.length!==r.length)return!1;for(var o=0;o<n.length;o++)if(!j.call(e,n[o])||!E(t[n[o]],e[n[o]]))return!1;return!0}var P=n(14);function A(t){return function(e,n){var r=t(e,n);function o(){return r}return o.dependsOnOwnProps=!1,o}}function k(t){return null!==t.dependsOnOwnProps&&void 0!==t.dependsOnOwnProps?Boolean(t.dependsOnOwnProps):1!==t.length}function T(t,e){return function(e,n){n.displayName;var r=function(t,e){return r.dependsOnOwnProps?r.mapToProps(t,e):r.mapToProps(t)};return r.dependsOnOwnProps=!0,r.mapToProps=function(e,n){r.mapToProps=t,r.dependsOnOwnProps=k(t);var o=r(e,n);return"function"==typeof o&&(r.mapToProps=o,r.dependsOnOwnProps=k(o),o=r(e,n)),o},r}}var R=[function(t){return"function"==typeof t?T(t):void 0},function(t){return t?void 0:A(function(t){return{dispatch:t}})},function(t){return t&&"object"==typeof t?A(function(e){return Object(P.bindActionCreators)(t,e)}):void 0}];var C=[function(t){return"function"==typeof t?T(t):void 0},function(t){return t?void 0:A(function(){return{}})}];function I(t,e,n){return f({},n,t,e)}var M=[function(t){return"function"==typeof t?function(t){return function(e,n){n.displayName;var r,o=n.pure,i=n.areMergedPropsEqual,u=!1;return function(e,n,a){var c=t(e,n,a);return u?o&&i(c,r)||(r=c):(u=!0,r=c),r}}}(t):void 0},function(t){return t?void 0:function(){return I}}];function L(t,e,n,r){return function(o,i){return n(t(o,i),e(r,i),i)}}function N(t,e,n,r,o){var i,u,a,c,s,f=o.areStatesEqual,l=o.areOwnPropsEqual,p=o.areStatePropsEqual,d=!1;function h(o,d){var h=!l(d,u),v=!f(o,i);return i=o,u=d,h&&v?(a=t(i,u),e.dependsOnOwnProps&&(c=e(r,u)),s=n(a,c,u)):h?(t.dependsOnOwnProps&&(a=t(i,u)),e.dependsOnOwnProps&&(c=e(r,u)),s=n(a,c,u)):v?function(){var e=t(i,u),r=!p(e,a);return a=e,r&&(s=n(a,c,u)),s}():s}return function(o,f){return d?h(o,f):function(o,f){return a=t(i=o,u=f),c=e(r,u),s=n(a,c,u),d=!0,s}(o,f)}}function F(t,e){var n=e.initMapStateToProps,r=e.initMapDispatchToProps,o=e.initMergeProps,i=l(e,["initMapStateToProps","initMapDispatchToProps","initMergeProps"]),u=n(t,i),a=r(t,i),c=o(t,i);return(i.pure?N:L)(u,a,c,t,i)}function D(t,e,n){for(var r=e.length-1;r>=0;r--){var o=e[r](t);if(o)return o}return function(e,r){throw new Error("Invalid value of type "+typeof t+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function B(t,e){return t===e}var W=function(t){var e=void 0===t?{}:t,n=e.connectHOC,r=void 0===n?O:n,o=e.mapStateToPropsFactories,i=void 0===o?C:o,u=e.mapDispatchToPropsFactories,a=void 0===u?R:u,c=e.mergePropsFactories,s=void 0===c?M:c,p=e.selectorFactory,d=void 0===p?F:p;return function(t,e,n,o){void 0===o&&(o={});var u=o,c=u.pure,p=void 0===c||c,h=u.areStatesEqual,v=void 0===h?B:h,y=u.areOwnPropsEqual,b=void 0===y?S:y,g=u.areStatePropsEqual,m=void 0===g?S:g,_=u.areMergedPropsEqual,x=void 0===_?S:_,w=l(u,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),O=D(t,i,"mapStateToProps"),j=D(e,a,"mapDispatchToProps"),E=D(n,s,"mergeProps");return r(d,f({methodName:"connect",getDisplayName:function(t){return"Connect("+t+")"},shouldHandleStateChanges:Boolean(t),initMapStateToProps:O,initMapDispatchToProps:j,initMergeProps:E,pure:p,areStatesEqual:v,areOwnPropsEqual:b,areStatePropsEqual:m,areMergedPropsEqual:x},w))}}();n.d(e,"a",function(){return W})},function(t,e,n){t.exports={default:n(208),__esModule:!0}},function(t,e,n){n(60),n(215),t.exports=n(9).Array.from},function(t,e,n){var r=n(76),o=n(77);t.exports=function(t){return function(e,n){var i,u,a=String(o(e)),c=r(n),s=a.length;return c<0||c>=s?t?"":void 0:(i=a.charCodeAt(c))<55296||i>56319||c+1===s||(u=a.charCodeAt(c+1))<56320||u>57343?t?a.charAt(c):i:t?a.slice(c,c+2):u-56320+(i-55296<<10)+65536}}},function(t,e,n){"use strict";var r=n(125),o=n(50),i=n(61),u={};n(28)(u,n(11)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(u,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e,n){var r=n(21),o=n(16),i=n(65);t.exports=n(22)?Object.defineProperties:function(t,e){o(t);for(var n,u=i(e),a=u.length,c=0;a>c;)r.f(t,n=u[c++],e[n]);return t}},function(t,e,n){var r=n(44),o=n(79),i=n(213);t.exports=function(t){return function(e,n,u){var a,c=r(e),s=o(c.length),f=i(u,s);if(t&&n!=n){for(;s>f;)if((a=c[f++])!=a)return!0}else for(;s>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},function(t,e,n){var r=n(76),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(34),o=n(81),i=n(80)("IE_PROTO"),u=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},function(t,e,n){"use strict";var r=n(40),o=n(18),i=n(81),u=n(133),a=n(134),c=n(79),s=n(216),f=n(108);o(o.S+o.F*!n(135)(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,o,l,p=i(t),d="function"==typeof this?this:Array,h=arguments.length,v=h>1?arguments[1]:void 0,y=void 0!==v,b=0,g=f(p);if(y&&(v=r(v,h>2?arguments[2]:void 0,2)),void 0==g||d==Array&&a(g))for(n=new d(e=c(p.length));e>b;b++)s(n,b,y?v(p[b],b):p[b]);else for(l=g.call(p),n=new d;!(o=l.next()).done;b++)s(n,b,y?u(l,v,[o.value,b],!0):o.value);return n.length=b,n}})},function(t,e,n){"use strict";var r=n(21),o=n(50);t.exports=function(t,e,n){e in t?r.f(t,e,o(0,n)):t[e]=n}},function(t,e,n){var r=n(218),o=n(54),i=n(83);t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},function(t,e,n){var r=n(219),o=n(226),i=n(227),u=n(228),a=n(229);function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}c.prototype.clear=r,c.prototype.delete=o,c.prototype.get=i,c.prototype.has=u,c.prototype.set=a,t.exports=c},function(t,e,n){var r=n(53);t.exports=function(){this.__data__=r?r(null):{},this.size=0}},function(t,e,n){var r=n(92),o=n(223),i=n(17),u=n(137),a=/^\[object .+?Constructor\]$/,c=Function.prototype,s=Object.prototype,f=c.toString,l=s.hasOwnProperty,p=RegExp("^"+f.call(l).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!i(t)||o(t))&&(r(t)?p:a).test(u(t))}},function(t,e,n){var r=n(37),o=Object.prototype,i=o.hasOwnProperty,u=o.toString,a=r?r.toStringTag:void 0;t.exports=function(t){var e=i.call(t,a),n=t[a];try{t[a]=void 0;var r=!0}catch(t){}var o=u.call(t);return r&&(e?t[a]=n:delete t[a]),o}},function(t,e){var n=Object.prototype.toString;t.exports=function(t){return n.call(t)}},function(t,e,n){var r=n(224),o=function(){var t=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();t.exports=function(t){return!!o&&o in t}},function(t,e,n){var r=n(10)["__core-js_shared__"];t.exports=r},function(t,e){t.exports=function(t,e){return null==t?void 0:t[e]}},function(t,e){t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},function(t,e,n){var r=n(53),o="__lodash_hash_undefined__",i=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(r){var n=e[t];return n===o?void 0:n}return i.call(e,t)?e[t]:void 0}},function(t,e,n){var r=n(53),o=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return r?void 0!==e[t]:o.call(e,t)}},function(t,e,n){var r=n(53),o="__lodash_hash_undefined__";t.exports=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=r&&void 0===e?o:e,this}},function(t,e){t.exports=function(){this.__data__=[],this.size=0}},function(t,e,n){var r=n(55),o=Array.prototype.splice;t.exports=function(t){var e=this.__data__,n=r(e,t);return!(n<0||(n==e.length-1?e.pop():o.call(e,n,1),--this.size,0))}},function(t,e,n){var r=n(55);t.exports=function(t){var e=this.__data__,n=r(e,t);return n<0?void 0:e[n][1]}},function(t,e,n){var r=n(55);t.exports=function(t){return r(this.__data__,t)>-1}},function(t,e,n){var r=n(55);t.exports=function(t,e){var n=this.__data__,o=r(n,t);return o<0?(++this.size,n.push([t,e])):n[o][1]=e,this}},function(t,e,n){var r=n(56);t.exports=function(t){var e=r(this,t).delete(t);return this.size-=e?1:0,e}},function(t,e){t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},function(t,e,n){var r=n(56);t.exports=function(t){return r(this,t).get(t)}},function(t,e,n){var r=n(56);t.exports=function(t){return r(this,t).has(t)}},function(t,e,n){var r=n(56);t.exports=function(t,e){var n=r(this,t),o=n.size;return n.set(t,e),this.size+=n.size==o?0:1,this}},function(t,e){var n="__lodash_hash_undefined__";t.exports=function(t){return this.__data__.set(t,n),this}},function(t,e){t.exports=function(t){return this.__data__.has(t)}},function(t,e){t.exports=function(t){return t!=t}},function(t,e){t.exports=function(t,e,n){for(var r=n-1,o=t.length;++r<o;)if(t[r]===e)return r;return-1}},function(t,e){t.exports=function(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}},function(t,e,n){var r=n(19),o=n(13),i="[object Arguments]";t.exports=function(t){return o(t)&&r(t)==i}},function(t,e){t.exports=function(){return!1}},function(t,e,n){var r=n(19),o=n(86),i=n(13),u={};u["[object Float32Array]"]=u["[object Float64Array]"]=u["[object Int8Array]"]=u["[object Int16Array]"]=u["[object Int32Array]"]=u["[object Uint8Array]"]=u["[object Uint8ClampedArray]"]=u["[object Uint16Array]"]=u["[object Uint32Array]"]=!0,u["[object Arguments]"]=u["[object Array]"]=u["[object ArrayBuffer]"]=u["[object Boolean]"]=u["[object DataView]"]=u["[object Date]"]=u["[object Error]"]=u["[object Function]"]=u["[object Map]"]=u["[object Number]"]=u["[object Object]"]=u["[object RegExp]"]=u["[object Set]"]=u["[object String]"]=u["[object WeakMap]"]=!1,t.exports=function(t){return i(t)&&o(t.length)&&!!u[r(t)]}},function(t,e,n){var r=n(158)(Object.keys,Object);t.exports=r},function(t,e,n){var r=n(54);t.exports=function(){this.__data__=new r,this.size=0}},function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},function(t,e){t.exports=function(t){return this.__data__.get(t)}},function(t,e){t.exports=function(t){return this.__data__.has(t)}},function(t,e,n){var r=n(54),o=n(83),i=n(82),u=200;t.exports=function(t,e){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!o||a.length<u-1)return a.push([t,e]),this.size=++n.size,this;n=this.__data__=new i(a)}return n.set(t,e),this.size=n.size,this}},function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,o=0,i=[];++n<r;){var u=t[n];e(u,n,t)&&(i[o++]=u)}return i}},function(t,e,n){var r=n(24)(n(10),"DataView");t.exports=r},function(t,e,n){var r=n(24)(n(10),"Promise");t.exports=r},function(t,e,n){var r=n(258),o=n(264),i=n(141);t.exports=function(t){var e=o(t);return 1==e.length&&e[0][2]?i(e[0][0],e[0][1]):function(n){return n===t||r(n,t,e)}}},function(t,e,n){var r=n(94),o=n(138),i=1,u=2;t.exports=function(t,e,n,a){var c=n.length,s=c,f=!a;if(null==t)return!s;for(t=Object(t);c--;){var l=n[c];if(f&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++c<s;){var p=(l=n[c])[0],d=t[p],h=l[1];if(f&&l[2]){if(void 0===d&&!(p in t))return!1}else{var v=new r;if(a)var y=a(d,h,p,t,e,v);if(!(void 0===y?o(h,d,i|u,a,v):y))return!1}}return!0}},function(t,e,n){var r=n(94),o=n(139),i=n(261),u=n(263),a=n(43),c=n(5),s=n(58),f=n(85),l=1,p="[object Arguments]",d="[object Array]",h="[object Object]",v=Object.prototype.hasOwnProperty;t.exports=function(t,e,n,y,b,g){var m=c(t),_=c(e),x=m?d:a(t),w=_?d:a(e),O=(x=x==p?h:x)==h,j=(w=w==p?h:w)==h,E=x==w;if(E&&s(t)){if(!s(e))return!1;m=!0,O=!1}if(E&&!O)return g||(g=new r),m||f(t)?o(t,e,n,y,b,g):i(t,e,x,n,y,b,g);if(!(n&l)){var S=O&&v.call(t,"__wrapped__"),P=j&&v.call(e,"__wrapped__");if(S||P){var A=S?t.value():t,k=P?e.value():e;return g||(g=new r),b(A,k,n,y,g)}}return!!E&&(g||(g=new r),u(t,e,n,y,b,g))}},function(t,e){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}},function(t,e,n){var r=n(37),o=n(162),i=n(67),u=n(139),a=n(262),c=n(102),s=1,f=2,l="[object Boolean]",p="[object Date]",d="[object Error]",h="[object Map]",v="[object Number]",y="[object RegExp]",b="[object Set]",g="[object String]",m="[object Symbol]",_="[object ArrayBuffer]",x="[object DataView]",w=r?r.prototype:void 0,O=w?w.valueOf:void 0;t.exports=function(t,e,n,r,w,j,E){switch(n){case x:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case _:return!(t.byteLength!=e.byteLength||!j(new o(t),new o(e)));case l:case p:case v:return i(+t,+e);case d:return t.name==e.name&&t.message==e.message;case y:case g:return t==e+"";case h:var S=a;case b:var P=r&s;if(S||(S=c),t.size!=e.size&&!P)return!1;var A=E.get(t);if(A)return A==e;r|=f,E.set(t,e);var k=u(S(t),S(e),r,w,j,E);return E.delete(t),k;case m:if(O)return O.call(t)==O.call(e)}return!1}},function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach(function(t,r){n[++e]=[r,t]}),n}},function(t,e,n){var r=n(160),o=1,i=Object.prototype.hasOwnProperty;t.exports=function(t,e,n,u,a,c){var s=n&o,f=r(t),l=f.length;if(l!=r(e).length&&!s)return!1;for(var p=l;p--;){var d=f[p];if(!(s?d in e:i.call(e,d)))return!1}var h=c.get(t);if(h&&c.get(e))return h==e;var v=!0;c.set(t,e),c.set(e,t);for(var y=s;++p<l;){var b=t[d=f[p]],g=e[d];if(u)var m=s?u(g,b,d,e,t,c):u(b,g,d,t,e,c);if(!(void 0===m?b===g||a(b,g,n,u,c):m)){v=!1;break}y||(y="constructor"==d)}if(v&&!y){var _=t.constructor,x=e.constructor;_!=x&&"constructor"in t&&"constructor"in e&&!("function"==typeof _&&_ instanceof _&&"function"==typeof x&&x instanceof x)&&(v=!1)}return c.delete(t),c.delete(e),v}},function(t,e,n){var r=n(140),o=n(29);t.exports=function(t){for(var e=o(t),n=e.length;n--;){var i=e[n],u=t[i];e[n]=[i,u,r(u)]}return e}},function(t,e,n){var r=n(138),o=n(35),i=n(268),u=n(89),a=n(140),c=n(141),s=n(46),f=1,l=2;t.exports=function(t,e){return u(t)&&a(e)?c(s(t),e):function(n){var u=o(n,t);return void 0===u&&u===e?i(n,t):r(e,u,f|l)}}},function(t,e,n){var r=n(267),o=500;t.exports=function(t){var e=r(t,function(t){return n.size===o&&n.clear(),t}),n=e.cache;return e}},function(t,e,n){var r=n(82),o="Expected a function";function i(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(o);var n=function(){var r=arguments,o=e?e.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var u=t.apply(this,r);return n.cache=i.set(o,u)||i,u};return n.cache=new(i.Cache||r),n}i.Cache=r,t.exports=i},function(t,e,n){var r=n(269),o=n(270);t.exports=function(t,e){return null!=t&&o(t,e,r)}},function(t,e){t.exports=function(t,e){return null!=t&&e in Object(t)}},function(t,e,n){var r=n(143),o=n(57),i=n(5),u=n(71),a=n(86),c=n(46);t.exports=function(t,e,n){for(var s=-1,f=(e=r(e,t)).length,l=!1;++s<f;){var p=c(e[s]);if(!(l=null!=t&&n(t,p)))break;t=t[p]}return l||++s!=f?l:!!(f=null==t?0:t.length)&&a(f)&&u(p,f)&&(i(t)||o(t))}},function(t,e,n){var r=n(272),o=n(273),i=n(89),u=n(46);t.exports=function(t){return i(t)?r(u(t)):o(t)}},function(t,e){t.exports=function(t){return function(e){return null==e?void 0:e[t]}}},function(t,e,n){var r=n(142);t.exports=function(t){return function(e){return r(e,t)}}},function(t,e,n){var r=n(95),o=n(275);t.exports=function t(e,n,i,u,a){var c=-1,s=e.length;for(i||(i=o),a||(a=[]);++c<s;){var f=e[c];n>0&&i(f)?n>1?t(f,n-1,i,u,a):r(a,f):u||(a[a.length]=f)}return a}},function(t,e,n){var r=n(37),o=n(57),i=n(5),u=r?r.isConcatSpreadable:void 0;t.exports=function(t){return i(t)||o(t)||!!(u&&t&&t[u])}},function(t,e,n){var r=n(113),o=Math.max;t.exports=function(t,e,n){return e=o(void 0===e?t.length-1:e,0),function(){for(var i=arguments,u=-1,a=o(i.length-e,0),c=Array(a);++u<a;)c[u]=i[e+u];u=-1;for(var s=Array(e+1);++u<e;)s[u]=i[u];return s[e]=n(c),r(t,this,s)}}},function(t,e,n){t.exports={default:n(278),__esModule:!0}},function(t,e,n){n(279),t.exports=n(9).Object.assign},function(t,e,n){var r=n(18);r(r.S+r.F,"Object",{assign:n(280)})},function(t,e,n){"use strict";var r=n(65),o=n(119),i=n(90),u=n(81),a=n(131),c=Object.assign;t.exports=!c||n(49)(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r})?function(t,e){for(var n=u(t),c=arguments.length,s=1,f=o.f,l=i.f;c>s;)for(var p,d=a(arguments[s++]),h=f?r(d).concat(f(d)):r(d),v=h.length,y=0;v>y;)l.call(d,p=h[y++])&&(n[p]=d[p]);return n}:c},function(t,e,n){var r=function(){return this}()||Function("return this")(),o=r.regeneratorRuntime&&Object.getOwnPropertyNames(r).indexOf("regeneratorRuntime")>=0,i=o&&r.regeneratorRuntime;if(r.regeneratorRuntime=void 0,t.exports=n(282),o)r.regeneratorRuntime=i;else try{delete r.regeneratorRuntime}catch(t){r.regeneratorRuntime=void 0}},function(t,e){!function(e){"use strict";var n,r=Object.prototype,o=r.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},u=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag",s="object"==typeof t,f=e.regeneratorRuntime;if(f)s&&(t.exports=f);else{(f=e.regeneratorRuntime=s?t.exports:{}).wrap=_;var l="suspendedStart",p="suspendedYield",d="executing",h="completed",v={},y={};y[u]=function(){return this};var b=Object.getPrototypeOf,g=b&&b(b(R([])));g&&g!==r&&o.call(g,u)&&(y=g);var m=j.prototype=w.prototype=Object.create(y);O.prototype=m.constructor=j,j.constructor=O,j[c]=O.displayName="GeneratorFunction",f.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===O||"GeneratorFunction"===(e.displayName||e.name))},f.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,j):(t.__proto__=j,c in t||(t[c]="GeneratorFunction")),t.prototype=Object.create(m),t},f.awrap=function(t){return{__await:t}},E(S.prototype),S.prototype[a]=function(){return this},f.AsyncIterator=S,f.async=function(t,e,n,r){var o=new S(_(t,e,n,r));return f.isGeneratorFunction(e)?o:o.next().then(function(t){return t.done?t.value:o.next()})},E(m),m[c]="Generator",m[u]=function(){return this},m.toString=function(){return"[object Generator]"},f.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},f.values=R,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(k),!t)for(var e in this)"t"===e.charAt(0)&&o.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=n)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(r,o){return a.type="throw",a.arg=t,e.next=r,o&&(e.method="next",e.arg=n),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var u=this.tryEntries[i],a=u.completion;if("root"===u.tryLoc)return r("end");if(u.tryLoc<=this.prev){var c=o.call(u,"catchLoc"),s=o.call(u,"finallyLoc");if(c&&s){if(this.prev<u.catchLoc)return r(u.catchLoc,!0);if(this.prev<u.finallyLoc)return r(u.finallyLoc)}else if(c){if(this.prev<u.catchLoc)return r(u.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<u.finallyLoc)return r(u.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var u=i?i.completion:{};return u.type=t,u.arg=e,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(u)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),k(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;k(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,r){return this.delegate={iterator:R(t),resultName:e,nextLoc:r},"next"===this.method&&(this.arg=n),v}}}function _(t,e,n,r){var o=e&&e.prototype instanceof w?e:w,i=Object.create(o.prototype),u=new T(r||[]);return i._invoke=function(t,e,n){var r=l;return function(o,i){if(r===d)throw new Error("Generator is already running");if(r===h){if("throw"===o)throw i;return C()}for(n.method=o,n.arg=i;;){var u=n.delegate;if(u){var a=P(u,n);if(a){if(a===v)continue;return a}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===l)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=d;var c=x(t,e,n);if("normal"===c.type){if(r=n.done?h:p,c.arg===v)continue;return{value:c.arg,done:n.done}}"throw"===c.type&&(r=h,n.method="throw",n.arg=c.arg)}}}(t,n,u),i}function x(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}function w(){}function O(){}function j(){}function E(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function S(t){var e;this._invoke=function(n,r){function i(){return new Promise(function(e,i){!function e(n,r,i,u){var a=x(t[n],t,r);if("throw"!==a.type){var c=a.arg,s=c.value;return s&&"object"==typeof s&&o.call(s,"__await")?Promise.resolve(s.__await).then(function(t){e("next",t,i,u)},function(t){e("throw",t,i,u)}):Promise.resolve(s).then(function(t){c.value=t,i(c)},u)}u(a.arg)}(n,r,e,i)})}return e=e?e.then(i,i):i()}}function P(t,e){var r=t.iterator[e.method];if(r===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=n,P(t,e),"throw"===e.method))return v;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return v}var o=x(r,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,v;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=n),e.delegate=null,v):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,v)}function A(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(A,this),this.reset(!0)}function R(t){if(t){var e=t[u];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(o.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=n,e.done=!0,e};return i.next=i}}return{next:C}}function C(){return{value:n,done:!0}}}(function(){return this}()||Function("return this")())},function(t,e,n){t.exports={default:n(284),__esModule:!0}},function(t,e,n){n(168),n(60),n(107),n(288),n(296),n(297),t.exports=n(9).Promise},function(t,e,n){"use strict";var r=n(286),o=n(287),i=n(41),u=n(44);t.exports=n(130)(Array,"Array",function(t,e){this._t=u(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){"use strict";var r,o,i,u,a=n(48),c=n(8),s=n(40),f=n(109),l=n(18),p=n(23),d=n(52),h=n(289),v=n(290),y=n(144),b=n(145).set,g=n(292)(),m=n(91),_=n(146),x=n(293),w=n(147),O=c.TypeError,j=c.process,E=j&&j.versions,S=E&&E.v8||"",P=c.Promise,A="process"==f(j),k=function(){},T=o=m.f,R=!!function(){try{var t=P.resolve(1),e=(t.constructor={})[n(11)("species")]=function(t){t(k,k)};return(A||"function"==typeof PromiseRejectionEvent)&&t.then(k)instanceof e&&0!==S.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(t){}}(),C=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},I=function(t,e){if(!t._n){t._n=!0;var n=t._c;g(function(){for(var r=t._v,o=1==t._s,i=0,u=function(e){var n,i,u,a=o?e.ok:e.fail,c=e.resolve,s=e.reject,f=e.domain;try{a?(o||(2==t._h&&N(t),t._h=1),!0===a?n=r:(f&&f.enter(),n=a(r),f&&(f.exit(),u=!0)),n===e.promise?s(O("Promise-chain cycle")):(i=C(n))?i.call(n,c,s):c(n)):s(r)}catch(t){f&&!u&&f.exit(),s(t)}};n.length>i;)u(n[i++]);t._c=[],t._n=!1,e&&!t._h&&M(t)})}},M=function(t){b.call(c,function(){var e,n,r,o=t._v,i=L(t);if(i&&(e=_(function(){A?j.emit("unhandledRejection",o,t):(n=c.onunhandledrejection)?n({promise:t,reason:o}):(r=c.console)&&r.error&&r.error("Unhandled promise rejection",o)}),t._h=A||L(t)?2:1),t._a=void 0,i&&e.e)throw e.v})},L=function(t){return 1!==t._h&&0===(t._a||t._c).length},N=function(t){b.call(c,function(){var e;A?j.emit("rejectionHandled",t):(e=c.onrejectionhandled)&&e({promise:t,reason:t._v})})},F=function(t){var e=this;e._d||(e._d=!0,(e=e._w||e)._v=t,e._s=2,e._a||(e._a=e._c.slice()),I(e,!0))},D=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw O("Promise can't be resolved itself");(e=C(t))?g(function(){var r={_w:n,_d:!1};try{e.call(t,s(D,r,1),s(F,r,1))}catch(t){F.call(r,t)}}):(n._v=t,n._s=1,I(n,!1))}catch(t){F.call({_w:n,_d:!1},t)}}};R||(P=function(t){h(this,P,"Promise","_h"),d(t),r.call(this);try{t(s(D,this,1),s(F,this,1))}catch(t){F.call(this,t)}},(r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(294)(P.prototype,{then:function(t,e){var n=T(y(this,P));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=A?j.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&I(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=s(D,t,1),this.reject=s(F,t,1)},m.f=T=function(t){return t===P||t===u?new i(t):o(t)}),l(l.G+l.W+l.F*!R,{Promise:P}),n(61)(P,"Promise"),n(295)("Promise"),u=n(9).Promise,l(l.S+l.F*!R,"Promise",{reject:function(t){var e=T(this);return(0,e.reject)(t),e.promise}}),l(l.S+l.F*(a||!R),"Promise",{resolve:function(t){return w(a&&this===u?P:this,t)}}),l(l.S+l.F*!(R&&n(135)(function(t){P.all(t).catch(k)})),"Promise",{all:function(t){var e=this,n=T(e),r=n.resolve,o=n.reject,i=_(function(){var n=[],i=0,u=1;v(t,!1,function(t){var a=i++,c=!1;n.push(void 0),u++,e.resolve(t).then(function(t){c||(c=!0,n[a]=t,--u||r(n))},o)}),--u||r(n)});return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=T(e),r=n.reject,o=_(function(){v(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e,n){var r=n(40),o=n(133),i=n(134),u=n(16),a=n(79),c=n(108),s={},f={};(e=t.exports=function(t,e,n,l,p){var d,h,v,y,b=p?function(){return t}:c(t),g=r(n,l,e?2:1),m=0;if("function"!=typeof b)throw TypeError(t+" is not iterable!");if(i(b)){for(d=a(t.length);d>m;m++)if((y=e?g(u(h=t[m])[0],h[1]):g(t[m]))===s||y===f)return y}else for(v=b.call(t);!(h=v.next()).done;)if((y=o(v,g,h.value,e))===s||y===f)return y}).BREAK=s,e.RETURN=f},function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){var r=n(8),o=n(145).set,i=r.MutationObserver||r.WebKitMutationObserver,u=r.process,a=r.Promise,c="process"==n(47)(u);t.exports=function(){var t,e,n,s=function(){var r,o;for(c&&(r=u.domain)&&r.exit();t;){o=t.fn,t=t.next;try{o()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(c)n=function(){u.nextTick(s)};else if(!i||r.navigator&&r.navigator.standalone)if(a&&a.resolve){var f=a.resolve(void 0);n=function(){f.then(s)}}else n=function(){o.call(r,s)};else{var l=!0,p=document.createTextNode("");new i(s).observe(p,{characterData:!0}),n=function(){p.data=l=!l}}return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},function(t,e,n){var r=n(8).navigator;t.exports=r&&r.userAgent||""},function(t,e,n){var r=n(28);t.exports=function(t,e,n){for(var o in e)n&&t[o]?t[o]=e[o]:r(t,o,e[o]);return t}},function(t,e,n){"use strict";var r=n(8),o=n(9),i=n(21),u=n(22),a=n(11)("species");t.exports=function(t){var e="function"==typeof o[t]?o[t]:r[t];u&&e&&!e[a]&&i.f(e,a,{configurable:!0,get:function(){return this}})}},function(t,e,n){"use strict";var r=n(18),o=n(9),i=n(8),u=n(144),a=n(147);r(r.P+r.R,"Promise",{finally:function(t){var e=u(this,o.Promise||i.Promise),n="function"==typeof t;return this.then(n?function(n){return a(e,t()).then(function(){return n})}:t,n?function(n){return a(e,t()).then(function(){throw n})}:t)}})},function(t,e,n){"use strict";var r=n(18),o=n(91),i=n(146);r(r.S,"Promise",{try:function(t){var e=o.f(this),n=i(t);return(n.e?e.reject:e.resolve)(n.v),e.promise}})},function(t,e,n){var r=n(166),o=n(101).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},,function(t,e,n){"use strict";t.exports=n(394)},function(t,e,n){"use strict";var r=n(14).compose;e.__esModule=!0,e.composeWithDevTools=function(){if(0!==arguments.length)return"object"==typeof arguments[0]?r:r.apply(null,arguments)},e.devToolsEnhancer=function(){return function(t){return t}}},function(t,e,n){"use strict";var r=n(402),o=n(403),i=Array.isArray;t.exports=function(t,e){if(t&&e){if(t.constructor===Object&&e.constructor===Object)return r(t,e);if(i(t)&&i(e))return o(t,e)}return t===e}},,function(t,e,n){var r=n(90),o=n(50),i=n(44),u=n(111),a=n(34),c=n(164),s=Object.getOwnPropertyDescriptor;e.f=n(22)?s:function(t,e){if(t=i(t),e=u(e,!0),c)try{return s(t,e)}catch(t){}if(a(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){"use strict";n.r(e);var r={};n.r(r),n.d(r,"wpRequest",function(){return Wt.default}),n.d(r,"request",function(){return Wt});n(373);var o=n(14),i=n(301),u=n(98);function a(t){return function(e){var n=e.dispatch,r=e.getState;return function(e){return function(o){return"function"==typeof o?o(n,r,t):e(o)}}}}var c=a();c.withExtraArgument=a;var s=c,f=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p=function(t){return"@@redux-saga/"+t},d=p("TASK"),h=p("HELPER"),v=p("MATCH"),y=p("CANCEL_PROMISE"),b=p("SAGA_ACTION"),g=p("SELF_CANCELLATION"),m=function(t){return function(){return t}},_=m(!0),x=function(){},w=function(t){return t};function O(t,e,n){if(!e(t))throw L("error","uncaught at check",n),new Error(n)}var j=Object.prototype.hasOwnProperty;function E(t,e){return S.notUndef(t)&&j.call(t,e)}var S={undef:function(t){return null===t||void 0===t},notUndef:function(t){return null!==t&&void 0!==t},func:function(t){return"function"==typeof t},number:function(t){return"number"==typeof t},string:function(t){return"string"==typeof t},array:Array.isArray,object:function(t){return t&&!S.array(t)&&"object"===(void 0===t?"undefined":l(t))},promise:function(t){return t&&S.func(t.then)},iterator:function(t){return t&&S.func(t.next)&&S.func(t.throw)},iterable:function(t){return t&&S.func(Symbol)?S.func(t[Symbol.iterator]):S.array(t)},task:function(t){return t&&t[d]},observable:function(t){return t&&S.func(t.subscribe)},buffer:function(t){return t&&S.func(t.isEmpty)&&S.func(t.take)&&S.func(t.put)},pattern:function(t){return t&&(S.string(t)||"symbol"===(void 0===t?"undefined":l(t))||S.func(t)||S.array(t))},channel:function(t){return t&&S.func(t.take)&&S.func(t.close)},helper:function(t){return t&&t[h]},stringableFunc:function(t){return S.func(t)&&E(t,"toString")}},P={assign:function(t,e){for(var n in e)E(e,n)&&(t[n]=e[n])}};function A(t,e){var n=t.indexOf(e);n>=0&&t.splice(n,1)}var k={from:function(t){var e=Array(t.length);for(var n in t)E(t,n)&&(e[n]=t[n]);return e}};function T(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=f({},t),n=new Promise(function(t,n){e.resolve=t,e.reject=n});return e.promise=n,e}var R=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function(){return++t}}(),C=function(t){throw t},I=function(t){return{value:t,done:!0}};function M(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:C,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=arguments[3],o={name:n,next:t,throw:e,return:I};return r&&(o[h]=!0),"undefined"!=typeof Symbol&&(o[Symbol.iterator]=function(){return o}),o}function L(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";"undefined"==typeof window?console.log("redux-saga "+t+": "+e+"\n"+(n&&n.stack||n)):console[t](e,n)}function N(t,e){return function(){return t.apply(void 0,arguments)}}var F=function(t,e){return t+" has been deprecated in favor of "+e+", please update your code"},D=function(t){return new Error("\n redux-saga: Error checking hooks detected an inconsistent state. This is likely a bug\n in redux-saga code and not yours. Thanks for reporting this in the project's github repo.\n Error: "+t+"\n")},B=function(t,e){return(t?t+".":"")+"setContext(props): argument "+e+" is not a plain object"},W=function(t){return function(e){return t(Object.defineProperty(e,b,{value:!0}))}},U="Channel's Buffer overflow!",q=1,z=3,G=4,V={isEmpty:_,put:x,take:x};function $(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,e=arguments[1],n=new Array(t),r=0,o=0,i=0,u=function(e){n[o]=e,o=(o+1)%t,r++},a=function(){if(0!=r){var e=n[i];return n[i]=null,r--,i=(i+1)%t,e}},c=function(){for(var t=[];r;)t.push(a());return t};return{isEmpty:function(){return 0==r},put:function(a){if(r<t)u(a);else{var s=void 0;switch(e){case q:throw new Error(U);case z:n[o]=a,i=o=(o+1)%t;break;case G:s=2*t,n=c(),r=n.length,o=n.length,i=0,n.length=s,t=s,u(a)}}},take:a,flush:c}}var K={none:function(){return V},fixed:function(t){return $(t,q)},dropping:function(t){return $(t,2)},sliding:function(t){return $(t,z)},expanding:function(t){return $(t,G)}},H=[],Y=0;function J(t){try{X(),t()}finally{Z()}}function Q(t){H.push(t),Y||(X(),tt())}function X(){Y++}function Z(){Y--}function tt(){Z();for(var t=void 0;!Y&&void 0!==(t=H.shift());)J(t)}var et=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},nt={type:"@@redux-saga/CHANNEL_END"},rt=function(t){return t&&"@@redux-saga/CHANNEL_END"===t.type};var ot="invalid buffer passed to channel factory function",it="Saga was provided with an undefined action";function ut(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:K.none(),n=arguments[2];arguments.length>2&&O(n,S.func,"Invalid match function passed to eventChannel");var r=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:K.fixed(),e=!1,n=[];function r(){if(e&&n.length)throw D("Cannot have a closed channel with pending takers");if(n.length&&!t.isEmpty())throw D("Cannot have pending takers with non empty buffer")}return O(t,S.buffer,ot),{take:function(o){r(),O(o,S.func,"channel.take's callback must be a function"),e&&t.isEmpty()?o(nt):t.isEmpty()?(n.push(o),o.cancel=function(){return A(n,o)}):o(t.take())},put:function(o){if(r(),O(o,S.notUndef,it),!e){if(!n.length)return t.put(o);for(var i=0;i<n.length;i++){var u=n[i];if(!u[v]||u[v](o))return n.splice(i,1),u(o)}}},flush:function(n){r(),O(n,S.func,"channel.flush' callback must be a function"),e&&t.isEmpty()?n(nt):n(t.flush())},close:function(){if(r(),!e&&(e=!0,n.length)){var t=n;n=[];for(var o=0,i=t.length;o<i;o++)t[o](nt)}},get __takers__(){return n},get __closed__(){return e}}}(e),o=function(){r.__closed__||(i&&i(),r.close())},i=t(function(t){rt(t)?o():n&&!n(t)||r.put(t)});if(r.__closed__&&i(),!S.func(i))throw new Error("in eventChannel: subscribe should return a function to unsubscribe");return{take:r.take,flush:r.flush,close:o}}var at=p("IO"),ct="TAKE",st="PUT",ft="ALL",lt="RACE",pt="CALL",dt="CPS",ht="FORK",vt="JOIN",yt="CANCEL",bt="SELECT",gt="ACTION_CHANNEL",mt="CANCELLED",_t="FLUSH",xt="GET_CONTEXT",wt="SET_CONTEXT",Ot=function(t,e){var n;return(n={})[at]=!0,n[t]=e,n};function jt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"*";if(arguments.length&&O(arguments[0],S.notUndef,"take(patternOrChannel): patternOrChannel is undefined"),S.pattern(t))return Ot(ct,{pattern:t});if(S.channel(t))return Ot(ct,{channel:t});throw new Error("take(patternOrChannel): argument "+String(t)+" is not valid channel or a valid pattern")}jt.maybe=function(){var t=jt.apply(void 0,arguments);return t[ct].maybe=!0,t};jt.maybe;function Et(t,e){return arguments.length>1?(O(t,S.notUndef,"put(channel, action): argument channel is undefined"),O(t,S.channel,"put(channel, action): argument "+t+" is not a valid channel"),O(e,S.notUndef,"put(channel, action): argument action is undefined")):(O(t,S.notUndef,"put(action): argument action is undefined"),e=t,t=null),Ot(st,{channel:t,action:e})}Et.resolve=function(){var t=Et.apply(void 0,arguments);return t[st].resolve=!0,t},Et.sync=N(Et.resolve);var St=function(t){return function(e){return e&&e[at]&&e[t]}},Pt={take:St(ct),put:St(st),all:St(ft),race:St(lt),call:St(pt),cps:St(dt),fork:St(ht),join:St(vt),cancel:St(yt),select:St(bt),actionChannel:St(gt),cancelled:St(mt),flush:St(_t),getContext:St(xt),setContext:St(wt)},At=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},kt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};var Tt="proc first argument (Saga function result) must be an iterator",Rt={toString:function(){return"@@redux-saga/CHANNEL_END"}},Ct={toString:function(){return"@@redux-saga/TASK_CANCEL"}},It={wildcard:function(){return _},default:function(t){return"symbol"===(void 0===t?"undefined":kt(t))?function(e){return e.type===t}:function(e){return e.type===String(t)}},array:function(t){return function(e){return t.some(function(t){return Mt(t)(e)})}},predicate:function(t){return function(e){return t(e)}}};function Mt(t){return("*"===t?It.wildcard:S.array(t)?It.array:S.stringableFunc(t)?It.default:S.func(t)?It.predicate:It.default)(t)}var Lt=function(t){return{fn:t}};function Nt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return x},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:x,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:x,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},u=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,a=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"anonymous",c=arguments[8];O(t,S.iterator,Tt);var s=N(V,F("[...effects]","all([...effects])")),f=i.sagaMonitor,l=i.logger,p=i.onError,h=l||L,m=function(t){var e=t.sagaStack;!e&&t.stack&&(e=-1!==t.stack.split("\n")[0].indexOf(t.message)?t.stack:"Error: "+t.message+"\n"+t.stack),h("error","uncaught at "+a,e||t.message||t)},_=function(t){var e=ut(function(e){return t(function(t){t[b]?e(t):Q(function(){return e(t)})})});return et({},e,{take:function(t,n){arguments.length>1&&(O(n,S.func,"channel.take's matcher argument must be a function"),t[v]=n),e.take(t)}})}(e),w=Object.create(o);D.cancel=x;var j=function(t,e,n,r){var o,i;return n._deferredEnd=null,(o={})[d]=!0,o.id=t,o.name=e,"done",(i={}).done=i.done||{},i.done.get=function(){if(n._deferredEnd)return n._deferredEnd.promise;var t=T();return n._deferredEnd=t,n._isRunning||(n._error?t.reject(n._error):t.resolve(n._result)),t.promise},o.cont=r,o.joiners=[],o.cancel=I,o.isRunning=function(){return n._isRunning},o.isCancelled=function(){return n._isCancelled},o.isAborted=function(){return n._isAborted},o.result=function(){return n._result},o.error=function(){return n._error},o.setContext=function(t){O(t,S.object,B("task",t)),P.assign(w,t)},function(t,e){for(var n in e){var r=e[n];r.configurable=r.enumerable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,n,r)}}(o,i),o}(u,a,t,c),E={name:a,cancel:function(){E.isRunning&&!E.isCancelled&&(E.isCancelled=!0,D(Ct))},isRunning:!0},C=function(t,e,n){var r=[],o=void 0,i=!1;function u(t){c(),n(t,!0)}function a(t){r.push(t),t.cont=function(a,c){i||(A(r,t),t.cont=x,c?u(a):(t===e&&(o=a),r.length||(i=!0,n(o))))}}function c(){i||(i=!0,r.forEach(function(t){t.cont=x,t.cancel()}),r=[])}return a(e),{addTask:a,cancelAll:c,abort:u,getTasks:function(){return r},taskNames:function(){return r.map(function(t){return t.name})}}}(0,E,W);function I(){t._isRunning&&!t._isCancelled&&(t._isCancelled=!0,C.cancelAll(),W(Ct))}return c&&(c.cancel=I),t._isRunning=!0,D(),j;function D(e,n){if(!E.isRunning)throw new Error("Trying to resume an already finished generator");try{var r=void 0;n?r=t.throw(e):e===Ct?(E.isCancelled=!0,D.cancel(),r=S.func(t.return)?t.return(Ct):{done:!0,value:Ct}):r=e===Rt?S.func(t.return)?t.return():{done:!0}:t.next(e),r.done?(E.isMainRunning=!1,E.cont&&E.cont(r.value)):U(r.value,u,"",D)}catch(t){E.isCancelled&&m(t),E.isMainRunning=!1,E.cont(t,!0)}}function W(e,n){t._isRunning=!1,_.close(),n?(e instanceof Error&&Object.defineProperty(e,"sagaStack",{value:"at "+a+" \n "+(e.sagaStack||e.stack),configurable:!0}),j.cont||(e instanceof Error&&p?p(e):m(e)),t._error=e,t._isAborted=!0,t._deferredEnd&&t._deferredEnd.reject(e)):(t._result=e,t._deferredEnd&&t._deferredEnd.resolve(e)),j.cont&&j.cont(e,n),j.joiners.forEach(function(t){return t.cb(e,n)}),j.joiners=null}function U(t,o){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",u=arguments[3],c=R();f&&f.effectTriggered({effectId:c,parentEffectId:o,label:i,effect:t});var l=void 0;function p(t,e){l||(l=!0,u.cancel=x,f&&(e?f.effectRejected(c,t):f.effectResolved(c,t)),u(t,e))}p.cancel=x,u.cancel=function(){if(!l){l=!0;try{p.cancel()}catch(t){m(t)}p.cancel=x,f&&f.effectCancelled(c)}};var d=void 0;return S.promise(t)?q(t,p):S.helper(t)?G(Lt(t),c,p):S.iterator(t)?z(t,c,a,p):S.array(t)?s(t,c,p):(d=Pt.take(t))?function(t,e){var n=t.channel,r=t.pattern,o=t.maybe;n=n||_;var i=function(t){return t instanceof Error?e(t,!0):rt(t)&&!o?e(Rt):e(t)};try{n.take(i,Mt(r))}catch(t){return e(t,!0)}e.cancel=i.cancel}(d,p):(d=Pt.put(t))?function(t,e){var r=t.channel,o=t.action,i=t.resolve;Q(function(){var t=void 0;try{t=(r?r.put:n)(o)}catch(t){if(r||i)return e(t,!0);m(t)}if(!i||!S.promise(t))return e(t);q(t,e)})}(d,p):(d=Pt.all(t))?V(d,c,p):(d=Pt.race(t))?function(t,e,n){var r=void 0,o=Object.keys(t),i={};o.forEach(function(e){var u=function(i,u){if(!r)if(u)n.cancel(),n(i,!0);else if(!rt(i)&&i!==Rt&&i!==Ct){var a;n.cancel(),r=!0;var c=((a={})[e]=i,a);n(S.array(t)?[]
|
1 |
+
var tribe="object"==typeof tribe?tribe:{};tribe.common=tribe.common||{},tribe.common.components=function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=546)}([,function(t,e,n){t.exports=n(310)()},function(t,e){t.exports=React},function(t,e,n){"use strict";e.__esModule=!0;var r,o=n(277),i=(r=o)&&r.__esModule?r:{default:r};e.default=i.default||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}},,function(t,e){var n=Array.isArray;t.exports=n},function(t,e){t.exports=function(){}},,function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n=t.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(136),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();t.exports=i},function(t,e,n){var r=n(100)("wks"),o=n(66),i=n(8).Symbol,u="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=u&&i[t]||(u?i:o)("Symbol."+t))}).store=r},function(t,e,n){"use strict";n.d(e,"a",function(){return r});var r="@@MT/COMMON"},function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,e,n){"use strict";n.r(e),n.d(e,"createStore",function(){return a}),n.d(e,"combineReducers",function(){return s}),n.d(e,"bindActionCreators",function(){return l}),n.d(e,"applyMiddleware",function(){return h}),n.d(e,"compose",function(){return d}),n.d(e,"__DO_NOT_USE__ActionTypes",function(){return i});var r=n(122),o=function(){return Math.random().toString(36).substring(7).split("").join(".")},i={INIT:"@@redux/INIT"+o(),REPLACE:"@@redux/REPLACE"+o(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+o()}};function u(t){if("object"!=typeof t||null===t)return!1;for(var e=t;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function a(t,e,n){var o;if("function"==typeof e&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function");if("function"==typeof e&&void 0===n&&(n=e,e=void 0),void 0!==n){if("function"!=typeof n)throw new Error("Expected the enhancer to be a function.");return n(a)(t,e)}if("function"!=typeof t)throw new Error("Expected the reducer to be a function.");var c=t,s=e,f=[],l=f,p=!1;function d(){l===f&&(l=f.slice())}function h(){if(p)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return s}function v(t){if("function"!=typeof t)throw new Error("Expected the listener to be a function.");if(p)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var e=!0;return d(),l.push(t),function(){if(e){if(p)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");e=!1,d();var n=l.indexOf(t);l.splice(n,1)}}}function y(t){if(!u(t))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===t.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(p)throw new Error("Reducers may not dispatch actions.");try{p=!0,s=c(s,t)}finally{p=!1}for(var e=f=l,n=0;n<e.length;n++){(0,e[n])()}return t}return y({type:i.INIT}),(o={dispatch:y,subscribe:v,getState:h,replaceReducer:function(t){if("function"!=typeof t)throw new Error("Expected the nextReducer to be a function.");c=t,y({type:i.REPLACE})}})[r.a]=function(){var t,e=v;return(t={subscribe:function(t){if("object"!=typeof t||null===t)throw new TypeError("Expected the observer to be an object.");function n(){t.next&&t.next(h())}return n(),{unsubscribe:e(n)}}})[r.a]=function(){return this},t},o}function c(t,e){var n=e&&e.type;return"Given "+(n&&'action "'+String(n)+'"'||"an action")+', reducer "'+t+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function s(t){for(var e=Object.keys(t),n={},r=0;r<e.length;r++){var o=e[r];0,"function"==typeof t[o]&&(n[o]=t[o])}var u,a=Object.keys(n);try{!function(t){Object.keys(t).forEach(function(e){var n=t[e];if(void 0===n(void 0,{type:i.INIT}))throw new Error('Reducer "'+e+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if(void 0===n(void 0,{type:i.PROBE_UNKNOWN_ACTION()}))throw new Error('Reducer "'+e+"\" returned undefined when probed with a random type. Don't try to handle "+i.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')})}(n)}catch(t){u=t}return function(t,e){if(void 0===t&&(t={}),u)throw u;for(var r=!1,o={},i=0;i<a.length;i++){var s=a[i],f=n[s],l=t[s],p=f(l,e);if(void 0===p){var d=c(s,e);throw new Error(d)}o[s]=p,r=r||p!==l}return r?o:t}}function f(t,e){return function(){return e(t.apply(this,arguments))}}function l(t,e){if("function"==typeof t)return f(t,e);if("object"!=typeof t||null===t)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===t?"null":typeof t)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');for(var n=Object.keys(t),r={},o=0;o<n.length;o++){var i=n[o],u=t[i];"function"==typeof u&&(r[i]=f(u,e))}return r}function p(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function d(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return 0===e.length?function(t){return t}:1===e.length?e[0]:e.reduce(function(t,e){return function(){return t(e.apply(void 0,arguments))}})}function h(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){return function(){var n=t.apply(void 0,arguments),r=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},i=e.map(function(t){return t(o)});return function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),r.forEach(function(e){p(t,e,n[e])})}return t}({},n,{dispatch:r=d.apply(void 0,i)(n.dispatch)})}}}},function(t,e,n){var r;
|
2 |
/*!
|
3 |
Copyright (c) 2017 Jed Watson.
|
4 |
Licensed under the MIT License (MIT), see
|
9 |
Licensed under the MIT License (MIT), see
|
10 |
http://jedwatson.github.io/classnames
|
11 |
*/
|
|