Version Description
Download this release
Release Info
Developer | bordoni |
Plugin | Event Tickets |
Version | 4.12.0 |
Comparing to | |
See all releases |
Code changes from version 4.11.5 to 4.12.0
- common/lang/readme.txt +3 -0
- common/lang/tribe-common-af.mo +0 -0
- common/lang/tribe-common-ar.mo +0 -0
- common/lang/tribe-common-bg_BG.mo +0 -0
- common/lang/tribe-common-ca.mo +0 -0
- common/lang/tribe-common-cs_CZ.mo +0 -0
- common/lang/tribe-common-da_DK.mo +0 -0
- common/lang/tribe-common-de_DE.mo +0 -0
- common/lang/tribe-common-el.mo +0 -0
- common/lang/tribe-common-en_GB.mo +0 -0
- common/lang/tribe-common-es_ES.mo +0 -0
- common/lang/tribe-common-et.mo +0 -0
- common/lang/tribe-common-fi.mo +0 -0
- common/lang/tribe-common-fr_CA.mo +0 -0
- common/lang/tribe-common-fr_FR.mo +0 -0
- common/lang/tribe-common-hu_HU.mo +0 -0
- common/lang/tribe-common-id_ID.mo +0 -0
- common/lang/tribe-common-is_IS.mo +0 -0
- common/lang/tribe-common-it_IT.mo +0 -0
- common/lang/tribe-common-ja.mo +0 -0
- common/lang/tribe-common-lt_LT.mo +0 -0
- common/lang/tribe-common-lv.mo +0 -0
- common/lang/tribe-common-nb_NO.mo +0 -0
- common/lang/tribe-common-nl_NL.mo +0 -0
- common/lang/tribe-common-pt_BR.mo +0 -0
- common/lang/tribe-common-pt_PT.mo +0 -0
- common/lang/tribe-common-ro_RO.mo +0 -0
- common/lang/tribe-common-ru_RU.mo +0 -0
- common/lang/tribe-common-sk_SK.mo +0 -0
- common/lang/tribe-common-sl_SI.mo +0 -0
- common/lang/tribe-common-sr_RS.mo +0 -0
- common/lang/tribe-common-sv_SE.mo +0 -0
- common/lang/tribe-common-tr_TR.mo +0 -0
- common/lang/tribe-common-zh_CN.mo +0 -0
- common/lang/tribe-common-zh_TW.mo +0 -0
- common/lang/tribe-common.pot +51 -47
- common/src/Tribe/Admin/Notice/Plugin_Download.php +2 -2
- common/src/Tribe/Assets.php +15 -10
- common/src/Tribe/Cache.php +121 -66
- common/src/Tribe/Cache_Listener.php +1 -0
- common/src/Tribe/Context/locations.php +24 -0
- common/src/Tribe/Editor.php +43 -1
- common/src/Tribe/Editor/Blocks/Abstract.php +37 -3
- common/src/Tribe/Editor/Configuration.php +1 -0
- common/src/Tribe/Field.php +5 -0
- common/src/Tribe/Image/Uploader.php +148 -70
- common/src/Tribe/Languages/Locations.php +2 -2
- common/src/Tribe/Log/File_Logger.php +1 -1
- common/src/Tribe/Main.php +40 -7
- common/src/Tribe/PUE/Update_Prevention.php +1 -1
- common/src/Tribe/Process/Post_Thumbnail_Setter.php +13 -15
- common/src/Tribe/Rewrite.php +40 -5
- common/src/Tribe/Service_Providers/Shortcodes.php +80 -0
- common/src/Tribe/Shortcode/Manager.php +107 -0
- common/src/Tribe/Shortcode/Shortcode_Abstract.php +224 -0
- common/src/Tribe/Shortcode/Shortcode_Interface.php +112 -0
- common/src/Tribe/Support.php +13 -0
- common/src/Tribe/Template.php +48 -14
- common/src/Tribe/Validator/Base.php +3 -1
- common/src/functions/template-tags/html.php +1 -1
- common/src/functions/template-tags/post.php +11 -8
- common/src/modules/components/form/index.js +0 -1
- common/src/modules/components/form/select/component.js +0 -116
- common/src/modules/components/form/select/index.js +0 -1
- common/src/modules/components/form/select/style.pcss +0 -56
- common/src/modules/components/index.js +0 -5
- common/src/modules/components/plugin-block-hooks/__tests__/__snapshots__/plugin-block-hooks.spec.js.snap +0 -131
- common/src/modules/components/plugin-block-hooks/__tests__/plugin-block-hooks.spec.js +0 -92
- common/src/modules/components/plugin-block-hooks/component.js +0 -138
- common/src/modules/components/plugin-block-hooks/container.js +0 -21
- common/src/modules/components/plugin-block-hooks/index.js +0 -1
- common/src/modules/components/plugin-block-hooks/style.pcss +0 -37
- common/src/modules/components/prevent-block-close/__tests__/component.spec.js +0 -15
- common/src/modules/components/prevent-block-close/component.js +0 -38
- common/src/modules/components/prevent-block-close/index.js +0 -1
- common/src/modules/data/__tests__/utils.test.js +0 -10
- common/src/modules/data/editor/post-types.js +0 -3
- common/src/modules/data/forms/__tests__/__snapshots__/actions.test.js.snap +0 -147
- common/src/modules/data/forms/__tests__/actions.test.js +0 -96
- common/src/modules/data/forms/__tests__/reducer.test.js +0 -88
- common/src/modules/data/forms/__tests__/selectors.test.js +0 -89
- common/src/modules/data/forms/__tests__/types.js +0 -19
- common/src/modules/data/forms/actions.js +0 -153
- common/src/modules/data/forms/index.js +0 -12
- common/src/modules/data/forms/reducer.js +0 -33
- common/src/modules/data/forms/reducers/__tests__/__snapshots__/form.test.js.snap +0 -84
- common/src/modules/data/forms/reducers/__tests__/form.test.js +0 -49
- common/src/modules/data/forms/reducers/__tests__/volatile.test.js +0 -23
- common/src/modules/data/forms/reducers/form.js +0 -58
- common/src/modules/data/forms/reducers/index.js +0 -2
- common/src/modules/data/forms/reducers/volatile.js +0 -15
- common/src/modules/data/forms/selectors.js +0 -39
- common/src/modules/data/forms/types.js +0 -15
- common/src/modules/data/index.js +0 -9
- common/src/modules/data/plugins/__tests__/__snapshots__/actions.test.js.snap +0 -19
- common/src/modules/data/plugins/__tests__/actions.test.js +0 -14
- common/src/modules/data/plugins/__tests__/reducer.test.js +0 -25
- common/src/modules/data/plugins/__tests__/selectors.test.js +0 -23
- common/src/modules/data/plugins/__tests__/types.test.js +0 -12
- common/src/modules/data/plugins/actions.js +0 -18
- common/src/modules/data/plugins/constants.js +0 -4
- common/src/modules/data/plugins/index.js +0 -12
- common/src/modules/data/plugins/proptypes.js +0 -15
- common/src/modules/data/plugins/reducer.js +0 -20
- common/src/modules/data/plugins/selectors.js +0 -9
- common/src/modules/data/plugins/types.js +0 -7
- common/src/modules/data/reducers.js +0 -15
- common/src/modules/data/utils.js +0 -1
- common/src/modules/elements/accordion/__tests__/__snapshots__/element.test.js.snap +0 -71
- common/src/modules/elements/accordion/__tests__/element.test.js +0 -45
- common/src/modules/elements/accordion/element.js +0 -58
- common/src/modules/elements/accordion/row/__tests__/__snapshots__/template.test.js.snap +0 -31
- common/src/modules/elements/accordion/row/__tests__/template.test.js +0 -56
- common/src/modules/elements/accordion/row/template.js +0 -129
- common/src/modules/elements/accordion/style.pcss +0 -8
- common/src/modules/elements/block-icon/index.js +0 -16
- common/src/modules/elements/block-icon/style.pcss +0 -24
- common/src/modules/elements/button/__tests__/__snapshots__/element.test.js.snap +0 -62
- common/src/modules/elements/button/__tests__/element.test.js +0 -60
- common/src/modules/elements/button/element.js +0 -56
- common/src/modules/elements/button/style.pcss +0 -58
- common/src/modules/elements/checkbox-input/__tests__/__snapshots__/element.test.js.snap +0 -47
- common/src/modules/elements/checkbox-input/__tests__/element.test.js +0 -39
- common/src/modules/elements/checkbox-input/element.js +0 -35
- common/src/modules/elements/checkbox-input/style.pcss +0 -25
- common/src/modules/elements/checkbox/__tests__/__snapshots__/element.test.js.snap +0 -168
- common/src/modules/elements/checkbox/__tests__/element.test.js +0 -70
- common/src/modules/elements/checkbox/element.js +0 -61
- common/src/modules/elements/counter/__tests__/__snapshots__/element.test.js.snap +0 -57
- common/src/modules/elements/counter/__tests__/element.test.js +0 -32
- common/src/modules/elements/counter/element.js +0 -37
- common/src/modules/elements/counter/style.pcss +0 -22
- common/src/modules/elements/creatable-select/__tests__/__snapshots__/element.test.js.snap +0 -241
- common/src/modules/elements/creatable-select/__tests__/element.test.js +0 -31
- common/src/modules/elements/creatable-select/element.js +0 -50
- common/src/modules/elements/creatable-select/style.pcss +0 -75
- common/src/modules/elements/day-picker-input/element.js +0 -34
- common/src/modules/elements/day-picker-input/style.pcss +0 -109
- common/src/modules/elements/heading/__tests__/__snapshots__/element.test.js.snap +0 -49
- common/src/modules/elements/heading/__tests__/element.test.js +0 -47
- common/src/modules/elements/heading/element.js +0 -32
- common/src/modules/elements/heading/style.pcss +0 -16
- common/src/modules/elements/image-upload/__tests__/__snapshots__/element.test.js.snap +0 -191
- common/src/modules/elements/image-upload/__tests__/element.test.js +0 -168
- common/src/modules/elements/image-upload/element.js +0 -114
- common/src/modules/elements/image-upload/style.pcss +0 -109
- common/src/modules/elements/image/__tests__/__snapshots__/element.test.js.snap +0 -27
- common/src/modules/elements/image/__tests__/element.test.js +0 -38
- common/src/modules/elements/image/element.js +0 -28
- common/src/modules/elements/index.js +0 -36
- common/src/modules/elements/input/__tests__/__snapshots__/element.test.js.snap +0 -23
- common/src/modules/elements/input/__tests__/element.test.js +0 -28
- common/src/modules/elements/input/element.js +0 -30
- common/src/modules/elements/input/style.pcss +0 -25
- common/src/modules/elements/label-with-link/__tests__/__snapshots__/element.test.js.snap +0 -51
- common/src/modules/elements/label-with-link/__tests__/element.test.js +0 -32
- common/src/modules/elements/label-with-link/element.js +0 -66
- common/src/modules/elements/label-with-link/style.pcss +0 -54
- common/src/modules/elements/label-with-modal/__tests__/__snapshots__/element.test.js.snap +0 -60
- common/src/modules/elements/label-with-modal/__tests__/element.test.js +0 -26
- common/src/modules/elements/label-with-modal/element.js +0 -71
- common/src/modules/elements/label-with-modal/style.pcss +0 -53
- common/src/modules/elements/labeled-item/__tests__/__snapshots__/element.test.js.snap +0 -50
- common/src/modules/elements/labeled-item/__tests__/element.test.js +0 -39
- common/src/modules/elements/labeled-item/element.js +0 -52
- common/src/modules/elements/link/__tests__/__snapshots__/element.test.js.snap +0 -40
- common/src/modules/elements/link/__tests__/element.test.js +0 -39
- common/src/modules/elements/link/element.js +0 -44
- common/src/modules/elements/modal-button/__tests__/__snapshots__/element.test.js.snap +0 -51
- common/src/modules/elements/modal-button/__tests__/element.test.js +0 -46
- common/src/modules/elements/modal-button/element.js +0 -107
- common/src/modules/elements/number-input/__tests__/__snapshots__/element.test.js.snap +0 -55
- common/src/modules/elements/number-input/__tests__/element.test.js +0 -47
- common/src/modules/elements/number-input/element.js +0 -40
- common/src/modules/elements/paragraph/__tests__/__snapshots__/element.test.js.snap +0 -17
- common/src/modules/elements/paragraph/__tests__/element.test.js +0 -19
- common/src/modules/elements/paragraph/element.js +0 -41
- common/src/modules/elements/paragraph/style.pcss +0 -24
- common/src/modules/elements/placeholder/__tests__/__snapshots__/element.test.js.snap +0 -17
- common/src/modules/elements/placeholder/__tests__/element.test.js +0 -18
- common/src/modules/elements/placeholder/element.js +0 -23
- common/src/modules/elements/placeholder/style.pcss +0 -12
- common/src/modules/elements/radio-input/element.js +0 -29
- common/src/modules/elements/radio/element.js +0 -50
- common/src/modules/elements/select/__tests__/__snapshots__/element.test.js.snap +0 -241
- common/src/modules/elements/select/__tests__/element.test.js +0 -31
- common/src/modules/elements/select/element.js +0 -41
- common/src/modules/elements/select/style.pcss +0 -78
- common/src/modules/elements/style.pcss +0 -3
- common/src/modules/elements/textarea/element.js +0 -20
- common/src/modules/elements/time-picker/element.js +0 -204
- common/src/modules/elements/time-picker/style.pcss +0 -86
- common/src/modules/elements/tooltip/__tests__/__snapshots__/element.test.js.snap +0 -22
- common/src/modules/elements/tooltip/__tests__/element.test.js +0 -33
- common/src/modules/elements/tooltip/element.js +0 -56
- common/src/modules/elements/tooltip/style.pcss +0 -14
- common/src/modules/elements/url-input/element.js +0 -27
- common/src/modules/hoc/__tests__/__snapshots__/with-form.test.js.snap +0 -19
- common/src/modules/hoc/__tests__/__snapshots__/with-save-data.test.js.snap +0 -62
- common/src/modules/hoc/__tests__/__snapshots__/with-store.test.js.snap +0 -18
- common/src/modules/hoc/__tests__/with-form.test.js +0 -89
- common/src/modules/hoc/__tests__/with-save-data.test.js +0 -191
- common/src/modules/hoc/__tests__/with-selected.test.js +0 -97
- common/src/modules/hoc/__tests__/with-store.test.js +0 -28
- common/src/modules/hoc/index.js +0 -5
- common/src/modules/hoc/with-block-closer.js +0 -129
- common/src/modules/hoc/with-form.js +0 -71
- common/src/modules/hoc/with-selected.js +0 -64
- common/src/modules/hoc/with-store.js +0 -26
- common/src/modules/package.json +0 -17
- common/src/modules/store/configure-store.js +0 -37
- common/src/modules/store/index.js +0 -13
- common/src/modules/store/middlewares/index.js +0 -3
- common/src/modules/store/middlewares/request/__tests__/__snapshots__/actions.test.js.snap +0 -11
- common/src/modules/store/middlewares/request/__tests__/actions.test.js +0 -14
- common/src/modules/store/middlewares/request/__tests__/types.test.js +0 -11
- common/src/modules/store/middlewares/request/__tests__/utils.test.js +0 -61
- common/src/modules/store/middlewares/request/__tests__/wp-request.test.js +0 -169
- common/src/modules/store/middlewares/request/actions.js +0 -9
- common/src/modules/store/middlewares/request/index.js +0 -9
- common/src/modules/store/middlewares/request/types.js +0 -6
- common/src/modules/store/middlewares/request/utils.js +0 -32
- common/src/modules/store/middlewares/request/wp-request.js +0 -76
- common/src/modules/utils/__tests__/__snapshots__/globals.test.js.snap +0 -93
- common/src/modules/utils/__tests__/__snapshots__/time.test.js.snap +0 -33
- common/src/modules/utils/__tests__/date.test.js +0 -189
- common/src/modules/utils/__tests__/dom.test.js +0 -73
- common/src/modules/utils/__tests__/globals.test.js +0 -84
- common/src/modules/utils/__tests__/input.test.js +0 -20
- common/src/modules/utils/__tests__/moment.test.js +0 -332
- common/src/modules/utils/__tests__/number.test.js +0 -36
- common/src/modules/utils/__tests__/proptypes.test.js +0 -145
- common/src/modules/utils/__tests__/range.test.js +0 -65
- common/src/modules/utils/__tests__/slide.test.js +0 -12
- common/src/modules/utils/__tests__/string.test.js +0 -135
- common/src/modules/utils/__tests__/time.test.js +0 -222
- common/src/modules/utils/api.js +0 -57
- common/src/modules/utils/date.js +0 -151
- common/src/modules/utils/dom.js +0 -50
- common/src/modules/utils/get-hidden-height.js +0 -28
- common/src/modules/utils/globals.js +0 -37
- common/src/modules/utils/index.js +0 -27
- common/src/modules/utils/input.js +0 -12
- common/src/modules/utils/moment.js +0 -332
- common/src/modules/utils/number.js +0 -22
- common/src/modules/utils/proptypes.js +0 -73
- common/src/modules/utils/range.js +0 -89
- common/src/modules/utils/slide.js +0 -119
- common/src/modules/utils/string.js +0 -109
- common/src/modules/utils/time.js +0 -207
- common/src/modules/utils/timezone.js +0 -72
- common/src/resources/css/accessibility.css +0 -34
- common/src/resources/css/app-shop.css +0 -102
- common/src/resources/css/app/components.css +0 -2
- common/src/resources/css/app/components.min.css +1 -1
- common/src/resources/css/app/elements.css +0 -20
- common/src/resources/css/app/elements.min.css +1 -1
- common/src/resources/css/bumpdown.css +0 -69
- common/src/resources/css/buttonset.css +0 -39
- common/src/resources/css/common-full.css +0 -2319
- common/src/resources/css/common-full.min.css +1 -1
- common/src/resources/css/common-skeleton.css +0 -1774
- common/src/resources/css/common-skeleton.min.css +1 -1
- common/src/resources/css/datatables.css +0 -396
- common/src/resources/css/datepicker.css +0 -566
- common/src/resources/css/dependency.css +0 -30
- common/src/resources/css/dialog.css +0 -576
- common/src/resources/css/promoter.css +0 -33
- common/src/resources/css/tooltip.css +0 -121
- common/src/resources/css/tribe-common-admin.css +0 -1387
- common/src/resources/css/tribe-common-admin.min.css +1 -1
- common/src/resources/css/tribe-ui.css +0 -36
- common/src/resources/css/tribe-ui.min.css +1 -1
- common/src/resources/css/validation.css +0 -18
- common/src/resources/images/app-shop-community.jpg +0 -0
- common/src/resources/images/app-shop-eventbrite.jpg +0 -0
- common/src/resources/images/app-shop-ical.jpg +0 -0
- common/src/resources/images/app-shop-pro.jpg +0 -0
- common/src/resources/images/app-shop-promoter.jpg +0 -0
- common/src/resources/images/app-shop-tickets-plus.jpg +0 -0
- common/src/resources/images/donate-link-screenshot.png +0 -0
- common/src/resources/images/gutenberg-admin-notice-TEC.png +0 -0
- common/src/resources/images/gutenberg-admin-notice-tickets.png +0 -0
- common/src/resources/images/mascot.png +0 -0
- common/src/resources/js/app/components.js +0 -6237
common/lang/readme.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
1 |
+
If you are interested in contributing to translations, you can get started at https://translations.theeventscalendar.com/projects/tribe-common/
|
2 |
+
|
3 |
+
On that site you can also find the .po translation files for doing local translations. We do not include these in the plugin itself to save space.
|
common/lang/tribe-common-af.mo
CHANGED
Binary file
|
common/lang/tribe-common-ar.mo
CHANGED
Binary file
|
common/lang/tribe-common-bg_BG.mo
CHANGED
Binary file
|
common/lang/tribe-common-ca.mo
CHANGED
Binary file
|
common/lang/tribe-common-cs_CZ.mo
CHANGED
Binary file
|
common/lang/tribe-common-da_DK.mo
CHANGED
Binary file
|
common/lang/tribe-common-de_DE.mo
CHANGED
Binary file
|
common/lang/tribe-common-el.mo
CHANGED
Binary file
|
common/lang/tribe-common-en_GB.mo
CHANGED
Binary file
|
common/lang/tribe-common-es_ES.mo
CHANGED
Binary file
|
common/lang/tribe-common-et.mo
CHANGED
Binary file
|
common/lang/tribe-common-fi.mo
CHANGED
Binary file
|
common/lang/tribe-common-fr_CA.mo
CHANGED
Binary file
|
common/lang/tribe-common-fr_FR.mo
CHANGED
Binary file
|
common/lang/tribe-common-hu_HU.mo
CHANGED
Binary file
|
common/lang/tribe-common-id_ID.mo
CHANGED
Binary file
|
common/lang/tribe-common-is_IS.mo
CHANGED
Binary file
|
common/lang/tribe-common-it_IT.mo
CHANGED
Binary file
|
common/lang/tribe-common-ja.mo
CHANGED
Binary file
|
common/lang/tribe-common-lt_LT.mo
CHANGED
Binary file
|
common/lang/tribe-common-lv.mo
CHANGED
Binary file
|
common/lang/tribe-common-nb_NO.mo
CHANGED
Binary file
|
common/lang/tribe-common-nl_NL.mo
CHANGED
Binary file
|
common/lang/tribe-common-pt_BR.mo
CHANGED
Binary file
|
common/lang/tribe-common-pt_PT.mo
CHANGED
Binary file
|
common/lang/tribe-common-ro_RO.mo
CHANGED
Binary file
|
common/lang/tribe-common-ru_RU.mo
CHANGED
Binary file
|
common/lang/tribe-common-sk_SK.mo
CHANGED
Binary file
|
common/lang/tribe-common-sl_SI.mo
CHANGED
Binary file
|
common/lang/tribe-common-sr_RS.mo
CHANGED
Binary file
|
common/lang/tribe-common-sv_SE.mo
CHANGED
Binary file
|
common/lang/tribe-common-tr_TR.mo
CHANGED
Binary file
|
common/lang/tribe-common-zh_CN.mo
CHANGED
Binary file
|
common/lang/tribe-common-zh_TW.mo
CHANGED
Binary file
|
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: 2020-
|
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: 2020-
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
@@ -203,7 +203,8 @@ msgid "To begin using %2$s, please install and activate %3$s."
|
|
203 |
msgstr ""
|
204 |
|
205 |
#: src/Tribe/Admin/Notice/Plugin_Download.php:124
|
206 |
-
|
|
|
207 |
msgstr ""
|
208 |
|
209 |
#: src/Tribe/Admin/Notice/Plugin_Download.php:125
|
@@ -440,24 +441,24 @@ msgid "Problem loading the block, please remove this block to restart."
|
|
440 |
msgstr ""
|
441 |
|
442 |
#. translators: %s: duration
|
443 |
-
#: src/Tribe/Editor/Configuration.php:
|
444 |
msgid "%s from now"
|
445 |
msgstr ""
|
446 |
|
447 |
#. translators: %s: duration
|
448 |
-
#: src/Tribe/Editor/Configuration.php:
|
449 |
msgid "%s ago"
|
450 |
msgstr ""
|
451 |
|
452 |
-
#: src/Tribe/Editor/Configuration.php:
|
453 |
msgid "g:i a"
|
454 |
msgstr ""
|
455 |
|
456 |
-
#: src/Tribe/Editor/Configuration.php:
|
457 |
msgid "F j, Y"
|
458 |
msgstr ""
|
459 |
|
460 |
-
#: src/Tribe/Editor/Configuration.php:
|
461 |
msgid "F j"
|
462 |
msgstr ""
|
463 |
|
@@ -485,19 +486,19 @@ msgid ""
|
|
485 |
"debug_backtrace() for Tribe Extensions to work."
|
486 |
msgstr ""
|
487 |
|
488 |
-
#: src/Tribe/Field.php:
|
489 |
msgid "Invalid field type specified"
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: src/Tribe/Field.php:
|
493 |
msgid "No radio options specified"
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: src/Tribe/Field.php:
|
497 |
msgid "No checkbox options specified"
|
498 |
msgstr ""
|
499 |
|
500 |
-
#: src/Tribe/Field.php:
|
501 |
msgid "No select options specified"
|
502 |
msgstr ""
|
503 |
|
@@ -833,7 +834,8 @@ msgstr ""
|
|
833 |
msgid "Gambia"
|
834 |
msgstr ""
|
835 |
|
836 |
-
#: src/Tribe/Languages/Locations.php:138
|
|
|
837 |
msgid "Georgia"
|
838 |
msgstr ""
|
839 |
|
@@ -1513,6 +1515,11 @@ msgstr ""
|
|
1513 |
msgid "Florida"
|
1514 |
msgstr ""
|
1515 |
|
|
|
|
|
|
|
|
|
|
|
1516 |
#: src/Tribe/Languages/Locations.php:335
|
1517 |
msgid "Hawaii"
|
1518 |
msgstr ""
|
@@ -1715,87 +1722,87 @@ msgstr ""
|
|
1715 |
msgid "Full debug (all events)"
|
1716 |
msgstr ""
|
1717 |
|
1718 |
-
#: src/Tribe/Main.php:
|
1719 |
msgid ": activate to sort column ascending"
|
1720 |
msgstr ""
|
1721 |
|
1722 |
-
#: src/Tribe/Main.php:
|
1723 |
msgid ": activate to sort column descending"
|
1724 |
msgstr ""
|
1725 |
|
1726 |
-
#: src/Tribe/Main.php:
|
1727 |
msgid "Show _MENU_ entries"
|
1728 |
msgstr ""
|
1729 |
|
1730 |
-
#: src/Tribe/Main.php:
|
1731 |
msgid "No data available in table"
|
1732 |
msgstr ""
|
1733 |
|
1734 |
-
#: src/Tribe/Main.php:
|
1735 |
msgid "Showing _START_ to _END_ of _TOTAL_ entries"
|
1736 |
msgstr ""
|
1737 |
|
1738 |
-
#: src/Tribe/Main.php:
|
1739 |
msgid "Showing 0 to 0 of 0 entries"
|
1740 |
msgstr ""
|
1741 |
|
1742 |
-
#: src/Tribe/Main.php:
|
1743 |
msgid "(filtered from _MAX_ total entries)"
|
1744 |
msgstr ""
|
1745 |
|
1746 |
-
#: src/Tribe/Main.php:
|
1747 |
msgid "No matching records found"
|
1748 |
msgstr ""
|
1749 |
|
1750 |
-
#: src/Tribe/Main.php:
|
1751 |
msgid "Search:"
|
1752 |
msgstr ""
|
1753 |
|
1754 |
-
#: src/Tribe/Main.php:
|
1755 |
msgid "All items on this page were selected. "
|
1756 |
msgstr ""
|
1757 |
|
1758 |
-
#: src/Tribe/Main.php:
|
1759 |
msgid "Select all pages"
|
1760 |
msgstr ""
|
1761 |
|
1762 |
-
#: src/Tribe/Main.php:
|
1763 |
msgid "Clear Selection."
|
1764 |
msgstr ""
|
1765 |
|
1766 |
-
#: src/Tribe/Main.php:
|
1767 |
msgid "All"
|
1768 |
msgstr ""
|
1769 |
|
1770 |
-
#: src/Tribe/Main.php:
|
1771 |
msgid "Next"
|
1772 |
msgstr ""
|
1773 |
|
1774 |
-
#: src/Tribe/Main.php:
|
1775 |
msgid "Previous"
|
1776 |
msgstr ""
|
1777 |
|
1778 |
-
#: src/Tribe/Main.php:
|
1779 |
msgid ": Selected %d rows"
|
1780 |
msgstr ""
|
1781 |
|
1782 |
-
#: src/Tribe/Main.php:
|
1783 |
msgid ": Selected 1 row"
|
1784 |
msgstr ""
|
1785 |
|
1786 |
-
#: src/Tribe/Main.php:
|
1787 |
msgid "Prev"
|
1788 |
msgstr ""
|
1789 |
|
1790 |
-
#: src/Tribe/Main.php:
|
1791 |
msgid "Today"
|
1792 |
msgstr ""
|
1793 |
|
1794 |
-
#: src/Tribe/Main.php:
|
1795 |
msgid "Done"
|
1796 |
msgstr ""
|
1797 |
|
1798 |
-
#: src/Tribe/Main.php:
|
1799 |
msgid "Clear"
|
1800 |
msgstr ""
|
1801 |
|
@@ -1942,10 +1949,6 @@ msgctxt "formatted plugin list"
|
|
1942 |
msgid "%1$s and %2$s"
|
1943 |
msgstr ""
|
1944 |
|
1945 |
-
#: src/Tribe/PUE/Update_Prevention.php:181
|
1946 |
-
msgid "Read More."
|
1947 |
-
msgstr ""
|
1948 |
-
|
1949 |
#: src/Tribe/PUE/Update_Prevention.php:184
|
1950 |
msgid ""
|
1951 |
"Your update failed due to an incompatibility between the version (%1$s) of "
|
@@ -2183,42 +2186,42 @@ msgid ""
|
|
2183 |
"overrides is provided below."
|
2184 |
msgstr ""
|
2185 |
|
2186 |
-
#: src/Tribe/Support.php:
|
2187 |
msgid "English"
|
2188 |
msgstr ""
|
2189 |
|
2190 |
-
#: src/Tribe/Support.php:
|
2191 |
msgid "Unknown or not set"
|
2192 |
msgstr ""
|
2193 |
|
2194 |
-
#: src/Tribe/Support.php:
|
2195 |
msgid ""
|
2196 |
"Rewrite rules were purged on load of this help page. Chances are there is a "
|
2197 |
"rewrite rule flush occurring in a plugin or theme!"
|
2198 |
msgstr ""
|
2199 |
|
2200 |
-
#: src/Tribe/Support.php:
|
2201 |
msgid ""
|
2202 |
"Yes, automatically share my system information with the Modern Tribe support "
|
2203 |
"team"
|
2204 |
msgstr ""
|
2205 |
|
2206 |
-
#: src/Tribe/Support.php:
|
2207 |
msgid ""
|
2208 |
"Your system information will only be used by the Modern Tribe support team. "
|
2209 |
"All information is stored securely. We do not share this information with "
|
2210 |
"any third parties."
|
2211 |
msgstr ""
|
2212 |
|
2213 |
-
#: src/Tribe/Support.php:
|
2214 |
msgid "Invalid Key"
|
2215 |
msgstr ""
|
2216 |
|
2217 |
-
#: src/Tribe/Support.php:
|
2218 |
msgid "Permission Error"
|
2219 |
msgstr ""
|
2220 |
|
2221 |
-
#: src/Tribe/Support.php:
|
2222 |
msgid "Unique System Info Key Generated"
|
2223 |
msgstr ""
|
2224 |
|
@@ -2698,3 +2701,4 @@ msgstr ""
|
|
2698 |
#. Author URI of the plugin/theme
|
2699 |
msgid "http://m.tri.be/1x"
|
2700 |
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.12.0\n"
|
6 |
"Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
|
7 |
+
"POT-Creation-Date: 2020-04-24 02:58:48+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: 2020-04-24 02:58\n"
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
203 |
msgstr ""
|
204 |
|
205 |
#: src/Tribe/Admin/Notice/Plugin_Download.php:124
|
206 |
+
#: src/Tribe/PUE/Update_Prevention.php:181
|
207 |
+
msgid "Read more"
|
208 |
msgstr ""
|
209 |
|
210 |
#: src/Tribe/Admin/Notice/Plugin_Download.php:125
|
441 |
msgstr ""
|
442 |
|
443 |
#. translators: %s: duration
|
444 |
+
#: src/Tribe/Editor/Configuration.php:89
|
445 |
msgid "%s from now"
|
446 |
msgstr ""
|
447 |
|
448 |
#. translators: %s: duration
|
449 |
+
#: src/Tribe/Editor/Configuration.php:91
|
450 |
msgid "%s ago"
|
451 |
msgstr ""
|
452 |
|
453 |
+
#: src/Tribe/Editor/Configuration.php:95 src/Tribe/Editor/Configuration.php:98
|
454 |
msgid "g:i a"
|
455 |
msgstr ""
|
456 |
|
457 |
+
#: src/Tribe/Editor/Configuration.php:96 src/Tribe/Editor/Configuration.php:98
|
458 |
msgid "F j, Y"
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: src/Tribe/Editor/Configuration.php:97
|
462 |
msgid "F j"
|
463 |
msgstr ""
|
464 |
|
486 |
"debug_backtrace() for Tribe Extensions to work."
|
487 |
msgstr ""
|
488 |
|
489 |
+
#: src/Tribe/Field.php:233
|
490 |
msgid "Invalid field type specified"
|
491 |
msgstr ""
|
492 |
|
493 |
+
#: src/Tribe/Field.php:541
|
494 |
msgid "No radio options specified"
|
495 |
msgstr ""
|
496 |
|
497 |
+
#: src/Tribe/Field.php:577
|
498 |
msgid "No checkbox options specified"
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: src/Tribe/Field.php:638
|
502 |
msgid "No select options specified"
|
503 |
msgstr ""
|
504 |
|
834 |
msgid "Gambia"
|
835 |
msgstr ""
|
836 |
|
837 |
+
#: src/Tribe/Languages/Locations.php:138
|
838 |
+
msgctxt "The country"
|
839 |
msgid "Georgia"
|
840 |
msgstr ""
|
841 |
|
1515 |
msgid "Florida"
|
1516 |
msgstr ""
|
1517 |
|
1518 |
+
#: src/Tribe/Languages/Locations.php:334
|
1519 |
+
msgctxt "The US state Georgia"
|
1520 |
+
msgid "Georgia"
|
1521 |
+
msgstr ""
|
1522 |
+
|
1523 |
#: src/Tribe/Languages/Locations.php:335
|
1524 |
msgid "Hawaii"
|
1525 |
msgstr ""
|
1722 |
msgid "Full debug (all events)"
|
1723 |
msgstr ""
|
1724 |
|
1725 |
+
#: src/Tribe/Main.php:313
|
1726 |
msgid ": activate to sort column ascending"
|
1727 |
msgstr ""
|
1728 |
|
1729 |
+
#: src/Tribe/Main.php:314
|
1730 |
msgid ": activate to sort column descending"
|
1731 |
msgstr ""
|
1732 |
|
1733 |
+
#: src/Tribe/Main.php:316
|
1734 |
msgid "Show _MENU_ entries"
|
1735 |
msgstr ""
|
1736 |
|
1737 |
+
#: src/Tribe/Main.php:317
|
1738 |
msgid "No data available in table"
|
1739 |
msgstr ""
|
1740 |
|
1741 |
+
#: src/Tribe/Main.php:318
|
1742 |
msgid "Showing _START_ to _END_ of _TOTAL_ entries"
|
1743 |
msgstr ""
|
1744 |
|
1745 |
+
#: src/Tribe/Main.php:319
|
1746 |
msgid "Showing 0 to 0 of 0 entries"
|
1747 |
msgstr ""
|
1748 |
|
1749 |
+
#: src/Tribe/Main.php:320
|
1750 |
msgid "(filtered from _MAX_ total entries)"
|
1751 |
msgstr ""
|
1752 |
|
1753 |
+
#: src/Tribe/Main.php:321
|
1754 |
msgid "No matching records found"
|
1755 |
msgstr ""
|
1756 |
|
1757 |
+
#: src/Tribe/Main.php:322
|
1758 |
msgid "Search:"
|
1759 |
msgstr ""
|
1760 |
|
1761 |
+
#: src/Tribe/Main.php:323
|
1762 |
msgid "All items on this page were selected. "
|
1763 |
msgstr ""
|
1764 |
|
1765 |
+
#: src/Tribe/Main.php:324
|
1766 |
msgid "Select all pages"
|
1767 |
msgstr ""
|
1768 |
|
1769 |
+
#: src/Tribe/Main.php:325
|
1770 |
msgid "Clear Selection."
|
1771 |
msgstr ""
|
1772 |
|
1773 |
+
#: src/Tribe/Main.php:327
|
1774 |
msgid "All"
|
1775 |
msgstr ""
|
1776 |
|
1777 |
+
#: src/Tribe/Main.php:328 src/Tribe/Main.php:345
|
1778 |
msgid "Next"
|
1779 |
msgstr ""
|
1780 |
|
1781 |
+
#: src/Tribe/Main.php:329
|
1782 |
msgid "Previous"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
+
#: src/Tribe/Main.php:334
|
1786 |
msgid ": Selected %d rows"
|
1787 |
msgstr ""
|
1788 |
|
1789 |
+
#: src/Tribe/Main.php:335
|
1790 |
msgid ": Selected 1 row"
|
1791 |
msgstr ""
|
1792 |
|
1793 |
+
#: src/Tribe/Main.php:346
|
1794 |
msgid "Prev"
|
1795 |
msgstr ""
|
1796 |
|
1797 |
+
#: src/Tribe/Main.php:347 src/Tribe/Main.php:349
|
1798 |
msgid "Today"
|
1799 |
msgstr ""
|
1800 |
|
1801 |
+
#: src/Tribe/Main.php:348
|
1802 |
msgid "Done"
|
1803 |
msgstr ""
|
1804 |
|
1805 |
+
#: src/Tribe/Main.php:350
|
1806 |
msgid "Clear"
|
1807 |
msgstr ""
|
1808 |
|
1949 |
msgid "%1$s and %2$s"
|
1950 |
msgstr ""
|
1951 |
|
|
|
|
|
|
|
|
|
1952 |
#: src/Tribe/PUE/Update_Prevention.php:184
|
1953 |
msgid ""
|
1954 |
"Your update failed due to an incompatibility between the version (%1$s) of "
|
2186 |
"overrides is provided below."
|
2187 |
msgstr ""
|
2188 |
|
2189 |
+
#: src/Tribe/Support.php:182
|
2190 |
msgid "English"
|
2191 |
msgstr ""
|
2192 |
|
2193 |
+
#: src/Tribe/Support.php:201 src/Tribe/Support.php:202
|
2194 |
msgid "Unknown or not set"
|
2195 |
msgstr ""
|
2196 |
|
2197 |
+
#: src/Tribe/Support.php:212
|
2198 |
msgid ""
|
2199 |
"Rewrite rules were purged on load of this help page. Chances are there is a "
|
2200 |
"rewrite rule flush occurring in a plugin or theme!"
|
2201 |
msgstr ""
|
2202 |
|
2203 |
+
#: src/Tribe/Support.php:318
|
2204 |
msgid ""
|
2205 |
"Yes, automatically share my system information with the Modern Tribe support "
|
2206 |
"team"
|
2207 |
msgstr ""
|
2208 |
|
2209 |
+
#: src/Tribe/Support.php:319
|
2210 |
msgid ""
|
2211 |
"Your system information will only be used by the Modern Tribe support team. "
|
2212 |
"All information is stored securely. We do not share this information with "
|
2213 |
"any third parties."
|
2214 |
msgstr ""
|
2215 |
|
2216 |
+
#: src/Tribe/Support.php:338 src/Tribe/Support.php:343
|
2217 |
msgid "Invalid Key"
|
2218 |
msgstr ""
|
2219 |
|
2220 |
+
#: src/Tribe/Support.php:371 src/Tribe/Support.php:397
|
2221 |
msgid "Permission Error"
|
2222 |
msgstr ""
|
2223 |
|
2224 |
+
#: src/Tribe/Support.php:385
|
2225 |
msgid "Unique System Info Key Generated"
|
2226 |
msgstr ""
|
2227 |
|
2701 |
#. Author URI of the plugin/theme
|
2702 |
msgid "http://m.tri.be/1x"
|
2703 |
msgstr ""
|
2704 |
+
|
common/src/Tribe/Admin/Notice/Plugin_Download.php
CHANGED
@@ -121,7 +121,7 @@ class Tribe__Admin__Notice__Plugin_Download {
|
|
121 |
|
122 |
$notice_html_content = '<p>' . esc_html__( 'To begin using %2$s, please install and activate %3$s.', 'tribe-common' ) . '</p>';
|
123 |
|
124 |
-
$read_more_link = '<a href="http://m.tri.be/1aev" target="_blank">' . esc_html__( 'Read more
|
125 |
$pue_notice_text = esc_html__( 'There’s a new version of %1$s available, but your license is expired. You’ll need to renew your license to get access to the latest version. If you plan to continue using your current version of the plugin(s), be sure to use a compatible version of The Events Calendar. %2$s', 'tribe-common' );
|
126 |
$pue_notice_html = '<p>' . sprintf( $pue_notice_text, $plugin_names_clean_text, $read_more_link ) . '</p>';
|
127 |
|
@@ -163,4 +163,4 @@ class Tribe__Admin__Notice__Plugin_Download {
|
|
163 |
return $output;
|
164 |
}
|
165 |
|
166 |
-
}
|
121 |
|
122 |
$notice_html_content = '<p>' . esc_html__( 'To begin using %2$s, please install and activate %3$s.', 'tribe-common' ) . '</p>';
|
123 |
|
124 |
+
$read_more_link = '<a href="http://m.tri.be/1aev" target="_blank">' . esc_html__( 'Read more', 'tribe-common' ) . '.</a>';
|
125 |
$pue_notice_text = esc_html__( 'There’s a new version of %1$s available, but your license is expired. You’ll need to renew your license to get access to the latest version. If you plan to continue using your current version of the plugin(s), be sure to use a compatible version of The Events Calendar. %2$s', 'tribe-common' );
|
126 |
$pue_notice_html = '<p>' . sprintf( $pue_notice_text, $plugin_names_clean_text, $read_more_link ) . '</p>';
|
127 |
|
163 |
return $output;
|
164 |
}
|
165 |
|
166 |
+
}
|
common/src/Tribe/Assets.php
CHANGED
@@ -324,22 +324,27 @@ class Tribe__Assets {
|
|
324 |
return false;
|
325 |
}
|
326 |
|
|
|
|
|
327 |
// Strip the plugin URL and make this relative.
|
328 |
$relative_location = str_replace( $base_url, '', $url );
|
329 |
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
}
|
335 |
|
336 |
-
|
337 |
-
|
338 |
-
|
|
|
|
|
339 |
}
|
340 |
|
341 |
-
|
342 |
-
|
|
|
|
|
343 |
|
344 |
// Check for all Urls added to the array.
|
345 |
foreach ( $urls as $partial_path ) {
|
324 |
return false;
|
325 |
}
|
326 |
|
327 |
+
$script_debug = defined( 'SCRIPT_DEBUG' ) && tribe_is_truthy( SCRIPT_DEBUG );
|
328 |
+
|
329 |
// Strip the plugin URL and make this relative.
|
330 |
$relative_location = str_replace( $base_url, '', $url );
|
331 |
|
332 |
+
if ( $script_debug ) {
|
333 |
+
// Add the actual url after having the min file added.
|
334 |
+
$urls[] = $relative_location;
|
335 |
+
}
|
|
|
336 |
|
337 |
+
// If needed add the Min Files.
|
338 |
+
if ( substr( $relative_location, -3, 3 ) === '.js' ) {
|
339 |
+
$urls[] = substr_replace( $relative_location, '.min', - 3, 0 );
|
340 |
+
} elseif ( substr( $relative_location, -4, 4 ) === '.css' ) {
|
341 |
+
$urls[] = substr_replace( $relative_location, '.min', - 4, 0 );
|
342 |
}
|
343 |
|
344 |
+
if ( ! $script_debug ) {
|
345 |
+
// Add the actual url after having the min file added.
|
346 |
+
$urls[] = $relative_location;
|
347 |
+
}
|
348 |
|
349 |
// Check for all Urls added to the array.
|
350 |
foreach ( $urls as $partial_path ) {
|
common/src/Tribe/Cache.php
CHANGED
@@ -11,13 +11,15 @@
|
|
11 |
*/
|
12 |
class Tribe__Cache implements ArrayAccess {
|
13 |
const SCHEDULED_EVENT_DELETE_TRANSIENT = 'tribe_schedule_transient_purge';
|
14 |
-
|
15 |
-
const
|
|
|
|
|
16 |
|
17 |
/**
|
18 |
* @var array
|
19 |
*/
|
20 |
-
protected $non_persistent_keys =
|
21 |
|
22 |
/**
|
23 |
* Bootstrap hook
|
@@ -30,10 +32,12 @@ class Tribe__Cache implements ArrayAccess {
|
|
30 |
}
|
31 |
|
32 |
add_action( self::SCHEDULED_EVENT_DELETE_TRANSIENT, [ $this, 'delete_expired_transients' ] );
|
|
|
|
|
33 |
}
|
34 |
|
35 |
public static function setup() {
|
36 |
-
wp_cache_add_non_persistent_groups(
|
37 |
}
|
38 |
|
39 |
/**
|
@@ -51,13 +55,13 @@ class Tribe__Cache implements ArrayAccess {
|
|
51 |
* Filters the expiration for cache objects to provide the ability
|
52 |
* to make non-persistent objects be treated as persistent.
|
53 |
*
|
|
|
|
|
54 |
* @param int $expiration Cache expiration time.
|
55 |
* @param string $id Cache ID.
|
56 |
* @param mixed $value Cache value.
|
57 |
* @param string|array $expiration_trigger Action that triggers automatic expiration.
|
58 |
* @param string $key Unique cache key based on Cache ID and expiration trigger last run time.
|
59 |
-
*
|
60 |
-
* @since 4.8
|
61 |
*/
|
62 |
$expiration = apply_filters( 'tribe_cache_expiration', $expiration, $id, $value, $expiration_trigger, $key );
|
63 |
|
@@ -99,11 +103,9 @@ class Tribe__Cache implements ArrayAccess {
|
|
99 |
*
|
100 |
* @return mixed
|
101 |
*/
|
102 |
-
public function get( $id, $expiration_trigger = '', $default = false, $expiration = 0, $args =
|
103 |
$flipped = array_flip( $this->non_persistent_keys );
|
104 |
-
$group = isset( $flipped[ $id ] ) ?
|
105 |
-
'tribe-events-non-persistent'
|
106 |
-
: 'tribe-events';
|
107 |
$value = wp_cache_get( $this->get_id( $id, $expiration_trigger ), $group );
|
108 |
|
109 |
// Value found.
|
@@ -128,7 +130,7 @@ class Tribe__Cache implements ArrayAccess {
|
|
128 |
}
|
129 |
|
130 |
/**
|
131 |
-
* @param string
|
132 |
* @param string|array $expiration_trigger
|
133 |
*
|
134 |
* @return mixed
|
@@ -138,7 +140,7 @@ class Tribe__Cache implements ArrayAccess {
|
|
138 |
}
|
139 |
|
140 |
/**
|
141 |
-
* @param string
|
142 |
* @param string|array $expiration_trigger
|
143 |
*
|
144 |
* @return bool
|
@@ -148,7 +150,7 @@ class Tribe__Cache implements ArrayAccess {
|
|
148 |
}
|
149 |
|
150 |
/**
|
151 |
-
* @param string
|
152 |
* @param string|array $expiration_trigger
|
153 |
*
|
154 |
* @return bool
|
@@ -163,8 +165,14 @@ class Tribe__Cache implements ArrayAccess {
|
|
163 |
* This uses a modification of the the query from https://core.trac.wordpress.org/ticket/20316
|
164 |
*
|
165 |
* @since 4.11.0
|
|
|
|
|
166 |
*/
|
167 |
public function delete_expired_transients() {
|
|
|
|
|
|
|
|
|
168 |
global $wpdb;
|
169 |
|
170 |
$time = time();
|
@@ -176,17 +184,63 @@ class Tribe__Cache implements ArrayAccess {
|
|
176 |
FROM
|
177 |
{$wpdb->options} a
|
178 |
INNER JOIN {$wpdb->options} b
|
179 |
-
ON b.option_name = CONCAT( '
|
180 |
AND b.option_value < {$time}
|
181 |
WHERE
|
182 |
-
a.option_name LIKE '\
|
183 |
-
AND a.option_name NOT LIKE '\_transient\
|
184 |
";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
185 |
$wpdb->query( $sql );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
}
|
187 |
|
188 |
/**
|
189 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
* @param string|array $expiration_trigger
|
191 |
*
|
192 |
* @return string
|
@@ -224,10 +278,10 @@ class Tribe__Cache implements ArrayAccess {
|
|
224 |
/**
|
225 |
* Returns the time of an action last occurrence.
|
226 |
*
|
227 |
-
* @param string $action The action to return the time for.
|
228 |
-
*
|
229 |
* @since 4.9.14 Changed the return value type from `int` to `float`.
|
230 |
*
|
|
|
|
|
231 |
* @return float The time (microtime) an action last occurred, or the current microtime if it never occurred.
|
232 |
*/
|
233 |
public function get_last_occurrence( $action ) {
|
@@ -243,8 +297,7 @@ class Tribe__Cache implements ArrayAccess {
|
|
243 |
|
244 |
if ( ! $last_action ) {
|
245 |
$last_action = microtime( true );
|
246 |
-
|
247 |
-
update_option( 'tribe_last_' . $action, $last_action );
|
248 |
}
|
249 |
|
250 |
$cache_last_actions[ $action ] = (float) $last_action;
|
@@ -259,16 +312,23 @@ class Tribe__Cache implements ArrayAccess {
|
|
259 |
*
|
260 |
* @since 4.9.14 Changed the type of the time stored from an `int` to a `float`.
|
261 |
*
|
262 |
-
* @param string
|
263 |
-
* @param int
|
|
|
|
|
264 |
*/
|
265 |
public function set_last_occurrence( $action, $timestamp = 0 ) {
|
266 |
if ( empty( $timestamp ) ) {
|
267 |
$timestamp = microtime( true );
|
268 |
}
|
269 |
-
update_option( 'tribe_last_' . $action, (float) $timestamp );
|
270 |
|
271 |
-
|
|
|
|
|
|
|
|
|
|
|
272 |
}
|
273 |
|
274 |
/**
|
@@ -276,13 +336,14 @@ class Tribe__Cache implements ArrayAccess {
|
|
276 |
*
|
277 |
* @param mixed $components Either a single component of the key or an array of key components.
|
278 |
* @param string $prefix
|
279 |
-
* @param bool $sort
|
|
|
280 |
*
|
281 |
* @return string The resulting key.
|
282 |
*/
|
283 |
public function make_key( $components, $prefix = '', $sort = true ) {
|
284 |
-
$key
|
285 |
-
$components = is_array( $components ) ? $components :
|
286 |
foreach ( $components as $component ) {
|
287 |
if ( $sort && is_array( $component ) ) {
|
288 |
$is_associative = count( array_filter( array_keys( $component ), 'is_numeric' ) ) < count( array_keys( $component ) );
|
@@ -299,17 +360,15 @@ class Tribe__Cache implements ArrayAccess {
|
|
299 |
}
|
300 |
|
301 |
/**
|
302 |
-
* Whether a offset exists
|
303 |
*
|
304 |
-
* @link http://php.net/manual/en/arrayaccess.offsetexists.php
|
305 |
-
* @param mixed $offset <p>
|
306 |
-
* An offset to check for.
|
307 |
-
* </p>
|
308 |
-
* @return boolean true on success or false on failure.
|
309 |
-
* </p>
|
310 |
-
* <p>
|
311 |
-
* The return value will be casted to boolean if non-boolean was returned.
|
312 |
* @since 4.11.0
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
*/
|
314 |
public function offsetExists( $offset ) {
|
315 |
$flipped = array_flip( $this->non_persistent_keys );
|
@@ -318,45 +377,46 @@ class Tribe__Cache implements ArrayAccess {
|
|
318 |
}
|
319 |
|
320 |
/**
|
321 |
-
* Offset to retrieve
|
322 |
*
|
323 |
* @link http://php.net/manual/en/arrayaccess.offsetget.php
|
324 |
-
*
|
325 |
-
* The offset to retrieve.
|
326 |
-
* </p>
|
327 |
-
* @return mixed Can return all value types.
|
328 |
* @since 4.11.0
|
|
|
|
|
|
|
|
|
329 |
*/
|
330 |
public function offsetGet( $offset ) {
|
331 |
return $this->get( $offset );
|
332 |
}
|
333 |
|
334 |
/**
|
335 |
-
* Offset to set
|
|
|
|
|
336 |
*
|
337 |
* @link http://php.net/manual/en/arrayaccess.offsetset.php
|
338 |
-
*
|
339 |
-
*
|
340 |
-
*
|
341 |
-
*
|
342 |
-
* The value to set.
|
343 |
-
* </p>
|
344 |
* @return void
|
345 |
-
* @since 4.11.0
|
346 |
*/
|
347 |
public function offsetSet( $offset, $value ) {
|
348 |
$this->set( $offset, $value, self::NON_PERSISTENT );
|
349 |
}
|
350 |
|
351 |
/**
|
352 |
-
* Offset to unset
|
|
|
|
|
353 |
*
|
354 |
* @link http://php.net/manual/en/arrayaccess.offsetunset.php
|
355 |
-
*
|
356 |
-
*
|
357 |
-
*
|
358 |
* @return void
|
359 |
-
* @since 4.11.0
|
360 |
*/
|
361 |
public function offsetUnset( $offset ) {
|
362 |
$this->delete( $offset );
|
@@ -393,8 +453,8 @@ class Tribe__Cache implements ArrayAccess {
|
|
393 |
}
|
394 |
|
395 |
/** @var Tribe__Feature_Detection $feature_detection */
|
396 |
-
$feature_detection = tribe('feature-detection');
|
397 |
-
$limit
|
398 |
|
399 |
/**
|
400 |
* Filters the LIMIT that should be used to warm-up post caches and postmeta caches (if the
|
@@ -419,7 +479,7 @@ class Tribe__Cache implements ArrayAccess {
|
|
419 |
|
420 |
do {
|
421 |
$limit_clause = $limit < 0 ? sprintf( 'LIMIT %d,%d', $limit * $page, $limit ) : '';
|
422 |
-
$page
|
423 |
$these_ids = array_splice( $buffer, 0, $limit );
|
424 |
$interval = implode( ',', array_map( 'absint', $these_ids ) );
|
425 |
$posts_query = "SELECT * FROM {$wpdb->posts} WHERE ID IN ({$interval}) {$limit_clause}";
|
@@ -434,11 +494,6 @@ class Tribe__Cache implements ArrayAccess {
|
|
434 |
update_meta_cache( 'post', $these_ids );
|
435 |
}
|
436 |
}
|
437 |
-
} while (
|
438 |
-
|
439 |
-
|
440 |
-
&& count( $post_objects ) < count( $post_ids )
|
441 |
-
);
|
442 |
-
|
443 |
-
}
|
444 |
-
}
|
11 |
*/
|
12 |
class Tribe__Cache implements ArrayAccess {
|
13 |
const SCHEDULED_EVENT_DELETE_TRANSIENT = 'tribe_schedule_transient_purge';
|
14 |
+
|
15 |
+
const NO_EXPIRATION = 0;
|
16 |
+
|
17 |
+
const NON_PERSISTENT = -1;
|
18 |
|
19 |
/**
|
20 |
* @var array
|
21 |
*/
|
22 |
+
protected $non_persistent_keys = [];
|
23 |
|
24 |
/**
|
25 |
* Bootstrap hook
|
32 |
}
|
33 |
|
34 |
add_action( self::SCHEDULED_EVENT_DELETE_TRANSIENT, [ $this, 'delete_expired_transients' ] );
|
35 |
+
|
36 |
+
add_action( 'shutdown', [ $this, 'maybe_delete_expired_transients' ] );
|
37 |
}
|
38 |
|
39 |
public static function setup() {
|
40 |
+
wp_cache_add_non_persistent_groups( [ 'tribe-events-non-persistent' ] );
|
41 |
}
|
42 |
|
43 |
/**
|
55 |
* Filters the expiration for cache objects to provide the ability
|
56 |
* to make non-persistent objects be treated as persistent.
|
57 |
*
|
58 |
+
* @since 4.8
|
59 |
+
*
|
60 |
* @param int $expiration Cache expiration time.
|
61 |
* @param string $id Cache ID.
|
62 |
* @param mixed $value Cache value.
|
63 |
* @param string|array $expiration_trigger Action that triggers automatic expiration.
|
64 |
* @param string $key Unique cache key based on Cache ID and expiration trigger last run time.
|
|
|
|
|
65 |
*/
|
66 |
$expiration = apply_filters( 'tribe_cache_expiration', $expiration, $id, $value, $expiration_trigger, $key );
|
67 |
|
103 |
*
|
104 |
* @return mixed
|
105 |
*/
|
106 |
+
public function get( $id, $expiration_trigger = '', $default = false, $expiration = 0, $args = [] ) {
|
107 |
$flipped = array_flip( $this->non_persistent_keys );
|
108 |
+
$group = isset( $flipped[ $id ] ) ? 'tribe-events-non-persistent' : 'tribe-events';
|
|
|
|
|
109 |
$value = wp_cache_get( $this->get_id( $id, $expiration_trigger ), $group );
|
110 |
|
111 |
// Value found.
|
130 |
}
|
131 |
|
132 |
/**
|
133 |
+
* @param string $id
|
134 |
* @param string|array $expiration_trigger
|
135 |
*
|
136 |
* @return mixed
|
140 |
}
|
141 |
|
142 |
/**
|
143 |
+
* @param string $id
|
144 |
* @param string|array $expiration_trigger
|
145 |
*
|
146 |
* @return bool
|
150 |
}
|
151 |
|
152 |
/**
|
153 |
+
* @param string $id
|
154 |
* @param string|array $expiration_trigger
|
155 |
*
|
156 |
* @return bool
|
165 |
* This uses a modification of the the query from https://core.trac.wordpress.org/ticket/20316
|
166 |
*
|
167 |
* @since 4.11.0
|
168 |
+
*
|
169 |
+
* @return void Just execute the database SQL no return required.
|
170 |
*/
|
171 |
public function delete_expired_transients() {
|
172 |
+
if ( tribe_get_var( 'has_deleted_expired_transients', false ) ) {
|
173 |
+
return;
|
174 |
+
}
|
175 |
+
|
176 |
global $wpdb;
|
177 |
|
178 |
$time = time();
|
184 |
FROM
|
185 |
{$wpdb->options} a
|
186 |
INNER JOIN {$wpdb->options} b
|
187 |
+
ON b.option_name = CONCAT( '_transient_timeout_', SUBSTRING( a.option_name, 12 ) )
|
188 |
AND b.option_value < {$time}
|
189 |
WHERE
|
190 |
+
a.option_name LIKE '\_transient\_tribe\_%'
|
191 |
+
AND a.option_name NOT LIKE '\_transient\_timeout\_tribe\_%'
|
192 |
";
|
193 |
+
|
194 |
+
/**
|
195 |
+
* Allow third party filtering of the SQL used for deleting expired transients.
|
196 |
+
*
|
197 |
+
* @since 4.11.5
|
198 |
+
*
|
199 |
+
* @param string $sql The SQL we execute to delete all the expired transients.
|
200 |
+
* @param int $time Time we are using to determine what is expired.
|
201 |
+
*/
|
202 |
+
$sql = apply_filters( 'tribe_cache_delete_expired_transients_sql', $sql, $time );
|
203 |
+
|
204 |
+
if ( empty( $sql ) ) {
|
205 |
+
return;
|
206 |
+
}
|
207 |
+
|
208 |
$wpdb->query( $sql );
|
209 |
+
|
210 |
+
// Set the variable to prevent this call from running twice.
|
211 |
+
tribe_set_var( 'has_deleted_expired_transients', true );
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* Flag if we should delete
|
216 |
+
*
|
217 |
+
* @since 4.11.5
|
218 |
+
*
|
219 |
+
* @param boolean $value If we should delete transients or not on shutdown.
|
220 |
+
*
|
221 |
+
* @return void No return for setting the flag.
|
222 |
+
*/
|
223 |
+
public function flag_required_delete_transients( $value = true ) {
|
224 |
+
tribe_set_var( 'should_delete_expired_transients', $value );
|
225 |
}
|
226 |
|
227 |
/**
|
228 |
+
* Runs on hook `shutdown` and will delete transients on the end of the request.
|
229 |
+
*
|
230 |
+
* @since 4.11.5
|
231 |
+
*
|
232 |
+
* @return void No return for action hook method.
|
233 |
+
*/
|
234 |
+
public function maybe_delete_expired_transients() {
|
235 |
+
if ( ! tribe_get_var( 'should_delete_expired_transients', false ) ) {
|
236 |
+
return;
|
237 |
+
}
|
238 |
+
|
239 |
+
$this->delete_expired_transients();
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
* @param string $key
|
244 |
* @param string|array $expiration_trigger
|
245 |
*
|
246 |
* @return string
|
278 |
/**
|
279 |
* Returns the time of an action last occurrence.
|
280 |
*
|
|
|
|
|
281 |
* @since 4.9.14 Changed the return value type from `int` to `float`.
|
282 |
*
|
283 |
+
* @param string $action The action to return the time for.
|
284 |
+
*
|
285 |
* @return float The time (microtime) an action last occurred, or the current microtime if it never occurred.
|
286 |
*/
|
287 |
public function get_last_occurrence( $action ) {
|
297 |
|
298 |
if ( ! $last_action ) {
|
299 |
$last_action = microtime( true );
|
300 |
+
$this->set_last_occurrence( $action, $last_action );
|
|
|
301 |
}
|
302 |
|
303 |
$cache_last_actions[ $action ] = (float) $last_action;
|
312 |
*
|
313 |
* @since 4.9.14 Changed the type of the time stored from an `int` to a `float`.
|
314 |
*
|
315 |
+
* @param string $action The action to record the last occurrence of.
|
316 |
+
* @param int|float $timestamp The timestamp to assign to the action last occurrence or the current time (microtime).
|
317 |
+
*
|
318 |
+
* @return boolean IF we were able to set the last occurrence or not.
|
319 |
*/
|
320 |
public function set_last_occurrence( $action, $timestamp = 0 ) {
|
321 |
if ( empty( $timestamp ) ) {
|
322 |
$timestamp = microtime( true );
|
323 |
}
|
324 |
+
$updated = update_option( 'tribe_last_' . $action, (float) $timestamp );
|
325 |
|
326 |
+
// For performance reasons we will only expire cache once per request, when needed.
|
327 |
+
if ( $updated ) {
|
328 |
+
$this->flag_required_delete_transients( true );
|
329 |
+
}
|
330 |
+
|
331 |
+
return $updated;
|
332 |
}
|
333 |
|
334 |
/**
|
336 |
*
|
337 |
* @param mixed $components Either a single component of the key or an array of key components.
|
338 |
* @param string $prefix
|
339 |
+
* @param bool $sort Whether component arrays should be sorted or not to generate the key; defaults to
|
340 |
+
* `true`.
|
341 |
*
|
342 |
* @return string The resulting key.
|
343 |
*/
|
344 |
public function make_key( $components, $prefix = '', $sort = true ) {
|
345 |
+
$key = '';
|
346 |
+
$components = is_array( $components ) ? $components : [ $components ];
|
347 |
foreach ( $components as $component ) {
|
348 |
if ( $sort && is_array( $component ) ) {
|
349 |
$is_associative = count( array_filter( array_keys( $component ), 'is_numeric' ) ) < count( array_keys( $component ) );
|
360 |
}
|
361 |
|
362 |
/**
|
363 |
+
* Whether a offset exists.
|
364 |
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
365 |
* @since 4.11.0
|
366 |
+
*
|
367 |
+
* @link http://php.net/manual/en/arrayaccess.offsetexists.php
|
368 |
+
*
|
369 |
+
* @param mixed $offset An offset to check for.
|
370 |
+
*
|
371 |
+
* @return boolean Whether the offset exists in the cache.
|
372 |
*/
|
373 |
public function offsetExists( $offset ) {
|
374 |
$flipped = array_flip( $this->non_persistent_keys );
|
377 |
}
|
378 |
|
379 |
/**
|
380 |
+
* Offset to retrieve.
|
381 |
*
|
382 |
* @link http://php.net/manual/en/arrayaccess.offsetget.php
|
383 |
+
*
|
|
|
|
|
|
|
384 |
* @since 4.11.0
|
385 |
+
*
|
386 |
+
* @param mixed $offset The offset to retrieve.
|
387 |
+
*
|
388 |
+
* @return mixed Can return all value types.
|
389 |
*/
|
390 |
public function offsetGet( $offset ) {
|
391 |
return $this->get( $offset );
|
392 |
}
|
393 |
|
394 |
/**
|
395 |
+
* Offset to set.
|
396 |
+
*
|
397 |
+
* @since 4.11.0
|
398 |
*
|
399 |
* @link http://php.net/manual/en/arrayaccess.offsetset.php
|
400 |
+
*
|
401 |
+
* @param mixed $offset The offset to assign the value to.
|
402 |
+
* @param mixed $value The value to set.
|
403 |
+
*
|
|
|
|
|
404 |
* @return void
|
|
|
405 |
*/
|
406 |
public function offsetSet( $offset, $value ) {
|
407 |
$this->set( $offset, $value, self::NON_PERSISTENT );
|
408 |
}
|
409 |
|
410 |
/**
|
411 |
+
* Offset to unset.
|
412 |
+
*
|
413 |
+
* @since 4.11.0
|
414 |
*
|
415 |
* @link http://php.net/manual/en/arrayaccess.offsetunset.php
|
416 |
+
*
|
417 |
+
* @param mixed $offset The offset to unset.
|
418 |
+
*
|
419 |
* @return void
|
|
|
420 |
*/
|
421 |
public function offsetUnset( $offset ) {
|
422 |
$this->delete( $offset );
|
453 |
}
|
454 |
|
455 |
/** @var Tribe__Feature_Detection $feature_detection */
|
456 |
+
$feature_detection = tribe( 'feature-detection' );
|
457 |
+
$limit = $feature_detection->mysql_limit_for_example( 'post_result' );
|
458 |
|
459 |
/**
|
460 |
* Filters the LIMIT that should be used to warm-up post caches and postmeta caches (if the
|
479 |
|
480 |
do {
|
481 |
$limit_clause = $limit < 0 ? sprintf( 'LIMIT %d,%d', $limit * $page, $limit ) : '';
|
482 |
+
$page++;
|
483 |
$these_ids = array_splice( $buffer, 0, $limit );
|
484 |
$interval = implode( ',', array_map( 'absint', $these_ids ) );
|
485 |
$posts_query = "SELECT * FROM {$wpdb->posts} WHERE ID IN ({$interval}) {$limit_clause}";
|
494 |
update_meta_cache( 'post', $these_ids );
|
495 |
}
|
496 |
}
|
497 |
+
} while ( ! empty( $post_objects ) && is_array( $post_objects ) && count( $post_objects ) < count( $post_ids ) );
|
498 |
+
}
|
499 |
+
}
|
|
|
|
|
|
|
|
|
|
common/src/Tribe/Cache_Listener.php
CHANGED
@@ -117,6 +117,7 @@
|
|
117 |
'sidebars_widgets' => true,
|
118 |
'stylesheet' => true,
|
119 |
'template' => true,
|
|
|
120 |
];
|
121 |
|
122 |
if ( ! empty( $triggers[ $option_name ] ) ) {
|
117 |
'sidebars_widgets' => true,
|
118 |
'stylesheet' => true,
|
119 |
'template' => true,
|
120 |
+
'WPLANG' => true,
|
121 |
];
|
122 |
|
123 |
if ( ! empty( $triggers[ $option_name ] ) ) {
|
common/src/Tribe/Context/locations.php
CHANGED
@@ -90,6 +90,30 @@ return [
|
|
90 |
],
|
91 |
'post_type' => [
|
92 |
'read' => [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
Tribe__Context::QUERY_PROP => 'post_type',
|
94 |
Tribe__Context::QUERY_VAR => 'post_type',
|
95 |
Tribe__Context::REQUEST_VAR => 'post_type',
|
90 |
],
|
91 |
'post_type' => [
|
92 |
'read' => [
|
93 |
+
Tribe__Context::FUNC => static function() {
|
94 |
+
$post_type_objs = get_post_types(
|
95 |
+
[
|
96 |
+
'public' => true,
|
97 |
+
'_builtin' => false,
|
98 |
+
],
|
99 |
+
'objects'
|
100 |
+
);
|
101 |
+
|
102 |
+
foreach( $post_type_objs as $post_type ) {
|
103 |
+
if ( empty( $post_type->query_var ) ) {
|
104 |
+
continue;
|
105 |
+
}
|
106 |
+
|
107 |
+
$url_value = tribe_get_request_var( $post_type->query_var, false );
|
108 |
+
if ( empty( $url_value ) ) {
|
109 |
+
continue;
|
110 |
+
}
|
111 |
+
|
112 |
+
return $post_type->name;
|
113 |
+
}
|
114 |
+
|
115 |
+
return Tribe__Context::NOT_FOUND;
|
116 |
+
},
|
117 |
Tribe__Context::QUERY_PROP => 'post_type',
|
118 |
Tribe__Context::QUERY_VAR => 'post_type',
|
119 |
Tribe__Context::REQUEST_VAR => 'post_type',
|
common/src/Tribe/Editor.php
CHANGED
@@ -31,7 +31,18 @@ class Tribe__Editor {
|
|
31 |
$blocks = $this->is_blocks_editor_active();
|
32 |
$classic = $this->is_classic_plugin_active() || $this->is_classic_option_active();
|
33 |
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
}
|
36 |
|
37 |
/**
|
@@ -211,4 +222,35 @@ class Tribe__Editor {
|
|
211 |
|
212 |
return $is_classic_editor_request || $disabled_by_plugin || $disabled_by_filter;
|
213 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
214 |
}
|
31 |
$blocks = $this->is_blocks_editor_active();
|
32 |
$classic = $this->is_classic_plugin_active() || $this->is_classic_option_active();
|
33 |
|
34 |
+
$should_load_blocks = $gutenberg && $blocks && ! $classic;
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Filters whether the Blocks Editor should be activated or not.
|
38 |
+
*
|
39 |
+
* @since 4.12.0
|
40 |
+
*
|
41 |
+
* @param bool $should_load_blocks Whether the blocks editor should be activated or not.
|
42 |
+
*/
|
43 |
+
$should_load_blocks = (bool) apply_filters( 'tribe_editor_should_load_blocks', $should_load_blocks );
|
44 |
+
|
45 |
+
return $should_load_blocks;
|
46 |
}
|
47 |
|
48 |
/**
|
222 |
|
223 |
return $is_classic_editor_request || $disabled_by_plugin || $disabled_by_filter;
|
224 |
}
|
225 |
+
|
226 |
+
/**
|
227 |
+
* Whether the events are being served using Blocks or the Classical Editor.
|
228 |
+
*
|
229 |
+
* @since 4.12.0
|
230 |
+
*
|
231 |
+
* @return bool True if using Blocks. False if using the Classical Editor.
|
232 |
+
*/
|
233 |
+
public function is_events_using_blocks() {
|
234 |
+
/**
|
235 |
+
* Whether the event is being served through blocks
|
236 |
+
* or the classical editor.
|
237 |
+
*
|
238 |
+
* @since 4.12.0
|
239 |
+
*
|
240 |
+
* @param bool $is_using_blocks True if using blocks. False if using the classical editor.
|
241 |
+
*/
|
242 |
+
$is_using_blocks = apply_filters( 'tribe_is_using_blocks', null );
|
243 |
+
|
244 |
+
// Early bail: The filter was overridden to return either true or false.
|
245 |
+
if ( null !== $is_using_blocks ) {
|
246 |
+
return $is_using_blocks;
|
247 |
+
}
|
248 |
+
|
249 |
+
// Early bail: The site itself is not using blocks.
|
250 |
+
if ( ! $this->should_load_blocks() ) {
|
251 |
+
return false;
|
252 |
+
}
|
253 |
+
|
254 |
+
return tribe_is_truthy( tribe_get_option( 'toggle_blocks_editor' ) );
|
255 |
+
}
|
256 |
}
|
common/src/Tribe/Editor/Blocks/Abstract.php
CHANGED
@@ -38,7 +38,7 @@ implements Tribe__Editor__Blocks__Interface {
|
|
38 |
return $this->namespace;
|
39 |
}
|
40 |
|
41 |
-
|
42 |
* Return the block attributes
|
43 |
*
|
44 |
* @since 4.8
|
@@ -69,7 +69,7 @@ implements Tribe__Editor__Blocks__Interface {
|
|
69 |
return $attributes;
|
70 |
}
|
71 |
|
72 |
-
|
73 |
* Return the block default attributes
|
74 |
*
|
75 |
* @since 4.8
|
@@ -203,5 +203,39 @@ implements Tribe__Editor__Blocks__Interface {
|
|
203 |
*/
|
204 |
public function hook() {
|
205 |
}
|
206 |
-
}
|
207 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
return $this->namespace;
|
39 |
}
|
40 |
|
41 |
+
/**
|
42 |
* Return the block attributes
|
43 |
*
|
44 |
* @since 4.8
|
69 |
return $attributes;
|
70 |
}
|
71 |
|
72 |
+
/**
|
73 |
* Return the block default attributes
|
74 |
*
|
75 |
* @since 4.8
|
203 |
*/
|
204 |
public function hook() {
|
205 |
}
|
|
|
206 |
|
207 |
+
/**
|
208 |
+
* Returns the block data for the block editor.
|
209 |
+
*
|
210 |
+
* @since 4.12.0
|
211 |
+
*
|
212 |
+
* @return array<string,mixed> The block editor data.
|
213 |
+
*/
|
214 |
+
public function block_data() {
|
215 |
+
$block_data = [
|
216 |
+
'id' => $this->slug(),
|
217 |
+
];
|
218 |
+
|
219 |
+
/**
|
220 |
+
* Filters the block data.
|
221 |
+
*
|
222 |
+
* @since 4.12.0
|
223 |
+
*
|
224 |
+
* @param array $block_data The block data.
|
225 |
+
* @param object $this The current object.
|
226 |
+
*/
|
227 |
+
$block_data = apply_filters( 'tribe_block_block_data', $block_data, $this );
|
228 |
+
|
229 |
+
/**
|
230 |
+
* Filters the block data for the block.
|
231 |
+
*
|
232 |
+
* @since 4.12.0
|
233 |
+
*
|
234 |
+
* @param array $block_data The block data.
|
235 |
+
* @param object $this The current object.
|
236 |
+
*/
|
237 |
+
$block_data = apply_filters( 'tribe_block_block_data_' . $this->slug(), $block_data, $this );
|
238 |
+
|
239 |
+
return $block_data;
|
240 |
+
}
|
241 |
+
}
|
common/src/Tribe/Editor/Configuration.php
CHANGED
@@ -39,6 +39,7 @@ class Tribe__Editor__Configuration implements Tribe__Editor__Configuration_Inter
|
|
39 |
'countries' => tribe( 'languages.locations' )->get_countries(),
|
40 |
'usStates' => Tribe__View_Helpers::loadStates(),
|
41 |
),
|
|
|
42 |
);
|
43 |
|
44 |
/**
|
39 |
'countries' => tribe( 'languages.locations' )->get_countries(),
|
40 |
'usStates' => Tribe__View_Helpers::loadStates(),
|
41 |
),
|
42 |
+
'blocks' => [],
|
43 |
);
|
44 |
|
45 |
/**
|
common/src/Tribe/Field.php
CHANGED
@@ -89,6 +89,7 @@ if ( ! class_exists( 'Tribe__Field' ) ) {
|
|
89 |
'can_be_empty' => false,
|
90 |
'clear_after' => true,
|
91 |
'tooltip_first' => false,
|
|
|
92 |
);
|
93 |
|
94 |
// a list of valid field types, to prevent screwy behavior
|
@@ -187,6 +188,7 @@ if ( ! class_exists( 'Tribe__Field' ) ) {
|
|
187 |
$can_be_empty = (bool) $args['can_be_empty'];
|
188 |
$clear_after = (bool) $args['clear_after'];
|
189 |
$tooltip_first = (bool) $args['tooltip_first'];
|
|
|
190 |
|
191 |
// set the ID
|
192 |
$this->id = apply_filters( 'tribe_field_id', $id );
|
@@ -615,6 +617,9 @@ if ( ! class_exists( 'Tribe__Field' ) ) {
|
|
615 |
$field .= $this->do_field_name();
|
616 |
$field .= " id='{$this->id}-select'";
|
617 |
$field .= " class='tribe-dropdown'";
|
|
|
|
|
|
|
618 |
$field .= '>';
|
619 |
foreach ( $this->options as $option_id => $title ) {
|
620 |
$field .= '<option value="' . esc_attr( $option_id ) . '"';
|
89 |
'can_be_empty' => false,
|
90 |
'clear_after' => true,
|
91 |
'tooltip_first' => false,
|
92 |
+
'allow_clear' => false,
|
93 |
);
|
94 |
|
95 |
// a list of valid field types, to prevent screwy behavior
|
188 |
$can_be_empty = (bool) $args['can_be_empty'];
|
189 |
$clear_after = (bool) $args['clear_after'];
|
190 |
$tooltip_first = (bool) $args['tooltip_first'];
|
191 |
+
$allow_clear = (bool) $args['allow_clear'];
|
192 |
|
193 |
// set the ID
|
194 |
$this->id = apply_filters( 'tribe_field_id', $id );
|
617 |
$field .= $this->do_field_name();
|
618 |
$field .= " id='{$this->id}-select'";
|
619 |
$field .= " class='tribe-dropdown'";
|
620 |
+
if ( empty( $this->allow_clear ) ) {
|
621 |
+
$field .= " data-prevent-clear='true'";
|
622 |
+
}
|
623 |
$field .= '>';
|
624 |
foreach ( $this->options as $option_id => $title ) {
|
625 |
$field .= '<option value="' . esc_attr( $option_id ) . '"';
|
common/src/Tribe/Image/Uploader.php
CHANGED
@@ -29,13 +29,14 @@ class Tribe__Image__Uploader {
|
|
29 |
*/
|
30 |
public static function reset_cache() {
|
31 |
self::$attachment_guids_cache = false;
|
32 |
-
self::$original_urls_cache
|
33 |
}
|
34 |
|
35 |
/**
|
36 |
* Uploads a file and creates the media attachment or simply returns the attachment ID if existing.
|
37 |
*
|
38 |
-
* @return int|bool The attachment post ID if the uploading and attachment is successful or the ID refers to an
|
|
|
39 |
* `false` otherwise.
|
40 |
*/
|
41 |
public function upload_and_get_attachment_id() {
|
@@ -46,8 +47,13 @@ class Tribe__Image__Uploader {
|
|
46 |
$existing = false;
|
47 |
|
48 |
if ( is_string( $this->featured_image ) && ! is_numeric( $this->featured_image ) ) {
|
49 |
-
|
50 |
-
$id = $
|
|
|
|
|
|
|
|
|
|
|
51 |
} elseif ( $post = get_post( $this->featured_image ) ) {
|
52 |
$id = $post && 'attachment' === $post->post_type ? $this->featured_image : false;
|
53 |
} else {
|
@@ -60,7 +66,7 @@ class Tribe__Image__Uploader {
|
|
60 |
__CLASS__,
|
61 |
[
|
62 |
'featured_image' => $this->featured_image,
|
63 |
-
'exists' =>
|
64 |
'id' => $id,
|
65 |
]
|
66 |
);
|
@@ -68,6 +74,36 @@ class Tribe__Image__Uploader {
|
|
68 |
return $id;
|
69 |
}
|
70 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
/**
|
72 |
* @param string $file_url
|
73 |
*
|
@@ -77,105 +113,147 @@ class Tribe__Image__Uploader {
|
|
77 |
/**
|
78 |
* Allow plugins to enable local URL uploads, mainly used for testing.
|
79 |
*
|
|
|
|
|
80 |
* @param bool $allow_local_urls Whether to allow local URLs.
|
81 |
* @param string $file_url File URL.
|
82 |
-
*
|
83 |
-
* @since 4.9.5
|
84 |
*/
|
85 |
$allow_local_urls = apply_filters( 'tribe_image_uploader_local_urls', false, $file_url );
|
86 |
|
87 |
-
if ( ! filter_var( $file_url, FILTER_VALIDATE_URL )
|
88 |
return false;
|
89 |
}
|
90 |
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
|
|
107 |
|
108 |
-
|
|
|
|
|
|
|
|
|
|
|
109 |
|
110 |
return false;
|
111 |
}
|
112 |
|
113 |
-
|
114 |
|
115 |
-
|
116 |
-
|
117 |
-
tribe( 'logger' )->log_error( $message, 'Image Uploader' );
|
118 |
|
119 |
-
|
|
|
|
|
|
|
|
|
120 |
}
|
121 |
|
122 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
* We use the path basename only here to provided WordPress with a good filename
|
124 |
* that will allow it to correctly detect and validate the extension.
|
125 |
*/
|
126 |
-
$path
|
127 |
-
$upload = wp_upload_bits( basename( $path ), null, $contents );
|
128 |
|
129 |
-
|
130 |
-
|
131 |
-
tribe( 'logger' )->log_error( $message, 'Image Uploader' );
|
132 |
|
133 |
-
|
|
|
|
|
134 |
}
|
135 |
|
136 |
-
|
137 |
-
if ( !
|
138 |
-
|
139 |
-
} else {
|
140 |
-
$mime = wp_check_filetype( $upload['file'] );
|
141 |
-
if ( $mime ) {
|
142 |
-
$type = $mime['type'];
|
143 |
-
}
|
144 |
}
|
145 |
|
146 |
-
$
|
147 |
-
'post_title' => basename( $upload['file'] ),
|
148 |
-
'post_content' => '',
|
149 |
-
'post_type' => 'attachment',
|
150 |
-
'post_mime_type' => $type,
|
151 |
-
'guid' => $upload['url'],
|
152 |
-
);
|
153 |
-
|
154 |
-
$id = wp_insert_attachment( $attachment, $upload['file'] );
|
155 |
|
156 |
-
|
|
|
|
|
|
|
157 |
|
158 |
-
|
159 |
-
|
160 |
|
161 |
-
|
162 |
-
$
|
|
|
|
|
163 |
|
164 |
-
|
165 |
-
|
166 |
|
167 |
-
|
|
|
168 |
}
|
169 |
|
170 |
protected function get_attachment_ID_from_url( $featured_image ) {
|
171 |
$this->maybe_init_attachment_guids_cache();
|
172 |
$this->maybe_init_attachment_original_urls_cache();
|
173 |
|
174 |
-
$guids_cache
|
175 |
$original_urls_cache = self::$original_urls_cache;
|
176 |
if ( isset( $guids_cache[ $featured_image ] ) ) {
|
177 |
return $guids_cache[ $featured_image ];
|
178 |
-
}
|
|
|
|
|
179 |
return $original_urls_cache[ $featured_image ];
|
180 |
}
|
181 |
|
@@ -189,11 +267,11 @@ class Tribe__Image__Uploader {
|
|
189 |
$guids = $wpdb->get_results( "SELECT ID, guid FROM $wpdb->posts where post_type = 'attachment'" );
|
190 |
|
191 |
if ( $guids ) {
|
192 |
-
$keys
|
193 |
-
$values
|
194 |
self::$attachment_guids_cache = array_combine( $keys, $values );
|
195 |
} else {
|
196 |
-
self::$attachment_guids_cache =
|
197 |
}
|
198 |
}
|
199 |
}
|
@@ -211,11 +289,11 @@ class Tribe__Image__Uploader {
|
|
211 |
" );
|
212 |
|
213 |
if ( $original_urls ) {
|
214 |
-
$keys
|
215 |
-
$values
|
216 |
self::$original_urls_cache = array_combine( $keys, $values );
|
217 |
} else {
|
218 |
-
self::$original_urls_cache =
|
219 |
}
|
220 |
}
|
221 |
}
|
@@ -227,7 +305,7 @@ class Tribe__Image__Uploader {
|
|
227 |
* @since 4.7.22
|
228 |
*
|
229 |
* @param string $unused_error_code The error numeric code.
|
230 |
-
* @param string $message
|
231 |
*
|
232 |
* @throws RuntimeException To pass the error as an exception to
|
233 |
* the handler.
|
29 |
*/
|
30 |
public static function reset_cache() {
|
31 |
self::$attachment_guids_cache = false;
|
32 |
+
self::$original_urls_cache = false;
|
33 |
}
|
34 |
|
35 |
/**
|
36 |
* Uploads a file and creates the media attachment or simply returns the attachment ID if existing.
|
37 |
*
|
38 |
+
* @return int|bool The attachment post ID if the uploading and attachment is successful or the ID refers to an
|
39 |
+
* attachment;
|
40 |
* `false` otherwise.
|
41 |
*/
|
42 |
public function upload_and_get_attachment_id() {
|
47 |
$existing = false;
|
48 |
|
49 |
if ( is_string( $this->featured_image ) && ! is_numeric( $this->featured_image ) ) {
|
50 |
+
// Assume image exists in the local file system.
|
51 |
+
$id = $this->get_attachment_ID_from_url( $this->featured_image );
|
52 |
+
if ( ! $id ) {
|
53 |
+
$id = $this->upload_file( $this->featured_image );
|
54 |
+
$id = $this->maybe_retry_upload( $id );
|
55 |
+
}
|
56 |
+
$existing = (bool) $id;
|
57 |
} elseif ( $post = get_post( $this->featured_image ) ) {
|
58 |
$id = $post && 'attachment' === $post->post_type ? $this->featured_image : false;
|
59 |
} else {
|
66 |
__CLASS__,
|
67 |
[
|
68 |
'featured_image' => $this->featured_image,
|
69 |
+
'exists' => $existing,
|
70 |
'id' => $id,
|
71 |
]
|
72 |
);
|
74 |
return $id;
|
75 |
}
|
76 |
|
77 |
+
/**
|
78 |
+
* Retry to upload an image after it failed as was provided, try to decode the URL as in some cases the
|
79 |
+
* original URL might be encoded HTML components such as: "&" and some CDNs does not handle well different URLs
|
80 |
+
* as they were provided so we try to recreate the original URL where it might be required.
|
81 |
+
*
|
82 |
+
* @since 4.11.5
|
83 |
+
*
|
84 |
+
* @param int|bool $id The id of the attachment if was uploaded correctly, false otherwise.
|
85 |
+
*
|
86 |
+
* @return int The ID of the attachment after the upload retry.
|
87 |
+
*/
|
88 |
+
protected function maybe_retry_upload( $id ) {
|
89 |
+
if ( $id ) {
|
90 |
+
do_action( 'tribe_log', 'debug', __CLASS__, [ 'message' => "ID: {$id} is already a valid one." ] );
|
91 |
+
|
92 |
+
return $id;
|
93 |
+
}
|
94 |
+
|
95 |
+
$decoded = esc_url_raw( html_entity_decode( $this->featured_image ) );
|
96 |
+
|
97 |
+
do_action( 'tribe_log', 'debug', __CLASS__, [
|
98 |
+
'message' => 'Retry upload decoding the URL of the image',
|
99 |
+
'url' => $this->featured_image,
|
100 |
+
'decoded' => $decoded,
|
101 |
+
] );
|
102 |
+
|
103 |
+
// Maybe the URL was encoded and we need to convert it to a valid URL.
|
104 |
+
return $this->upload_file( $decoded );
|
105 |
+
}
|
106 |
+
|
107 |
/**
|
108 |
* @param string $file_url
|
109 |
*
|
113 |
/**
|
114 |
* Allow plugins to enable local URL uploads, mainly used for testing.
|
115 |
*
|
116 |
+
* @since 4.9.5
|
117 |
+
*
|
118 |
* @param bool $allow_local_urls Whether to allow local URLs.
|
119 |
* @param string $file_url File URL.
|
|
|
|
|
120 |
*/
|
121 |
$allow_local_urls = apply_filters( 'tribe_image_uploader_local_urls', false, $file_url );
|
122 |
|
123 |
+
if ( ! $allow_local_urls && ! filter_var( $file_url, FILTER_VALIDATE_URL ) ) {
|
124 |
return false;
|
125 |
}
|
126 |
|
127 |
+
// These files need to be included as dependencies
|
128 |
+
require_once( ABSPATH . 'wp-admin/includes/image.php' );
|
129 |
+
require_once( ABSPATH . 'wp-admin/includes/file.php' );
|
130 |
+
require_once( ABSPATH . 'wp-admin/includes/media.php' );
|
131 |
+
|
132 |
+
$is_local = false;
|
133 |
+
// This is a local file no need to fetch it from the wire.
|
134 |
+
if ( $allow_local_urls && file_exists( $file_url ) ) {
|
135 |
+
$file = $file_url;
|
136 |
+
$is_local = true;
|
137 |
+
} else {
|
138 |
+
/**
|
139 |
+
* Some CDN services will append query arguments to the image URL; removing
|
140 |
+
* them now has the potential of blocking the image fetching completely so we
|
141 |
+
* let them be here.
|
142 |
+
*/
|
143 |
+
$file = download_url( $file_url );
|
144 |
+
if ( is_wp_error( $file ) ) {
|
145 |
+
do_action( 'tribe_log', 'error', __CLASS__, [
|
146 |
+
'message' => $file->get_error_message(),
|
147 |
+
'url' => $file_url,
|
148 |
+
'error' => $file,
|
149 |
+
] );
|
150 |
+
|
151 |
+
return false;
|
152 |
+
}
|
153 |
+
}
|
154 |
|
155 |
+
// Upload file into WP and leave WP handle the resize and such.
|
156 |
+
$attachment_id = media_handle_sideload( [
|
157 |
+
'name' => $this->create_file_name( $file ),
|
158 |
+
'tmp_name' => $file,
|
159 |
+
'post_mime_type' => 'image',
|
160 |
+
] );
|
161 |
+
|
162 |
+
// Remove the temporary file as is no longer required at this point.
|
163 |
+
if ( ! $is_local && file_exists( $file ) ) {
|
164 |
+
@unlink( $file );
|
165 |
+
}
|
166 |
|
167 |
+
if ( is_wp_error( $attachment_id ) ) {
|
168 |
+
do_action( 'tribe_log', 'error', __CLASS__, [
|
169 |
+
'message' => $attachment_id->get_error_message(),
|
170 |
+
'url' => $file_url,
|
171 |
+
'error' => $attachment_id,
|
172 |
+
] );
|
173 |
|
174 |
return false;
|
175 |
}
|
176 |
|
177 |
+
update_post_meta( $attachment_id, '_tribe_importer_original_url', $file_url );
|
178 |
|
179 |
+
$this->maybe_init_attachment_guids_cache();
|
180 |
+
$this->maybe_init_attachment_original_urls_cache();
|
|
|
181 |
|
182 |
+
$attachment_post = get_post( $attachment_id );
|
183 |
+
// Only update the cache if is a valid attachment.
|
184 |
+
if ( $attachment_post instanceof WP_Post ) {
|
185 |
+
self::$attachment_guids_cache[ $attachment_post->guid ] = $attachment_id;
|
186 |
+
self::$original_urls_cache[ $file_url ] = $attachment_id;
|
187 |
}
|
188 |
|
189 |
+
return $attachment_id;
|
190 |
+
}
|
191 |
+
|
192 |
+
/**
|
193 |
+
* WordPress requires to have an extension in all all files as uses `wp_check_filetype` which uses the extension
|
194 |
+
* of the file to define if a file is valid or not, in this case the extension might not be present in some URLs of
|
195 |
+
* attachments or media files, in those cases we try to guess the right extension using the mime of the file as
|
196 |
+
* an alternative, if the $filename is a path we can verify the mime type using native WP functions.
|
197 |
+
*
|
198 |
+
* @since 4.11.5
|
199 |
+
*
|
200 |
+
* @param string $filename The name of the file or URL.
|
201 |
+
*
|
202 |
+
* @return string Returned a file name with an extension if is not already part of the file name.
|
203 |
+
*/
|
204 |
+
protected function create_file_name( $filename ) {
|
205 |
+
/**
|
206 |
* We use the path basename only here to provided WordPress with a good filename
|
207 |
* that will allow it to correctly detect and validate the extension.
|
208 |
*/
|
209 |
+
$path = wp_parse_url( $filename, PHP_URL_PATH );
|
|
|
210 |
|
211 |
+
$name = basename( $path );
|
212 |
+
$properties = wp_check_filetype( $name );
|
|
|
213 |
|
214 |
+
// Type can be defined from the name use that one instead.
|
215 |
+
if ( ! empty( $properties['type'] ) ) {
|
216 |
+
return $name;
|
217 |
}
|
218 |
|
219 |
+
// This is not a file that exists on the system, use the name instead.
|
220 |
+
if ( ! file_exists( $filename ) ) {
|
221 |
+
return $name;
|
|
|
|
|
|
|
|
|
|
|
222 |
}
|
223 |
|
224 |
+
$mime = wp_get_image_mime( $filename );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
225 |
|
226 |
+
// There's no mime defined for the file use the plain name instead.
|
227 |
+
if ( $mime === '' ) {
|
228 |
+
return $name;
|
229 |
+
}
|
230 |
|
231 |
+
// create an array with the mimes as the keys and extensions as values.
|
232 |
+
$mime_to_extensions = array_flip( wp_get_mime_types() );
|
233 |
|
234 |
+
// No mime was found for the file on the array of allowed mime types, fallback to the name.
|
235 |
+
if ( ! isset( $mime_to_extensions[ $mime ] ) ) {
|
236 |
+
return $name;
|
237 |
+
}
|
238 |
|
239 |
+
// If there are more than one extension just ose one.
|
240 |
+
$parts = explode( '|', $mime_to_extensions[ $mime ] );
|
241 |
|
242 |
+
// Create a new name with extension.
|
243 |
+
return implode( '.', [ $name, reset( $parts ) ] );
|
244 |
}
|
245 |
|
246 |
protected function get_attachment_ID_from_url( $featured_image ) {
|
247 |
$this->maybe_init_attachment_guids_cache();
|
248 |
$this->maybe_init_attachment_original_urls_cache();
|
249 |
|
250 |
+
$guids_cache = self::$attachment_guids_cache;
|
251 |
$original_urls_cache = self::$original_urls_cache;
|
252 |
if ( isset( $guids_cache[ $featured_image ] ) ) {
|
253 |
return $guids_cache[ $featured_image ];
|
254 |
+
}
|
255 |
+
|
256 |
+
if ( isset( $original_urls_cache[ $featured_image ] ) ) {
|
257 |
return $original_urls_cache[ $featured_image ];
|
258 |
}
|
259 |
|
267 |
$guids = $wpdb->get_results( "SELECT ID, guid FROM $wpdb->posts where post_type = 'attachment'" );
|
268 |
|
269 |
if ( $guids ) {
|
270 |
+
$keys = wp_list_pluck( $guids, 'guid' );
|
271 |
+
$values = wp_list_pluck( $guids, 'ID' );
|
272 |
self::$attachment_guids_cache = array_combine( $keys, $values );
|
273 |
} else {
|
274 |
+
self::$attachment_guids_cache = [];
|
275 |
}
|
276 |
}
|
277 |
}
|
289 |
" );
|
290 |
|
291 |
if ( $original_urls ) {
|
292 |
+
$keys = wp_list_pluck( $original_urls, 'meta_value' );
|
293 |
+
$values = wp_list_pluck( $original_urls, 'ID' );
|
294 |
self::$original_urls_cache = array_combine( $keys, $values );
|
295 |
} else {
|
296 |
+
self::$original_urls_cache = [];
|
297 |
}
|
298 |
}
|
299 |
}
|
305 |
* @since 4.7.22
|
306 |
*
|
307 |
* @param string $unused_error_code The error numeric code.
|
308 |
+
* @param string $message The error message.
|
309 |
*
|
310 |
* @throws RuntimeException To pass the error as an exception to
|
311 |
* the handler.
|
common/src/Tribe/Languages/Locations.php
CHANGED
@@ -135,7 +135,7 @@ class Tribe__Languages__Locations {
|
|
135 |
'TF' => esc_html__( 'French Southern Territories', 'tribe-common' ),
|
136 |
'GA' => esc_html__( 'Gabon', 'tribe-common' ),
|
137 |
'GM' => esc_html__( 'Gambia', 'tribe-common' ),
|
138 |
-
'GE' =>
|
139 |
'DE' => esc_html__( 'Germany', 'tribe-common' ),
|
140 |
'GH' => esc_html__( 'Ghana', 'tribe-common' ),
|
141 |
'GI' => esc_html__( 'Gibraltar', 'tribe-common' ),
|
@@ -331,7 +331,7 @@ class Tribe__Languages__Locations {
|
|
331 |
'DE' => esc_html__( 'Delaware', 'tribe-common' ),
|
332 |
'DC' => esc_html__( 'District of Columbia', 'tribe-common' ),
|
333 |
'FL' => esc_html__( 'Florida', 'tribe-common' ),
|
334 |
-
'GA' =>
|
335 |
'HI' => esc_html__( 'Hawaii', 'tribe-common' ),
|
336 |
'ID' => esc_html__( 'Idaho', 'tribe-common' ),
|
337 |
'IL' => esc_html__( 'Illinois', 'tribe-common' ),
|
135 |
'TF' => esc_html__( 'French Southern Territories', 'tribe-common' ),
|
136 |
'GA' => esc_html__( 'Gabon', 'tribe-common' ),
|
137 |
'GM' => esc_html__( 'Gambia', 'tribe-common' ),
|
138 |
+
'GE' => esc_html_x( 'Georgia', 'The country', 'tribe-common' ),
|
139 |
'DE' => esc_html__( 'Germany', 'tribe-common' ),
|
140 |
'GH' => esc_html__( 'Ghana', 'tribe-common' ),
|
141 |
'GI' => esc_html__( 'Gibraltar', 'tribe-common' ),
|
331 |
'DE' => esc_html__( 'Delaware', 'tribe-common' ),
|
332 |
'DC' => esc_html__( 'District of Columbia', 'tribe-common' ),
|
333 |
'FL' => esc_html__( 'Florida', 'tribe-common' ),
|
334 |
+
'GA' => esc_html_x( 'Georgia', 'The US state Georgia','tribe-common' ),
|
335 |
'HI' => esc_html__( 'Hawaii', 'tribe-common' ),
|
336 |
'ID' => esc_html__( 'Idaho', 'tribe-common' ),
|
337 |
'IL' => esc_html__( 'Illinois', 'tribe-common' ),
|
common/src/Tribe/Log/File_Logger.php
CHANGED
@@ -27,7 +27,7 @@ class Tribe__Log__File_Logger implements Tribe__Log__Logger {
|
|
27 |
*
|
28 |
* @var string $log_dir
|
29 |
*/
|
30 |
-
$this->log_dir = apply_filters( 'tribe_file_logger_directory',
|
31 |
}
|
32 |
|
33 |
/**
|
27 |
*
|
28 |
* @var string $log_dir
|
29 |
*/
|
30 |
+
$this->log_dir = apply_filters( 'tribe_file_logger_directory', get_temp_dir() );
|
31 |
}
|
32 |
|
33 |
/**
|
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 |
|
@@ -96,8 +96,6 @@ class Tribe__Main {
|
|
96 |
*/
|
97 |
public function plugins_loaded() {
|
98 |
|
99 |
-
$this->load_text_domain( 'tribe-common', basename( dirname( dirname( dirname( dirname( __FILE__ ) ) ) ) ) . '/common/lang/' );
|
100 |
-
|
101 |
$this->init_autoloading();
|
102 |
|
103 |
$this->bind_implementations();
|
@@ -194,8 +192,8 @@ class Tribe__Main {
|
|
194 |
[ 'tribe-query-string', 'utils/query-string.js' ],
|
195 |
[ 'tribe-clipboard', 'vendor/clipboard/clipboard.js' ],
|
196 |
[ 'datatables', 'vendor/datatables/datatables.js', [ 'jquery' ] ],
|
197 |
-
[ 'tribe-select2', 'vendor/tribe-
|
198 |
-
[ 'tribe-select2-css', 'vendor/tribe-
|
199 |
[ 'tribe-utils-camelcase', 'utils-camelcase.js', [ 'underscore' ] ],
|
200 |
[ 'tribe-moment', 'vendor/momentjs/moment.js' ],
|
201 |
[ 'tribe-tooltipster', 'vendor/tooltipster/tooltipster.bundle.js', [ 'jquery' ] ],
|
@@ -226,6 +224,7 @@ class Tribe__Main {
|
|
226 |
tribe_assets(
|
227 |
$this,
|
228 |
[
|
|
|
229 |
[ 'tribe-buttonset', 'buttonset.js', [ 'jquery', 'underscore' ] ],
|
230 |
[ 'tribe-common-admin', 'tribe-common-admin.css', [ 'tribe-dependency-style', 'tribe-bumpdown-css', 'tribe-buttonset-style', 'tribe-select2-css' ] ],
|
231 |
[ 'tribe-validation', 'validation.js', [ 'jquery', 'underscore', 'tribe-common', 'tribe-utils-camelcase', 'tribe-tooltipster' ] ],
|
@@ -261,13 +260,44 @@ class Tribe__Main {
|
|
261 |
'admin_enqueue_scripts',
|
262 |
[
|
263 |
'conditionals' => [ $this, 'should_load_common_admin_css' ],
|
264 |
-
'priority'
|
265 |
]
|
266 |
);
|
267 |
|
268 |
tribe( Tribe__Admin__Help_Page::class )->register_assets();
|
269 |
}
|
270 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
271 |
/**
|
272 |
* Load All localization data create by `asset.data`
|
273 |
*
|
@@ -331,6 +361,7 @@ class Tribe__Main {
|
|
331 |
|
332 |
// Register for the assets to be available everywhere
|
333 |
add_action( 'tribe_common_loaded', [ $this, 'load_assets' ], 1 );
|
|
|
334 |
add_action( 'init', [ $this, 'load_localize_data' ] );
|
335 |
add_action( 'plugins_loaded', [ 'Tribe__Admin__Notices', 'instance' ], 1 );
|
336 |
add_action( 'admin_enqueue_scripts', [ $this, 'store_admin_notices' ] );
|
@@ -410,7 +441,7 @@ class Tribe__Main {
|
|
410 |
* @since 4.2 Included $domain and $dir params.
|
411 |
*
|
412 |
* @param string $domain The text domain that will be loaded.
|
413 |
-
* @param string|false $dir What directory should be used to try to load if the default
|
414 |
*
|
415 |
* @return bool If it was able to load the text domain.
|
416 |
*/
|
@@ -537,6 +568,7 @@ class Tribe__Main {
|
|
537 |
*/
|
538 |
public function tribe_plugins_loaded() {
|
539 |
tribe( 'admin.notice.php.version' );
|
|
|
540 |
tribe_singleton( 'feature-detection', 'Tribe__Feature_Detection' );
|
541 |
tribe_register_provider( 'Tribe__Service_Providers__Processes' );
|
542 |
|
@@ -597,6 +629,7 @@ class Tribe__Main {
|
|
597 |
tribe_register_provider( Tribe\Service_Providers\Tooltip::class );
|
598 |
tribe_register_provider( Tribe\Service_Providers\Dialog::class );
|
599 |
tribe_register_provider( Tribe\Service_Providers\PUE::class );
|
|
|
600 |
tribe_register_provider( Tribe\Log\Service_Provider::class );
|
601 |
}
|
602 |
|
17 |
const OPTIONNAME = 'tribe_events_calendar_options';
|
18 |
const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
|
19 |
|
20 |
+
const VERSION = '4.12.0';
|
21 |
|
22 |
const FEED_URL = 'https://theeventscalendar.com/feed/';
|
23 |
|
96 |
*/
|
97 |
public function plugins_loaded() {
|
98 |
|
|
|
|
|
99 |
$this->init_autoloading();
|
100 |
|
101 |
$this->bind_implementations();
|
192 |
[ 'tribe-query-string', 'utils/query-string.js' ],
|
193 |
[ 'tribe-clipboard', 'vendor/clipboard/clipboard.js' ],
|
194 |
[ 'datatables', 'vendor/datatables/datatables.js', [ 'jquery' ] ],
|
195 |
+
[ 'tribe-select2', 'vendor/tribe-selectWoo/dist/js/selectWoo.full.js', [ 'jquery' ] ],
|
196 |
+
[ 'tribe-select2-css', 'vendor/tribe-selectWoo/dist/css/selectWoo.css' ],
|
197 |
[ 'tribe-utils-camelcase', 'utils-camelcase.js', [ 'underscore' ] ],
|
198 |
[ 'tribe-moment', 'vendor/momentjs/moment.js' ],
|
199 |
[ 'tribe-tooltipster', 'vendor/tooltipster/tooltipster.bundle.js', [ 'jquery' ] ],
|
224 |
tribe_assets(
|
225 |
$this,
|
226 |
[
|
227 |
+
[ 'tribe-ui', 'tribe-ui.css' ],
|
228 |
[ 'tribe-buttonset', 'buttonset.js', [ 'jquery', 'underscore' ] ],
|
229 |
[ 'tribe-common-admin', 'tribe-common-admin.css', [ 'tribe-dependency-style', 'tribe-bumpdown-css', 'tribe-buttonset-style', 'tribe-select2-css' ] ],
|
230 |
[ 'tribe-validation', 'validation.js', [ 'jquery', 'underscore', 'tribe-common', 'tribe-utils-camelcase', 'tribe-tooltipster' ] ],
|
260 |
'admin_enqueue_scripts',
|
261 |
[
|
262 |
'conditionals' => [ $this, 'should_load_common_admin_css' ],
|
263 |
+
'priority' => 5,
|
264 |
]
|
265 |
);
|
266 |
|
267 |
tribe( Tribe__Admin__Help_Page::class )->register_assets();
|
268 |
}
|
269 |
|
270 |
+
/**
|
271 |
+
* Load Common's text domain, then fire the hook for other plugins to do the same.
|
272 |
+
*
|
273 |
+
* Make sure this fires on 'init', per WordPress best practices.
|
274 |
+
*
|
275 |
+
* @since 4.12.0
|
276 |
+
*
|
277 |
+
* @return bool
|
278 |
+
*/
|
279 |
+
public function hook_load_text_domain() {
|
280 |
+
$loaded = $this->load_text_domain(
|
281 |
+
'tribe-common',
|
282 |
+
basename( dirname( dirname( dirname( dirname( __FILE__ ) ) ) ) ) . '/common/lang/'
|
283 |
+
);
|
284 |
+
|
285 |
+
/**
|
286 |
+
* After attempting (hopefully successfully) to load Common's text domain.
|
287 |
+
*
|
288 |
+
* Load other plugin text domains on this hook, but make sure they're setup on this hook prior to 'init'.
|
289 |
+
*
|
290 |
+
* @since 4.12.0
|
291 |
+
*
|
292 |
+
* @param bool $loaded Whether or not Common's text domain was loaded.
|
293 |
+
*
|
294 |
+
* @return bool
|
295 |
+
*/
|
296 |
+
do_action( 'tribe_load_text_domains', $loaded );
|
297 |
+
|
298 |
+
return $loaded;
|
299 |
+
}
|
300 |
+
|
301 |
/**
|
302 |
* Load All localization data create by `asset.data`
|
303 |
*
|
361 |
|
362 |
// Register for the assets to be available everywhere
|
363 |
add_action( 'tribe_common_loaded', [ $this, 'load_assets' ], 1 );
|
364 |
+
add_action( 'init', [ $this, 'hook_load_text_domain' ] );
|
365 |
add_action( 'init', [ $this, 'load_localize_data' ] );
|
366 |
add_action( 'plugins_loaded', [ 'Tribe__Admin__Notices', 'instance' ], 1 );
|
367 |
add_action( 'admin_enqueue_scripts', [ $this, 'store_admin_notices' ] );
|
441 |
* @since 4.2 Included $domain and $dir params.
|
442 |
*
|
443 |
* @param string $domain The text domain that will be loaded.
|
444 |
+
* @param string|false $dir What directory should be used to try to load if the default doesn't work.
|
445 |
*
|
446 |
* @return bool If it was able to load the text domain.
|
447 |
*/
|
568 |
*/
|
569 |
public function tribe_plugins_loaded() {
|
570 |
tribe( 'admin.notice.php.version' );
|
571 |
+
tribe( 'cache' );
|
572 |
tribe_singleton( 'feature-detection', 'Tribe__Feature_Detection' );
|
573 |
tribe_register_provider( 'Tribe__Service_Providers__Processes' );
|
574 |
|
629 |
tribe_register_provider( Tribe\Service_Providers\Tooltip::class );
|
630 |
tribe_register_provider( Tribe\Service_Providers\Dialog::class );
|
631 |
tribe_register_provider( Tribe\Service_Providers\PUE::class );
|
632 |
+
tribe_register_provider( Tribe\Service_Providers\Shortcodes::class );
|
633 |
tribe_register_provider( Tribe\Log\Service_Provider::class );
|
634 |
}
|
635 |
|
common/src/Tribe/PUE/Update_Prevention.php
CHANGED
@@ -178,7 +178,7 @@ class Update_Prevention {
|
|
178 |
$plugins_classes = array_keys( $incompatible_plugins );
|
179 |
$plugins_list_html = tribe( 'pue.notices' )->get_formatted_plugin_names_from_classes( $plugins_classes );
|
180 |
|
181 |
-
$link_read_more = '<a href="http://m.tri.be/1aev" target="_blank">' . esc_html__( 'Read
|
182 |
|
183 |
$message = sprintf(
|
184 |
esc_html__( 'Your update failed due to an incompatibility between the version (%1$s) of the %2$s you tried to update to and the version of %3$s that you are using. %4$s', 'tribe-common' ),
|
178 |
$plugins_classes = array_keys( $incompatible_plugins );
|
179 |
$plugins_list_html = tribe( 'pue.notices' )->get_formatted_plugin_names_from_classes( $plugins_classes );
|
180 |
|
181 |
+
$link_read_more = '<a href="http://m.tri.be/1aev" target="_blank">' . esc_html__( 'Read more', 'tribe-common' ) . '.</a>';
|
182 |
|
183 |
$message = sprintf(
|
184 |
esc_html__( 'Your update failed due to an incompatibility between the version (%1$s) of the %2$s you tried to update to and the version of %3$s that you are using. %4$s', 'tribe-common' ),
|
common/src/Tribe/Process/Post_Thumbnail_Setter.php
CHANGED
@@ -2,7 +2,6 @@
|
|
2 |
|
3 |
/**
|
4 |
* Class Tribe__Process__Post_Thumbnail_Setter
|
5 |
-
|
6 |
*
|
7 |
* Handles upload and setting of a post thumbnail in an async process.
|
8 |
* Example usage:
|
@@ -49,7 +48,7 @@ class Tribe__Process__Post_Thumbnail_Setter extends Tribe__Process__Handler {
|
|
49 |
|
50 |
$this->data( $data );
|
51 |
|
52 |
-
do_action( 'tribe_log', 'debug',
|
53 |
|
54 |
return parent::dispatch();
|
55 |
}
|
@@ -86,10 +85,11 @@ class Tribe__Process__Post_Thumbnail_Setter extends Tribe__Process__Handler {
|
|
86 |
*
|
87 |
* @since 4.7.12
|
88 |
*
|
89 |
-
* @
|
|
|
90 |
* @see Tribe__Process__Post_Thumbnail_Setter::sync_handle()
|
91 |
*
|
92 |
-
* @
|
93 |
*/
|
94 |
protected function handle( array $data_source = null ) {
|
95 |
$this->sync_handle( $data_source );
|
@@ -99,11 +99,7 @@ class Tribe__Process__Post_Thumbnail_Setter extends Tribe__Process__Handler {
|
|
99 |
* {@inheritdoc}
|
100 |
*/
|
101 |
public function sync_handle( array $data_source = null ) {
|
102 |
-
|
103 |
-
$logger = tribe( 'logger' );
|
104 |
-
$log_src = 'Featured image setter';
|
105 |
-
|
106 |
-
$logger->log_debug( "(ID: {$this->identifier}) - handling request.", $log_src );
|
107 |
|
108 |
$data_source = isset( $data_source ) ? $data_source : $_POST;
|
109 |
|
@@ -116,7 +112,11 @@ class Tribe__Process__Post_Thumbnail_Setter extends Tribe__Process__Handler {
|
|
116 |
$id = filter_var( $data_source['post_id'], FILTER_SANITIZE_NUMBER_INT );
|
117 |
$post_thumbnail = filter_var( $data_source['post_thumbnail'], FILTER_SANITIZE_STRING );
|
118 |
|
119 |
-
|
|
|
|
|
|
|
|
|
120 |
|
121 |
$thumbnail_id = tribe_upload_image( $post_thumbnail );
|
122 |
|
@@ -129,9 +129,9 @@ class Tribe__Process__Post_Thumbnail_Setter extends Tribe__Process__Handler {
|
|
129 |
'action' => 'fetch',
|
130 |
'post_thumbnail' => $post_thumbnail,
|
131 |
'post_id' => $id,
|
|
|
132 |
]
|
133 |
);
|
134 |
-
$logger->log_debug( "(ID: {$this->identifier}) - could not fetch {$post_thumbnail} for post {$id}, done.", $log_src );
|
135 |
|
136 |
return 0;
|
137 |
}
|
@@ -151,11 +151,10 @@ class Tribe__Process__Post_Thumbnail_Setter extends Tribe__Process__Handler {
|
|
151 |
'post_thumbnail' => $post_thumbnail,
|
152 |
'attachment_id' => $thumbnail_id,
|
153 |
'post_id' => $id,
|
|
|
154 |
]
|
155 |
);
|
156 |
|
157 |
-
$logger->log_debug( "(ID: {$this->identifier}) - fetched {$post_thumbnail}, created attachment with ID {$thumbnail_id}, unable to set thumbnail for post {$id}, done.", $log_src );
|
158 |
-
|
159 |
return $thumbnail_id;
|
160 |
}
|
161 |
|
@@ -168,11 +167,10 @@ class Tribe__Process__Post_Thumbnail_Setter extends Tribe__Process__Handler {
|
|
168 |
'post_thumbnail' => $post_thumbnail,
|
169 |
'attachment_id' => $thumbnail_id,
|
170 |
'post_id' => $id,
|
|
|
171 |
]
|
172 |
);
|
173 |
|
174 |
-
$logger->log_debug( "(ID: {$this->identifier}) - fetched {$post_thumbnail}, created attachment with ID {$thumbnail_id}, set thumbnail for post {$id}, done.", $log_src );
|
175 |
-
|
176 |
return $thumbnail_id;
|
177 |
}
|
178 |
}
|
2 |
|
3 |
/**
|
4 |
* Class Tribe__Process__Post_Thumbnail_Setter
|
|
|
5 |
*
|
6 |
* Handles upload and setting of a post thumbnail in an async process.
|
7 |
* Example usage:
|
48 |
|
49 |
$this->data( $data );
|
50 |
|
51 |
+
do_action( 'tribe_log', 'debug', $this->identifier, $data );
|
52 |
|
53 |
return parent::dispatch();
|
54 |
}
|
85 |
*
|
86 |
* @since 4.7.12
|
87 |
*
|
88 |
+
* @param array|null $data_source An optional source of data.
|
89 |
+
*
|
90 |
* @see Tribe__Process__Post_Thumbnail_Setter::sync_handle()
|
91 |
*
|
92 |
+
* @see tribe_upload_image()
|
93 |
*/
|
94 |
protected function handle( array $data_source = null ) {
|
95 |
$this->sync_handle( $data_source );
|
99 |
* {@inheritdoc}
|
100 |
*/
|
101 |
public function sync_handle( array $data_source = null ) {
|
102 |
+
do_action( 'tribe_log', 'debug', $this->identifier, [ 'status' => 'handling request' ] );
|
|
|
|
|
|
|
|
|
103 |
|
104 |
$data_source = isset( $data_source ) ? $data_source : $_POST;
|
105 |
|
112 |
$id = filter_var( $data_source['post_id'], FILTER_SANITIZE_NUMBER_INT );
|
113 |
$post_thumbnail = filter_var( $data_source['post_thumbnail'], FILTER_SANITIZE_STRING );
|
114 |
|
115 |
+
do_action( 'tribe_log', 'debug', $this->identifier, [
|
116 |
+
'status' => 'fetching thumbnail',
|
117 |
+
'post_thumbnail' => $post_thumbnail,
|
118 |
+
'post_id' => $id,
|
119 |
+
] );
|
120 |
|
121 |
$thumbnail_id = tribe_upload_image( $post_thumbnail );
|
122 |
|
129 |
'action' => 'fetch',
|
130 |
'post_thumbnail' => $post_thumbnail,
|
131 |
'post_id' => $id,
|
132 |
+
'status' => 'could not fetch',
|
133 |
]
|
134 |
);
|
|
|
135 |
|
136 |
return 0;
|
137 |
}
|
151 |
'post_thumbnail' => $post_thumbnail,
|
152 |
'attachment_id' => $thumbnail_id,
|
153 |
'post_id' => $id,
|
154 |
+
'status' => 'unable to set thumbnail',
|
155 |
]
|
156 |
);
|
157 |
|
|
|
|
|
158 |
return $thumbnail_id;
|
159 |
}
|
160 |
|
167 |
'post_thumbnail' => $post_thumbnail,
|
168 |
'attachment_id' => $thumbnail_id,
|
169 |
'post_id' => $id,
|
170 |
+
'status' => 'completed - attachment created and linked to the post',
|
171 |
]
|
172 |
);
|
173 |
|
|
|
|
|
174 |
return $thumbnail_id;
|
175 |
}
|
176 |
}
|
common/src/Tribe/Rewrite.php
CHANGED
@@ -26,6 +26,14 @@ class Tribe__Rewrite {
|
|
26 |
* @var static
|
27 |
*/
|
28 |
public static $instance;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
|
30 |
/**
|
31 |
* WP_Rewrite Instance
|
@@ -508,13 +516,30 @@ class Tribe__Rewrite {
|
|
508 |
/*
|
509 |
* We use `end` as, by default, the localized version of the slug in the current language will be at the
|
510 |
* end of the array.
|
511 |
-
* @todo here we should keep a map, that has to generated at permalink flush time, to map locales/slugs.
|
512 |
*/
|
513 |
return end( $localized_matcher['localized_slugs'] );
|
514 |
}, $localized_matchers );
|
515 |
|
516 |
// Include dynamic matchers now.
|
517 |
$replace = array_merge( $dynamic_matchers, $replace );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
518 |
$replaced = str_replace( array_keys( $replace ), $replace, $link_template );
|
519 |
|
520 |
// Remove trailing chars.
|
@@ -622,17 +647,22 @@ class Tribe__Rewrite {
|
|
622 |
static $cache_var_name = __METHOD__;
|
623 |
|
624 |
$bases = (array) $this->get_bases();
|
|
|
625 |
$query_var_map = $this->get_matcher_to_query_var_map();
|
626 |
|
627 |
$localized_matchers = tribe_get_var( $cache_var_name, [] );
|
628 |
|
629 |
foreach ( $bases as $base => $localized_matcher ) {
|
630 |
-
if
|
|
|
|
|
|
|
631 |
continue;
|
632 |
}
|
633 |
|
634 |
if ( isset( $query_var_map[ $base ] ) ) {
|
635 |
-
$localized_matchers[ $
|
|
|
636 |
'query_var' => $query_var_map[ $base ],
|
637 |
'en_slug' => $base,
|
638 |
'localized_slugs' => [ $base ],
|
@@ -642,7 +672,7 @@ class Tribe__Rewrite {
|
|
642 |
if ( ! empty( $buffer['slugs'] ) ) {
|
643 |
$slugs = explode( '|', $buffer['slugs'] );
|
644 |
|
645 |
-
$localized_matchers[ $
|
646 |
static function ( $localized_slug ) {
|
647 |
return str_replace( '\-', '-', $localized_slug );
|
648 |
},
|
@@ -650,7 +680,7 @@ class Tribe__Rewrite {
|
|
650 |
);
|
651 |
|
652 |
// The English version is the first.
|
653 |
-
$localized_matchers[ $
|
654 |
}
|
655 |
}
|
656 |
}
|
@@ -983,6 +1013,11 @@ class Tribe__Rewrite {
|
|
983 |
$query_vars = array_merge( $url_query_vars, $query_vars );
|
984 |
}
|
985 |
|
|
|
|
|
|
|
|
|
|
|
986 |
/**
|
987 |
* Filters the array of parsed query variables after the class logic has been applied to it.
|
988 |
*
|
26 |
* @var static
|
27 |
*/
|
28 |
public static $instance;
|
29 |
+
/**
|
30 |
+
* A delimiter used to separate a localized matcher from its base in the format `<loc_matcher><delim><base>`.
|
31 |
+
*
|
32 |
+
* @since 4.11.5
|
33 |
+
*
|
34 |
+
* @var string
|
35 |
+
*/
|
36 |
+
protected static $localized_matcher_delimiter = '~';
|
37 |
|
38 |
/**
|
39 |
* WP_Rewrite Instance
|
516 |
/*
|
517 |
* We use `end` as, by default, the localized version of the slug in the current language will be at the
|
518 |
* end of the array.
|
|
|
519 |
*/
|
520 |
return end( $localized_matcher['localized_slugs'] );
|
521 |
}, $localized_matchers );
|
522 |
|
523 |
// Include dynamic matchers now.
|
524 |
$replace = array_merge( $dynamic_matchers, $replace );
|
525 |
+
|
526 |
+
/*
|
527 |
+
* Prune from the replacements the empty values. This will resolve conflicts (e.g. single and archive w/
|
528 |
+
* same slug) as no two can be true at the same time.
|
529 |
+
* Remove the `<delim><base>` prefix added to localized matchers, if any.
|
530 |
+
*/
|
531 |
+
$replace = array_filter( $replace );
|
532 |
+
$replace = array_combine(
|
533 |
+
array_map( static function ( $key ) {
|
534 |
+
return preg_replace(
|
535 |
+
'/' . preg_quote( Tribe__Rewrite::$localized_matcher_delimiter ) . '\\w*$/',
|
536 |
+
'',
|
537 |
+
$key
|
538 |
+
);
|
539 |
+
}, array_keys( $replace ) ),
|
540 |
+
$replace
|
541 |
+
);
|
542 |
+
|
543 |
$replaced = str_replace( array_keys( $replace ), $replace, $link_template );
|
544 |
|
545 |
// Remove trailing chars.
|
647 |
static $cache_var_name = __METHOD__;
|
648 |
|
649 |
$bases = (array) $this->get_bases();
|
650 |
+
|
651 |
$query_var_map = $this->get_matcher_to_query_var_map();
|
652 |
|
653 |
$localized_matchers = tribe_get_var( $cache_var_name, [] );
|
654 |
|
655 |
foreach ( $bases as $base => $localized_matcher ) {
|
656 |
+
// Use the base too to allow possible conflicts if the slugs are the same for single and archive.
|
657 |
+
$localized_matcher_key = $localized_matcher . static::$localized_matcher_delimiter . $base;
|
658 |
+
|
659 |
+
if ( isset( $localized_matchers[ $localized_matcher_key ] ) ) {
|
660 |
continue;
|
661 |
}
|
662 |
|
663 |
if ( isset( $query_var_map[ $base ] ) ) {
|
664 |
+
$localized_matchers[ $localized_matcher_key ] = [
|
665 |
+
'base' => $base,
|
666 |
'query_var' => $query_var_map[ $base ],
|
667 |
'en_slug' => $base,
|
668 |
'localized_slugs' => [ $base ],
|
672 |
if ( ! empty( $buffer['slugs'] ) ) {
|
673 |
$slugs = explode( '|', $buffer['slugs'] );
|
674 |
|
675 |
+
$localized_matchers[ $localized_matcher_key ]['localized_slugs'] = array_map(
|
676 |
static function ( $localized_slug ) {
|
677 |
return str_replace( '\-', '-', $localized_slug );
|
678 |
},
|
680 |
);
|
681 |
|
682 |
// The English version is the first.
|
683 |
+
$localized_matchers[ $localized_matcher_key ]['en_slug'] = reset( $slugs );
|
684 |
}
|
685 |
}
|
686 |
}
|
1013 |
$query_vars = array_merge( $url_query_vars, $query_vars );
|
1014 |
}
|
1015 |
|
1016 |
+
// Prune the query vars to drop the empty `page` or `paged` ones.
|
1017 |
+
$query_vars = array_filter( $query_vars, static function ( $value, $key ) {
|
1018 |
+
return ! in_array( $key, [ 'paged', 'page' ] ) || (int) $value !== 0;
|
1019 |
+
}, ARRAY_FILTER_USE_BOTH );
|
1020 |
+
|
1021 |
/**
|
1022 |
* Filters the array of parsed query variables after the class logic has been applied to it.
|
1023 |
*
|
common/src/Tribe/Service_Providers/Shortcodes.php
ADDED
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace Tribe\Service_Providers;
|
3 |
+
|
4 |
+
use Tribe\Shortcode\Manager;
|
5 |
+
|
6 |
+
/**
|
7 |
+
* Class Shortcode
|
8 |
+
*
|
9 |
+
* @since 4.12.0
|
10 |
+
*
|
11 |
+
* @package Tribe\Service_Providers
|
12 |
+
*/
|
13 |
+
class Shortcodes extends \tad_DI52_ServiceProvider {
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Binds and sets up implementations.
|
17 |
+
*
|
18 |
+
* @since 4.12.0
|
19 |
+
*/
|
20 |
+
public function register() {
|
21 |
+
if ( static::is_active() ) {
|
22 |
+
return;
|
23 |
+
}
|
24 |
+
|
25 |
+
$this->container->singleton( Manager::class, Manager::class );
|
26 |
+
|
27 |
+
$this->register_hooks();
|
28 |
+
$this->register_assets();
|
29 |
+
|
30 |
+
$this->container->singleton( static::class, $this );
|
31 |
+
}
|
32 |
+
|
33 |
+
/**
|
34 |
+
* Static method wrapper around a filter to allow full deactivation of this provider
|
35 |
+
*
|
36 |
+
* @since 4.12.0
|
37 |
+
*
|
38 |
+
* @return boolean If this service provider is active.
|
39 |
+
*/
|
40 |
+
public static function is_active() {
|
41 |
+
/**
|
42 |
+
* Allows filtering to deactivate all shortcodes loading.
|
43 |
+
*
|
44 |
+
* @since 4.12.0
|
45 |
+
*
|
46 |
+
* @param boolean $is_active If shortcodes should be loaded or not.
|
47 |
+
*/
|
48 |
+
return apply_filters( 'tribe_shortcodes_is_active', true );
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Register all the assets associated with this service provider.
|
53 |
+
*
|
54 |
+
* @since 4.12.0
|
55 |
+
*/
|
56 |
+
protected function register_assets() {
|
57 |
+
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Registers the provider handling all the 1st level filters and actions for this service provider.
|
62 |
+
*
|
63 |
+
* @since 4.12.0
|
64 |
+
*/
|
65 |
+
protected function register_hooks() {
|
66 |
+
add_action( 'init', [ $this, 'action_add_shortcodes' ], 20 );
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Adds the new shortcodes, this normally will trigger on `init@P20` due to how we the
|
71 |
+
* v1 is added on `init@P10` and we remove them on `init@P15`.
|
72 |
+
*
|
73 |
+
* It's important to leave gaps on priority for better injection.
|
74 |
+
*
|
75 |
+
* @since 4.12.0
|
76 |
+
*/
|
77 |
+
public function action_add_shortcodes() {
|
78 |
+
$this->container->make( Manager::class )->add_shortcodes();
|
79 |
+
}
|
80 |
+
}
|
common/src/Tribe/Shortcode/Manager.php
ADDED
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Shortcodes manager for Tribe plugins.
|
4 |
+
*
|
5 |
+
* @package Tribe\Shortcode
|
6 |
+
* @since 4.12.0
|
7 |
+
*/
|
8 |
+
namespace Tribe\Shortcode;
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Class Shortcode Manager.
|
12 |
+
*
|
13 |
+
* @since 4.12.0
|
14 |
+
*
|
15 |
+
* @package Tribe\Shortcode
|
16 |
+
*/
|
17 |
+
class Manager {
|
18 |
+
/**
|
19 |
+
* Get the list of shortcodes available for handling.
|
20 |
+
*
|
21 |
+
* @since 4.12.0
|
22 |
+
*
|
23 |
+
* @return array An associative array of shortcodes in the shape `[ <slug> => <class> ]`
|
24 |
+
*/
|
25 |
+
public function get_registered_shortcodes() {
|
26 |
+
$shortcodes = [];
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Allow the registering of shortcodes into the our Tribe plugins.
|
30 |
+
*
|
31 |
+
* @since 4.12.0
|
32 |
+
*
|
33 |
+
* @var array An associative array of shortcodes in the shape `[ <slug> => <class> ]`.
|
34 |
+
*/
|
35 |
+
$shortcodes = apply_filters( 'tribe_shortcodes', $shortcodes );
|
36 |
+
|
37 |
+
return $shortcodes;
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Verifies if a given shortcode slug is registered for handling.
|
42 |
+
*
|
43 |
+
* @since 4.12.0
|
44 |
+
*
|
45 |
+
* @param string $slug Which slug we are checking if is registered.
|
46 |
+
*
|
47 |
+
* @return bool Whether a shortcode is registered or not.
|
48 |
+
*/
|
49 |
+
public function is_shortcode_registered( $slug ) {
|
50 |
+
$registered_shortcodes = $this->get_registered_shortcodes();
|
51 |
+
return isset( $registered_shortcodes[ $slug ] );
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Verifies if a given shortcode class name is registered for handling.
|
56 |
+
*
|
57 |
+
* @since 4.12.0
|
58 |
+
*
|
59 |
+
* @param string $class_name Which class name we are checking if is registered.
|
60 |
+
*
|
61 |
+
* @return bool Whether a shortcode is registered, by class.
|
62 |
+
*/
|
63 |
+
public function is_shortcode_registered_by_class( $class_name ) {
|
64 |
+
$registered_shortcodes = $this->get_registered_shortcodes();
|
65 |
+
return in_array( $class_name, $registered_shortcodes );
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Add new shortcodes handler to catch the correct strings.
|
70 |
+
*
|
71 |
+
* @since 4.12.0
|
72 |
+
*/
|
73 |
+
public function add_shortcodes() {
|
74 |
+
$registered_shortcodes = $this->get_registered_shortcodes();
|
75 |
+
|
76 |
+
// Add to WordPress all of the registered Shortcodes
|
77 |
+
foreach ( $registered_shortcodes as $shortcode => $class_name ) {
|
78 |
+
add_shortcode( $shortcode, [ $this, 'render_shortcode' ] );
|
79 |
+
}
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Makes sure we are correctly handling the Shortcodes we manage.
|
84 |
+
*
|
85 |
+
* @since 4.12.0
|
86 |
+
*
|
87 |
+
* @param array $arguments Set of arguments passed to the Shortcode at hand.
|
88 |
+
* @param string $content Contents passed to the shortcode, inside of the open and close brackets.
|
89 |
+
* @param string $shortcode Which shortcode tag are we handling here.
|
90 |
+
*
|
91 |
+
* @return string The rendered shortcode HTML.
|
92 |
+
*/
|
93 |
+
public function render_shortcode( $arguments, $content, $shortcode ) {
|
94 |
+
$registered_shortcodes = $this->get_registered_shortcodes();
|
95 |
+
|
96 |
+
// Bail when we try to handle an unregistered shortcode (shouldn't happen)
|
97 |
+
if ( ! $this->is_shortcode_registered( $shortcode ) ) {
|
98 |
+
return false;
|
99 |
+
}
|
100 |
+
|
101 |
+
/** @var Shortcode_Interface $instance */
|
102 |
+
$instance = new $registered_shortcodes[ $shortcode ];
|
103 |
+
$instance->setup( $arguments, $content );
|
104 |
+
|
105 |
+
return $instance->get_html();
|
106 |
+
}
|
107 |
+
}
|
common/src/Tribe/Shortcode/Shortcode_Abstract.php
ADDED
@@ -0,0 +1,224 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The abstract all shortcodes should implement.
|
4 |
+
*
|
5 |
+
* @since 4.12.0
|
6 |
+
*
|
7 |
+
* @package Tribe\Shortcode
|
8 |
+
*/
|
9 |
+
namespace Tribe\Shortcode;
|
10 |
+
|
11 |
+
use Tribe__Utils__Array as Arr;
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Interface Shortcode_Interface
|
15 |
+
*
|
16 |
+
* @since 4.12.0
|
17 |
+
*
|
18 |
+
* @package Tribe\Shortcode
|
19 |
+
*/
|
20 |
+
abstract class Shortcode_Abstract implements Shortcode_Interface {
|
21 |
+
/**
|
22 |
+
* Slug of the current shortcode.
|
23 |
+
*
|
24 |
+
* @since 4.12.0
|
25 |
+
*
|
26 |
+
* @var string
|
27 |
+
*/
|
28 |
+
protected $slug;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Default arguments to be merged into final arguments of the shortcode.
|
32 |
+
*
|
33 |
+
* @since 4.12.0
|
34 |
+
*
|
35 |
+
* @var array
|
36 |
+
*/
|
37 |
+
protected $default_arguments = [];
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Array of callbacks for arguments validation
|
41 |
+
*
|
42 |
+
* @since 4.12.0
|
43 |
+
*
|
44 |
+
* @var array
|
45 |
+
*/
|
46 |
+
protected $validate_arguments_map = [];
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Arguments of the current shortcode.
|
50 |
+
*
|
51 |
+
* @since 4.12.0
|
52 |
+
*
|
53 |
+
* @var array
|
54 |
+
*/
|
55 |
+
protected $arguments;
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Content of the current shortcode.
|
59 |
+
*
|
60 |
+
* @since 4.12.0
|
61 |
+
*
|
62 |
+
* @var string
|
63 |
+
*/
|
64 |
+
protected $content;
|
65 |
+
|
66 |
+
/**
|
67 |
+
* {@inheritDoc}
|
68 |
+
*/
|
69 |
+
public function setup( $arguments, $content ) {
|
70 |
+
$this->arguments = $this->parse_arguments( $arguments );
|
71 |
+
$this->content = $content;
|
72 |
+
}
|
73 |
+
|
74 |
+
/**
|
75 |
+
* {@inheritDoc}
|
76 |
+
*/
|
77 |
+
public function parse_arguments( $arguments ) {
|
78 |
+
$arguments = shortcode_atts( $this->get_default_arguments(), $arguments, $this->slug );
|
79 |
+
return $this->validate_arguments( $arguments );
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* {@inheritDoc}
|
84 |
+
*/
|
85 |
+
public function validate_arguments( $arguments ) {
|
86 |
+
$validate_arguments_map = $this->get_validate_arguments_map();
|
87 |
+
foreach ( $validate_arguments_map as $key => $callback ) {
|
88 |
+
$arguments[ $key ] = $callback( isset( $arguments[ $key ] ) ? $arguments[ $key ] : null );
|
89 |
+
}
|
90 |
+
|
91 |
+
return $arguments;
|
92 |
+
}
|
93 |
+
|
94 |
+
/**
|
95 |
+
* {@inheritDoc}
|
96 |
+
*/
|
97 |
+
public function get_registration_slug() {
|
98 |
+
return $this->slug;
|
99 |
+
}
|
100 |
+
|
101 |
+
/**
|
102 |
+
* {@inheritDoc}
|
103 |
+
*/
|
104 |
+
public function get_validated_arguments_map() {
|
105 |
+
/**
|
106 |
+
* Applies a filter to instance arguments validation callbacks.
|
107 |
+
*
|
108 |
+
* @since 4.12.0
|
109 |
+
*
|
110 |
+
* @param array $validate_arguments_map Current set of callbacks for arguments.
|
111 |
+
* @param static $instance Which instance of shortcode we are dealing with.
|
112 |
+
*/
|
113 |
+
$validate_arguments_map = apply_filters( 'tribe_shortcode_validate_arguments_map', $this->validate_arguments_map, $this );
|
114 |
+
|
115 |
+
$registration_slug = $this->get_registration_slug();
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Applies a filter to instance arguments validation callbacks based on the registration slug of the shortcode.
|
119 |
+
*
|
120 |
+
* @since 4.12.0
|
121 |
+
*
|
122 |
+
* @param array $validate_arguments_map Current set of callbacks for arguments.
|
123 |
+
* @param static $instance Which instance of shortcode we are dealing with.
|
124 |
+
*/
|
125 |
+
$validate_arguments_map = apply_filters( "tribe__shortcode_{$registration_slug}_validate_arguments_map", $validate_arguments_map, $this );
|
126 |
+
|
127 |
+
return $validate_arguments_map;
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* {@inheritDoc}
|
132 |
+
*/
|
133 |
+
public function get_arguments() {
|
134 |
+
/**
|
135 |
+
* Applies a filter to instance arguments.
|
136 |
+
*
|
137 |
+
* @since 4.12.0
|
138 |
+
*
|
139 |
+
* @param array $arguments Current set of arguments.
|
140 |
+
* @param static $instance Which instance of shortcode we are dealing with.
|
141 |
+
*/
|
142 |
+
$arguments = apply_filters( 'tribe_shortcode_arguments', $this->arguments, $this );
|
143 |
+
|
144 |
+
$registration_slug = $this->get_registration_slug();
|
145 |
+
|
146 |
+
/**
|
147 |
+
* Applies a filter to instance arguments based on the registration slug of the shortcode.
|
148 |
+
*
|
149 |
+
* @since 4.12.0
|
150 |
+
*
|
151 |
+
* @param array $arguments Current set of arguments.
|
152 |
+
* @param static $instance Which instance of shortcode we are dealing with.
|
153 |
+
*/
|
154 |
+
$arguments = apply_filters( "tribe_shortcode_{$registration_slug}_arguments", $arguments, $this );
|
155 |
+
|
156 |
+
return $arguments;
|
157 |
+
}
|
158 |
+
|
159 |
+
/**
|
160 |
+
* {@inheritDoc}
|
161 |
+
*/
|
162 |
+
public function get_argument( $index, $default = null ) {
|
163 |
+
$arguments = $this->get_arguments();
|
164 |
+
$argument = Arr::get( $arguments, $index, $default );
|
165 |
+
|
166 |
+
/**
|
167 |
+
* Applies a filter to a specific shortcode argument, catch all for all shortcodes..
|
168 |
+
*
|
169 |
+
* @since 4.12.0
|
170 |
+
*
|
171 |
+
* @param mixed $argument The argument.
|
172 |
+
* @param array $index Which index we indent to fetch from the arguments.
|
173 |
+
* @param array $default Default value if it doesnt exist.
|
174 |
+
* @param static $instance Which instance of shortcode we are dealing with.
|
175 |
+
*/
|
176 |
+
$argument = apply_filters( 'tribe_shortcode_argument', $argument, $index, $default, $this );
|
177 |
+
|
178 |
+
$registration_slug = $this->get_registration_slug();
|
179 |
+
|
180 |
+
/**
|
181 |
+
* Applies a filter to a specific shortcode argument, to a particular registration slug.
|
182 |
+
*
|
183 |
+
* @since 4.12.0
|
184 |
+
*
|
185 |
+
* @param mixed $argument The argument value.
|
186 |
+
* @param array $index Which index we indent to fetch from the arguments.
|
187 |
+
* @param array $default Default value if it doesnt exist.
|
188 |
+
* @param static $instance Which instance of shortcode we are dealing with.
|
189 |
+
*/
|
190 |
+
$argument = apply_filters( "tribe_shortcode_{$registration_slug}_argument", $argument, $index, $default, $this );
|
191 |
+
|
192 |
+
return $argument;
|
193 |
+
}
|
194 |
+
|
195 |
+
/**
|
196 |
+
* {@inheritDoc}
|
197 |
+
*/
|
198 |
+
public function get_default_arguments() {
|
199 |
+
/**
|
200 |
+
* Applies a filter to instance default arguments.
|
201 |
+
*
|
202 |
+
* @since 4.12.0
|
203 |
+
*
|
204 |
+
* @param array $default_arguments Current set of default arguments.
|
205 |
+
* @param static $instance Which instance of shortcode we are dealing with.
|
206 |
+
*/
|
207 |
+
$default_arguments = apply_filters( 'tribe_shortcode_default_arguments', $this->default_arguments, $this );
|
208 |
+
|
209 |
+
$registration_slug = $this->get_registration_slug();
|
210 |
+
|
211 |
+
/**
|
212 |
+
* Applies a filter to instance default arguments based on the registration slug of the shortcode.
|
213 |
+
*
|
214 |
+
* @since 4.12.0
|
215 |
+
*
|
216 |
+
* @param array $default_arguments Current set of default arguments.
|
217 |
+
* @param static $instance Which instance of shortcode we are dealing with.
|
218 |
+
*/
|
219 |
+
$default_arguments = apply_filters( "tribe_shortcode_{$registration_slug}_default_arguments", $default_arguments, $this );
|
220 |
+
|
221 |
+
return $default_arguments;
|
222 |
+
}
|
223 |
+
|
224 |
+
}
|
common/src/Tribe/Shortcode/Shortcode_Interface.php
ADDED
@@ -0,0 +1,112 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The interface all shortcodes should implement.
|
4 |
+
*
|
5 |
+
* @since 4.12.0
|
6 |
+
*
|
7 |
+
* @package Tribe\Shortcode
|
8 |
+
*/
|
9 |
+
namespace Tribe\Shortcode;
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Interface Shortcode_Interface
|
13 |
+
*
|
14 |
+
* @since 4.12.0
|
15 |
+
*
|
16 |
+
* @package Tribe\Shortcode
|
17 |
+
*/
|
18 |
+
interface Shortcode_Interface {
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Returns the shortcode slug.
|
22 |
+
*
|
23 |
+
* The slug should be the one that will allow the shortcode to be built by the shortcode class by slug.
|
24 |
+
*
|
25 |
+
* @since 4.12.0
|
26 |
+
*
|
27 |
+
* @return string The shortcode slug.
|
28 |
+
*/
|
29 |
+
public function get_registration_slug();
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Configures the base variables for an instance of shortcode.
|
33 |
+
*
|
34 |
+
* @since 4.12.0
|
35 |
+
*
|
36 |
+
* @param array $arguments Set of arguments passed to the Shortcode at hand.
|
37 |
+
* @param string $content Contents passed to the shortcode, inside of the open and close brackets.
|
38 |
+
*/
|
39 |
+
public function setup( $arguments, $content );
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Returns the arguments for the shortcode parsed correctly with defaults applied.
|
43 |
+
*
|
44 |
+
* @since 4.12.0
|
45 |
+
*
|
46 |
+
* @param array $arguments Set of arguments passed to the Shortcode at hand.
|
47 |
+
*
|
48 |
+
* @return array<string,mixed> The parsed shortcode arguments map.
|
49 |
+
*/
|
50 |
+
public function parse_arguments( $arguments );
|
51 |
+
|
52 |
+
/**
|
53 |
+
* Returns the array of arguments for this shortcode after applying the validation callbacks.
|
54 |
+
*
|
55 |
+
* @since 4.12.0
|
56 |
+
*
|
57 |
+
* @param array $arguments Set of arguments passed to the Shortcode at hand.
|
58 |
+
*
|
59 |
+
* @return array<string,mixed> The validated shortcode arguments map.
|
60 |
+
*/
|
61 |
+
public function validate_arguments( $arguments );
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Returns the array of callbacks for this shortcode's arguments.
|
65 |
+
*
|
66 |
+
* @since 4.12.0
|
67 |
+
*
|
68 |
+
* @return array<string,mixed> A map of the shortcode arguments that have survived validation.
|
69 |
+
*/
|
70 |
+
public function get_validated_arguments_map();
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Returns a shortcode default arguments.
|
74 |
+
*
|
75 |
+
* @since 4.12.0
|
76 |
+
*
|
77 |
+
* @return array<string,mixed> The shortcode default arguments map.
|
78 |
+
*/
|
79 |
+
public function get_default_arguments();
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Returns a shortcode arguments after been parsed.
|
83 |
+
*
|
84 |
+
* @since 4.12.0
|
85 |
+
*
|
86 |
+
* @return array<string,mixed> The shortcode arguments, as set by the user in the shortcode string.
|
87 |
+
*/
|
88 |
+
public function get_arguments();
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Returns a shortcode argument after it has been parsed.
|
92 |
+
*
|
93 |
+
* @uses Tribe__Utils__Array::get For index fetching and Default.
|
94 |
+
*
|
95 |
+
* @since 4.12.0
|
96 |
+
*
|
97 |
+
* @param array $index Which index we indent to fetch from the arguments.
|
98 |
+
* @param array $default Default value if it doesnt exist.
|
99 |
+
*
|
100 |
+
* @return mixed Value for the Index passed as the first argument.
|
101 |
+
*/
|
102 |
+
public function get_argument( $index, $default = null );
|
103 |
+
|
104 |
+
/**
|
105 |
+
* Returns a shortcode HTML code.
|
106 |
+
*
|
107 |
+
* @since 4.12.0
|
108 |
+
*
|
109 |
+
* @return string The shortcode rendered HTML code.
|
110 |
+
*/
|
111 |
+
public function get_html();
|
112 |
+
}
|
common/src/Tribe/Support.php
CHANGED
@@ -164,6 +164,17 @@ if ( ! class_exists( 'Tribe__Support' ) ) {
|
|
164 |
$php_info[ $php_var ] = $val;
|
165 |
}
|
166 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
$site_url = get_site_url();
|
168 |
$systeminfo = array(
|
169 |
'Home URL' => get_home_url(),
|
@@ -175,6 +186,8 @@ if ( ! class_exists( 'Tribe__Support' ) ) {
|
|
175 |
'Install keys' => $keys,
|
176 |
'WordPress version' => get_bloginfo( 'version' ),
|
177 |
'Permalink Structure' => $site_url . get_option( 'permalink_structure' ),
|
|
|
|
|
178 |
'PHP version' => phpversion(),
|
179 |
'PHP' => $php_info,
|
180 |
'Server' => $server[0],
|
164 |
$php_info[ $php_var ] = $val;
|
165 |
}
|
166 |
|
167 |
+
$homepage = get_option( 'show_on_front' );
|
168 |
+
$homepage_page_id = get_option( 'page_on_front' );
|
169 |
+
|
170 |
+
if ( 'page' === $homepage ) {
|
171 |
+
if ( -10 === (int) $homepage_page_id ) {
|
172 |
+
$homepage_page_id .= ' (Main Events Page)';
|
173 |
+
} else {
|
174 |
+
$homepage_page_id .= ' (' . esc_html( get_the_title( $homepage_page_id ) ) . ')';
|
175 |
+
}
|
176 |
+
}
|
177 |
+
|
178 |
$site_url = get_site_url();
|
179 |
$systeminfo = array(
|
180 |
'Home URL' => get_home_url(),
|
186 |
'Install keys' => $keys,
|
187 |
'WordPress version' => get_bloginfo( 'version' ),
|
188 |
'Permalink Structure' => $site_url . get_option( 'permalink_structure' ),
|
189 |
+
'Your homepage displays' => $homepage,
|
190 |
+
'Homepage page ID' => $homepage_page_id,
|
191 |
'PHP version' => phpversion(),
|
192 |
'PHP' => $php_info,
|
193 |
'Server' => $server[0],
|
common/src/Tribe/Template.php
CHANGED
@@ -99,19 +99,33 @@ class Tribe__Template {
|
|
99 |
if ( is_string( $origin ) ) {
|
100 |
// Origin needs to be a class with a `instance` method
|
101 |
if ( class_exists( $origin ) && method_exists( $origin, 'instance' ) ) {
|
102 |
-
$origin = call_user_func(
|
103 |
}
|
104 |
}
|
105 |
|
106 |
-
if (
|
|
|
|
|
|
|
|
|
107 |
throw new InvalidArgumentException( 'Invalid Origin Class for Template Instance' );
|
108 |
}
|
109 |
|
110 |
-
if (
|
111 |
-
$this->
|
112 |
-
|
|
|
|
|
|
|
|
|
113 |
} else {
|
114 |
-
$this->
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
}
|
116 |
|
117 |
return $this;
|
@@ -575,9 +589,10 @@ class Tribe__Template {
|
|
575 |
*
|
576 |
* @since 4.6.2
|
577 |
*
|
578 |
-
* @param string
|
579 |
-
*
|
580 |
-
* @param
|
|
|
581 |
*
|
582 |
* @return string|false Either the final content HTML or `false` if no template could be found.
|
583 |
*/
|
@@ -586,6 +601,22 @@ class Tribe__Template {
|
|
586 |
static $files = [];
|
587 |
static $template_names = [];
|
588 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
589 |
// Key we'll use for in-memory caching of expensive operations.
|
590 |
$cache_name_key = is_array( $name ) ? implode( '/', $name ) : $name;
|
591 |
|
@@ -603,7 +634,10 @@ class Tribe__Template {
|
|
603 |
}
|
604 |
|
605 |
// Cache file location and existence.
|
606 |
-
if (
|
|
|
|
|
|
|
607 |
// Check if the file exists
|
608 |
$files[ $cache_name_key ] = $file = $this->get_template_file( $name );
|
609 |
|
@@ -647,10 +681,10 @@ class Tribe__Template {
|
|
647 |
*
|
648 |
* @since 4.11.0
|
649 |
*
|
650 |
-
* @param string $html
|
651 |
-
* @param string $file
|
652 |
-
* @param array $name
|
653 |
-
* @param self $template
|
654 |
*/
|
655 |
$pre_html = apply_filters( 'tribe_template_pre_html', null, $file, $name, $this );
|
656 |
|
99 |
if ( is_string( $origin ) ) {
|
100 |
// Origin needs to be a class with a `instance` method
|
101 |
if ( class_exists( $origin ) && method_exists( $origin, 'instance' ) ) {
|
102 |
+
$origin = call_user_func( [ $origin, 'instance' ] );
|
103 |
}
|
104 |
}
|
105 |
|
106 |
+
if (
|
107 |
+
empty( $origin->plugin_path )
|
108 |
+
&& empty( $origin->pluginPath )
|
109 |
+
&& ! is_dir( $origin )
|
110 |
+
) {
|
111 |
throw new InvalidArgumentException( 'Invalid Origin Class for Template Instance' );
|
112 |
}
|
113 |
|
114 |
+
if ( is_string( $origin ) ) {
|
115 |
+
$this->template_base_path = array_filter(
|
116 |
+
(array) explode(
|
117 |
+
'/',
|
118 |
+
untrailingslashit( $origin )
|
119 |
+
)
|
120 |
+
);
|
121 |
} else {
|
122 |
+
$this->origin = $origin;
|
123 |
+
|
124 |
+
$this->template_base_path = untrailingslashit(
|
125 |
+
! empty( $this->origin->plugin_path )
|
126 |
+
? $this->origin->plugin_path
|
127 |
+
: $this->origin->pluginPath
|
128 |
+
);
|
129 |
}
|
130 |
|
131 |
return $this;
|
589 |
*
|
590 |
* @since 4.6.2
|
591 |
*
|
592 |
+
* @param string|array $name Which file we are talking about including.
|
593 |
+
* If an array, each item will add a directory separator to get to the single template.
|
594 |
+
* @param array $context Any context data you need to expose to this file
|
595 |
+
* @param boolean $echo If we should also print the Template
|
596 |
*
|
597 |
* @return string|false Either the final content HTML or `false` if no template could be found.
|
598 |
*/
|
601 |
static $files = [];
|
602 |
static $template_names = [];
|
603 |
|
604 |
+
/**
|
605 |
+
* Allow users to disable templates before rendering it by returning empty string.
|
606 |
+
*
|
607 |
+
* @since 4.12.0
|
608 |
+
*
|
609 |
+
* @param string null Whether to continue displaying the template or not.
|
610 |
+
* @param array $name Template name.
|
611 |
+
* @param array $context Any context data you need to expose to this file.
|
612 |
+
* @param boolean $echo If we should also print the Template.
|
613 |
+
*/
|
614 |
+
$done = apply_filters( 'tribe_template_done', null, $name, $context, $echo );
|
615 |
+
|
616 |
+
if ( null !== $done ) {
|
617 |
+
return false;
|
618 |
+
}
|
619 |
+
|
620 |
// Key we'll use for in-memory caching of expensive operations.
|
621 |
$cache_name_key = is_array( $name ) ? implode( '/', $name ) : $name;
|
622 |
|
634 |
}
|
635 |
|
636 |
// Cache file location and existence.
|
637 |
+
if (
|
638 |
+
! isset( $file_exists[ $cache_name_key ] )
|
639 |
+
|| ! isset( $files[ $cache_name_key ] )
|
640 |
+
) {
|
641 |
// Check if the file exists
|
642 |
$files[ $cache_name_key ] = $file = $this->get_template_file( $name );
|
643 |
|
681 |
*
|
682 |
* @since 4.11.0
|
683 |
*
|
684 |
+
* @param string $html The initial HTML
|
685 |
+
* @param string $file Complete path to include the PHP File
|
686 |
+
* @param array $name Template name
|
687 |
+
* @param self $template Current instance of the Tribe__Template
|
688 |
*/
|
689 |
$pre_html = apply_filters( 'tribe_template_pre_html', null, $file, $name, $this );
|
690 |
|
common/src/Tribe/Validator/Base.php
CHANGED
@@ -158,7 +158,9 @@ class Tribe__Validator__Base implements Tribe__Validator__Interface {
|
|
158 |
public function is_image( $image ) {
|
159 |
if ( $this->is_numeric( $image ) ) {
|
160 |
return wp_attachment_is_image( $image );
|
161 |
-
}
|
|
|
|
|
162 |
$response = wp_remote_head( $image );
|
163 |
|
164 |
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
|
158 |
public function is_image( $image ) {
|
159 |
if ( $this->is_numeric( $image ) ) {
|
160 |
return wp_attachment_is_image( $image );
|
161 |
+
}
|
162 |
+
|
163 |
+
if ( is_string( $image ) ) {
|
164 |
$response = wp_remote_head( $image );
|
165 |
|
166 |
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
|
common/src/functions/template-tags/html.php
CHANGED
@@ -68,7 +68,7 @@ function tribe_required_label( $required, $echo = true ) {
|
|
68 |
if ( $required ) {
|
69 |
$required_string = '<span class="screen-reader-text">'
|
70 |
. esc_html_x( '(required)', 'The associated field is required.', 'tribe-common' )
|
71 |
-
. '</span><span class="tribe-required" aria-hidden
|
72 |
|
73 |
if ( ! $echo ) {
|
74 |
return $required_string;
|
68 |
if ( $required ) {
|
69 |
$required_string = '<span class="screen-reader-text">'
|
70 |
. esc_html_x( '(required)', 'The associated field is required.', 'tribe-common' )
|
71 |
+
. '</span><span class="tribe-required" aria-hidden="true" role="presentation">*</span>';
|
72 |
|
73 |
if ( ! $echo ) {
|
74 |
return $required_string;
|
common/src/functions/template-tags/post.php
CHANGED
@@ -30,14 +30,17 @@ function tribe_get_the_content( $more_link_text = null, $strip_teaser = false, $
|
|
30 |
$content = get_the_content( $more_link_text, $strip_teaser );
|
31 |
}
|
32 |
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
|
|
|
|
|
|
41 |
$content = str_replace( ']]>', ']]>', $content );
|
42 |
|
43 |
$post = $previous_post;
|
30 |
$content = get_the_content( $more_link_text, $strip_teaser );
|
31 |
}
|
32 |
|
33 |
+
if ( ! doing_filter( 'the_content' ) ) {
|
34 |
+
/**
|
35 |
+
* Filters the post content.
|
36 |
+
*
|
37 |
+
* @since 0.71 of WordPress
|
38 |
+
*
|
39 |
+
* @param string $content Content of the current post.
|
40 |
+
*/
|
41 |
+
$content = apply_filters( 'the_content', $content );
|
42 |
+
}
|
43 |
+
|
44 |
$content = str_replace( ']]>', ']]>', $content );
|
45 |
|
46 |
$post = $previous_post;
|
common/src/modules/components/form/index.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
export { default as Select } from './select';
|
|
common/src/modules/components/form/select/component.js
DELETED
@@ -1,116 +0,0 @@
|
|
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
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
export { default } from './component';
|
|
common/src/modules/components/form/select/style.pcss
DELETED
@@ -1,56 +0,0 @@
|
|
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
DELETED
@@ -1,5 +0,0 @@
|
|
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
DELETED
@@ -1,131 +0,0 @@
|
|
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
DELETED
@@ -1,92 +0,0 @@
|
|
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
DELETED
@@ -1,138 +0,0 @@
|
|
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
DELETED
@@ -1,21 +0,0 @@
|
|
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
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
export { default } from './container';
|
|
common/src/modules/components/plugin-block-hooks/style.pcss
DELETED
@@ -1,37 +0,0 @@
|
|
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
DELETED
@@ -1,15 +0,0 @@
|
|
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
DELETED
@@ -1,38 +0,0 @@
|
|
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
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
export { default } from './component';
|
|
common/src/modules/data/__tests__/utils.test.js
DELETED
@@ -1,10 +0,0 @@
|
|
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
DELETED
@@ -1,3 +0,0 @@
|
|
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
DELETED
@@ -1,147 +0,0 @@
|
|
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
DELETED
@@ -1,96 +0,0 @@
|
|
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
DELETED
@@ -1,88 +0,0 @@
|
|
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/common/data/forms/reducers/form' );
|
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
DELETED
@@ -1,89 +0,0 @@
|
|
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
DELETED
@@ -1,19 +0,0 @@
|
|
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
DELETED
@@ -1,153 +0,0 @@
|
|
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
DELETED
@@ -1,12 +0,0 @@
|
|
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
DELETED
@@ -1,33 +0,0 @@
|
|
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
DELETED
@@ -1,84 +0,0 @@
|
|
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
DELETED
@@ -1,49 +0,0 @@
|
|
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
DELETED
@@ -1,23 +0,0 @@
|
|
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
DELETED
@@ -1,58 +0,0 @@
|
|
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
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
export { default as form } from './form';
|
2 |
-
export { default as volatile } from './volatile';
|
|
|
|
common/src/modules/data/forms/reducers/volatile.js
DELETED
@@ -1,15 +0,0 @@
|
|
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
DELETED
@@ -1,39 +0,0 @@
|
|
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
DELETED
@@ -1,15 +0,0 @@
|
|
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
DELETED
@@ -1,9 +0,0 @@
|
|
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
DELETED
@@ -1,19 +0,0 @@
|
|
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
DELETED
@@ -1,14 +0,0 @@
|
|
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
DELETED
@@ -1,25 +0,0 @@
|
|
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
DELETED
@@ -1,23 +0,0 @@
|
|
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
DELETED
@@ -1,12 +0,0 @@
|
|
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
DELETED
@@ -1,18 +0,0 @@
|
|
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
DELETED
@@ -1,4 +0,0 @@
|
|
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
DELETED
@@ -1,12 +0,0 @@
|
|
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
DELETED
@@ -1,15 +0,0 @@
|
|
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
DELETED
@@ -1,20 +0,0 @@
|
|
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
DELETED
@@ -1,9 +0,0 @@
|
|
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
DELETED
@@ -1,7 +0,0 @@
|
|
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
DELETED
@@ -1,15 +0,0 @@
|
|
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
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
export const PREFIX_COMMON_STORE = '@@MT/COMMON';
|
|
common/src/modules/elements/accordion/__tests__/__snapshots__/element.test.js.snap
DELETED
@@ -1,71 +0,0 @@
|
|
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
DELETED
@@ -1,45 +0,0 @@
|
|
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
DELETED
@@ -1,58 +0,0 @@
|
|
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
DELETED
@@ -1,31 +0,0 @@
|
|
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
DELETED
@@ -1,56 +0,0 @@
|
|
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
DELETED
@@ -1,129 +0,0 @@
|
|
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
DELETED
@@ -1,8 +0,0 @@
|
|
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
DELETED
@@ -1,16 +0,0 @@
|
|
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
DELETED
@@ -1,24 +0,0 @@
|
|
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
DELETED
@@ -1,62 +0,0 @@
|
|
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
DELETED
@@ -1,60 +0,0 @@
|
|
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
DELETED
@@ -1,56 +0,0 @@
|
|
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
DELETED
@@ -1,58 +0,0 @@
|
|
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 |
-
.tribe-editor__button {
|
11 |
-
|
12 |
-
&,
|
13 |
-
/* extra editor-styles-wrapper class to override gutenberg styles */
|
14 |
-
.editor-styles-wrapper & {
|
15 |
-
|
16 |
-
background-color: transparent;
|
17 |
-
border: none;
|
18 |
-
padding: 0;
|
19 |
-
margin: 0;
|
20 |
-
font-family: 'Helvetica', 'sans-serif';
|
21 |
-
cursor: pointer;
|
22 |
-
|
23 |
-
&[disabled] {
|
24 |
-
cursor: default;
|
25 |
-
}
|
26 |
-
}
|
27 |
-
}
|
28 |
-
|
29 |
-
.tribe-editor__button--sm {
|
30 |
-
|
31 |
-
&,
|
32 |
-
/* extra editor-styles-wrapper class to override gutenberg styles */
|
33 |
-
.editor-styles-wrapper & {
|
34 |
-
|
35 |
-
background-color: #009fd4;
|
36 |
-
color: #ffffff;
|
37 |
-
padding: 11px 16px 9px;
|
38 |
-
font-size: 15px;
|
39 |
-
font-weight: bold;
|
40 |
-
line-height: 18px;
|
41 |
-
transition: background-color 0.2s ease;
|
42 |
-
|
43 |
-
&:hover,
|
44 |
-
&:focus {
|
45 |
-
background-color: #007bb4;
|
46 |
-
}
|
47 |
-
|
48 |
-
&[disabled] {
|
49 |
-
|
50 |
-
&,
|
51 |
-
&:hover,
|
52 |
-
&:focus {
|
53 |
-
background-color: #f3f4f5;
|
54 |
-
color: #8d949b;
|
55 |
-
}
|
56 |
-
}
|
57 |
-
}
|
58 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/modules/elements/checkbox-input/__tests__/__snapshots__/element.test.js.snap
DELETED
@@ -1,47 +0,0 @@
|
|
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
DELETED
@@ -1,39 +0,0 @@
|
|
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
DELETED
@@ -1,35 +0,0 @@
|
|
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
DELETED
@@ -1,25 +0,0 @@
|
|
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
DELETED
@@ -1,168 +0,0 @@
|
|
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
DELETED
@@ -1,70 +0,0 @@
|
|
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
DELETED
@@ -1,61 +0,0 @@
|
|
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
DELETED
@@ -1,57 +0,0 @@
|
|
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
DELETED
@@ -1,32 +0,0 @@
|
|
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
DELETED
@@ -1,37 +0,0 @@
|
|
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
DELETED
@@ -1,22 +0,0 @@
|
|
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
DELETED
@@ -1,241 +0,0 @@
|
|
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 |
-
disabled={false}
|
214 |
-
id="react-select-4-input"
|
215 |
-
onBlur={[Function]}
|
216 |
-
onChange={[Function]}
|
217 |
-
onFocus={[Function]}
|
218 |
-
readOnly={true}
|
219 |
-
tabIndex="0"
|
220 |
-
value=""
|
221 |
-
/>
|
222 |
-
</div>
|
223 |
-
<div
|
224 |
-
className="css-1wy0on6 tribe-editor__creatable-select__indicators"
|
225 |
-
>
|
226 |
-
<div
|
227 |
-
aria-hidden="true"
|
228 |
-
className="css-1ep9fjw tribe-editor__creatable-select__indicator tribe-editor__creatable-select__dropdown-indicator"
|
229 |
-
onMouseDown={[Function]}
|
230 |
-
onTouchEnd={[Function]}
|
231 |
-
>
|
232 |
-
<span
|
233 |
-
className="tribe-editor__creatable-select__dropdown-indicator"
|
234 |
-
>
|
235 |
-
arrow-down
|
236 |
-
</span>
|
237 |
-
</div>
|
238 |
-
</div>
|
239 |
-
</div>
|
240 |
-
</div>
|
241 |
-
`;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/modules/elements/creatable-select/__tests__/element.test.js
DELETED
@@ -1,31 +0,0 @@
|
|
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
DELETED
@@ -1,50 +0,0 @@
|
|
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
DELETED
@@ -1,75 +0,0 @@
|
|
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
DELETED
@@ -1,34 +0,0 @@
|
|
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
DELETED
@@ -1,109 +0,0 @@
|
|
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
DELETED
@@ -1,49 +0,0 @@
|
|
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
DELETED
@@ -1,47 +0,0 @@
|
|
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
DELETED
@@ -1,32 +0,0 @@
|
|
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
DELETED
@@ -1,16 +0,0 @@
|
|
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
DELETED
@@ -1,191 +0,0 @@
|
|
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
DELETED
@@ -1,168 +0,0 @@
|
|
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
DELETED
@@ -1,114 +0,0 @@
|
|
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', 'tribe-common' ) }
|
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
DELETED
@@ -1,109 +0,0 @@
|
|
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
DELETED
@@ -1,27 +0,0 @@
|
|
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
DELETED
@@ -1,38 +0,0 @@
|
|
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
DELETED
@@ -1,28 +0,0 @@
|
|
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
DELETED
@@ -1,36 +0,0 @@
|
|
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
DELETED
@@ -1,23 +0,0 @@
|
|
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
DELETED
@@ -1,28 +0,0 @@
|
|
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
DELETED
@@ -1,30 +0,0 @@
|
|
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
DELETED
@@ -1,25 +0,0 @@
|
|
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 |
-
&:focus {
|
16 |
-
color: #000000;
|
17 |
-
box-shadow: none;
|
18 |
-
outline: none;
|
19 |
-
}
|
20 |
-
|
21 |
-
&:disabled {
|
22 |
-
color: #AEB4BB;
|
23 |
-
}
|
24 |
-
}
|
25 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/modules/elements/label-with-link/__tests__/__snapshots__/element.test.js.snap
DELETED
@@ -1,51 +0,0 @@
|
|
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
DELETED
@@ -1,32 +0,0 @@
|
|
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
DELETED
@@ -1,66 +0,0 @@
|
|
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
DELETED
@@ -1,54 +0,0 @@
|
|
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
DELETED
@@ -1,60 +0,0 @@
|
|
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
DELETED
@@ -1,26 +0,0 @@
|
|
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
DELETED
@@ -1,71 +0,0 @@
|
|
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 |
-
isOpen,
|
19 |
-
label,
|
20 |
-
modalButtonDisabled,
|
21 |
-
modalButtonLabel,
|
22 |
-
modalClassName,
|
23 |
-
modalContent,
|
24 |
-
modalOverlayClassName,
|
25 |
-
modalTitle,
|
26 |
-
onClick,
|
27 |
-
onClose,
|
28 |
-
onOpen,
|
29 |
-
} ) => (
|
30 |
-
<LabeledItem
|
31 |
-
className={ classNames( 'tribe-editor__label-with-modal', className ) }
|
32 |
-
label={ label }
|
33 |
-
>
|
34 |
-
<ModalButton
|
35 |
-
className="tribe-editor__label-with-modal__modal-button"
|
36 |
-
disabled={ modalButtonDisabled }
|
37 |
-
isOpen={ isOpen }
|
38 |
-
label={ modalButtonLabel }
|
39 |
-
modalClassName={ modalClassName }
|
40 |
-
modalContent={ modalContent }
|
41 |
-
modalOverlayClassName={ modalOverlayClassName }
|
42 |
-
modalTitle={ modalTitle }
|
43 |
-
onClick={ onClick }
|
44 |
-
onClose={ onClose }
|
45 |
-
onOpen={ onOpen }
|
46 |
-
/>
|
47 |
-
</LabeledItem>
|
48 |
-
);
|
49 |
-
|
50 |
-
LabelWithModal.defaultProps = {
|
51 |
-
onClick: noop,
|
52 |
-
onClose: noop,
|
53 |
-
onOpen: noop,
|
54 |
-
};
|
55 |
-
|
56 |
-
LabelWithModal.propTypes = {
|
57 |
-
className: PropTypes.string,
|
58 |
-
isOpen: PropTypes.bool,
|
59 |
-
label: PropTypes.node,
|
60 |
-
modalButtonDisabled: PropTypes.bool,
|
61 |
-
modalButtonLabel: PropTypes.string,
|
62 |
-
modalClassName: PropTypes.string,
|
63 |
-
modalContent: PropTypes.node,
|
64 |
-
modalOverlayClassName: PropTypes.string,
|
65 |
-
modalTitle: PropTypes.string,
|
66 |
-
onClick: PropTypes.func,
|
67 |
-
onClose: PropTypes.func,
|
68 |
-
onOpen: PropTypes.func,
|
69 |
-
};
|
70 |
-
|
71 |
-
export default LabelWithModal;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/modules/elements/label-with-modal/style.pcss
DELETED
@@ -1,53 +0,0 @@
|
|
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
DELETED
@@ -1,50 +0,0 @@
|
|
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
DELETED
@@ -1,39 +0,0 @@
|
|
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
DELETED
@@ -1,52 +0,0 @@
|
|
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
DELETED
@@ -1,40 +0,0 @@
|
|
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
DELETED
@@ -1,39 +0,0 @@
|
|
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
DELETED
@@ -1,44 +0,0 @@
|
|
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
DELETED
@@ -1,51 +0,0 @@
|
|
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
DELETED
@@ -1,46 +0,0 @@
|
|
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
DELETED
@@ -1,107 +0,0 @@
|
|
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 |
-
isOpen: PropTypes.bool,
|
23 |
-
label: PropTypes.string,
|
24 |
-
modalClassName: PropTypes.string,
|
25 |
-
modalContent: PropTypes.node,
|
26 |
-
modalOverlayClassName: PropTypes.string,
|
27 |
-
modalTitle: PropTypes.string,
|
28 |
-
onClick: PropTypes.func,
|
29 |
-
onClose: PropTypes.func,
|
30 |
-
onOpen: PropTypes.func,
|
31 |
-
};
|
32 |
-
|
33 |
-
constructor( props ) {
|
34 |
-
super( props );
|
35 |
-
this.state = {
|
36 |
-
isOpen: false,
|
37 |
-
};
|
38 |
-
}
|
39 |
-
|
40 |
-
onClick = ( e ) => {
|
41 |
-
this.props.onClick && this.props.onClick( e );
|
42 |
-
this.onOpen();
|
43 |
-
this.props.isOpen === undefined && this.setState( { isOpen: true } );
|
44 |
-
};
|
45 |
-
|
46 |
-
onRequestClose = (e) => {
|
47 |
-
this.onClose(e);
|
48 |
-
this.props.isOpen === undefined && this.setState( { isOpen: false } );
|
49 |
-
}
|
50 |
-
|
51 |
-
onOpen = () => this.props.onOpen && this.props.onOpen();
|
52 |
-
|
53 |
-
onClose = (e) => this.props.onClose && this.props.onClose(e);
|
54 |
-
|
55 |
-
preventClick = (e) => e.stopPropagation();
|
56 |
-
|
57 |
-
preventBlur = (e) => e.stopPropagation();
|
58 |
-
|
59 |
-
renderModal = () => {
|
60 |
-
const {
|
61 |
-
modalClassName,
|
62 |
-
modalContent,
|
63 |
-
modalOverlayClassName,
|
64 |
-
modalTitle,
|
65 |
-
} = this.props;
|
66 |
-
|
67 |
-
const isOpen = this.props.isOpen !== undefined ? this.props.isOpen : this.state.isOpen;
|
68 |
-
|
69 |
-
return ( isOpen && (
|
70 |
-
<Modal
|
71 |
-
className={ classNames(
|
72 |
-
'tribe-editor__modal-button__modal-content',
|
73 |
-
modalClassName,
|
74 |
-
) }
|
75 |
-
onRequestClose={ this.onRequestClose }
|
76 |
-
overlayClassName={ classNames(
|
77 |
-
'tribe-editor__modal-button__modal-overlay',
|
78 |
-
modalOverlayClassName,
|
79 |
-
) }
|
80 |
-
title={ modalTitle }
|
81 |
-
>
|
82 |
-
{ modalContent }
|
83 |
-
</Modal>
|
84 |
-
) );
|
85 |
-
};
|
86 |
-
|
87 |
-
render() {
|
88 |
-
const { className, disabled, label } = this.props;
|
89 |
-
return (
|
90 |
-
<div className={ classNames(
|
91 |
-
'tribe-editor__modal-button',
|
92 |
-
className,
|
93 |
-
) }>
|
94 |
-
<Button
|
95 |
-
className="tribe-editor__modal-button__button"
|
96 |
-
onClick={ this.onClick }
|
97 |
-
disabled={ disabled }
|
98 |
-
>
|
99 |
-
{ label }
|
100 |
-
</Button>
|
101 |
-
{ this.renderModal() }
|
102 |
-
</div>
|
103 |
-
);
|
104 |
-
}
|
105 |
-
}
|
106 |
-
|
107 |
-
export default ModalButton;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/modules/elements/number-input/__tests__/__snapshots__/element.test.js.snap
DELETED
@@ -1,55 +0,0 @@
|
|
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
DELETED
@@ -1,47 +0,0 @@
|
|
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
DELETED
@@ -1,40 +0,0 @@
|
|
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
DELETED
@@ -1,17 +0,0 @@
|
|
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
DELETED
@@ -1,19 +0,0 @@
|
|
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
DELETED
@@ -1,41 +0,0 @@
|
|
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
DELETED
@@ -1,24 +0,0 @@
|
|
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
DELETED
@@ -1,17 +0,0 @@
|
|
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
DELETED
@@ -1,18 +0,0 @@
|
|
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
DELETED
@@ -1,23 +0,0 @@
|
|
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
DELETED
@@ -1,12 +0,0 @@
|
|
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
DELETED
@@ -1,29 +0,0 @@
|
|
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
DELETED
@@ -1,50 +0,0 @@
|
|
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
DELETED
@@ -1,241 +0,0 @@
|
|
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 |
-
disabled={false}
|
214 |
-
id="react-select-4-input"
|
215 |
-
onBlur={[Function]}
|
216 |
-
onChange={[Function]}
|
217 |
-
onFocus={[Function]}
|
218 |
-
readOnly={true}
|
219 |
-
tabIndex="0"
|
220 |
-
value=""
|
221 |
-
/>
|
222 |
-
</div>
|
223 |
-
<div
|
224 |
-
className="css-1wy0on6 tribe-editor__select__indicators"
|
225 |
-
>
|
226 |
-
<div
|
227 |
-
aria-hidden="true"
|
228 |
-
className="css-1ep9fjw tribe-editor__select__indicator tribe-editor__select__dropdown-indicator"
|
229 |
-
onMouseDown={[Function]}
|
230 |
-
onTouchEnd={[Function]}
|
231 |
-
>
|
232 |
-
<span
|
233 |
-
className="tribe-editor__select__dropdown-indicator"
|
234 |
-
>
|
235 |
-
arrow-down
|
236 |
-
</span>
|
237 |
-
</div>
|
238 |
-
</div>
|
239 |
-
</div>
|
240 |
-
</div>
|
241 |
-
`;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/modules/elements/select/__tests__/element.test.js
DELETED
@@ -1,31 +0,0 @@
|
|
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
DELETED
@@ -1,41 +0,0 @@
|
|
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
DELETED
@@ -1,78 +0,0 @@
|
|
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 |
-
z-index: 10;
|
52 |
-
}
|
53 |
-
|
54 |
-
.tribe-editor__select__menu-list {
|
55 |
-
padding: 0;
|
56 |
-
}
|
57 |
-
|
58 |
-
.tribe-editor__select__option {
|
59 |
-
font-size: 16px;
|
60 |
-
line-height: 1.5;
|
61 |
-
padding: 3px 15px;
|
62 |
-
|
63 |
-
&--is-focused {
|
64 |
-
background-color: #E7F5FA;
|
65 |
-
}
|
66 |
-
|
67 |
-
&--is-selected {
|
68 |
-
background-color: #11A0D2;
|
69 |
-
}
|
70 |
-
}
|
71 |
-
|
72 |
-
&--is-disabled {
|
73 |
-
|
74 |
-
svg.tribe-editor__select__dropdown-indicator {
|
75 |
-
fill: #AEB4BB;
|
76 |
-
}
|
77 |
-
}
|
78 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/modules/elements/style.pcss
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
.post-type-tribe_events .editor-styles-wrapper {
|
2 |
-
max-width: none!important;
|
3 |
-
}
|
|
|
|
|
|
common/src/modules/elements/textarea/element.js
DELETED
@@ -1,20 +0,0 @@
|
|
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
DELETED
@@ -1,204 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* External dependencies
|
3 |
-
*/
|
4 |
-
import React, { Fragment } 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 Button from '@moderntribe/common/elements/button/element';
|
25 |
-
import Input from '@moderntribe/common/elements/input/element';
|
26 |
-
import {
|
27 |
-
date as dateUtil,
|
28 |
-
moment as momentUtil,
|
29 |
-
time as timeUtil,
|
30 |
-
TribePropTypes,
|
31 |
-
} from '@moderntribe/common/utils';
|
32 |
-
import './style.pcss';
|
33 |
-
|
34 |
-
const TimePicker = ( {
|
35 |
-
allDay,
|
36 |
-
current,
|
37 |
-
disabled,
|
38 |
-
end,
|
39 |
-
onBlur,
|
40 |
-
onChange,
|
41 |
-
onClick,
|
42 |
-
onFocus,
|
43 |
-
showAllDay,
|
44 |
-
start,
|
45 |
-
step,
|
46 |
-
timeFormat,
|
47 |
-
} ) => {
|
48 |
-
|
49 |
-
const renderLabel = ( onAllDayClick ) => {
|
50 |
-
if ( allDay ) {
|
51 |
-
return (
|
52 |
-
<Button
|
53 |
-
className="tribe-editor__timepicker__all-day-btn"
|
54 |
-
disabled={ disabled }
|
55 |
-
onClick={ onAllDayClick }
|
56 |
-
>
|
57 |
-
{ __( 'All Day', 'tribe-common' ) }
|
58 |
-
</Button>
|
59 |
-
);
|
60 |
-
}
|
61 |
-
|
62 |
-
return (
|
63 |
-
<Input
|
64 |
-
className="tribe-editor__timepicker__input"
|
65 |
-
disabled={ disabled }
|
66 |
-
onBlur={ onBlur }
|
67 |
-
onChange={ onChange }
|
68 |
-
onFocus={ onFocus }
|
69 |
-
type="text"
|
70 |
-
value={ current }
|
71 |
-
/>
|
72 |
-
);
|
73 |
-
};
|
74 |
-
|
75 |
-
const renderToggle = ( { onToggle, isOpen } ) => (
|
76 |
-
<Fragment>
|
77 |
-
{ renderLabel( onToggle ) }
|
78 |
-
<Button
|
79 |
-
aria-expanded={ isOpen }
|
80 |
-
className="tribe-editor__timepicker__toggle-btn"
|
81 |
-
disabled={ disabled }
|
82 |
-
onClick={ onToggle }
|
83 |
-
>
|
84 |
-
<Dashicon
|
85 |
-
className="tribe-editor__timepicker__toggle-btn-icon"
|
86 |
-
icon={ isOpen ? 'arrow-up' : 'arrow-down' }
|
87 |
-
/>
|
88 |
-
</Button>
|
89 |
-
</Fragment>
|
90 |
-
);
|
91 |
-
|
92 |
-
const getItems = () => {
|
93 |
-
const items = [];
|
94 |
-
|
95 |
-
const startSeconds = timeUtil.toSeconds( start, timeUtil.TIME_FORMAT_HH_MM );
|
96 |
-
const endSeconds = timeUtil.toSeconds( end, timeUtil.TIME_FORMAT_HH_MM );
|
97 |
-
|
98 |
-
const currentMoment = moment( current, momentUtil.TIME_FORMAT );
|
99 |
-
|
100 |
-
for ( let time = startSeconds; time <= endSeconds; time += step ) {
|
101 |
-
let isCurrent = false;
|
102 |
-
if ( currentMoment.isValid() ) {
|
103 |
-
const currentTime = momentUtil.toTime24Hr( currentMoment );
|
104 |
-
isCurrent = time === timeUtil.toSeconds( currentTime, timeUtil.TIME_FORMAT_HH_MM );
|
105 |
-
}
|
106 |
-
|
107 |
-
items.push( {
|
108 |
-
value: time,
|
109 |
-
text: formatLabel( time ),
|
110 |
-
isCurrent,
|
111 |
-
} );
|
112 |
-
}
|
113 |
-
|
114 |
-
return items;
|
115 |
-
};
|
116 |
-
|
117 |
-
const formatLabel = ( seconds ) => {
|
118 |
-
return momentUtil.setTimeInSeconds( moment(), seconds ).format( momentUtil.toFormat( timeFormat ) );
|
119 |
-
};
|
120 |
-
|
121 |
-
const renderItem = ( item, onClose ) => {
|
122 |
-
const itemClasses = {
|
123 |
-
'tribe-editor__timepicker__item': true,
|
124 |
-
'tribe-editor__timepicker__item--current': item.isCurrent && ! allDay,
|
125 |
-
};
|
126 |
-
|
127 |
-
return (
|
128 |
-
<Button
|
129 |
-
key={ `time-${ item.value }` }
|
130 |
-
className={ classNames( itemClasses ) }
|
131 |
-
value={ item.value }
|
132 |
-
onClick={ () => onClick( item.value, onClose ) }
|
133 |
-
>
|
134 |
-
{ item.text }
|
135 |
-
</Button>
|
136 |
-
);
|
137 |
-
};
|
138 |
-
|
139 |
-
const renderContent = ( { onClose } ) => (
|
140 |
-
<ScrollTo>
|
141 |
-
{ () => (
|
142 |
-
<PreventBlockClose>
|
143 |
-
<ScrollArea
|
144 |
-
key="tribe-element-timepicker-items"
|
145 |
-
className="tribe-editor__timepicker__items"
|
146 |
-
>
|
147 |
-
{ showAllDay && renderItem(
|
148 |
-
{ text: __( 'All Day', 'tribe-common' ), value: 'all-day' },
|
149 |
-
onClose,
|
150 |
-
) }
|
151 |
-
{ getItems().map( ( item ) => renderItem( item, onClose ) ) }
|
152 |
-
</ScrollArea>
|
153 |
-
</PreventBlockClose>
|
154 |
-
) }
|
155 |
-
</ScrollTo>
|
156 |
-
);
|
157 |
-
|
158 |
-
return (
|
159 |
-
<div
|
160 |
-
key="tribe-element-timepicker"
|
161 |
-
className="tribe-editor__timepicker"
|
162 |
-
>
|
163 |
-
<Dropdown
|
164 |
-
className="tribe-editor__timepicker__toggle"
|
165 |
-
contentClassName="tribe-editor__timepicker__content"
|
166 |
-
position="bottom center"
|
167 |
-
renderToggle={ renderToggle }
|
168 |
-
renderContent={ renderContent }
|
169 |
-
/>
|
170 |
-
</div>
|
171 |
-
);
|
172 |
-
};
|
173 |
-
|
174 |
-
TimePicker.defaultProps = {
|
175 |
-
allDay: false,
|
176 |
-
onBlur: noop,
|
177 |
-
onChange: noop,
|
178 |
-
onClick: noop,
|
179 |
-
onFocus: noop,
|
180 |
-
step: timeUtil.HALF_HOUR_IN_SECONDS,
|
181 |
-
timeFormat: dateUtil.FORMATS.WP.time,
|
182 |
-
};
|
183 |
-
|
184 |
-
TimePicker.propTypes = {
|
185 |
-
/**
|
186 |
-
* TribePropTypes.timeFormat check for string formatted as a time
|
187 |
-
* using 24h clock in hh:mm format
|
188 |
-
* e.g. 00:24, 03:57, 21:12
|
189 |
-
*/
|
190 |
-
allDay: PropTypes.bool,
|
191 |
-
current: PropTypes.string,
|
192 |
-
disabled: PropTypes.bool,
|
193 |
-
end: TribePropTypes.timeFormat.isRequired,
|
194 |
-
onBlur: PropTypes.func,
|
195 |
-
onChange: PropTypes.func,
|
196 |
-
onClick: PropTypes.func,
|
197 |
-
onFocus: PropTypes.func,
|
198 |
-
showAllDay: PropTypes.bool,
|
199 |
-
start: TribePropTypes.timeFormat.isRequired,
|
200 |
-
step: PropTypes.number,
|
201 |
-
timeFormat: PropTypes.string,
|
202 |
-
};
|
203 |
-
|
204 |
-
export default TimePicker;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/modules/elements/time-picker/style.pcss
DELETED
@@ -1,86 +0,0 @@
|
|
1 |
-
.tribe-editor__timepicker {
|
2 |
-
display: inline-block;
|
3 |
-
}
|
4 |
-
|
5 |
-
.tribe-editor__timepicker__toggle {
|
6 |
-
background-color: #FFF;
|
7 |
-
border: 1px solid #e1e3e6;
|
8 |
-
border-radius: 2px;
|
9 |
-
display: flex;
|
10 |
-
align-items: center;
|
11 |
-
justify-content: center;
|
12 |
-
|
13 |
-
input.tribe-editor__timepicker__input[type="text"] {
|
14 |
-
font-family: Helvetica, sans-serif;
|
15 |
-
font-size: 14px;
|
16 |
-
line-height: 1.5;
|
17 |
-
padding: 6px 0 6px 10px;
|
18 |
-
border: none;
|
19 |
-
width: 80px;
|
20 |
-
}
|
21 |
-
|
22 |
-
button.tribe-editor__timepicker__toggle-btn {
|
23 |
-
padding: 10px;
|
24 |
-
|
25 |
-
&:disabled > svg.dashicon {
|
26 |
-
fill: #AEB4BB;
|
27 |
-
}
|
28 |
-
}
|
29 |
-
|
30 |
-
button.tribe-editor__timepicker__all-day-btn {
|
31 |
-
color: #545D66;
|
32 |
-
line-height: 20px;
|
33 |
-
padding: 6px 10px 6px;
|
34 |
-
text-decoration: none;
|
35 |
-
display: flex;
|
36 |
-
align-items: center;
|
37 |
-
justify-content: center;
|
38 |
-
}
|
39 |
-
}
|
40 |
-
|
41 |
-
.tribe-editor__timepicker__content {
|
42 |
-
|
43 |
-
&.components-popover {
|
44 |
-
|
45 |
-
.components-popover__content {
|
46 |
-
min-width: 110px;
|
47 |
-
}
|
48 |
-
}
|
49 |
-
|
50 |
-
.tribe-editor__timepicker__items {
|
51 |
-
height: 250px;
|
52 |
-
overflow: auto;
|
53 |
-
|
54 |
-
.components-placeholder {
|
55 |
-
height: inherit;
|
56 |
-
}
|
57 |
-
}
|
58 |
-
|
59 |
-
.tribe-editor__timepicker__item {
|
60 |
-
display: block;
|
61 |
-
width: 100%;
|
62 |
-
color: #555d66;
|
63 |
-
padding: 5px 12px;
|
64 |
-
cursor: pointer;
|
65 |
-
border-bottom: 1px solid #e2e4e7;
|
66 |
-
line-height: 20px;
|
67 |
-
background: transparent;
|
68 |
-
text-align: left;
|
69 |
-
|
70 |
-
&:hover,
|
71 |
-
&:focus {
|
72 |
-
background-color: #e7f5fa;
|
73 |
-
}
|
74 |
-
|
75 |
-
&--current {
|
76 |
-
color: #ffffff;
|
77 |
-
background-color: #009fd4;
|
78 |
-
|
79 |
-
&:hover,
|
80 |
-
&:focus {
|
81 |
-
color: #ffffff;
|
82 |
-
background-color: #009fd4;
|
83 |
-
}
|
84 |
-
}
|
85 |
-
}
|
86 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/modules/elements/tooltip/__tests__/__snapshots__/element.test.js.snap
DELETED
@@ -1,22 +0,0 @@
|
|
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
DELETED
@@ -1,33 +0,0 @@
|
|
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
DELETED
@@ -1,56 +0,0 @@
|
|
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/tooltip/style.pcss
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
.components-tooltip {
|
2 |
-
|
3 |
-
.components-popover__content {
|
4 |
-
white-space: normal;
|
5 |
-
min-width: 350px;
|
6 |
-
max-width: 600px;
|
7 |
-
}
|
8 |
-
|
9 |
-
&:not(.is-mobile) {
|
10 |
-
.components-popover__content {
|
11 |
-
min-width: 350px;
|
12 |
-
}
|
13 |
-
}
|
14 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/modules/elements/url-input/element.js
DELETED
@@ -1,27 +0,0 @@
|
|
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-form.test.js.snap
DELETED
@@ -1,19 +0,0 @@
|
|
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
DELETED
@@ -1,62 +0,0 @@
|
|
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
DELETED
@@ -1,18 +0,0 @@
|
|
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-form.test.js
DELETED
@@ -1,89 +0,0 @@
|
|
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
DELETED
@@ -1,191 +0,0 @@
|
|
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
DELETED
@@ -1,97 +0,0 @@
|
|
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
DELETED
@@ -1,28 +0,0 @@
|
|
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 |
-
describe( 'HOC - With Store', () => {
|
13 |
-
it( 'Should add the store property', () => {
|
14 |
-
const Block = ( props ) => <div { ...props } />;
|
15 |
-
const Wrapper = withStore()( Block );
|
16 |
-
const component = renderer.create( <Wrapper /> );
|
17 |
-
expect( component.toJSON() ).toMatchSnapshot();
|
18 |
-
|
19 |
-
const instance = component.root;
|
20 |
-
expect( instance ).not.toBe( null );
|
21 |
-
const props = instance.findByType( Block ).props;
|
22 |
-
expect( props ).toHaveProperty( 'store' );
|
23 |
-
const { store } = props;
|
24 |
-
expect( store ).toHaveProperty( 'dispatch' );
|
25 |
-
expect( store ).toHaveProperty( 'getState' );
|
26 |
-
} );
|
27 |
-
} );
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/modules/hoc/index.js
DELETED
@@ -1,5 +0,0 @@
|
|
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
DELETED
@@ -1,129 +0,0 @@
|
|
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
DELETED
@@ -1,71 +0,0 @@
|
|
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-selected.js
DELETED
@@ -1,64 +0,0 @@
|
|
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
DELETED
@@ -1,26 +0,0 @@
|
|
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/package.json
DELETED
@@ -1,17 +0,0 @@
|
|
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
DELETED
@@ -1,37 +0,0 @@
|
|
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
DELETED
@@ -1,13 +0,0 @@
|
|
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
DELETED
@@ -1,3 +0,0 @@
|
|
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
DELETED
@@ -1,11 +0,0 @@
|
|
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
DELETED
@@ -1,14 +0,0 @@
|
|
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
DELETED
@@ -1,11 +0,0 @@
|
|
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
DELETED
@@ -1,61 +0,0 @@
|
|
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
DELETED
@@ -1,169 +0,0 @@
|
|
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
DELETED
@@ -1,9 +0,0 @@
|
|
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
DELETED
@@ -1,9 +0,0 @@
|
|
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
DELETED
@@ -1,6 +0,0 @@
|
|
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
DELETED
@@ -1,32 +0,0 @@
|
|
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
DELETED
@@ -1,76 +0,0 @@
|
|
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
DELETED
@@ -1,93 +0,0 @@
|
|
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
DELETED
@@ -1,33 +0,0 @@
|
|
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
DELETED
@@ -1,189 +0,0 @@
|
|
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
DELETED
@@ -1,73 +0,0 @@
|
|
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
DELETED
@@ -1,84 +0,0 @@
|
|
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
DELETED
@@ -1,20 +0,0 @@
|
|
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
DELETED
@@ -1,332 +0,0 @@
|
|
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( 'TIME_FORMAT', () => {
|
32 |
-
expect( momentUtil.TIME_FORMAT ).toEqual( 'h:mm a' );
|
33 |
-
} );
|
34 |
-
|
35 |
-
test( 'roundTime', () => {
|
36 |
-
const test1 = momentUtil.roundTime(
|
37 |
-
moment( '05-09-2018 12:26:02', FORMAT ),
|
38 |
-
);
|
39 |
-
expect( test1 ).toBeInstanceOf( moment );
|
40 |
-
expect( test1.hour() ).toEqual( 12 );
|
41 |
-
expect( test1.minutes() ).toEqual( 0 );
|
42 |
-
expect( test1.seconds() ).toEqual( 0 );
|
43 |
-
|
44 |
-
const test2 = momentUtil.roundTime(
|
45 |
-
moment( '05-09-2018 15:30:02', FORMAT ),
|
46 |
-
);
|
47 |
-
expect( test2 ).toBeInstanceOf( moment );
|
48 |
-
expect( test2.hour() ).toEqual( 15 );
|
49 |
-
expect( test2.minutes() ).toEqual( 30 );
|
50 |
-
expect( test2.seconds() ).toEqual( 0 );
|
51 |
-
|
52 |
-
const test3 = momentUtil.roundTime(
|
53 |
-
moment( '05-09-2018 23:59:59', FORMAT ),
|
54 |
-
);
|
55 |
-
expect( test3 ).toBeInstanceOf( moment );
|
56 |
-
expect( test3.hour() ).toEqual( 23 );
|
57 |
-
expect( test3.minutes() ).toEqual( 30 );
|
58 |
-
expect( test3.seconds() ).toEqual( 0 );
|
59 |
-
|
60 |
-
const test4 = momentUtil.roundTime(
|
61 |
-
moment( '05-09-2018 08:01:59', FORMAT ),
|
62 |
-
);
|
63 |
-
expect( test4 ).toBeInstanceOf( moment );
|
64 |
-
expect( test4.hour() ).toEqual( 8 );
|
65 |
-
expect( test4.minutes() ).toEqual( 0 );
|
66 |
-
expect( test4.seconds() ).toEqual( 0 );
|
67 |
-
} );
|
68 |
-
|
69 |
-
test( 'toMoment', () => {
|
70 |
-
const input = momentUtil.toMoment( new Date( 'January 2, 2015 08:01:59 UTC' ).toISOString() );
|
71 |
-
|
72 |
-
expect( input ).toBeInstanceOf( moment );
|
73 |
-
expect( input.date() ).toEqual( 2 );
|
74 |
-
expect( input.month() ).toEqual( 0 );
|
75 |
-
expect( input.year() ).toEqual( 2015 );
|
76 |
-
expect( input.hour() ).toEqual( 8 );
|
77 |
-
expect( input.minutes() ).toEqual( 1 );
|
78 |
-
expect( input.seconds() ).toEqual( 59 );
|
79 |
-
expect( input.milliseconds() ).toEqual( 0 );
|
80 |
-
expect( input.format( FORMAT ) ).toEqual( '01-02-2015 08:01:59' );
|
81 |
-
} );
|
82 |
-
|
83 |
-
test( 'replaceDate', () => {
|
84 |
-
expect( () => momentUtil.replaceDate( 'Sample string', 123123 ) ).toThrowError();
|
85 |
-
|
86 |
-
const a = moment( '02-28-2010 14:24:40', FORMAT );
|
87 |
-
const b = moment( '05-10-2012 20:14:20', FORMAT );
|
88 |
-
|
89 |
-
const replaced = momentUtil.replaceDate( a, b );
|
90 |
-
expect( replaced ).toBeInstanceOf( moment );
|
91 |
-
expect( replaced.date() ).toEqual( 10 );
|
92 |
-
expect( replaced.month() ).toEqual( 4 );
|
93 |
-
expect( replaced.year() ).toEqual( 2012 );
|
94 |
-
expect( replaced.hour() ).toEqual( 14 );
|
95 |
-
expect( replaced.minute() ).toEqual( 24 );
|
96 |
-
expect( replaced.second() ).toEqual( 40 );
|
97 |
-
expect( replaced.format( FORMAT ) ).toEqual( '05-10-2012 14:24:40' );
|
98 |
-
} );
|
99 |
-
|
100 |
-
test( 'setTimeInSeconds', () => {
|
101 |
-
expect( () => momentUtil.setTimeInSeconds( 'Sample String', 123123 ) ).toThrowError();
|
102 |
-
|
103 |
-
const a = moment( '02-28-2010 14:24:40', FORMAT );
|
104 |
-
const SECONDS = ( 12.5 ) * 60 * 60;
|
105 |
-
const replaced = momentUtil.setTimeInSeconds( a, SECONDS );
|
106 |
-
expect( replaced ).toBeInstanceOf( moment );
|
107 |
-
expect( replaced.date() ).toEqual( 28 );
|
108 |
-
expect( replaced.month() ).toEqual( 1 );
|
109 |
-
expect( replaced.year() ).toEqual( 2010 );
|
110 |
-
expect( replaced.hour() ).toEqual( 12 );
|
111 |
-
expect( replaced.minute() ).toEqual( 30 );
|
112 |
-
expect( replaced.seconds() ).toEqual( 0 );
|
113 |
-
expect( replaced.milliseconds() ).toEqual( 0 );
|
114 |
-
|
115 |
-
const test2 = momentUtil.setTimeInSeconds( a, 0 );
|
116 |
-
expect( test2.date() ).toEqual( 28 );
|
117 |
-
expect( test2.month() ).toEqual( 1 );
|
118 |
-
expect( test2.year() ).toEqual( 2010 );
|
119 |
-
expect( test2.hour() ).toEqual( 0 );
|
120 |
-
expect( test2.minute() ).toEqual( 0 );
|
121 |
-
expect( test2.seconds() ).toEqual( 0 );
|
122 |
-
expect( test2.milliseconds() ).toEqual( 0 );
|
123 |
-
} );
|
124 |
-
|
125 |
-
test( 'totalSeconds', () => {
|
126 |
-
expect( momentUtil.totalSeconds( null ) ).toEqual( 0 );
|
127 |
-
expect( momentUtil.totalSeconds( new Date() ) ).toEqual( 0 );
|
128 |
-
expect( momentUtil.totalSeconds( moment().startOf( 'day' ) ) ).toEqual( 0 );
|
129 |
-
expect( momentUtil.totalSeconds( moment( 'May 23, 2018 12:30 am', 'MMM D, YYYY k:m a' ) ) )
|
130 |
-
.toEqual( time.HALF_HOUR_IN_SECONDS );
|
131 |
-
} );
|
132 |
-
|
133 |
-
test( 'toDateTime', () => {
|
134 |
-
const converted = momentUtil.toDateTime( moment() );
|
135 |
-
expect( typeof converted ).toBe( 'string' );
|
136 |
-
const format = momentUtil.toFormat( date.FORMATS.DATABASE.datetime );
|
137 |
-
expect( converted ).toBe( moment().format( format ) );
|
138 |
-
} );
|
139 |
-
|
140 |
-
test( 'toDate', () => {
|
141 |
-
const converted = momentUtil.toDate( moment() );
|
142 |
-
expect( typeof converted ).toBe( 'string' );
|
143 |
-
expect( typeof converted ).toBe( 'string' );
|
144 |
-
const format = momentUtil.toFormat( date.FORMATS.WP.date );
|
145 |
-
expect( converted ).toBe( moment().format( format ) );
|
146 |
-
} );
|
147 |
-
|
148 |
-
test( 'toDateNoYear', () => {
|
149 |
-
const converted = momentUtil.toDateNoYear( moment() );
|
150 |
-
expect( typeof converted ).toBe( 'string' );
|
151 |
-
expect( converted ).toBe( moment().format( 'MMMM D' ) );
|
152 |
-
} );
|
153 |
-
|
154 |
-
test( 'toTime', () => {
|
155 |
-
const converted = momentUtil.toTime( moment() );
|
156 |
-
expect( typeof converted ).toBe( 'string' );
|
157 |
-
expect( converted ).toBe( moment().format( 'h:mm a' ) );
|
158 |
-
} );
|
159 |
-
|
160 |
-
test( 'toTime24Hr', () => {
|
161 |
-
const converted = momentUtil.toTime24Hr( moment() );
|
162 |
-
expect( typeof converted ).toBe( 'string' );
|
163 |
-
expect( converted ).toBe( moment().format( 'HH:mm' ) );
|
164 |
-
} );
|
165 |
-
|
166 |
-
test( 'toDatabaseDate', () => {
|
167 |
-
const converted = momentUtil.toDatabaseDate( moment() );
|
168 |
-
expect( typeof converted ).toBe( 'string' );
|
169 |
-
expect( converted ).toBe( moment().format( 'YYYY-MM-DD' ) );
|
170 |
-
} );
|
171 |
-
|
172 |
-
test( 'toDatabaseTime', () => {
|
173 |
-
const converted = momentUtil.toDatabaseTime( moment() );
|
174 |
-
expect( typeof converted ).toBe( 'string' );
|
175 |
-
expect( converted ).toBe( moment().format( 'HH:mm:ss' ) );
|
176 |
-
} );
|
177 |
-
|
178 |
-
test( 'toDatePicker', () => {
|
179 |
-
const converted = momentUtil.toDatePicker( moment() );
|
180 |
-
expect( typeof converted ).toBe( 'string' );
|
181 |
-
expect( converted ).toBe( moment().format( 'YYYY-MM-DDTHH:mm:ss' ) );
|
182 |
-
} );
|
183 |
-
|
184 |
-
test( 'isSameDay', () => {
|
185 |
-
expect( momentUtil.isSameDay() ).toBe( false );
|
186 |
-
expect( momentUtil.isSameDay( false, '' ) ).toBe( false );
|
187 |
-
expect( momentUtil.isSameDay( 0, null ) ).toBe( false );
|
188 |
-
expect( momentUtil.isSameDay( moment(), moment().endOf( 'day' ) ) ).toBeTruthy();
|
189 |
-
expect( momentUtil.isSameDay( moment().endOf( 'day' ), moment().endOf( 'day' ) ) ).toBeTruthy();
|
190 |
-
expect( momentUtil.isSameDay( moment(), moment().add( 10, 'days' ) ) ).toBeFalsy();
|
191 |
-
expect( momentUtil.isSameDay( new Date(), new Date() ) ).toBeTruthy();
|
192 |
-
} );
|
193 |
-
|
194 |
-
test( 'isSameMonth', () => {
|
195 |
-
const date = moment( 'October 8, 2018 5:30 pm', 'MMMM D, Y h:mm a' );
|
196 |
-
|
197 |
-
expect( momentUtil.isSameMonth() ).toBe( false );
|
198 |
-
expect( momentUtil.isSameMonth( false, '' ) ).toBe( false );
|
199 |
-
expect( momentUtil.isSameMonth( 0, null ) ).toBe( false );
|
200 |
-
expect( momentUtil.isSameMonth( date, date.clone().add( 24, 'days' ) ) ).toBe( false );
|
201 |
-
expect( momentUtil.isSameMonth( date, date.clone().add( 23, 'days' ) ) ).toBe( true );
|
202 |
-
expect( momentUtil.isSameMonth( date, date.clone().endOf( 'month' ) ) ).toBe( true );
|
203 |
-
expect( momentUtil.isSameMonth( date.clone().endOf( 'month' ), date.clone().endOf( 'month' ) ) ).toBe( true );
|
204 |
-
expect( momentUtil.isSameMonth( date, date.clone().add( 10, 'days' ) ) ).toBe( true );
|
205 |
-
expect( momentUtil.isSameMonth( date, date ) ).toBe( true );
|
206 |
-
} );
|
207 |
-
|
208 |
-
test( 'isSameYear', () => {
|
209 |
-
expect( momentUtil.isSameYear(
|
210 |
-
moment( 'May 23, 2018 12:30 am', 'MMM D, YYYY k:m a' ),
|
211 |
-
moment( 'September 15, 2018 5:30 am', 'MMM D, YYYY k:m a' )
|
212 |
-
) ).toBeTruthy();
|
213 |
-
expect( momentUtil.isSameYear(
|
214 |
-
moment( 'May 23, 2022 12:30 am', 'MMM D, YYYY k:m a' ),
|
215 |
-
moment( 'September 15, 2022 5:30 am', 'MMM D, YYYY k:m a' )
|
216 |
-
) ).toBeTruthy();
|
217 |
-
expect( momentUtil.isSameYear(
|
218 |
-
moment( 'May 23, 2018 12:30 am', 'MMM D, YYYY k:m a' ),
|
219 |
-
moment( 'September 15, 2022 5:30 am', 'MMM D, YYYY k:m a' )
|
220 |
-
) ).toBeFalsy();
|
221 |
-
} );
|
222 |
-
|
223 |
-
test( 'toMomentFromDate', () => {
|
224 |
-
expect( () => momentUtil.toMomentFromDate( '' ) ).toThrowError();
|
225 |
-
expect( () => momentUtil.toMomentFromDate( moment() ) ).toThrowError();
|
226 |
-
Date.now = jest.fn( () => '2018-05-04T05:23:19.000Z' );
|
227 |
-
const format = 'YYYY-MM-DD HH:mm:ss';
|
228 |
-
const now = new Date( 'December 17, 2015 03:24:00' );
|
229 |
-
expect( momentUtil.toMomentFromDate( now ) ).toBeInstanceOf( moment );
|
230 |
-
const expected = momentUtil.toMomentFromDate( now ).format( format );
|
231 |
-
expect( expected ).toBe( '2015-12-17 00:00:00' );
|
232 |
-
} );
|
233 |
-
|
234 |
-
test( 'toFormat', () => {
|
235 |
-
expect( momentUtil.toFormat( '' ) ).toEqual( '' );
|
236 |
-
expect( momentUtil.toFormat( 'Y-m-d H:i:s' ) ).toEqual( 'YYYY-MM-DD HH:mm:ss' );
|
237 |
-
expect( momentUtil.toFormat( 'F j, Y g:i a' ) ).toEqual( 'MMMM D, YYYY h:mm a' );
|
238 |
-
expect( momentUtil.toFormat( 'tLBIOPTZcr' ) ).toEqual( '' );
|
239 |
-
expect( momentUtil.toFormat( 'd' ) ).toEqual( 'DD' );
|
240 |
-
expect( momentUtil.toFormat( 'D' ) ).toEqual( 'ddd' );
|
241 |
-
expect( momentUtil.toFormat( 'j' ) ).toEqual( 'D' );
|
242 |
-
expect( momentUtil.toFormat( 'l' ) ).toEqual( 'dddd' );
|
243 |
-
expect( momentUtil.toFormat( 'N' ) ).toEqual( 'E' );
|
244 |
-
expect( momentUtil.toFormat( 'S' ) ).toEqual( 'o' );
|
245 |
-
expect( momentUtil.toFormat( 'w' ) ).toEqual( 'e' );
|
246 |
-
expect( momentUtil.toFormat( 'z' ) ).toEqual( 'DDD' );
|
247 |
-
expect( momentUtil.toFormat( 'W' ) ).toEqual( 'W' );
|
248 |
-
expect( momentUtil.toFormat( 'F' ) ).toEqual( 'MMMM' );
|
249 |
-
expect( momentUtil.toFormat( 'm' ) ).toEqual( 'MM' );
|
250 |
-
expect( momentUtil.toFormat( 'M' ) ).toEqual( 'MMM' );
|
251 |
-
expect( momentUtil.toFormat( 'n' ) ).toEqual( 'M' );
|
252 |
-
expect( momentUtil.toFormat( 'o' ) ).toEqual( 'YYYY' );
|
253 |
-
expect( momentUtil.toFormat( 'Y' ) ).toEqual( 'YYYY' );
|
254 |
-
expect( momentUtil.toFormat( 'y' ) ).toEqual( 'YY' );
|
255 |
-
expect( momentUtil.toFormat( 'a' ) ).toEqual( 'a' );
|
256 |
-
expect( momentUtil.toFormat( 'A' ) ).toEqual( 'A' );
|
257 |
-
expect( momentUtil.toFormat( 'g' ) ).toEqual( 'h' );
|
258 |
-
expect( momentUtil.toFormat( 'G' ) ).toEqual( 'H' );
|
259 |
-
expect( momentUtil.toFormat( 'h' ) ).toEqual( 'hh' );
|
260 |
-
expect( momentUtil.toFormat( 'H' ) ).toEqual( 'HH' );
|
261 |
-
expect( momentUtil.toFormat( 'i' ) ).toEqual( 'mm' );
|
262 |
-
expect( momentUtil.toFormat( 's' ) ).toEqual( 'ss' );
|
263 |
-
expect( momentUtil.toFormat( 'u' ) ).toEqual( 'SSS' );
|
264 |
-
expect( momentUtil.toFormat( 'e' ) ).toEqual( 'zz' );
|
265 |
-
expect( momentUtil.toFormat( 'U' ) ).toEqual( 'X' );
|
266 |
-
} );
|
267 |
-
|
268 |
-
describe( 'parseFormats', () => {
|
269 |
-
test( 'Use DB format', () => {
|
270 |
-
const format = 'YYYY-MM-DD HH:mm:ss';
|
271 |
-
const expected = momentUtil.parseFormats( '2019-11-19 22:32:00' );
|
272 |
-
expect( expected.format( format ) ).toBe( '2019-11-19 22:32:00' );
|
273 |
-
} );
|
274 |
-
|
275 |
-
test( 'Use WP datetime format', () => {
|
276 |
-
const format = 'MMMM D, YYYY h:mm a';
|
277 |
-
const expected = momentUtil.parseFormats( 'November 19, 2019 10:32 pm' );
|
278 |
-
expect( expected.format( format ) ).toBe( 'November 19, 2019 10:32 pm' );
|
279 |
-
} );
|
280 |
-
|
281 |
-
test( 'Invalid date', () => {
|
282 |
-
Date.now = jest.fn( () => new Date( 'July 1, 2018 00:07:31 UTC' ).toISOString() );
|
283 |
-
const format = 'YYYY-MM-DD HH:mm:ss';
|
284 |
-
const expected = momentUtil.parseFormats( 'No date!' );
|
285 |
-
expect( expected.format( format ) ).toBe( '2018-07-01 00:07:31' );
|
286 |
-
expect( window.console.warn ).toHaveBeenCalled();
|
287 |
-
} );
|
288 |
-
} );
|
289 |
-
|
290 |
-
describe( 'resetTimes', () => {
|
291 |
-
const format = 'YYYY-MM-DD HH:mm:ss';
|
292 |
-
it( 'Should add an hour in seconds', () => {
|
293 |
-
const startMoment = moment( new Date( 'July 19, 2018 19:30:00 UTC' ).toISOString() );
|
294 |
-
const { start, end } = momentUtil.resetTimes( startMoment );
|
295 |
-
expect( start.format( format ) ).toBe( '2018-07-19 19:30:00' );
|
296 |
-
expect( end.format( format ) ).toBe( '2018-07-19 20:30:00' );
|
297 |
-
} );
|
298 |
-
|
299 |
-
it( 'Should add hour in seconds on start of the day', () => {
|
300 |
-
const startMoment = moment( new Date( 'July 19, 2018 00:00:00 UTC' ).toISOString() );
|
301 |
-
const { start, end } = momentUtil.resetTimes( startMoment );
|
302 |
-
expect( start.format( format ) ).toBe( '2018-07-19 00:00:00' );
|
303 |
-
expect( end.format( format ) ).toBe( '2018-07-19 01:00:00' );
|
304 |
-
} );
|
305 |
-
|
306 |
-
it( 'Should prevent overflow to the next day', () => {
|
307 |
-
const startMoment = moment( new Date( 'July 19, 2018 23:59:59 UTC' ).toISOString() );
|
308 |
-
const { start, end } = momentUtil.resetTimes( startMoment );
|
309 |
-
expect( start.format( format ) ).toBe( '2018-07-19 22:59:59' );
|
310 |
-
expect( end.format( format ) ).toBe( '2018-07-19 23:59:59' );
|
311 |
-
} );
|
312 |
-
} );
|
313 |
-
|
314 |
-
describe( 'adjustStart', () => {
|
315 |
-
const format = 'YYYY-MM-DD HH:mm:ss';
|
316 |
-
it( 'Should keep the same order when start is before', () => {
|
317 |
-
const start = moment( new Date( 'July 10, 2018 14:30:00 UTC' ).toISOString() );
|
318 |
-
const end = moment( new Date( 'July 10, 2018 20:35:00 UTC' ).toISOString() );
|
319 |
-
const output = momentUtil.adjustStart( start, end );
|
320 |
-
expect( output.start.format( format ) ).toBe( '2018-07-10 14:30:00' );
|
321 |
-
expect( output.end.format( format ) ).toBe( '2018-07-10 20:35:00' );
|
322 |
-
} );
|
323 |
-
|
324 |
-
it( 'Should adjust the start and end time', () => {
|
325 |
-
const start = moment( new Date( 'July 10, 2018 20:35:00 UTC' ).toISOString() );
|
326 |
-
const end = moment( new Date( 'July 10, 2018 10:30:00 UTC' ).toISOString() );
|
327 |
-
const output = momentUtil.adjustStart( start, end );
|
328 |
-
expect( output.start.format( format ) ).toBe( '2018-07-10 20:35:00' );
|
329 |
-
expect( output.end.format( format ) ).toBe( '2018-07-10 21:35:00' );
|
330 |
-
} );
|
331 |
-
} );
|
332 |
-
} );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/modules/utils/__tests__/number.test.js
DELETED
@@ -1,36 +0,0 @@
|
|
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
DELETED
@@ -1,145 +0,0 @@
|
|
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
DELETED
@@ -1,65 +0,0 @@
|
|
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
DELETED
@@ -1,12 +0,0 @@
|
|
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
DELETED
@@ -1,135 +0,0 @@
|
|
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
DELETED
@@ -1,222 +0,0 @@
|
|
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
DELETED
@@ -1,57 +0,0 @@
|
|
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
DELETED
@@ -1,151 +0,0 @@
|
|
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: momentUtil.toFormat( FORMATS.WP.time ),
|
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', 'tribe-common' ),
|
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
DELETED
@@ -1,50 +0,0 @@
|
|
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
DELETED
@@ -1,28 +0,0 @@
|
|
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
DELETED
@@ -1,37 +0,0 @@
|
|
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 |
-
|
7 |
-
// Localized Config
|
8 |
-
export const config = () => get( 'tribe_editor_config', {} );
|
9 |
-
|
10 |
-
// Common
|
11 |
-
export const common = () => config().common || {};
|
12 |
-
export const adminUrl = () => common().adminUrl || '';
|
13 |
-
export const rest = () => common().rest || {};
|
14 |
-
export const restNonce = () => rest().nonce || {};
|
15 |
-
export const dateSettings = () => common().dateSettings || {};
|
16 |
-
export const editorConstants = () => common().constants || {};
|
17 |
-
export const list = () => ( {
|
18 |
-
countries: common().countries || {},
|
19 |
-
us_states: common().usStates || {},
|
20 |
-
} );
|
21 |
-
|
22 |
-
// TEC
|
23 |
-
export const tec = () => config().events || {};
|
24 |
-
export const editor = () => tec().editor || {};
|
25 |
-
export const settings = () => tec().settings || {};
|
26 |
-
export const mapsAPI = () => tec().googleMap || {};
|
27 |
-
export const priceSettings = () => tec().priceSettings || {};
|
28 |
-
export const tecDateSettings = () => tec().dateSettings || {};
|
29 |
-
export const timezoneHtml = () => tec().timezoneHTML || '';
|
30 |
-
export const defaultTimes = () => tec().defaultTimes || {};
|
31 |
-
|
32 |
-
// PRO
|
33 |
-
export const pro = () => config().eventsPRO || {};
|
34 |
-
export const editorDefaults = () => pro().defaults || {};
|
35 |
-
|
36 |
-
// Tickets
|
37 |
-
export const tickets = () => config().tickets || {};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/modules/utils/index.js
DELETED
@@ -1,27 +0,0 @@
|
|
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
DELETED
@@ -1,12 +0,0 @@
|
|
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
DELETED
@@ -1,332 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* External dependencies
|
3 |
-
*/
|
4 |
-
import { isString } from 'lodash';
|
5 |
-
import moment, { isMoment } from 'moment';
|
6 |
-
|
7 |
-
/**
|
8 |
-
* Internal dependencies
|
9 |
-
*/
|
10 |
-
import {
|
11 |
-
date as dateUtil,
|
12 |
-
time,
|
13 |
-
string,
|
14 |
-
} from '@moderntribe/common/utils';
|
15 |
-
|
16 |
-
export const TIME_FORMAT = 'h:mm a';
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Make sure the format provided matches the spec used by moment.js
|
20 |
-
*
|
21 |
-
* @param {string} format The format to be converted to a moment format
|
22 |
-
* @returns {string} return a moment.js valid format
|
23 |
-
*/
|
24 |
-
export const toFormat = ( format ) => {
|
25 |
-
const replacements = {
|
26 |
-
d: 'DD',
|
27 |
-
D: 'ddd',
|
28 |
-
j: 'D',
|
29 |
-
l: 'dddd',
|
30 |
-
N: 'E',
|
31 |
-
S: 'o',
|
32 |
-
w: 'e',
|
33 |
-
z: 'DDD',
|
34 |
-
W: 'W',
|
35 |
-
F: 'MMMM',
|
36 |
-
m: 'MM',
|
37 |
-
M: 'MMM',
|
38 |
-
n: 'M',
|
39 |
-
t: '', // no equivalent
|
40 |
-
L: '', // no equivalent
|
41 |
-
o: 'YYYY',
|
42 |
-
Y: 'YYYY',
|
43 |
-
y: 'YY',
|
44 |
-
a: 'a',
|
45 |
-
A: 'A',
|
46 |
-
B: '', // no equivalent
|
47 |
-
g: 'h',
|
48 |
-
G: 'H',
|
49 |
-
h: 'hh',
|
50 |
-
H: 'HH',
|
51 |
-
i: 'mm',
|
52 |
-
s: 'ss',
|
53 |
-
u: 'SSS',
|
54 |
-
e: 'zz', // deprecated since version 1.6.0 of moment.js
|
55 |
-
I: '', // no equivalent
|
56 |
-
O: '', // no equivalent
|
57 |
-
P: '', // no equivalent
|
58 |
-
T: '', // no equivalent
|
59 |
-
Z: '', // no equivalent
|
60 |
-
c: '', // no equivalent
|
61 |
-
r: '', // no equivalent
|
62 |
-
U: 'X',
|
63 |
-
};
|
64 |
-
|
65 |
-
return string.replaceWithObject( format, replacements );
|
66 |
-
};
|
67 |
-
|
68 |
-
/**
|
69 |
-
* Round the time of a moment object if the minutes on the date is lower than 30 will set to 0 if
|
70 |
-
* is greater will se 30 so is either 30 or 0.
|
71 |
-
*
|
72 |
-
* @param {moment} date Make sure the date is rounded between 0 or 30 minutes
|
73 |
-
* @returns {moment} A moment object
|
74 |
-
*/
|
75 |
-
export const roundTime = ( date ) => {
|
76 |
-
if ( ! isMoment( date ) ) {
|
77 |
-
return date;
|
78 |
-
}
|
79 |
-
|
80 |
-
let minutes = date.minute();
|
81 |
-
if ( minutes >= 30 ) {
|
82 |
-
minutes = ( minutes % 30 );
|
83 |
-
}
|
84 |
-
|
85 |
-
return date
|
86 |
-
.clone()
|
87 |
-
.subtract( minutes, 'm' )
|
88 |
-
.seconds( 0 );
|
89 |
-
};
|
90 |
-
|
91 |
-
/**
|
92 |
-
* Parse multiple formats in a date to ensure the generated dates are valid
|
93 |
-
*
|
94 |
-
* @param {string} date The date to be converted
|
95 |
-
* @param {array} formats The list of formats used to format
|
96 |
-
* @returns {moment} moment Object with the date or current date if is non valid
|
97 |
-
*/
|
98 |
-
export const parseFormats = ( date, formats = [ dateUtil.FORMATS.DATABASE.datetime, dateUtil.FORMATS.WP.datetime ] ) => {
|
99 |
-
for ( let i = 0; i < formats.length; i ++ ) {
|
100 |
-
const format = formats[ i ];
|
101 |
-
const result = toMoment( date, format );
|
102 |
-
if ( result.isValid() ) {
|
103 |
-
return result;
|
104 |
-
}
|
105 |
-
}
|
106 |
-
|
107 |
-
const noFormat = moment( date );
|
108 |
-
return noFormat.isValid() ? noFormat : moment();
|
109 |
-
};
|
110 |
-
|
111 |
-
/**
|
112 |
-
* Convert a Date() object into a Moment.js object avoiding warnings of different formats
|
113 |
-
* used by Date
|
114 |
-
*
|
115 |
-
* @param {(Date|moment|string)} date The date to be converted.
|
116 |
-
* @param {string} format The format of the data to be used
|
117 |
-
* @param {bool} Force the parse of the format default to true
|
118 |
-
* @returns {moment} A moment object
|
119 |
-
*/
|
120 |
-
export const toMoment = ( date, format = dateUtil.FORMATS.DATABASE.datetime, parseFormat = true ) => {
|
121 |
-
if ( isMoment( date ) || date instanceof Date ) {
|
122 |
-
return moment( date );
|
123 |
-
} else if ( isString( date ) ) {
|
124 |
-
return moment( date, parseFormat ? toFormat( format ) : format );
|
125 |
-
}
|
126 |
-
|
127 |
-
return moment();
|
128 |
-
};
|
129 |
-
|
130 |
-
export const toMomentFromDate = ( date ) => {
|
131 |
-
if ( ! ( date instanceof Date ) ) {
|
132 |
-
throw new Error( 'Make sure your date is an instance of Date' );
|
133 |
-
}
|
134 |
-
|
135 |
-
const year = date.getFullYear();
|
136 |
-
const month = date.getMonth();
|
137 |
-
const day = date.getDate();
|
138 |
-
|
139 |
-
return moment()
|
140 |
-
.year( year )
|
141 |
-
.month( month )
|
142 |
-
.date( day )
|
143 |
-
.startOf( 'day' );
|
144 |
-
};
|
145 |
-
|
146 |
-
/**
|
147 |
-
* Convert a Date() object or date string and time into a moment object
|
148 |
-
*
|
149 |
-
* @param {(Date|moment|string)} date The date to be converted.
|
150 |
-
* @param {string} time The time string in HH:mm format..
|
151 |
-
* @returns {moment} A moment object
|
152 |
-
*/
|
153 |
-
export const toMomentFromDateTime = ( date, time ) => {
|
154 |
-
const [ hours, minutes ] = time.split( ':' );
|
155 |
-
return moment( date ).hours( hours ).minutes( minutes );
|
156 |
-
};
|
157 |
-
|
158 |
-
/**
|
159 |
-
* Replace the date of a moment object with another date from another moment object
|
160 |
-
*
|
161 |
-
* @param {moment} original The moment object where the date is going to be replaced
|
162 |
-
* @param {moment} replaced The moment object where the date to be used to replace is located
|
163 |
-
* @returns {moment} A moment object where the date is replaced
|
164 |
-
*/
|
165 |
-
export const replaceDate = ( original, replaced ) => {
|
166 |
-
if ( ! isMoment( original ) || ! isMoment( replaced ) ) {
|
167 |
-
throw new Error( 'Make sure your values are instances of moment' );
|
168 |
-
}
|
169 |
-
|
170 |
-
return original
|
171 |
-
.year( replaced.year() )
|
172 |
-
.month( replaced.month() )
|
173 |
-
.date( replaced.date() );
|
174 |
-
};
|
175 |
-
|
176 |
-
/**
|
177 |
-
* Set time in seconds to a moment object
|
178 |
-
*
|
179 |
-
* @param {moment} original The original moment where the date is going to be set
|
180 |
-
* @param {number} seconds Amount of seconds to be set to the moment object.
|
181 |
-
* @returns {moment} A moment object with the new date
|
182 |
-
*/
|
183 |
-
export const setTimeInSeconds = ( original, seconds = 0 ) => {
|
184 |
-
if ( ! isMoment( original ) ) {
|
185 |
-
throw new Error( 'Make sure your values are instances of moment' );
|
186 |
-
}
|
187 |
-
|
188 |
-
if ( seconds < 0 ) {
|
189 |
-
return original;
|
190 |
-
}
|
191 |
-
|
192 |
-
return original
|
193 |
-
.startOf( 'day' )
|
194 |
-
.seconds( seconds || original.seconds() );
|
195 |
-
};
|
196 |
-
|
197 |
-
/**
|
198 |
-
* Total seconds of a current date from moment
|
199 |
-
*
|
200 |
-
* @param {moment} date The date to compare on the current day
|
201 |
-
* @returns {int} Total of seconds from start of the day to the current moment,
|
202 |
-
*/
|
203 |
-
export const totalSeconds = ( date ) => {
|
204 |
-
if ( ! date || ! isMoment( date ) ) {
|
205 |
-
return 0;
|
206 |
-
}
|
207 |
-
return date.diff( moment( date ).startOf( 'day' ), 'seconds' );
|
208 |
-
};
|
209 |
-
|
210 |
-
/**
|
211 |
-
* Convert a moment object into a WP date time format
|
212 |
-
*
|
213 |
-
* @param {moment} date A moment date object
|
214 |
-
* @param {string} format Format used to output the date
|
215 |
-
* @returns {string} A date time format
|
216 |
-
*/
|
217 |
-
export const toDateTime = ( date, format = dateUtil.FORMATS.DATABASE.datetime ) => (
|
218 |
-
date.format( toFormat( format ) )
|
219 |
-
);
|
220 |
-
|
221 |
-
export const toDate = ( date, format = dateUtil.FORMATS.WP.date ) => (
|
222 |
-
date.format( toFormat( format ) )
|
223 |
-
);
|
224 |
-
|
225 |
-
export const toDateNoYear = ( date, format = dateUtil.FORMATS.WP.dateNoYear ) => (
|
226 |
-
date.format( toFormat( format ) )
|
227 |
-
);
|
228 |
-
|
229 |
-
export const toTime = ( date, format = dateUtil.FORMATS.WP.time ) => (
|
230 |
-
date.format( toFormat( format ) )
|
231 |
-
);
|
232 |
-
|
233 |
-
export const toTime24Hr = ( date, format = dateUtil.FORMATS.WP.time24Hr ) => (
|
234 |
-
date.format( toFormat( format ) )
|
235 |
-
);
|
236 |
-
|
237 |
-
export const toDatabaseDate = ( date, format = dateUtil.FORMATS.DATABASE.date ) => (
|
238 |
-
date.format( toFormat( format ) )
|
239 |
-
);
|
240 |
-
|
241 |
-
export const toDatabaseTime = ( date, format = dateUtil.FORMATS.DATABASE.time ) => (
|
242 |
-
date.format( toFormat( format ) )
|
243 |
-
);
|
244 |
-
|
245 |
-
export const toDatePicker = ( date = moment(), format = 'YYYY-MM-DDTHH:mm:ss' ) => (
|
246 |
-
date.format( format )
|
247 |
-
);
|
248 |
-
|
249 |
-
/**
|
250 |
-
* Test if the start and end dates are the same day.
|
251 |
-
*
|
252 |
-
* @param {moment} start The start date
|
253 |
-
* @param {(moment|String)} end The end date
|
254 |
-
* @returns {boolean} if the start and end dates are the same day
|
255 |
-
*/
|
256 |
-
export const isSameDay = ( start, end ) => {
|
257 |
-
|
258 |
-
if ( ! start || ! end ) {
|
259 |
-
return false;
|
260 |
-
}
|
261 |
-
|
262 |
-
return moment( start ).isSame( end, 'day' );
|
263 |
-
};
|
264 |
-
|
265 |
-
/**
|
266 |
-
* Test if two moment objects are in the same month
|
267 |
-
*
|
268 |
-
* @param {moment} start The start moment
|
269 |
-
* @param {moment} end The end moment
|
270 |
-
* @returns {boolean} true if start and end are on the same month
|
271 |
-
*/
|
272 |
-
export const isSameMonth = ( start, end ) => {
|
273 |
-
|
274 |
-
if ( ! start || ! end ) {
|
275 |
-
return false;
|
276 |
-
}
|
277 |
-
|
278 |
-
return moment( start ).isSame( end, 'month' );
|
279 |
-
};
|
280 |
-
|
281 |
-
/**
|
282 |
-
* Test if the start and end dates have the same year.
|
283 |
-
*
|
284 |
-
* @param {moment} start The start date
|
285 |
-
* @param {(moment|String)} end The end date
|
286 |
-
* @returns {boolean} if the start and end dates have the same year
|
287 |
-
*/
|
288 |
-
export const isSameYear = ( start, end ) => (
|
289 |
-
toMoment( start ).isSame( toMoment( end ), 'year' )
|
290 |
-
);
|
291 |
-
|
292 |
-
/**
|
293 |
-
* Reset the time of an event by creating an object with start and end ensuring the end event is
|
294 |
-
* after the start date and both are on the same day if the start is one hour before the end of the
|
295 |
-
* day it will remove an hour of the start to ensure both start / end happen on the same day
|
296 |
-
*
|
297 |
-
* @param {moment} start The start date
|
298 |
-
* @returns {{start: {moment}, end: {moment}}} Object with two keys: start, end
|
299 |
-
*/
|
300 |
-
export const resetTimes = ( start ) => {
|
301 |
-
const testMoment = start.clone().add( time.HOUR_IN_SECONDS, 'seconds' );
|
302 |
-
|
303 |
-
// Rollback an hour before adding half an hour as we are on the edge of the day
|
304 |
-
if ( ! isSameDay( start, testMoment ) ) {
|
305 |
-
start.subtract( time.HOUR_IN_SECONDS, 'seconds' );
|
306 |
-
}
|
307 |
-
|
308 |
-
const end = start.clone().add( time.HOUR_IN_SECONDS, 'seconds' );
|
309 |
-
|
310 |
-
return {
|
311 |
-
start,
|
312 |
-
end,
|
313 |
-
};
|
314 |
-
};
|
315 |
-
|
316 |
-
/**
|
317 |
-
* Make sure the start time is always before the end time
|
318 |
-
*
|
319 |
-
* @param {moment} start The start date
|
320 |
-
* @param {moment} end The end date
|
321 |
-
* @returns {{start: {moment}, end: {moment}}} Object with two keys: start, end
|
322 |
-
*/
|
323 |
-
export const adjustStart = ( start, end ) => {
|
324 |
-
if ( end.isBefore( start ) ) {
|
325 |
-
return resetTimes( start );
|
326 |
-
}
|
327 |
-
|
328 |
-
return {
|
329 |
-
start,
|
330 |
-
end,
|
331 |
-
};
|
332 |
-
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/modules/utils/number.js
DELETED
@@ -1,22 +0,0 @@
|
|
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
DELETED
@@ -1,73 +0,0 @@
|
|
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
DELETED
@@ -1,89 +0,0 @@
|
|
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
DELETED
@@ -1,119 +0,0 @@
|
|
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
DELETED
@@ -1,109 +0,0 @@
|
|
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
DELETED
@@ -1,207 +0,0 @@
|
|
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
DELETED
@@ -1,72 +0,0 @@
|
|
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
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
11 |
-
|
12 |
-
/**
|
13 |
-
* Following rules set in this article about accessibility elements
|
14 |
-
*
|
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 );
|
29 |
-
height: 1px;
|
30 |
-
overflow: hidden;
|
31 |
-
position: absolute;
|
32 |
-
white-space: nowrap; /* added line */
|
33 |
-
width: 1px;
|
34 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/resources/css/app-shop.css
DELETED
@@ -1,102 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
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
DELETED
@@ -1,2 +0,0 @@
|
|
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:-webkit-box;display:flex}.tribe-common-form-select>div{-webkit-box-flex:0;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{-webkit-box-align:center;align-items:center;background-color:#fefffe;border:none;color:#545d66;display:-webkit-box;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;-webkit-box-pack:center;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{-webkit-box-flex:1;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,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 .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:-webkit-box;display:flex}.tribe-common-form-select>div{-webkit-box-flex:0;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{-webkit-box-align:center;align-items:center;background-color:#fefffe;border:none;color:#545d66;display:-webkit-box;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;-webkit-box-pack:center;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{-webkit-box-flex:1;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 .block-editor-inner-blocks .editor-block-list__layout,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout{margin:0}.tribe-common__plugin-block-hook .block-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{margin:0;max-width:100%!important;padding:0}.tribe-common__plugin-block-hook .block-editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-hovered>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .block-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 .block-editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected>.editor-block-list__block-edit:before,.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 .block-editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit,.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 .block-editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit:before,.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 .block-editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit .editor-block-contextual-toolbar,.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 .block-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{outline:none}
|
2 |
.tribe-common-form-select{display:-webkit-box;display:flex}.tribe-common-form-select>div{-webkit-box-flex:0;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{-webkit-box-align:center;align-items:center;background-color:#fefffe;border:none;color:#545d66;display:-webkit-box;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;-webkit-box-pack:center;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{-webkit-box-flex:1;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/elements.css
DELETED
@@ -1,20 +0,0 @@
|
|
1 |
-
.tribe-editor__btn--label{background-color:transparent;border:none;padding:0;margin:0;text-align:left}.editor-styles-wrapper .tribe-editor__button,.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[disabled],.tribe-editor__button[disabled]{cursor:default}.editor-styles-wrapper .tribe-editor__button--sm,.tribe-editor__button--sm{background-color:#009fd4;color:#fff;padding:11px 16px 9px;font-size:15px;font-weight:700;line-height:18px;-webkit-transition:background-color .2s ease;transition:background-color .2s ease}.editor-styles-wrapper .tribe-editor__button--sm:focus,.editor-styles-wrapper .tribe-editor__button--sm:hover,.tribe-editor__button--sm:focus,.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,.tribe-editor__button--sm[disabled],.tribe-editor__button--sm[disabled]:focus,.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:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack: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:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:center;align-items:center}.tribe-editor__counter__count{-webkit-box-flex:0;flex:none;color:#aeb4bb;font-size:32px;font-weight:700;line-height:40px;margin-bottom:10px}.tribe-editor__counter__label{-webkit-box-flex:0;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:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:center;align-items:center}.tribe-editor__image-upload--has-image .tribe-editor__image-upload__content{-webkit-box-align:start;align-items:flex-start}.tribe-editor__image-upload__content p.tribe-editor__image-upload__description{-webkit-box-flex:0;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{-webkit-box-flex:0;flex:none;margin-right:10px}.tribe-editor__image-upload__image-wrapper{-webkit-box-flex:0;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:-webkit-box;display:flex;-webkit-box-align:center;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{-webkit-box-flex:1;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{-webkit-box-flex:0;flex:none;color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;text-decoration:none;box-shadow:none;-webkit-transition:color .2s ease;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:-webkit-box;display:flex;-webkit-box-align:center;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{-webkit-box-flex:1;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{-webkit-box-flex:0;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;-webkit-transition:color .2s ease;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:-webkit-box;display:flex}.tribe-common-form-select>div{-webkit-box-flex:0;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{-webkit-box-align:center;align-items:center;background-color:#fefffe;border:none;color:#545d66;display:-webkit-box;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;-webkit-box-pack:center;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{-webkit-box-flex:1;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 |
-
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]:focus,input.tribe-editor__input[type=text]:focus{color:#000;box-shadow:none;outline:none}input.tribe-editor__input[type=number]:disabled,input.tribe-editor__input[type=text]:disabled{color:#aeb4bb}
|
11 |
-
.tribe-editor__timepicker{display:inline-block}.tribe-editor__timepicker__toggle{background-color:#fff;border:1px solid #e1e3e6;border-radius:2px;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.tribe-editor__timepicker__toggle input.tribe-editor__timepicker__input[type=text]{font-family:Helvetica,sans-serif;font-size:14px;line-height:1.5;padding:6px 0 6px 10px;border:none;width:80px}.tribe-editor__timepicker__toggle button.tribe-editor__timepicker__toggle-btn{padding:10px}.tribe-editor__timepicker__toggle button.tribe-editor__timepicker__toggle-btn:disabled>svg.dashicon{fill:#aeb4bb}.tribe-editor__timepicker__toggle button.tribe-editor__timepicker__all-day-btn{color:#545d66;line-height:20px;padding:6px 10px;text-decoration:none;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.tribe-editor__timepicker__content.components-popover .components-popover__content{min-width:110px}.tribe-editor__timepicker__content .tribe-editor__timepicker__items{height:250px;overflow:auto}.tribe-editor__timepicker__content .tribe-editor__timepicker__items .components-placeholder{height:inherit}.tribe-editor__timepicker__content .tribe-editor__timepicker__item{display:block;width:100%;color:#555d66;padding:5px 12px;cursor:pointer;border-bottom:1px solid #e2e4e7;line-height:20px;background:transparent;text-align:left}.tribe-editor__timepicker__content .tribe-editor__timepicker__item:focus,.tribe-editor__timepicker__content .tribe-editor__timepicker__item:hover{background-color:#e7f5fa}.tribe-editor__timepicker__content .tribe-editor__timepicker__item--current,.tribe-editor__timepicker__content .tribe-editor__timepicker__item--current:focus,.tribe-editor__timepicker__content .tribe-editor__timepicker__item--current:hover{color:#fff;background-color:#009fd4}
|
12 |
-
.DayPicker{display:inline-block;font-size:1rem}.DayPicker-wrapper{position:relative;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;padding-bottom:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.DayPicker-Months{display:-webkit-box;display:flex;flex-wrap:wrap;-webkit-box-pack:center;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)}
|
13 |
-
.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}
|
14 |
-
.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}
|
15 |
-
.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}
|
16 |
-
.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}
|
17 |
-
.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}
|
18 |
-
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}
|
19 |
-
.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);z-index:10}.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}
|
20 |
-
.post-type-tribe_events .editor-styles-wrapper{max-width:none!important}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/resources/css/app/elements.min.css
CHANGED
@@ -5,7 +5,7 @@
|
|
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:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:center;align-items:center}.tribe-editor__image-upload--has-image .tribe-editor__image-upload__content{-webkit-box-align:start;align-items:flex-start}.tribe-editor__image-upload__content p.tribe-editor__image-upload__description{-webkit-box-flex:0;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{-webkit-box-flex:0;flex:none;margin-right:10px}.tribe-editor__image-upload__image-wrapper{-webkit-box-flex:0;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:-webkit-box;display:flex;-webkit-box-align:center;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{-webkit-box-flex:1;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{-webkit-box-flex:0;flex:none;color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;text-decoration:none;box-shadow:none;-webkit-transition:color .2s ease;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:-webkit-box;display:flex;-webkit-box-align:center;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{-webkit-box-flex:1;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{-webkit-box-flex:0;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;-webkit-transition:color .2s ease;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:-webkit-box;display:flex}.tribe-common-form-select>div{-webkit-box-flex:0;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{-webkit-box-align:center;align-items:center;background-color:#fefffe;border:none;color:#545d66;display:-webkit-box;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;-webkit-box-pack:center;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{-webkit-box-flex:1;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 |
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]:focus,input.tribe-editor__input[type=text]:focus{color:#000;box-shadow:none;outline:none}input.tribe-editor__input[type=number]:disabled,input.tribe-editor__input[type=text]:disabled{color:#aeb4bb}
|
11 |
.tribe-editor__timepicker{display:inline-block}.tribe-editor__timepicker__toggle{background-color:#fff;border:1px solid #e1e3e6;border-radius:2px;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.tribe-editor__timepicker__toggle input.tribe-editor__timepicker__input[type=text]{font-family:Helvetica,sans-serif;font-size:14px;line-height:1.5;padding:6px 0 6px 10px;border:none;width:80px}.tribe-editor__timepicker__toggle button.tribe-editor__timepicker__toggle-btn{padding:10px}.tribe-editor__timepicker__toggle button.tribe-editor__timepicker__toggle-btn:disabled>svg.dashicon{fill:#aeb4bb}.tribe-editor__timepicker__toggle button.tribe-editor__timepicker__all-day-btn{color:#545d66;line-height:20px;padding:6px 10px;text-decoration:none;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.tribe-editor__timepicker__content.components-popover .components-popover__content{min-width:110px}.tribe-editor__timepicker__content .tribe-editor__timepicker__items{height:250px;overflow:auto}.tribe-editor__timepicker__content .tribe-editor__timepicker__items .components-placeholder{height:inherit}.tribe-editor__timepicker__content .tribe-editor__timepicker__item{display:block;width:100%;color:#555d66;padding:5px 12px;cursor:pointer;border-bottom:1px solid #e2e4e7;line-height:20px;background:transparent;text-align:left}.tribe-editor__timepicker__content .tribe-editor__timepicker__item:focus,.tribe-editor__timepicker__content .tribe-editor__timepicker__item:hover{background-color:#e7f5fa}.tribe-editor__timepicker__content .tribe-editor__timepicker__item--current,.tribe-editor__timepicker__content .tribe-editor__timepicker__item--current:focus,.tribe-editor__timepicker__content .tribe-editor__timepicker__item--current:hover{color:#fff;background-color:#009fd4}
|
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:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:center;align-items:center}.tribe-editor__image-upload--has-image .tribe-editor__image-upload__content{-webkit-box-align:start;align-items:flex-start}.tribe-editor__image-upload__content p.tribe-editor__image-upload__description{-webkit-box-flex:0;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{-webkit-box-flex:0;flex:none;margin-right:10px}.tribe-editor__image-upload__image-wrapper{-webkit-box-flex:0;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:-webkit-box;display:flex;-webkit-box-align:center;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{-webkit-box-flex:1;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{-webkit-box-flex:0;flex:none;color:#009fd4;font-size:15px;font-weight:700;line-height:18px;letter-spacing:.38px;text-decoration:none;box-shadow:none;-webkit-transition:color .2s ease;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:-webkit-box;display:flex;-webkit-box-align:center;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{-webkit-box-flex:1;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{-webkit-box-flex:0;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;-webkit-transition:color .2s ease;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 .block-editor-inner-blocks .editor-block-list__layout,.tribe-common__plugin-block-hook .editor-inner-blocks .editor-block-list__layout{margin:0}.tribe-common__plugin-block-hook .block-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{margin:0;max-width:100%!important;padding:0}.tribe-common__plugin-block-hook .block-editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-hovered>.editor-block-list__block-edit:before,.tribe-common__plugin-block-hook .block-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 .block-editor-inner-blocks .editor-block-list__layout .editor-block-list__block.is-selected>.editor-block-list__block-edit:before,.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 .block-editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit,.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 .block-editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit:before,.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 .block-editor-inner-blocks .editor-block-list__layout .editor-block-list__block .editor-block-list__block-edit .editor-block-contextual-toolbar,.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 .block-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{outline:none}
|
9 |
.tribe-common-form-select{display:-webkit-box;display:flex}.tribe-common-form-select>div{-webkit-box-flex:0;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{-webkit-box-align:center;align-items:center;background-color:#fefffe;border:none;color:#545d66;display:-webkit-box;display:flex;font-family:Helvetica,sans-serif;font-size:16px;font-weight:400;-webkit-box-pack:center;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{-webkit-box-flex:1;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 |
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]:focus,input.tribe-editor__input[type=text]:focus{color:#000;box-shadow:none;outline:none}input.tribe-editor__input[type=number]:disabled,input.tribe-editor__input[type=text]:disabled{color:#aeb4bb}
|
11 |
.tribe-editor__timepicker{display:inline-block}.tribe-editor__timepicker__toggle{background-color:#fff;border:1px solid #e1e3e6;border-radius:2px;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.tribe-editor__timepicker__toggle input.tribe-editor__timepicker__input[type=text]{font-family:Helvetica,sans-serif;font-size:14px;line-height:1.5;padding:6px 0 6px 10px;border:none;width:80px}.tribe-editor__timepicker__toggle button.tribe-editor__timepicker__toggle-btn{padding:10px}.tribe-editor__timepicker__toggle button.tribe-editor__timepicker__toggle-btn:disabled>svg.dashicon{fill:#aeb4bb}.tribe-editor__timepicker__toggle button.tribe-editor__timepicker__all-day-btn{color:#545d66;line-height:20px;padding:6px 10px;text-decoration:none;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center}.tribe-editor__timepicker__content.components-popover .components-popover__content{min-width:110px}.tribe-editor__timepicker__content .tribe-editor__timepicker__items{height:250px;overflow:auto}.tribe-editor__timepicker__content .tribe-editor__timepicker__items .components-placeholder{height:inherit}.tribe-editor__timepicker__content .tribe-editor__timepicker__item{display:block;width:100%;color:#555d66;padding:5px 12px;cursor:pointer;border-bottom:1px solid #e2e4e7;line-height:20px;background:transparent;text-align:left}.tribe-editor__timepicker__content .tribe-editor__timepicker__item:focus,.tribe-editor__timepicker__content .tribe-editor__timepicker__item:hover{background-color:#e7f5fa}.tribe-editor__timepicker__content .tribe-editor__timepicker__item--current,.tribe-editor__timepicker__content .tribe-editor__timepicker__item--current:focus,.tribe-editor__timepicker__content .tribe-editor__timepicker__item--current:hover{color:#fff;background-color:#009fd4}
|
common/src/resources/css/bumpdown.css
DELETED
@@ -1,69 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
11 |
-
/* = Bumpdown CSS
|
12 |
-
=============================================*/
|
13 |
-
.wrap .tribe-bumpdown,
|
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 |
-
}
|
28 |
-
#poststuff .tribe-bumpdown h1,
|
29 |
-
#poststuff .tribe-bumpdown h2,
|
30 |
-
#poststuff .tribe-bumpdown h3,
|
31 |
-
#poststuff .tribe-bumpdown h4,
|
32 |
-
.tribe-bumpdown h1,
|
33 |
-
.tribe-bumpdown h2,
|
34 |
-
.tribe-bumpdown h3,
|
35 |
-
.tribe-bumpdown h4 {
|
36 |
-
padding-left: 0;
|
37 |
-
padding-top: 0;
|
38 |
-
}
|
39 |
-
.tribe-bumpdown-arrow {
|
40 |
-
position: absolute;
|
41 |
-
width: 0;
|
42 |
-
height: 0;
|
43 |
-
top: -11px;
|
44 |
-
margin-left: -18px;
|
45 |
-
border-left: 8px solid transparent;
|
46 |
-
border-right: 8px solid transparent;
|
47 |
-
|
48 |
-
border-bottom: 11px solid #f1f1f1;
|
49 |
-
}
|
50 |
-
.tribe-bumpdown-close {
|
51 |
-
color: #686868;
|
52 |
-
cursor: pointer;
|
53 |
-
position: absolute;
|
54 |
-
right: .5rem;
|
55 |
-
top: .5rem;
|
56 |
-
z-index: 2;
|
57 |
-
}
|
58 |
-
.tribe-bumpdown-trigger .target {
|
59 |
-
color: #0074a2;
|
60 |
-
}
|
61 |
-
@media screen and (max-width: 782px) {
|
62 |
-
.wrap td.tribe-bumpdown {
|
63 |
-
padding-right: 35px;
|
64 |
-
}
|
65 |
-
|
66 |
-
.tribe-bumpdown-arrow {
|
67 |
-
margin-left: -15px;
|
68 |
-
}
|
69 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/resources/css/buttonset.css
DELETED
@@ -1,39 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
11 |
-
.tribe-buttonset .tribe-button-field {
|
12 |
-
background-color: #f7f7f7;
|
13 |
-
}
|
14 |
-
|
15 |
-
.tribe-button-field {
|
16 |
-
color: #444;
|
17 |
-
cursor: pointer;
|
18 |
-
display: inline-block;
|
19 |
-
text-decoration: none;
|
20 |
-
font-size: 13px;
|
21 |
-
line-height: 26px;
|
22 |
-
height: 28px;
|
23 |
-
margin: 0 0 3px;
|
24 |
-
padding: 0 10px 1px;
|
25 |
-
background-color: #fff;
|
26 |
-
border-width: 1px;
|
27 |
-
border-style: solid;
|
28 |
-
border-color: #ddd;
|
29 |
-
-webkit-appearance: none;
|
30 |
-
border-radius: 3px;
|
31 |
-
white-space: nowrap;
|
32 |
-
box-sizing: border-box;
|
33 |
-
}
|
34 |
-
|
35 |
-
.tribe-button-field.tribe-active {
|
36 |
-
color: #fff;
|
37 |
-
background-color: #585858;
|
38 |
-
border-color: #585858;
|
39 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/resources/css/common-full.css
DELETED
@@ -1,2319 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
11 |
-
/*
|
12 |
-
* Common Full CSS
|
13 |
-
*
|
14 |
-
* DO NOT EDIT THIS CSS FILE DIRECTLY.
|
15 |
-
* -------------------------------------------------------------
|
16 |
-
* This file is just a clearing-house, see the pcss directory
|
17 |
-
* and edit the source files found there.
|
18 |
-
*/
|
19 |
-
|
20 |
-
/* Reset */
|
21 |
-
|
22 |
-
/* -----------------------------------------------------------------------------
|
23 |
-
*
|
24 |
-
* Resets Full
|
25 |
-
*
|
26 |
-
* This file is just a clearing-house.
|
27 |
-
* Make partials (start with an underscore) for any actual css code.
|
28 |
-
*
|
29 |
-
* ----------------------------------------------------------------------------- */
|
30 |
-
|
31 |
-
/* Reset */
|
32 |
-
|
33 |
-
/* -----------------------------------------------------------------------------
|
34 |
-
*
|
35 |
-
* Normalize "Light"
|
36 |
-
*
|
37 |
-
* ----------------------------------------------------------------------------- */
|
38 |
-
|
39 |
-
.tribe-common figure {
|
40 |
-
line-height: 0;
|
41 |
-
}
|
42 |
-
|
43 |
-
.tribe-common figcaption {
|
44 |
-
line-height: normal;
|
45 |
-
}
|
46 |
-
|
47 |
-
.tribe-common a {
|
48 |
-
background-color: transparent;
|
49 |
-
-webkit-text-decoration-skip: objects;
|
50 |
-
}
|
51 |
-
|
52 |
-
.tribe-common abbr[title] {
|
53 |
-
border-bottom: none;
|
54 |
-
text-decoration: underline;
|
55 |
-
-webkit-text-decoration: underline dotted;
|
56 |
-
text-decoration: underline dotted;
|
57 |
-
}
|
58 |
-
|
59 |
-
.tribe-common code,
|
60 |
-
.tribe-common kbd,
|
61 |
-
.tribe-common pre,
|
62 |
-
.tribe-common samp {
|
63 |
-
font-family: monospace;
|
64 |
-
font-size: 1em;
|
65 |
-
}
|
66 |
-
|
67 |
-
.tribe-common b,
|
68 |
-
.tribe-common strong {
|
69 |
-
font-weight: inherit;
|
70 |
-
font-weight: bolder;
|
71 |
-
}
|
72 |
-
|
73 |
-
.tribe-common dfn {
|
74 |
-
font-style: italic;
|
75 |
-
}
|
76 |
-
|
77 |
-
.tribe-common mark {
|
78 |
-
background-color: #ff0;
|
79 |
-
color: #000;
|
80 |
-
}
|
81 |
-
|
82 |
-
.tribe-common small {
|
83 |
-
font-size: 80%;
|
84 |
-
}
|
85 |
-
|
86 |
-
.tribe-common sub,
|
87 |
-
.tribe-common sup {
|
88 |
-
font-size: 75%;
|
89 |
-
line-height: 0;
|
90 |
-
}
|
91 |
-
|
92 |
-
.tribe-common hr {
|
93 |
-
border: 0;
|
94 |
-
height: 0;
|
95 |
-
}
|
96 |
-
|
97 |
-
/* Input: Kill browser input chrome */
|
98 |
-
|
99 |
-
.tribe-common input[type="text"],
|
100 |
-
.tribe-common input[type="email"],
|
101 |
-
.tribe-common input[type="url"],
|
102 |
-
.tribe-common input[type="search"],
|
103 |
-
.tribe-common input[type="submit"],
|
104 |
-
.tribe-common input[type="password"],
|
105 |
-
.tribe-common input[type="reset"],
|
106 |
-
.tribe-common input[type="button"],
|
107 |
-
.tribe-common button,
|
108 |
-
.tribe-common textarea {
|
109 |
-
-webkit-appearance: none;
|
110 |
-
-moz-appearance: none;
|
111 |
-
appearance: none;
|
112 |
-
}
|
113 |
-
|
114 |
-
.tribe-common input,
|
115 |
-
.tribe-common button,
|
116 |
-
.tribe-common select,
|
117 |
-
.tribe-common textarea,
|
118 |
-
.tribe-common optgroup {
|
119 |
-
color: inherit;
|
120 |
-
font: inherit;
|
121 |
-
line-height: normal;
|
122 |
-
-webkit-font-smoothing: antialiased;
|
123 |
-
}
|
124 |
-
|
125 |
-
.tribe-common input,
|
126 |
-
.tribe-common button,
|
127 |
-
.tribe-common select,
|
128 |
-
.tribe-common textarea {
|
129 |
-
outline: 0;
|
130 |
-
border-radius: 0;
|
131 |
-
}
|
132 |
-
|
133 |
-
.tribe-common select:-moz-focusring {
|
134 |
-
color: transparent;
|
135 |
-
text-shadow: 0 0 0 #000;
|
136 |
-
}
|
137 |
-
|
138 |
-
.tribe-common optgroup {
|
139 |
-
font-weight: bold;
|
140 |
-
}
|
141 |
-
|
142 |
-
/* -----------------------------------------------------------------------------
|
143 |
-
*
|
144 |
-
* Reset "Light"
|
145 |
-
*
|
146 |
-
* ----------------------------------------------------------------------------- */
|
147 |
-
|
148 |
-
.tribe-common h1,
|
149 |
-
.tribe-common h2,
|
150 |
-
.tribe-common h3,
|
151 |
-
.tribe-common h4,
|
152 |
-
.tribe-common h5,
|
153 |
-
.tribe-common h6,
|
154 |
-
.tribe-common p {
|
155 |
-
font-weight: normal;
|
156 |
-
text-rendering: optimizeLegibility;
|
157 |
-
}
|
158 |
-
|
159 |
-
/* Theme Overrides */
|
160 |
-
|
161 |
-
/* .tribe-theme-avada { */
|
162 |
-
|
163 |
-
/* -------------------------------------------------------------------------
|
164 |
-
* Reset Full Theme Overrides - Avada
|
165 |
-
* ------------------------------------------------------------------------- */
|
166 |
-
|
167 |
-
/* } */
|
168 |
-
|
169 |
-
/* .tribe-theme-divi { */
|
170 |
-
|
171 |
-
/* -------------------------------------------------------------------------
|
172 |
-
* Reset Full Theme Overrides - Divi
|
173 |
-
* ------------------------------------------------------------------------- */
|
174 |
-
|
175 |
-
/* } */
|
176 |
-
|
177 |
-
/* -------------------------------------------------------------------------
|
178 |
-
* Reset Full Theme Overrides - Enfold
|
179 |
-
* ------------------------------------------------------------------------- */
|
180 |
-
|
181 |
-
#top.tribe-theme-enfold .tribe-common button[disabled], #top .main_color .tribe-common button[disabled] {
|
182 |
-
opacity: 1;
|
183 |
-
}
|
184 |
-
|
185 |
-
/* .tribe-theme-genesis { */
|
186 |
-
|
187 |
-
/* -------------------------------------------------------------------------
|
188 |
-
* Reset Full Theme Overrides - Genesis
|
189 |
-
* ------------------------------------------------------------------------- */
|
190 |
-
|
191 |
-
/* } */
|
192 |
-
|
193 |
-
/* -------------------------------------------------------------------------
|
194 |
-
* Reset Full Theme Overrides - Twenty Nineteen
|
195 |
-
* ------------------------------------------------------------------------- */
|
196 |
-
|
197 |
-
.tribe-theme-twentynineteen .tribe-common h1:before, .tribe-theme-twentynineteen .tribe-common h2:before {
|
198 |
-
content: none;
|
199 |
-
}
|
200 |
-
|
201 |
-
.tribe-theme-twentynineteen .tribe-common button,
|
202 |
-
.tribe-theme-twentynineteen .tribe-common input[type="button"],
|
203 |
-
.tribe-theme-twentynineteen .tribe-common input[type="reset"],
|
204 |
-
.tribe-theme-twentynineteen .tribe-common input[type="submit"] {
|
205 |
-
outline: none;
|
206 |
-
}
|
207 |
-
|
208 |
-
.tribe-theme-twentynineteen .tribe-common th,
|
209 |
-
.tribe-theme-twentynineteen .tribe-common td {
|
210 |
-
word-break: normal;
|
211 |
-
}
|
212 |
-
|
213 |
-
/* -------------------------------------------------------------------------
|
214 |
-
* Reset Full Theme Overrides - Twenty Seventeen
|
215 |
-
* ------------------------------------------------------------------------- */
|
216 |
-
|
217 |
-
.tribe-theme-twentyseventeen .tribe-common h5 {
|
218 |
-
letter-spacing: normal;
|
219 |
-
text-transform: none;
|
220 |
-
}
|
221 |
-
|
222 |
-
.tribe-theme-twentyseventeen .tribe-common input[type="text"] {
|
223 |
-
border-radius: 0;
|
224 |
-
}
|
225 |
-
|
226 |
-
.tribe-theme-twentytwenty .tribe-common {
|
227 |
-
|
228 |
-
/* -------------------------------------------------------------------------
|
229 |
-
* Reset Full Theme Overrides - Twenty Twenty
|
230 |
-
* ------------------------------------------------------------------------- */
|
231 |
-
background-color: #FFFFFF;
|
232 |
-
letter-spacing: normal;
|
233 |
-
}
|
234 |
-
|
235 |
-
.tribe-theme-twentytwenty .tribe-common input,
|
236 |
-
.tribe-theme-twentytwenty .tribe-common textarea {
|
237 |
-
letter-spacing: normal;
|
238 |
-
}
|
239 |
-
|
240 |
-
.tribe-theme-twentytwenty .tribe-common * {
|
241 |
-
word-break: normal;
|
242 |
-
}
|
243 |
-
|
244 |
-
/* Utilities */
|
245 |
-
|
246 |
-
/* -----------------------------------------------------------------------------
|
247 |
-
*
|
248 |
-
* Utilities
|
249 |
-
*
|
250 |
-
* This file is just a clearing-house.
|
251 |
-
* Make partials (start with an underscore) for any actual css code.
|
252 |
-
*
|
253 |
-
* ----------------------------------------------------------------------------- */
|
254 |
-
|
255 |
-
/* Variables */
|
256 |
-
|
257 |
-
:root {
|
258 |
-
/* -----------------------------------------------------------------------------
|
259 |
-
* Borders - Radius
|
260 |
-
* ----------------------------------------------------------------------------- */
|
261 |
-
|
262 |
-
/* -----------------------------------------------------------------------------
|
263 |
-
* Borders - Width
|
264 |
-
* ----------------------------------------------------------------------------- */
|
265 |
-
}
|
266 |
-
|
267 |
-
:root {
|
268 |
-
/* -----------------------------------------------------------------------------
|
269 |
-
* Box Shadows
|
270 |
-
* ----------------------------------------------------------------------------- */
|
271 |
-
}
|
272 |
-
|
273 |
-
:root {
|
274 |
-
/* -----------------------------------------------------------------------------
|
275 |
-
* Layers of z-index
|
276 |
-
* ----------------------------------------------------------------------------- */
|
277 |
-
}
|
278 |
-
|
279 |
-
:root {
|
280 |
-
/* -----------------------------------------------------------------------------
|
281 |
-
* Colors - Typography
|
282 |
-
* ----------------------------------------------------------------------------- */
|
283 |
-
|
284 |
-
/* -----------------------------------------------------------------------------
|
285 |
-
* Colors - Iconography
|
286 |
-
* ----------------------------------------------------------------------------- */
|
287 |
-
|
288 |
-
/* -----------------------------------------------------------------------------
|
289 |
-
* Colors - UI
|
290 |
-
* ----------------------------------------------------------------------------- */
|
291 |
-
|
292 |
-
/* -----------------------------------------------------------------------------
|
293 |
-
* Colors - Borders & Misc
|
294 |
-
* ----------------------------------------------------------------------------- */
|
295 |
-
|
296 |
-
}
|
297 |
-
|
298 |
-
:root {
|
299 |
-
/* -----------------------------------------------------------------------------
|
300 |
-
* Forms - Colors
|
301 |
-
* ----------------------------------------------------------------------------- */
|
302 |
-
|
303 |
-
/* -----------------------------------------------------------------------------
|
304 |
-
* Forms - Box Shadows
|
305 |
-
* ----------------------------------------------------------------------------- */
|
306 |
-
}
|
307 |
-
|
308 |
-
:root {
|
309 |
-
/* -----------------------------------------------------------------------------
|
310 |
-
* Gutter - Default
|
311 |
-
* ----------------------------------------------------------------------------- */
|
312 |
-
|
313 |
-
/* -----------------------------------------------------------------------------
|
314 |
-
* Gutter - Page
|
315 |
-
* ----------------------------------------------------------------------------- */
|
316 |
-
|
317 |
-
/* -----------------------------------------------------------------------------
|
318 |
-
* Grid Width - Default
|
319 |
-
* ----------------------------------------------------------------------------- */
|
320 |
-
|
321 |
-
/* -----------------------------------------------------------------------------
|
322 |
-
* Grid Width - Relative
|
323 |
-
* ----------------------------------------------------------------------------- */
|
324 |
-
}
|
325 |
-
|
326 |
-
:root {
|
327 |
-
/* -----------------------------------------------------------------------------
|
328 |
-
* Opacities
|
329 |
-
* ----------------------------------------------------------------------------- */
|
330 |
-
}
|
331 |
-
|
332 |
-
:root {
|
333 |
-
/* -----------------------------------------------------------------------------
|
334 |
-
* Spacers
|
335 |
-
* ----------------------------------------------------------------------------- */
|
336 |
-
}
|
337 |
-
|
338 |
-
/* -----------------------------------------------------------------------------
|
339 |
-
* SVG - Arrow Right
|
340 |
-
* ----------------------------------------------------------------------------- */
|
341 |
-
|
342 |
-
/* -----------------------------------------------------------------------------
|
343 |
-
* SVG - Caret Down
|
344 |
-
* ----------------------------------------------------------------------------- */
|
345 |
-
|
346 |
-
/* -----------------------------------------------------------------------------
|
347 |
-
* SVG - Caret Left
|
348 |
-
* ----------------------------------------------------------------------------- */
|
349 |
-
|
350 |
-
/* -----------------------------------------------------------------------------
|
351 |
-
* SVG - Caret Right
|
352 |
-
* ----------------------------------------------------------------------------- */
|
353 |
-
|
354 |
-
/* -----------------------------------------------------------------------------
|
355 |
-
* SVG - Caret Up
|
356 |
-
* ----------------------------------------------------------------------------- */
|
357 |
-
|
358 |
-
/* -----------------------------------------------------------------------------
|
359 |
-
* SVG - Check
|
360 |
-
* ----------------------------------------------------------------------------- */
|
361 |
-
|
362 |
-
/* -----------------------------------------------------------------------------
|
363 |
-
* SVG - Close
|
364 |
-
* ----------------------------------------------------------------------------- */
|
365 |
-
|
366 |
-
/* -----------------------------------------------------------------------------
|
367 |
-
* SVG - Day
|
368 |
-
* ----------------------------------------------------------------------------- */
|
369 |
-
|
370 |
-
/* -----------------------------------------------------------------------------
|
371 |
-
* SVG - Dropdown
|
372 |
-
* ----------------------------------------------------------------------------- */
|
373 |
-
|
374 |
-
/* -----------------------------------------------------------------------------
|
375 |
-
* SVG - Featured
|
376 |
-
* ----------------------------------------------------------------------------- */
|
377 |
-
|
378 |
-
/* -----------------------------------------------------------------------------
|
379 |
-
* SVG - Filters
|
380 |
-
* ----------------------------------------------------------------------------- */
|
381 |
-
|
382 |
-
/* -----------------------------------------------------------------------------
|
383 |
-
* SVG - Link
|
384 |
-
* ----------------------------------------------------------------------------- */
|
385 |
-
|
386 |
-
/* -----------------------------------------------------------------------------
|
387 |
-
* SVG - List
|
388 |
-
* ----------------------------------------------------------------------------- */
|
389 |
-
|
390 |
-
/* -----------------------------------------------------------------------------
|
391 |
-
* SVG - Location
|
392 |
-
* ----------------------------------------------------------------------------- */
|
393 |
-
|
394 |
-
/* -----------------------------------------------------------------------------
|
395 |
-
* SVG - Mail
|
396 |
-
* ----------------------------------------------------------------------------- */
|
397 |
-
|
398 |
-
/* -----------------------------------------------------------------------------
|
399 |
-
* SVG - Map
|
400 |
-
* ----------------------------------------------------------------------------- */
|
401 |
-
|
402 |
-
/* -----------------------------------------------------------------------------
|
403 |
-
* SVG - Map pin
|
404 |
-
* ----------------------------------------------------------------------------- */
|
405 |
-
|
406 |
-
/* -----------------------------------------------------------------------------
|
407 |
-
* SVG - Messages
|
408 |
-
* ----------------------------------------------------------------------------- */
|
409 |
-
|
410 |
-
/* -----------------------------------------------------------------------------
|
411 |
-
* SVG - Month
|
412 |
-
* ----------------------------------------------------------------------------- */
|
413 |
-
|
414 |
-
/* -----------------------------------------------------------------------------
|
415 |
-
* SVG - No Map
|
416 |
-
* ----------------------------------------------------------------------------- */
|
417 |
-
|
418 |
-
/* -----------------------------------------------------------------------------
|
419 |
-
* SVG - Phone
|
420 |
-
* ----------------------------------------------------------------------------- */
|
421 |
-
|
422 |
-
/* -----------------------------------------------------------------------------
|
423 |
-
* SVG - Photo
|
424 |
-
* ----------------------------------------------------------------------------- */
|
425 |
-
|
426 |
-
/* -----------------------------------------------------------------------------
|
427 |
-
* SVG - Plus
|
428 |
-
* ----------------------------------------------------------------------------- */
|
429 |
-
|
430 |
-
/* -----------------------------------------------------------------------------
|
431 |
-
* SVG - Recurring
|
432 |
-
* ----------------------------------------------------------------------------- */
|
433 |
-
|
434 |
-
/* -----------------------------------------------------------------------------
|
435 |
-
* SVG - Reset
|
436 |
-
* ----------------------------------------------------------------------------- */
|
437 |
-
|
438 |
-
/* -----------------------------------------------------------------------------
|
439 |
-
* SVG - Search
|
440 |
-
* ----------------------------------------------------------------------------- */
|
441 |
-
|
442 |
-
/* -----------------------------------------------------------------------------
|
443 |
-
* SVG - Search Filter
|
444 |
-
* ----------------------------------------------------------------------------- */
|
445 |
-
|
446 |
-
/* -----------------------------------------------------------------------------
|
447 |
-
* SVG - Week
|
448 |
-
* ----------------------------------------------------------------------------- */
|
449 |
-
|
450 |
-
:root {
|
451 |
-
/* -----------------------------------------------------------------------------
|
452 |
-
* Transitions
|
453 |
-
* ----------------------------------------------------------------------------- */
|
454 |
-
}
|
455 |
-
|
456 |
-
:root {
|
457 |
-
/* -----------------------------------------------------------------------------
|
458 |
-
* Font Stacks
|
459 |
-
* ----------------------------------------------------------------------------- */
|
460 |
-
|
461 |
-
/* -----------------------------------------------------------------------------
|
462 |
-
* Font Weights
|
463 |
-
* ----------------------------------------------------------------------------- */
|
464 |
-
|
465 |
-
/* -----------------------------------------------------------------------------
|
466 |
-
* Font Sizing
|
467 |
-
* ----------------------------------------------------------------------------- */
|
468 |
-
|
469 |
-
/* -----------------------------------------------------------------------------
|
470 |
-
* Line Height
|
471 |
-
* ----------------------------------------------------------------------------- */
|
472 |
-
}
|
473 |
-
|
474 |
-
/* Mixins */
|
475 |
-
|
476 |
-
/* -----------------------------------------------------------------------------
|
477 |
-
* Body
|
478 |
-
* ----------------------------------------------------------------------------- */
|
479 |
-
|
480 |
-
/* -----------------------------------------------------------------------------
|
481 |
-
* Desktop Body 1
|
482 |
-
* ----------------------------------------------------------------------------- */
|
483 |
-
|
484 |
-
/* -----------------------------------------------------------------------------
|
485 |
-
* Desktop Body 2
|
486 |
-
* ----------------------------------------------------------------------------- */
|
487 |
-
|
488 |
-
/* -----------------------------------------------------------------------------
|
489 |
-
* Desktop Body 3
|
490 |
-
* ----------------------------------------------------------------------------- */
|
491 |
-
|
492 |
-
/* -----------------------------------------------------------------------------
|
493 |
-
* Mobile Body 1
|
494 |
-
* ----------------------------------------------------------------------------- */
|
495 |
-
|
496 |
-
/* -----------------------------------------------------------------------------
|
497 |
-
* Mobile Body 2
|
498 |
-
* ----------------------------------------------------------------------------- */
|
499 |
-
|
500 |
-
/* -----------------------------------------------------------------------------
|
501 |
-
* Mobile Body 3
|
502 |
-
* ----------------------------------------------------------------------------- */
|
503 |
-
|
504 |
-
/* -----------------------------------------------------------------------------
|
505 |
-
* Heading
|
506 |
-
* ----------------------------------------------------------------------------- */
|
507 |
-
|
508 |
-
/* -----------------------------------------------------------------------------
|
509 |
-
* Heading 1
|
510 |
-
* ----------------------------------------------------------------------------- */
|
511 |
-
|
512 |
-
/* -----------------------------------------------------------------------------
|
513 |
-
* Heading 2
|
514 |
-
* ----------------------------------------------------------------------------- */
|
515 |
-
|
516 |
-
/* -----------------------------------------------------------------------------
|
517 |
-
* Heading 3
|
518 |
-
* ----------------------------------------------------------------------------- */
|
519 |
-
|
520 |
-
/* -----------------------------------------------------------------------------
|
521 |
-
* Heading 4
|
522 |
-
* ----------------------------------------------------------------------------- */
|
523 |
-
|
524 |
-
/* -----------------------------------------------------------------------------
|
525 |
-
* Heading 5
|
526 |
-
* ----------------------------------------------------------------------------- */
|
527 |
-
|
528 |
-
/* -----------------------------------------------------------------------------
|
529 |
-
* Heading 6
|
530 |
-
* ----------------------------------------------------------------------------- */
|
531 |
-
|
532 |
-
/* -----------------------------------------------------------------------------
|
533 |
-
* Heading 7
|
534 |
-
* ----------------------------------------------------------------------------- */
|
535 |
-
|
536 |
-
/* -----------------------------------------------------------------------------
|
537 |
-
* Heading 8
|
538 |
-
* ----------------------------------------------------------------------------- */
|
539 |
-
|
540 |
-
/* -----------------------------------------------------------------------------
|
541 |
-
* Anchor - Default
|
542 |
-
* ----------------------------------------------------------------------------- */
|
543 |
-
|
544 |
-
/* -----------------------------------------------------------------------------
|
545 |
-
* Anchor - Alt
|
546 |
-
* ----------------------------------------------------------------------------- */
|
547 |
-
|
548 |
-
/* -----------------------------------------------------------------------------
|
549 |
-
* Anchor - Thin
|
550 |
-
* ----------------------------------------------------------------------------- */
|
551 |
-
|
552 |
-
/* -----------------------------------------------------------------------------
|
553 |
-
* Anchor - Thin
|
554 |
-
* ----------------------------------------------------------------------------- */
|
555 |
-
|
556 |
-
/* -----------------------------------------------------------------------------
|
557 |
-
* Button - Global
|
558 |
-
* ----------------------------------------------------------------------------- */
|
559 |
-
|
560 |
-
/* -----------------------------------------------------------------------------
|
561 |
-
* Button - Solid
|
562 |
-
* ----------------------------------------------------------------------------- */
|
563 |
-
|
564 |
-
/* -----------------------------------------------------------------------------
|
565 |
-
* Button - Border
|
566 |
-
* ----------------------------------------------------------------------------- */
|
567 |
-
|
568 |
-
/* -----------------------------------------------------------------------------
|
569 |
-
* Button - Icon Border
|
570 |
-
* ----------------------------------------------------------------------------- */
|
571 |
-
|
572 |
-
/* -----------------------------------------------------------------------------
|
573 |
-
* Sliders & Toggles
|
574 |
-
* ----------------------------------------------------------------------------- */
|
575 |
-
|
576 |
-
/* -----------------------------------------------------------------------------
|
577 |
-
* Sliders
|
578 |
-
* ----------------------------------------------------------------------------- */
|
579 |
-
|
580 |
-
/* -----------------------------------------------------------------------------
|
581 |
-
* Hidden: Hide from both screenreaders and browsers
|
582 |
-
* @author: h5bp.com/u
|
583 |
-
* ----------------------------------------------------------------------------- */
|
584 |
-
|
585 |
-
/* -----------------------------------------------------------------------------
|
586 |
-
* Visually Hide: Hide only visually, but have it available for screenreaders
|
587 |
-
* @author: h5bp.com/v
|
588 |
-
* ----------------------------------------------------------------------------- */
|
589 |
-
|
590 |
-
/* -----------------------------------------------------------------------------
|
591 |
-
* Visually Show: Show element after has been hidden with %visually-hide
|
592 |
-
* ----------------------------------------------------------------------------- */
|
593 |
-
|
594 |
-
/* Base */
|
595 |
-
|
596 |
-
/* -----------------------------------------------------------------------------
|
597 |
-
*
|
598 |
-
* Base Full
|
599 |
-
*
|
600 |
-
* This file is just a clearing-house.
|
601 |
-
* Make partials (start with an underscore) for any actual css code.
|
602 |
-
*
|
603 |
-
* ----------------------------------------------------------------------------- */
|
604 |
-
|
605 |
-
/* Forms */
|
606 |
-
|
607 |
-
.tribe-common {
|
608 |
-
|
609 |
-
/* -----------------------------------------------------------------------------
|
610 |
-
*
|
611 |
-
* Form Control: Checkboxes & Radios Theme Overrides
|
612 |
-
*
|
613 |
-
* ----------------------------------------------------------------------------- */
|
614 |
-
|
615 |
-
/* -----------------------------------------------------------------------------
|
616 |
-
* Form Control: Checkboxes Theme Overrides
|
617 |
-
* ----------------------------------------------------------------------------- */
|
618 |
-
|
619 |
-
/* -----------------------------------------------------------------------------
|
620 |
-
* Form Control: Radios Theme Overrides
|
621 |
-
* ----------------------------------------------------------------------------- */
|
622 |
-
}
|
623 |
-
|
624 |
-
/* -----------------------------------------------------------------------------
|
625 |
-
*
|
626 |
-
* Form Control: Checkboxes & Radios
|
627 |
-
*
|
628 |
-
* Example (Checkboxes):
|
629 |
-
* <fieldset>
|
630 |
-
* <legend>Legend for Checkboxes</legend>
|
631 |
-
* <div class="tribe-common-form-control-checkbox-radio-group">
|
632 |
-
* <div class="tribe-common-form-control-checkbox">
|
633 |
-
* <input
|
634 |
-
* class="tribe-common-form-control-checkbox__input"
|
635 |
-
* id="checkboxOne"
|
636 |
-
* name="checkboxGroup"
|
637 |
-
* type="checkbox"
|
638 |
-
* value="checkboxOne"
|
639 |
-
* checked="checked"
|
640 |
-
* />
|
641 |
-
* <label
|
642 |
-
* class="tribe-common-form-control-checkbox__label"
|
643 |
-
* for="checkboxOne"
|
644 |
-
* >
|
645 |
-
* Checkbox One
|
646 |
-
* </label>
|
647 |
-
* </div>
|
648 |
-
* <div class="tribe-common-form-control-checkbox">
|
649 |
-
* <input
|
650 |
-
* class="tribe-common-form-control-checkbox__input"
|
651 |
-
* id="checkboxTwo"
|
652 |
-
* name="checkboxGroup"
|
653 |
-
* type="checkbox"
|
654 |
-
* value="checkboxTwo"
|
655 |
-
* />
|
656 |
-
* <label
|
657 |
-
* class="tribe-common-form-control-checkbox__label"
|
658 |
-
* for="checkboxTwo"
|
659 |
-
* >
|
660 |
-
* Checkbox Two
|
661 |
-
* </label>
|
662 |
-
* </div>
|
663 |
-
* </div>
|
664 |
-
* </fieldset>
|
665 |
-
*
|
666 |
-
* Example (Radios):
|
667 |
-
* <div class="tribe-common-form-control-checkbox-radio-group">
|
668 |
-
* <div class="tribe-common-form-control-radio">
|
669 |
-
* <input
|
670 |
-
* class="tribe-common-form-control-radio__input"
|
671 |
-
* id="radioExample"
|
672 |
-
* name="radioExample"
|
673 |
-
* type="radio"
|
674 |
-
* value="RadioExample"
|
675 |
-
* checked="checked"
|
676 |
-
* />
|
677 |
-
* <label
|
678 |
-
* class="tribe-common-form-control-radio__label"
|
679 |
-
* for="radioExample"
|
680 |
-
* >
|
681 |
-
* Radio Example
|
682 |
-
* </label>
|
683 |
-
* </div>
|
684 |
-
* </div>
|
685 |
-
*
|
686 |
-
* ----------------------------------------------------------------------------- */
|
687 |
-
|
688 |
-
.tribe-common .tribe-common-form-control-checkbox,
|
689 |
-
.tribe-common .tribe-common-form-control-radio {
|
690 |
-
line-height: 0;
|
691 |
-
}
|
692 |
-
|
693 |
-
.tribe-common .tribe-common-form-control-checkbox__label,
|
694 |
-
.tribe-common .tribe-common-form-control-radio__label {
|
695 |
-
color: #141827;
|
696 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
697 |
-
font-size: 14px;
|
698 |
-
line-height: 1.62;
|
699 |
-
font-weight: 400;
|
700 |
-
|
701 |
-
color: #5D5D5D;
|
702 |
-
}
|
703 |
-
|
704 |
-
.tribe-common .tribe-common-form-control-checkbox__input,
|
705 |
-
.tribe-common .tribe-common-form-control-radio__input {
|
706 |
-
-webkit-appearance: none;
|
707 |
-
-moz-appearance: none;
|
708 |
-
appearance: none;
|
709 |
-
background-color: #FFFFFF;
|
710 |
-
border: 1px solid #141827;
|
711 |
-
height: 20px;
|
712 |
-
position: relative;
|
713 |
-
width: 20px;
|
714 |
-
}
|
715 |
-
|
716 |
-
.tribe-common .tribe-common-form-control-checkbox__input:active,
|
717 |
-
.tribe-common .tribe-common-form-control-checkbox__input:focus,
|
718 |
-
.tribe-common .tribe-common-form-control-checkbox__input:hover,
|
719 |
-
.tribe-common .tribe-common-form-control-radio__input:active,
|
720 |
-
.tribe-common .tribe-common-form-control-radio__input:focus,
|
721 |
-
.tribe-common .tribe-common-form-control-radio__input:hover {
|
722 |
-
border: 1px solid #141827;
|
723 |
-
}
|
724 |
-
|
725 |
-
.tribe-common .tribe-common-form-control-checkbox__input:checked, .tribe-common .tribe-common-form-control-radio__input:checked {
|
726 |
-
background-color: #141827;
|
727 |
-
}
|
728 |
-
|
729 |
-
/* -----------------------------------------------------------------------------
|
730 |
-
* Form Control: Checkboxes
|
731 |
-
* ----------------------------------------------------------------------------- */
|
732 |
-
|
733 |
-
.tribe-common .tribe-common-form-control-checkbox__input:checked:before {
|
734 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='9' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6.1L3.9 6.8 1.4 4.3c-.1-.1-.3-.1-.4 0l-.8.8c-.1.1-.1.3 0 .4l3.4 3.4c.2.1.4.1.5 0l7.7-7.7c.1-.1.1-.3 0-.4L11 .1c-.1-.1-.3-.1-.4 0z' fill='%23FFFFFF'/%3E%3C/svg%3E");
|
735 |
-
background-repeat: no-repeat;
|
736 |
-
background-size: contain;
|
737 |
-
content: '';
|
738 |
-
display: block;
|
739 |
-
height: 9px;
|
740 |
-
left: 50%;
|
741 |
-
position: absolute;
|
742 |
-
top: 50%;
|
743 |
-
-webkit-transform: translate(-50%, -50%);
|
744 |
-
transform: translate(-50%, -50%);
|
745 |
-
width: 12px;
|
746 |
-
}
|
747 |
-
|
748 |
-
/* -----------------------------------------------------------------------------
|
749 |
-
* Form Control: Radios
|
750 |
-
* ----------------------------------------------------------------------------- */
|
751 |
-
|
752 |
-
.tribe-common .tribe-common-form-control-radio__input {
|
753 |
-
border-radius: 50%;
|
754 |
-
}
|
755 |
-
|
756 |
-
.tribe-common .tribe-common-form-control-radio__input:checked:before {
|
757 |
-
background-color: #FFFFFF;
|
758 |
-
border-radius: 50%;
|
759 |
-
content: '';
|
760 |
-
display: block;
|
761 |
-
height: 8px;
|
762 |
-
left: 50%;
|
763 |
-
position: absolute;
|
764 |
-
top: 50%;
|
765 |
-
-webkit-transform: translate(-50%, -50%);
|
766 |
-
transform: translate(-50%, -50%);
|
767 |
-
width: 8px;
|
768 |
-
}
|
769 |
-
|
770 |
-
/* -----------------------------------------------------------------------------
|
771 |
-
* Theme Overrides - Enfold
|
772 |
-
* ----------------------------------------------------------------------------- */
|
773 |
-
|
774 |
-
#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-checkbox__label, #top .main_color .tribe-common .tribe-common-form-control-checkbox__label {
|
775 |
-
font-weight: 400;
|
776 |
-
font-size: 14px;
|
777 |
-
}
|
778 |
-
|
779 |
-
/* -----------------------------------------------------------------------------
|
780 |
-
* Theme Overrides - Enfold
|
781 |
-
* ----------------------------------------------------------------------------- */
|
782 |
-
|
783 |
-
#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-radio__label, #top .main_color .tribe-common .tribe-common-form-control-radio__label {
|
784 |
-
font-weight: 400;
|
785 |
-
font-size: 14px;
|
786 |
-
}
|
787 |
-
|
788 |
-
/* .tribe-common { */
|
789 |
-
|
790 |
-
/* -----------------------------------------------------------------------------
|
791 |
-
*
|
792 |
-
* Form Control: Groups (Checkbox & Radio)
|
793 |
-
*
|
794 |
-
* Example:
|
795 |
-
* <div class="tribe-common-form-control-checkbox-radio-group">
|
796 |
-
* <div class="tribe-common-form-control-checkbox">
|
797 |
-
* <input id="checkboxOne" name="checkboxGroup" type="checkbox" value="checkboxOne" checked="checked" />
|
798 |
-
* <label for="checkboxOne">Checkbox One</label>
|
799 |
-
* </div>
|
800 |
-
* <div class="tribe-common-form-control-checkbox">
|
801 |
-
* <input id="checkboxTwo" name="checkboxGroup" type="checkbox" value="checkboxTwo" />
|
802 |
-
* <label for="checkboxTwo">Checkbox two</label>
|
803 |
-
* </div>
|
804 |
-
* </div>
|
805 |
-
*
|
806 |
-
* ----------------------------------------------------------------------------- */
|
807 |
-
|
808 |
-
/* .tribe-common-form-control-checkbox-radio-group {} */
|
809 |
-
|
810 |
-
/* } */
|
811 |
-
|
812 |
-
.tribe-common {
|
813 |
-
|
814 |
-
/* -----------------------------------------------------------------------------
|
815 |
-
*
|
816 |
-
* Form Control: Sliders Theme Overrides
|
817 |
-
*
|
818 |
-
* ----------------------------------------------------------------------------- */
|
819 |
-
}
|
820 |
-
|
821 |
-
/* -----------------------------------------------------------------------------
|
822 |
-
*
|
823 |
-
* Form Control: Sliders
|
824 |
-
*
|
825 |
-
* Example (Horizontal):
|
826 |
-
* <div class="tribe-common-form-control-slider">
|
827 |
-
* <input
|
828 |
-
* class="tribe-common-form-control-slider__input"
|
829 |
-
* id="sliderOne"
|
830 |
-
* type="range"
|
831 |
-
* min="0"
|
832 |
-
* max="100"
|
833 |
-
* value="50"
|
834 |
-
* />
|
835 |
-
* <label class="tribe-common-form-control-slider__label" for="sliderOne">Slider One</label>
|
836 |
-
* </div>
|
837 |
-
*
|
838 |
-
* Example (Vertical):
|
839 |
-
* <div class="tribe-common-form-control-slider tribe-common-form-control-slider--vertical">
|
840 |
-
* <label class="tribe-common-form-control-slider__label" for="sliderOne">Slider One</label>
|
841 |
-
* <input
|
842 |
-
* class="tribe-common-form-control-slider__input"
|
843 |
-
* id="sliderOne"
|
844 |
-
* type="range"
|
845 |
-
* min="0"
|
846 |
-
* max="100"
|
847 |
-
* value="50"
|
848 |
-
* />
|
849 |
-
* </div>
|
850 |
-
*
|
851 |
-
* ----------------------------------------------------------------------------- */
|
852 |
-
|
853 |
-
.tribe-common .tribe-common-form-control-slider {
|
854 |
-
line-height: 0;
|
855 |
-
}
|
856 |
-
|
857 |
-
.tribe-common .tribe-common-form-control-slider__input {
|
858 |
-
-webkit-appearance: none;
|
859 |
-
-moz-appearance: none;
|
860 |
-
appearance: none;
|
861 |
-
background-color: transparent;
|
862 |
-
border: 0;
|
863 |
-
}
|
864 |
-
|
865 |
-
/* -----------------------------------------------------------------------------
|
866 |
-
* Track styles
|
867 |
-
* ----------------------------------------------------------------------------- */
|
868 |
-
|
869 |
-
.tribe-common .tribe-common-form-control-slider__input::-webkit-slider-runnable-track {
|
870 |
-
border: none;
|
871 |
-
border-radius: 5px;
|
872 |
-
height: 10px;
|
873 |
-
margin: 5px 0;
|
874 |
-
padding: 0;
|
875 |
-
position: relative;
|
876 |
-
-webkit-transition: background-color 0.2s ease;
|
877 |
-
transition: background-color 0.2s ease;
|
878 |
-
background-color: #334AFF;
|
879 |
-
}
|
880 |
-
|
881 |
-
.tribe-common .tribe-common-form-control-slider__input::-moz-range-track {
|
882 |
-
border: none;
|
883 |
-
border-radius: 5px;
|
884 |
-
height: 10px;
|
885 |
-
margin: 5px 0;
|
886 |
-
padding: 0;
|
887 |
-
position: relative;
|
888 |
-
-moz-transition: background-color 0.2s ease;
|
889 |
-
transition: background-color 0.2s ease;
|
890 |
-
background-color: #334AFF;
|
891 |
-
}
|
892 |
-
|
893 |
-
.tribe-common .tribe-common-form-control-slider__input::-ms-track {
|
894 |
-
background-color: transparent;
|
895 |
-
border-color: transparent;
|
896 |
-
border-width: 5px 0;
|
897 |
-
color: transparent;
|
898 |
-
height: 10px;
|
899 |
-
}
|
900 |
-
|
901 |
-
.tribe-common .tribe-common-form-control-slider__input::-ms-fill-lower,
|
902 |
-
.tribe-common .tribe-common-form-control-slider__input::-ms-fill-upper {
|
903 |
-
background-color: #334AFF;
|
904 |
-
border-radius: 10px;
|
905 |
-
}
|
906 |
-
|
907 |
-
/* -----------------------------------------------------------------------------
|
908 |
-
* Thumb styles
|
909 |
-
* ----------------------------------------------------------------------------- */
|
910 |
-
|
911 |
-
.tribe-common .tribe-common-form-control-slider__input::-webkit-slider-thumb {
|
912 |
-
background-color: #FFFFFF;
|
913 |
-
border: 1px solid #D5D5D5;
|
914 |
-
border-radius: 50%;
|
915 |
-
box-shadow: 0 2px 5px 0 rgba(0,0,0, 0.14);
|
916 |
-
height: 20px;
|
917 |
-
width: 20px;
|
918 |
-
margin-top: -5px;
|
919 |
-
|
920 |
-
-webkit-appearance: none;
|
921 |
-
|
922 |
-
appearance: none;
|
923 |
-
}
|
924 |
-
|
925 |
-
.tribe-common .tribe-common-form-control-slider__input::-moz-range-thumb {
|
926 |
-
background-color: #FFFFFF;
|
927 |
-
border: 1px solid #D5D5D5;
|
928 |
-
border-radius: 50%;
|
929 |
-
box-shadow: 0 2px 5px 0 rgba(0,0,0, 0.14);
|
930 |
-
height: 20px;
|
931 |
-
width: 20px;
|
932 |
-
margin-top: -5px;
|
933 |
-
}
|
934 |
-
|
935 |
-
.tribe-common .tribe-common-form-control-slider__input::-ms-thumb {
|
936 |
-
background-color: #FFFFFF;
|
937 |
-
border: 1px solid #D5D5D5;
|
938 |
-
border-radius: 50%;
|
939 |
-
box-shadow: 0 2px 5px 0 rgba(0,0,0, 0.14);
|
940 |
-
height: 20px;
|
941 |
-
width: 20px;
|
942 |
-
margin-top: -5px;
|
943 |
-
|
944 |
-
box-shadow: none;
|
945 |
-
margin-top: -1px;
|
946 |
-
}
|
947 |
-
|
948 |
-
.tribe-common .tribe-common-form-control-slider__label {
|
949 |
-
color: #141827;
|
950 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
951 |
-
font-size: 12px;
|
952 |
-
line-height: 1.38;
|
953 |
-
font-weight: 400;
|
954 |
-
|
955 |
-
color: #5D5D5D;
|
956 |
-
}
|
957 |
-
|
958 |
-
/* -----------------------------------------------------------------------------
|
959 |
-
* Theme Overrides - Enfold
|
960 |
-
* ----------------------------------------------------------------------------- */
|
961 |
-
|
962 |
-
#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-slider__label, #top .main_color .tribe-common .tribe-common-form-control-slider__label {
|
963 |
-
font-weight: 400;
|
964 |
-
font-size: 12px;
|
965 |
-
}
|
966 |
-
|
967 |
-
.tribe-common {
|
968 |
-
|
969 |
-
/* -----------------------------------------------------------------------------
|
970 |
-
*
|
971 |
-
* Form Control: Text Theme Overrides
|
972 |
-
*
|
973 |
-
* ----------------------------------------------------------------------------- */
|
974 |
-
}
|
975 |
-
|
976 |
-
/* -----------------------------------------------------------------------------
|
977 |
-
*
|
978 |
-
* Form Control: Text
|
979 |
-
*
|
980 |
-
* Example:
|
981 |
-
* <div class="tribe-common-form-control-text">
|
982 |
-
* <label class="tribe-common-form-control-text__label" for="textInput">Text Input</label>
|
983 |
-
* <input
|
984 |
-
* class="tribe-common-form-control-text__input"
|
985 |
-
* id="textInput"
|
986 |
-
* name="textInput"
|
987 |
-
* type="text"
|
988 |
-
* placeholder="Text Input"
|
989 |
-
* />
|
990 |
-
* </div>
|
991 |
-
*
|
992 |
-
* ----------------------------------------------------------------------------- */
|
993 |
-
|
994 |
-
.tribe-common .tribe-common-form-control-text__input {
|
995 |
-
color: #141827;
|
996 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
997 |
-
font-size: 16px;
|
998 |
-
line-height: 1.62;
|
999 |
-
font-weight: 400;
|
1000 |
-
|
1001 |
-
border: 0;
|
1002 |
-
border-bottom: 1px solid #D5D5D5;
|
1003 |
-
}
|
1004 |
-
|
1005 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input {
|
1006 |
-
color: #141827;
|
1007 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1008 |
-
font-size: 14px;
|
1009 |
-
line-height: 1.62;
|
1010 |
-
font-weight: 400;
|
1011 |
-
|
1012 |
-
border: 0;
|
1013 |
-
}
|
1014 |
-
|
1015 |
-
.tribe-common .tribe-common-form-control-text__input::-webkit-input-placeholder {
|
1016 |
-
color: #5D5D5D;
|
1017 |
-
font-style: normal;
|
1018 |
-
opacity: 1;
|
1019 |
-
}
|
1020 |
-
|
1021 |
-
.tribe-common .tribe-common-form-control-text__input::-moz-placeholder {
|
1022 |
-
color: #5D5D5D;
|
1023 |
-
font-style: normal;
|
1024 |
-
opacity: 1;
|
1025 |
-
}
|
1026 |
-
|
1027 |
-
.tribe-common .tribe-common-form-control-text__input:-ms-input-placeholder {
|
1028 |
-
color: #5D5D5D;
|
1029 |
-
font-style: normal;
|
1030 |
-
opacity: 1;
|
1031 |
-
}
|
1032 |
-
|
1033 |
-
.tribe-common .tribe-common-form-control-text__input::-ms-input-placeholder {
|
1034 |
-
color: #5D5D5D;
|
1035 |
-
font-style: normal;
|
1036 |
-
opacity: 1;
|
1037 |
-
}
|
1038 |
-
|
1039 |
-
.tribe-common .tribe-common-form-control-text__input::placeholder {
|
1040 |
-
color: #5D5D5D;
|
1041 |
-
font-style: normal;
|
1042 |
-
opacity: 1;
|
1043 |
-
}
|
1044 |
-
|
1045 |
-
.tribe-common .tribe-common-form-control-text__input:focus {
|
1046 |
-
border-bottom-color: #141827;
|
1047 |
-
outline: 0;
|
1048 |
-
}
|
1049 |
-
|
1050 |
-
/* -------------------------------------------------------------------------
|
1051 |
-
* Theme Overrides - Twenty Seventeen
|
1052 |
-
* ------------------------------------------------------------------------- */
|
1053 |
-
|
1054 |
-
.tribe-theme-twentyseventeen .tribe-common .tribe-common-form-control-text__input {
|
1055 |
-
color: #141827;
|
1056 |
-
}
|
1057 |
-
|
1058 |
-
/* -------------------------------------------------------------------------
|
1059 |
-
* Theme Overrides - Twenty Twenty
|
1060 |
-
* ------------------------------------------------------------------------- */
|
1061 |
-
|
1062 |
-
.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-text__input {
|
1063 |
-
line-height: inherit;
|
1064 |
-
}
|
1065 |
-
|
1066 |
-
/* -------------------------------------------------------------------------
|
1067 |
-
* Theme Overrides - Enfold
|
1068 |
-
* ------------------------------------------------------------------------- */
|
1069 |
-
|
1070 |
-
#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input, #top .main_color .tribe-common .tribe-common-form-control-text__input {
|
1071 |
-
color: #141827;
|
1072 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1073 |
-
font-size: 16px;
|
1074 |
-
line-height: 1.62;
|
1075 |
-
font-weight: 400;
|
1076 |
-
|
1077 |
-
background: #FFFFFF;
|
1078 |
-
border: 0;
|
1079 |
-
border-bottom: 1px solid #D5D5D5;
|
1080 |
-
}
|
1081 |
-
|
1082 |
-
#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input:focus, #top .main_color .tribe-common .tribe-common-form-control-text__input:focus {
|
1083 |
-
border-bottom-color: #141827;
|
1084 |
-
box-shadow: none;
|
1085 |
-
}
|
1086 |
-
|
1087 |
-
#top.tribe-theme-enfold .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input, #top .main_color .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input {
|
1088 |
-
color: #141827;
|
1089 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1090 |
-
font-size: 14px;
|
1091 |
-
line-height: 1.62;
|
1092 |
-
font-weight: 400;
|
1093 |
-
|
1094 |
-
border: 0;
|
1095 |
-
}
|
1096 |
-
|
1097 |
-
.tribe-common {
|
1098 |
-
|
1099 |
-
/* -----------------------------------------------------------------------------
|
1100 |
-
*
|
1101 |
-
* Form Control: Toggles Theme Overrides
|
1102 |
-
*
|
1103 |
-
* ----------------------------------------------------------------------------- */
|
1104 |
-
}
|
1105 |
-
|
1106 |
-
/* -----------------------------------------------------------------------------
|
1107 |
-
*
|
1108 |
-
* Form Control: Toggles
|
1109 |
-
*
|
1110 |
-
* Example (Horizontal):
|
1111 |
-
* <div class="tribe-common-form-control-toggle">
|
1112 |
-
* <input
|
1113 |
-
* class="tribe-common-form-control-toggle__input"
|
1114 |
-
* id="toggleOne"
|
1115 |
-
* name="toggleGroup"
|
1116 |
-
* type="checkbox"
|
1117 |
-
* value="toggleOne"
|
1118 |
-
* />
|
1119 |
-
* <label class="tribe-common-form-control-toggle__label" for="toggleOne">Toggle One</label>
|
1120 |
-
* </div>
|
1121 |
-
*
|
1122 |
-
* Example (Vertical):
|
1123 |
-
* <div class="tribe-common-form-control-toggle tribe-common-form-control-toggle--vertical">
|
1124 |
-
* <label class="tribe-common-form-control-toggle__label" for="toggleOne">Toggle One</label>
|
1125 |
-
* <input
|
1126 |
-
* class="tribe-common-form-control-toggle__input"
|
1127 |
-
* id="toggleOne"
|
1128 |
-
* name="toggleGroup"
|
1129 |
-
* type="checkbox"
|
1130 |
-
* value="toggleOne"
|
1131 |
-
* />
|
1132 |
-
* </div>
|
1133 |
-
*
|
1134 |
-
* ----------------------------------------------------------------------------- */
|
1135 |
-
|
1136 |
-
.tribe-common .tribe-common-form-control-toggle {
|
1137 |
-
line-height: 0;
|
1138 |
-
}
|
1139 |
-
|
1140 |
-
.tribe-common .tribe-common-form-control-toggle__input {
|
1141 |
-
border: none;
|
1142 |
-
border-radius: 5px;
|
1143 |
-
height: 10px;
|
1144 |
-
margin: 5px 0;
|
1145 |
-
padding: 0;
|
1146 |
-
position: relative;
|
1147 |
-
-webkit-transition: background-color 0.2s ease;
|
1148 |
-
transition: background-color 0.2s ease;
|
1149 |
-
|
1150 |
-
-webkit-appearance: none;
|
1151 |
-
|
1152 |
-
-moz-appearance: none;
|
1153 |
-
|
1154 |
-
appearance: none;
|
1155 |
-
background-color: #D5D5D5;
|
1156 |
-
width: 40px;
|
1157 |
-
}
|
1158 |
-
|
1159 |
-
.tribe-common .tribe-common-form-control-toggle__input:after {
|
1160 |
-
background-color: #FFFFFF;
|
1161 |
-
border: 1px solid #D5D5D5;
|
1162 |
-
border-radius: 50%;
|
1163 |
-
box-shadow: 0 2px 5px 0 rgba(0,0,0, 0.14);
|
1164 |
-
height: 20px;
|
1165 |
-
width: 20px;
|
1166 |
-
|
1167 |
-
content: '';
|
1168 |
-
left: 0;
|
1169 |
-
position: absolute;
|
1170 |
-
top: -5px;
|
1171 |
-
-webkit-transition: -webkit-transform 0.2s ease;
|
1172 |
-
transition: -webkit-transform 0.2s ease;
|
1173 |
-
transition: transform 0.2s ease;
|
1174 |
-
transition: transform 0.2s ease, -webkit-transform 0.2s ease;
|
1175 |
-
}
|
1176 |
-
|
1177 |
-
.tribe-common .tribe-common-form-control-toggle__input:checked {
|
1178 |
-
background-color: #334AFF;
|
1179 |
-
}
|
1180 |
-
|
1181 |
-
.tribe-common .tribe-common-form-control-toggle__input:checked:after {
|
1182 |
-
-webkit-transform: translateX(20px);
|
1183 |
-
transform: translateX(20px);
|
1184 |
-
}
|
1185 |
-
|
1186 |
-
.tribe-common .tribe-common-form-control-toggle__label {
|
1187 |
-
color: #141827;
|
1188 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1189 |
-
font-size: 12px;
|
1190 |
-
line-height: 1.38;
|
1191 |
-
font-weight: 400;
|
1192 |
-
|
1193 |
-
color: #5D5D5D;
|
1194 |
-
}
|
1195 |
-
|
1196 |
-
/* -----------------------------------------------------------------------------
|
1197 |
-
* Theme Overrides - Enfold
|
1198 |
-
* ----------------------------------------------------------------------------- */
|
1199 |
-
|
1200 |
-
#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-toggle__label, #top .main_color .tribe-common .tribe-common-form-control-toggle__label {
|
1201 |
-
font-weight: 400;
|
1202 |
-
font-size: 12px;
|
1203 |
-
}
|
1204 |
-
|
1205 |
-
/* Grid */
|
1206 |
-
|
1207 |
-
/* .tribe-common { */
|
1208 |
-
|
1209 |
-
/* -----------------------------------------------------------------------------
|
1210 |
-
* Grid: Columns
|
1211 |
-
* ----------------------------------------------------------------------------- */
|
1212 |
-
|
1213 |
-
/* } */
|
1214 |
-
|
1215 |
-
/* .tribe-common { */
|
1216 |
-
|
1217 |
-
/* -----------------------------------------------------------------------------
|
1218 |
-
*
|
1219 |
-
* Grid: Rows
|
1220 |
-
*
|
1221 |
-
* Example:
|
1222 |
-
* <div class="g-row">
|
1223 |
-
* <div class="g-col">
|
1224 |
-
* <p>Component or another grid layout, perhaps?</p>
|
1225 |
-
* </div>
|
1226 |
-
* </div>
|
1227 |
-
*
|
1228 |
-
* ----------------------------------------------------------------------------- */
|
1229 |
-
|
1230 |
-
/* } */
|
1231 |
-
|
1232 |
-
/* Typography */
|
1233 |
-
|
1234 |
-
.tribe-common {
|
1235 |
-
|
1236 |
-
/* -------------------------------------------------------------------------
|
1237 |
-
*
|
1238 |
-
* Anchor: Theme Overrides
|
1239 |
-
*
|
1240 |
-
* ------------------------------------------------------------------------- */
|
1241 |
-
}
|
1242 |
-
|
1243 |
-
.tribe-common a {
|
1244 |
-
color: #141827;
|
1245 |
-
outline: 0;
|
1246 |
-
text-decoration: none;
|
1247 |
-
}
|
1248 |
-
|
1249 |
-
.tribe-common a:hover,
|
1250 |
-
.tribe-common a:focus,
|
1251 |
-
.tribe-common a:active,
|
1252 |
-
.tribe-common a:visited {
|
1253 |
-
color: #141827;
|
1254 |
-
outline: 0;
|
1255 |
-
text-decoration: none;
|
1256 |
-
}
|
1257 |
-
|
1258 |
-
/* -------------------------------------------------------------------------
|
1259 |
-
*
|
1260 |
-
* Anchor: Theme Overrides
|
1261 |
-
*
|
1262 |
-
* ------------------------------------------------------------------------- */
|
1263 |
-
|
1264 |
-
/* -------------------------------------------------------------------------
|
1265 |
-
* Theme Overrides - Twenty Seventeen
|
1266 |
-
* ------------------------------------------------------------------------- */
|
1267 |
-
|
1268 |
-
.tribe-theme-twentyseventeen .tribe-common a {
|
1269 |
-
box-shadow: none;
|
1270 |
-
}
|
1271 |
-
|
1272 |
-
.tribe-theme-twentyseventeen .tribe-common a:hover,
|
1273 |
-
.tribe-theme-twentyseventeen .tribe-common a:focus {
|
1274 |
-
box-shadow: none;
|
1275 |
-
color: #141827;
|
1276 |
-
}
|
1277 |
-
|
1278 |
-
/* -------------------------------------------------------------------------
|
1279 |
-
* Theme Overrides - Twenty Nineteen
|
1280 |
-
* ------------------------------------------------------------------------- */
|
1281 |
-
|
1282 |
-
.tribe-theme-twentynineteen .tribe-common a,
|
1283 |
-
.tribe-theme-twentynineteen .entry .tribe-common a {
|
1284 |
-
text-decoration: none;
|
1285 |
-
}
|
1286 |
-
|
1287 |
-
/* -------------------------------------------------------------------------
|
1288 |
-
*
|
1289 |
-
* Anchor
|
1290 |
-
*
|
1291 |
-
* Example:
|
1292 |
-
* <a class="tribe-common-anchor">Anchor Text</a>
|
1293 |
-
* <a class="tribe-common-anchor-alt">Anchor Alt Text</a>
|
1294 |
-
* <a class="tribe-common-anchor-thin">Anchor Thin Text</a>
|
1295 |
-
*
|
1296 |
-
* ------------------------------------------------------------------------- */
|
1297 |
-
|
1298 |
-
.tribe-common .tribe-common-anchor {
|
1299 |
-
border-bottom: 2px solid transparent;
|
1300 |
-
-webkit-transition: border-color 0.2s ease;
|
1301 |
-
transition: border-color 0.2s ease;
|
1302 |
-
}
|
1303 |
-
|
1304 |
-
.tribe-common .tribe-common-anchor:active,
|
1305 |
-
.tribe-common .tribe-common-anchor:focus,
|
1306 |
-
.tribe-common .tribe-common-anchor:hover {
|
1307 |
-
border-bottom: 2px solid #141827;
|
1308 |
-
}
|
1309 |
-
|
1310 |
-
.tribe-common .tribe-common-anchor-alt {
|
1311 |
-
border-bottom: 2px solid #334AFF;
|
1312 |
-
color: #141827;
|
1313 |
-
-webkit-transition: color 0.2s ease;
|
1314 |
-
transition: color 0.2s ease;
|
1315 |
-
}
|
1316 |
-
|
1317 |
-
.tribe-common .tribe-common-anchor-alt:active,
|
1318 |
-
.tribe-common .tribe-common-anchor-alt:focus,
|
1319 |
-
.tribe-common .tribe-common-anchor-alt:hover {
|
1320 |
-
border-bottom: 2px solid #334AFF;
|
1321 |
-
color: #334AFF;
|
1322 |
-
}
|
1323 |
-
|
1324 |
-
.tribe-common .tribe-common-anchor-thin {
|
1325 |
-
border-bottom: 1px solid transparent;
|
1326 |
-
-webkit-transition: border-color 0.2s ease;
|
1327 |
-
transition: border-color 0.2s ease;
|
1328 |
-
}
|
1329 |
-
|
1330 |
-
.tribe-common .tribe-common-anchor-thin:active,
|
1331 |
-
.tribe-common .tribe-common-anchor-thin:focus,
|
1332 |
-
.tribe-common .tribe-common-anchor-thin:hover {
|
1333 |
-
border-bottom: 1px solid #141827;
|
1334 |
-
}
|
1335 |
-
|
1336 |
-
/* -------------------------------------------------------------------------
|
1337 |
-
* Theme Overrides - Twenty Seventeen
|
1338 |
-
* ------------------------------------------------------------------------- */
|
1339 |
-
|
1340 |
-
.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-alt:hover,
|
1341 |
-
.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-alt:focus {
|
1342 |
-
color: #334AFF;
|
1343 |
-
}
|
1344 |
-
|
1345 |
-
/* -------------------------------------------------------------------------
|
1346 |
-
* Body 1
|
1347 |
-
* ------------------------------------------------------------------------- */
|
1348 |
-
|
1349 |
-
.tribe-common .tribe-common-b1 {
|
1350 |
-
color: #141827;
|
1351 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1352 |
-
font-size: 14px;
|
1353 |
-
font-weight: 400;
|
1354 |
-
line-height: 1.62;
|
1355 |
-
}
|
1356 |
-
|
1357 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1 {
|
1358 |
-
font-size: 16px;
|
1359 |
-
line-height: 1.62;
|
1360 |
-
}
|
1361 |
-
|
1362 |
-
/* -------------------------------------------------------------------------
|
1363 |
-
*
|
1364 |
-
* Body
|
1365 |
-
*
|
1366 |
-
* Example:
|
1367 |
-
* <p class="tribe-common-b1">Text here</p>
|
1368 |
-
*
|
1369 |
-
* ------------------------------------------------------------------------- */
|
1370 |
-
|
1371 |
-
.tribe-common .tribe-common-b1--bold {
|
1372 |
-
font-weight: 700;
|
1373 |
-
}
|
1374 |
-
|
1375 |
-
/* -------------------------------------------------------------------------
|
1376 |
-
* Body 2
|
1377 |
-
* ------------------------------------------------------------------------- */
|
1378 |
-
|
1379 |
-
.tribe-common .tribe-common-b2 {
|
1380 |
-
color: #141827;
|
1381 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1382 |
-
font-size: 12px;
|
1383 |
-
font-weight: 400;
|
1384 |
-
line-height: 1.38;
|
1385 |
-
}
|
1386 |
-
|
1387 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-b2 {
|
1388 |
-
font-size: 14px;
|
1389 |
-
line-height: 1.62;
|
1390 |
-
}
|
1391 |
-
|
1392 |
-
.tribe-common .tribe-common-b2--bold {
|
1393 |
-
font-weight: 700;
|
1394 |
-
}
|
1395 |
-
|
1396 |
-
/* -------------------------------------------------------------------------
|
1397 |
-
* Body 3
|
1398 |
-
* ------------------------------------------------------------------------- */
|
1399 |
-
|
1400 |
-
.tribe-common .tribe-common-b3 {
|
1401 |
-
color: #141827;
|
1402 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1403 |
-
font-size: 11px;
|
1404 |
-
font-weight: 400;
|
1405 |
-
line-height: 1.5;
|
1406 |
-
}
|
1407 |
-
|
1408 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-b3 {
|
1409 |
-
font-size: 12px;
|
1410 |
-
line-height: 1.38;
|
1411 |
-
}
|
1412 |
-
|
1413 |
-
.tribe-common .tribe-common-b3--bold {
|
1414 |
-
font-weight: 700;
|
1415 |
-
}
|
1416 |
-
|
1417 |
-
/* -------------------------------------------------------------------------
|
1418 |
-
* Body 1 for --viewport-medium
|
1419 |
-
* ------------------------------------------------------------------------- */
|
1420 |
-
|
1421 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1--min-medium {
|
1422 |
-
font-size: 16px;
|
1423 |
-
line-height: 1.62;
|
1424 |
-
}
|
1425 |
-
|
1426 |
-
/* -------------------------------------------------------------------------
|
1427 |
-
* Body 2 for --viewport-medium
|
1428 |
-
* ------------------------------------------------------------------------- */
|
1429 |
-
|
1430 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-b2--min-medium {
|
1431 |
-
font-size: 14px;
|
1432 |
-
line-height: 1.62;
|
1433 |
-
}
|
1434 |
-
|
1435 |
-
/* -------------------------------------------------------------------------
|
1436 |
-
* Body 3 for --viewport-medium
|
1437 |
-
* ------------------------------------------------------------------------- */
|
1438 |
-
|
1439 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-b3--min-medium {
|
1440 |
-
font-size: 12px;
|
1441 |
-
line-height: 1.38;
|
1442 |
-
}
|
1443 |
-
|
1444 |
-
.tribe-common {
|
1445 |
-
|
1446 |
-
/* -------------------------------------------------------------------------
|
1447 |
-
*
|
1448 |
-
* CTA: Theme Overrides
|
1449 |
-
*
|
1450 |
-
* ------------------------------------------------------------------------- */
|
1451 |
-
}
|
1452 |
-
|
1453 |
-
/* -------------------------------------------------------------------------
|
1454 |
-
*
|
1455 |
-
* CTA
|
1456 |
-
*
|
1457 |
-
* Example:
|
1458 |
-
* <a class="tribe-common-cta">Link Text</a>
|
1459 |
-
* <a class="tribe-common-cta tribe-common-cta--alt">Link Text Alt</a>
|
1460 |
-
*
|
1461 |
-
* ------------------------------------------------------------------------- */
|
1462 |
-
|
1463 |
-
.tribe-common .tribe-common-cta {
|
1464 |
-
color: #141827;
|
1465 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1466 |
-
font-size: 12px;
|
1467 |
-
line-height: 1.38;
|
1468 |
-
font-weight: 400;
|
1469 |
-
font-weight: 700;
|
1470 |
-
border-bottom: 2px solid transparent;
|
1471 |
-
-webkit-transition: border-color 0.2s ease;
|
1472 |
-
transition: border-color 0.2s ease;
|
1473 |
-
}
|
1474 |
-
|
1475 |
-
.tribe-common .tribe-common-cta:active,
|
1476 |
-
.tribe-common .tribe-common-cta:focus,
|
1477 |
-
.tribe-common .tribe-common-cta:hover {
|
1478 |
-
border-bottom: 2px solid #141827;
|
1479 |
-
}
|
1480 |
-
|
1481 |
-
.tribe-common .tribe-common-cta--alt {
|
1482 |
-
border-bottom: 2px solid #334AFF;
|
1483 |
-
color: #141827;
|
1484 |
-
-webkit-transition: color 0.2s ease;
|
1485 |
-
transition: color 0.2s ease;
|
1486 |
-
}
|
1487 |
-
|
1488 |
-
.tribe-common .tribe-common-cta--alt:active,
|
1489 |
-
.tribe-common .tribe-common-cta--alt:focus,
|
1490 |
-
.tribe-common .tribe-common-cta--alt:hover {
|
1491 |
-
border-bottom: 2px solid #334AFF;
|
1492 |
-
color: #334AFF;
|
1493 |
-
}
|
1494 |
-
|
1495 |
-
.tribe-common .tribe-common-cta--thin-alt {
|
1496 |
-
border-bottom: 1px solid #334AFF;
|
1497 |
-
color: #141827;
|
1498 |
-
-webkit-transition: color 0.2s ease;
|
1499 |
-
transition: color 0.2s ease;
|
1500 |
-
}
|
1501 |
-
|
1502 |
-
.tribe-common .tribe-common-cta--thin-alt:active,
|
1503 |
-
.tribe-common .tribe-common-cta--thin-alt:focus,
|
1504 |
-
.tribe-common .tribe-common-cta--thin-alt:hover {
|
1505 |
-
border-bottom: 1px solid #334AFF;
|
1506 |
-
color: #334AFF;
|
1507 |
-
}
|
1508 |
-
|
1509 |
-
/* -------------------------------------------------------------------------
|
1510 |
-
* Theme Overrides - Twenty Seventeen
|
1511 |
-
* ------------------------------------------------------------------------- */
|
1512 |
-
|
1513 |
-
.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--alt:hover,
|
1514 |
-
.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--alt:focus,
|
1515 |
-
.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--thin-alt:hover,
|
1516 |
-
.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--thin-alt:focus {
|
1517 |
-
color: #334AFF;
|
1518 |
-
}
|
1519 |
-
|
1520 |
-
.tribe-common {
|
1521 |
-
/* -------------------------------------------------------------------------
|
1522 |
-
*
|
1523 |
-
* Heading
|
1524 |
-
*
|
1525 |
-
* Example:
|
1526 |
-
* <h1 class="tribe-common-h1">Heading Text</h1>
|
1527 |
-
*
|
1528 |
-
* ------------------------------------------------------------------------- */
|
1529 |
-
|
1530 |
-
/* -------------------------------------------------------------------------
|
1531 |
-
*
|
1532 |
-
* Heading: Theme Overrides
|
1533 |
-
*
|
1534 |
-
* ------------------------------------------------------------------------- */
|
1535 |
-
}
|
1536 |
-
|
1537 |
-
/* -------------------------------------------------------------------------
|
1538 |
-
* Heading: h1
|
1539 |
-
* ------------------------------------------------------------------------- */
|
1540 |
-
|
1541 |
-
.tribe-common .tribe-common-h1 {
|
1542 |
-
color: #141827;
|
1543 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1544 |
-
font-weight: 700;
|
1545 |
-
font-size: 28px;
|
1546 |
-
line-height: 1.42;
|
1547 |
-
}
|
1548 |
-
|
1549 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-h1 {
|
1550 |
-
font-size: 42px;
|
1551 |
-
line-height: 1.38;
|
1552 |
-
}
|
1553 |
-
|
1554 |
-
/* -------------------------------------------------------------------------
|
1555 |
-
* Heading: h2
|
1556 |
-
* ------------------------------------------------------------------------- */
|
1557 |
-
|
1558 |
-
.tribe-common .tribe-common-h2 {
|
1559 |
-
color: #141827;
|
1560 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1561 |
-
font-weight: 700;
|
1562 |
-
font-size: 24px;
|
1563 |
-
line-height: 1.42;
|
1564 |
-
}
|
1565 |
-
|
1566 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-h2 {
|
1567 |
-
font-size: 32px;
|
1568 |
-
line-height: 1.38;
|
1569 |
-
}
|
1570 |
-
|
1571 |
-
/* -------------------------------------------------------------------------
|
1572 |
-
* Heading: h3
|
1573 |
-
* ------------------------------------------------------------------------- */
|
1574 |
-
|
1575 |
-
.tribe-common .tribe-common-h3 {
|
1576 |
-
color: #141827;
|
1577 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1578 |
-
font-weight: 700;
|
1579 |
-
font-size: 22px;
|
1580 |
-
line-height: 1.5;
|
1581 |
-
}
|
1582 |
-
|
1583 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-h3 {
|
1584 |
-
font-size: 28px;
|
1585 |
-
line-height: 1.42;
|
1586 |
-
}
|
1587 |
-
|
1588 |
-
/* -------------------------------------------------------------------------
|
1589 |
-
* Heading: h4
|
1590 |
-
* ------------------------------------------------------------------------- */
|
1591 |
-
|
1592 |
-
.tribe-common .tribe-common-h4 {
|
1593 |
-
color: #141827;
|
1594 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1595 |
-
font-weight: 700;
|
1596 |
-
font-size: 20px;
|
1597 |
-
line-height: 1.42;
|
1598 |
-
}
|
1599 |
-
|
1600 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-h4 {
|
1601 |
-
font-size: 24px;
|
1602 |
-
line-height: 1.42;
|
1603 |
-
}
|
1604 |
-
|
1605 |
-
/* -------------------------------------------------------------------------
|
1606 |
-
* Heading: h5
|
1607 |
-
* ------------------------------------------------------------------------- */
|
1608 |
-
|
1609 |
-
.tribe-common .tribe-common-h5 {
|
1610 |
-
color: #141827;
|
1611 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1612 |
-
font-weight: 700;
|
1613 |
-
font-size: 18px;
|
1614 |
-
line-height: 1.5;
|
1615 |
-
}
|
1616 |
-
|
1617 |
-
/* -------------------------------------------------------------------------
|
1618 |
-
* Heading: h6
|
1619 |
-
* ------------------------------------------------------------------------- */
|
1620 |
-
|
1621 |
-
.tribe-common .tribe-common-h6 {
|
1622 |
-
color: #141827;
|
1623 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1624 |
-
font-weight: 700;
|
1625 |
-
font-size: 16px;
|
1626 |
-
line-height: 1.5;
|
1627 |
-
}
|
1628 |
-
|
1629 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6 {
|
1630 |
-
font-size: 16px;
|
1631 |
-
line-height: 1.62;
|
1632 |
-
}
|
1633 |
-
|
1634 |
-
/* -------------------------------------------------------------------------
|
1635 |
-
* Heading: h7
|
1636 |
-
* ------------------------------------------------------------------------- */
|
1637 |
-
|
1638 |
-
.tribe-common .tribe-common-h7 {
|
1639 |
-
color: #141827;
|
1640 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1641 |
-
font-weight: 700;
|
1642 |
-
font-size: 14px;
|
1643 |
-
line-height: 1.62;
|
1644 |
-
}
|
1645 |
-
|
1646 |
-
/* -------------------------------------------------------------------------
|
1647 |
-
* Heading: h8
|
1648 |
-
* ------------------------------------------------------------------------- */
|
1649 |
-
|
1650 |
-
.tribe-common .tribe-common-h8 {
|
1651 |
-
color: #141827;
|
1652 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1653 |
-
font-weight: 700;
|
1654 |
-
font-size: 12px;
|
1655 |
-
line-height: 1.38;
|
1656 |
-
}
|
1657 |
-
|
1658 |
-
/* -------------------------------------------------------------------------
|
1659 |
-
* Heading: h3 for --viewport-medium
|
1660 |
-
* ------------------------------------------------------------------------- */
|
1661 |
-
|
1662 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-h3--min-medium {
|
1663 |
-
font-size: 28px;
|
1664 |
-
line-height: 1.42;
|
1665 |
-
}
|
1666 |
-
|
1667 |
-
/* -------------------------------------------------------------------------
|
1668 |
-
* Heading: h4 for --viewport-medium
|
1669 |
-
* ------------------------------------------------------------------------- */
|
1670 |
-
|
1671 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-h4--min-medium {
|
1672 |
-
font-size: 24px;
|
1673 |
-
line-height: 1.42;
|
1674 |
-
}
|
1675 |
-
|
1676 |
-
/* -------------------------------------------------------------------------
|
1677 |
-
* Heading: h5 for --viewport-medium
|
1678 |
-
* ------------------------------------------------------------------------- */
|
1679 |
-
|
1680 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-h5--min-medium {
|
1681 |
-
font-size: 18px;
|
1682 |
-
line-height: 1.5;
|
1683 |
-
}
|
1684 |
-
|
1685 |
-
/* -------------------------------------------------------------------------
|
1686 |
-
* Heading: h6 for --viewport-medium
|
1687 |
-
* ------------------------------------------------------------------------- */
|
1688 |
-
|
1689 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6--min-medium {
|
1690 |
-
font-size: 16px;
|
1691 |
-
line-height: 1.62;
|
1692 |
-
}
|
1693 |
-
|
1694 |
-
/* -------------------------------------------------------------------------
|
1695 |
-
* Heading: h7 for --viewport-medium
|
1696 |
-
* ------------------------------------------------------------------------- */
|
1697 |
-
|
1698 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-h7--min-medium {
|
1699 |
-
font-size: 14px;
|
1700 |
-
line-height: 1.62;
|
1701 |
-
}
|
1702 |
-
|
1703 |
-
/* -------------------------------------------------------------------------
|
1704 |
-
* Heading: alt style
|
1705 |
-
* ------------------------------------------------------------------------- */
|
1706 |
-
|
1707 |
-
.tribe-common .tribe-common-h--alt {
|
1708 |
-
font-weight: 400;
|
1709 |
-
}
|
1710 |
-
|
1711 |
-
/* -------------------------------------------------------------------------
|
1712 |
-
* Theme Overrides - Avada
|
1713 |
-
* ------------------------------------------------------------------------- */
|
1714 |
-
|
1715 |
-
/* -------------------------------------------------------------------------
|
1716 |
-
* Heading: h1
|
1717 |
-
* ------------------------------------------------------------------------- */
|
1718 |
-
|
1719 |
-
.tribe-theme-avada #main .tribe-common .tribe-common-h1 {
|
1720 |
-
color: #141827;
|
1721 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1722 |
-
font-weight: 700;
|
1723 |
-
font-size: 28px;
|
1724 |
-
line-height: 1.42;
|
1725 |
-
}
|
1726 |
-
|
1727 |
-
.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h1 {
|
1728 |
-
font-size: 42px;
|
1729 |
-
line-height: 1.38;
|
1730 |
-
}
|
1731 |
-
|
1732 |
-
/* -------------------------------------------------------------------------
|
1733 |
-
* Heading: h2
|
1734 |
-
* ------------------------------------------------------------------------- */
|
1735 |
-
|
1736 |
-
.tribe-theme-avada #main .tribe-common .tribe-common-h2 {
|
1737 |
-
color: #141827;
|
1738 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1739 |
-
font-weight: 700;
|
1740 |
-
font-size: 24px;
|
1741 |
-
line-height: 1.42;
|
1742 |
-
}
|
1743 |
-
|
1744 |
-
.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h2 {
|
1745 |
-
font-size: 32px;
|
1746 |
-
line-height: 1.38;
|
1747 |
-
}
|
1748 |
-
|
1749 |
-
/* -------------------------------------------------------------------------
|
1750 |
-
* Heading: h3
|
1751 |
-
* ------------------------------------------------------------------------- */
|
1752 |
-
|
1753 |
-
.tribe-theme-avada #main .tribe-common .tribe-common-h3 {
|
1754 |
-
color: #141827;
|
1755 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1756 |
-
font-weight: 700;
|
1757 |
-
font-size: 22px;
|
1758 |
-
line-height: 1.5;
|
1759 |
-
}
|
1760 |
-
|
1761 |
-
.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h3 {
|
1762 |
-
font-size: 28px;
|
1763 |
-
line-height: 1.42;
|
1764 |
-
}
|
1765 |
-
|
1766 |
-
/* -------------------------------------------------------------------------
|
1767 |
-
* Heading: h4
|
1768 |
-
* ------------------------------------------------------------------------- */
|
1769 |
-
|
1770 |
-
.tribe-theme-avada #main .tribe-common .tribe-common-h4 {
|
1771 |
-
color: #141827;
|
1772 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1773 |
-
font-weight: 700;
|
1774 |
-
font-size: 20px;
|
1775 |
-
line-height: 1.42;
|
1776 |
-
}
|
1777 |
-
|
1778 |
-
.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h4 {
|
1779 |
-
font-size: 24px;
|
1780 |
-
line-height: 1.42;
|
1781 |
-
}
|
1782 |
-
|
1783 |
-
/* -------------------------------------------------------------------------
|
1784 |
-
* Heading: h5
|
1785 |
-
* ------------------------------------------------------------------------- */
|
1786 |
-
|
1787 |
-
.tribe-theme-avada #main .tribe-common .tribe-common-h5 {
|
1788 |
-
color: #141827;
|
1789 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1790 |
-
font-weight: 700;
|
1791 |
-
font-size: 18px;
|
1792 |
-
line-height: 1.5;
|
1793 |
-
}
|
1794 |
-
|
1795 |
-
/* -------------------------------------------------------------------------
|
1796 |
-
* Heading: h6
|
1797 |
-
* ------------------------------------------------------------------------- */
|
1798 |
-
|
1799 |
-
.tribe-theme-avada #main .tribe-common .tribe-common-h6 {
|
1800 |
-
color: #141827;
|
1801 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1802 |
-
font-weight: 700;
|
1803 |
-
font-size: 16px;
|
1804 |
-
line-height: 1.5;
|
1805 |
-
}
|
1806 |
-
|
1807 |
-
.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h6 {
|
1808 |
-
font-size: 16px;
|
1809 |
-
line-height: 1.62;
|
1810 |
-
}
|
1811 |
-
|
1812 |
-
/* -------------------------------------------------------------------------
|
1813 |
-
* Heading: h7
|
1814 |
-
* ------------------------------------------------------------------------- */
|
1815 |
-
|
1816 |
-
.tribe-theme-avada #main .tribe-common .tribe-common-h7 {
|
1817 |
-
color: #141827;
|
1818 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1819 |
-
font-weight: 700;
|
1820 |
-
font-size: 14px;
|
1821 |
-
line-height: 1.62;
|
1822 |
-
}
|
1823 |
-
|
1824 |
-
/* -------------------------------------------------------------------------
|
1825 |
-
* Heading: h8
|
1826 |
-
* ------------------------------------------------------------------------- */
|
1827 |
-
|
1828 |
-
.tribe-theme-avada #main .tribe-common .tribe-common-h8 {
|
1829 |
-
color: #141827;
|
1830 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
1831 |
-
font-weight: 700;
|
1832 |
-
font-size: 12px;
|
1833 |
-
line-height: 1.38;
|
1834 |
-
}
|
1835 |
-
|
1836 |
-
/* -------------------------------------------------------------------------
|
1837 |
-
* Heading: h3 for --viewport-medium
|
1838 |
-
* ------------------------------------------------------------------------- */
|
1839 |
-
|
1840 |
-
.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h3--min-medium {
|
1841 |
-
font-size: 28px;
|
1842 |
-
line-height: 1.42;
|
1843 |
-
}
|
1844 |
-
|
1845 |
-
/* -------------------------------------------------------------------------
|
1846 |
-
* Heading: h4 for --viewport-medium
|
1847 |
-
* ------------------------------------------------------------------------- */
|
1848 |
-
|
1849 |
-
.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h4--min-medium {
|
1850 |
-
font-size: 24px;
|
1851 |
-
line-height: 1.42;
|
1852 |
-
}
|
1853 |
-
|
1854 |
-
/* -------------------------------------------------------------------------
|
1855 |
-
* Heading: h5 for --viewport-medium
|
1856 |
-
* ------------------------------------------------------------------------- */
|
1857 |
-
|
1858 |
-
.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h5--min-medium {
|
1859 |
-
font-size: 18px;
|
1860 |
-
line-height: 1.5;
|
1861 |
-
}
|
1862 |
-
|
1863 |
-
/* -------------------------------------------------------------------------
|
1864 |
-
* Heading: h6 for --viewport-medium
|
1865 |
-
* ------------------------------------------------------------------------- */
|
1866 |
-
|
1867 |
-
.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h6--min-medium {
|
1868 |
-
font-size: 16px;
|
1869 |
-
line-height: 1.62;
|
1870 |
-
}
|
1871 |
-
|
1872 |
-
/* -------------------------------------------------------------------------
|
1873 |
-
* Heading: h7 for --viewport-medium
|
1874 |
-
* ------------------------------------------------------------------------- */
|
1875 |
-
|
1876 |
-
.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h7--min-medium {
|
1877 |
-
font-size: 14px;
|
1878 |
-
line-height: 1.62;
|
1879 |
-
}
|
1880 |
-
|
1881 |
-
/* -------------------------------------------------------------------------
|
1882 |
-
* Heading: alt style
|
1883 |
-
* ------------------------------------------------------------------------- */
|
1884 |
-
|
1885 |
-
.tribe-theme-avada #main .tribe-common .tribe-common-h--alt {
|
1886 |
-
font-weight: 400;
|
1887 |
-
}
|
1888 |
-
|
1889 |
-
.tribe-common {
|
1890 |
-
/* -------------------------------------------------------------------------
|
1891 |
-
* Lists
|
1892 |
-
* ------------------------------------------------------------------------- */
|
1893 |
-
|
1894 |
-
/* -----------------------------------------------------------------------------
|
1895 |
-
*
|
1896 |
-
* Lists: Theme Overrides
|
1897 |
-
*
|
1898 |
-
* ----------------------------------------------------------------------------- */
|
1899 |
-
}
|
1900 |
-
|
1901 |
-
/* -------------------------------------------------------------------------
|
1902 |
-
* Button
|
1903 |
-
* ------------------------------------------------------------------------- */
|
1904 |
-
|
1905 |
-
.tribe-common button {
|
1906 |
-
background-color: transparent;
|
1907 |
-
border: none;
|
1908 |
-
}
|
1909 |
-
|
1910 |
-
.tribe-common button:hover,
|
1911 |
-
.tribe-common button:focus {
|
1912 |
-
background-color: transparent;
|
1913 |
-
}
|
1914 |
-
|
1915 |
-
/* -------------------------------------------------------------------------
|
1916 |
-
* Theme Overrides - Twenty Seventeen
|
1917 |
-
* ------------------------------------------------------------------------- */
|
1918 |
-
|
1919 |
-
.tribe-theme-twentyseventeen .tribe-common button:hover,
|
1920 |
-
.tribe-theme-twentyseventeen .tribe-common button:focus {
|
1921 |
-
background-color: transparent;
|
1922 |
-
}
|
1923 |
-
|
1924 |
-
/* -------------------------------------------------------------------------
|
1925 |
-
*
|
1926 |
-
* Button: Theme Overrides
|
1927 |
-
*
|
1928 |
-
* ------------------------------------------------------------------------- */
|
1929 |
-
|
1930 |
-
.tribe-theme-twentytwenty .tribe-common button {
|
1931 |
-
background-color: transparent;
|
1932 |
-
text-transform: inherit;
|
1933 |
-
}
|
1934 |
-
|
1935 |
-
.tribe-theme-twentytwenty .tribe-common button:hover,
|
1936 |
-
.tribe-theme-twentytwenty .tribe-common button:focus {
|
1937 |
-
text-decoration: none;
|
1938 |
-
}
|
1939 |
-
|
1940 |
-
/* .tribe-common { */
|
1941 |
-
|
1942 |
-
/* -----------------------------------------------------------------------------
|
1943 |
-
*
|
1944 |
-
* Layout: Global Content Container
|
1945 |
-
*
|
1946 |
-
* ----------------------------------------------------------------------------- */
|
1947 |
-
|
1948 |
-
/* } */
|
1949 |
-
|
1950 |
-
/* -------------------------------------------------------------------------
|
1951 |
-
* SVG Icons
|
1952 |
-
* ------------------------------------------------------------------------- */
|
1953 |
-
|
1954 |
-
.tribe-common .tribe-common-svgicon--featured {
|
1955 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h16v20l-7.902-5.122L0 20z' fill='%23334AFF'/%3E%3C/svg%3E");
|
1956 |
-
}
|
1957 |
-
|
1958 |
-
.tribe-common {
|
1959 |
-
/* -----------------------------------------------------------------------------
|
1960 |
-
*
|
1961 |
-
* Tables
|
1962 |
-
*
|
1963 |
-
* ----------------------------------------------------------------------------- */
|
1964 |
-
|
1965 |
-
/* -----------------------------------------------------------------------------
|
1966 |
-
* Tables: Theme Overrides
|
1967 |
-
* ----------------------------------------------------------------------------- */
|
1968 |
-
}
|
1969 |
-
|
1970 |
-
/* -----------------------------------------------------------------------------
|
1971 |
-
* Theme Overrides - Enfold
|
1972 |
-
* ----------------------------------------------------------------------------- */
|
1973 |
-
|
1974 |
-
.tribe-theme-enfold .tribe-common th {
|
1975 |
-
letter-spacing: 0;
|
1976 |
-
text-transform: none;
|
1977 |
-
}
|
1978 |
-
|
1979 |
-
/* Components */
|
1980 |
-
|
1981 |
-
/* -----------------------------------------------------------------------------
|
1982 |
-
*
|
1983 |
-
* Components Full
|
1984 |
-
*
|
1985 |
-
* This file is just a clearing-house.
|
1986 |
-
* Make partials (start with an underscore) for any actual css code.
|
1987 |
-
*
|
1988 |
-
* ----------------------------------------------------------------------------- */
|
1989 |
-
|
1990 |
-
/* Buttons */
|
1991 |
-
|
1992 |
-
.tribe-common {
|
1993 |
-
|
1994 |
-
/* -------------------------------------------------------------------------
|
1995 |
-
*
|
1996 |
-
* Button: Border - Theme Overrides
|
1997 |
-
*
|
1998 |
-
* ------------------------------------------------------------------------- */
|
1999 |
-
}
|
2000 |
-
|
2001 |
-
/* -----------------------------------------------------------------------------
|
2002 |
-
*
|
2003 |
-
* Button: Border
|
2004 |
-
*
|
2005 |
-
* Example:
|
2006 |
-
* <button class="tribe-common-c-btn-border">...</button>
|
2007 |
-
* <a href="#" class="tribe-common-c-btn-border">...</a>
|
2008 |
-
*
|
2009 |
-
* ----------------------------------------------------------------------------- */
|
2010 |
-
|
2011 |
-
.tribe-common .tribe-common-c-btn-border,
|
2012 |
-
.tribe-common a.tribe-common-c-btn-border {
|
2013 |
-
color: #141827;
|
2014 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
2015 |
-
font-size: 12px;
|
2016 |
-
line-height: 1.38;
|
2017 |
-
font-weight: 400;
|
2018 |
-
border: 0;
|
2019 |
-
cursor: pointer;
|
2020 |
-
display: inline-block;
|
2021 |
-
height: auto;
|
2022 |
-
padding: 0;
|
2023 |
-
text-decoration: none;
|
2024 |
-
width: auto;
|
2025 |
-
background-color: #FFFFFF;
|
2026 |
-
border: 1px solid #D5D5D5;
|
2027 |
-
border-radius: 4px;
|
2028 |
-
text-align: center;
|
2029 |
-
-webkit-transition: color 0.2s ease, border-color 0.2s ease;
|
2030 |
-
transition: color 0.2s ease, border-color 0.2s ease;
|
2031 |
-
|
2032 |
-
color: #5D5D5D;
|
2033 |
-
padding: 14px 20px 14px;
|
2034 |
-
}
|
2035 |
-
|
2036 |
-
.tribe-common .tribe-common-c-btn-border:hover,
|
2037 |
-
.tribe-common .tribe-common-c-btn-border:focus,
|
2038 |
-
.tribe-common a.tribe-common-c-btn-border:hover,
|
2039 |
-
.tribe-common a.tribe-common-c-btn-border:focus {
|
2040 |
-
background-color: #FFFFFF;
|
2041 |
-
}
|
2042 |
-
|
2043 |
-
.tribe-common .tribe-common-c-btn-border:active, .tribe-common a.tribe-common-c-btn-border:active {
|
2044 |
-
border-color: #141827;
|
2045 |
-
}
|
2046 |
-
|
2047 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn-border, .tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn-border {
|
2048 |
-
padding: 6px 15px;
|
2049 |
-
}
|
2050 |
-
|
2051 |
-
.tribe-common .tribe-common-c-btn-border:active,
|
2052 |
-
.tribe-common .tribe-common-c-btn-border:focus,
|
2053 |
-
.tribe-common .tribe-common-c-btn-border:hover,
|
2054 |
-
.tribe-common a.tribe-common-c-btn-border:active,
|
2055 |
-
.tribe-common a.tribe-common-c-btn-border:focus,
|
2056 |
-
.tribe-common a.tribe-common-c-btn-border:hover {
|
2057 |
-
color: #141827;
|
2058 |
-
}
|
2059 |
-
|
2060 |
-
.tribe-common .tribe-common-c-btn-border:disabled, .tribe-common a.tribe-common-c-btn-border:disabled {
|
2061 |
-
color: #D5D5D5
|
2062 |
-
}
|
2063 |
-
|
2064 |
-
/* -------------------------------------------------------------------------
|
2065 |
-
* Theme Overrides - Twenty Seventeen
|
2066 |
-
* ------------------------------------------------------------------------- */
|
2067 |
-
|
2068 |
-
.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border:hover {
|
2069 |
-
background-color: #FFFFFF;
|
2070 |
-
}
|
2071 |
-
|
2072 |
-
.tribe-common {
|
2073 |
-
|
2074 |
-
/* -----------------------------------------------------------------------------
|
2075 |
-
* Button: Icon Caret Left
|
2076 |
-
* ----------------------------------------------------------------------------- */
|
2077 |
-
|
2078 |
-
/* -----------------------------------------------------------------------------
|
2079 |
-
* Button: Icon Caret Right
|
2080 |
-
* ----------------------------------------------------------------------------- */
|
2081 |
-
|
2082 |
-
/* -----------------------------------------------------------------------------
|
2083 |
-
* Button: Icon Filters
|
2084 |
-
* ----------------------------------------------------------------------------- */
|
2085 |
-
|
2086 |
-
/* -----------------------------------------------------------------------------
|
2087 |
-
* Button: Icon Search
|
2088 |
-
* ----------------------------------------------------------------------------- */
|
2089 |
-
|
2090 |
-
/* -------------------------------------------------------------------------
|
2091 |
-
*
|
2092 |
-
* Button: Icon Border - Theme Overrides
|
2093 |
-
*
|
2094 |
-
* ------------------------------------------------------------------------- */
|
2095 |
-
}
|
2096 |
-
|
2097 |
-
/* -----------------------------------------------------------------------------
|
2098 |
-
*
|
2099 |
-
* Button: Icon
|
2100 |
-
*
|
2101 |
-
* Example:
|
2102 |
-
* <button class="tribe-common-c-btn-icon tribe-common-c-btn-icon--filter">...</button>
|
2103 |
-
* <a href="#" class="tribe-common-c-btn-icon tribe-common-c-btn-icon--filter">...</a>
|
2104 |
-
*
|
2105 |
-
* ----------------------------------------------------------------------------- */
|
2106 |
-
|
2107 |
-
.tribe-common .tribe-common-c-btn-icon {
|
2108 |
-
border: 0;
|
2109 |
-
cursor: pointer;
|
2110 |
-
display: inline-block;
|
2111 |
-
height: auto;
|
2112 |
-
padding: 0;
|
2113 |
-
text-decoration: none;
|
2114 |
-
width: auto;
|
2115 |
-
}
|
2116 |
-
|
2117 |
-
/* -----------------------------------------------------------------------------
|
2118 |
-
*
|
2119 |
-
* Button: Icon Border
|
2120 |
-
*
|
2121 |
-
* Example:
|
2122 |
-
* <button class="tribe-common-c-btn-icon tribe-common-c-btn-icon--border tribe-common-c-btn-icon--filter">...</button>
|
2123 |
-
* <a href="#" class="tribe-common-c-btn-icon tribe-common-c-btn-icon--border tribe-common-c-btn-icon--filter">...</a>
|
2124 |
-
*
|
2125 |
-
* ----------------------------------------------------------------------------- */
|
2126 |
-
|
2127 |
-
.tribe-common .tribe-common-c-btn-icon--border {
|
2128 |
-
background-color: #FFFFFF;
|
2129 |
-
border: 1px solid #D5D5D5;
|
2130 |
-
-webkit-box-align: center;
|
2131 |
-
align-items: center;
|
2132 |
-
display: -webkit-inline-box;
|
2133 |
-
display: inline-flex;
|
2134 |
-
height: 56px;
|
2135 |
-
-webkit-box-pack: center;
|
2136 |
-
justify-content: center;
|
2137 |
-
-webkit-transition: none;
|
2138 |
-
transition: none;
|
2139 |
-
width: 56px;
|
2140 |
-
}
|
2141 |
-
|
2142 |
-
.tribe-common .tribe-common-c-btn-icon--border:hover,
|
2143 |
-
.tribe-common .tribe-common-c-btn-icon--border:focus {
|
2144 |
-
background-color: #FFFFFF;
|
2145 |
-
}
|
2146 |
-
|
2147 |
-
.tribe-common .tribe-common-c-btn-icon--border:active {
|
2148 |
-
border-color: #141827;
|
2149 |
-
}
|
2150 |
-
|
2151 |
-
/* -------------------------------------------------------------------------
|
2152 |
-
* Theme Overrides - Twenty Seventeen
|
2153 |
-
* ------------------------------------------------------------------------- */
|
2154 |
-
|
2155 |
-
.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-icon--border:hover {
|
2156 |
-
background-color: #FFFFFF;
|
2157 |
-
}
|
2158 |
-
|
2159 |
-
.tribe-common {
|
2160 |
-
|
2161 |
-
/* -------------------------------------------------------------------------
|
2162 |
-
*
|
2163 |
-
* Button: Solid - Theme Overrides
|
2164 |
-
*
|
2165 |
-
* ------------------------------------------------------------------------- */
|
2166 |
-
}
|
2167 |
-
|
2168 |
-
/* -----------------------------------------------------------------------------
|
2169 |
-
*
|
2170 |
-
* Button: Solid
|
2171 |
-
*
|
2172 |
-
* Example:
|
2173 |
-
* <button class="tribe-common-c-btn">...</button>
|
2174 |
-
* <a href="#" class="tribe-common-c-btn">...</a>
|
2175 |
-
*
|
2176 |
-
* ----------------------------------------------------------------------------- */
|
2177 |
-
|
2178 |
-
.tribe-common .tribe-common-c-btn,
|
2179 |
-
.tribe-common a.tribe-common-c-btn {
|
2180 |
-
color: #141827;
|
2181 |
-
font-family: "Helvetica Neue", Helvetica, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
|
2182 |
-
font-size: 14px;
|
2183 |
-
line-height: 1.62;
|
2184 |
-
font-weight: 400;
|
2185 |
-
font-weight: 700;
|
2186 |
-
border: 0;
|
2187 |
-
cursor: pointer;
|
2188 |
-
display: inline-block;
|
2189 |
-
height: auto;
|
2190 |
-
padding: 0;
|
2191 |
-
text-decoration: none;
|
2192 |
-
width: auto;
|
2193 |
-
border-radius: 4px;
|
2194 |
-
color: #FFFFFF;
|
2195 |
-
text-align: center;
|
2196 |
-
-webkit-transition: background-color 0.2s ease;
|
2197 |
-
transition: background-color 0.2s ease;
|
2198 |
-
|
2199 |
-
background-color: #334AFF;
|
2200 |
-
padding: 11px 20px 11px;
|
2201 |
-
width: 100%;
|
2202 |
-
}
|
2203 |
-
|
2204 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn, .tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn {
|
2205 |
-
width: auto;
|
2206 |
-
}
|
2207 |
-
|
2208 |
-
.tribe-common .tribe-common-c-btn:focus,
|
2209 |
-
.tribe-common .tribe-common-c-btn:hover,
|
2210 |
-
.tribe-common a.tribe-common-c-btn:focus,
|
2211 |
-
.tribe-common a.tribe-common-c-btn:hover {
|
2212 |
-
background-color: rgba(51,74,255, 0.8);
|
2213 |
-
}
|
2214 |
-
|
2215 |
-
.tribe-common .tribe-common-c-btn:active, .tribe-common a.tribe-common-c-btn:active {
|
2216 |
-
background-color: rgba(51,74,255, 0.9);
|
2217 |
-
}
|
2218 |
-
|
2219 |
-
.tribe-common .tribe-common-c-btn:disabled, .tribe-common a.tribe-common-c-btn:disabled {
|
2220 |
-
background-color: rgba(51,74,255, 0.07);
|
2221 |
-
}
|
2222 |
-
|
2223 |
-
/* -------------------------------------------------------------------------
|
2224 |
-
* Theme Overrides - Twenty Seventeen
|
2225 |
-
* ------------------------------------------------------------------------- */
|
2226 |
-
|
2227 |
-
.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn:hover,
|
2228 |
-
.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn:focus {
|
2229 |
-
background-color: rgba(51,74,255, 0.8);
|
2230 |
-
color: #FFFFFF;
|
2231 |
-
}
|
2232 |
-
|
2233 |
-
/* -------------------------------------------------------------------------
|
2234 |
-
* Theme Overrides - Twenty Twenty
|
2235 |
-
* ------------------------------------------------------------------------- */
|
2236 |
-
|
2237 |
-
.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn {
|
2238 |
-
background-color: #334AFF;
|
2239 |
-
}
|
2240 |
-
|
2241 |
-
.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn:hover,
|
2242 |
-
.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn:focus {
|
2243 |
-
background-color: rgba(51,74,255, 0.8);
|
2244 |
-
color: #FFFFFF;
|
2245 |
-
}
|
2246 |
-
|
2247 |
-
/* .tribe-common { */
|
2248 |
-
|
2249 |
-
/* -----------------------------------------------------------------------------
|
2250 |
-
*
|
2251 |
-
* Component: Image
|
2252 |
-
*
|
2253 |
-
* Example (Regular):
|
2254 |
-
* <img src="#" alt="" class="tribe-common-c-image" />
|
2255 |
-
*
|
2256 |
-
* Example (Background):
|
2257 |
-
* <div class="tribe-common-c-image tribe-common-c-image--bg">
|
2258 |
-
* <div class="tribe-common-c-image__bg"></div>
|
2259 |
-
* </div>
|
2260 |
-
*
|
2261 |
-
* ----------------------------------------------------------------------------- */
|
2262 |
-
|
2263 |
-
/* } */
|
2264 |
-
|
2265 |
-
/* -----------------------------------------------------------------------------
|
2266 |
-
*
|
2267 |
-
* Component: Loader
|
2268 |
-
*
|
2269 |
-
*
|
2270 |
-
* Example:
|
2271 |
-
* <div class="tribe-events-view-loader__dots tribe-common-c-loader">
|
2272 |
-
* <div class="tribe-common-c-loader__dot tribe-common-c-loader__dot--first"></div>
|
2273 |
-
* <div class="tribe-common-c-loader__dot tribe-common-c-loader__dot--second"></div>
|
2274 |
-
* <div class="tribe-common-c-loader__dot tribe-common-c-loader__dot--third"></div>
|
2275 |
-
* </div>
|
2276 |
-
*
|
2277 |
-
* ----------------------------------------------------------------------------- */
|
2278 |
-
|
2279 |
-
.tribe-common .tribe-common-c-loader__dot {
|
2280 |
-
-webkit-animation-name: tribe-common-c-loader-bounce;
|
2281 |
-
animation-name: tribe-common-c-loader-bounce;
|
2282 |
-
-webkit-animation-duration: 2.24s;
|
2283 |
-
animation-duration: 2.24s;
|
2284 |
-
-webkit-animation-iteration-count: infinite;
|
2285 |
-
animation-iteration-count: infinite;
|
2286 |
-
-webkit-animation-direction: normal;
|
2287 |
-
animation-direction: normal;
|
2288 |
-
}
|
2289 |
-
|
2290 |
-
.tribe-common .tribe-common-c-loader__dot--first {
|
2291 |
-
-webkit-animation-delay: 0.45s;
|
2292 |
-
animation-delay: 0.45s;
|
2293 |
-
}
|
2294 |
-
|
2295 |
-
.tribe-common .tribe-common-c-loader__dot--second {
|
2296 |
-
-webkit-animation-delay: 1.05s;
|
2297 |
-
animation-delay: 1.05s;
|
2298 |
-
}
|
2299 |
-
|
2300 |
-
.tribe-common .tribe-common-c-loader__dot--third {
|
2301 |
-
-webkit-animation-delay: 1.35s;
|
2302 |
-
animation-delay: 1.35s;
|
2303 |
-
}
|
2304 |
-
|
2305 |
-
@-webkit-keyframes tribe-common-c-loader-bounce {
|
2306 |
-
0% {}
|
2307 |
-
|
2308 |
-
50% { background-color: #334AFF; }
|
2309 |
-
|
2310 |
-
100% {}
|
2311 |
-
}
|
2312 |
-
|
2313 |
-
@keyframes tribe-common-c-loader-bounce {
|
2314 |
-
0% {}
|
2315 |
-
|
2316 |
-
50% { background-color: #334AFF; }
|
2317 |
-
|
2318 |
-
100% {}
|
2319 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/resources/css/common-full.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.tribe-common figure{line-height:0}.tribe-common figcaption{line-height:normal}.tribe-common a{background-color:transparent;-webkit-text-decoration-skip:objects}.tribe-common abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.tribe-common code,.tribe-common kbd,.tribe-common pre,.tribe-common samp{font-family:monospace;font-size:1em}.tribe-common b,.tribe-common strong{font-weight:inherit;font-weight:bolder}.tribe-common dfn{font-style:italic}.tribe-common mark{background-color:#ff0;color:#000}.tribe-common small{font-size:80%}.tribe-common sub,.tribe-common sup{font-size:75%;line-height:0}.tribe-common hr{border:0;height:0}.tribe-common button,.tribe-common input[type=button],.tribe-common input[type=email],.tribe-common input[type=password],.tribe-common input[type=reset],.tribe-common input[type=search],.tribe-common input[type=submit],.tribe-common input[type=text],.tribe-common input[type=url],.tribe-common textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}.tribe-common button,.tribe-common input,.tribe-common optgroup,.tribe-common select,.tribe-common textarea{color:inherit;font:inherit;line-height:normal;-webkit-font-smoothing:antialiased}.tribe-common button,.tribe-common input,.tribe-common select,.tribe-common textarea{outline:0;border-radius:0}.tribe-common select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.tribe-common optgroup{font-weight:700}.tribe-common h1,.tribe-common h2,.tribe-common h3,.tribe-common h4,.tribe-common h5,.tribe-common h6,.tribe-common p{font-weight:400;text-rendering:optimizeLegibility}#top .main_color .tribe-common button[disabled],#top.tribe-theme-enfold .tribe-common button[disabled]{opacity:1}.tribe-theme-twentynineteen .tribe-common h1:before,.tribe-theme-twentynineteen .tribe-common h2:before{content:none}.tribe-theme-twentynineteen .tribe-common button,.tribe-theme-twentynineteen .tribe-common input[type=button],.tribe-theme-twentynineteen .tribe-common input[type=reset],.tribe-theme-twentynineteen .tribe-common input[type=submit]{outline:none}.tribe-theme-twentynineteen .tribe-common td,.tribe-theme-twentynineteen .tribe-common th{word-break:normal}.tribe-theme-twentyseventeen .tribe-common h5{letter-spacing:normal;text-transform:none}.tribe-theme-twentyseventeen .tribe-common input[type=text]{border-radius:0}.tribe-theme-twentytwenty .tribe-common{background-color:#fff;letter-spacing:normal}.tribe-theme-twentytwenty .tribe-common input,.tribe-theme-twentytwenty .tribe-common textarea{letter-spacing:normal}.tribe-theme-twentytwenty .tribe-common *{word-break:normal}.tribe-common .tribe-common-form-control-checkbox,.tribe-common .tribe-common-form-control-radio{line-height:0}.tribe-common .tribe-common-form-control-checkbox__label,.tribe-common .tribe-common-form-control-radio__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;color:#5d5d5d}.tribe-common .tribe-common-form-control-checkbox__input,.tribe-common .tribe-common-form-control-radio__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #141827;height:20px;position:relative;width:20px}.tribe-common .tribe-common-form-control-checkbox__input:active,.tribe-common .tribe-common-form-control-checkbox__input:focus,.tribe-common .tribe-common-form-control-checkbox__input:hover,.tribe-common .tribe-common-form-control-radio__input:active,.tribe-common .tribe-common-form-control-radio__input:focus,.tribe-common .tribe-common-form-control-radio__input:hover{border:1px solid #141827}.tribe-common .tribe-common-form-control-checkbox__input:checked,.tribe-common .tribe-common-form-control-radio__input:checked{background-color:#141827}.tribe-common .tribe-common-form-control-checkbox__input:checked:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='9' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6.1L3.9 6.8 1.4 4.3c-.1-.1-.3-.1-.4 0l-.8.8c-.1.1-.1.3 0 .4l3.4 3.4c.2.1.4.1.5 0l7.7-7.7c.1-.1.1-.3 0-.4L11 .1c-.1-.1-.3-.1-.4 0z' fill='%23FFF'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;content:"";display:block;height:9px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:12px}.tribe-common .tribe-common-form-control-radio__input{border-radius:50%}.tribe-common .tribe-common-form-control-radio__input:checked:before{background-color:#fff;border-radius:50%;content:"";display:block;height:8px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}#top .main_color .tribe-common .tribe-common-form-control-checkbox__label,#top .main_color .tribe-common .tribe-common-form-control-radio__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-checkbox__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-radio__label{font-weight:400;font-size:14px}.tribe-common .tribe-common-form-control-slider{line-height:0}.tribe-common .tribe-common-form-control-slider__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0}.tribe-common .tribe-common-form-control-slider__input::-webkit-slider-runnable-track{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:background-color .2s ease;background-color:#334aff}.tribe-common .tribe-common-form-control-slider__input::-moz-range-track{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:background-color .2s ease;background-color:#334aff}.tribe-common .tribe-common-form-control-slider__input::-ms-track{background-color:transparent;border-color:transparent;border-width:5px 0;color:transparent;height:10px}.tribe-common .tribe-common-form-control-slider__input::-ms-fill-lower,.tribe-common .tribe-common-form-control-slider__input::-ms-fill-upper{background-color:#334aff;border-radius:10px}.tribe-common .tribe-common-form-control-slider__input::-webkit-slider-thumb{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px;-webkit-appearance:none;appearance:none}.tribe-common .tribe-common-form-control-slider__input::-moz-range-thumb{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px}.tribe-common .tribe-common-form-control-slider__input::-ms-thumb{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px;box-shadow:none;margin-top:-1px}.tribe-common .tribe-common-form-control-slider__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;color:#5d5d5d}#top .main_color .tribe-common .tribe-common-form-control-slider__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-slider__label{font-weight:400;font-size:12px}.tribe-common .tribe-common-form-control-text__input{font-size:16px;border:0;border-bottom:1px solid #d5d5d5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input,.tribe-common .tribe-common-form-control-text__input{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;line-height:1.62;font-weight:400}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input{font-size:14px;border:0}.tribe-common .tribe-common-form-control-text__input::-webkit-input-placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input::-moz-placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input:-ms-input-placeholder,.tribe-common .tribe-common-form-control-text__input::-ms-input-placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input::placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input:focus{border-bottom-color:#141827;outline:0}.tribe-theme-twentyseventeen .tribe-common .tribe-common-form-control-text__input{color:#141827}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-text__input{line-height:inherit}#top .main_color .tribe-common .tribe-common-form-control-text__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:16px;line-height:1.62;font-weight:400;background:#fff;border:0;border-bottom:1px solid #d5d5d5}#top .main_color .tribe-common .tribe-common-form-control-text__input:focus,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input:focus{border-bottom-color:#141827;box-shadow:none}#top .main_color .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input,#top.tribe-theme-enfold .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;border:0}.tribe-common .tribe-common-form-control-toggle{line-height:0}.tribe-common .tribe-common-form-control-toggle__input{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:background-color .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#d5d5d5;width:40px}.tribe-common .tribe-common-form-control-toggle__input:after{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;content:"";left:0;position:absolute;top:-5px;transition:transform .2s ease}.tribe-common .tribe-common-form-control-toggle__input:checked{background-color:#334aff}.tribe-common .tribe-common-form-control-toggle__input:checked:after{transform:translateX(20px)}.tribe-common .tribe-common-form-control-toggle__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;color:#5d5d5d}#top .main_color .tribe-common .tribe-common-form-control-toggle__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-toggle__label{font-weight:400;font-size:12px}.tribe-common a,.tribe-common a:active,.tribe-common a:focus,.tribe-common a:hover,.tribe-common a:visited{color:#141827;outline:0;text-decoration:none}.tribe-theme-twentyseventeen .tribe-common a{box-shadow:none}.tribe-theme-twentyseventeen .tribe-common a:focus,.tribe-theme-twentyseventeen .tribe-common a:hover{box-shadow:none;color:#141827}.tribe-theme-twentynineteen .entry .tribe-common a,.tribe-theme-twentynineteen .tribe-common a{text-decoration:none}.tribe-common .tribe-common-anchor{border-bottom:2px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-anchor:active,.tribe-common .tribe-common-anchor:focus,.tribe-common .tribe-common-anchor:hover{border-bottom:2px solid #141827}.tribe-common .tribe-common-anchor-alt{border-bottom:2px solid #334aff;color:#141827;transition:color .2s ease}.tribe-common .tribe-common-anchor-alt:active,.tribe-common .tribe-common-anchor-alt:focus,.tribe-common .tribe-common-anchor-alt:hover{border-bottom:2px solid #334aff;color:#334aff}.tribe-common .tribe-common-anchor-thin{border-bottom:1px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-anchor-thin:active,.tribe-common .tribe-common-anchor-thin:focus,.tribe-common .tribe-common-anchor-thin:hover{border-bottom:1px solid #141827}.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-alt:hover{color:#334aff}.tribe-common .tribe-common-b1{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1{font-size:16px;line-height:1.62}.tribe-common .tribe-common-b1--bold{font-weight:700}.tribe-common .tribe-common-b2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.38}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b2{font-size:14px;line-height:1.62}.tribe-common .tribe-common-b2--bold{font-weight:700}.tribe-common .tribe-common-b3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:11px;font-weight:400;line-height:1.5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b3{font-size:12px;line-height:1.38}.tribe-common .tribe-common-b3--bold{font-weight:700}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1--min-medium{font-size:16px;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b2--min-medium{font-size:14px;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b3--min-medium{font-size:12px;line-height:1.38}.tribe-common .tribe-common-cta{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;font-weight:700;border-bottom:2px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-cta:active,.tribe-common .tribe-common-cta:focus,.tribe-common .tribe-common-cta:hover{border-bottom:2px solid #141827}.tribe-common .tribe-common-cta--alt{border-bottom:2px solid #334aff;color:#141827;transition:color .2s ease}.tribe-common .tribe-common-cta--alt:active,.tribe-common .tribe-common-cta--alt:focus,.tribe-common .tribe-common-cta--alt:hover{border-bottom:2px solid #334aff;color:#334aff}.tribe-common .tribe-common-cta--thin-alt{border-bottom:1px solid #334aff;color:#141827;transition:color .2s ease}.tribe-common .tribe-common-cta--thin-alt:active,.tribe-common .tribe-common-cta--thin-alt:focus,.tribe-common .tribe-common-cta--thin-alt:hover{border-bottom:1px solid #334aff;color:#334aff}.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--alt:hover,.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--thin-alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--thin-alt:hover{color:#334aff}.tribe-common .tribe-common-h1{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:28px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h1{font-size:42px;line-height:1.38}.tribe-common .tribe-common-h2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:24px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h2{font-size:32px;line-height:1.38}.tribe-common .tribe-common-h3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:22px;line-height:1.5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h3{font-size:28px;line-height:1.42}.tribe-common .tribe-common-h4{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:20px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h4{font-size:24px;line-height:1.42}.tribe-common .tribe-common-h5{font-size:18px}.tribe-common .tribe-common-h5,.tribe-common .tribe-common-h6{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;line-height:1.5}.tribe-common .tribe-common-h6{font-size:16px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6{font-size:16px;line-height:1.62}.tribe-common .tribe-common-h7{font-size:14px;line-height:1.62}.tribe-common .tribe-common-h7,.tribe-common .tribe-common-h8{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700}.tribe-common .tribe-common-h8{font-size:12px;line-height:1.38}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h3--min-medium{font-size:28px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h4--min-medium{font-size:24px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h5--min-medium{font-size:18px;line-height:1.5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6--min-medium{font-size:16px;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h7--min-medium{font-size:14px;line-height:1.62}.tribe-common .tribe-common-h--alt{font-weight:400}.tribe-theme-avada #main .tribe-common .tribe-common-h1{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:28px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h1{font-size:42px;line-height:1.38}.tribe-theme-avada #main .tribe-common .tribe-common-h2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:24px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h2{font-size:32px;line-height:1.38}.tribe-theme-avada #main .tribe-common .tribe-common-h3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:22px;line-height:1.5}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h3{font-size:28px;line-height:1.42}.tribe-theme-avada #main .tribe-common .tribe-common-h4{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:20px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h4{font-size:24px;line-height:1.42}.tribe-theme-avada #main .tribe-common .tribe-common-h5{font-size:18px}.tribe-theme-avada #main .tribe-common .tribe-common-h5,.tribe-theme-avada #main .tribe-common .tribe-common-h6{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;line-height:1.5}.tribe-theme-avada #main .tribe-common .tribe-common-h6{font-size:16px}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h6{font-size:16px;line-height:1.62}.tribe-theme-avada #main .tribe-common .tribe-common-h7{font-size:14px;line-height:1.62}.tribe-theme-avada #main .tribe-common .tribe-common-h7,.tribe-theme-avada #main .tribe-common .tribe-common-h8{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700}.tribe-theme-avada #main .tribe-common .tribe-common-h8{font-size:12px;line-height:1.38}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h3--min-medium{font-size:28px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h4--min-medium{font-size:24px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h5--min-medium{font-size:18px;line-height:1.5}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h6--min-medium{font-size:16px;line-height:1.62}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h7--min-medium{font-size:14px;line-height:1.62}.tribe-theme-avada #main .tribe-common .tribe-common-h--alt{font-weight:400}.tribe-common button{border:none}.tribe-common button,.tribe-common button:focus,.tribe-common button:hover,.tribe-theme-twentyseventeen .tribe-common button:focus,.tribe-theme-twentyseventeen .tribe-common button:hover{background-color:transparent}.tribe-theme-twentytwenty .tribe-common button{background-color:transparent;text-transform:inherit}.tribe-theme-twentytwenty .tribe-common button:focus,.tribe-theme-twentytwenty .tribe-common button:hover{text-decoration:none}.tribe-common .tribe-common-svgicon--featured{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h16v20l-7.902-5.122L0 20z' fill='%23334AFF'/%3E%3C/svg%3E")}.tribe-theme-enfold .tribe-common th{letter-spacing:0;text-transform:none}.tribe-common .tribe-common-c-btn-border,.tribe-common a.tribe-common-c-btn-border{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;background-color:#fff;border:1px solid #d5d5d5;border-radius:4px;text-align:center;transition:color .2s ease,border-color .2s ease;color:#5d5d5d;padding:14px 20px}.tribe-common .tribe-common-c-btn-border:focus,.tribe-common .tribe-common-c-btn-border:hover,.tribe-common a.tribe-common-c-btn-border:focus,.tribe-common a.tribe-common-c-btn-border:hover{background-color:#fff}.tribe-common .tribe-common-c-btn-border:active,.tribe-common a.tribe-common-c-btn-border:active{border-color:#141827}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn-border,.tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn-border{padding:6px 15px}.tribe-common .tribe-common-c-btn-border:active,.tribe-common .tribe-common-c-btn-border:focus,.tribe-common .tribe-common-c-btn-border:hover,.tribe-common a.tribe-common-c-btn-border:active,.tribe-common a.tribe-common-c-btn-border:focus,.tribe-common a.tribe-common-c-btn-border:hover{color:#141827}.tribe-common .tribe-common-c-btn-border:disabled,.tribe-common a.tribe-common-c-btn-border:disabled{color:#d5d5d5}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border:hover{background-color:#fff}.tribe-common .tribe-common-c-btn-icon{border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto}.tribe-common .tribe-common-c-btn-icon--border{background-color:#fff;border:1px solid #d5d5d5;align-items:center;display:inline-flex;height:56px;justify-content:center;transition:none;width:56px}.tribe-common .tribe-common-c-btn-icon--border:focus,.tribe-common .tribe-common-c-btn-icon--border:hover{background-color:#fff}.tribe-common .tribe-common-c-btn-icon--border:active{border-color:#141827}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-icon--border:hover{background-color:#fff}.tribe-common .tribe-common-c-btn,.tribe-common a.tribe-common-c-btn{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;border-radius:4px;color:#fff;text-align:center;transition:background-color .2s ease;background-color:#334aff;padding:11px 20px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn,.tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn{width:auto}.tribe-common .tribe-common-c-btn:focus,.tribe-common .tribe-common-c-btn:hover,.tribe-common a.tribe-common-c-btn:focus,.tribe-common a.tribe-common-c-btn:hover{background-color:rgba(51,74,255,.8)}.tribe-common .tribe-common-c-btn:active,.tribe-common a.tribe-common-c-btn:active{background-color:rgba(51,74,255,.9)}.tribe-common .tribe-common-c-btn:disabled,.tribe-common a.tribe-common-c-btn:disabled{background-color:rgba(51,74,255,.07)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn:hover{background-color:rgba(51,74,255,.8);color:#fff}.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn{background-color:#334aff}.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn:focus,.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn:hover{background-color:rgba(51,74,255,.8);color:#fff}.tribe-common .tribe-common-c-loader__dot{animation-name:a;animation-duration:2.24s;animation-iteration-count:infinite;animation-direction:normal}.tribe-common .tribe-common-c-loader__dot--first{animation-delay:.45s}.tribe-common .tribe-common-c-loader__dot--second{animation-delay:1.05s}.tribe-common .tribe-common-c-loader__dot--third{animation-delay:1.35s}@keyframes a{50%{background-color:#334aff}}
|
1 |
+
.tribe-common figure{line-height:0}.tribe-common figcaption{line-height:normal}.tribe-common a{background-color:transparent;-webkit-text-decoration-skip:objects}.tribe-common abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.tribe-common code,.tribe-common kbd,.tribe-common pre,.tribe-common samp{font-family:monospace;font-size:1em}.tribe-common b,.tribe-common strong{font-weight:inherit;font-weight:bolder}.tribe-common dfn{font-style:italic}.tribe-common mark{background-color:#ff0;color:#000}.tribe-common small{font-size:80%}.tribe-common sub,.tribe-common sup{font-size:75%;line-height:0}.tribe-common hr{border:0;height:0}.tribe-common button,.tribe-common input[type=button],.tribe-common input[type=email],.tribe-common input[type=password],.tribe-common input[type=reset],.tribe-common input[type=search],.tribe-common input[type=submit],.tribe-common input[type=text],.tribe-common input[type=url],.tribe-common textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}.tribe-common button,.tribe-common input,.tribe-common optgroup,.tribe-common select,.tribe-common textarea{color:inherit;font:inherit;line-height:normal;-webkit-font-smoothing:antialiased}.tribe-common button,.tribe-common input,.tribe-common select,.tribe-common textarea{outline:0;border-radius:0}.tribe-common select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.tribe-common optgroup{font-weight:700}.tribe-common h1,.tribe-common h2,.tribe-common h3,.tribe-common h4,.tribe-common h5,.tribe-common h6,.tribe-common p{font-weight:400;text-rendering:optimizeLegibility}#top .main_color .tribe-common button[disabled],#top.tribe-theme-enfold .tribe-common button[disabled]{opacity:1}.tribe-theme-twentynineteen .tribe-common h1:before,.tribe-theme-twentynineteen .tribe-common h2:before{content:none}.tribe-theme-twentynineteen .tribe-common button,.tribe-theme-twentynineteen .tribe-common input[type=button],.tribe-theme-twentynineteen .tribe-common input[type=reset],.tribe-theme-twentynineteen .tribe-common input[type=submit]{outline:none}.tribe-theme-twentynineteen .tribe-common td,.tribe-theme-twentynineteen .tribe-common th{word-break:normal}.tribe-theme-twentyseventeen .tribe-common h5{letter-spacing:normal;text-transform:none}.tribe-theme-twentyseventeen .tribe-common input[type=text]{border-radius:0}.tribe-theme-twentytwenty .tribe-common{background-color:#fff;letter-spacing:normal}.tribe-theme-twentytwenty .tribe-common input,.tribe-theme-twentytwenty .tribe-common textarea{letter-spacing:normal}.tribe-theme-twentytwenty .tribe-common *{word-break:normal}.tribe-common .tribe-common-form-control-checkbox,.tribe-common .tribe-common-form-control-radio{line-height:0}.tribe-common .tribe-common-form-control-checkbox__label,.tribe-common .tribe-common-form-control-radio__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;color:#5d5d5d}.tribe-common .tribe-common-form-control-checkbox__input,.tribe-common .tribe-common-form-control-radio__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border:1px solid #141827;height:20px;position:relative;width:20px}.tribe-common .tribe-common-form-control-checkbox__input:active,.tribe-common .tribe-common-form-control-checkbox__input:focus,.tribe-common .tribe-common-form-control-checkbox__input:hover,.tribe-common .tribe-common-form-control-radio__input:active,.tribe-common .tribe-common-form-control-radio__input:focus,.tribe-common .tribe-common-form-control-radio__input:hover{border:1px solid #141827}.tribe-common .tribe-common-form-control-checkbox__input:checked,.tribe-common .tribe-common-form-control-radio__input:checked{background-color:#141827}.tribe-common .tribe-common-form-control-checkbox__input:checked:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='9' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6.1L3.9 6.8 1.4 4.3c-.1-.1-.3-.1-.4 0l-.8.8c-.1.1-.1.3 0 .4l3.4 3.4c.2.1.4.1.5 0l7.7-7.7c.1-.1.1-.3 0-.4L11 .1c-.1-.1-.3-.1-.4 0z' fill='%23FFF'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;content:"";display:block;height:9px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:12px}.tribe-common .tribe-common-form-control-radio__input{border-radius:50%}.tribe-common .tribe-common-form-control-radio__input:checked:before{background-color:#fff;border-radius:50%;content:"";display:block;height:8px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:8px}#top .main_color .tribe-common .tribe-common-form-control-checkbox__label,#top .main_color .tribe-common .tribe-common-form-control-radio__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-checkbox__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-radio__label{font-weight:400;font-size:14px}.tribe-common .tribe-common-form-control-slider{line-height:0}.tribe-common .tribe-common-form-control-slider__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:0}.tribe-common .tribe-common-form-control-slider__input::-webkit-slider-runnable-track{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:background-color .2s ease;background-color:#334aff}.tribe-common .tribe-common-form-control-slider__input::-moz-range-track{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:background-color .2s ease;background-color:#334aff}.tribe-common .tribe-common-form-control-slider__input::-ms-track{background-color:transparent;border-color:transparent;border-width:5px 0;color:transparent;height:10px}.tribe-common .tribe-common-form-control-slider__input::-ms-fill-lower,.tribe-common .tribe-common-form-control-slider__input::-ms-fill-upper{background-color:#334aff;border-radius:10px}.tribe-common .tribe-common-form-control-slider__input::-webkit-slider-thumb{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px;-webkit-appearance:none;appearance:none}.tribe-common .tribe-common-form-control-slider__input::-moz-range-thumb{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px}.tribe-common .tribe-common-form-control-slider__input::-ms-thumb{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;margin-top:-5px;box-shadow:none;margin-top:-1px}.tribe-common .tribe-common-form-control-slider__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;color:#5d5d5d}#top .main_color .tribe-common .tribe-common-form-control-slider__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-slider__label{font-weight:400;font-size:12px}.tribe-common .tribe-common-form-control-text__input{font-size:16px;border:0;border-bottom:1px solid #d5d5d5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input,.tribe-common .tribe-common-form-control-text__input{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;line-height:1.62;font-weight:400}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input{font-size:14px;border:0}.tribe-common .tribe-common-form-control-text__input::-webkit-input-placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input::-moz-placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input:-ms-input-placeholder,.tribe-common .tribe-common-form-control-text__input::-ms-input-placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input::placeholder{color:#5d5d5d;font-style:normal;opacity:1}.tribe-common .tribe-common-form-control-text__input:focus{border-bottom-color:#141827;outline:0}.tribe-theme-twentyseventeen .tribe-common .tribe-common-form-control-text__input{color:#141827}.tribe-theme-twentytwenty .tribe-common .tribe-common-form-control-text__input{line-height:inherit}#top .main_color .tribe-common .tribe-common-form-control-text__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:16px;line-height:1.62;font-weight:400;background:#fff;border:0;border-bottom:1px solid #d5d5d5}#top .main_color .tribe-common .tribe-common-form-control-text__input:focus,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input:focus{border-bottom-color:#141827;box-shadow:none}#top .main_color .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input,#top.tribe-theme-enfold .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;border:0}.tribe-common .tribe-common-form-control-toggle{line-height:0}.tribe-common .tribe-common-form-control-toggle__input{border:none;border-radius:5px;height:10px;margin:5px 0;padding:0;position:relative;transition:background-color .2s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#d5d5d5;width:40px}.tribe-common .tribe-common-form-control-toggle__input:after{background-color:#fff;border:1px solid #d5d5d5;border-radius:50%;box-shadow:0 2px 5px 0 rgba(0,0,0,.14);height:20px;width:20px;content:"";left:0;position:absolute;top:-5px;transition:transform .2s ease}.tribe-common .tribe-common-form-control-toggle__input:checked{background-color:#334aff}.tribe-common .tribe-common-form-control-toggle__input:checked:after{transform:translateX(20px)}.tribe-common .tribe-common-form-control-toggle__label{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;color:#5d5d5d}#top .main_color .tribe-common .tribe-common-form-control-toggle__label,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-toggle__label{font-weight:400;font-size:12px}.tribe-common a,.tribe-common a:active,.tribe-common a:focus,.tribe-common a:hover,.tribe-common a:visited{color:#141827;outline:0;text-decoration:none}.tribe-theme-twentyseventeen .tribe-common a{box-shadow:none}.tribe-theme-twentyseventeen .tribe-common a:focus,.tribe-theme-twentyseventeen .tribe-common a:hover{box-shadow:none;color:#141827}.tribe-theme-twentynineteen .entry .tribe-common a,.tribe-theme-twentynineteen .tribe-common a{text-decoration:none}.tribe-common .tribe-common-anchor{border-bottom:2px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-anchor:active,.tribe-common .tribe-common-anchor:focus,.tribe-common .tribe-common-anchor:hover{border-bottom:2px solid #141827}.tribe-common .tribe-common-anchor-alt{border-bottom:2px solid #334aff;color:#141827;transition:color .2s ease}.tribe-common .tribe-common-anchor-alt:active,.tribe-common .tribe-common-anchor-alt:focus,.tribe-common .tribe-common-anchor-alt:hover{border-bottom:2px solid #334aff;color:#334aff}.tribe-common .tribe-common-anchor-thin{border-bottom:1px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-anchor-thin:active,.tribe-common .tribe-common-anchor-thin:focus,.tribe-common .tribe-common-anchor-thin:hover{border-bottom:1px solid #141827}.tribe-common .tribe-common-anchor-thin-alt{border-bottom:1px solid #334aff;color:#141827;transition:color .2s ease}.tribe-common .tribe-common-anchor-thin-alt:active,.tribe-common .tribe-common-anchor-thin-alt:focus,.tribe-common .tribe-common-anchor-thin-alt:hover{border-bottom:1px solid #334aff;color:#334aff}.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-alt:hover,.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-thin-alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-anchor-thin-alt:hover{color:#334aff}.tribe-common .tribe-common-b1{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1{font-size:16px;line-height:1.62}.tribe-common .tribe-common-b1--bold{font-weight:700}.tribe-common .tribe-common-b2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.38}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b2{font-size:14px;line-height:1.62}.tribe-common .tribe-common-b2--bold{font-weight:700}.tribe-common .tribe-common-b3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:11px;font-weight:400;line-height:1.5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b3{font-size:12px;line-height:1.38}.tribe-common .tribe-common-b3--bold{font-weight:700}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1--min-medium{font-size:16px;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b2--min-medium{font-size:14px;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-b3--min-medium{font-size:12px;line-height:1.38}.tribe-common .tribe-common-cta{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;font-weight:700;border-bottom:2px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-cta:active,.tribe-common .tribe-common-cta:focus,.tribe-common .tribe-common-cta:hover{border-bottom:2px solid #141827}.tribe-common .tribe-common-cta--alt{border-bottom:2px solid #334aff;color:#141827;transition:color .2s ease}.tribe-common .tribe-common-cta--alt:active,.tribe-common .tribe-common-cta--alt:focus,.tribe-common .tribe-common-cta--alt:hover{border-bottom:2px solid #334aff;color:#334aff}.tribe-common .tribe-common-cta--thin{border-bottom:1px solid transparent;transition:border-color .2s ease}.tribe-common .tribe-common-cta--thin:active,.tribe-common .tribe-common-cta--thin:focus,.tribe-common .tribe-common-cta--thin:hover{border-bottom:1px solid #141827}.tribe-common .tribe-common-cta--thin-alt{border-bottom:1px solid #334aff;color:#141827;transition:color .2s ease}.tribe-common .tribe-common-cta--thin-alt:active,.tribe-common .tribe-common-cta--thin-alt:focus,.tribe-common .tribe-common-cta--thin-alt:hover{border-bottom:1px solid #334aff;color:#334aff}.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--alt:hover,.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--thin-alt:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-cta--thin-alt:hover{color:#334aff}.tribe-common .tribe-common-h1{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:28px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h1{font-size:42px;line-height:1.38}.tribe-common .tribe-common-h2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:24px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h2{font-size:32px;line-height:1.38}.tribe-common .tribe-common-h3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:22px;line-height:1.5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h3{font-size:28px;line-height:1.42}.tribe-common .tribe-common-h4{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:20px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h4{font-size:24px;line-height:1.42}.tribe-common .tribe-common-h5{font-size:18px}.tribe-common .tribe-common-h5,.tribe-common .tribe-common-h6{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;line-height:1.5}.tribe-common .tribe-common-h6{font-size:16px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6{font-size:16px;line-height:1.62}.tribe-common .tribe-common-h7{font-size:14px;line-height:1.62}.tribe-common .tribe-common-h7,.tribe-common .tribe-common-h8{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700}.tribe-common .tribe-common-h8{font-size:12px;line-height:1.38}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h3--min-medium{font-size:28px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h4--min-medium{font-size:24px;line-height:1.42}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h5--min-medium{font-size:18px;line-height:1.5}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6--min-medium{font-size:16px;line-height:1.62}.tribe-common--breakpoint-medium.tribe-common .tribe-common-h7--min-medium{font-size:14px;line-height:1.62}.tribe-common .tribe-common-h--alt{font-weight:400}.tribe-theme-avada #main .tribe-common .tribe-common-h1{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:28px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h1{font-size:42px;line-height:1.38}.tribe-theme-avada #main .tribe-common .tribe-common-h2{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:24px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h2{font-size:32px;line-height:1.38}.tribe-theme-avada #main .tribe-common .tribe-common-h3{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:22px;line-height:1.5}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h3{font-size:28px;line-height:1.42}.tribe-theme-avada #main .tribe-common .tribe-common-h4{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;font-size:20px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h4{font-size:24px;line-height:1.42}.tribe-theme-avada #main .tribe-common .tribe-common-h5{font-size:18px}.tribe-theme-avada #main .tribe-common .tribe-common-h5,.tribe-theme-avada #main .tribe-common .tribe-common-h6{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700;line-height:1.5}.tribe-theme-avada #main .tribe-common .tribe-common-h6{font-size:16px}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h6{font-size:16px;line-height:1.62}.tribe-theme-avada #main .tribe-common .tribe-common-h7{font-size:14px;line-height:1.62}.tribe-theme-avada #main .tribe-common .tribe-common-h7,.tribe-theme-avada #main .tribe-common .tribe-common-h8{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-weight:700}.tribe-theme-avada #main .tribe-common .tribe-common-h8{font-size:12px;line-height:1.38}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h3--min-medium{font-size:28px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h4--min-medium{font-size:24px;line-height:1.42}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h5--min-medium{font-size:18px;line-height:1.5}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h6--min-medium{font-size:16px;line-height:1.62}.tribe-theme-avada #main .tribe-common.tribe-common--breakpoint-medium .tribe-common-h7--min-medium{font-size:14px;line-height:1.62}.tribe-theme-avada #main .tribe-common .tribe-common-h--alt{font-weight:400}.tribe-common button{border:none}.tribe-common button,.tribe-common button:focus,.tribe-common button:hover,.tribe-theme-twentyseventeen .tribe-common button:focus,.tribe-theme-twentyseventeen .tribe-common button:hover{background-color:transparent}.tribe-theme-twentytwenty .tribe-common button{background-color:transparent;text-transform:inherit}.tribe-theme-twentytwenty .tribe-common button:focus,.tribe-theme-twentytwenty .tribe-common button:hover{text-decoration:none}.tribe-common .tribe-common-svgicon--featured{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h16v20l-7.902-5.122L0 20z' fill='%23334AFF'/%3E%3C/svg%3E")}.tribe-theme-enfold .tribe-common th{letter-spacing:0;text-transform:none}.tribe-common .tribe-common-c-btn-border,.tribe-common a.tribe-common-c-btn-border{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:12px;line-height:1.38;font-weight:400;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;background-color:#fff;border:1px solid #d5d5d5;border-radius:4px;text-align:center;transition:color .2s ease,border-color .2s ease;color:#5d5d5d;padding:14px 20px}.tribe-common .tribe-common-c-btn-border:focus,.tribe-common .tribe-common-c-btn-border:hover,.tribe-common a.tribe-common-c-btn-border:focus,.tribe-common a.tribe-common-c-btn-border:hover{background-color:#fff}.tribe-common .tribe-common-c-btn-border:active,.tribe-common a.tribe-common-c-btn-border:active{border-color:#141827}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn-border,.tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn-border{padding:6px 15px}.tribe-common .tribe-common-c-btn-border:active,.tribe-common .tribe-common-c-btn-border:focus,.tribe-common .tribe-common-c-btn-border:hover,.tribe-common a.tribe-common-c-btn-border:active,.tribe-common a.tribe-common-c-btn-border:focus,.tribe-common a.tribe-common-c-btn-border:hover{color:#141827}.tribe-common .tribe-common-c-btn-border:disabled,.tribe-common a.tribe-common-c-btn-border:disabled{color:#d5d5d5}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-border:hover{background-color:#fff}.tribe-common .tribe-common-c-btn-icon{border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto}.tribe-common .tribe-common-c-btn-icon--border{background-color:#fff;border:1px solid #d5d5d5;align-items:center;display:inline-flex;height:56px;justify-content:center;transition:none;width:56px}.tribe-common .tribe-common-c-btn-icon--border:focus,.tribe-common .tribe-common-c-btn-icon--border:hover{background-color:#fff}.tribe-common .tribe-common-c-btn-icon--border:active{border-color:#141827}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn-icon--border:hover{background-color:#fff}.tribe-common .tribe-common-c-btn,.tribe-common a.tribe-common-c-btn{color:#141827;font-family:Helvetica Neue,Helvetica,-apple-system,BlinkMacSystemFont,Roboto,Arial,sans-serif;font-size:14px;line-height:1.62;font-weight:400;font-weight:700;border:0;cursor:pointer;display:inline-block;height:auto;padding:0;text-decoration:none;width:auto;border-radius:4px;color:#fff;text-align:center;transition:background-color .2s ease;background-color:#334aff;padding:11px 20px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn,.tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn{width:auto}.tribe-common .tribe-common-c-btn:focus,.tribe-common .tribe-common-c-btn:hover,.tribe-common a.tribe-common-c-btn:focus,.tribe-common a.tribe-common-c-btn:hover{background-color:rgba(51,74,255,.8)}.tribe-common .tribe-common-c-btn:active,.tribe-common a.tribe-common-c-btn:active{background-color:rgba(51,74,255,.9)}.tribe-common .tribe-common-c-btn:disabled,.tribe-common a.tribe-common-c-btn:disabled{background-color:rgba(51,74,255,.07)}.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn:focus,.tribe-theme-twentyseventeen .tribe-common .tribe-common-c-btn:hover{background-color:rgba(51,74,255,.8);color:#fff}.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn{background-color:#334aff}.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn:focus,.tribe-theme-twentytwenty .tribe-common .tribe-common-c-btn:hover{background-color:rgba(51,74,255,.8);color:#fff}.tribe-common .tribe-common-c-loader__dot{animation-name:a;animation-duration:2.24s;animation-iteration-count:infinite;animation-direction:normal}.tribe-common .tribe-common-c-loader__dot--first{animation-delay:.45s}.tribe-common .tribe-common-c-loader__dot--second{animation-delay:1.05s}.tribe-common .tribe-common-c-loader__dot--third{animation-delay:1.35s}@keyframes a{50%{background-color:#334aff}}
|
common/src/resources/css/common-skeleton.css
DELETED
@@ -1,1774 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
11 |
-
/*
|
12 |
-
* Common Skeleton CSS
|
13 |
-
*
|
14 |
-
* DO NOT EDIT THIS CSS FILE DIRECTLY.
|
15 |
-
* -------------------------------------------------------------
|
16 |
-
* This file is just a clearing-house, see the pcss directory
|
17 |
-
* and edit the source files found there.
|
18 |
-
*/
|
19 |
-
|
20 |
-
/* Reset */
|
21 |
-
|
22 |
-
/* -----------------------------------------------------------------------------
|
23 |
-
*
|
24 |
-
* Resets Skeleton
|
25 |
-
*
|
26 |
-
* This file is just a clearing-house.
|
27 |
-
* Make partials (start with an underscore) for any actual css code.
|
28 |
-
*
|
29 |
-
* ----------------------------------------------------------------------------- */
|
30 |
-
|
31 |
-
/* Reset */
|
32 |
-
|
33 |
-
.tribe-common {
|
34 |
-
-webkit-font-smoothing: antialiased;
|
35 |
-
-moz-osx-font-smoothing: grayscale;
|
36 |
-
font-smoothing: antialiased;
|
37 |
-
}
|
38 |
-
|
39 |
-
/* -----------------------------------------------------------------------------
|
40 |
-
*
|
41 |
-
* Global "Resets"
|
42 |
-
*
|
43 |
-
* ----------------------------------------------------------------------------- */
|
44 |
-
|
45 |
-
.tribe-common * {
|
46 |
-
box-sizing: border-box;
|
47 |
-
}
|
48 |
-
|
49 |
-
/* -----------------------------------------------------------------------------
|
50 |
-
*
|
51 |
-
* HTML5 Elements
|
52 |
-
*
|
53 |
-
* ----------------------------------------------------------------------------- */
|
54 |
-
|
55 |
-
.tribe-common article,
|
56 |
-
.tribe-common aside,
|
57 |
-
.tribe-common details,
|
58 |
-
.tribe-common figcaption,
|
59 |
-
.tribe-common figure,
|
60 |
-
.tribe-common footer,
|
61 |
-
.tribe-common header,
|
62 |
-
.tribe-common main,
|
63 |
-
.tribe-common menu,
|
64 |
-
.tribe-common nav,
|
65 |
-
.tribe-common section,
|
66 |
-
.tribe-common summary {
|
67 |
-
display: block;
|
68 |
-
}
|
69 |
-
|
70 |
-
/* -----------------------------------------------------------------------------
|
71 |
-
*
|
72 |
-
* Normalize "Light"
|
73 |
-
*
|
74 |
-
* ----------------------------------------------------------------------------- */
|
75 |
-
|
76 |
-
.tribe-common svg:not(:root) {
|
77 |
-
overflow: hidden;
|
78 |
-
}
|
79 |
-
|
80 |
-
.tribe-common audio,
|
81 |
-
.tribe-common canvas,
|
82 |
-
.tribe-common progress,
|
83 |
-
.tribe-common video {
|
84 |
-
display: inline-block;
|
85 |
-
}
|
86 |
-
|
87 |
-
.tribe-common audio:not([controls]) {
|
88 |
-
display: none;
|
89 |
-
height: 0;
|
90 |
-
}
|
91 |
-
|
92 |
-
.tribe-common progress {
|
93 |
-
vertical-align: baseline;
|
94 |
-
}
|
95 |
-
|
96 |
-
.tribe-common template,
|
97 |
-
.tribe-common [hidden] {
|
98 |
-
display: none;
|
99 |
-
}
|
100 |
-
|
101 |
-
.tribe-common pre {
|
102 |
-
overflow: auto;
|
103 |
-
}
|
104 |
-
|
105 |
-
.tribe-common sub,
|
106 |
-
.tribe-common sup {
|
107 |
-
position: relative;
|
108 |
-
vertical-align: baseline;
|
109 |
-
}
|
110 |
-
|
111 |
-
.tribe-common sup {
|
112 |
-
top: -0.5em;
|
113 |
-
}
|
114 |
-
|
115 |
-
.tribe-common sub {
|
116 |
-
bottom: -0.25em;
|
117 |
-
}
|
118 |
-
|
119 |
-
.tribe-common input,
|
120 |
-
.tribe-common button,
|
121 |
-
.tribe-common select,
|
122 |
-
.tribe-common textarea {
|
123 |
-
box-sizing: border-box;
|
124 |
-
margin: 0;
|
125 |
-
}
|
126 |
-
|
127 |
-
.tribe-common input[type="number"]::-webkit-inner-spin-button,
|
128 |
-
.tribe-common input[type="number"]::-webkit-outer-spin-button {
|
129 |
-
height: auto;
|
130 |
-
}
|
131 |
-
|
132 |
-
.tribe-common legend {
|
133 |
-
color: inherit;
|
134 |
-
display: table;
|
135 |
-
max-width: 100%;
|
136 |
-
white-space: normal;
|
137 |
-
}
|
138 |
-
|
139 |
-
.tribe-common textarea {
|
140 |
-
resize: none;
|
141 |
-
overflow: auto;
|
142 |
-
}
|
143 |
-
|
144 |
-
.tribe-common button,
|
145 |
-
.tribe-common input[type="button"],
|
146 |
-
.tribe-common input[type="reset"],
|
147 |
-
.tribe-common input[type="submit"] {
|
148 |
-
cursor: pointer;
|
149 |
-
overflow: visible;
|
150 |
-
}
|
151 |
-
|
152 |
-
.tribe-common button[disabled],
|
153 |
-
.tribe-common input[disabled] {
|
154 |
-
cursor: default;
|
155 |
-
}
|
156 |
-
|
157 |
-
.tribe-common button::-moz-focus-inner,
|
158 |
-
.tribe-common input::-moz-focus-inner {
|
159 |
-
border: 0;
|
160 |
-
padding: 0;
|
161 |
-
}
|
162 |
-
|
163 |
-
/* -----------------------------------------------------------------------------
|
164 |
-
*
|
165 |
-
* Reset "Light"
|
166 |
-
*
|
167 |
-
* ----------------------------------------------------------------------------- */
|
168 |
-
|
169 |
-
.tribe-common div,
|
170 |
-
.tribe-common span,
|
171 |
-
.tribe-common applet,
|
172 |
-
.tribe-common object,
|
173 |
-
.tribe-common iframe,
|
174 |
-
.tribe-common h1,
|
175 |
-
.tribe-common h2,
|
176 |
-
.tribe-common h3,
|
177 |
-
.tribe-common h4,
|
178 |
-
.tribe-common h5,
|
179 |
-
.tribe-common h6,
|
180 |
-
.tribe-common p,
|
181 |
-
.tribe-common blockquote,
|
182 |
-
.tribe-common pre,
|
183 |
-
.tribe-common a,
|
184 |
-
.tribe-common abbr,
|
185 |
-
.tribe-common acronym,
|
186 |
-
.tribe-common address,
|
187 |
-
.tribe-common big,
|
188 |
-
.tribe-common cite,
|
189 |
-
.tribe-common code,
|
190 |
-
.tribe-common del,
|
191 |
-
.tribe-common dfn,
|
192 |
-
.tribe-common em,
|
193 |
-
.tribe-common img,
|
194 |
-
.tribe-common ins,
|
195 |
-
.tribe-common kbd,
|
196 |
-
.tribe-common q,
|
197 |
-
.tribe-common s,
|
198 |
-
.tribe-common samp,
|
199 |
-
.tribe-common small,
|
200 |
-
.tribe-common strike,
|
201 |
-
.tribe-common strong,
|
202 |
-
.tribe-common sub,
|
203 |
-
.tribe-common sup,
|
204 |
-
.tribe-common tt,
|
205 |
-
.tribe-common var,
|
206 |
-
.tribe-common b,
|
207 |
-
.tribe-common u,
|
208 |
-
.tribe-common i,
|
209 |
-
.tribe-common center,
|
210 |
-
.tribe-common dl,
|
211 |
-
.tribe-common dt,
|
212 |
-
.tribe-common dd,
|
213 |
-
.tribe-common ol,
|
214 |
-
.tribe-common ul,
|
215 |
-
.tribe-common li,
|
216 |
-
.tribe-common fieldset,
|
217 |
-
.tribe-common form,
|
218 |
-
.tribe-common label,
|
219 |
-
.tribe-common legend,
|
220 |
-
.tribe-common table,
|
221 |
-
.tribe-common caption,
|
222 |
-
.tribe-common tbody,
|
223 |
-
.tribe-common tfoot,
|
224 |
-
.tribe-common thead,
|
225 |
-
.tribe-common tr,
|
226 |
-
.tribe-common th,
|
227 |
-
.tribe-common td,
|
228 |
-
.tribe-common article,
|
229 |
-
.tribe-common aside,
|
230 |
-
.tribe-common canvas,
|
231 |
-
.tribe-common details,
|
232 |
-
.tribe-common embed,
|
233 |
-
.tribe-common figure,
|
234 |
-
.tribe-common figcaption,
|
235 |
-
.tribe-common footer,
|
236 |
-
.tribe-common header,
|
237 |
-
.tribe-common main,
|
238 |
-
.tribe-common menu,
|
239 |
-
.tribe-common nav,
|
240 |
-
.tribe-common output,
|
241 |
-
.tribe-common ruby,
|
242 |
-
.tribe-common section,
|
243 |
-
.tribe-common summary,
|
244 |
-
.tribe-common time,
|
245 |
-
.tribe-common mark,
|
246 |
-
.tribe-common audio,
|
247 |
-
.tribe-common video {
|
248 |
-
margin: 0;
|
249 |
-
padding: 0;
|
250 |
-
border: 0;
|
251 |
-
}
|
252 |
-
|
253 |
-
.tribe-common ol,
|
254 |
-
.tribe-common ul {
|
255 |
-
list-style: none;
|
256 |
-
}
|
257 |
-
|
258 |
-
.tribe-common img {
|
259 |
-
-ms-interpolation-mode: bicubic;
|
260 |
-
height: auto;
|
261 |
-
max-width: 100%;
|
262 |
-
border-style: none;
|
263 |
-
}
|
264 |
-
|
265 |
-
.tribe-common iframe,
|
266 |
-
.tribe-common video,
|
267 |
-
.tribe-common embed {
|
268 |
-
max-width: 100%;
|
269 |
-
max-height: 100%;
|
270 |
-
}
|
271 |
-
|
272 |
-
/* Theme Overrides */
|
273 |
-
|
274 |
-
/* -------------------------------------------------------------------------
|
275 |
-
* Reset Skeleton Theme Overrides - Avada
|
276 |
-
* ------------------------------------------------------------------------- */
|
277 |
-
|
278 |
-
.tribe-theme-avada input[type="text"] {
|
279 |
-
margin: 0;
|
280 |
-
}
|
281 |
-
|
282 |
-
/* -------------------------------------------------------------------------
|
283 |
-
* Reset Skeleton Theme Overrides - Divi
|
284 |
-
* ------------------------------------------------------------------------- */
|
285 |
-
|
286 |
-
.tribe-theme-divi .entry-content .tribe-common table, .tribe-theme-divibody.et-pb-preview #main-content .container .tribe-common table {
|
287 |
-
border: 0;
|
288 |
-
margin: 0;
|
289 |
-
}
|
290 |
-
|
291 |
-
.tribe-theme-divi .entry-content .tribe-common td, .tribe-theme-divibody.et-pb-preview #main-content .container .tribe-common td {
|
292 |
-
border: 0;
|
293 |
-
}
|
294 |
-
|
295 |
-
.tribe-theme-divi #content-area .tribe-common td,
|
296 |
-
.tribe-theme-divi #content-area .tribe-common th,
|
297 |
-
.tribe-theme-divi #content-area .tribe-common tr {
|
298 |
-
padding: 0;
|
299 |
-
}
|
300 |
-
|
301 |
-
/* -------------------------------------------------------------------------
|
302 |
-
* Reset Skeleton Theme Overrides - Enfold
|
303 |
-
* ------------------------------------------------------------------------- */
|
304 |
-
|
305 |
-
#top.tribe-theme-enfold .tribe-common button[disabled], #top .main_color .tribe-common button[disabled] {
|
306 |
-
cursor: default;
|
307 |
-
}
|
308 |
-
|
309 |
-
#top.tribe-theme-enfold .tribe-common form,
|
310 |
-
#top.tribe-theme-enfold .tribe-common input,
|
311 |
-
#top .main_color .tribe-common form,
|
312 |
-
#top .main_color .tribe-common input {
|
313 |
-
margin: 0;
|
314 |
-
}
|
315 |
-
|
316 |
-
.entry-content-wrapper .tribe-common li {
|
317 |
-
margin: 0;
|
318 |
-
padding: 0;
|
319 |
-
}
|
320 |
-
|
321 |
-
/* -------------------------------------------------------------------------
|
322 |
-
* Reset Skeleton Theme Overrides - Genesis
|
323 |
-
* ------------------------------------------------------------------------- */
|
324 |
-
|
325 |
-
.tribe-theme-genesis .tribe-common ol,
|
326 |
-
.tribe-theme-genesis .tribe-common ul,
|
327 |
-
.entry-content .tribe-common ol,
|
328 |
-
.entry-content .tribe-common ul {
|
329 |
-
margin: 0;
|
330 |
-
padding: 0;
|
331 |
-
}
|
332 |
-
|
333 |
-
/* .tribe-theme-twentynineteen .tribe-common { */
|
334 |
-
|
335 |
-
/* -------------------------------------------------------------------------
|
336 |
-
* Reset Skeleton Theme Overrides - Twenty Nineteen
|
337 |
-
* ------------------------------------------------------------------------- */
|
338 |
-
|
339 |
-
/* } */
|
340 |
-
|
341 |
-
.tribe-theme-twentyseventeen .tribe-common {
|
342 |
-
|
343 |
-
/* -------------------------------------------------------------------------
|
344 |
-
* Reset Skeleton Theme Overrides - Twenty Seventeen
|
345 |
-
* ------------------------------------------------------------------------- */
|
346 |
-
|
347 |
-
}
|
348 |
-
|
349 |
-
/* dialogs are set to z-index of 1 by default. Twentyseventeen .site-branding (in page header) is set to 3. */
|
350 |
-
|
351 |
-
.tribe-theme-twentyseventeen .tribe-common div.tribe-dialog {
|
352 |
-
z-index: 5 !important;
|
353 |
-
}
|
354 |
-
|
355 |
-
/* .tribe-theme-twentytwenty .tribe-common { */
|
356 |
-
|
357 |
-
/* -------------------------------------------------------------------------
|
358 |
-
* Reset Skeleton Theme Overrides - Twenty Twenty
|
359 |
-
* ------------------------------------------------------------------------- */
|
360 |
-
|
361 |
-
/* } */
|
362 |
-
|
363 |
-
/* Utilities */
|
364 |
-
|
365 |
-
/* -----------------------------------------------------------------------------
|
366 |
-
*
|
367 |
-
* Utilities
|
368 |
-
*
|
369 |
-
* This file is just a clearing-house.
|
370 |
-
* Make partials (start with an underscore) for any actual css code.
|
371 |
-
*
|
372 |
-
* ----------------------------------------------------------------------------- */
|
373 |
-
|
374 |
-
/* Variables */
|
375 |
-
|
376 |
-
:root {
|
377 |
-
/* -----------------------------------------------------------------------------
|
378 |
-
* Borders - Radius
|
379 |
-
* ----------------------------------------------------------------------------- */
|
380 |
-
|
381 |
-
/* -----------------------------------------------------------------------------
|
382 |
-
* Borders - Width
|
383 |
-
* ----------------------------------------------------------------------------- */
|
384 |
-
}
|
385 |
-
|
386 |
-
:root {
|
387 |
-
/* -----------------------------------------------------------------------------
|
388 |
-
* Box Shadows
|
389 |
-
* ----------------------------------------------------------------------------- */
|
390 |
-
}
|
391 |
-
|
392 |
-
:root {
|
393 |
-
/* -----------------------------------------------------------------------------
|
394 |
-
* Layers of z-index
|
395 |
-
* ----------------------------------------------------------------------------- */
|
396 |
-
}
|
397 |
-
|
398 |
-
:root {
|
399 |
-
/* -----------------------------------------------------------------------------
|
400 |
-
* Colors - Typography
|
401 |
-
* ----------------------------------------------------------------------------- */
|
402 |
-
|
403 |
-
/* -----------------------------------------------------------------------------
|
404 |
-
* Colors - Iconography
|
405 |
-
* ----------------------------------------------------------------------------- */
|
406 |
-
|
407 |
-
/* -----------------------------------------------------------------------------
|
408 |
-
* Colors - UI
|
409 |
-
* ----------------------------------------------------------------------------- */
|
410 |
-
|
411 |
-
/* -----------------------------------------------------------------------------
|
412 |
-
* Colors - Borders & Misc
|
413 |
-
* ----------------------------------------------------------------------------- */
|
414 |
-
|
415 |
-
}
|
416 |
-
|
417 |
-
:root {
|
418 |
-
/* -----------------------------------------------------------------------------
|
419 |
-
* Forms - Colors
|
420 |
-
* ----------------------------------------------------------------------------- */
|
421 |
-
|
422 |
-
/* -----------------------------------------------------------------------------
|
423 |
-
* Forms - Box Shadows
|
424 |
-
* ----------------------------------------------------------------------------- */
|
425 |
-
}
|
426 |
-
|
427 |
-
:root {
|
428 |
-
/* -----------------------------------------------------------------------------
|
429 |
-
* Gutter - Default
|
430 |
-
* ----------------------------------------------------------------------------- */
|
431 |
-
|
432 |
-
/* -----------------------------------------------------------------------------
|
433 |
-
* Gutter - Page
|
434 |
-
* ----------------------------------------------------------------------------- */
|
435 |
-
|
436 |
-
/* -----------------------------------------------------------------------------
|
437 |
-
* Grid Width - Default
|
438 |
-
* ----------------------------------------------------------------------------- */
|
439 |
-
|
440 |
-
/* -----------------------------------------------------------------------------
|
441 |
-
* Grid Width - Relative
|
442 |
-
* ----------------------------------------------------------------------------- */
|
443 |
-
}
|
444 |
-
|
445 |
-
:root {
|
446 |
-
/* -----------------------------------------------------------------------------
|
447 |
-
* Opacities
|
448 |
-
* ----------------------------------------------------------------------------- */
|
449 |
-
}
|
450 |
-
|
451 |
-
:root {
|
452 |
-
/* -----------------------------------------------------------------------------
|
453 |
-
* Spacers
|
454 |
-
* ----------------------------------------------------------------------------- */
|
455 |
-
}
|
456 |
-
|
457 |
-
/* -----------------------------------------------------------------------------
|
458 |
-
* SVG - Arrow Right
|
459 |
-
* ----------------------------------------------------------------------------- */
|
460 |
-
|
461 |
-
/* -----------------------------------------------------------------------------
|
462 |
-
* SVG - Caret Down
|
463 |
-
* ----------------------------------------------------------------------------- */
|
464 |
-
|
465 |
-
/* -----------------------------------------------------------------------------
|
466 |
-
* SVG - Caret Left
|
467 |
-
* ----------------------------------------------------------------------------- */
|
468 |
-
|
469 |
-
/* -----------------------------------------------------------------------------
|
470 |
-
* SVG - Caret Right
|
471 |
-
* ----------------------------------------------------------------------------- */
|
472 |
-
|
473 |
-
/* -----------------------------------------------------------------------------
|
474 |
-
* SVG - Caret Up
|
475 |
-
* ----------------------------------------------------------------------------- */
|
476 |
-
|
477 |
-
/* -----------------------------------------------------------------------------
|
478 |
-
* SVG - Check
|
479 |
-
* ----------------------------------------------------------------------------- */
|
480 |
-
|
481 |
-
/* -----------------------------------------------------------------------------
|
482 |
-
* SVG - Close
|
483 |
-
* ----------------------------------------------------------------------------- */
|
484 |
-
|
485 |
-
/* -----------------------------------------------------------------------------
|
486 |
-
* SVG - Day
|
487 |
-
* ----------------------------------------------------------------------------- */
|
488 |
-
|
489 |
-
/* -----------------------------------------------------------------------------
|
490 |
-
* SVG - Dropdown
|
491 |
-
* ----------------------------------------------------------------------------- */
|
492 |
-
|
493 |
-
/* -----------------------------------------------------------------------------
|
494 |
-
* SVG - Featured
|
495 |
-
* ----------------------------------------------------------------------------- */
|
496 |
-
|
497 |
-
/* -----------------------------------------------------------------------------
|
498 |
-
* SVG - Filters
|
499 |
-
* ----------------------------------------------------------------------------- */
|
500 |
-
|
501 |
-
/* -----------------------------------------------------------------------------
|
502 |
-
* SVG - Link
|
503 |
-
* ----------------------------------------------------------------------------- */
|
504 |
-
|
505 |
-
/* -----------------------------------------------------------------------------
|
506 |
-
* SVG - List
|
507 |
-
* ----------------------------------------------------------------------------- */
|
508 |
-
|
509 |
-
/* -----------------------------------------------------------------------------
|
510 |
-
* SVG - Location
|
511 |
-
* ----------------------------------------------------------------------------- */
|
512 |
-
|
513 |
-
/* -----------------------------------------------------------------------------
|
514 |
-
* SVG - Mail
|
515 |
-
* ----------------------------------------------------------------------------- */
|
516 |
-
|
517 |
-
/* -----------------------------------------------------------------------------
|
518 |
-
* SVG - Map
|
519 |
-
* ----------------------------------------------------------------------------- */
|
520 |
-
|
521 |
-
/* -----------------------------------------------------------------------------
|
522 |
-
* SVG - Map pin
|
523 |
-
* ----------------------------------------------------------------------------- */
|
524 |
-
|
525 |
-
/* -----------------------------------------------------------------------------
|
526 |
-
* SVG - Messages
|
527 |
-
* ----------------------------------------------------------------------------- */
|
528 |
-
|
529 |
-
/* -----------------------------------------------------------------------------
|
530 |
-
* SVG - Month
|
531 |
-
* ----------------------------------------------------------------------------- */
|
532 |
-
|
533 |
-
/* -----------------------------------------------------------------------------
|
534 |
-
* SVG - No Map
|
535 |
-
* ----------------------------------------------------------------------------- */
|
536 |
-
|
537 |
-
/* -----------------------------------------------------------------------------
|
538 |
-
* SVG - Phone
|
539 |
-
* ----------------------------------------------------------------------------- */
|
540 |
-
|
541 |
-
/* -----------------------------------------------------------------------------
|
542 |
-
* SVG - Photo
|
543 |
-
* ----------------------------------------------------------------------------- */
|
544 |
-
|
545 |
-
/* -----------------------------------------------------------------------------
|
546 |
-
* SVG - Plus
|
547 |
-
* ----------------------------------------------------------------------------- */
|
548 |
-
|
549 |
-
/* -----------------------------------------------------------------------------
|
550 |
-
* SVG - Recurring
|
551 |
-
* ----------------------------------------------------------------------------- */
|
552 |
-
|
553 |
-
/* -----------------------------------------------------------------------------
|
554 |
-
* SVG - Reset
|
555 |
-
* ----------------------------------------------------------------------------- */
|
556 |
-
|
557 |
-
/* -----------------------------------------------------------------------------
|
558 |
-
* SVG - Search
|
559 |
-
* ----------------------------------------------------------------------------- */
|
560 |
-
|
561 |
-
/* -----------------------------------------------------------------------------
|
562 |
-
* SVG - Search Filter
|
563 |
-
* ----------------------------------------------------------------------------- */
|
564 |
-
|
565 |
-
/* -----------------------------------------------------------------------------
|
566 |
-
* SVG - Week
|
567 |
-
* ----------------------------------------------------------------------------- */
|
568 |
-
|
569 |
-
:root {
|
570 |
-
/* -----------------------------------------------------------------------------
|
571 |
-
* Transitions
|
572 |
-
* ----------------------------------------------------------------------------- */
|
573 |
-
}
|
574 |
-
|
575 |
-
:root {
|
576 |
-
/* -----------------------------------------------------------------------------
|
577 |
-
* Font Stacks
|
578 |
-
* ----------------------------------------------------------------------------- */
|
579 |
-
|
580 |
-
/* -----------------------------------------------------------------------------
|
581 |
-
* Font Weights
|
582 |
-
* ----------------------------------------------------------------------------- */
|
583 |
-
|
584 |
-
/* -----------------------------------------------------------------------------
|
585 |
-
* Font Sizing
|
586 |
-
* ----------------------------------------------------------------------------- */
|
587 |
-
|
588 |
-
/* -----------------------------------------------------------------------------
|
589 |
-
* Line Height
|
590 |
-
* ----------------------------------------------------------------------------- */
|
591 |
-
}
|
592 |
-
|
593 |
-
/* Mixins */
|
594 |
-
|
595 |
-
/* -----------------------------------------------------------------------------
|
596 |
-
* Body
|
597 |
-
* ----------------------------------------------------------------------------- */
|
598 |
-
|
599 |
-
/* -----------------------------------------------------------------------------
|
600 |
-
* Desktop Body 1
|
601 |
-
* ----------------------------------------------------------------------------- */
|
602 |
-
|
603 |
-
/* -----------------------------------------------------------------------------
|
604 |
-
* Desktop Body 2
|
605 |
-
* ----------------------------------------------------------------------------- */
|
606 |
-
|
607 |
-
/* -----------------------------------------------------------------------------
|
608 |
-
* Desktop Body 3
|
609 |
-
* ----------------------------------------------------------------------------- */
|
610 |
-
|
611 |
-
/* -----------------------------------------------------------------------------
|
612 |
-
* Mobile Body 1
|
613 |
-
* ----------------------------------------------------------------------------- */
|
614 |
-
|
615 |
-
/* -----------------------------------------------------------------------------
|
616 |
-
* Mobile Body 2
|
617 |
-
* ----------------------------------------------------------------------------- */
|
618 |
-
|
619 |
-
/* -----------------------------------------------------------------------------
|
620 |
-
* Mobile Body 3
|
621 |
-
* ----------------------------------------------------------------------------- */
|
622 |
-
|
623 |
-
/* -----------------------------------------------------------------------------
|
624 |
-
* Heading
|
625 |
-
* ----------------------------------------------------------------------------- */
|
626 |
-
|
627 |
-
/* -----------------------------------------------------------------------------
|
628 |
-
* Heading 1
|
629 |
-
* ----------------------------------------------------------------------------- */
|
630 |
-
|
631 |
-
/* -----------------------------------------------------------------------------
|
632 |
-
* Heading 2
|
633 |
-
* ----------------------------------------------------------------------------- */
|
634 |
-
|
635 |
-
/* -----------------------------------------------------------------------------
|
636 |
-
* Heading 3
|
637 |
-
* ----------------------------------------------------------------------------- */
|
638 |
-
|
639 |
-
/* -----------------------------------------------------------------------------
|
640 |
-
* Heading 4
|
641 |
-
* ----------------------------------------------------------------------------- */
|
642 |
-
|
643 |
-
/* -----------------------------------------------------------------------------
|
644 |
-
* Heading 5
|
645 |
-
* ----------------------------------------------------------------------------- */
|
646 |
-
|
647 |
-
/* -----------------------------------------------------------------------------
|
648 |
-
* Heading 6
|
649 |
-
* ----------------------------------------------------------------------------- */
|
650 |
-
|
651 |
-
/* -----------------------------------------------------------------------------
|
652 |
-
* Heading 7
|
653 |
-
* ----------------------------------------------------------------------------- */
|
654 |
-
|
655 |
-
/* -----------------------------------------------------------------------------
|
656 |
-
* Heading 8
|
657 |
-
* ----------------------------------------------------------------------------- */
|
658 |
-
|
659 |
-
/* -----------------------------------------------------------------------------
|
660 |
-
* Anchor - Default
|
661 |
-
* ----------------------------------------------------------------------------- */
|
662 |
-
|
663 |
-
/* -----------------------------------------------------------------------------
|
664 |
-
* Anchor - Alt
|
665 |
-
* ----------------------------------------------------------------------------- */
|
666 |
-
|
667 |
-
/* -----------------------------------------------------------------------------
|
668 |
-
* Anchor - Thin
|
669 |
-
* ----------------------------------------------------------------------------- */
|
670 |
-
|
671 |
-
/* -----------------------------------------------------------------------------
|
672 |
-
* Anchor - Thin
|
673 |
-
* ----------------------------------------------------------------------------- */
|
674 |
-
|
675 |
-
/* -----------------------------------------------------------------------------
|
676 |
-
* Button - Global
|
677 |
-
* ----------------------------------------------------------------------------- */
|
678 |
-
|
679 |
-
/* -----------------------------------------------------------------------------
|
680 |
-
* Button - Solid
|
681 |
-
* ----------------------------------------------------------------------------- */
|
682 |
-
|
683 |
-
/* -----------------------------------------------------------------------------
|
684 |
-
* Button - Border
|
685 |
-
* ----------------------------------------------------------------------------- */
|
686 |
-
|
687 |
-
/* -----------------------------------------------------------------------------
|
688 |
-
* Button - Icon Border
|
689 |
-
* ----------------------------------------------------------------------------- */
|
690 |
-
|
691 |
-
/* -----------------------------------------------------------------------------
|
692 |
-
* Sliders & Toggles
|
693 |
-
* ----------------------------------------------------------------------------- */
|
694 |
-
|
695 |
-
/* -----------------------------------------------------------------------------
|
696 |
-
* Sliders
|
697 |
-
* ----------------------------------------------------------------------------- */
|
698 |
-
|
699 |
-
/* -----------------------------------------------------------------------------
|
700 |
-
* Hidden: Hide from both screenreaders and browsers
|
701 |
-
* @author: h5bp.com/u
|
702 |
-
* ----------------------------------------------------------------------------- */
|
703 |
-
|
704 |
-
/* -----------------------------------------------------------------------------
|
705 |
-
* Visually Hide: Hide only visually, but have it available for screenreaders
|
706 |
-
* @author: h5bp.com/v
|
707 |
-
* ----------------------------------------------------------------------------- */
|
708 |
-
|
709 |
-
/* -----------------------------------------------------------------------------
|
710 |
-
* Visually Show: Show element after has been hidden with %visually-hide
|
711 |
-
* ----------------------------------------------------------------------------- */
|
712 |
-
|
713 |
-
/* Base */
|
714 |
-
|
715 |
-
/* -----------------------------------------------------------------------------
|
716 |
-
*
|
717 |
-
* Base Skeleton
|
718 |
-
*
|
719 |
-
* This file is just a clearing-house.
|
720 |
-
* Make partials (start with an underscore) for any actual css code.
|
721 |
-
*
|
722 |
-
* ----------------------------------------------------------------------------- */
|
723 |
-
|
724 |
-
/* Forms */
|
725 |
-
|
726 |
-
.tribe-common {
|
727 |
-
|
728 |
-
|
729 |
-
/* -----------------------------------------------------------------------------
|
730 |
-
* Form Control: Checkboxes
|
731 |
-
* ----------------------------------------------------------------------------- */
|
732 |
-
|
733 |
-
/* -----------------------------------------------------------------------------
|
734 |
-
* Form Control: Radios
|
735 |
-
* ----------------------------------------------------------------------------- */
|
736 |
-
|
737 |
-
/* -----------------------------------------------------------------------------
|
738 |
-
*
|
739 |
-
* Form Control: Checkboxes & Radios Theme Overrides
|
740 |
-
*
|
741 |
-
* ----------------------------------------------------------------------------- */
|
742 |
-
|
743 |
-
/* -----------------------------------------------------------------------------
|
744 |
-
* Form Control: Checkboxes Theme Overrides
|
745 |
-
* ----------------------------------------------------------------------------- */
|
746 |
-
|
747 |
-
/* -----------------------------------------------------------------------------
|
748 |
-
* Form Control: Radios Theme Overrides
|
749 |
-
* ----------------------------------------------------------------------------- */
|
750 |
-
}
|
751 |
-
|
752 |
-
/* -----------------------------------------------------------------------------
|
753 |
-
*
|
754 |
-
* Form Control: Checkboxes & Radios
|
755 |
-
*
|
756 |
-
* Example (Checkboxes):
|
757 |
-
* <fieldset>
|
758 |
-
* <legend>Legend for Checkboxes</legend>
|
759 |
-
* <div class="tribe-common-form-control-checkbox-radio-group">
|
760 |
-
* <div class="tribe-common-form-control-checkbox">
|
761 |
-
* <input
|
762 |
-
* class="tribe-common-form-control-checkbox__input"
|
763 |
-
* id="checkboxOne"
|
764 |
-
* name="checkboxGroup"
|
765 |
-
* type="checkbox"
|
766 |
-
* value="checkboxOne"
|
767 |
-
* checked="checked"
|
768 |
-
* />
|
769 |
-
* <label
|
770 |
-
* class="tribe-common-form-control-checkbox__label"
|
771 |
-
* for="checkboxOne"
|
772 |
-
* >
|
773 |
-
* Checkbox One
|
774 |
-
* </label>
|
775 |
-
* </div>
|
776 |
-
* <div class="tribe-common-form-control-checkbox">
|
777 |
-
* <input
|
778 |
-
* class="tribe-common-form-control-checkbox__input"
|
779 |
-
* id="checkboxTwo"
|
780 |
-
* name="checkboxGroup"
|
781 |
-
* type="checkbox"
|
782 |
-
* value="checkboxTwo"
|
783 |
-
* />
|
784 |
-
* <label
|
785 |
-
* class="tribe-common-form-control-checkbox__label"
|
786 |
-
* for="checkboxTwo"
|
787 |
-
* >
|
788 |
-
* Checkbox Two
|
789 |
-
* </label>
|
790 |
-
* </div>
|
791 |
-
* </div>
|
792 |
-
* </fieldset>
|
793 |
-
*
|
794 |
-
* Example (Radios):
|
795 |
-
* <div class="tribe-common-form-control-checkbox-radio-group">
|
796 |
-
* <div class="tribe-common-form-control-radio">
|
797 |
-
* <input
|
798 |
-
* class="tribe-common-form-control-radio__input"
|
799 |
-
* id="radioExample"
|
800 |
-
* name="radioExample"
|
801 |
-
* type="radio"
|
802 |
-
* value="RadioExample"
|
803 |
-
* checked="checked"
|
804 |
-
* />
|
805 |
-
* <label
|
806 |
-
* class="tribe-common-form-control-radio__label"
|
807 |
-
* for="radioExample"
|
808 |
-
* >
|
809 |
-
* Radio Example
|
810 |
-
* </label>
|
811 |
-
* </div>
|
812 |
-
* </div>
|
813 |
-
*
|
814 |
-
* ----------------------------------------------------------------------------- */
|
815 |
-
|
816 |
-
.tribe-common .tribe-common-form-control-checkbox__label,
|
817 |
-
.tribe-common .tribe-common-form-control-radio__label {
|
818 |
-
cursor: pointer;
|
819 |
-
display: inline-block;
|
820 |
-
margin-left: 11px;
|
821 |
-
vertical-align: middle;
|
822 |
-
}
|
823 |
-
|
824 |
-
.tribe-common .tribe-common-form-control-checkbox__input,
|
825 |
-
.tribe-common .tribe-common-form-control-radio__input {
|
826 |
-
cursor: pointer;
|
827 |
-
display: inline-block;
|
828 |
-
margin: 0;
|
829 |
-
vertical-align: middle;
|
830 |
-
}
|
831 |
-
|
832 |
-
/* -----------------------------------------------------------------------------
|
833 |
-
* Theme Overrides - Enfold
|
834 |
-
* ----------------------------------------------------------------------------- */
|
835 |
-
|
836 |
-
#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-checkbox__input, #top .main_color .tribe-common .tribe-common-form-control-checkbox__input {
|
837 |
-
display: inline-block;
|
838 |
-
}
|
839 |
-
|
840 |
-
/* -----------------------------------------------------------------------------
|
841 |
-
*
|
842 |
-
* Form Control: Groups (Checkbox & Radio)
|
843 |
-
*
|
844 |
-
* Example:
|
845 |
-
* <div class="tribe-common-form-control-checkbox-radio-group">
|
846 |
-
* <div class="tribe-common-form-control-checkbox">
|
847 |
-
* <input id="checkboxOne" name="checkboxGroup" type="checkbox" value="checkboxOne" checked="checked" />
|
848 |
-
* <label for="checkboxOne">Checkbox One</label>
|
849 |
-
* </div>
|
850 |
-
* <div class="tribe-common-form-control-checkbox">
|
851 |
-
* <input id="checkboxTwo" name="checkboxGroup" type="checkbox" value="checkboxTwo" />
|
852 |
-
* <label for="checkboxTwo">Checkbox two</label>
|
853 |
-
* </div>
|
854 |
-
* </div>
|
855 |
-
*
|
856 |
-
* ----------------------------------------------------------------------------- */
|
857 |
-
|
858 |
-
.tribe-common .tribe-common-form-control-checkbox-radio-group > * {
|
859 |
-
margin-bottom: 15px;
|
860 |
-
}
|
861 |
-
|
862 |
-
.tribe-common .tribe-common-form-control-checkbox-radio-group > *:last-child {
|
863 |
-
margin-bottom: 0;
|
864 |
-
}
|
865 |
-
|
866 |
-
.tribe-common {
|
867 |
-
|
868 |
-
/* -----------------------------------------------------------------------------
|
869 |
-
*
|
870 |
-
* Form Control: Sliders Theme Overrides
|
871 |
-
*
|
872 |
-
* ----------------------------------------------------------------------------- */
|
873 |
-
}
|
874 |
-
|
875 |
-
/* -----------------------------------------------------------------------------
|
876 |
-
*
|
877 |
-
* Form Control: Sliders
|
878 |
-
*
|
879 |
-
* Example (Horizontal):
|
880 |
-
* <div class="tribe-common-form-control-slider">
|
881 |
-
* <input
|
882 |
-
* class="tribe-common-form-control-slider__input"
|
883 |
-
* id="sliderOne"
|
884 |
-
* type="range"
|
885 |
-
* min="0"
|
886 |
-
* max="100"
|
887 |
-
* value="50"
|
888 |
-
* />
|
889 |
-
* <label class="tribe-common-form-control-slider__label" for="sliderOne">Slider One</label>
|
890 |
-
* </div>
|
891 |
-
*
|
892 |
-
* Example (Vertical):
|
893 |
-
* <div class="tribe-common-form-control-slider tribe-common-form-control-slider--vertical">
|
894 |
-
* <label class="tribe-common-form-control-slider__label" for="sliderOne">Slider One</label>
|
895 |
-
* <input
|
896 |
-
* class="tribe-common-form-control-slider__input"
|
897 |
-
* id="sliderOne"
|
898 |
-
* type="range"
|
899 |
-
* min="0"
|
900 |
-
* max="100"
|
901 |
-
* value="50"
|
902 |
-
* />
|
903 |
-
* </div>
|
904 |
-
*
|
905 |
-
* ----------------------------------------------------------------------------- */
|
906 |
-
|
907 |
-
.tribe-common .tribe-common-form-control-slider__input {
|
908 |
-
cursor: pointer;
|
909 |
-
display: inline-block;
|
910 |
-
margin: 0;
|
911 |
-
padding: 0;
|
912 |
-
width: 120px;
|
913 |
-
vertical-align: middle;
|
914 |
-
|
915 |
-
/* -----------------------------------------------------------------------------
|
916 |
-
* Track styles
|
917 |
-
* ----------------------------------------------------------------------------- */
|
918 |
-
|
919 |
-
/* -----------------------------------------------------------------------------
|
920 |
-
* Thumb styles
|
921 |
-
* ----------------------------------------------------------------------------- */
|
922 |
-
}
|
923 |
-
|
924 |
-
.tribe-common .tribe-common-form-control-slider__label {
|
925 |
-
cursor: pointer;
|
926 |
-
display: inline-block;
|
927 |
-
margin-left: 11px;
|
928 |
-
vertical-align: middle;
|
929 |
-
}
|
930 |
-
|
931 |
-
.tribe-common .tribe-common-form-control-slider--vertical .tribe-common-form-control-slider__label {
|
932 |
-
display: block;
|
933 |
-
margin: 0 0 6px;
|
934 |
-
}
|
935 |
-
|
936 |
-
.tribe-common {
|
937 |
-
|
938 |
-
/* -----------------------------------------------------------------------------
|
939 |
-
*
|
940 |
-
* Form Control: Text Theme Overrides
|
941 |
-
*
|
942 |
-
* ----------------------------------------------------------------------------- */
|
943 |
-
}
|
944 |
-
|
945 |
-
/* -----------------------------------------------------------------------------
|
946 |
-
*
|
947 |
-
* Form Control: Text
|
948 |
-
*
|
949 |
-
* Example:
|
950 |
-
* <div class="tribe-common-form-control-text">
|
951 |
-
* <label class="tribe-common-form-control-text__label" for="textInput">Text Input</label>
|
952 |
-
* <input
|
953 |
-
* class="tribe-common-form-control-text__input"
|
954 |
-
* id="textInput"
|
955 |
-
* name="textInput"
|
956 |
-
* type="text"
|
957 |
-
* placeholder="Text Input"
|
958 |
-
* />
|
959 |
-
* </div>
|
960 |
-
*
|
961 |
-
* ----------------------------------------------------------------------------- */
|
962 |
-
|
963 |
-
.tribe-common .tribe-common-form-control-text__label {
|
964 |
-
border: 0;
|
965 |
-
clip: rect(0 0 0 0);
|
966 |
-
height: 1px;
|
967 |
-
margin: -1px;
|
968 |
-
overflow: hidden;
|
969 |
-
padding: 0;
|
970 |
-
position: absolute;
|
971 |
-
width: 1px;
|
972 |
-
}
|
973 |
-
|
974 |
-
.tribe-common .tribe-common-form-control-text__input {
|
975 |
-
height: auto;
|
976 |
-
padding: 12px 28px 12px 0;
|
977 |
-
width: 100%;
|
978 |
-
}
|
979 |
-
|
980 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input {
|
981 |
-
padding: 20px 20px 20px 40px;
|
982 |
-
}
|
983 |
-
|
984 |
-
/* -------------------------------------------------------------------------
|
985 |
-
* Theme Overrides - Enfold
|
986 |
-
* ------------------------------------------------------------------------- */
|
987 |
-
|
988 |
-
#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input, #top .main_color .tribe-common .tribe-common-form-control-text__input {
|
989 |
-
padding: 12px 28px 12px 0;
|
990 |
-
width: 100%;
|
991 |
-
}
|
992 |
-
|
993 |
-
#top.tribe-theme-enfold .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input, #top .main_color .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input {
|
994 |
-
padding: 20px 20px 20px 40px;
|
995 |
-
}
|
996 |
-
|
997 |
-
.tribe-common {
|
998 |
-
|
999 |
-
/* -----------------------------------------------------------------------------
|
1000 |
-
*
|
1001 |
-
* Form Control: Toggles Theme Overrides
|
1002 |
-
*
|
1003 |
-
* ----------------------------------------------------------------------------- */
|
1004 |
-
}
|
1005 |
-
|
1006 |
-
/* -----------------------------------------------------------------------------
|
1007 |
-
*
|
1008 |
-
* Form Control: Toggles
|
1009 |
-
*
|
1010 |
-
* Example (Horizontal):
|
1011 |
-
* <div class="tribe-common-form-control-toggle">
|
1012 |
-
* <input
|
1013 |
-
* class="tribe-common-form-control-toggle__input"
|
1014 |
-
* id="toggleOne"
|
1015 |
-
* name="toggleGroup"
|
1016 |
-
* type="checkbox"
|
1017 |
-
* value="toggleOne"
|
1018 |
-
* />
|
1019 |
-
* <label class="tribe-common-form-control-toggle__label" for="toggleOne">Toggle One</label>
|
1020 |
-
* </div>
|
1021 |
-
*
|
1022 |
-
* Example (Vertical):
|
1023 |
-
* <div class="tribe-common-form-control-toggle tribe-common-form-control-toggle--vertical">
|
1024 |
-
* <label class="tribe-common-form-control-toggle__label" for="toggleOne">Toggle One</label>
|
1025 |
-
* <input
|
1026 |
-
* class="tribe-common-form-control-toggle__input"
|
1027 |
-
* id="toggleOne"
|
1028 |
-
* name="toggleGroup"
|
1029 |
-
* type="checkbox"
|
1030 |
-
* value="toggleOne"
|
1031 |
-
* />
|
1032 |
-
* </div>
|
1033 |
-
*
|
1034 |
-
* ----------------------------------------------------------------------------- */
|
1035 |
-
|
1036 |
-
.tribe-common .tribe-common-form-control-toggle__input {
|
1037 |
-
cursor: pointer;
|
1038 |
-
display: inline-block;
|
1039 |
-
vertical-align: middle;
|
1040 |
-
}
|
1041 |
-
|
1042 |
-
.tribe-common .tribe-common-form-control-toggle__label {
|
1043 |
-
cursor: pointer;
|
1044 |
-
display: inline-block;
|
1045 |
-
margin-left: 11px;
|
1046 |
-
vertical-align: middle;
|
1047 |
-
}
|
1048 |
-
|
1049 |
-
.tribe-common .tribe-common-form-control-toggle--vertical .tribe-common-form-control-toggle__label {
|
1050 |
-
display: block;
|
1051 |
-
margin: 0 0 6px;
|
1052 |
-
}
|
1053 |
-
|
1054 |
-
/* -----------------------------------------------------------------------------
|
1055 |
-
* Theme Overrides - Enfold
|
1056 |
-
* ----------------------------------------------------------------------------- */
|
1057 |
-
|
1058 |
-
#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-toggle__input, #top .main_color .tribe-common .tribe-common-form-control-toggle__input {
|
1059 |
-
display: inline-block;
|
1060 |
-
margin: 5px 0;
|
1061 |
-
}
|
1062 |
-
|
1063 |
-
/* Grid */
|
1064 |
-
|
1065 |
-
/* -----------------------------------------------------------------------------
|
1066 |
-
* Grid: Columns
|
1067 |
-
* ----------------------------------------------------------------------------- */
|
1068 |
-
|
1069 |
-
.tribe-common .tribe-common-g-col {
|
1070 |
-
min-width: 0;
|
1071 |
-
width: 100%;
|
1072 |
-
}
|
1073 |
-
|
1074 |
-
.tribe-common {
|
1075 |
-
|
1076 |
-
/* -------------------------------------------------------------------------
|
1077 |
-
*
|
1078 |
-
* Grid Rows: Theme Overrides
|
1079 |
-
*
|
1080 |
-
* ------------------------------------------------------------------------- */
|
1081 |
-
}
|
1082 |
-
|
1083 |
-
/* -----------------------------------------------------------------------------
|
1084 |
-
*
|
1085 |
-
* Grid: Rows
|
1086 |
-
*
|
1087 |
-
* Example:
|
1088 |
-
* <div class="g-row">
|
1089 |
-
* <div class="g-col">
|
1090 |
-
* <p>Component or another grid layout, perhaps?</p>
|
1091 |
-
* </div>
|
1092 |
-
* </div>
|
1093 |
-
*
|
1094 |
-
* ----------------------------------------------------------------------------- */
|
1095 |
-
|
1096 |
-
.tribe-common .tribe-common-g-row {
|
1097 |
-
display: -webkit-box;
|
1098 |
-
display: flex;
|
1099 |
-
flex-wrap: wrap;
|
1100 |
-
}
|
1101 |
-
|
1102 |
-
.tribe-common .tribe-common-g-row--gutters {
|
1103 |
-
margin-left: -21px;
|
1104 |
-
margin-right: -21px;
|
1105 |
-
}
|
1106 |
-
|
1107 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-g-row--gutters {
|
1108 |
-
margin-left: -24px;
|
1109 |
-
margin-right: -24px;
|
1110 |
-
}
|
1111 |
-
|
1112 |
-
.tribe-common .tribe-common-g-row--gutters > .tribe-common-g-col {
|
1113 |
-
padding-left: 21px;
|
1114 |
-
padding-right: 21px;
|
1115 |
-
}
|
1116 |
-
|
1117 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-g-row--gutters > .tribe-common-g-col {
|
1118 |
-
padding-left: 24px;
|
1119 |
-
padding-right: 24px;
|
1120 |
-
}
|
1121 |
-
|
1122 |
-
/* -----------------------------------------------------------------------------
|
1123 |
-
* Theme Overrides - Twenty Nineteen
|
1124 |
-
* ----------------------------------------------------------------------------- */
|
1125 |
-
|
1126 |
-
.tribe-theme-twentynineteen .tribe-common .entry.tribe-common-g-row--gutters {
|
1127 |
-
margin-left: -21px;
|
1128 |
-
margin-right: -21px;
|
1129 |
-
padding: 0;
|
1130 |
-
}
|
1131 |
-
|
1132 |
-
.tribe-theme-twentynineteen .tribe-common.tribe-common--breakpoint-medium .entry.tribe-common-g-row--gutters {
|
1133 |
-
margin-left: -24px;
|
1134 |
-
margin-right: -24px;
|
1135 |
-
}
|
1136 |
-
|
1137 |
-
.tribe-theme-twentynineteen .tribe-common .tribe-common-g-row--gutters > .entry.tribe-common-g-col {
|
1138 |
-
margin: 0;
|
1139 |
-
padding-left: 21px;
|
1140 |
-
padding-right: 21px;
|
1141 |
-
}
|
1142 |
-
|
1143 |
-
.tribe-theme-twentynineteen .tribe-common.tribe-common--breakpoint-medium .tribe-common-g-row--gutters > .entry.tribe-common-g-col {
|
1144 |
-
padding-left: 24px;
|
1145 |
-
padding-right: 24px;
|
1146 |
-
}
|
1147 |
-
|
1148 |
-
/* Typography */
|
1149 |
-
|
1150 |
-
.tribe-common {
|
1151 |
-
|
1152 |
-
/* -------------------------------------------------------------------------
|
1153 |
-
*
|
1154 |
-
* Anchor: Theme Overrides
|
1155 |
-
*
|
1156 |
-
* ------------------------------------------------------------------------- */
|
1157 |
-
|
1158 |
-
/* -------------------------------------------------------------------------
|
1159 |
-
*
|
1160 |
-
* Anchor
|
1161 |
-
*
|
1162 |
-
* Example:
|
1163 |
-
* <a class="tribe-common-anchor">Anchor Text</a>
|
1164 |
-
* <a class="tribe-common-anchor-alt">Anchor Alt Text</a>
|
1165 |
-
* <a class="tribe-common-anchor-thin">Anchor Thin Text</a>
|
1166 |
-
*
|
1167 |
-
* ------------------------------------------------------------------------- */
|
1168 |
-
|
1169 |
-
/* -------------------------------------------------------------------------
|
1170 |
-
*
|
1171 |
-
* Anchor: Theme Overrides
|
1172 |
-
*
|
1173 |
-
* ------------------------------------------------------------------------- */
|
1174 |
-
}
|
1175 |
-
|
1176 |
-
.tribe-common a {
|
1177 |
-
cursor: pointer;
|
1178 |
-
}
|
1179 |
-
|
1180 |
-
/* .tribe-common { */
|
1181 |
-
|
1182 |
-
/* -------------------------------------------------------------------------
|
1183 |
-
*
|
1184 |
-
* Body
|
1185 |
-
*
|
1186 |
-
* Example:
|
1187 |
-
* <p class="tribe-common-b1">Text here</p>
|
1188 |
-
*
|
1189 |
-
* ------------------------------------------------------------------------- */
|
1190 |
-
|
1191 |
-
/* -------------------------------------------------------------------------
|
1192 |
-
* Body 1
|
1193 |
-
* ------------------------------------------------------------------------- */
|
1194 |
-
|
1195 |
-
/* -------------------------------------------------------------------------
|
1196 |
-
* Body 2
|
1197 |
-
* ------------------------------------------------------------------------- */
|
1198 |
-
|
1199 |
-
/* -------------------------------------------------------------------------
|
1200 |
-
* Body 3
|
1201 |
-
* ------------------------------------------------------------------------- */
|
1202 |
-
|
1203 |
-
/* -------------------------------------------------------------------------
|
1204 |
-
* Body 1 for --viewport-medium
|
1205 |
-
* ------------------------------------------------------------------------- */
|
1206 |
-
|
1207 |
-
/* -------------------------------------------------------------------------
|
1208 |
-
* Body 2 for --viewport-medium
|
1209 |
-
* ------------------------------------------------------------------------- */
|
1210 |
-
|
1211 |
-
/* -------------------------------------------------------------------------
|
1212 |
-
* Body 3 for --viewport-medium
|
1213 |
-
* ------------------------------------------------------------------------- */
|
1214 |
-
|
1215 |
-
/* } */
|
1216 |
-
|
1217 |
-
/* .tribe-common { */
|
1218 |
-
|
1219 |
-
/* -------------------------------------------------------------------------
|
1220 |
-
*
|
1221 |
-
* CTA
|
1222 |
-
*
|
1223 |
-
* Example:
|
1224 |
-
* <a class="tribe-common-cta">Link Text</a>
|
1225 |
-
* <a class="tribe-common-cta tribe-common-cta--alt">Link Text Alt</a>
|
1226 |
-
*
|
1227 |
-
* ------------------------------------------------------------------------- */
|
1228 |
-
|
1229 |
-
/* -------------------------------------------------------------------------
|
1230 |
-
*
|
1231 |
-
* CTA: Theme Overrides
|
1232 |
-
*
|
1233 |
-
* ------------------------------------------------------------------------- */
|
1234 |
-
|
1235 |
-
/* } */
|
1236 |
-
|
1237 |
-
/* .tribe-common { */
|
1238 |
-
|
1239 |
-
/* -------------------------------------------------------------------------
|
1240 |
-
*
|
1241 |
-
* Heading
|
1242 |
-
*
|
1243 |
-
* Example:
|
1244 |
-
* <h1 class="tribe-common-h1">Heading Text</h1>
|
1245 |
-
*
|
1246 |
-
* ------------------------------------------------------------------------- */
|
1247 |
-
|
1248 |
-
/* -------------------------------------------------------------------------
|
1249 |
-
* Heading: h1
|
1250 |
-
* ------------------------------------------------------------------------- */
|
1251 |
-
|
1252 |
-
/* -------------------------------------------------------------------------
|
1253 |
-
* Heading: h2
|
1254 |
-
* ------------------------------------------------------------------------- */
|
1255 |
-
|
1256 |
-
/* -------------------------------------------------------------------------
|
1257 |
-
* Heading: h3
|
1258 |
-
* ------------------------------------------------------------------------- */
|
1259 |
-
|
1260 |
-
/* -------------------------------------------------------------------------
|
1261 |
-
* Heading: h4
|
1262 |
-
* ------------------------------------------------------------------------- */
|
1263 |
-
|
1264 |
-
/* -------------------------------------------------------------------------
|
1265 |
-
* Heading: h5
|
1266 |
-
* ------------------------------------------------------------------------- */
|
1267 |
-
|
1268 |
-
/* -------------------------------------------------------------------------
|
1269 |
-
* Heading: h6
|
1270 |
-
* ------------------------------------------------------------------------- */
|
1271 |
-
|
1272 |
-
/* -------------------------------------------------------------------------
|
1273 |
-
* Heading: h7
|
1274 |
-
* ------------------------------------------------------------------------- */
|
1275 |
-
|
1276 |
-
/* -------------------------------------------------------------------------
|
1277 |
-
* Heading: h8
|
1278 |
-
* ------------------------------------------------------------------------- */
|
1279 |
-
|
1280 |
-
/* -------------------------------------------------------------------------
|
1281 |
-
* Heading: h3 for --viewport-medium
|
1282 |
-
* ------------------------------------------------------------------------- */
|
1283 |
-
|
1284 |
-
/* -------------------------------------------------------------------------
|
1285 |
-
* Heading: h4 for --viewport-medium
|
1286 |
-
* ------------------------------------------------------------------------- */
|
1287 |
-
|
1288 |
-
/* -------------------------------------------------------------------------
|
1289 |
-
* Heading: h5 for --viewport-medium
|
1290 |
-
* ------------------------------------------------------------------------- */
|
1291 |
-
|
1292 |
-
/* -------------------------------------------------------------------------
|
1293 |
-
* Heading: h6 for --viewport-medium
|
1294 |
-
* ------------------------------------------------------------------------- */
|
1295 |
-
|
1296 |
-
/* -------------------------------------------------------------------------
|
1297 |
-
* Heading: h7 for --viewport-medium
|
1298 |
-
* ------------------------------------------------------------------------- */
|
1299 |
-
|
1300 |
-
/* -------------------------------------------------------------------------
|
1301 |
-
* Heading: alt style
|
1302 |
-
* ------------------------------------------------------------------------- */
|
1303 |
-
|
1304 |
-
/* -------------------------------------------------------------------------
|
1305 |
-
*
|
1306 |
-
* Heading: Theme Overrides
|
1307 |
-
*
|
1308 |
-
* ------------------------------------------------------------------------- */
|
1309 |
-
|
1310 |
-
/* } */
|
1311 |
-
|
1312 |
-
.tribe-common {
|
1313 |
-
/* -------------------------------------------------------------------------
|
1314 |
-
* Lists
|
1315 |
-
* ------------------------------------------------------------------------- */
|
1316 |
-
|
1317 |
-
/* -----------------------------------------------------------------------------
|
1318 |
-
*
|
1319 |
-
* Lists: Theme Overrides
|
1320 |
-
*
|
1321 |
-
* ----------------------------------------------------------------------------- */
|
1322 |
-
}
|
1323 |
-
|
1324 |
-
/* -------------------------------------------------------------------------
|
1325 |
-
* Theme Overrides - Divi
|
1326 |
-
* ------------------------------------------------------------------------- */
|
1327 |
-
|
1328 |
-
.tribe-theme-divi #left-area .tribe-common ul,
|
1329 |
-
.tribe-theme-divi .entry-content .tribe-common ul,
|
1330 |
-
body.et-pb-preview.tribe-theme-divi #main-content .container .tribe-common ul {
|
1331 |
-
list-style-type: none;
|
1332 |
-
padding: 0;
|
1333 |
-
}
|
1334 |
-
|
1335 |
-
/* -------------------------------------------------------------------------
|
1336 |
-
* Theme Overrides - Genesis
|
1337 |
-
* ------------------------------------------------------------------------- */
|
1338 |
-
|
1339 |
-
.entry-content .tribe-common ul > li,
|
1340 |
-
.entry-content .tribe-common ol > li {
|
1341 |
-
list-style-type: none;
|
1342 |
-
}
|
1343 |
-
|
1344 |
-
.tribe-common {
|
1345 |
-
|
1346 |
-
/* -------------------------------------------------------------------------
|
1347 |
-
*
|
1348 |
-
* Button: Theme Overrides
|
1349 |
-
*
|
1350 |
-
* ------------------------------------------------------------------------- */
|
1351 |
-
|
1352 |
-
}
|
1353 |
-
|
1354 |
-
/* -------------------------------------------------------------------------
|
1355 |
-
* Button
|
1356 |
-
* ------------------------------------------------------------------------- */
|
1357 |
-
|
1358 |
-
.tribe-common button {
|
1359 |
-
padding: 0;
|
1360 |
-
}
|
1361 |
-
|
1362 |
-
/* -----------------------------------------------------------------------------
|
1363 |
-
*
|
1364 |
-
* Layout: Global Content Container
|
1365 |
-
*
|
1366 |
-
* ----------------------------------------------------------------------------- */
|
1367 |
-
|
1368 |
-
.tribe-common .tribe-common-l-container {
|
1369 |
-
max-width: 1260px;
|
1370 |
-
margin-left: auto;
|
1371 |
-
margin-right: auto;
|
1372 |
-
padding-left: 19.5px;
|
1373 |
-
padding-right: 19.5px;
|
1374 |
-
width: 100%;
|
1375 |
-
}
|
1376 |
-
|
1377 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-l-container {
|
1378 |
-
padding-left: 42px;
|
1379 |
-
padding-right: 42px;
|
1380 |
-
}
|
1381 |
-
|
1382 |
-
/* -------------------------------------------------------------------------
|
1383 |
-
* SVG Icons
|
1384 |
-
* ------------------------------------------------------------------------- */
|
1385 |
-
|
1386 |
-
.tribe-common .tribe-common-svgicon {
|
1387 |
-
background-repeat: no-repeat;
|
1388 |
-
background-size: contain;
|
1389 |
-
}
|
1390 |
-
|
1391 |
-
.tribe-common .tribe-common-svgicon--close {
|
1392 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cg fill='none' fill-rule='evenodd' stroke-linecap='square' stroke-width='2'%3E%3Cpath d='M16 2L2 16M16 16L2 2' stroke='%235D5D5D'/%3E%3C/g%3E%3C/svg%3E");
|
1393 |
-
}
|
1394 |
-
|
1395 |
-
.tribe-common .tribe-common-svgicon--close-secondary {
|
1396 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cg fill='none' fill-rule='evenodd' stroke-linecap='square' stroke-width='2'%3E%3Cpath d='M16 2L2 16M16 16L2 2' stroke='%23BABABA'/%3E%3C/g%3E%3C/svg%3E");
|
1397 |
-
}
|
1398 |
-
|
1399 |
-
.tribe-common .tribe-common-svgicon--day {
|
1400 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='21' height='21' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 .503v19.994c0 .278.19.503.424.503h20.152c.234 0 .424-.225.424-.503V.503C21 .225 20.81 0 20.576 0H.424C.19 0 0 .225 0 .503zm1.156.943h18.66v2.7H1.157v-2.7zm0 4.023h18.66V19.55H1.157V5.469zM14.18 14.53v1.747c0 .482.39.874.873.874h1.747a.873.873 0 0 0 .873-.874v-1.747a.873.873 0 0 0-.873-.873h-1.747a.873.873 0 0 0-.873.873z' fill='%23141827' fill-rule='nonzero'/%3E%3C/svg%3E");
|
1401 |
-
}
|
1402 |
-
|
1403 |
-
.tribe-common .tribe-common-svgicon--filters {
|
1404 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%23727272' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0M3 15v-2' stroke='%235D5D5D'/%3E%3Ccircle cx='3' cy='9' r='3' stroke='%235D5D5D'/%3E%3Cpath d='M12 9v6' stroke='%235D5D5D'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)' stroke='%235D5D5D'/%3E%3C/g%3E%3C/svg%3E");
|
1405 |
-
}
|
1406 |
-
|
1407 |
-
.tribe-common .tribe-common-svgicon--list {
|
1408 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cdefs/%3E%3Cg fill='%23141827' fill-rule='evenodd'%3E%3Cpath fill-rule='nonzero' d='M0 .50378788V20.5332919c0 .278234.19022354.5037879.42487547.5037879H20.6133064c.2346519 0 .4248754-.2255539.4248754-.5037879V.50378788C21.0381818.22555389 20.8479583 0 20.6133064 0H.42487547C.19022355 0 0 .2255539 0 .50378788zm1.1580346.94435628h18.6945206v2.70490149H1.1580346V1.44814416zm0 2.70490796h18.6945206V19.5845078H1.1580346V4.15305212z' fill='%23141827'/%3E%3Cpath d='M13.38928235 5.73125033V7.860417c0 .58795234.48212125 1.06458333 1.07684605 1.06458333h2.1536922c.5947248 0 1.0768461-.47663099 1.0768461-1.06458333V5.73125033c0-.58795234-.4821213-1.06458333-1.0768461-1.06458333h-2.1536922c-.5947248 0-1.07684605.476631-1.07684605 1.06458333z' fill='%23141827'/%3E%3Cpath fill-rule='nonzero' d='M8.83943685 8.936667c.28648654 0 .52088465-.23521914.52088465-.5227092v-.4245816c0-.28749006-.23439811-.5227092-.52088465-.5227092h-4.8185522C3.7343981 7.466667 3.5 7.70188614 3.5 7.9893762v.4245816c0 .28749006.2343981.5227092.52088465.5227092h4.8185522zM10.9041036 6.136667c.28648654 0 .52088465-.23521914.52088465-.5227092v-.4245816c0-.28749006-.23439811-.5227092-.52088465-.5227092H4.02088465C3.7343981 4.666667 3.5 4.90188614 3.5 5.1893762v.4245816c0 .28749006.2343981.5227092.52088465.5227092h6.88321895z' fill='%23141827'/%3E%3Cg%3E%3Cpath d='M13.38928235 12.73125033V14.860417c0 .58795234.48212125 1.06458333 1.07684605 1.06458333h2.1536922c.5947248 0 1.0768461-.47663099 1.0768461-1.06458333v-2.12916667c0-.58795234-.4821213-1.06458333-1.0768461-1.06458333h-2.1536922c-.5947248 0-1.07684605.476631-1.07684605 1.06458333z' fill='%23141827'/%3E%3Cpath fill-rule='nonzero' d='M8.83943685 15.936667c.28648654 0 .52088465-.23521914.52088465-.5227092v-.4245816c0-.28749006-.23439811-.5227092-.52088465-.5227092h-4.8185522c-.28648655 0-.52088465.23521914-.52088465.5227092v.4245816c0 .28749006.2343981.5227092.52088465.5227092h4.8185522zM10.9041036 13.136667c.28648654 0 .52088465-.23521914.52088465-.5227092v-.4245816c0-.28749006-.23439811-.5227092-.52088465-.5227092H4.02088465c-.28648655 0-.52088465.23521914-.52088465.5227092v.4245816c0 .28749006.2343981.5227092.52088465.5227092h6.88321895z' fill='%23141827'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
|
1409 |
-
}
|
1410 |
-
|
1411 |
-
.tribe-common .tribe-common-svgicon--map {
|
1412 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cdefs/%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill-rule='nonzero' stroke-width='.7'%3E%3Cpath fill='%23141827' stroke='%23141827' d='M10.66992557 17.2092094c.18208949-.2244634 4.46052505-5.52626362 4.46052505-8.17980983 0-2.72724863-2.08535521-4.94606657-4.64855882-4.94606657-2.56320359 0-4.6485588 2.21881794-4.6485588 4.94606657 0 2.65354618 4.27843556 7.95534643 4.46052504 8.17980983.04719041.0580842.11585307.0915149.18803376.0915149.0721807 0 .14084336-.0334307.18803377-.0915149zM6.33022741 9.02939957c0-2.43579482 1.86238353-4.41737092 4.15166439-4.41737092 2.28928088 0 4.15166441 1.9815761 4.15166441 4.41737092 0 2.15995923-3.31788627 6.53241163-4.15166441 7.59703123-.83377813-1.0644905-4.15166439-5.43616846-4.15166439-7.59703123z'/%3E%3Cpath fill='%23141827' stroke='%23000' d='M12.05539077 9.03985474c0-.91098834-.70589102-1.65217392-1.57349897-1.65217392-.86760794 0-1.57349896.74118558-1.57349896 1.65217392 0 .91098834.70589102 1.65217392 1.57349896 1.65217392.86760795 0 1.57349897-.74118558 1.57349897-1.65217392zm-2.85036002 0c0-.73928452.57278056-1.34070411 1.27686105-1.34070411.70408051 0 1.27686107.60141959 1.27686107 1.34070411 0 .73928452-.57278056 1.34070411-1.27686107 1.34070411-.70408049 0-1.27686105-.60141959-1.27686105-1.34070411z'/%3E%3C/g%3E%3Cpath fill='%23141827' fill-rule='nonzero' d='M0 .50378788V20.5332919c0 .278234.19022354.5037879.42487547.5037879H20.6133064c.2346519 0 .4248754-.2255539.4248754-.5037879V.50378788C21.0381818.22555389 20.8479583 0 20.6133064 0H.42487547C.19022355 0 0 .2255539 0 .50378788zm1.1580346.94435628h18.6945206v2.70490796H1.1580346V1.44814416zm0 2.70490796h18.6945206V19.5845078H1.1580346V4.15305212z'/%3E%3C/g%3E%3C/svg%3E");
|
1413 |
-
}
|
1414 |
-
|
1415 |
-
.tribe-common .tribe-common-svgicon--month {
|
1416 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='22' height='22' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.637 1.063v19.879c0 .276.189.5.422.5h20.037c.232 0 .421-.224.421-.5V1.062c0-.275-.189-.5-.421-.5H1.059c-.233 0-.422.225-.422.5zM1.787 2H20.34v2.685H1.787V2zm0 4H20.34v14H1.787V6zM8 8.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm-8 4v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm-12 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm0 4v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5z' fill='%23141827' fill-rule='nonzero'/%3E%3C/svg%3E");
|
1417 |
-
}
|
1418 |
-
|
1419 |
-
.tribe-common .tribe-common-svgicon--no-map {
|
1420 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='92' height='92' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill-rule='nonzero' fill='none'%3E%3Cg stroke='%23141827' stroke-width='2.5' transform='translate(2 2)'%3E%3Cpath d='M32.219 88S0 58.674 0 32.281C-.011 15.598 12.685 1.66 29.278.136c16.593-1.523 31.608 9.873 34.627 26.28M32.733 88s2.96-2.693 7.083-7.181' stroke-linecap='round'/%3E%3Ccircle cx='33' cy='33' r='8.905'/%3E%3Ccircle cx='65.127' cy='59.016' r='23.571'/%3E%3C/g%3E%3Cg transform='translate(64.857 47.048)'%3E%3Ccircle fill='%23111' cx='2.839' cy='26.495' r='2.839'/%3E%3Cpath d='M2.642 0v18.925' stroke='%23141827' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
|
1421 |
-
}
|
1422 |
-
|
1423 |
-
.tribe-common .tribe-common-svgicon--photo {
|
1424 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 21'%3E%3Cdefs/%3E%3Cg fill='%23141827' fill-rule='nonzero'%3E%3Cpath d='M20.4070967 0H.57757675C.25413377 0 0 .24803922 0 .5637255v19.872549C0 20.7519607.25413377 21 .57757676 21H20.4070967c.323443 0 .5775767-.2480393.5775767-.5637255V.5637255C20.9846734.24803921 20.7305397 0 20.4070967 0zm-.6006799 1.15v14.8679567l-2.2249804-3.4274509c-.6468859-.6764706-1.8482455-.6764706-2.4951316 0l-1.5479057 1.6460784-4.48199558-5.02843135c-.34654605-.38333333-.83171053-.58627451-1.36308114-.58627451-.50826755 0-1.01653509.22549021-1.33997808.60882354L1.17825658 14.9807019V1.15H19.8064168zM1.17825658 19.8499999v-3.1330235l6.0530044-6.76470589c.11551535-.13529412.27723684-.20294118.4620614-.20294118.16172149 0 .36964912.06764706.48516448.20294118l4.92095394 5.52450979c.1155153.1127452.2772369.2029412.4389583.2029412.1848246.022549.3234431-.067647.4389583-.1803922l1.9868641-2.1196078c.1848246-.2029412.5544737-.2029412.7624013 0l3.1028972 4.3519608v2.1408666H1.17825658v-.022549z' fill='%23141827'/%3E%3Cpath d='M14.9552083 9.04117648c1.159375 0 2.121875-.96960785 2.121875-2.18725491 0-1.21764705-.940625-2.1872549-2.121875-2.1872549-1.18125 0-2.121875.96960785-2.121875 2.1872549 0 1.21764706.9625 2.18725491 2.121875 2.18725491zm0-3.22450981c.546875 0 1.00625.47352941 1.00625 1.0372549 0 .5637255-.459375 1.03725491-1.00625 1.03725491-.546875 0-1.00625-.47352941-1.00625-1.03725491 0-.56372549.459375-1.0372549 1.00625-1.0372549z' fill='%23141827'/%3E%3C/g%3E%3C/svg%3E");
|
1425 |
-
}
|
1426 |
-
|
1427 |
-
.tribe-common .tribe-common-svgicon--search {
|
1428 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%235D5D5D'/%3E%3C/svg%3E");
|
1429 |
-
}
|
1430 |
-
|
1431 |
-
.tribe-common .tribe-common-svgicon--week {
|
1432 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='21' height='21' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 .503v19.994c0 .278.19.503.424.503h20.152c.234 0 .424-.225.424-.503V.503C21 .225 20.81 0 20.576 0H.424C.19 0 0 .225 0 .503zm1.156.943h18.66v2.7H1.157v-2.7zm0 4.023h18.66V19.55H1.157V5.469zm6.25 6.537v1.006c0 .278.224.503.502.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502H7.908a.503.503 0 0 0-.503.502zm4.022 0v1.006c0 .278.225.503.503.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502H11.93a.503.503 0 0 0-.503.502zm4.023 0v1.006c0 .278.225.503.503.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502h-1.006a.503.503 0 0 0-.503.502zm-12.069 0v1.006c0 .278.225.503.503.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502H3.885a.503.503 0 0 0-.503.502z' fill='%23141827' fill-rule='nonzero'/%3E%3C/svg%3E");
|
1433 |
-
}
|
1434 |
-
|
1435 |
-
.tribe-common .tribe-common-svgicon--featured {
|
1436 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h16v20l-7.902-5.122L0 20z' fill='%23141827'/%3E%3C/svg%3E");
|
1437 |
-
height: 10px;
|
1438 |
-
width: 8px;
|
1439 |
-
}
|
1440 |
-
|
1441 |
-
.tribe-common .tribe-common-svgicon--recurring {
|
1442 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.333 3.826c0 .065 0 .13-.02.174 0 .022-.02.065-.02.087a.9.9 0 0 1-.197.37L10.45 7.37a.797.797 0 0 1-.592.26.797.797 0 0 1-.593-.26c-.316-.348-.316-.935 0-1.305l1.225-1.348H6.3C3.753 4.717 1.66 7 1.66 9.827c0 1.369.474 2.651 1.363 3.608.316.348.316.935 0 1.304A.797.797 0 0 1 2.43 15a.797.797 0 0 1-.593-.26C.652 13.434 0 11.695 0 9.847c0-3.826 2.825-6.935 6.301-6.935h4.208L9.284 1.565c-.316-.348-.316-.935 0-1.304.316-.348.85-.348 1.185 0l2.647 2.913c.099.109.158.239.198.37 0 .021.02.065.02.086v.196zM20 10.152c0 3.826-2.825 6.935-6.301 6.935H9.49l1.225 1.348c.336.348.336.935 0 1.304a.797.797 0 0 1-.593.261.83.83 0 0 1-.592-.26l-2.627-2.936a.948.948 0 0 1-.198-.37c0-.021-.02-.064-.02-.086-.02-.065-.02-.109-.02-.174 0-.065 0-.13.02-.174 0-.022.02-.065.02-.087a.9.9 0 0 1 .198-.37L9.55 12.63c.316-.347.849-.347 1.185 0 .336.348.336.935 0 1.305L9.51 15.283h4.208c2.548 0 4.641-2.283 4.641-5.11 0-1.369-.474-2.651-1.362-3.608a.97.97 0 0 1 0-1.304c.316-.348.849-.348 1.185 0C19.348 6.543 20 8.283 20 10.152z' fill='%23141827'/%3E%3C/svg%3E");
|
1443 |
-
height: 10px;
|
1444 |
-
width: 10px;
|
1445 |
-
}
|
1446 |
-
|
1447 |
-
.tribe-common .tribe-common-svgicon--search {
|
1448 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%235D5D5D'/%3E%3C/svg%3E");
|
1449 |
-
}
|
1450 |
-
|
1451 |
-
.tribe-common .tribe-common-svgicon--filters {
|
1452 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%23727272' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0M3 15v-2' stroke='%235D5D5D'/%3E%3Ccircle cx='3' cy='9' r='3' stroke='%235D5D5D'/%3E%3Cpath d='M12 9v6' stroke='%235D5D5D'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)' stroke='%235D5D5D'/%3E%3C/g%3E%3C/svg%3E");
|
1453 |
-
}
|
1454 |
-
|
1455 |
-
.tribe-common .tribe-common-svgicon--close {
|
1456 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cg fill='none' fill-rule='evenodd' stroke-linecap='square' stroke-width='2'%3E%3Cpath d='M16 2L2 16M16 16L2 2' stroke='%235D5D5D'/%3E%3C/g%3E%3C/svg%3E");
|
1457 |
-
}
|
1458 |
-
|
1459 |
-
/* .tribe-common { */
|
1460 |
-
|
1461 |
-
/* -----------------------------------------------------------------------------
|
1462 |
-
*
|
1463 |
-
* Tables
|
1464 |
-
*
|
1465 |
-
* ----------------------------------------------------------------------------- */
|
1466 |
-
|
1467 |
-
/* -----------------------------------------------------------------------------
|
1468 |
-
* Tables: Theme Overrides
|
1469 |
-
* ----------------------------------------------------------------------------- */
|
1470 |
-
|
1471 |
-
/* } */
|
1472 |
-
|
1473 |
-
/* A11y */
|
1474 |
-
|
1475 |
-
/* -----------------------------------------------------------------------------
|
1476 |
-
*
|
1477 |
-
* A11y
|
1478 |
-
*
|
1479 |
-
* This file is just a clearing-house.
|
1480 |
-
* Make partials (start with an underscore) for any actual css code.
|
1481 |
-
*
|
1482 |
-
* ----------------------------------------------------------------------------- */
|
1483 |
-
|
1484 |
-
/* -----------------------------------------------------------------------------
|
1485 |
-
* Hide from screenreaders & browsers
|
1486 |
-
* ----------------------------------------------------------------------------- */
|
1487 |
-
|
1488 |
-
.tribe-common .tribe-common-a11y-hidden {
|
1489 |
-
display: none !important;
|
1490 |
-
visibility: hidden;
|
1491 |
-
}
|
1492 |
-
|
1493 |
-
/* -----------------------------------------------------------------------------
|
1494 |
-
* Hide from browsers & show for screenreaders
|
1495 |
-
* ----------------------------------------------------------------------------- */
|
1496 |
-
|
1497 |
-
.tribe-common .tribe-common-a11y-visual-hide {
|
1498 |
-
border: 0;
|
1499 |
-
clip: rect(0 0 0 0);
|
1500 |
-
height: 1px;
|
1501 |
-
margin: -1px;
|
1502 |
-
overflow: hidden;
|
1503 |
-
padding: 0;
|
1504 |
-
position: absolute;
|
1505 |
-
width: 1px;
|
1506 |
-
}
|
1507 |
-
|
1508 |
-
/* -----------------------------------------------------------------------------
|
1509 |
-
* Show for browsers & screenreaders
|
1510 |
-
* ----------------------------------------------------------------------------- */
|
1511 |
-
|
1512 |
-
.tribe-common .tribe-common-a11y-visual-show {
|
1513 |
-
border: 0;
|
1514 |
-
clip: rect(0 0 0 0);
|
1515 |
-
height: 1px;
|
1516 |
-
margin: -1px;
|
1517 |
-
overflow: hidden;
|
1518 |
-
padding: 0;
|
1519 |
-
position: absolute;
|
1520 |
-
width: 1px;
|
1521 |
-
}
|
1522 |
-
|
1523 |
-
/* Components */
|
1524 |
-
|
1525 |
-
/* -----------------------------------------------------------------------------
|
1526 |
-
*
|
1527 |
-
* Components Skeleton
|
1528 |
-
*
|
1529 |
-
* This file is just a clearing-house.
|
1530 |
-
* Make partials (start with an underscore) for any actual css code.
|
1531 |
-
*
|
1532 |
-
* ----------------------------------------------------------------------------- */
|
1533 |
-
|
1534 |
-
/* Buttons */
|
1535 |
-
|
1536 |
-
.tribe-common {
|
1537 |
-
|
1538 |
-
/* -------------------------------------------------------------------------
|
1539 |
-
*
|
1540 |
-
* Button: Border - Theme Overrides
|
1541 |
-
*
|
1542 |
-
* ------------------------------------------------------------------------- */
|
1543 |
-
}
|
1544 |
-
|
1545 |
-
/* -----------------------------------------------------------------------------
|
1546 |
-
*
|
1547 |
-
* Button: Border
|
1548 |
-
*
|
1549 |
-
* Example:
|
1550 |
-
* <button class="tribe-common-c-btn-border">...</button>
|
1551 |
-
* <a href="#" class="tribe-common-c-btn-border">...</a>
|
1552 |
-
*
|
1553 |
-
* ----------------------------------------------------------------------------- */
|
1554 |
-
|
1555 |
-
.tribe-common .tribe-common-c-btn-border,
|
1556 |
-
.tribe-common a.tribe-common-c-btn-border {
|
1557 |
-
padding: 14px 20px 14px;
|
1558 |
-
width: 100%;
|
1559 |
-
}
|
1560 |
-
|
1561 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn-border, .tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn-border {
|
1562 |
-
padding: 6px 15px;
|
1563 |
-
width: auto;
|
1564 |
-
}
|
1565 |
-
|
1566 |
-
.tribe-common {
|
1567 |
-
|
1568 |
-
/* -----------------------------------------------------------------------------
|
1569 |
-
*
|
1570 |
-
* Button: Icon Border
|
1571 |
-
*
|
1572 |
-
* Example:
|
1573 |
-
* <button class="tribe-common-c-btn-icon tribe-common-c-btn-icon--border tribe-common-c-btn-icon--filter">...</button>
|
1574 |
-
* <a href="#" class="tribe-common-c-btn-icon tribe-common-c-btn-icon--border tribe-common-c-btn-icon--filter">...</a>
|
1575 |
-
*
|
1576 |
-
* ----------------------------------------------------------------------------- */
|
1577 |
-
|
1578 |
-
/* -------------------------------------------------------------------------
|
1579 |
-
*
|
1580 |
-
* Button: Icon Border - Theme Overrides
|
1581 |
-
*
|
1582 |
-
* ------------------------------------------------------------------------- */
|
1583 |
-
}
|
1584 |
-
|
1585 |
-
/* -----------------------------------------------------------------------------
|
1586 |
-
*
|
1587 |
-
* Button: Icon
|
1588 |
-
*
|
1589 |
-
* Example:
|
1590 |
-
* <button class="tribe-common-c-btn-icon tribe-common-c-btn-icon--filter">...</button>
|
1591 |
-
* <a href="#" class="tribe-common-c-btn-icon tribe-common-c-btn-icon--filter">...</a>
|
1592 |
-
*
|
1593 |
-
* ----------------------------------------------------------------------------- */
|
1594 |
-
|
1595 |
-
.tribe-common .tribe-common-c-btn-icon:before {
|
1596 |
-
background-repeat: no-repeat;
|
1597 |
-
background-size: contain;
|
1598 |
-
content: '';
|
1599 |
-
display: block;
|
1600 |
-
}
|
1601 |
-
|
1602 |
-
/* -----------------------------------------------------------------------------
|
1603 |
-
* Button: Icon Caret Left
|
1604 |
-
* ----------------------------------------------------------------------------- */
|
1605 |
-
|
1606 |
-
.tribe-common .tribe-common-c-btn-icon--caret-left:before {
|
1607 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z' fill='%23BABABA'/%3E%3C/svg%3E");
|
1608 |
-
height: 20px;
|
1609 |
-
width: 12px;
|
1610 |
-
}
|
1611 |
-
|
1612 |
-
.tribe-common .tribe-common-c-btn-icon--caret-left:active:before, .tribe-common .tribe-common-c-btn-icon--caret-left:hover:before, .tribe-common .tribe-common-c-btn-icon--caret-left:focus:before {
|
1613 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z' fill='%235D5D5D'/%3E%3C/svg%3E");
|
1614 |
-
}
|
1615 |
-
|
1616 |
-
.tribe-common .tribe-common-c-btn-icon--caret-left:disabled:before {
|
1617 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z' fill='%23D5D5D5'/%3E%3C/svg%3E");
|
1618 |
-
}
|
1619 |
-
|
1620 |
-
/* -----------------------------------------------------------------------------
|
1621 |
-
* Button: Icon Caret Right
|
1622 |
-
* ----------------------------------------------------------------------------- */
|
1623 |
-
|
1624 |
-
.tribe-common .tribe-common-c-btn-icon--caret-right:before {
|
1625 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z' fill='%23BABABA'/%3E%3C/svg%3E");
|
1626 |
-
height: 20px;
|
1627 |
-
width: 12px;
|
1628 |
-
}
|
1629 |
-
|
1630 |
-
.tribe-common .tribe-common-c-btn-icon--caret-right:active:before, .tribe-common .tribe-common-c-btn-icon--caret-right:hover:before, .tribe-common .tribe-common-c-btn-icon--caret-right:focus:before {
|
1631 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z' fill='%235D5D5D'/%3E%3C/svg%3E");
|
1632 |
-
}
|
1633 |
-
|
1634 |
-
.tribe-common .tribe-common-c-btn-icon--caret-right:disabled:before {
|
1635 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z' fill='%23D5D5D5'/%3E%3C/svg%3E");
|
1636 |
-
}
|
1637 |
-
|
1638 |
-
/* -----------------------------------------------------------------------------
|
1639 |
-
* Button: Icon Filters
|
1640 |
-
* ----------------------------------------------------------------------------- */
|
1641 |
-
|
1642 |
-
.tribe-common .tribe-common-c-btn-icon--filters:before {
|
1643 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%23727272' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0M3 15v-2' stroke='%235D5D5D'/%3E%3Ccircle cx='3' cy='9' r='3' stroke='%235D5D5D'/%3E%3Cpath d='M12 9v6' stroke='%235D5D5D'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)' stroke='%235D5D5D'/%3E%3C/g%3E%3C/svg%3E");
|
1644 |
-
height: 20px;
|
1645 |
-
width: 24px;
|
1646 |
-
}
|
1647 |
-
|
1648 |
-
.tribe-common .tribe-common-c-btn-icon--filters:active:before, .tribe-common .tribe-common-c-btn-icon--filters:hover:before, .tribe-common .tribe-common-c-btn-icon--filters:focus:before {
|
1649 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%23727272' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0M3 15v-2' stroke='%23141827'/%3E%3Ccircle cx='3' cy='9' r='3' stroke='%23141827'/%3E%3Cpath d='M12 9v6' stroke='%23141827'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)' stroke='%23141827'/%3E%3C/g%3E%3C/svg%3E");
|
1650 |
-
}
|
1651 |
-
|
1652 |
-
.tribe-common .tribe-common-c-btn-icon--filters:disabled:before {
|
1653 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%23727272' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0M3 15v-2' stroke='%23D5D5D5'/%3E%3Ccircle cx='3' cy='9' r='3' stroke='%23D5D5D5'/%3E%3Cpath d='M12 9v6' stroke='%23D5D5D5'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)' stroke='%23D5D5D5'/%3E%3C/g%3E%3C/svg%3E");
|
1654 |
-
}
|
1655 |
-
|
1656 |
-
/* -----------------------------------------------------------------------------
|
1657 |
-
* Button: Icon Search
|
1658 |
-
* ----------------------------------------------------------------------------- */
|
1659 |
-
|
1660 |
-
.tribe-common .tribe-common-c-btn-icon--search:before {
|
1661 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%235D5D5D'/%3E%3C/svg%3E");
|
1662 |
-
height: 20px;
|
1663 |
-
width: 20px;
|
1664 |
-
}
|
1665 |
-
|
1666 |
-
.tribe-common .tribe-common-c-btn-icon--search:active:before, .tribe-common .tribe-common-c-btn-icon--search:hover:before, .tribe-common .tribe-common-c-btn-icon--search:focus:before {
|
1667 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%23141827'/%3E%3C/svg%3E");
|
1668 |
-
}
|
1669 |
-
|
1670 |
-
.tribe-common .tribe-common-c-btn-icon--search:disabled:before {
|
1671 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%23D5D5D5'/%3E%3C/svg%3E");
|
1672 |
-
}
|
1673 |
-
|
1674 |
-
.tribe-common {
|
1675 |
-
|
1676 |
-
/* -------------------------------------------------------------------------
|
1677 |
-
*
|
1678 |
-
* Button: Solid - Theme Overrides
|
1679 |
-
*
|
1680 |
-
* ------------------------------------------------------------------------- */
|
1681 |
-
}
|
1682 |
-
|
1683 |
-
/* -----------------------------------------------------------------------------
|
1684 |
-
*
|
1685 |
-
* Button: Solid
|
1686 |
-
*
|
1687 |
-
* Example:
|
1688 |
-
* <button class="tribe-common-c-btn">...</button>
|
1689 |
-
* <a href="#" class="tribe-common-c-btn">...</a>
|
1690 |
-
*
|
1691 |
-
* ----------------------------------------------------------------------------- */
|
1692 |
-
|
1693 |
-
.tribe-common .tribe-common-c-btn,
|
1694 |
-
.tribe-common a.tribe-common-c-btn {
|
1695 |
-
padding: 11px 20px 11px;
|
1696 |
-
width: 100%;
|
1697 |
-
}
|
1698 |
-
|
1699 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn, .tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn {
|
1700 |
-
width: auto;
|
1701 |
-
}
|
1702 |
-
|
1703 |
-
/* -----------------------------------------------------------------------------
|
1704 |
-
*
|
1705 |
-
* Component: Image
|
1706 |
-
*
|
1707 |
-
* Example (Regular):
|
1708 |
-
* <img src="#" alt="" class="tribe-common-c-image" />
|
1709 |
-
*
|
1710 |
-
* Example (Background):
|
1711 |
-
* <div class="tribe-common-c-image tribe-common-c-image--bg">
|
1712 |
-
* <div class="tribe-common-c-image__bg"></div>
|
1713 |
-
* </div>
|
1714 |
-
*
|
1715 |
-
* ----------------------------------------------------------------------------- */
|
1716 |
-
|
1717 |
-
.tribe-common .tribe-common-c-image {
|
1718 |
-
display: block;
|
1719 |
-
height: auto;
|
1720 |
-
margin-left: auto;
|
1721 |
-
margin-right: auto;
|
1722 |
-
width: 100%;
|
1723 |
-
}
|
1724 |
-
|
1725 |
-
.tribe-common .tribe-common-c-image--bg {
|
1726 |
-
position: relative;
|
1727 |
-
}
|
1728 |
-
|
1729 |
-
.tribe-common .tribe-common-c-image__bg {
|
1730 |
-
background: center center no-repeat;
|
1731 |
-
background-size: cover;
|
1732 |
-
bottom: 0;
|
1733 |
-
height: 100%;
|
1734 |
-
left: 0;
|
1735 |
-
position: absolute;
|
1736 |
-
right: 0;
|
1737 |
-
top: 0;
|
1738 |
-
width: 100%;
|
1739 |
-
}
|
1740 |
-
|
1741 |
-
/* -----------------------------------------------------------------------------
|
1742 |
-
*
|
1743 |
-
* Component: Loader
|
1744 |
-
*
|
1745 |
-
*
|
1746 |
-
* Example:
|
1747 |
-
* <div class="tribe-events-view-loader__dots tribe-common-c-loader">
|
1748 |
-
* <div class="tribe-common-c-loader__dot tribe-common-c-loader__dot--first"></div>
|
1749 |
-
* <div class="tribe-common-c-loader__dot tribe-common-c-loader__dot--second"></div>
|
1750 |
-
* <div class="tribe-common-c-loader__dot tribe-common-c-loader__dot--third"></div>
|
1751 |
-
* </div>
|
1752 |
-
*
|
1753 |
-
* ----------------------------------------------------------------------------- */
|
1754 |
-
|
1755 |
-
.tribe-common .tribe-common-c-loader {
|
1756 |
-
display: -webkit-box;
|
1757 |
-
display: flex;
|
1758 |
-
padding-top: 192px;
|
1759 |
-
}
|
1760 |
-
|
1761 |
-
.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-loader {
|
1762 |
-
padding-top: 288px;
|
1763 |
-
}
|
1764 |
-
|
1765 |
-
.tribe-common .tribe-common-c-loader__dot {
|
1766 |
-
background-color: rgba(51,74,255, 0.07);
|
1767 |
-
height: 15px;
|
1768 |
-
width: 15px;
|
1769 |
-
border-radius: 50%;
|
1770 |
-
}
|
1771 |
-
|
1772 |
-
.tribe-common .tribe-common-c-loader__dot:not(:first-of-type) {
|
1773 |
-
margin-left: 8px;
|
1774 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/resources/css/common-skeleton.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.tribe-common{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smoothing:antialiased}.tribe-common *{box-sizing:border-box}.tribe-common article,.tribe-common aside,.tribe-common details,.tribe-common figcaption,.tribe-common figure,.tribe-common footer,.tribe-common header,.tribe-common main,.tribe-common menu,.tribe-common nav,.tribe-common section,.tribe-common summary{display:block}.tribe-common svg:not(:root){overflow:hidden}.tribe-common audio,.tribe-common canvas,.tribe-common progress,.tribe-common video{display:inline-block}.tribe-common audio:not([controls]){display:none;height:0}.tribe-common progress{vertical-align:baseline}.tribe-common [hidden],.tribe-common template{display:none}.tribe-common pre{overflow:auto}.tribe-common sub,.tribe-common sup{position:relative;vertical-align:baseline}.tribe-common sup{top:-.5em}.tribe-common sub{bottom:-.25em}.tribe-common button,.tribe-common input,.tribe-common select,.tribe-common textarea{box-sizing:border-box;margin:0}.tribe-common input[type=number]::-webkit-inner-spin-button,.tribe-common input[type=number]::-webkit-outer-spin-button{height:auto}.tribe-common legend{color:inherit;display:table;max-width:100%;white-space:normal}.tribe-common textarea{resize:none;overflow:auto}.tribe-common button,.tribe-common input[type=button],.tribe-common input[type=reset],.tribe-common input[type=submit]{cursor:pointer;overflow:visible}.tribe-common button[disabled],.tribe-common input[disabled]{cursor:default}.tribe-common button::-moz-focus-inner,.tribe-common input::-moz-focus-inner{border:0;padding:0}.tribe-common a,.tribe-common abbr,.tribe-common acronym,.tribe-common address,.tribe-common applet,.tribe-common article,.tribe-common aside,.tribe-common audio,.tribe-common b,.tribe-common big,.tribe-common blockquote,.tribe-common canvas,.tribe-common caption,.tribe-common center,.tribe-common cite,.tribe-common code,.tribe-common dd,.tribe-common del,.tribe-common details,.tribe-common dfn,.tribe-common div,.tribe-common dl,.tribe-common dt,.tribe-common em,.tribe-common embed,.tribe-common fieldset,.tribe-common figcaption,.tribe-common figure,.tribe-common footer,.tribe-common form,.tribe-common h1,.tribe-common h2,.tribe-common h3,.tribe-common h4,.tribe-common h5,.tribe-common h6,.tribe-common header,.tribe-common i,.tribe-common iframe,.tribe-common img,.tribe-common ins,.tribe-common kbd,.tribe-common label,.tribe-common legend,.tribe-common li,.tribe-common main,.tribe-common mark,.tribe-common menu,.tribe-common nav,.tribe-common object,.tribe-common ol,.tribe-common output,.tribe-common p,.tribe-common pre,.tribe-common q,.tribe-common ruby,.tribe-common s,.tribe-common samp,.tribe-common section,.tribe-common small,.tribe-common span,.tribe-common strike,.tribe-common strong,.tribe-common sub,.tribe-common summary,.tribe-common sup,.tribe-common table,.tribe-common tbody,.tribe-common td,.tribe-common tfoot,.tribe-common th,.tribe-common thead,.tribe-common time,.tribe-common tr,.tribe-common tt,.tribe-common u,.tribe-common ul,.tribe-common var,.tribe-common video{margin:0;padding:0;border:0}.tribe-common ol,.tribe-common ul{list-style:none}.tribe-common img{-ms-interpolation-mode:bicubic;height:auto;max-width:100%;border-style:none}.tribe-common embed,.tribe-common iframe,.tribe-common video{max-width:100%;max-height:100%}.tribe-theme-avada input[type=text]{margin:0}.tribe-theme-divi .entry-content .tribe-common table,.tribe-theme-divibody.et-pb-preview #main-content .container .tribe-common table{border:0;margin:0}.tribe-theme-divi .entry-content .tribe-common td,.tribe-theme-divibody.et-pb-preview #main-content .container .tribe-common td{border:0}.tribe-theme-divi #content-area .tribe-common td,.tribe-theme-divi #content-area .tribe-common th,.tribe-theme-divi #content-area .tribe-common tr{padding:0}#top .main_color .tribe-common button[disabled],#top.tribe-theme-enfold .tribe-common button[disabled]{cursor:default}#top .main_color .tribe-common form,#top .main_color .tribe-common input,#top.tribe-theme-enfold .tribe-common form,#top.tribe-theme-enfold .tribe-common input{margin:0}.entry-content-wrapper .tribe-common li,.entry-content .tribe-common ol,.entry-content .tribe-common ul,.tribe-theme-genesis .tribe-common ol,.tribe-theme-genesis .tribe-common ul{margin:0;padding:0}.tribe-theme-twentyseventeen .tribe-common div.tribe-dialog{z-index:5!important}.tribe-common .tribe-common-form-control-checkbox__label,.tribe-common .tribe-common-form-control-radio__label{cursor:pointer;display:inline-block;margin-left:11px;vertical-align:middle}.tribe-common .tribe-common-form-control-checkbox__input,.tribe-common .tribe-common-form-control-radio__input{cursor:pointer;display:inline-block;margin:0;vertical-align:middle}#top .main_color .tribe-common .tribe-common-form-control-checkbox__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-checkbox__input{display:inline-block}.tribe-common .tribe-common-form-control-checkbox-radio-group>*{margin-bottom:15px}.tribe-common .tribe-common-form-control-checkbox-radio-group>:last-child{margin-bottom:0}.tribe-common .tribe-common-form-control-slider__input{cursor:pointer;display:inline-block;margin:0;padding:0;width:120px;vertical-align:middle}.tribe-common .tribe-common-form-control-slider__label{cursor:pointer;display:inline-block;margin-left:11px;vertical-align:middle}.tribe-common .tribe-common-form-control-slider--vertical .tribe-common-form-control-slider__label{display:block;margin:0 0 6px}.tribe-common .tribe-common-form-control-text__label{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-common .tribe-common-form-control-text__input{height:auto;padding:12px 28px 12px 0;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input{padding:20px 20px 20px 40px}#top .main_color .tribe-common .tribe-common-form-control-text__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input{padding:12px 28px 12px 0;width:100%}#top .main_color .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input,#top.tribe-theme-enfold .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input{padding:20px 20px 20px 40px}.tribe-common .tribe-common-form-control-toggle__input,.tribe-common .tribe-common-form-control-toggle__label{cursor:pointer;display:inline-block;vertical-align:middle}.tribe-common .tribe-common-form-control-toggle__label{margin-left:11px}.tribe-common .tribe-common-form-control-toggle--vertical .tribe-common-form-control-toggle__label{display:block;margin:0 0 6px}#top .main_color .tribe-common .tribe-common-form-control-toggle__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-toggle__input{display:inline-block;margin:5px 0}.tribe-common .tribe-common-g-col{min-width:0;width:100%}.tribe-common .tribe-common-g-row{display:flex;flex-wrap:wrap}.tribe-common .tribe-common-g-row--gutters{margin-left:-21px;margin-right:-21px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-g-row--gutters{margin-left:-24px;margin-right:-24px}.tribe-common .tribe-common-g-row--gutters>.tribe-common-g-col{padding-left:21px;padding-right:21px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-g-row--gutters>.tribe-common-g-col{padding-left:24px;padding-right:24px}.tribe-theme-twentynineteen .tribe-common .entry.tribe-common-g-row--gutters{margin-left:-21px;margin-right:-21px;padding:0}.tribe-theme-twentynineteen .tribe-common.tribe-common--breakpoint-medium .entry.tribe-common-g-row--gutters{margin-left:-24px;margin-right:-24px}.tribe-theme-twentynineteen .tribe-common .tribe-common-g-row--gutters>.entry.tribe-common-g-col{margin:0;padding-left:21px;padding-right:21px}.tribe-theme-twentynineteen .tribe-common.tribe-common--breakpoint-medium .tribe-common-g-row--gutters>.entry.tribe-common-g-col{padding-left:24px;padding-right:24px}.tribe-common a{cursor:pointer}.tribe-theme-divi #left-area .tribe-common ul,.tribe-theme-divi .entry-content .tribe-common ul,body.et-pb-preview.tribe-theme-divi #main-content .container .tribe-common ul{list-style-type:none;padding:0}.entry-content .tribe-common ol>li,.entry-content .tribe-common ul>li{list-style-type:none}.tribe-common button{padding:0}.tribe-common .tribe-common-l-container{max-width:1260px;margin-left:auto;margin-right:auto;padding-left:19.5px;padding-right:19.5px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-l-container{padding-left:42px;padding-right:42px}.tribe-common .tribe-common-svgicon{background-repeat:no-repeat;background-size:contain}.tribe-common .tribe-common-svgicon--close-secondary{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cpath d='M16 2L2 16m14 0L2 2' stroke='%23BABABA' fill='none' fill-rule='evenodd' stroke-linecap='square' stroke-width='2'/%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--day{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='21' height='21' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 .503v19.994c0 .278.19.503.424.503h20.152c.234 0 .424-.225.424-.503V.503C21 .225 20.81 0 20.576 0H.424C.19 0 0 .225 0 .503zm1.156.943h18.66v2.7H1.157v-2.7zm0 4.023h18.66V19.55H1.157V5.469zM14.18 14.53v1.747c0 .482.39.874.873.874H16.8a.873.873 0 0 0 .873-.874V14.53a.873.873 0 0 0-.873-.873h-1.747a.873.873 0 0 0-.873.873z' fill='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--list{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cg fill='%23141827' fill-rule='evenodd'%3E%3Cpath fill-rule='nonzero' d='M0 .504v20.03c0 .278.19.503.425.503h20.188c.235 0 .425-.225.425-.504V.503c0-.277-.19-.503-.425-.503H.425C.19 0 0 .226 0 .504zm1.158.944h18.695v2.705H1.158V1.448zm0 2.705h18.695v15.432H1.158V4.153z'/%3E%3Cpath d='M13.39 5.731v2.13a1.07 1.07 0 0 0 1.076 1.064h2.154a1.07 1.07 0 0 0 1.077-1.065V5.731a1.07 1.07 0 0 0-1.077-1.064h-2.154A1.07 1.07 0 0 0 13.39 5.73z'/%3E%3Cpath fill-rule='nonzero' d='M8.84 8.937c.286 0 .52-.236.52-.523v-.425a.523.523 0 0 0-.52-.522H4.02a.523.523 0 0 0-.52.522v.425c0 .287.234.523.52.523h4.82zm2.064-2.8c.287 0 .521-.236.521-.523v-.425a.523.523 0 0 0-.52-.522H4.02a.523.523 0 0 0-.521.522v.425c0 .287.234.523.52.523h6.884z'/%3E%3Cpath d='M13.39 12.731v2.13a1.07 1.07 0 0 0 1.076 1.064h2.154a1.07 1.07 0 0 0 1.077-1.065v-2.129a1.07 1.07 0 0 0-1.077-1.064h-2.154a1.07 1.07 0 0 0-1.077 1.064z'/%3E%3Cpath fill-rule='nonzero' d='M8.84 15.937c.286 0 .52-.236.52-.523v-.425a.523.523 0 0 0-.52-.522H4.02a.523.523 0 0 0-.52.522v.425c0 .287.234.523.52.523h4.82zm2.064-2.8c.287 0 .521-.236.521-.523v-.425a.523.523 0 0 0-.52-.522H4.02a.523.523 0 0 0-.521.522v.425c0 .287.234.523.52.523h6.884z'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--map{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cg fill='%23141827' fill-rule='nonzero'%3E%3Cg stroke-width='.7'%3E%3Cpath stroke='%23141827' d='M10.67 17.21c.182-.225 4.46-5.527 4.46-8.18 0-2.728-2.085-4.947-4.648-4.947-2.563 0-4.649 2.22-4.649 4.946 0 2.654 4.279 7.956 4.46 8.18a.243.243 0 0 0 .189.092c.072 0 .14-.034.188-.092zM6.33 9.03c0-2.436 1.863-4.418 4.152-4.418 2.29 0 4.152 1.982 4.152 4.417 0 2.16-3.318 6.533-4.152 7.597C9.648 15.562 6.33 11.19 6.33 9.03z'/%3E%3Cpath stroke='%23000' d='M12.055 9.04c0-.911-.706-1.652-1.573-1.652-.868 0-1.574.74-1.574 1.652 0 .91.706 1.652 1.574 1.652.867 0 1.573-.741 1.573-1.652zm-2.85 0c0-.74.573-1.34 1.277-1.34s1.277.6 1.277 1.34c0 .74-.573 1.34-1.277 1.34s-1.277-.6-1.277-1.34z'/%3E%3C/g%3E%3Cpath d='M0 .504v20.03c0 .278.19.503.425.503h20.188c.235 0 .425-.225.425-.504V.503c0-.277-.19-.503-.425-.503H.425C.19 0 0 .226 0 .504zm1.158.944h18.695v2.705H1.158V1.448zm0 2.705h18.695v15.432H1.158V4.153z'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--month{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='22' height='22' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.637 1.063v19.879c0 .276.189.5.422.5h20.037c.232 0 .421-.224.421-.5V1.062c0-.275-.189-.5-.421-.5H1.059c-.233 0-.422.225-.422.5zM1.787 2H20.34v2.685H1.787V2zm0 4H20.34v14H1.787V6zM8 8.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm-8 4v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm-12 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm0 4v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5z' fill='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--no-map{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='92' height='92' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none'%3E%3Cg stroke='%23141827' stroke-width='2.5' transform='translate(2 2)'%3E%3Cpath d='M32.219 88S0 58.674 0 32.281C-.011 15.598 12.685 1.66 29.278.136c16.593-1.523 31.608 9.873 34.627 26.28M32.733 88s2.96-2.693 7.083-7.181' stroke-linecap='round'/%3E%3Ccircle cx='33' cy='33' r='8.905'/%3E%3Ccircle cx='65.127' cy='59.016' r='23.571'/%3E%3C/g%3E%3Cg transform='translate(64.857 47.048)'%3E%3Ccircle fill='%23111' cx='2.839' cy='26.495' r='2.839'/%3E%3Cpath d='M2.642 0v18.925' stroke='%23141827' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--photo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 21'%3E%3Cg fill='%23141827'%3E%3Cpath d='M20.407 0H.577A.565.565 0 0 0 0 .564v19.872c0 .316.254.564.578.564h19.83a.565.565 0 0 0 .577-.564V.564A.565.565 0 0 0 20.407 0zm-.6 1.15v14.868l-2.226-3.427c-.646-.677-1.848-.677-2.495 0l-1.548 1.646-4.482-5.029a1.806 1.806 0 0 0-1.363-.586c-.508 0-1.016.225-1.34.609l-5.175 5.75V1.15h18.628zM1.177 19.85v-3.133l6.053-6.765a.588.588 0 0 1 .462-.203c.162 0 .37.068.485.203l4.921 5.525c.116.113.278.203.44.203.184.022.323-.068.438-.18l1.987-2.12c.185-.203.555-.203.763 0l3.103 4.352v2.14H1.178v-.022z'/%3E%3Cpath d='M14.955 9.041c1.16 0 2.122-.97 2.122-2.187 0-1.218-.94-2.187-2.122-2.187-1.181 0-2.122.97-2.122 2.187 0 1.218.963 2.187 2.122 2.187zm0-3.224c.547 0 1.006.473 1.006 1.037s-.459 1.037-1.006 1.037c-.547 0-1.006-.473-1.006-1.037s.46-1.037 1.006-1.037z'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--week{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='21' height='21' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 .503v19.994c0 .278.19.503.424.503h20.152c.234 0 .424-.225.424-.503V.503C21 .225 20.81 0 20.576 0H.424C.19 0 0 .225 0 .503zm1.156.943h18.66v2.7H1.157v-2.7zm0 4.023h18.66V19.55H1.157V5.469zm6.25 6.537v1.006c0 .278.224.503.502.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502H7.908a.503.503 0 0 0-.503.502zm4.022 0v1.006c0 .278.225.503.503.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502H11.93a.503.503 0 0 0-.503.502zm4.023 0v1.006c0 .278.225.503.503.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502h-1.006a.503.503 0 0 0-.503.502zm-12.069 0v1.006c0 .278.225.503.503.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502H3.885a.503.503 0 0 0-.503.502z' fill='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--featured{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h16v20l-7.902-5.122L0 20z' fill='%23141827'/%3E%3C/svg%3E");height:10px;width:8px}.tribe-common .tribe-common-svgicon--recurring{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.333 3.826c0 .065 0 .13-.02.174 0 .022-.02.065-.02.087a.9.9 0 0 1-.197.37L10.45 7.37a.797.797 0 0 1-.592.26.797.797 0 0 1-.593-.26c-.316-.348-.316-.935 0-1.305l1.225-1.348H6.3c-2.547 0-4.64 2.283-4.64 5.11 0 1.369.474 2.651 1.363 3.608.316.348.316.935 0 1.304A.797.797 0 0 1 2.43 15a.797.797 0 0 1-.593-.26C.652 13.434 0 11.695 0 9.847c0-3.826 2.825-6.935 6.301-6.935h4.208L9.284 1.565c-.316-.348-.316-.935 0-1.304.316-.348.85-.348 1.185 0l2.647 2.913a.952.952 0 0 1 .198.37c0 .021.02.065.02.086v.196zM20 10.152c0 3.826-2.825 6.935-6.301 6.935H9.49l1.225 1.348c.336.348.336.935 0 1.304a.797.797 0 0 1-.593.261.83.83 0 0 1-.592-.26l-2.627-2.936a.948.948 0 0 1-.198-.37c0-.021-.02-.064-.02-.086-.02-.065-.02-.109-.02-.174 0-.065 0-.13.02-.174 0-.022.02-.065.02-.087a.9.9 0 0 1 .198-.37L9.55 12.63c.316-.347.849-.347 1.185 0 .336.348.336.935 0 1.305L9.51 15.283h4.208c2.548 0 4.641-2.283 4.641-5.11 0-1.369-.474-2.651-1.362-3.608a.97.97 0 0 1 0-1.304c.316-.348.849-.348 1.185 0C19.348 6.543 20 8.283 20 10.152z' fill='%23141827'/%3E%3C/svg%3E");height:10px;width:10px}.tribe-common .tribe-common-svgicon--search{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%235D5D5D'/%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--filters{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%235D5D5D' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0m0 15v-2'/%3E%3Ccircle cx='3' cy='9' r='3'/%3E%3Cpath d='M12 9v6'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--close{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cpath d='M16 2L2 16m14 0L2 2' stroke='%235D5D5D' fill='none' fill-rule='evenodd' stroke-linecap='square' stroke-width='2'/%3E%3C/svg%3E")}.tribe-common .tribe-common-a11y-hidden{display:none!important;visibility:hidden}.tribe-common .tribe-common-a11y-visual-hide,.tribe-common .tribe-common-a11y-visual-show{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-common .tribe-common-c-btn-border,.tribe-common a.tribe-common-c-btn-border{padding:14px 20px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn-border,.tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn-border{padding:6px 15px;width:auto}.tribe-common .tribe-common-c-btn-icon:before{background-repeat:no-repeat;background-size:contain;content:"";display:block}.tribe-common .tribe-common-c-btn-icon--caret-left:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z' fill='%23BABABA'/%3E%3C/svg%3E");height:20px;width:12px}.tribe-common .tribe-common-c-btn-icon--caret-left:active:before,.tribe-common .tribe-common-c-btn-icon--caret-left:focus:before,.tribe-common .tribe-common-c-btn-icon--caret-left:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z' fill='%235D5D5D'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-left:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z' fill='%23D5D5D5'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-right:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z' fill='%23BABABA'/%3E%3C/svg%3E");height:20px;width:12px}.tribe-common .tribe-common-c-btn-icon--caret-right:active:before,.tribe-common .tribe-common-c-btn-icon--caret-right:focus:before,.tribe-common .tribe-common-c-btn-icon--caret-right:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z' fill='%235D5D5D'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-right:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z' fill='%23D5D5D5'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--filters:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%235D5D5D' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0m0 15v-2'/%3E%3Ccircle cx='3' cy='9' r='3'/%3E%3Cpath d='M12 9v6'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)'/%3E%3C/g%3E%3C/svg%3E");height:20px;width:24px}.tribe-common .tribe-common-c-btn-icon--filters:active:before,.tribe-common .tribe-common-c-btn-icon--filters:focus:before,.tribe-common .tribe-common-c-btn-icon--filters:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%23141827' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0m0 15v-2'/%3E%3Ccircle cx='3' cy='9' r='3'/%3E%3Cpath d='M12 9v6'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--filters:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%23D5D5D5' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0m0 15v-2'/%3E%3Ccircle cx='3' cy='9' r='3'/%3E%3Cpath d='M12 9v6'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--search:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%235D5D5D'/%3E%3C/svg%3E");height:20px;width:20px}.tribe-common .tribe-common-c-btn-icon--search:active:before,.tribe-common .tribe-common-c-btn-icon--search:focus:before,.tribe-common .tribe-common-c-btn-icon--search:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--search:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%23D5D5D5'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn,.tribe-common a.tribe-common-c-btn{padding:11px 20px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn,.tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn{width:auto}.tribe-common .tribe-common-c-image{display:block;height:auto;margin-left:auto;margin-right:auto;width:100%}.tribe-common .tribe-common-c-image--bg{position:relative}.tribe-common .tribe-common-c-image__bg{background:50% no-repeat;background-size:cover;bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.tribe-common .tribe-common-c-loader{display:flex;padding-top:192px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-loader{padding-top:288px}.tribe-common .tribe-common-c-loader__dot{background-color:rgba(51,74,255,.07);height:15px;width:15px;border-radius:50%}.tribe-common .tribe-common-c-loader__dot:not(:first-of-type){margin-left:8px}
|
1 |
+
.tribe-common{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smoothing:antialiased}.tribe-common *{box-sizing:border-box}.tribe-common article,.tribe-common aside,.tribe-common details,.tribe-common figcaption,.tribe-common figure,.tribe-common footer,.tribe-common header,.tribe-common main,.tribe-common menu,.tribe-common nav,.tribe-common section,.tribe-common summary{display:block}.tribe-common svg:not(:root){overflow:hidden}.tribe-common audio,.tribe-common canvas,.tribe-common progress,.tribe-common video{display:inline-block}.tribe-common audio:not([controls]){display:none;height:0}.tribe-common progress{vertical-align:baseline}.tribe-common [hidden],.tribe-common template{display:none}.tribe-common pre{overflow:auto}.tribe-common sub,.tribe-common sup{position:relative;vertical-align:baseline}.tribe-common sup{top:-.5em}.tribe-common sub{bottom:-.25em}.tribe-common button,.tribe-common input,.tribe-common select,.tribe-common textarea{box-sizing:border-box;margin:0}.tribe-common input[type=number]::-webkit-inner-spin-button,.tribe-common input[type=number]::-webkit-outer-spin-button{height:auto}.tribe-common legend{color:inherit;display:table;max-width:100%;white-space:normal}.tribe-common textarea{resize:none;overflow:auto}.tribe-common button,.tribe-common input[type=button],.tribe-common input[type=reset],.tribe-common input[type=submit]{cursor:pointer;overflow:visible}.tribe-common button[disabled],.tribe-common input[disabled]{cursor:default}.tribe-common button::-moz-focus-inner,.tribe-common input::-moz-focus-inner{border:0;padding:0}.tribe-common a,.tribe-common abbr,.tribe-common acronym,.tribe-common address,.tribe-common applet,.tribe-common article,.tribe-common aside,.tribe-common audio,.tribe-common b,.tribe-common big,.tribe-common blockquote,.tribe-common canvas,.tribe-common caption,.tribe-common center,.tribe-common cite,.tribe-common code,.tribe-common dd,.tribe-common del,.tribe-common details,.tribe-common dfn,.tribe-common div,.tribe-common dl,.tribe-common dt,.tribe-common em,.tribe-common embed,.tribe-common fieldset,.tribe-common figcaption,.tribe-common figure,.tribe-common footer,.tribe-common form,.tribe-common h1,.tribe-common h2,.tribe-common h3,.tribe-common h4,.tribe-common h5,.tribe-common h6,.tribe-common header,.tribe-common i,.tribe-common iframe,.tribe-common img,.tribe-common ins,.tribe-common kbd,.tribe-common label,.tribe-common legend,.tribe-common li,.tribe-common main,.tribe-common mark,.tribe-common menu,.tribe-common nav,.tribe-common object,.tribe-common ol,.tribe-common output,.tribe-common p,.tribe-common pre,.tribe-common q,.tribe-common ruby,.tribe-common s,.tribe-common samp,.tribe-common section,.tribe-common small,.tribe-common span,.tribe-common strike,.tribe-common strong,.tribe-common sub,.tribe-common summary,.tribe-common sup,.tribe-common table,.tribe-common tbody,.tribe-common td,.tribe-common tfoot,.tribe-common th,.tribe-common thead,.tribe-common time,.tribe-common tr,.tribe-common tt,.tribe-common u,.tribe-common ul,.tribe-common var,.tribe-common video{margin:0;padding:0;border:0}.tribe-common ol,.tribe-common ul{list-style:none}.tribe-common img{-ms-interpolation-mode:bicubic;height:auto;max-width:100%;border-style:none}.tribe-common embed,.tribe-common iframe,.tribe-common video{max-width:100%;max-height:100%}.tribe-theme-avada input[type=text]{margin:0}.tribe-theme-divi .entry-content .tribe-common table,.tribe-theme-divibody.et-pb-preview #main-content .container .tribe-common table{border:0;margin:0}.tribe-theme-divi .entry-content .tribe-common td,.tribe-theme-divibody.et-pb-preview #main-content .container .tribe-common td{border:0}.tribe-theme-divi #content-area .tribe-common td,.tribe-theme-divi #content-area .tribe-common th,.tribe-theme-divi #content-area .tribe-common tr,.tribe-theme-divi #left-area .tribe-common ul{padding:0}#top .main_color .tribe-common button[disabled],#top.tribe-theme-enfold .tribe-common button[disabled]{cursor:default}#top .main_color .tribe-common form,#top .main_color .tribe-common input,#top.tribe-theme-enfold .tribe-common form,#top.tribe-theme-enfold .tribe-common input{margin:0}.entry-content-wrapper .tribe-common li,.entry-content .tribe-common ol,.entry-content .tribe-common ul,.tribe-theme-genesis .tribe-common ol,.tribe-theme-genesis .tribe-common ul{margin:0;padding:0}.tribe-theme-twentyseventeen .tribe-common div.tribe-dialog{z-index:5!important}.tribe-common .tribe-common-form-control-checkbox__label,.tribe-common .tribe-common-form-control-radio__label{cursor:pointer;display:inline-block;margin-left:11px;vertical-align:middle}.tribe-common .tribe-common-form-control-checkbox__input,.tribe-common .tribe-common-form-control-radio__input{cursor:pointer;display:inline-block;margin:0;vertical-align:middle}#top .main_color .tribe-common .tribe-common-form-control-checkbox__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-checkbox__input{display:inline-block}.tribe-common .tribe-common-form-control-checkbox-radio-group>*{margin-bottom:15px}.tribe-common .tribe-common-form-control-checkbox-radio-group>:last-child{margin-bottom:0}.tribe-common .tribe-common-form-control-slider__input{cursor:pointer;display:inline-block;margin:0;padding:0;width:120px;vertical-align:middle}.tribe-common .tribe-common-form-control-slider__label{cursor:pointer;display:inline-block;margin-left:11px;vertical-align:middle}.tribe-common .tribe-common-form-control-slider--vertical .tribe-common-form-control-slider__label{display:block;margin:0 0 6px}.tribe-common .tribe-common-form-control-text__label{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-common .tribe-common-form-control-text__input{height:auto;padding:12px 28px 12px 0;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input{padding:20px 20px 20px 40px}#top .main_color .tribe-common .tribe-common-form-control-text__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-text__input{padding:12px 28px 12px 0;width:100%}#top .main_color .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input,#top.tribe-theme-enfold .tribe-common.tribe-common--breakpoint-medium .tribe-common-form-control-text__input{padding:20px 20px 20px 40px}.tribe-common .tribe-common-form-control-toggle__input,.tribe-common .tribe-common-form-control-toggle__label{cursor:pointer;display:inline-block;vertical-align:middle}.tribe-common .tribe-common-form-control-toggle__label{margin-left:11px}.tribe-common .tribe-common-form-control-toggle--vertical .tribe-common-form-control-toggle__label{display:block;margin:0 0 6px}#top .main_color .tribe-common .tribe-common-form-control-toggle__input,#top.tribe-theme-enfold .tribe-common .tribe-common-form-control-toggle__input{display:inline-block;margin:5px 0}.tribe-common .tribe-common-g-col{min-width:0;width:100%}.tribe-common .tribe-common-g-row{display:flex;flex-wrap:wrap}.tribe-common .tribe-common-g-row--gutters{margin-left:-21px;margin-right:-21px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-g-row--gutters{margin-left:-24px;margin-right:-24px}.tribe-common .tribe-common-g-row--gutters>.tribe-common-g-col{padding-left:21px;padding-right:21px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-g-row--gutters>.tribe-common-g-col{padding-left:24px;padding-right:24px}.tribe-theme-twentynineteen .tribe-common .entry.tribe-common-g-row--gutters{margin-left:-21px;margin-right:-21px;padding:0}.tribe-theme-twentynineteen .tribe-common.tribe-common--breakpoint-medium .entry.tribe-common-g-row--gutters{margin-left:-24px;margin-right:-24px}.tribe-theme-twentynineteen .tribe-common .tribe-common-g-row--gutters>.entry.tribe-common-g-col{margin:0;padding-left:21px;padding-right:21px}.tribe-theme-twentynineteen .tribe-common.tribe-common--breakpoint-medium .tribe-common-g-row--gutters>.entry.tribe-common-g-col{padding-left:24px;padding-right:24px}.tribe-common a{cursor:pointer}.tribe-theme-divi #left-area .tribe-common ul,.tribe-theme-divi .entry-content .tribe-common ul,body.et-pb-preview.tribe-theme-divi #main-content .container .tribe-common ul{list-style-type:none;padding:0}.entry-content .tribe-common ol>li,.entry-content .tribe-common ul>li{list-style-type:none}.tribe-common button{padding:0}.tribe-common .tribe-common-l-container{max-width:1260px;margin-left:auto;margin-right:auto;padding-left:19.5px;padding-right:19.5px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-l-container{padding-left:42px;padding-right:42px}.tribe-common .tribe-common-svgicon{background-repeat:no-repeat;background-size:contain}.tribe-common .tribe-common-svgicon--close-secondary{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cpath d='M16 2L2 16m14 0L2 2' stroke='%23BABABA' fill='none' fill-rule='evenodd' stroke-linecap='square' stroke-width='2'/%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--day{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='21' height='21' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 .503v19.994c0 .278.19.503.424.503h20.152c.234 0 .424-.225.424-.503V.503C21 .225 20.81 0 20.576 0H.424C.19 0 0 .225 0 .503zm1.156.943h18.66v2.7H1.157v-2.7zm0 4.023h18.66V19.55H1.157V5.469zM14.18 14.53v1.747c0 .482.39.874.873.874H16.8a.873.873 0 0 0 .873-.874V14.53a.873.873 0 0 0-.873-.873h-1.747a.873.873 0 0 0-.873.873z' fill='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--list{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cg fill='%23141827' fill-rule='evenodd'%3E%3Cpath fill-rule='nonzero' d='M0 .504v20.03c0 .278.19.503.425.503h20.188c.235 0 .425-.225.425-.504V.503c0-.277-.19-.503-.425-.503H.425C.19 0 0 .226 0 .504zm1.158.944h18.695v2.705H1.158V1.448zm0 2.705h18.695v15.432H1.158V4.153z'/%3E%3Cpath d='M13.39 5.731v2.13a1.07 1.07 0 0 0 1.076 1.064h2.154a1.07 1.07 0 0 0 1.077-1.065V5.731a1.07 1.07 0 0 0-1.077-1.064h-2.154A1.07 1.07 0 0 0 13.39 5.73z'/%3E%3Cpath fill-rule='nonzero' d='M8.84 8.937c.286 0 .52-.236.52-.523v-.425a.523.523 0 0 0-.52-.522H4.02a.523.523 0 0 0-.52.522v.425c0 .287.234.523.52.523h4.82zm2.064-2.8c.287 0 .521-.236.521-.523v-.425a.523.523 0 0 0-.52-.522H4.02a.523.523 0 0 0-.521.522v.425c0 .287.234.523.52.523h6.884z'/%3E%3Cpath d='M13.39 12.731v2.13a1.07 1.07 0 0 0 1.076 1.064h2.154a1.07 1.07 0 0 0 1.077-1.065v-2.129a1.07 1.07 0 0 0-1.077-1.064h-2.154a1.07 1.07 0 0 0-1.077 1.064z'/%3E%3Cpath fill-rule='nonzero' d='M8.84 15.937c.286 0 .52-.236.52-.523v-.425a.523.523 0 0 0-.52-.522H4.02a.523.523 0 0 0-.52.522v.425c0 .287.234.523.52.523h4.82zm2.064-2.8c.287 0 .521-.236.521-.523v-.425a.523.523 0 0 0-.52-.522H4.02a.523.523 0 0 0-.521.522v.425c0 .287.234.523.52.523h6.884z'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--map{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cg fill='%23141827' fill-rule='nonzero'%3E%3Cg stroke-width='.7'%3E%3Cpath stroke='%23141827' d='M10.67 17.21c.182-.225 4.46-5.527 4.46-8.18 0-2.728-2.085-4.947-4.648-4.947-2.563 0-4.649 2.22-4.649 4.946 0 2.654 4.279 7.956 4.46 8.18a.243.243 0 0 0 .189.092c.072 0 .14-.034.188-.092zM6.33 9.03c0-2.436 1.863-4.418 4.152-4.418 2.29 0 4.152 1.982 4.152 4.417 0 2.16-3.318 6.533-4.152 7.597C9.648 15.562 6.33 11.19 6.33 9.03z'/%3E%3Cpath stroke='%23000' d='M12.055 9.04c0-.911-.706-1.652-1.573-1.652-.868 0-1.574.74-1.574 1.652 0 .91.706 1.652 1.574 1.652.867 0 1.573-.741 1.573-1.652zm-2.85 0c0-.74.573-1.34 1.277-1.34s1.277.6 1.277 1.34c0 .74-.573 1.34-1.277 1.34s-1.277-.6-1.277-1.34z'/%3E%3C/g%3E%3Cpath d='M0 .504v20.03c0 .278.19.503.425.503h20.188c.235 0 .425-.225.425-.504V.503c0-.277-.19-.503-.425-.503H.425C.19 0 0 .226 0 .504zm1.158.944h18.695v2.705H1.158V1.448zm0 2.705h18.695v15.432H1.158V4.153z'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--month{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='22' height='22' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.637 1.063v19.879c0 .276.189.5.422.5h20.037c.232 0 .421-.224.421-.5V1.062c0-.275-.189-.5-.421-.5H1.059c-.233 0-.422.225-.422.5zM1.787 2H20.34v2.685H1.787V2zm0 4H20.34v14H1.787V6zM8 8.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm-8 4v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm-12 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm0 4v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5zm4 0v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5z' fill='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--no-map{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='92' height='92' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none'%3E%3Cg stroke='%23141827' stroke-width='2.5' transform='translate(2 2)'%3E%3Cpath d='M32.219 88S0 58.674 0 32.281C-.011 15.598 12.685 1.66 29.278.136c16.593-1.523 31.608 9.873 34.627 26.28M32.733 88s2.96-2.693 7.083-7.181' stroke-linecap='round'/%3E%3Ccircle cx='33' cy='33' r='8.905'/%3E%3Ccircle cx='65.127' cy='59.016' r='23.571'/%3E%3C/g%3E%3Cg transform='translate(64.857 47.048)'%3E%3Ccircle fill='%23111' cx='2.839' cy='26.495' r='2.839'/%3E%3Cpath d='M2.642 0v18.925' stroke='%23141827' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--photo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 21'%3E%3Cg fill='%23141827'%3E%3Cpath d='M20.407 0H.577A.565.565 0 0 0 0 .564v19.872c0 .316.254.564.578.564h19.83a.565.565 0 0 0 .577-.564V.564A.565.565 0 0 0 20.407 0zm-.6 1.15v14.868l-2.226-3.427c-.646-.677-1.848-.677-2.495 0l-1.548 1.646-4.482-5.029a1.806 1.806 0 0 0-1.363-.586c-.508 0-1.016.225-1.34.609l-5.175 5.75V1.15h18.628zM1.177 19.85v-3.133l6.053-6.765a.588.588 0 0 1 .462-.203c.162 0 .37.068.485.203l4.921 5.525c.116.113.278.203.44.203.184.022.323-.068.438-.18l1.987-2.12c.185-.203.555-.203.763 0l3.103 4.352v2.14H1.178v-.022z'/%3E%3Cpath d='M14.955 9.041c1.16 0 2.122-.97 2.122-2.187 0-1.218-.94-2.187-2.122-2.187-1.181 0-2.122.97-2.122 2.187 0 1.218.963 2.187 2.122 2.187zm0-3.224c.547 0 1.006.473 1.006 1.037s-.459 1.037-1.006 1.037c-.547 0-1.006-.473-1.006-1.037s.46-1.037 1.006-1.037z'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--week{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='21' height='21' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 .503v19.994c0 .278.19.503.424.503h20.152c.234 0 .424-.225.424-.503V.503C21 .225 20.81 0 20.576 0H.424C.19 0 0 .225 0 .503zm1.156.943h18.66v2.7H1.157v-2.7zm0 4.023h18.66V19.55H1.157V5.469zm6.25 6.537v1.006c0 .278.224.503.502.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502H7.908a.503.503 0 0 0-.503.502zm4.022 0v1.006c0 .278.225.503.503.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502H11.93a.503.503 0 0 0-.503.502zm4.023 0v1.006c0 .278.225.503.503.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502h-1.006a.503.503 0 0 0-.503.502zm-12.069 0v1.006c0 .278.225.503.503.503h1.006a.503.503 0 0 0 .503-.503v-1.006a.503.503 0 0 0-.503-.502H3.885a.503.503 0 0 0-.503.502z' fill='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--featured{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='16' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h16v20l-7.902-5.122L0 20z' fill='%23141827'/%3E%3C/svg%3E");height:10px;width:8px}.tribe-common .tribe-common-svgicon--recurring{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.333 3.826c0 .065 0 .13-.02.174 0 .022-.02.065-.02.087a.9.9 0 0 1-.197.37L10.45 7.37a.797.797 0 0 1-.592.26.797.797 0 0 1-.593-.26c-.316-.348-.316-.935 0-1.305l1.225-1.348H6.3c-2.547 0-4.64 2.283-4.64 5.11 0 1.369.474 2.651 1.363 3.608.316.348.316.935 0 1.304A.797.797 0 0 1 2.43 15a.797.797 0 0 1-.593-.26C.652 13.434 0 11.695 0 9.847c0-3.826 2.825-6.935 6.301-6.935h4.208L9.284 1.565c-.316-.348-.316-.935 0-1.304.316-.348.85-.348 1.185 0l2.647 2.913a.952.952 0 0 1 .198.37c0 .021.02.065.02.086v.196zM20 10.152c0 3.826-2.825 6.935-6.301 6.935H9.49l1.225 1.348c.336.348.336.935 0 1.304a.797.797 0 0 1-.593.261.83.83 0 0 1-.592-.26l-2.627-2.936a.948.948 0 0 1-.198-.37c0-.021-.02-.064-.02-.086-.02-.065-.02-.109-.02-.174 0-.065 0-.13.02-.174 0-.022.02-.065.02-.087a.9.9 0 0 1 .198-.37L9.55 12.63c.316-.347.849-.347 1.185 0 .336.348.336.935 0 1.305L9.51 15.283h4.208c2.548 0 4.641-2.283 4.641-5.11 0-1.369-.474-2.651-1.362-3.608a.97.97 0 0 1 0-1.304c.316-.348.849-.348 1.185 0C19.348 6.543 20 8.283 20 10.152z' fill='%23141827'/%3E%3C/svg%3E");height:10px;width:10px}.tribe-common .tribe-common-svgicon--search{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%235D5D5D'/%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--filters{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%235D5D5D' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0m0 15v-2'/%3E%3Ccircle cx='3' cy='9' r='3'/%3E%3Cpath d='M12 9v6'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-svgicon--close{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cpath d='M16 2L2 16m14 0L2 2' stroke='%235D5D5D' fill='none' fill-rule='evenodd' stroke-linecap='square' stroke-width='2'/%3E%3C/svg%3E")}.tribe-common .tribe-common-a11y-hidden{display:none!important;visibility:hidden}.tribe-common .tribe-common-a11y-visual-hide,.tribe-common .tribe-common-a11y-visual-show{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.tribe-common .tribe-common-c-btn-border,.tribe-common a.tribe-common-c-btn-border{padding:14px 20px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn-border,.tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn-border{padding:6px 15px;width:auto}.tribe-common .tribe-common-c-btn-icon:before{background-repeat:no-repeat;background-size:contain;content:"";display:block}.tribe-common .tribe-common-c-btn-icon--caret-left:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z' fill='%23BABABA'/%3E%3C/svg%3E");height:20px;width:12px}.tribe-common .tribe-common-c-btn-icon--caret-left:active:before,.tribe-common .tribe-common-c-btn-icon--caret-left:focus:before,.tribe-common .tribe-common-c-btn-icon--caret-left:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z' fill='%235D5D5D'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-left:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.916 17.841L10 19.757l-9.9-9.9L10-.041l1.916 1.916-7.983 7.984z' fill='%23D5D5D5'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-right:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z' fill='%23BABABA'/%3E%3C/svg%3E");height:20px;width:12px}.tribe-common .tribe-common-c-btn-icon--caret-right:active:before,.tribe-common .tribe-common-c-btn-icon--caret-right:focus:before,.tribe-common .tribe-common-c-btn-icon--caret-right:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z' fill='%235D5D5D'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--caret-right:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.084 2.159L2 .243l9.9 9.9L2 20.041.084 18.126l7.983-7.984z' fill='%23D5D5D5'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--filters:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%235D5D5D' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0m0 15v-2'/%3E%3Ccircle cx='3' cy='9' r='3'/%3E%3Cpath d='M12 9v6'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)'/%3E%3C/g%3E%3C/svg%3E");height:20px;width:24px}.tribe-common .tribe-common-c-btn-icon--filters:active:before,.tribe-common .tribe-common-c-btn-icon--filters:focus:before,.tribe-common .tribe-common-c-btn-icon--filters:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%23141827' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0m0 15v-2'/%3E%3Ccircle cx='3' cy='9' r='3'/%3E%3Cpath d='M12 9v6'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--filters:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17'%3E%3Cg fill='none' fill-rule='evenodd' stroke='%23D5D5D5' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' transform='translate(1 1)'%3E%3Cpath d='M3 3V0m0 15v-2'/%3E%3Ccircle cx='3' cy='9' r='3'/%3E%3Cpath d='M12 9v6'/%3E%3Ccircle cx='12' cy='3' r='3' transform='matrix(1 0 0 -1 0 6)'/%3E%3C/g%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--search:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%235D5D5D'/%3E%3C/svg%3E");height:20px;width:20px}.tribe-common .tribe-common-c-btn-icon--search:active:before,.tribe-common .tribe-common-c-btn-icon--search:focus:before,.tribe-common .tribe-common-c-btn-icon--search:hover:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%23141827'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn-icon--search:disabled:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='20' height='20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 18.711l-6.044-6.044a7.782 7.782 0 0 0 1.688-4.845c0-2.089-.822-4.044-2.288-5.533C11.866.822 9.91 0 7.822 0S3.778.822 2.29 2.289A7.801 7.801 0 0 0 0 7.822c0 2.09.822 4.045 2.289 5.534a7.801 7.801 0 0 0 5.533 2.288c1.778 0 3.467-.6 4.845-1.688L18.71 20 20 18.711zM3.578 12.067c-2.334-2.334-2.334-6.156 0-8.49a5.968 5.968 0 0 1 4.244-1.755c1.6 0 3.111.622 4.245 1.756 2.333 2.333 2.333 6.155 0 8.489a5.968 5.968 0 0 1-4.245 1.755c-1.6 0-3.11-.622-4.244-1.755z' fill='%23D5D5D5'/%3E%3C/svg%3E")}.tribe-common .tribe-common-c-btn,.tribe-common a.tribe-common-c-btn{padding:11px 20px;width:100%}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-btn,.tribe-common--breakpoint-medium.tribe-common a.tribe-common-c-btn{width:auto}.tribe-common .tribe-common-c-image{display:block;height:auto;margin-left:auto;margin-right:auto;width:100%}.tribe-common .tribe-common-c-image--bg{position:relative}.tribe-common .tribe-common-c-image__bg{background:50% no-repeat;background-size:cover;bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.tribe-common .tribe-common-c-loader{display:flex;padding-top:192px}.tribe-common--breakpoint-medium.tribe-common .tribe-common-c-loader{padding-top:288px}.tribe-common .tribe-common-c-loader__dot{background-color:rgba(51,74,255,.07);height:15px;width:15px;border-radius:50%}.tribe-common .tribe-common-c-loader__dot:not(:first-of-type){margin-left:8px}
|
common/src/resources/css/datatables.css
DELETED
@@ -1,396 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
11 |
-
/*
|
12 |
-
* Table styles
|
13 |
-
*/
|
14 |
-
table.dataTable {
|
15 |
-
border-collapse: separate;
|
16 |
-
border-spacing: 0;
|
17 |
-
clear: both;
|
18 |
-
margin: 0 auto;
|
19 |
-
width: 100%;
|
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 |
-
*/
|
227 |
-
.dataTables_wrapper {
|
228 |
-
clear: both;
|
229 |
-
position: relative;
|
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: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), to(rgba(255, 255, 255, 0)));
|
335 |
-
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%);
|
336 |
-
}
|
337 |
-
.dataTables_wrapper .dataTables_length,
|
338 |
-
.dataTables_wrapper .dataTables_filter,
|
339 |
-
.dataTables_wrapper .dataTables_info,
|
340 |
-
.dataTables_wrapper .dataTables_processing,
|
341 |
-
.dataTables_wrapper .dataTables_paginate {
|
342 |
-
color: #333;
|
343 |
-
}
|
344 |
-
.dataTables_wrapper .dataTables_scroll {
|
345 |
-
clear: both;
|
346 |
-
}
|
347 |
-
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
|
348 |
-
*margin-top: -1px;
|
349 |
-
-webkit-overflow-scrolling: touch;
|
350 |
-
}
|
351 |
-
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td {
|
352 |
-
vertical-align: middle;
|
353 |
-
}
|
354 |
-
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th > div.dataTables_sizing,
|
355 |
-
.dataTables_wrapper .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td > div.dataTables_sizing {
|
356 |
-
height: 0;
|
357 |
-
overflow: hidden;
|
358 |
-
margin: 0 !important;
|
359 |
-
padding: 0 !important;
|
360 |
-
}
|
361 |
-
.dataTables_wrapper.no-footer .dataTables_scrollBody {
|
362 |
-
border-bottom: 1px solid #111;
|
363 |
-
}
|
364 |
-
.dataTables_wrapper.no-footer div.dataTables_scrollHead table,
|
365 |
-
.dataTables_wrapper.no-footer div.dataTables_scrollBody table {
|
366 |
-
border-bottom: none;
|
367 |
-
}
|
368 |
-
.dataTables_wrapper:after {
|
369 |
-
visibility: hidden;
|
370 |
-
display: block;
|
371 |
-
content: "";
|
372 |
-
clear: both;
|
373 |
-
height: 0;
|
374 |
-
}
|
375 |
-
@media screen and (max-width: 767px) {
|
376 |
-
.dataTables_wrapper .dataTables_info,
|
377 |
-
.dataTables_wrapper .dataTables_paginate {
|
378 |
-
float: none;
|
379 |
-
text-align: center;
|
380 |
-
}
|
381 |
-
|
382 |
-
.dataTables_wrapper .dataTables_paginate {
|
383 |
-
margin-top: 0.5em;
|
384 |
-
}
|
385 |
-
}
|
386 |
-
@media screen and (max-width: 640px) {
|
387 |
-
.dataTables_wrapper .dataTables_length,
|
388 |
-
.dataTables_wrapper .dataTables_filter {
|
389 |
-
float: none;
|
390 |
-
text-align: center;
|
391 |
-
}
|
392 |
-
|
393 |
-
.dataTables_wrapper .dataTables_filter {
|
394 |
-
margin-top: 0.5em;
|
395 |
-
}
|
396 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/resources/css/datepicker.css
DELETED
@@ -1,566 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
11 |
-
.tribe-ui-datepicker.ui-datepicker body,
|
12 |
-
.tribe-ui-datepicker.ui-datepicker button,
|
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;
|
24 |
-
}
|
25 |
-
|
26 |
-
/* Interaction Cues
|
27 |
-
----------------------------------*/
|
28 |
-
|
29 |
-
.tribe-ui-datepicker .ui-state-disabled {
|
30 |
-
cursor: default !important;
|
31 |
-
pointer-events: none;
|
32 |
-
}
|
33 |
-
|
34 |
-
/* Icons
|
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%;
|
50 |
-
margin-left: -8px;
|
51 |
-
display: block;
|
52 |
-
}
|
53 |
-
|
54 |
-
/* Misc visuals
|
55 |
-
----------------------------------*/
|
56 |
-
|
57 |
-
/* Overlays */
|
58 |
-
|
59 |
-
.ui-widget-overlay {
|
60 |
-
position: fixed;
|
61 |
-
top: 0;
|
62 |
-
left: 0;
|
63 |
-
width: 100%;
|
64 |
-
height: 100%;
|
65 |
-
}
|
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;
|
79 |
-
border: 0;
|
80 |
-
background-color: transparent;
|
81 |
-
background-image: none;
|
82 |
-
}
|
83 |
-
|
84 |
-
.tribe-ui-datepicker.ui-datepicker .ui-datepicker-prev,
|
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 {
|
116 |
-
color: darken(#b1b1b1, 10%);
|
117 |
-
border: 0;
|
118 |
-
background: none;
|
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 |
-
|
220 |
-
.tribe-ui-datepicker.ui-datepicker.ui-datepicker-multi {
|
221 |
-
width: auto;
|
222 |
-
}
|
223 |
-
|
224 |
-
.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group {
|
225 |
-
float: left;
|
226 |
-
}
|
227 |
-
|
228 |
-
.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group table {
|
229 |
-
width: 95%;
|
230 |
-
margin: 0 auto .4rem;
|
231 |
-
}
|
232 |
-
|
233 |
-
.tribe-ui-datepicker.ui-datepicker-multi-2 .ui-datepicker-group {
|
234 |
-
width: 50%;
|
235 |
-
}
|
236 |
-
|
237 |
-
.tribe-ui-datepicker.ui-datepicker-multi-3 .ui-datepicker-group {
|
238 |
-
width: 33.3%;
|
239 |
-
}
|
240 |
-
|
241 |
-
.tribe-ui-datepicker.ui-datepicker-multi-4 .ui-datepicker-group {
|
242 |
-
width: 25%;
|
243 |
-
}
|
244 |
-
|
245 |
-
.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
|
246 |
-
.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
|
247 |
-
border-left-width: 0;
|
248 |
-
}
|
249 |
-
|
250 |
-
.tribe-ui-datepicker.ui-datepicker-multi .ui-datepicker-buttonpane {
|
251 |
-
clear: left;
|
252 |
-
}
|
253 |
-
|
254 |
-
.tribe-ui-datepicker .ui-datepicker-row-break {
|
255 |
-
clear: both;
|
256 |
-
width: 100%;
|
257 |
-
font-size: 0;
|
258 |
-
}
|
259 |
-
|
260 |
-
/* Component containers
|
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 |
-
|
272 |
-
.tribe-ui-datepicker.ui-widget input,
|
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 |
-
|
279 |
-
.tribe-ui-datepicker.ui-widget-content a,
|
280 |
-
.tribe-ui-datepicker .ui-widget-header a {
|
281 |
-
color: #23282d;
|
282 |
-
}
|
283 |
-
|
284 |
-
/* Interaction states
|
285 |
-
----------------------------------*/
|
286 |
-
|
287 |
-
.tribe-ui-datepicker .ui-state-default,
|
288 |
-
.tribe-ui-datepicker.ui-widget-content .ui-state-default,
|
289 |
-
.tribe-ui-datepicker .ui-widget-header .ui-state-default,
|
290 |
-
.tribe-ui-datepicker .ui-button,
|
291 |
-
|
292 |
-
/* We use html here because we need a greater specificity to make sure disabled
|
293 |
-
works properly when clicked or hovered */
|
294 |
-
html .tribe-ui-datepicker .ui-button.ui-state-disabled:hover,
|
295 |
-
html .tribe-ui-datepicker .ui-button.ui-state-disabled:active {
|
296 |
-
color: #23282d;
|
297 |
-
border: 0;
|
298 |
-
background-color: transparent;
|
299 |
-
background-image: none;
|
300 |
-
}
|
301 |
-
|
302 |
-
.tribe-ui-datepicker .ui-state-default a,
|
303 |
-
.tribe-ui-datepicker .ui-state-default a:link,
|
304 |
-
.tribe-ui-datepicker .ui-state-default a:visited,
|
305 |
-
.tribe-ui-datepicker a.ui-button,
|
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,
|
315 |
-
.tribe-ui-datepicker .ui-widget-header .ui-state-hover,
|
316 |
-
.tribe-ui-datepicker .ui-state-focus,
|
317 |
-
.tribe-ui-datepicker .ui-widget-content .ui-state-focus,
|
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,
|
328 |
-
.tribe-ui-datepicker .ui-state-hover a:link,
|
329 |
-
.tribe-ui-datepicker .ui-state-hover a:visited,
|
330 |
-
.tribe-ui-datepicker .ui-state-focus a,
|
331 |
-
.tribe-ui-datepicker .ui-state-focus a:hover,
|
332 |
-
.tribe-ui-datepicker .ui-state-focus a:link,
|
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,
|
348 |
-
.tribe-ui-datepicker .ui-widget-header .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 |
-
----------------------------------*/
|
371 |
-
|
372 |
-
.tribe-ui-datepicker .ui-state-highlight,
|
373 |
-
.tribe-ui-datepicker.ui-widget-content .ui-state-highlight,
|
374 |
-
.tribe-ui-datepicker .ui-widget-header .ui-state-highlight {
|
375 |
-
background: #ffffff;
|
376 |
-
color: #363636;
|
377 |
-
border: 0;
|
378 |
-
background-image: none;
|
379 |
-
}
|
380 |
-
|
381 |
-
.tribe-ui-datepicker .ui-state-checked {
|
382 |
-
background: #ffffff;
|
383 |
-
}
|
384 |
-
|
385 |
-
.tribe-ui-datepicker .ui-state-highlight a,
|
386 |
-
.tribe-ui-datepicker.ui-widget-content .ui-state-highlight a,
|
387 |
-
.tribe-ui-datepicker .ui-widget-header .ui-state-highlight a {
|
388 |
-
color: #363636;
|
389 |
-
}
|
390 |
-
|
391 |
-
.tribe-ui-datepicker .ui-state-error,
|
392 |
-
.tribe-ui-datepicker.ui-widget-content .ui-state-error,
|
393 |
-
.tribe-ui-datepicker .ui-widget-header .ui-state-error {
|
394 |
-
background: #b81900;
|
395 |
-
color: #ffffff;
|
396 |
-
}
|
397 |
-
|
398 |
-
.tribe-ui-datepicker .ui-state-error a,
|
399 |
-
.tribe-ui-datepicker.ui-widget-content .ui-state-error a,
|
400 |
-
.tribe-ui-datepicker .ui-widget-header .ui-state-error a {
|
401 |
-
color: #ffffff;
|
402 |
-
}
|
403 |
-
|
404 |
-
.tribe-ui-datepicker .ui-state-error-text,
|
405 |
-
.tribe-ui-datepicker.ui-widget-content .ui-state-error-text,
|
406 |
-
.tribe-ui-datepicker .ui-widget-header .ui-state-error-text {
|
407 |
-
color: #ffffff;
|
408 |
-
}
|
409 |
-
|
410 |
-
.tribe-ui-datepicker .ui-priority-secondary,
|
411 |
-
.tribe-ui-datepicker.ui-widget-content .ui-priority-secondary,
|
412 |
-
.tribe-ui-datepicker .ui-widget-header .ui-priority-secondary {
|
413 |
-
opacity: .7;
|
414 |
-
filter:Alpha(Opacity=70); /* support: IE8 */
|
415 |
-
font-weight: normal;
|
416 |
-
}
|
417 |
-
|
418 |
-
.tribe-ui-datepicker .ui-state-disabled,
|
419 |
-
.tribe-ui-datepicker.ui-widget-content .ui-state-disabled,
|
420 |
-
.tribe-ui-datepicker .ui-widget-header .ui-state-disabled {
|
421 |
-
opacity: .35;
|
422 |
-
filter:Alpha(Opacity=35); /* support: IE8 */
|
423 |
-
background-image: none;
|
424 |
-
}
|
425 |
-
|
426 |
-
.tribe-ui-datepicker .ui-state-disabled .ui-icon {
|
427 |
-
filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
|
428 |
-
}
|
429 |
-
|
430 |
-
/* Corner radius */
|
431 |
-
|
432 |
-
.tribe-ui-datepicker .ui-corner-all,
|
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 |
-
|
525 |
-
.tribe-ui-datepicker.ui-datepicker-rtl {
|
526 |
-
direction: rtl;
|
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/dependency.css
DELETED
@@ -1,30 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
11 |
-
/* Dependency CSS */
|
12 |
-
.tribe-dependent {
|
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/dialog.css
DELETED
@@ -1,576 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
11 |
-
/* = Dialogs
|
12 |
-
This can include modals, toasters, confirms. alerts.
|
13 |
-
============================ */
|
14 |
-
|
15 |
-
/* Utilities */
|
16 |
-
|
17 |
-
/* -----------------------------------------------------------------------------
|
18 |
-
*
|
19 |
-
* Utilities
|
20 |
-
*
|
21 |
-
* This file is just a clearing-house.
|
22 |
-
* Make partials (start with an underscore) for any actual css code.
|
23 |
-
*
|
24 |
-
* ----------------------------------------------------------------------------- */
|
25 |
-
|
26 |
-
/* Variables */
|
27 |
-
|
28 |
-
:root {
|
29 |
-
/* -----------------------------------------------------------------------------
|
30 |
-
* Borders - Radius
|
31 |
-
* ----------------------------------------------------------------------------- */
|
32 |
-
|
33 |
-
/* -----------------------------------------------------------------------------
|
34 |
-
* Borders - Width
|
35 |
-
* ----------------------------------------------------------------------------- */
|
36 |
-
}
|
37 |
-
|
38 |
-
:root {
|
39 |
-
/* -----------------------------------------------------------------------------
|
40 |
-
* Box Shadows
|
41 |
-
* ----------------------------------------------------------------------------- */
|
42 |
-
}
|
43 |
-
|
44 |
-
:root {
|
45 |
-
/* -----------------------------------------------------------------------------
|
46 |
-
* Layers of z-index
|
47 |
-
* ----------------------------------------------------------------------------- */
|
48 |
-
}
|
49 |
-
|
50 |
-
:root {
|
51 |
-
/* -----------------------------------------------------------------------------
|
52 |
-
* Colors - Typography
|
53 |
-
* ----------------------------------------------------------------------------- */
|
54 |
-
|
55 |
-
/* -----------------------------------------------------------------------------
|
56 |
-
* Colors - Iconography
|
57 |
-
* ----------------------------------------------------------------------------- */
|
58 |
-
|
59 |
-
/* -----------------------------------------------------------------------------
|
60 |
-
* Colors - UI
|
61 |
-
* ----------------------------------------------------------------------------- */
|
62 |
-
|
63 |
-
/* -----------------------------------------------------------------------------
|
64 |
-
* Colors - Borders & Misc
|
65 |
-
* ----------------------------------------------------------------------------- */
|
66 |
-
|
67 |
-
}
|
68 |
-
|
69 |
-
:root {
|
70 |
-
/* -----------------------------------------------------------------------------
|
71 |
-
* Forms - Colors
|
72 |
-
* ----------------------------------------------------------------------------- */
|
73 |
-
|
74 |
-
/* -----------------------------------------------------------------------------
|
75 |
-
* Forms - Box Shadows
|
76 |
-
* ----------------------------------------------------------------------------- */
|
77 |
-
}
|
78 |
-
|
79 |
-
:root {
|
80 |
-
/* -----------------------------------------------------------------------------
|
81 |
-
* Gutter - Default
|
82 |
-
* ----------------------------------------------------------------------------- */
|
83 |
-
|
84 |
-
/* -----------------------------------------------------------------------------
|
85 |
-
* Gutter - Page
|
86 |
-
* ----------------------------------------------------------------------------- */
|
87 |
-
|
88 |
-
/* -----------------------------------------------------------------------------
|
89 |
-
* Grid Width - Default
|
90 |
-
* ----------------------------------------------------------------------------- */
|
91 |
-
|
92 |
-
/* -----------------------------------------------------------------------------
|
93 |
-
* Grid Width - Relative
|
94 |
-
* ----------------------------------------------------------------------------- */
|
95 |
-
}
|
96 |
-
|
97 |
-
:root {
|
98 |
-
/* -----------------------------------------------------------------------------
|
99 |
-
* Opacities
|
100 |
-
* ----------------------------------------------------------------------------- */
|
101 |
-
}
|
102 |
-
|
103 |
-
:root {
|
104 |
-
/* -----------------------------------------------------------------------------
|
105 |
-
* Spacers
|
106 |
-
* ----------------------------------------------------------------------------- */
|
107 |
-
}
|
108 |
-
|
109 |
-
/* -----------------------------------------------------------------------------
|
110 |
-
* SVG - Arrow Right
|
111 |
-
* ----------------------------------------------------------------------------- */
|
112 |
-
|
113 |
-
/* -----------------------------------------------------------------------------
|
114 |
-
* SVG - Caret Down
|
115 |
-
* ----------------------------------------------------------------------------- */
|
116 |
-
|
117 |
-
/* -----------------------------------------------------------------------------
|
118 |
-
* SVG - Caret Left
|
119 |
-
* ----------------------------------------------------------------------------- */
|
120 |
-
|
121 |
-
/* -----------------------------------------------------------------------------
|
122 |
-
* SVG - Caret Right
|
123 |
-
* ----------------------------------------------------------------------------- */
|
124 |
-
|
125 |
-
/* -----------------------------------------------------------------------------
|
126 |
-
* SVG - Caret Up
|
127 |
-
* ----------------------------------------------------------------------------- */
|
128 |
-
|
129 |
-
/* -----------------------------------------------------------------------------
|
130 |
-
* SVG - Check
|
131 |
-
* ----------------------------------------------------------------------------- */
|
132 |
-
|
133 |
-
/* -----------------------------------------------------------------------------
|
134 |
-
* SVG - Close
|
135 |
-
* ----------------------------------------------------------------------------- */
|
136 |
-
|
137 |
-
/* -----------------------------------------------------------------------------
|
138 |
-
* SVG - Day
|
139 |
-
* ----------------------------------------------------------------------------- */
|
140 |
-
|
141 |
-
/* -----------------------------------------------------------------------------
|
142 |
-
* SVG - Dropdown
|
143 |
-
* ----------------------------------------------------------------------------- */
|
144 |
-
|
145 |
-
/* -----------------------------------------------------------------------------
|
146 |
-
* SVG - Featured
|
147 |
-
* ----------------------------------------------------------------------------- */
|
148 |
-
|
149 |
-
/* -----------------------------------------------------------------------------
|
150 |
-
* SVG - Filters
|
151 |
-
* ----------------------------------------------------------------------------- */
|
152 |
-
|
153 |
-
/* -----------------------------------------------------------------------------
|
154 |
-
* SVG - Link
|
155 |
-
* ----------------------------------------------------------------------------- */
|
156 |
-
|
157 |
-
/* -----------------------------------------------------------------------------
|
158 |
-
* SVG - List
|
159 |
-
* ----------------------------------------------------------------------------- */
|
160 |
-
|
161 |
-
/* -----------------------------------------------------------------------------
|
162 |
-
* SVG - Location
|
163 |
-
* ----------------------------------------------------------------------------- */
|
164 |
-
|
165 |
-
/* -----------------------------------------------------------------------------
|
166 |
-
* SVG - Mail
|
167 |
-
* ----------------------------------------------------------------------------- */
|
168 |
-
|
169 |
-
/* -----------------------------------------------------------------------------
|
170 |
-
* SVG - Map
|
171 |
-
* ----------------------------------------------------------------------------- */
|
172 |
-
|
173 |
-
/* -----------------------------------------------------------------------------
|
174 |
-
* SVG - Map pin
|
175 |
-
* ----------------------------------------------------------------------------- */
|
176 |
-
|
177 |
-
/* -----------------------------------------------------------------------------
|
178 |
-
* SVG - Messages
|
179 |
-
* ----------------------------------------------------------------------------- */
|
180 |
-
|
181 |
-
/* -----------------------------------------------------------------------------
|
182 |
-
* SVG - Month
|
183 |
-
* ----------------------------------------------------------------------------- */
|
184 |
-
|
185 |
-
/* -----------------------------------------------------------------------------
|
186 |
-
* SVG - No Map
|
187 |
-
* ----------------------------------------------------------------------------- */
|
188 |
-
|
189 |
-
/* -----------------------------------------------------------------------------
|
190 |
-
* SVG - Phone
|
191 |
-
* ----------------------------------------------------------------------------- */
|
192 |
-
|
193 |
-
/* -----------------------------------------------------------------------------
|
194 |
-
* SVG - Photo
|
195 |
-
* ----------------------------------------------------------------------------- */
|
196 |
-
|
197 |
-
/* -----------------------------------------------------------------------------
|
198 |
-
* SVG - Plus
|
199 |
-
* ----------------------------------------------------------------------------- */
|
200 |
-
|
201 |
-
/* -----------------------------------------------------------------------------
|
202 |
-
* SVG - Recurring
|
203 |
-
* ----------------------------------------------------------------------------- */
|
204 |
-
|
205 |
-
/* -----------------------------------------------------------------------------
|
206 |
-
* SVG - Reset
|
207 |
-
* ----------------------------------------------------------------------------- */
|
208 |
-
|
209 |
-
/* -----------------------------------------------------------------------------
|
210 |
-
* SVG - Search
|
211 |
-
* ----------------------------------------------------------------------------- */
|
212 |
-
|
213 |
-
/* -----------------------------------------------------------------------------
|
214 |
-
* SVG - Search Filter
|
215 |
-
* ----------------------------------------------------------------------------- */
|
216 |
-
|
217 |
-
/* -----------------------------------------------------------------------------
|
218 |
-
* SVG - Week
|
219 |
-
* ----------------------------------------------------------------------------- */
|
220 |
-
|
221 |
-
:root {
|
222 |
-
/* -----------------------------------------------------------------------------
|
223 |
-
* Transitions
|
224 |
-
* ----------------------------------------------------------------------------- */
|
225 |
-
}
|
226 |
-
|
227 |
-
:root {
|
228 |
-
/* -----------------------------------------------------------------------------
|
229 |
-
* Font Stacks
|
230 |
-
* ----------------------------------------------------------------------------- */
|
231 |
-
|
232 |
-
/* -----------------------------------------------------------------------------
|
233 |
-
* Font Weights
|
234 |
-
* ----------------------------------------------------------------------------- */
|
235 |
-
|
236 |
-
/* -----------------------------------------------------------------------------
|
237 |
-
* Font Sizing
|
238 |
-
* ----------------------------------------------------------------------------- */
|
239 |
-
|
240 |
-
/* -----------------------------------------------------------------------------
|
241 |
-
* Line Height
|
242 |
-
* ----------------------------------------------------------------------------- */
|
243 |
-
}
|
244 |
-
|
245 |
-
/* Mixins */
|
246 |
-
|
247 |
-
/* -----------------------------------------------------------------------------
|
248 |
-
* Body
|
249 |
-
* ----------------------------------------------------------------------------- */
|
250 |
-
|
251 |
-
/* -----------------------------------------------------------------------------
|
252 |
-
* Desktop Body 1
|
253 |
-
* ----------------------------------------------------------------------------- */
|
254 |
-
|
255 |
-
/* -----------------------------------------------------------------------------
|
256 |
-
* Desktop Body 2
|
257 |
-
* ----------------------------------------------------------------------------- */
|
258 |
-
|
259 |
-
/* -----------------------------------------------------------------------------
|
260 |
-
* Desktop Body 3
|
261 |
-
* ----------------------------------------------------------------------------- */
|
262 |
-
|
263 |
-
/* -----------------------------------------------------------------------------
|
264 |
-
* Mobile Body 1
|
265 |
-
* ----------------------------------------------------------------------------- */
|
266 |
-
|
267 |
-
/* -----------------------------------------------------------------------------
|
268 |
-
* Mobile Body 2
|
269 |
-
* ----------------------------------------------------------------------------- */
|
270 |
-
|
271 |
-
/* -----------------------------------------------------------------------------
|
272 |
-
* Mobile Body 3
|
273 |
-
* ----------------------------------------------------------------------------- */
|
274 |
-
|
275 |
-
/* -----------------------------------------------------------------------------
|
276 |
-
* Heading
|
277 |
-
* ----------------------------------------------------------------------------- */
|
278 |
-
|
279 |
-
/* -----------------------------------------------------------------------------
|
280 |
-
* Heading 1
|
281 |
-
* ----------------------------------------------------------------------------- */
|
282 |
-
|
283 |
-
/* -----------------------------------------------------------------------------
|
284 |
-
* Heading 2
|
285 |
-
* ----------------------------------------------------------------------------- */
|
286 |
-
|
287 |
-
/* -----------------------------------------------------------------------------
|
288 |
-
* Heading 3
|
289 |
-
* ----------------------------------------------------------------------------- */
|
290 |
-
|
291 |
-
/* -----------------------------------------------------------------------------
|
292 |
-
* Heading 4
|
293 |
-
* ----------------------------------------------------------------------------- */
|
294 |
-
|
295 |
-
/* -----------------------------------------------------------------------------
|
296 |
-
* Heading 5
|
297 |
-
* ----------------------------------------------------------------------------- */
|
298 |
-
|
299 |
-
/* -----------------------------------------------------------------------------
|
300 |
-
* Heading 6
|
301 |
-
* ----------------------------------------------------------------------------- */
|
302 |
-
|
303 |
-
/* -----------------------------------------------------------------------------
|
304 |
-
* Heading 7
|
305 |
-
* ----------------------------------------------------------------------------- */
|
306 |
-
|
307 |
-
/* -----------------------------------------------------------------------------
|
308 |
-
* Heading 8
|
309 |
-
* ----------------------------------------------------------------------------- */
|
310 |
-
|
311 |
-
/* -----------------------------------------------------------------------------
|
312 |
-
* Anchor - Default
|
313 |
-
* ----------------------------------------------------------------------------- */
|
314 |
-
|
315 |
-
/* -----------------------------------------------------------------------------
|
316 |
-
* Anchor - Alt
|
317 |
-
* ----------------------------------------------------------------------------- */
|
318 |
-
|
319 |
-
/* -----------------------------------------------------------------------------
|
320 |
-
* Anchor - Thin
|
321 |
-
* ----------------------------------------------------------------------------- */
|
322 |
-
|
323 |
-
/* -----------------------------------------------------------------------------
|
324 |
-
* Anchor - Thin
|
325 |
-
* ----------------------------------------------------------------------------- */
|
326 |
-
|
327 |
-
/* -----------------------------------------------------------------------------
|
328 |
-
* Button - Global
|
329 |
-
* ----------------------------------------------------------------------------- */
|
330 |
-
|
331 |
-
/* -----------------------------------------------------------------------------
|
332 |
-
* Button - Solid
|
333 |
-
* ----------------------------------------------------------------------------- */
|
334 |
-
|
335 |
-
/* -----------------------------------------------------------------------------
|
336 |
-
* Button - Border
|
337 |
-
* ----------------------------------------------------------------------------- */
|
338 |
-
|
339 |
-
/* -----------------------------------------------------------------------------
|
340 |
-
* Button - Icon Border
|
341 |
-
* ----------------------------------------------------------------------------- */
|
342 |
-
|
343 |
-
/* -----------------------------------------------------------------------------
|
344 |
-
* Sliders & Toggles
|
345 |
-
* ----------------------------------------------------------------------------- */
|
346 |
-
|
347 |
-
/* -----------------------------------------------------------------------------
|
348 |
-
* Sliders
|
349 |
-
* ----------------------------------------------------------------------------- */
|
350 |
-
|
351 |
-
/* -----------------------------------------------------------------------------
|
352 |
-
* Hidden: Hide from both screenreaders and browsers
|
353 |
-
* @author: h5bp.com/u
|
354 |
-
* ----------------------------------------------------------------------------- */
|
355 |
-
|
356 |
-
/* -----------------------------------------------------------------------------
|
357 |
-
* Visually Hide: Hide only visually, but have it available for screenreaders
|
358 |
-
* @author: h5bp.com/v
|
359 |
-
* ----------------------------------------------------------------------------- */
|
360 |
-
|
361 |
-
/* -----------------------------------------------------------------------------
|
362 |
-
* Visually Show: Show element after has been hidden with %visually-hide
|
363 |
-
* ----------------------------------------------------------------------------- */
|
364 |
-
|
365 |
-
/* vars */
|
366 |
-
|
367 |
-
.tribe-common .tribe-dialog {
|
368 |
-
--tribe-dialog-background-color: #FFF;
|
369 |
-
--tribe-dialog-close-background: #FFF;
|
370 |
-
--tribe-dialog-close-border-color: #BABABA;
|
371 |
-
--tribe-dialog-close-border-width: 1px;
|
372 |
-
--tribe-dialog-close-color: #BABABA;
|
373 |
-
--tribe-dialog-close-height: 12px;
|
374 |
-
--tribe-dialog-close-height-desktop: 16px;
|
375 |
-
--tribe-dialog-overlay-color: transparent;
|
376 |
-
--tribe-modal-overlay-color: rgba(20,24,39,0.9);
|
377 |
-
--tribe-dialog-border-radius: 4px;
|
378 |
-
--tribe-dialog-padding: 16px;
|
379 |
-
--tribe-dialog-padding-top: 24px;
|
380 |
-
--tribe-dialog-padding-side: 28px;
|
381 |
-
}
|
382 |
-
|
383 |
-
/* The dialog/popup/modal itself */
|
384 |
-
|
385 |
-
.tribe-common div.tribe-dialog {
|
386 |
-
-webkit-box-align: center;
|
387 |
-
align-items: center;
|
388 |
-
display: -webkit-box;
|
389 |
-
display: flex;
|
390 |
-
height: 100vh;
|
391 |
-
-webkit-box-pack: center;
|
392 |
-
justify-content: center;
|
393 |
-
left: 0;
|
394 |
-
position: fixed;
|
395 |
-
top: 0;
|
396 |
-
width: 100vw;
|
397 |
-
z-index: 1;
|
398 |
-
}
|
399 |
-
|
400 |
-
.tribe-common div.tribe-dialog[aria-hidden='true'] {
|
401 |
-
display: none;
|
402 |
-
}
|
403 |
-
|
404 |
-
/* The trigger button" */
|
405 |
-
|
406 |
-
.tribe-common .tribe-dialog__trigger {}
|
407 |
-
|
408 |
-
/* The overlay */
|
409 |
-
|
410 |
-
.tribe-common .tribe-dialog__overlay {
|
411 |
-
background-color: var(--tribe-dialog-overlay-color);
|
412 |
-
height: 100vh;
|
413 |
-
left: 0;
|
414 |
-
opacity: .9;
|
415 |
-
position: fixed;
|
416 |
-
top: 0;
|
417 |
-
width: 100vw;
|
418 |
-
z-index: 1;
|
419 |
-
}
|
420 |
-
|
421 |
-
/* Content wrapper - includes close button*/
|
422 |
-
|
423 |
-
.tribe-common .tribe-dialog__wrapper {
|
424 |
-
background-color: var(--tribe-dialog-background-color);
|
425 |
-
border-radius: var(--tribe-dialog-border-radius);
|
426 |
-
box-shadow: 0 2px 54px 0 var(--tribe-modal-overlay-color);
|
427 |
-
width: 800px;
|
428 |
-
overflow-y: scroll;
|
429 |
-
padding: var(--tribe-dialog-padding);
|
430 |
-
max-height: 100vh;
|
431 |
-
max-width: 100vw;
|
432 |
-
z-index: 2;
|
433 |
-
-webkit-transform: translateZ(0px);
|
434 |
-
-webkit-transform: translate3d(0,0,0);
|
435 |
-
-webkit-perspective: 1000;
|
436 |
-
}
|
437 |
-
|
438 |
-
.tribe-common .tribe-dialog__wrapper div[role="document"] {
|
439 |
-
-webkit-box-align: end;
|
440 |
-
align-items: flex-end;
|
441 |
-
display: -webkit-box;
|
442 |
-
display: flex;
|
443 |
-
-webkit-box-orient: vertical;
|
444 |
-
-webkit-box-direction: normal;
|
445 |
-
flex-flow: column;
|
446 |
-
-webkit-box-pack: justify;
|
447 |
-
justify-content: space-between;
|
448 |
-
position: relative;
|
449 |
-
}
|
450 |
-
|
451 |
-
/* The "close" button */
|
452 |
-
|
453 |
-
.tribe-common .tribe-dialog__close-button {
|
454 |
-
background: var(--tribe-dialog-close-background);
|
455 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cg fill='none' fill-rule='evenodd' stroke-linecap='square' stroke-width='2'%3E%3Cpath d='M16 2L2 16M16 16L2 2' stroke='%23BABABA'/%3E%3C/g%3E%3C/svg%3E");
|
456 |
-
background-repeat: no-repeat;
|
457 |
-
background-size: contain;
|
458 |
-
cursor: pointer;
|
459 |
-
display: inline-block;
|
460 |
-
font-size: 14px;
|
461 |
-
height: var(--tribe-dialog-close-height);
|
462 |
-
line-height: var(--tribe-dialog-close-height);
|
463 |
-
padding: 0;
|
464 |
-
position: absolute;
|
465 |
-
width: var(--tribe-dialog-close-height);
|
466 |
-
z-index: 1;
|
467 |
-
}
|
468 |
-
|
469 |
-
.tribe-common .tribe-dialog__close-button:focus,
|
470 |
-
.tribe-common .tribe-dialog__close-button:hover {
|
471 |
-
background: var(--tribe-dialog-close-background);
|
472 |
-
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18'%3E%3Cg fill='none' fill-rule='evenodd' stroke-linecap='square' stroke-width='2'%3E%3Cpath d='M16 2L2 16M16 16L2 2' stroke='%235D5D5D'/%3E%3C/g%3E%3C/svg%3E");
|
473 |
-
background-size: contain;
|
474 |
-
outline: none;
|
475 |
-
}
|
476 |
-
|
477 |
-
.tribe-common .tribe-dialog__close-button--hidden {
|
478 |
-
display: none;
|
479 |
-
}
|
480 |
-
|
481 |
-
.tribe-common .tribe-dialog__close-button--round {
|
482 |
-
border-radius: 50%;
|
483 |
-
}
|
484 |
-
|
485 |
-
.tribe-common .tribe-dialog__close-button--border {
|
486 |
-
border: var(--tribe-dialog-close-border-width) solid var(--tribe-dialog-close-border-color);
|
487 |
-
}
|
488 |
-
|
489 |
-
.tribe-common h2.tribe-dialog__title {
|
490 |
-
align-self: flex-start;
|
491 |
-
margin: 0 0 22px;
|
492 |
-
padding-right: calc(var(--tribe-dialog-close-height) + 0.5em);
|
493 |
-
padding-top: 0;
|
494 |
-
|
495 |
-
}
|
496 |
-
|
497 |
-
/* The content container*/
|
498 |
-
|
499 |
-
.tribe-common .tribe-dialog__content {
|
500 |
-
color: #141827;
|
501 |
-
font-size: 14px;
|
502 |
-
line-height: 1.64em;
|
503 |
-
padding-right: calc(var(--tribe-dialog-close-height) + 0.5em);
|
504 |
-
padding-top: calc(var(--tribe-dialog-close-height) + 0.5em);
|
505 |
-
width: 100%;
|
506 |
-
}
|
507 |
-
|
508 |
-
.tribe-common .tribe-dialog__title + .tribe-dialog__content {
|
509 |
-
padding: 0;
|
510 |
-
}
|
511 |
-
|
512 |
-
/* Modal Styles */
|
513 |
-
|
514 |
-
.tribe-common .tribe-modal__overlay {
|
515 |
-
background-color: var(--tribe-modal-overlay-color);
|
516 |
-
}
|
517 |
-
|
518 |
-
/* Confirmation Styles */
|
519 |
-
|
520 |
-
.tribe-common .tribe-confirm__content {
|
521 |
-
padding-right: 0;
|
522 |
-
}
|
523 |
-
|
524 |
-
.tribe-common .tribe-dialog__button_wrap {
|
525 |
-
display: -webkit-box;
|
526 |
-
display: flex;
|
527 |
-
-webkit-box-orient: horizontal;
|
528 |
-
-webkit-box-direction: normal;
|
529 |
-
flex-flow: row wrap;
|
530 |
-
-webkit-box-pack: end;
|
531 |
-
justify-content: flex-end;
|
532 |
-
}
|
533 |
-
|
534 |
-
/* -------------------------------------------------------------------------
|
535 |
-
* Theme Overrides - Avada
|
536 |
-
* ------------------------------------------------------------------------- */
|
537 |
-
|
538 |
-
.tribe-theme-avada .tribe-common div.tribe-dialog {
|
539 |
-
z-index: 99999;
|
540 |
-
}
|
541 |
-
|
542 |
-
/* -------------------------------------------------------------------------
|
543 |
-
* Theme Overrides - Divi
|
544 |
-
* ------------------------------------------------------------------------- */
|
545 |
-
|
546 |
-
.tribe-theme-divi .tribe-common div.tribe-dialog {
|
547 |
-
z-index: 99999;
|
548 |
-
}
|
549 |
-
|
550 |
-
/* -------------------------------------------------------------------------
|
551 |
-
* Theme Overrides - Enfold
|
552 |
-
* ------------------------------------------------------------------------- */
|
553 |
-
|
554 |
-
#top.tribe-theme-enfold .tribe-common div.tribe-dialog, #top .main_color .tribe-common div.tribe-dialog {
|
555 |
-
z-index: 99999;
|
556 |
-
}
|
557 |
-
|
558 |
-
@media screen and (min-width:768px) {
|
559 |
-
|
560 |
-
.tribe-common .tribe-dialog__wrapper {
|
561 |
-
max-height: calc(100vh - 160px);
|
562 |
-
padding: var(--tribe-dialog-padding-top) var(--tribe-dialog-padding-side)
|
563 |
-
}
|
564 |
-
|
565 |
-
.tribe-common .tribe-dialog__close-button {
|
566 |
-
height: var(--tribe-dialog-close-height-desktop);
|
567 |
-
line-height: var(--tribe-dialog-close-height-desktop);
|
568 |
-
width: var(--tribe-dialog-close-height-desktop)
|
569 |
-
}
|
570 |
-
}
|
571 |
-
|
572 |
-
@media screen and (max-width:768px) {
|
573 |
-
.tribe-common .tribe-dialog__content:last-of-type {
|
574 |
-
padding-bottom: 36px;
|
575 |
-
}
|
576 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/resources/css/promoter.css
DELETED
@@ -1,33 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
11 |
-
#wp-admin-bar-promoter-admin-bar a.ab-item {
|
12 |
-
display: -webkit-box;
|
13 |
-
display: flex;
|
14 |
-
flex-wrap: wrap;
|
15 |
-
-webkit-box-align: center;
|
16 |
-
align-items: center;
|
17 |
-
}
|
18 |
-
|
19 |
-
#wp-admin-bar-promoter-admin-bar a.ab-item .promoter-admin-bar__icon {
|
20 |
-
margin-right: 5px;
|
21 |
-
width: 20px;
|
22 |
-
height: 20px;
|
23 |
-
-webkit-box-flex: 0;
|
24 |
-
flex: none;
|
25 |
-
}
|
26 |
-
|
27 |
-
#wp-admin-bar-promoter-admin-bar a.ab-item .promoter-admin-bar__text {
|
28 |
-
-webkit-box-flex: 0;
|
29 |
-
flex: none;
|
30 |
-
}
|
31 |
-
#wp-admin-bar-promoter-admin-bar:focus .promoter-admin-bar__icon svg path, #wp-admin-bar-promoter-admin-bar:hover .promoter-admin-bar__icon svg path {
|
32 |
-
fill: #00B9EB;
|
33 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/resources/css/tooltip.css
DELETED
@@ -1,121 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
11 |
-
/* = Tooltips
|
12 |
-
============================ */
|
13 |
-
|
14 |
-
.tribe-tooltip {
|
15 |
-
cursor: pointer;
|
16 |
-
display: inline-block;
|
17 |
-
margin: 0;
|
18 |
-
position: relative;
|
19 |
-
text-align: left;
|
20 |
-
}
|
21 |
-
|
22 |
-
.tribe-tooltip .dashicons-info {
|
23 |
-
color: #a9a9a9;
|
24 |
-
font-size: 16px;
|
25 |
-
line-height: 1em;
|
26 |
-
vertical-align: middle;
|
27 |
-
}
|
28 |
-
|
29 |
-
/* defaults */
|
30 |
-
|
31 |
-
.tribe-tooltip .down,
|
32 |
-
.tribe-tooltip .left,
|
33 |
-
.tribe-tooltip .right,
|
34 |
-
.tribe-tooltip .up {
|
35 |
-
background-color: #fff;
|
36 |
-
box-shadow: 0 0 3px 3px rgba(4, 5, 5, 0.05);
|
37 |
-
box-sizing: border-box;
|
38 |
-
color: #333333;
|
39 |
-
font-size: 16px;
|
40 |
-
font-weight: 400;
|
41 |
-
max-width: 100vw;
|
42 |
-
opacity: 0;
|
43 |
-
padding: 15px;
|
44 |
-
position: absolute;
|
45 |
-
-webkit-transform: translate(-50%, 0);
|
46 |
-
transform: translate(-50%, 0);
|
47 |
-
-webkit-transition: opacity 0.8s;
|
48 |
-
transition: opacity 0.8s;
|
49 |
-
visibility: hidden;
|
50 |
-
width: 250px;
|
51 |
-
z-index: 99999999;
|
52 |
-
}
|
53 |
-
|
54 |
-
.tribe-tooltip .down i, .tribe-tooltip .left i, .tribe-tooltip .right i, .tribe-tooltip .up i {
|
55 |
-
height: 12px;
|
56 |
-
overflow: hidden;
|
57 |
-
position: absolute;
|
58 |
-
width: 24px;
|
59 |
-
}
|
60 |
-
|
61 |
-
.tribe-tooltip .down i::after, .tribe-tooltip .left i::after, .tribe-tooltip .right i::after, .tribe-tooltip .up i::after {
|
62 |
-
background-color: #fff;
|
63 |
-
content: '';
|
64 |
-
height: 12px;
|
65 |
-
position: absolute;
|
66 |
-
width: 24px;
|
67 |
-
}
|
68 |
-
|
69 |
-
.tribe-tooltip.large .down,
|
70 |
-
.tribe-tooltip.large .left,
|
71 |
-
.tribe-tooltip.large .right,
|
72 |
-
.tribe-tooltip.large .up {
|
73 |
-
width: 400px;
|
74 |
-
}
|
75 |
-
|
76 |
-
.tribe-tooltip .tooltip-list {
|
77 |
-
padding-left: 10px;
|
78 |
-
}
|
79 |
-
|
80 |
-
.tribe-tooltip .tooltip-list li {
|
81 |
-
list-style-type: disc;
|
82 |
-
}
|
83 |
-
|
84 |
-
.tribe-tooltip .down {
|
85 |
-
left: 50%;
|
86 |
-
top: 28px;
|
87 |
-
}
|
88 |
-
|
89 |
-
.tribe-tooltip .down i {
|
90 |
-
bottom: 100%;
|
91 |
-
left: 50%;
|
92 |
-
margin-left: -7px;
|
93 |
-
}
|
94 |
-
|
95 |
-
.tribe-tooltip .down i::after {
|
96 |
-
box-shadow: 0 0 3px 3px rgba(4, 5, 5, 0.05);
|
97 |
-
left: 50%;
|
98 |
-
top: 50%;
|
99 |
-
-webkit-transform: translate(-50%, 50%) rotate(45deg);
|
100 |
-
transform: translate(-50%, 50%) rotate(45deg);
|
101 |
-
}
|
102 |
-
|
103 |
-
/* active (open) styles */
|
104 |
-
|
105 |
-
.tribe-tooltip.active .down,
|
106 |
-
.tribe-tooltip.active .left,
|
107 |
-
.tribe-tooltip.active .right,
|
108 |
-
.tribe-tooltip.active .up {
|
109 |
-
opacity: 1;
|
110 |
-
visibility: visible;
|
111 |
-
}
|
112 |
-
|
113 |
-
@media screen and (max-width: 480px) {
|
114 |
-
|
115 |
-
.tribe-tooltip.large .down,
|
116 |
-
.tribe-tooltip.large .left,
|
117 |
-
.tribe-tooltip.large .right,
|
118 |
-
.tribe-tooltip.large .up {
|
119 |
-
width: 250px
|
120 |
-
}
|
121 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/resources/css/tribe-common-admin.css
DELETED
@@ -1,1387 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
11 |
-
/* = Shared CSS Elements
|
12 |
-
=============================================*/
|
13 |
-
.invalid input {
|
14 |
-
border: 2px solid red !important;
|
15 |
-
}
|
16 |
-
.valid input {
|
17 |
-
border: 1px solid green;
|
18 |
-
}
|
19 |
-
.clearfix {
|
20 |
-
zoom: 1; /* For IE */
|
21 |
-
}
|
22 |
-
.placeholder {
|
23 |
-
color: #999;
|
24 |
-
cursor: text;
|
25 |
-
padding: 4px 4px 4px 4px;
|
26 |
-
}
|
27 |
-
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
|
28 |
-
color: #999;
|
29 |
-
}
|
30 |
-
input::-moz-placeholder, textarea::-moz-placeholder {
|
31 |
-
color: #999;
|
32 |
-
}
|
33 |
-
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
|
34 |
-
color: #999;
|
35 |
-
}
|
36 |
-
input::-ms-input-placeholder, textarea::-ms-input-placeholder {
|
37 |
-
color: #999;
|
38 |
-
}
|
39 |
-
input::placeholder,
|
40 |
-
textarea::placeholder {
|
41 |
-
color: #999;
|
42 |
-
}
|
43 |
-
input::-webkit-input-placeholder,
|
44 |
-
textarea::-webkit-input-placeholder {
|
45 |
-
color: #999;
|
46 |
-
}
|
47 |
-
.bubble {
|
48 |
-
background-color: #f9f9f9;
|
49 |
-
border-color: #dfdfdf;
|
50 |
-
border-radius: 3px;
|
51 |
-
border-spacing: 0;
|
52 |
-
border-style: solid;
|
53 |
-
border-width: 1px;
|
54 |
-
padding: 10px;
|
55 |
-
}
|
56 |
-
.tribe-sticky-tooltip {
|
57 |
-
color: #bbb;
|
58 |
-
}
|
59 |
-
td.tribe_message {
|
60 |
-
padding-bottom: 10px !important;
|
61 |
-
}
|
62 |
-
#tribe_thanks {
|
63 |
-
float: left;
|
64 |
-
margin: 5px 0 0 0;
|
65 |
-
width: 200px;
|
66 |
-
}
|
67 |
-
.tribe_brand {
|
68 |
-
font-family: Georgia, serif !important;
|
69 |
-
font-size: 17px !important;
|
70 |
-
font-weight: normal;
|
71 |
-
margin: 8px 0;
|
72 |
-
}
|
73 |
-
/* = Upgrade Screen
|
74 |
-
=============================================*/
|
75 |
-
#tribe-upgrade {
|
76 |
-
background: #f6f6f6;
|
77 |
-
border: 1px solid #ccc;
|
78 |
-
border-radius: 5px;
|
79 |
-
margin: 20px 0 30px;
|
80 |
-
padding: 0 20px 20px;
|
81 |
-
}
|
82 |
-
#tribe-upgrade .message {
|
83 |
-
background-color: #ffffe0;
|
84 |
-
border-color: #e6db55;
|
85 |
-
border-radius: 3px;
|
86 |
-
border-style: solid;
|
87 |
-
border-width: 1px;
|
88 |
-
padding: 6px 12px;
|
89 |
-
}
|
90 |
-
/* = Plugin Screen
|
91 |
-
=============================================*/
|
92 |
-
table.plugins .tribe-plugin-update-message {
|
93 |
-
background: #d54e21; /* taken from color scheme in list-tables.css */
|
94 |
-
color: white;
|
95 |
-
display: inline-table;
|
96 |
-
margin: 6px 0;
|
97 |
-
padding: 10px 12px;
|
98 |
-
}
|
99 |
-
table.plugins .tribe-plugin-update-message h4 {
|
100 |
-
display: inline;
|
101 |
-
font-weight: bold;
|
102 |
-
margin-right: 8px;
|
103 |
-
}
|
104 |
-
table.plugins .tribe-plugin-update-message h4:after {
|
105 |
-
content: ' \00BB ';
|
106 |
-
}
|
107 |
-
table.plugins .tribe-plugin-update-message a {
|
108 |
-
color: white;
|
109 |
-
text-decoration: underline;
|
110 |
-
}
|
111 |
-
/* = Settings Screen
|
112 |
-
=============================================*/
|
113 |
-
.tribe-settings-form {
|
114 |
-
max-width: 1000px;
|
115 |
-
}
|
116 |
-
.tribe-settings-form fieldset {
|
117 |
-
clear: both;
|
118 |
-
display: inline-block;
|
119 |
-
padding: 10px 0;
|
120 |
-
}
|
121 |
-
.tribe-settings-form fieldset.tribe-field-license_key legend {
|
122 |
-
width: auto;
|
123 |
-
}
|
124 |
-
.tribe-settings-form legend {
|
125 |
-
float: left;
|
126 |
-
font-weight: bold;
|
127 |
-
margin-right: 20px;
|
128 |
-
width: 220px;
|
129 |
-
}
|
130 |
-
.tribe-settings-form .tribe-field-wrap {
|
131 |
-
float: left;
|
132 |
-
max-width: 500px;
|
133 |
-
}
|
134 |
-
.tribe-settings-form .tribe-field-wrap *:first-child {
|
135 |
-
margin-top: 0;
|
136 |
-
}
|
137 |
-
.tribe-settings-form .tribe-field-radio label, .tribe-settings-form .tribe-field-checkbox_list label {
|
138 |
-
display: block;
|
139 |
-
margin: 5px 0 5px 20px;
|
140 |
-
text-indent: -20px;
|
141 |
-
}
|
142 |
-
.tribe-settings-form .tribe-field-radio label > p, .tribe-settings-form .tribe-field-checkbox_list label > p {
|
143 |
-
text-indent: 0;
|
144 |
-
margin-left: 1px;
|
145 |
-
}
|
146 |
-
.tribe-settings-form .tribe-field-radio label input, .tribe-settings-form .tribe-field-checkbox_list label input {
|
147 |
-
margin-right: 5px;
|
148 |
-
}
|
149 |
-
.tribe-settings-form .tribe-settings-form-wrap fieldset,
|
150 |
-
.tribe-settings-form .tribe-settings-form-wrap .description,
|
151 |
-
.tribe-settings-form fieldset[id^='tribe-field-geoloc_'] {
|
152 |
-
padding-left: 12px;
|
153 |
-
}
|
154 |
-
.tribe-settings-form .tribe-settings-form-wrap fieldset .description {
|
155 |
-
margin-left: 0;
|
156 |
-
max-width: 450px;
|
157 |
-
padding-left: 0;
|
158 |
-
}
|
159 |
-
.tribe-settings-form .tribe-settings-form-wrap fieldset .tribe-style-selection {
|
160 |
-
margin-bottom: 18px;
|
161 |
-
}
|
162 |
-
.tribe-settings-form .tribe-settings-form-wrap #tribe-field-stylesheetOption .description {
|
163 |
-
color: #999;
|
164 |
-
margin-left: 1px;
|
165 |
-
}
|
166 |
-
.tribe-settings-form .tribe-settings-form-wrap h3 {
|
167 |
-
background-color: #f9f9f9;
|
168 |
-
margin-bottom: 10px;
|
169 |
-
padding: 6px 0 6px 12px;
|
170 |
-
}
|
171 |
-
.tribe-settings-form .tribe-settings-form-wrap .tribe-sysinfo-optin-msg,
|
172 |
-
.tribe-settings-form .tribe-settings-form-wrap .system-info,
|
173 |
-
.tribe-settings-form .tribe-settings-form-wrap h3 + p,
|
174 |
-
.tribe-settings-form .tribe-settings-form-wrap .contained {
|
175 |
-
margin: 0 0 10px;
|
176 |
-
padding-left: 12px;
|
177 |
-
}
|
178 |
-
.tribe_settings .tribe-field-indent {
|
179 |
-
margin-left: 245px;
|
180 |
-
}
|
181 |
-
.tribe_settings #pu_dashboard_message {
|
182 |
-
display: none;
|
183 |
-
}
|
184 |
-
.tribe_settings .tribe-errors-list {
|
185 |
-
margin-left: 15px;
|
186 |
-
}
|
187 |
-
.tribe_settings .expiring-license {
|
188 |
-
color: red;
|
189 |
-
}
|
190 |
-
.tribe_settings .tribe-error {
|
191 |
-
border: 1px solid #f00;
|
192 |
-
}
|
193 |
-
.tribe_settings .tribe-field-description {
|
194 |
-
margin-bottom: 0;
|
195 |
-
position: relative;
|
196 |
-
top: -12px;
|
197 |
-
}
|
198 |
-
.tribe_settings #ical-link {
|
199 |
-
top: -14px;
|
200 |
-
}
|
201 |
-
/* Modern Tribe box */
|
202 |
-
#modern-tribe-info {
|
203 |
-
background-color: #f9f9f9;
|
204 |
-
border: 1px solid #ccc;
|
205 |
-
border-radius: 4px;
|
206 |
-
margin: 20px 0;
|
207 |
-
padding: 8px 20px 12px;
|
208 |
-
}
|
209 |
-
#modern-tribe-info img {
|
210 |
-
height: 18px;
|
211 |
-
margin: 10px 0;
|
212 |
-
width: 250px;
|
213 |
-
}
|
214 |
-
#modern-tribe-info ul {
|
215 |
-
list-style: disc;
|
216 |
-
margin-left: 20px;
|
217 |
-
}
|
218 |
-
#modern-tribe-info ul ul {
|
219 |
-
list-style: circle;
|
220 |
-
}
|
221 |
-
/* sizes */
|
222 |
-
.tribe-field-inline-dropdown {
|
223 |
-
margin-left: 0;
|
224 |
-
margin-right: 0;
|
225 |
-
}
|
226 |
-
.tribe-field-inline-text {
|
227 |
-
line-height: 28px;
|
228 |
-
margin: 0 2px;
|
229 |
-
}
|
230 |
-
.tribe-field-textarea.tribe-size-small textarea {
|
231 |
-
height: 60px;
|
232 |
-
width: 180px;
|
233 |
-
}
|
234 |
-
.tribe-field-textarea.tribe-size-medium textarea {
|
235 |
-
height: 80px;
|
236 |
-
width: 300px;
|
237 |
-
}
|
238 |
-
.tribe-field-textarea.tribe-size-large textarea {
|
239 |
-
height: 120px;
|
240 |
-
width: 450px;
|
241 |
-
}
|
242 |
-
.tribe-field-text.tribe-size-small input,
|
243 |
-
.tribe-field-email.tribe-size-small input,
|
244 |
-
.tribe-field-license_key.tribe-size-small input {
|
245 |
-
width: 50px;
|
246 |
-
}
|
247 |
-
.tribe-field-text.tribe-size-medium input,
|
248 |
-
.tribe-field-email.tribe-size-medium input,
|
249 |
-
.tribe-field-license_key.tribe-size-medium input {
|
250 |
-
width: 225px;
|
251 |
-
}
|
252 |
-
.tribe-field-text.tribe-size-large input,
|
253 |
-
.tribe-field-email.tribe-size-large input,
|
254 |
-
.tribe-field-license_key.tribe-size-large input {
|
255 |
-
width: 450px;
|
256 |
-
}
|
257 |
-
.tribe-field-dropdown.tribe-size-small select {
|
258 |
-
width: 100px;
|
259 |
-
}
|
260 |
-
.tribe-field-dropdown.tribe-size-medium select {
|
261 |
-
width: 300px;
|
262 |
-
}
|
263 |
-
.tribe-field-dropdown.tribe-size-large select {
|
264 |
-
width: 450px;
|
265 |
-
}
|
266 |
-
.tribe-field-wrapped_html.tribe-size-large .tribe-field-wrap {
|
267 |
-
max-width: 600px;
|
268 |
-
}
|
269 |
-
.tribe-field-wrapped_html.tribe-size-large .tribe-field-wrap .description{
|
270 |
-
max-width: 100%;
|
271 |
-
}
|
272 |
-
.tribe-field-dropdown_chosen.tribe-size-small select {
|
273 |
-
width: 100px;
|
274 |
-
}
|
275 |
-
.tribe-field-dropdown_chosen.tribe-size-medium select {
|
276 |
-
width: 200px;
|
277 |
-
}
|
278 |
-
.tribe-field-dropdown_chosen.tribe-size-large select {
|
279 |
-
width: 300px;
|
280 |
-
}
|
281 |
-
.tribe-field-wrap .tooltip:first-child {
|
282 |
-
font-style: normal;
|
283 |
-
}
|
284 |
-
.tribe-field.indent {
|
285 |
-
margin-left: 252px;
|
286 |
-
width: 75%;
|
287 |
-
}
|
288 |
-
.tribe-field.indent legend {
|
289 |
-
font-weight: normal;
|
290 |
-
width: auto;
|
291 |
-
}
|
292 |
-
.tribe-field.indent .tribe-field-wrap {
|
293 |
-
padding-right: 12px;
|
294 |
-
}
|
295 |
-
.tribe-field.indent.tribe-field-radio .tribe-field-wrap {
|
296 |
-
clear: left;
|
297 |
-
margin-top: 12px;
|
298 |
-
}
|
299 |
-
.tribe-field.light-bordered {
|
300 |
-
background-color: white;
|
301 |
-
border: solid lightgrey 1px;
|
302 |
-
}
|
303 |
-
/* license keys */
|
304 |
-
.ajax-loading-license,
|
305 |
-
.valid-key,
|
306 |
-
.invalid-key {
|
307 |
-
display: none;
|
308 |
-
margin: 0 5px;
|
309 |
-
}
|
310 |
-
.ajax-loading-license {
|
311 |
-
position: relative;
|
312 |
-
top: 5px;
|
313 |
-
}
|
314 |
-
.key-validity {
|
315 |
-
display: inline-block;
|
316 |
-
}
|
317 |
-
.optin-fail,
|
318 |
-
.invalid-key {
|
319 |
-
color: red;
|
320 |
-
}
|
321 |
-
.optin-success,
|
322 |
-
.valid-key {
|
323 |
-
color: green;
|
324 |
-
}
|
325 |
-
.valid-key.service-msg {
|
326 |
-
color: #b72;
|
327 |
-
}
|
328 |
-
/* additional fields */
|
329 |
-
#additional-field-table {
|
330 |
-
margin-bottom: 20px;
|
331 |
-
}
|
332 |
-
/* miscellaneous */
|
333 |
-
.tribe-admin-box-left {
|
334 |
-
background-color: #f9f9f9;
|
335 |
-
border: 1px solid #ccc;
|
336 |
-
border-radius: 4px;
|
337 |
-
float: left;
|
338 |
-
margin: 20px 0;
|
339 |
-
padding: 0 20px 15px;
|
340 |
-
width: 20%;
|
341 |
-
}
|
342 |
-
.tribe-admin-box-right {
|
343 |
-
background-color: #f9f9f9;
|
344 |
-
border: 1px solid #ccc;
|
345 |
-
border-radius: 4px;
|
346 |
-
float: right;
|
347 |
-
margin: 20px 0;
|
348 |
-
padding: 0 20px 15px;
|
349 |
-
width: 68%;
|
350 |
-
}
|
351 |
-
.ajax-loader {
|
352 |
-
float: right;
|
353 |
-
margin: 10px;
|
354 |
-
}
|
355 |
-
.tribe-arrangeable-item {
|
356 |
-
border: 1px solid lightGrey;
|
357 |
-
border-radius: 3px;
|
358 |
-
}
|
359 |
-
.tribe-arrangeable-item .ui-state-default {
|
360 |
-
border: none;
|
361 |
-
}
|
362 |
-
.tribe-arrangeable-item-top {
|
363 |
-
padding: 6px;
|
364 |
-
}
|
365 |
-
.tribe-arrangeable-item-top:hover {
|
366 |
-
cursor: move;
|
367 |
-
}
|
368 |
-
.tribe-arrangeable-action {
|
369 |
-
float: right;
|
370 |
-
}
|
371 |
-
.tribe-arrangeable-child {
|
372 |
-
background-color: #f9f9f9;
|
373 |
-
border-top: 1px solid lightGrey;
|
374 |
-
display: none;
|
375 |
-
padding: 25px;
|
376 |
-
}
|
377 |
-
.tribe-arrangeable-child label {
|
378 |
-
display: block;
|
379 |
-
margin: 0 0 7px 0;
|
380 |
-
}
|
381 |
-
.tribe_events_active_filter_type_options {
|
382 |
-
margin: 10px 0;
|
383 |
-
}
|
384 |
-
.tribe_events_active_filter_type_options label {
|
385 |
-
margin: 7px 0;
|
386 |
-
}
|
387 |
-
.OrganizerInfo td small,
|
388 |
-
#event_organizer td small {
|
389 |
-
display: block;
|
390 |
-
margin: 0;
|
391 |
-
max-width: 250px;
|
392 |
-
}
|
393 |
-
.OrganizerInfo .organizer-email,
|
394 |
-
#event_organizer .organizer-email {
|
395 |
-
vertical-align: top;
|
396 |
-
}
|
397 |
-
.tribe-table-field-label {
|
398 |
-
max-width: 100%;
|
399 |
-
width: 200px;
|
400 |
-
}
|
401 |
-
/* = Help Screen
|
402 |
-
=============================================*/
|
403 |
-
#tribe-help-general,
|
404 |
-
#tribe-help-sidebar {
|
405 |
-
float: left;
|
406 |
-
margin-top: 20px;
|
407 |
-
}
|
408 |
-
#tribe-help-general p {
|
409 |
-
margin-left: 15px;
|
410 |
-
}
|
411 |
-
#tribe-help-general ul {
|
412 |
-
list-style-type: square;
|
413 |
-
margin-bottom: 20px;
|
414 |
-
margin-left: 35px;
|
415 |
-
}
|
416 |
-
#tribe-help-general ol {
|
417 |
-
margin-bottom: 20px;
|
418 |
-
margin-left: 35px;
|
419 |
-
}
|
420 |
-
#tribe-help-general h3 {
|
421 |
-
background-color: #f9f9f9;
|
422 |
-
margin-bottom: 10px;
|
423 |
-
padding: 6px 0 6px 12px;
|
424 |
-
}
|
425 |
-
#tribe-help-general h3 ~ h3 {
|
426 |
-
margin-top: 2.25em;
|
427 |
-
}
|
428 |
-
#tribe-help-general h3 + p {
|
429 |
-
margin: 0 0 20px;
|
430 |
-
padding-left: 12px;
|
431 |
-
}
|
432 |
-
#tribe-help-general {
|
433 |
-
width: 65%;
|
434 |
-
}
|
435 |
-
.tribe-help-section {
|
436 |
-
padding-bottom: 10px;
|
437 |
-
}
|
438 |
-
.tribe-section-type-box {
|
439 |
-
background-color: #f9f9f9;
|
440 |
-
border: 1px solid #ccc;
|
441 |
-
border-radius: 4px;
|
442 |
-
padding: 8px 20px 12px;
|
443 |
-
}
|
444 |
-
.tribe-section-type-box img {
|
445 |
-
height: auto;
|
446 |
-
margin: 10px 0;
|
447 |
-
max-width: 300px;
|
448 |
-
}
|
449 |
-
.tribe-section-type-box ul {
|
450 |
-
list-style: disc;
|
451 |
-
margin-left: 20px;
|
452 |
-
}
|
453 |
-
.tribe-section-type-box ul ul {
|
454 |
-
list-style: circle;
|
455 |
-
}
|
456 |
-
#tribe-log-controls {
|
457 |
-
padding-bottom: 1rem;
|
458 |
-
|
459 |
-
/* For consistency with help screen h3 and p elements */
|
460 |
-
padding-left: 12px;
|
461 |
-
}
|
462 |
-
#tribe-log-controls > div {
|
463 |
-
display: inline-block;
|
464 |
-
padding-right: 1rem;
|
465 |
-
}
|
466 |
-
#tribe-log-controls .working {
|
467 |
-
opacity: 1;
|
468 |
-
-webkit-transition: opacity 0.2s;
|
469 |
-
transition: opacity 0.2s;
|
470 |
-
}
|
471 |
-
#tribe-log-controls .working.hidden {
|
472 |
-
opacity: 0;
|
473 |
-
-webkit-transition: opacity 0.2s;
|
474 |
-
transition: opacity 0.2s;
|
475 |
-
}
|
476 |
-
#tribe-system-info dl.support-stats,
|
477 |
-
#tribe-log-viewer,
|
478 |
-
.template-updates-wrapper {
|
479 |
-
background: #000;
|
480 |
-
border-radius: 2px;
|
481 |
-
color: #888;
|
482 |
-
max-height: 400px;
|
483 |
-
overflow: scroll;
|
484 |
-
padding: 10px;
|
485 |
-
}
|
486 |
-
#tribe-system-info dl.support-stats dt,
|
487 |
-
.template-updates-wrapper dt {
|
488 |
-
clear: both;
|
489 |
-
float: left;
|
490 |
-
font-weight: bold;
|
491 |
-
text-transform: uppercase;
|
492 |
-
width: 25%;
|
493 |
-
}
|
494 |
-
#tribe-system-info dl.support-stats dd,
|
495 |
-
.template-updates-wrapper dd {
|
496 |
-
margin-left: 25%;
|
497 |
-
padding-left: 10px;
|
498 |
-
}
|
499 |
-
.system-info-copy .system-info-copy-btn {
|
500 |
-
padding: 6px;
|
501 |
-
}
|
502 |
-
.system-info-copy .system-info-copy-btn .dashicons {
|
503 |
-
padding-right: 10px;
|
504 |
-
}
|
505 |
-
.template-updates-wrapper p {
|
506 |
-
margin-top: 0;
|
507 |
-
}
|
508 |
-
#tribe-help-sidebar {
|
509 |
-
margin: 20px 0 0 3%;
|
510 |
-
max-width: 225px;
|
511 |
-
width: 32%;
|
512 |
-
}
|
513 |
-
.tribe-help-plugin-info {
|
514 |
-
border: 1px solid #ccc;
|
515 |
-
padding: 0 12px 12px;
|
516 |
-
}
|
517 |
-
.tribe-help-plugin-info dt,
|
518 |
-
.tribe-help-plugin-info dd {
|
519 |
-
display: inline;
|
520 |
-
margin: 0;
|
521 |
-
}
|
522 |
-
.tribe-help-plugin-info dt {
|
523 |
-
font-weight: bold;
|
524 |
-
}
|
525 |
-
.tribe-help-plugin-info dd::after {
|
526 |
-
content: '';
|
527 |
-
display: block;
|
528 |
-
height: .4em;
|
529 |
-
}
|
530 |
-
.tribe-help-plugin-info dd:last-child::after {
|
531 |
-
height: 0;
|
532 |
-
}
|
533 |
-
.tribe-help-plugin-info + .tribe-help-plugin-info {
|
534 |
-
margin-top: 20px;
|
535 |
-
}
|
536 |
-
.tribe-help-plugin-info > div {
|
537 |
-
line-height: 2em;
|
538 |
-
}
|
539 |
-
.tribe-help-plugin-info .star-rating {
|
540 |
-
display: inline-block;
|
541 |
-
margin-left: 3px;
|
542 |
-
position: relative;
|
543 |
-
top: -2px;
|
544 |
-
}
|
545 |
-
.tribe-help-plugin-info .tribe-list-addons {
|
546 |
-
color: #21a6cb;
|
547 |
-
font-size: 24px;
|
548 |
-
list-style: circle inside;
|
549 |
-
margin-bottom: 10px;
|
550 |
-
margin-top: 10px;
|
551 |
-
padding-left: 4px;
|
552 |
-
}
|
553 |
-
.tribe-help-plugin-info .tribe-list-addons a {
|
554 |
-
font-size: 13px;
|
555 |
-
left: -5px;
|
556 |
-
position: relative;
|
557 |
-
top: -5px;
|
558 |
-
}
|
559 |
-
.tribe-help-plugin-info .tribe-list-addons .tribe-active-addon {
|
560 |
-
list-style: disc inside;
|
561 |
-
}
|
562 |
-
/* = jQuery UI
|
563 |
-
=============================================*/
|
564 |
-
.ui-widget-overlay {
|
565 |
-
background: #666;
|
566 |
-
filter: Alpha(Opacity=50);
|
567 |
-
opacity: .50;
|
568 |
-
}
|
569 |
-
.ui-widget-shadow {
|
570 |
-
background: #000;
|
571 |
-
border-radius: 5px;
|
572 |
-
filter: Alpha(Opacity=20);
|
573 |
-
margin: -5px 0 0 -5px;
|
574 |
-
opacity: .20;
|
575 |
-
padding: 5px;
|
576 |
-
}
|
577 |
-
.ui-resizable {
|
578 |
-
position: relative;
|
579 |
-
}
|
580 |
-
.ui-resizable-handle {
|
581 |
-
display: block;
|
582 |
-
font-size: .1px;
|
583 |
-
position: absolute;
|
584 |
-
z-index: 99999;
|
585 |
-
}
|
586 |
-
.ui-resizable-disabled .ui-resizable-handle,
|
587 |
-
.ui-resizable-autohide .ui-resizable-handle {
|
588 |
-
display: none;
|
589 |
-
}
|
590 |
-
.ui-resizable-n {
|
591 |
-
cursor: n-resize;
|
592 |
-
height: 7px;
|
593 |
-
left: 0;
|
594 |
-
top: -5px;
|
595 |
-
width: 100%;
|
596 |
-
}
|
597 |
-
.ui-resizable-s {
|
598 |
-
bottom: -5px;
|
599 |
-
cursor: s-resize;
|
600 |
-
height: 7px;
|
601 |
-
left: 0;
|
602 |
-
width: 100%;
|
603 |
-
}
|
604 |
-
.ui-resizable-e {
|
605 |
-
cursor: e-resize;
|
606 |
-
height: 100%;
|
607 |
-
right: -5px;
|
608 |
-
top: 0;
|
609 |
-
width: 7px;
|
610 |
-
}
|
611 |
-
.ui-resizable-w {
|
612 |
-
cursor: w-resize;
|
613 |
-
height: 100%;
|
614 |
-
left: -5px;
|
615 |
-
top: 0;
|
616 |
-
width: 7px;
|
617 |
-
}
|
618 |
-
.ui-resizable-se {
|
619 |
-
bottom: 1px;
|
620 |
-
cursor: se-resize;
|
621 |
-
height: 12px;
|
622 |
-
right: 1px;
|
623 |
-
width: 12px;
|
624 |
-
}
|
625 |
-
.ui-resizable-sw {
|
626 |
-
bottom: -5px;
|
627 |
-
cursor: sw-resize;
|
628 |
-
height: 9px;
|
629 |
-
left: -5px;
|
630 |
-
width: 9px;
|
631 |
-
}
|
632 |
-
.ui-resizable-nw {
|
633 |
-
cursor: nw-resize;
|
634 |
-
height: 9px;
|
635 |
-
left: -5px;
|
636 |
-
top: -5px;
|
637 |
-
width: 9px;
|
638 |
-
}
|
639 |
-
.ui-resizable-ne {
|
640 |
-
cursor: ne-resize;
|
641 |
-
height: 9px;
|
642 |
-
right: -5px;
|
643 |
-
top: -5px;
|
644 |
-
width: 9px;
|
645 |
-
}
|
646 |
-
.ui-dialog {
|
647 |
-
padding: .2em;
|
648 |
-
position: relative;
|
649 |
-
width: 375px;
|
650 |
-
}
|
651 |
-
.ui-dialog .ui-dialog-titlebar {
|
652 |
-
padding: .5em .3em .3em 1em;
|
653 |
-
position: relative;
|
654 |
-
}
|
655 |
-
.ui-dialog .ui-dialog-title {
|
656 |
-
float: left;
|
657 |
-
margin: .1em 0 .2em;
|
658 |
-
}
|
659 |
-
.ui-dialog .ui-dialog-titlebar-close {
|
660 |
-
height: 18px;
|
661 |
-
margin: -10px 0 0 0;
|
662 |
-
padding: 1px;
|
663 |
-
position: absolute;
|
664 |
-
right: .3em;
|
665 |
-
top: 50%;
|
666 |
-
width: 19px;
|
667 |
-
}
|
668 |
-
.ui-dialog .ui-dialog-titlebar-close span {
|
669 |
-
display: block;
|
670 |
-
margin-left: -8px;
|
671 |
-
margin-top: -8px;
|
672 |
-
}
|
673 |
-
.ui-dialog .ui-dialog-titlebar-close:hover,
|
674 |
-
.ui-dialog .ui-dialog-titlebar-close:focus {
|
675 |
-
padding: 0;
|
676 |
-
}
|
677 |
-
.ui-dialog .ui-dialog-content {
|
678 |
-
background: none;
|
679 |
-
border: 0;
|
680 |
-
overflow: auto;
|
681 |
-
padding: .5em 1em;
|
682 |
-
zoom: 1;
|
683 |
-
}
|
684 |
-
.ui-dialog .ui-dialog-buttonpane {
|
685 |
-
background-image: none;
|
686 |
-
border-width: 1px 0 0 0;
|
687 |
-
margin: .5em 0 0 0;
|
688 |
-
padding: .3em 1em .5em !important;
|
689 |
-
text-align: right;
|
690 |
-
}
|
691 |
-
.ui-dialog .ui-dialog-buttonpane button {
|
692 |
-
cursor: pointer;
|
693 |
-
line-height: 1.4em;
|
694 |
-
margin: .5em .4em .5em !important;
|
695 |
-
overflow: visible;
|
696 |
-
padding: .2em .6em .3em;
|
697 |
-
text-shadow: none;
|
698 |
-
width: auto;
|
699 |
-
}
|
700 |
-
.ui-dialog .ui-resizable-se {
|
701 |
-
bottom: 3px;
|
702 |
-
height: 14px;
|
703 |
-
right: 3px;
|
704 |
-
width: 14px;
|
705 |
-
}
|
706 |
-
.ui-draggable .ui-dialog-titlebar {
|
707 |
-
cursor: move;
|
708 |
-
}
|
709 |
-
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
|
710 |
-
float: none !important;
|
711 |
-
text-align: center;
|
712 |
-
}
|
713 |
-
.ui-button-text-only .ui-button-text {
|
714 |
-
padding: .4em 1em;
|
715 |
-
}
|
716 |
-
.ui-button .ui-button-text {
|
717 |
-
display: block;
|
718 |
-
line-height: 1.4;
|
719 |
-
}
|
720 |
-
#ui-datepicker-div {
|
721 |
-
display: none;
|
722 |
-
}
|
723 |
-
#tribe-loading {
|
724 |
-
background: #fff;
|
725 |
-
background: rgba(255, 255, 255, .8);
|
726 |
-
display: none;
|
727 |
-
height: 100%;
|
728 |
-
left: 0;
|
729 |
-
position: absolute;
|
730 |
-
top: 0;
|
731 |
-
-webkit-transition: all 1s linear;
|
732 |
-
transition: all 1s linear;
|
733 |
-
width: 100%;
|
734 |
-
z-index: 4;
|
735 |
-
}
|
736 |
-
#tribe-loading span {
|
737 |
-
background: url(../images/tribe-loading.gif) 0 0 no-repeat;
|
738 |
-
background-size: 32px 32px;
|
739 |
-
height: 32px;
|
740 |
-
left: 50%;
|
741 |
-
margin: -16px 0 0 -16px;
|
742 |
-
position: absolute;
|
743 |
-
top: 50%;
|
744 |
-
width: 32px;
|
745 |
-
}
|
746 |
-
/* = Admin Retina Bits
|
747 |
-
=============================================*/
|
748 |
-
/* = TEC Welcome & Update Pages // Displays after installation & plugin update
|
749 |
-
===============================================================================*/
|
750 |
-
.tribe_welcome_page,
|
751 |
-
.tribe_update_page {
|
752 |
-
max-width: 850px;
|
753 |
-
}
|
754 |
-
.tribe_welcome_page.wrap h1 {
|
755 |
-
font-size: 3em;
|
756 |
-
line-height: 1.2;
|
757 |
-
margin-top: 1em;
|
758 |
-
}
|
759 |
-
.tribe_welcome_page.wrap h1:before {
|
760 |
-
color: #555d66;
|
761 |
-
content: '\f145';
|
762 |
-
font-family: dashicons;
|
763 |
-
font-size: 0.9em;
|
764 |
-
line-height: 1;
|
765 |
-
margin-right: 5px;
|
766 |
-
position: relative;
|
767 |
-
top: 4px;
|
768 |
-
}
|
769 |
-
.tribe-half-column {
|
770 |
-
float: left;
|
771 |
-
margin-bottom: 30px;
|
772 |
-
margin-right: 5%;
|
773 |
-
width: 45%;
|
774 |
-
}
|
775 |
-
.tribe-row:before,
|
776 |
-
.tribe-row:after {
|
777 |
-
content: '';
|
778 |
-
display: table;
|
779 |
-
}
|
780 |
-
.tribe-row:after {
|
781 |
-
clear: both;
|
782 |
-
}
|
783 |
-
.tribe-row {
|
784 |
-
clear: both;
|
785 |
-
}
|
786 |
-
.tribe-row .tribe-half-column:last-child {
|
787 |
-
margin-right: 0;
|
788 |
-
width: 50%;
|
789 |
-
}
|
790 |
-
.tribe_welcome_page h2,
|
791 |
-
.tribe_welcome_page .tribe-half-column h4 {
|
792 |
-
font-size: 24px;
|
793 |
-
line-height: 1.2;
|
794 |
-
margin-bottom: 20px;
|
795 |
-
}
|
796 |
-
.tribe_update_page h2 {
|
797 |
-
font-size: 30px;
|
798 |
-
line-height: 1.2;
|
799 |
-
margin-bottom: 20px;
|
800 |
-
}
|
801 |
-
.tribe_welcome_page h3,
|
802 |
-
.tribe_update_page h3 {
|
803 |
-
font-size: 24px;
|
804 |
-
font-weight: 400;
|
805 |
-
line-height: 24px;
|
806 |
-
margin-top: 0;
|
807 |
-
}
|
808 |
-
.tribe_welcome_page h4,
|
809 |
-
.tribe_update_page h4 {
|
810 |
-
font-size: 18px;
|
811 |
-
font-weight: 600;
|
812 |
-
line-height: 18px;
|
813 |
-
margin: 0;
|
814 |
-
}
|
815 |
-
.tribe_welcome_page p,
|
816 |
-
.tribe_update_page p {
|
817 |
-
font-size: 15px;
|
818 |
-
}
|
819 |
-
.tribe_welcome_page li {
|
820 |
-
font-size: 14px;
|
821 |
-
margin-bottom: 10px;
|
822 |
-
}
|
823 |
-
p.tribe-welcome-message {
|
824 |
-
font-size: 18px;
|
825 |
-
font-weight: 400;
|
826 |
-
}
|
827 |
-
.tribe_welcome_page .tribe-half-column h4 {
|
828 |
-
margin-top: 1em;
|
829 |
-
}
|
830 |
-
/* "Calendar" dashicon */
|
831 |
-
.tribe_welcome_page .tribe-half-column h4:before {
|
832 |
-
color: #555d66;
|
833 |
-
content: '\f145';
|
834 |
-
font-family: dashicons;
|
835 |
-
font-size: 21px;
|
836 |
-
line-height: 1;
|
837 |
-
margin-right: 10px;
|
838 |
-
position: relative;
|
839 |
-
top: 2px;
|
840 |
-
}
|
841 |
-
/* "Life preserver" dashicon */
|
842 |
-
.tribe_welcome_page .tribe-half-column h4[data-tribe-icon="dashicons-sos"]:before {
|
843 |
-
content: '\f468';
|
844 |
-
}
|
845 |
-
/* "Graduation cap" dashicon */
|
846 |
-
.tribe_welcome_page .tribe-half-column h4[data-tribe-icon="dashicons-welcome-learn-more"]:before {
|
847 |
-
content: '\f118';
|
848 |
-
}
|
849 |
-
/* "Megaphone" dashicon */
|
850 |
-
.tribe_welcome_page .tribe-half-column h4[data-tribe-icon="dashicons-megaphone"]:before {
|
851 |
-
content: '\f488';
|
852 |
-
}
|
853 |
-
/* "Heart" dashicon */
|
854 |
-
.tribe_welcome_page .tribe-half-column h4[data-tribe-icon="dashicons-heart"]:before {
|
855 |
-
content: '\f487';
|
856 |
-
}
|
857 |
-
.tribe_update_page h4:before {
|
858 |
-
content: '\f145';
|
859 |
-
font-family: dashicons;
|
860 |
-
font-size: 34px;
|
861 |
-
line-height: 1;
|
862 |
-
margin-right: 5px;
|
863 |
-
position: relative;
|
864 |
-
top: 5px;
|
865 |
-
}
|
866 |
-
.tribe-welcome-video-wrapper {
|
867 |
-
height: 0;
|
868 |
-
margin-bottom: 40px;
|
869 |
-
padding-bottom: 56.25%; /* 16:9 */
|
870 |
-
padding-top: 25px;
|
871 |
-
position: relative;
|
872 |
-
}
|
873 |
-
.tribe-welcome-video-wrapper iframe {
|
874 |
-
height: 100%;
|
875 |
-
left: 0;
|
876 |
-
position: absolute;
|
877 |
-
top: 0;
|
878 |
-
width: 100%;
|
879 |
-
}
|
880 |
-
a.tribe-rating-link {
|
881 |
-
text-decoration: none;
|
882 |
-
}
|
883 |
-
.tribe-welcome-links,
|
884 |
-
.tribe-update-links {
|
885 |
-
margin-top: 30px;
|
886 |
-
}
|
887 |
-
.tribe_welcome_page li:before,
|
888 |
-
.tribe_update_page li:before {
|
889 |
-
content: '\2022';
|
890 |
-
padding-right: 3px;
|
891 |
-
}
|
892 |
-
.tribe_update_page .rss-widget {
|
893 |
-
margin: 1em 0;
|
894 |
-
}
|
895 |
-
.tribe_update_page a.rsswidget {
|
896 |
-
font-size: 14px;
|
897 |
-
font-weight: 400;
|
898 |
-
line-height: 1;
|
899 |
-
}
|
900 |
-
.tribe_update_page .rss-widget li:before {
|
901 |
-
display: none;
|
902 |
-
}
|
903 |
-
/* Media Queries for Mobile Dashboard */
|
904 |
-
.tribe-update-bar {
|
905 |
-
display: inline-block;
|
906 |
-
}
|
907 |
-
.tribe-update-bar .progress {
|
908 |
-
border: 1px solid #ccc;
|
909 |
-
float: left;
|
910 |
-
margin-right: 1rem;
|
911 |
-
padding: 1px;
|
912 |
-
width: 18rem;
|
913 |
-
}
|
914 |
-
.tribe-update-bar .progress .bar {
|
915 |
-
background: #ffba00;
|
916 |
-
height: 1rem;
|
917 |
-
width: 1%;
|
918 |
-
}
|
919 |
-
.tribe-update-bar .progress .bar {
|
920 |
-
background: #7ad03a;
|
921 |
-
}
|
922 |
-
/* = Modals/thickbox dialogs
|
923 |
-
============================ */
|
924 |
-
#tribe-dialog-wrapper > div {
|
925 |
-
padding: 1rem;
|
926 |
-
}
|
927 |
-
#tribe-dialog-wrapper > div .stage {
|
928 |
-
display: none;
|
929 |
-
}
|
930 |
-
#tribe-dialog-wrapper #heading {
|
931 |
-
background: white;
|
932 |
-
}
|
933 |
-
#tribe-dialog-wrapper label {
|
934 |
-
display: block;
|
935 |
-
}
|
936 |
-
#tribe-dialog-wrapper .select-single-container {
|
937 |
-
border: 1px solid #888;
|
938 |
-
overflow-y: scroll;
|
939 |
-
height: 300px;
|
940 |
-
}
|
941 |
-
#tribe-dialog-wrapper .select-single-container label {
|
942 |
-
opacity: 1;
|
943 |
-
padding: 3px 5px;
|
944 |
-
-webkit-transition: opacity 0.2s;
|
945 |
-
transition: opacity 0.2s;
|
946 |
-
}
|
947 |
-
#tribe-dialog-wrapper .select-single-container label:nth-child(odd) {
|
948 |
-
background: white;
|
949 |
-
}
|
950 |
-
#tribe-dialog-wrapper .select-single-container label.selected {
|
951 |
-
background: #0073aa;
|
952 |
-
color: white;
|
953 |
-
font-weight: bold;
|
954 |
-
}
|
955 |
-
#tribe-dialog-wrapper .select-single-container label input {
|
956 |
-
display: none;
|
957 |
-
}
|
958 |
-
#tribe-dialog-wrapper .select-single-container.updating label {
|
959 |
-
opacity: 0.35;
|
960 |
-
-webkit-transition: opacity 0.2s;
|
961 |
-
transition: opacity 0.2s;
|
962 |
-
}
|
963 |
-
/* Useful to ensure modals rise above the grey 'miasma' */
|
964 |
-
.ui-front {
|
965 |
-
z-index: 1000000;
|
966 |
-
}
|
967 |
-
/* Select2 Specific rule */
|
968 |
-
.select2-container .select2-choice abbr {
|
969 |
-
top: 6px;
|
970 |
-
}
|
971 |
-
.wp-list-table.plugins .column-description .update-message {
|
972 |
-
color: #d54e21;
|
973 |
-
}
|
974 |
-
.api-check {
|
975 |
-
padding: 1em;
|
976 |
-
min-height: 100px;
|
977 |
-
}
|
978 |
-
.api-check + .notice-dismiss:hover:before {
|
979 |
-
color: #fff;
|
980 |
-
}
|
981 |
-
.api-check:before,
|
982 |
-
.api-check:after {
|
983 |
-
content: '';
|
984 |
-
display: table;
|
985 |
-
}
|
986 |
-
.api-check:after {
|
987 |
-
clear: both;
|
988 |
-
}
|
989 |
-
.api-check .tribe-mascot {
|
990 |
-
bottom: 0;
|
991 |
-
display: none;
|
992 |
-
padding: 0 1rem 0 0;
|
993 |
-
position: absolute;
|
994 |
-
right: 0;
|
995 |
-
top: 0;
|
996 |
-
}
|
997 |
-
.api-check .tribe-mascot img {
|
998 |
-
display: inline-block;
|
999 |
-
max-height: 150px;
|
1000 |
-
max-width: 150px;
|
1001 |
-
height: 100%;
|
1002 |
-
width: auto;
|
1003 |
-
vertical-align: middle;
|
1004 |
-
}
|
1005 |
-
.api-check p {
|
1006 |
-
line-height: 1.7;
|
1007 |
-
margin-bottom: 1em;
|
1008 |
-
}
|
1009 |
-
.api-check a {
|
1010 |
-
text-decoration: none;
|
1011 |
-
}
|
1012 |
-
.api-check a:hover {
|
1013 |
-
text-decoration: underline;
|
1014 |
-
}
|
1015 |
-
.api-check .plugin-list {
|
1016 |
-
display: inline;
|
1017 |
-
font-weight: 600;
|
1018 |
-
margin: 0;
|
1019 |
-
padding: 0;
|
1020 |
-
}
|
1021 |
-
.api-check .plugin-list span.plugin-invalid:after {
|
1022 |
-
content: ', ';
|
1023 |
-
}
|
1024 |
-
.api-check .plugin-list span.plugin-invalid:last-of-type:after {
|
1025 |
-
content: '';
|
1026 |
-
}
|
1027 |
-
.tribe-marketing-notice {
|
1028 |
-
padding: 1em;
|
1029 |
-
}
|
1030 |
-
.tribe-marketing-notice + .notice-dismiss:hover:before {
|
1031 |
-
color: #fff;
|
1032 |
-
}
|
1033 |
-
.tribe-marketing-notice:before,
|
1034 |
-
.tribe-marketing-notice:after {
|
1035 |
-
content: '';
|
1036 |
-
display: table;
|
1037 |
-
}
|
1038 |
-
.tribe-marketing-notice:after {
|
1039 |
-
clear: both;
|
1040 |
-
}
|
1041 |
-
.tribe-marketing-notice .tribe-notice-icon {
|
1042 |
-
bottom: 0;
|
1043 |
-
display: none;
|
1044 |
-
padding: 1rem;
|
1045 |
-
position: absolute;
|
1046 |
-
left: 0;
|
1047 |
-
top: 0;
|
1048 |
-
width: 125px;
|
1049 |
-
}
|
1050 |
-
.tribe-marketing-notice .tribe-notice-icon:before {
|
1051 |
-
content: '';
|
1052 |
-
display: inline-block;
|
1053 |
-
height: 100%;
|
1054 |
-
width: 1%;
|
1055 |
-
vertical-align: middle;
|
1056 |
-
}
|
1057 |
-
.tribe-marketing-notice .tribe-notice-icon img {
|
1058 |
-
display: inline-block;
|
1059 |
-
max-height: 100%;
|
1060 |
-
max-width: 96%;
|
1061 |
-
vertical-align: middle;
|
1062 |
-
}
|
1063 |
-
.tribe-marketing-notice h3 {
|
1064 |
-
margin-bottom: 0.5em;
|
1065 |
-
margin-top: 0.5em;
|
1066 |
-
}
|
1067 |
-
.tribe-marketing-notice p {
|
1068 |
-
line-height: 1.7;
|
1069 |
-
margin-bottom: 0.5em;
|
1070 |
-
}
|
1071 |
-
.tribe-marketing-notice a {
|
1072 |
-
text-decoration: none;
|
1073 |
-
}
|
1074 |
-
.tribe-marketing-notice a:hover {
|
1075 |
-
text-decoration: underline;
|
1076 |
-
}
|
1077 |
-
.tribe-marketing-notice.tribe-bf-2018-tec .button.button-primary {
|
1078 |
-
margin: 10px 10px 0 0;
|
1079 |
-
}
|
1080 |
-
.tribe-ea-dropdown,
|
1081 |
-
.tribe-dropdown {
|
1082 |
-
max-width: 100%;
|
1083 |
-
width: auto;
|
1084 |
-
}
|
1085 |
-
.tribe-ea-dropdown.select2-container-active .select2-choice, .tribe-dropdown.select2-container-active .select2-choice {
|
1086 |
-
border-color: #5897fb;
|
1087 |
-
box-shadow: 0 0 5px rgba( 0, 0, 0, .1 );
|
1088 |
-
}
|
1089 |
-
.tribe-ea-dropdown.select2-dropdown-open .select2-choice, .tribe-dropdown.select2-dropdown-open .select2-choice {
|
1090 |
-
border-bottom-left-radius: 0;
|
1091 |
-
border-bottom-right-radius: 0;
|
1092 |
-
border-color: #aaa;
|
1093 |
-
}
|
1094 |
-
.tribe-ea-dropdown .select2-choice, .tribe-dropdown .select2-choice {
|
1095 |
-
background-image: none;
|
1096 |
-
border-radius: 3px;
|
1097 |
-
border: 1px solid #ccc;
|
1098 |
-
}
|
1099 |
-
.tribe-ea-dropdown .select2-choice > .select2-chosen, .tribe-dropdown .select2-choice > .select2-chosen {
|
1100 |
-
white-space: normal;
|
1101 |
-
}
|
1102 |
-
.tribe-ea-dropdown .select2-choice .select2-arrow, .tribe-dropdown .select2-choice .select2-arrow {
|
1103 |
-
background-image: none;
|
1104 |
-
background: transparent;
|
1105 |
-
border-left: 0;
|
1106 |
-
}
|
1107 |
-
.tribe-ea-dropdown .select2-choice div, .tribe-dropdown .select2-choice div {
|
1108 |
-
background-image: none;
|
1109 |
-
background: none;
|
1110 |
-
border-left: 0;
|
1111 |
-
}
|
1112 |
-
.tribe-ea-dropdown.select2-container-multi .select2-choices, .tribe-dropdown.select2-container-multi .select2-choices {
|
1113 |
-
background-image: none;
|
1114 |
-
border-radius: 3px;
|
1115 |
-
border: 1px solid #ccc;
|
1116 |
-
min-height: 25px;
|
1117 |
-
}
|
1118 |
-
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-field, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-field {
|
1119 |
-
line-height: 25px;
|
1120 |
-
}
|
1121 |
-
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-field input, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-field input {
|
1122 |
-
padding-top: 0;
|
1123 |
-
padding-bottom: 0;
|
1124 |
-
}
|
1125 |
-
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice {
|
1126 |
-
margin-top: 2px;
|
1127 |
-
padding-top: 0;
|
1128 |
-
padding-bottom: 0;
|
1129 |
-
line-height: 19px;
|
1130 |
-
}
|
1131 |
-
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice div, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice div {
|
1132 |
-
line-height: inherit;
|
1133 |
-
}
|
1134 |
-
.tribe-ea-dropdown.select2-container-multi .select2-choices .select2-search-choice-close, .tribe-dropdown.select2-container-multi .select2-choices .select2-search-choice-close {
|
1135 |
-
top: 3px;
|
1136 |
-
left: 4px;
|
1137 |
-
-webkit-transition-property: border,color;
|
1138 |
-
transition-property: border,color;
|
1139 |
-
}
|
1140 |
-
.select2-results .select2-selected {
|
1141 |
-
display: block;
|
1142 |
-
}
|
1143 |
-
.select2-results .select2-selected > .select2-result-label {
|
1144 |
-
background-color: #efefef;
|
1145 |
-
color: #a1a1a1;
|
1146 |
-
cursor: default;
|
1147 |
-
}
|
1148 |
-
.select2-results li.select2-result-with-children > .select2-result-label {
|
1149 |
-
font-weight: normal;
|
1150 |
-
}
|
1151 |
-
.select2-results li.select2-result-with-children.select2-selected {
|
1152 |
-
display: block;
|
1153 |
-
}
|
1154 |
-
.select2-results li.select2-result-with-children.select2-selected .select2-result {
|
1155 |
-
display: block;
|
1156 |
-
}
|
1157 |
-
.select2-results li.select2-result-with-children.select2-selected > .select2-result-label {
|
1158 |
-
background-color: #efefef;
|
1159 |
-
color: #a1a1a1;
|
1160 |
-
cursor: default;
|
1161 |
-
}
|
1162 |
-
.select2-results li.select2-result-with-children.select2-result-unselectable > .select2-result-label {
|
1163 |
-
color: #939393;
|
1164 |
-
font-weight: normal;
|
1165 |
-
}
|
1166 |
-
/*
|
1167 |
-
Red button styles.
|
1168 |
-
|
1169 |
-
Credit to https://github.com/jensjns/wp-admin-red-button
|
1170 |
-
=============================================*/
|
1171 |
-
.wp-core-ui .button-red {
|
1172 |
-
background-color: #a00;
|
1173 |
-
border-bottom-color: #8D1F21;
|
1174 |
-
border-color: #9B2124;
|
1175 |
-
box-shadow: inset 0 1px 0 rgba(120,200,230,0.5);
|
1176 |
-
color: #fff;
|
1177 |
-
text-decoration: none;
|
1178 |
-
text-shadow: 0 1px 0 rgba(0,0,0,0.1);
|
1179 |
-
}
|
1180 |
-
.wp-core-ui .button-red.hover,
|
1181 |
-
.wp-core-ui .button-red:hover,
|
1182 |
-
.wp-core-ui .button-red.focus,
|
1183 |
-
.wp-core-ui .button-red:focus {
|
1184 |
-
background-color: #a00;
|
1185 |
-
border-color: #7F1C1F;
|
1186 |
-
box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
|
1187 |
-
color: #fff;
|
1188 |
-
text-shadow: 0 -1px 0 rgba(0,0,0,0.3);
|
1189 |
-
}
|
1190 |
-
.wp-core-ui .button-red.focus,
|
1191 |
-
.wp-core-ui .button-red:focus {
|
1192 |
-
border-color: #500F0E;
|
1193 |
-
box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
|
1194 |
-
}
|
1195 |
-
.wp-core-ui .button-red.active,
|
1196 |
-
.wp-core-ui .button-red.active:hover,
|
1197 |
-
.wp-core-ui .button-red.active:focus,
|
1198 |
-
.wp-core-ui .button-red:active {
|
1199 |
-
background: #7F1C1F;
|
1200 |
-
border-color: #601312 #AE2426 #AE2426 #AE2426;
|
1201 |
-
box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
|
1202 |
-
color: rgba(255,255,255,0.95);
|
1203 |
-
text-shadow: 0 1px 0 rgba(0,0,0,0.1);
|
1204 |
-
}
|
1205 |
-
.wp-core-ui .button-red[disabled],
|
1206 |
-
.wp-core-ui .button-red:disabled,
|
1207 |
-
.wp-core-ui .button-red-disabled {
|
1208 |
-
color: #E79496 !important;
|
1209 |
-
background: #BA292B !important;
|
1210 |
-
border-color: #7F1C1F !important;
|
1211 |
-
box-shadow: none !important;
|
1212 |
-
text-shadow: 0 -1px 0 rgba(0,0,0,0.1) !important;
|
1213 |
-
cursor: default;
|
1214 |
-
}
|
1215 |
-
.ticket_form .select2-container .select2-choice .select2-arrow {
|
1216 |
-
display: none;
|
1217 |
-
}
|
1218 |
-
/* Clearfix Utility */
|
1219 |
-
.clear {
|
1220 |
-
zoom: 1;
|
1221 |
-
}
|
1222 |
-
.clear:after,
|
1223 |
-
.clear:before {
|
1224 |
-
content: " ";
|
1225 |
-
display: table;
|
1226 |
-
}
|
1227 |
-
.clear:after {
|
1228 |
-
clear: both;
|
1229 |
-
}
|
1230 |
-
/* from https://codepen.io/lajlev/pen/diKbz */
|
1231 |
-
.checkmark:after {
|
1232 |
-
/*Add another block-level blank space*/
|
1233 |
-
content: '';
|
1234 |
-
display: block;
|
1235 |
-
|
1236 |
-
/*Make it a small rectangle so the border will create an L-shape*/
|
1237 |
-
width: 8px;
|
1238 |
-
height: 15px;
|
1239 |
-
|
1240 |
-
/*Add a white border on the bottom and left, creating that 'L' */
|
1241 |
-
border: solid #0AB152;
|
1242 |
-
border-width: 0 3px 3px 0;
|
1243 |
-
|
1244 |
-
/*Rotate the L 45 degrees to turn it into a checkmark*/
|
1245 |
-
-webkit-transform: rotate(45deg);
|
1246 |
-
transform: rotate(45deg);
|
1247 |
-
}
|
1248 |
-
.checkmark.checkmark-right:after {
|
1249 |
-
float: right;
|
1250 |
-
margin-right: 2em;
|
1251 |
-
}
|
1252 |
-
.checkmark.checkmark-left:after {
|
1253 |
-
float: left;
|
1254 |
-
margin-left: 2em;
|
1255 |
-
}
|
1256 |
-
.checkmark.no-checkmark:after {
|
1257 |
-
display: none;
|
1258 |
-
}
|
1259 |
-
.complete,
|
1260 |
-
.ok,
|
1261 |
-
.yes,
|
1262 |
-
.on,
|
1263 |
-
[data-status="complete"],
|
1264 |
-
[data-status="ok"],
|
1265 |
-
[data-status="yes"],
|
1266 |
-
[data-status="on"] {
|
1267 |
-
color: #0AB152;
|
1268 |
-
}
|
1269 |
-
.incomplete,
|
1270 |
-
.ko,
|
1271 |
-
.no,
|
1272 |
-
.off,
|
1273 |
-
[data-status="incomplete"],
|
1274 |
-
[data-status="ko"],
|
1275 |
-
[data-status="no"],
|
1276 |
-
[data-status="off"] {
|
1277 |
-
color: #FF2500;
|
1278 |
-
}
|
1279 |
-
/*
|
1280 |
-
* Plugin install CSS
|
1281 |
-
*/
|
1282 |
-
.plugin-card-the-events-calendar .column-rating,
|
1283 |
-
.plugin-card-the-events-calendar .column-updated,
|
1284 |
-
.plugin-card-the-events-calendar .column-downloaded,
|
1285 |
-
.plugin-card-events-calendar-pro .column-rating,
|
1286 |
-
.plugin-card-events-calendar-pro .column-updated,
|
1287 |
-
.plugin-card-events-calendar-pro .column-downloaded,
|
1288 |
-
.plugin-card-event-tickets .column-rating,
|
1289 |
-
.plugin-card-event-tickets .column-updated,
|
1290 |
-
.plugin-card-event-tickets .column-downloaded,
|
1291 |
-
.plugin-card-event-tickets-plus .column-rating,
|
1292 |
-
.plugin-card-event-tickets-plus .column-updated,
|
1293 |
-
.plugin-card-event-tickets-plus .column-downloaded,
|
1294 |
-
.plugin-card-events-community .column-rating,
|
1295 |
-
.plugin-card-events-community .column-updated,
|
1296 |
-
.plugin-card-events-community .column-downloaded,
|
1297 |
-
.plugin-card-events-community-tickets .column-rating,
|
1298 |
-
.plugin-card-events-community-tickets .column-updated,
|
1299 |
-
.plugin-card-events-community-tickets .column-downloaded,
|
1300 |
-
.plugin-card-tribe-eventbrite .column-rating,
|
1301 |
-
.plugin-card-tribe-eventbrite .column-updated,
|
1302 |
-
.plugin-card-tribe-eventbrite .column-downloaded,
|
1303 |
-
.plugin-card-tribe-filterbar .column-rating,
|
1304 |
-
.plugin-card-tribe-filterbar .column-updated,
|
1305 |
-
.plugin-card-tribe-filterbar .column-downloaded,
|
1306 |
-
.plugin-card-image-widget .column-rating,
|
1307 |
-
.plugin-card-image-widget .column-updated,
|
1308 |
-
.plugin-card-image-widget .column-downloaded,
|
1309 |
-
.plugin-card-image-widget-plus .column-rating,
|
1310 |
-
.plugin-card-image-widget-plus .column-updated,
|
1311 |
-
.plugin-card-image-widget-plus .column-downloaded {
|
1312 |
-
display: none;
|
1313 |
-
}
|
1314 |
-
@media
|
1315 |
-
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) {
|
1316 |
-
|
1317 |
-
#tribe-loading span {
|
1318 |
-
background-image: url(../images/tribe-loading@2x.gif);
|
1319 |
-
}
|
1320 |
-
}
|
1321 |
-
@media screen and (max-width: 782px) {
|
1322 |
-
|
1323 |
-
.tribe-half-column,
|
1324 |
-
.tribe-row .tribe-half-column:last-child {
|
1325 |
-
margin: 0 0 20px 0;
|
1326 |
-
width: 100%;
|
1327 |
-
}
|
1328 |
-
|
1329 |
-
input[type='email'] {
|
1330 |
-
width: 100%;
|
1331 |
-
}
|
1332 |
-
}
|
1333 |
-
@media screen and ( max-width: 782px ) {
|
1334 |
-
|
1335 |
-
.events-cal .subsubsub {
|
1336 |
-
float: none;
|
1337 |
-
}
|
1338 |
-
|
1339 |
-
.events-cal .search-box {
|
1340 |
-
width: 98%;
|
1341 |
-
}
|
1342 |
-
|
1343 |
-
.events-cal #search-submit {
|
1344 |
-
width: 100%;
|
1345 |
-
}
|
1346 |
-
|
1347 |
-
.events-cal .tablenav.top {
|
1348 |
-
display: none;
|
1349 |
-
}
|
1350 |
-
}
|
1351 |
-
@media screen and (min-width: 500px) {
|
1352 |
-
.api-check .tribe-mascot {
|
1353 |
-
display: block
|
1354 |
-
}
|
1355 |
-
.api-check .notice-content {
|
1356 |
-
margin-right: 180px
|
1357 |
-
}
|
1358 |
-
}
|
1359 |
-
@media screen and (min-width: 600px) and (max-width: 782px ) {
|
1360 |
-
.tribe-marketing-notice .tribe-notice-icon {
|
1361 |
-
width: 135px
|
1362 |
-
}
|
1363 |
-
.tribe-marketing-notice .tribe-notice-content {
|
1364 |
-
margin-left: 145px
|
1365 |
-
}
|
1366 |
-
}
|
1367 |
-
@media screen and (min-width: 600px) {
|
1368 |
-
.tribe-marketing-notice .tribe-notice-icon {
|
1369 |
-
display: block
|
1370 |
-
}
|
1371 |
-
}
|
1372 |
-
@media screen and (min-width: 782px) {
|
1373 |
-
.tribe-marketing-notice .tribe-notice-content {
|
1374 |
-
margin-left: 130px
|
1375 |
-
}
|
1376 |
-
}
|
1377 |
-
@media screen and (max-width: 956px) {
|
1378 |
-
|
1379 |
-
.tribe-marketing-notice.tribe-bf-2018-tec .button.button-primary {
|
1380 |
-
margin: 0 0 10px 0;
|
1381 |
-
}
|
1382 |
-
|
1383 |
-
.tribe-marketing-notice.tribe-bf-2018-tec em {
|
1384 |
-
clear: both;
|
1385 |
-
display: block;
|
1386 |
-
}
|
1387 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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::-moz-placeholder,textarea::-moz-placeholder{color:#999}input:-ms-input-placeholder,input::-ms-input-placeholder,textarea:-ms-input-placeholder,textarea::-ms-input-placeholder{color:#999}input::placeholder,textarea::placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.bubble{background-color:#f9f9f9;border:1px solid #dfdfdf;border-radius:3px;border-spacing:0;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,serif!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 fieldset.tribe-field-license_key legend{width:auto}.tribe-settings-form legend{float:left;font-weight:700;margin-right:20px;width:220px}.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>p,.tribe-settings-form .tribe-field-radio label>p{text-indent:0;margin-left:1px}.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 fieldset .tribe-style-selection{margin-bottom:18px}.tribe-settings-form .tribe-settings-form-wrap #tribe-field-stylesheetOption .description{color:#999;margin-left:1px}.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}#modern-tribe-info{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{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}#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{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;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;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:850px}.tribe_welcome_page.wrap h1{font-size:3em;line-height:1.2;margin-top:1em}.tribe_welcome_page.wrap h1:before{color:#555d66;content:"\f145";font-family:dashicons;font-size:.9em;line-height:1;margin-right:5px;position:relative;top:4px}.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_welcome_page .tribe-half-column h4,.tribe_welcome_page h2{font-size:24px;line-height:1.2;margin-bottom:20px}.tribe_update_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:15px}.tribe_welcome_page li{font-size:14px;margin-bottom:10px}p.tribe-welcome-message{font-size:18px;font-weight:400}.tribe_welcome_page .tribe-half-column h4{margin-top:1em}.tribe_welcome_page .tribe-half-column h4:before{color:#555d66;content:"\f145";font-family:dashicons;font-size:21px;line-height:1;margin-right:10px;position:relative;top:2px}.tribe_welcome_page .tribe-half-column h4[data-tribe-icon=dashicons-sos]:before{content:"\f468"}.tribe_welcome_page .tribe-half-column h4[data-tribe-icon=dashicons-welcome-learn-more]:before{content:"\f118"}.tribe_welcome_page .tribe-half-column h4[data-tribe-icon=dashicons-megaphone]:before{content:"\f488"}.tribe_welcome_page .tribe-half-column h4[data-tribe-icon=dashicons-heart]:before{content:"\f487"}.tribe_update_page h4: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;min-height:100px}.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:0 1rem 0 0;position:absolute;right:0;top:0}.api-check .tribe-mascot img{display:inline-block;max-height:150px;max-width:150px;height:100%;width:auto;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{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{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{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{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::-moz-placeholder,textarea::-moz-placeholder{color:#999}input:-ms-input-placeholder,input::-ms-input-placeholder,textarea:-ms-input-placeholder,textarea::-ms-input-placeholder{color:#999}input::placeholder,textarea::placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.bubble{background-color:#f9f9f9;border:1px solid #dfdfdf;border-radius:3px;border-spacing:0;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,serif!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 fieldset.tribe-field-license_key legend{width:auto}.tribe-settings-form legend{float:left;font-weight:700;margin-right:20px;width:220px}.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>p,.tribe-settings-form .tribe-field-radio label>p{text-indent:0;margin-left:1px}.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 fieldset .tribe-style-selection{margin-bottom:18px}.tribe-settings-form .tribe-settings-form-wrap #tribe-field-stylesheetOption .description{color:#999;margin-left:1px}.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}#modern-tribe-info{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{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}#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{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;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;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:850px}.tribe_welcome_page.wrap h1{font-size:3em;line-height:1.2;margin-top:1em}.tribe_welcome_page.wrap h1:before{color:#555d66;content:"\f145";font-family:dashicons;font-size:.9em;line-height:1;margin-right:5px;position:relative;top:4px}.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_welcome_page .tribe-half-column h4,.tribe_welcome_page h2{font-size:24px;line-height:1.2;margin-bottom:20px}.tribe_update_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:15px}.tribe_welcome_page li{font-size:14px;margin-bottom:10px}p.tribe-welcome-message{font-size:18px;font-weight:400}.tribe_welcome_page .tribe-half-column h4{margin-top:1em}.tribe_welcome_page .tribe-half-column h4:before{color:#555d66;content:"\f145";font-family:dashicons;font-size:21px;line-height:1;margin-right:10px;position:relative;top:2px}.tribe_welcome_page .tribe-half-column h4[data-tribe-icon=dashicons-sos]:before{content:"\f468"}.tribe_welcome_page .tribe-half-column h4[data-tribe-icon=dashicons-welcome-learn-more]:before{content:"\f118"}.tribe_welcome_page .tribe-half-column h4[data-tribe-icon=dashicons-megaphone]:before{content:"\f488"}.tribe_welcome_page .tribe-half-column h4[data-tribe-icon=dashicons-heart]:before{content:"\f487"}.tribe_update_page h4: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}.wp-list-table.plugins .column-description .update-message{color:#d54e21}.api-check{padding:1em;min-height:100px}.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:0 1rem 0 0;position:absolute;right:0;top:0}.api-check .tribe-mascot img{display:inline-block;max-height:150px;max-width:150px;height:100%;width:auto;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 .selection,.tribe-ea-dropdown.select2-container .selection{margin-top:inherit}.tribe-dropdown .select2-selection--single,.tribe-ea-dropdown .select2-selection--single{height:32px}.tribe-dropdown .select2-selection--single .select2-selection__clear,.tribe-ea-dropdown .select2-selection--single .select2-selection__clear{line-height:28px}.tribe-dropdown .select2-selection--single .select2-selection__rendered,.tribe-ea-dropdown .select2-selection--single .select2-selection__rendered{line-height:32px;padding-right:28px}.tribe-dropdown.select2-container--focus .select2-selection--single,.tribe-ea-dropdown.select2-container--focus .select2-selection--single{border-color:#5897fb;box-shadow:0 0 5px rgba(0,0,0,.1)}.tribe-dropdown.select2-container--open .select2-search__field,.tribe-ea-dropdown.select2-container--open .select2-search__field{padding:0}.tribe-dropdown.select2-container--open .select2-dropdown--below,.tribe-ea-dropdown.select2-container--open .select2-dropdown--below{margin-top:-1px;border-top:1px solid #aaa}.tribe-dropdown.select2-container--open .select2-dropdown--above,.tribe-ea-dropdown.select2-container--open .select2-dropdown--above{margin-bottom:-16px;border-bottom:1px solid #aaa}.tribe-dropdown.select2-container--open .select2-selection--single,.tribe-ea-dropdown.select2-container--open .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:#aaa}.tribe-dropdown.select2-container--open .select2-selection__arrow b,.tribe-ea-dropdown.select2-container--open .select2-selection__arrow b{transform:rotate(180deg)}.tribe-dropdown.select2-selection--single,.tribe-ea-dropdown.select2-selection--single{background-image:none;border-radius:3px;border:1px solid #ccc;overflow:hidden}.tribe-dropdown.select2-selection--single>.select2-selection__rendered,.tribe-ea-dropdown.select2-selection--single>.select2-selection__rendered{white-space:normal}.tribe-dropdown.select2-selection--single .select2-selection__arrow,.tribe-ea-dropdown.select2-selection--single .select2-selection__arrow{background-image:none;background:transparent;border-left:0;top:2px;width:26px}.tribe-dropdown.select2-selection--single .select2-selection__arrow b,.tribe-ea-dropdown.select2-selection--single .select2-selection__arrow b{background:#fff url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%206l5%205%205-5%202%201-7%207-7-7%202-1z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E") no-repeat right 5px top 55%;background-size:auto;background-size:16px 16px;border:0;top:0;bottom:0;left:0;right:0;display:block;width:auto;height:auto;margin:0;padding:0}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered{background-image:none;border-radius:3px;border:1px solid #ccc;min-height:25px}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-search--inline,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-search--inline{line-height:25px}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-search--inline input,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-search--inline input{padding-top:0;padding-bottom:0}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice{margin-top:2px;padding-top:0;padding-bottom:0;line-height:19px}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice div,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice div{line-height:inherit}.tribe-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice__remove,.tribe-ea-dropdown .select2-selection--multiple .select2-selection__rendered .select2-selection__choice__remove{top:3px;left:4px;transition-property:border,color}.select2-results .select2-results__option{color:#939393;font-weight:400;margin-bottom:0}.select2-results .select2-results__option[aria-disabled=true]{background-color:#e0e0e0}.select2-results.select2-results__option--highlighted{background-color:#efefef;color:#a1a1a1;cursor:default;display:block}.wp-core-ui .button-red{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{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{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{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-selection--single .select2-selection__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
DELETED
@@ -1,36 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
11 |
-
.tribe-button {
|
12 |
-
border: 0;
|
13 |
-
border-radius: 3px;
|
14 |
-
background: #009FF1 -webkit-gradient( linear, left top, left bottom, from(#009FF1), to(#0080DB));
|
15 |
-
background: #009FF1 linear-gradient( to bottom, #009FF1, #0080DB);
|
16 |
-
cursor: pointer;
|
17 |
-
color: #fff;
|
18 |
-
display: inline-block;
|
19 |
-
font-size: 14px;
|
20 |
-
font-weight: 400;
|
21 |
-
font-family: sans-serif;
|
22 |
-
letter-spacing: 1px;
|
23 |
-
line-height: 1;
|
24 |
-
height: auto;
|
25 |
-
padding: 10px;
|
26 |
-
text-align: center;
|
27 |
-
-webkit-transition: all .15s ease-in;
|
28 |
-
transition: all .15s ease-in;
|
29 |
-
-webkit-font-smoothing: subpixel-antialiased;
|
30 |
-
}
|
31 |
-
|
32 |
-
.tribe-button:hover,
|
33 |
-
.tribe-button:active,
|
34 |
-
.tribe-button:focus {
|
35 |
-
background: #0080DB;
|
36 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
.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}.hide-before-select2-init{display:none}
|
common/src/resources/css/validation.css
DELETED
@@ -1,18 +0,0 @@
|
|
1 |
-
/**
|
2 |
-
* This CSS file was auto-generated via PostCSS
|
3 |
-
*
|
4 |
-
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
-
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
-
* docs on how we handle CSS in our engineering docs.
|
7 |
-
*
|
8 |
-
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
-
*/
|
10 |
-
|
11 |
-
.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 {
|
12 |
-
border-color: #dc3232;
|
13 |
-
}
|
14 |
-
|
15 |
-
|
16 |
-
.tribe-validation .tribe-dropdown.tribe-validation-error .select2-choice {
|
17 |
-
border-color: #dc3232;
|
18 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
common/src/resources/images/app-shop-community.jpg
CHANGED
Binary file
|
common/src/resources/images/app-shop-eventbrite.jpg
CHANGED
Binary file
|
common/src/resources/images/app-shop-ical.jpg
CHANGED
Binary file
|
common/src/resources/images/app-shop-pro.jpg
CHANGED
Binary file
|
common/src/resources/images/app-shop-promoter.jpg
CHANGED
Binary file
|
common/src/resources/images/app-shop-tickets-plus.jpg
CHANGED
Binary file
|
common/src/resources/images/donate-link-screenshot.png
CHANGED
Binary file
|
common/src/resources/images/gutenberg-admin-notice-TEC.png
CHANGED
Binary file
|
common/src/resources/images/gutenberg-admin-notice-tickets.png
CHANGED
Binary file
|
common/src/resources/images/mascot.png
CHANGED
Binary file
|
common/src/resources/js/app/components.js
DELETED
@@ -1,21779 +0,0 @@
|
|
1 |
-
var tribe = typeof tribe === "object" ? tribe : {}; tribe["common"] = tribe["common"] || {}; tribe["common"]["components"] =
|
2 |
-
/******/ (function(modules) { // webpackBootstrap
|
3 |
-
/******/ // The module cache
|
4 |
-
/******/ var installedModules = {};
|
5 |
-
/******/
|
6 |
-
/******/ // The require function
|
7 |
-
/******/ function __webpack_require__(moduleId) {
|
8 |
-
/******/
|
9 |
-
/******/ // Check if module is in cache
|
10 |
-
/******/ if(installedModules[moduleId]) {
|
11 |
-
/******/ return installedModules[moduleId].exports;
|
12 |
-
/******/ }
|
13 |
-
/******/ // Create a new module (and put it into the cache)
|
14 |
-
/******/ var module = installedModules[moduleId] = {
|
15 |
-
/******/ i: moduleId,
|
16 |
-
/******/ l: false,
|
17 |
-
/******/ exports: {}
|
18 |
-
/******/ };
|
19 |
-
/******/
|
20 |
-
/******/ // Execute the module function
|
21 |
-
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
22 |
-
/******/
|
23 |
-
/******/ // Flag the module as loaded
|
24 |
-
/******/ module.l = true;
|
25 |
-
/******/
|
26 |
-
/******/ // Return the exports of the module
|
27 |
-
/******/ return module.exports;
|
28 |
-
/******/ }
|
29 |
-
/******/
|
30 |
-
/******/
|
31 |
-
/******/ // expose the modules object (__webpack_modules__)
|
32 |
-
/******/ __webpack_require__.m = modules;
|
33 |
-
/******/
|
34 |
-
/******/ // expose the module cache
|
35 |
-
/******/ __webpack_require__.c = installedModules;
|
36 |
-
/******/
|
37 |
-
/******/ // define getter function for harmony exports
|
38 |
-
/******/ __webpack_require__.d = function(exports, name, getter) {
|
39 |
-
/******/ if(!__webpack_require__.o(exports, name)) {
|
40 |
-
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
41 |
-
/******/ }
|
42 |
-
/******/ };
|
43 |
-
/******/
|
44 |
-
/******/ // define __esModule on exports
|
45 |
-
/******/ __webpack_require__.r = function(exports) {
|
46 |
-
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
47 |
-
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
48 |
-
/******/ }
|
49 |
-
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
50 |
-
/******/ };
|
51 |
-
/******/
|
52 |
-
/******/ // create a fake namespace object
|
53 |
-
/******/ // mode & 1: value is a module id, require it
|
54 |
-
/******/ // mode & 2: merge all properties of value into the ns
|
55 |
-
/******/ // mode & 4: return value when already ns object
|
56 |
-
/******/ // mode & 8|1: behave like require
|
57 |
-
/******/ __webpack_require__.t = function(value, mode) {
|
58 |
-
/******/ if(mode & 1) value = __webpack_require__(value);
|
59 |
-
/******/ if(mode & 8) return value;
|
60 |
-
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
61 |
-
/******/ var ns = Object.create(null);
|
62 |
-
/******/ __webpack_require__.r(ns);
|
63 |
-
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
64 |
-
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
65 |
-
/******/ return ns;
|
66 |
-
/******/ };
|
67 |
-
/******/
|
68 |
-
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
69 |
-
/******/ __webpack_require__.n = function(module) {
|
70 |
-
/******/ var getter = module && module.__esModule ?
|
71 |
-
/******/ function getDefault() { return module['default']; } :
|
72 |
-
/******/ function getModuleExports() { return module; };
|
73 |
-
/******/ __webpack_require__.d(getter, 'a', getter);
|
74 |
-
/******/ return getter;
|
75 |
-
/******/ };
|
76 |
-
/******/
|
77 |
-
/******/ // Object.prototype.hasOwnProperty.call
|
78 |
-
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
79 |
-
/******/
|
80 |
-
/******/ // __webpack_public_path__
|
81 |
-
/******/ __webpack_require__.p = "";
|
82 |
-
/******/
|
83 |
-
/******/
|
84 |
-
/******/ // Load entry module and return exports
|
85 |
-
/******/ return __webpack_require__(__webpack_require__.s = 669);
|
86 |
-
/******/ })
|
87 |
-
/************************************************************************/
|
88 |
-
/******/ ([
|
89 |
-
/* 0 */
|
90 |
-
/***/ (function(module, exports, __webpack_require__) {
|
91 |
-
|
92 |
-
/**
|
93 |
-
* Copyright (c) 2013-present, Facebook, Inc.
|
94 |
-
*
|
95 |
-
* This source code is licensed under the MIT license found in the
|
96 |
-
* LICENSE file in the root directory of this source tree.
|
97 |
-
*/
|
98 |
-
|
99 |
-
if (false) { var throwOnDirectAccess, ReactIs; } else {
|
100 |
-
// By explicitly using `prop-types` you are opting into new production behavior.
|
101 |
-
// http://fb.me/prop-types-in-prod
|
102 |
-
module.exports = __webpack_require__(311)();
|
103 |
-
}
|
104 |
-
|
105 |
-
|
106 |
-
/***/ }),
|
107 |
-
/* 1 */,
|
108 |
-
/* 2 */
|
109 |
-
/***/ (function(module, exports) {
|
110 |
-
|
111 |
-
module.exports = React;
|
112 |
-
|
113 |
-
/***/ }),
|
114 |
-
/* 3 */,
|
115 |
-
/* 4 */
|
116 |
-
/***/ (function(module, exports, __webpack_require__) {
|
117 |
-
|
118 |
-
"use strict";
|
119 |
-
|
120 |
-
|
121 |
-
exports.__esModule = true;
|
122 |
-
|
123 |
-
var _assign = __webpack_require__(278);
|
124 |
-
|
125 |
-
var _assign2 = _interopRequireDefault(_assign);
|
126 |
-
|
127 |
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
128 |
-
|
129 |
-
exports.default = _assign2.default || function (target) {
|
130 |
-
for (var i = 1; i < arguments.length; i++) {
|
131 |
-
var source = arguments[i];
|
132 |
-
|
133 |
-
for (var key in source) {
|
134 |
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
135 |
-
target[key] = source[key];
|
136 |
-
}
|
137 |
-
}
|
138 |
-
}
|
139 |
-
|
140 |
-
return target;
|
141 |
-
};
|
142 |
-
|
143 |
-
/***/ }),
|
144 |
-
/* 5 */,
|
145 |
-
/* 6 */
|
146 |
-
/***/ (function(module, exports) {
|
147 |
-
|
148 |
-
/**
|
149 |
-
* Checks if `value` is classified as an `Array` object.
|
150 |
-
*
|
151 |
-
* @static
|
152 |
-
* @memberOf _
|
153 |
-
* @since 0.1.0
|
154 |
-
* @category Lang
|
155 |
-
* @param {*} value The value to check.
|
156 |
-
* @returns {boolean} Returns `true` if `value` is an array, else `false`.
|
157 |
-
* @example
|
158 |
-
*
|
159 |
-
* _.isArray([1, 2, 3]);
|
160 |
-
* // => true
|
161 |
-
*
|
162 |
-
* _.isArray(document.body.children);
|
163 |
-
* // => false
|
164 |
-
*
|
165 |
-
* _.isArray('abc');
|
166 |
-
* // => false
|
167 |
-
*
|
168 |
-
* _.isArray(_.noop);
|
169 |
-
* // => false
|
170 |
-
*/
|
171 |
-
var isArray = Array.isArray;
|
172 |
-
|
173 |
-
module.exports = isArray;
|
174 |
-
|
175 |
-
|
176 |
-
/***/ }),
|
177 |
-
/* 7 */
|
178 |
-
/***/ (function(module, exports) {
|
179 |
-
|
180 |
-
/**
|
181 |
-
* This method returns `undefined`.
|
182 |
-
*
|
183 |
-
* @static
|
184 |
-
* @memberOf _
|
185 |
-
* @since 2.3.0
|
186 |
-
* @category Util
|
187 |
-
* @example
|
188 |
-
*
|
189 |
-
* _.times(2, _.noop);
|
190 |
-
* // => [undefined, undefined]
|
191 |
-
*/
|
192 |
-
function noop() {
|
193 |
-
// No operation performed.
|
194 |
-
}
|
195 |
-
|
196 |
-
module.exports = noop;
|
197 |
-
|
198 |
-
|
199 |
-
/***/ }),
|
200 |
-
/* 8 */,
|
201 |
-
/* 9 */
|
202 |
-
/***/ (function(module, exports) {
|
203 |
-
|
204 |
-
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
|
205 |
-
var global = module.exports = typeof window != 'undefined' && window.Math == Math
|
206 |
-
? window : typeof self != 'undefined' && self.Math == Math ? self
|
207 |
-
// eslint-disable-next-line no-new-func
|
208 |
-
: Function('return this')();
|
209 |
-
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
|
210 |
-
|
211 |
-
|
212 |
-
/***/ }),
|
213 |
-
/* 10 */
|
214 |
-
/***/ (function(module, exports) {
|
215 |
-
|
216 |
-
var core = module.exports = { version: '2.6.10' };
|
217 |
-
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
|
218 |
-
|
219 |
-
|
220 |
-
/***/ }),
|
221 |
-
/* 11 */
|
222 |
-
/***/ (function(module, exports, __webpack_require__) {
|
223 |
-
|
224 |
-
var freeGlobal = __webpack_require__(137);
|
225 |
-
|
226 |
-
/** Detect free variable `self`. */
|
227 |
-
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
|
228 |
-
|
229 |
-
/** Used as a reference to the global object. */
|
230 |
-
var root = freeGlobal || freeSelf || Function('return this')();
|
231 |
-
|
232 |
-
module.exports = root;
|
233 |
-
|
234 |
-
|
235 |
-
/***/ }),
|
236 |
-
/* 12 */
|
237 |
-
/***/ (function(module, exports, __webpack_require__) {
|
238 |
-
|
239 |
-
var store = __webpack_require__(101)('wks');
|
240 |
-
var uid = __webpack_require__(69);
|
241 |
-
var Symbol = __webpack_require__(9).Symbol;
|
242 |
-
var USE_SYMBOL = typeof Symbol == 'function';
|
243 |
-
|
244 |
-
var $exports = module.exports = function (name) {
|
245 |
-
return store[name] || (store[name] =
|
246 |
-
USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
|
247 |
-
};
|
248 |
-
|
249 |
-
$exports.store = store;
|
250 |
-
|
251 |
-
|
252 |
-
/***/ }),
|
253 |
-
/* 13 */
|
254 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
255 |
-
|
256 |
-
"use strict";
|
257 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return PREFIX_COMMON_STORE; });
|
258 |
-
var PREFIX_COMMON_STORE = '@@MT/COMMON';
|
259 |
-
|
260 |
-
/***/ }),
|
261 |
-
/* 14 */
|
262 |
-
/***/ (function(module, exports) {
|
263 |
-
|
264 |
-
/**
|
265 |
-
* Checks if `value` is object-like. A value is object-like if it's not `null`
|
266 |
-
* and has a `typeof` result of "object".
|
267 |
-
*
|
268 |
-
* @static
|
269 |
-
* @memberOf _
|
270 |
-
* @since 4.0.0
|
271 |
-
* @category Lang
|
272 |
-
* @param {*} value The value to check.
|
273 |
-
* @returns {boolean} Returns `true` if `value` is object-like, else `false`.
|
274 |
-
* @example
|
275 |
-
*
|
276 |
-
* _.isObjectLike({});
|
277 |
-
* // => true
|
278 |
-
*
|
279 |
-
* _.isObjectLike([1, 2, 3]);
|
280 |
-
* // => true
|
281 |
-
*
|
282 |
-
* _.isObjectLike(_.noop);
|
283 |
-
* // => false
|
284 |
-
*
|
285 |
-
* _.isObjectLike(null);
|
286 |
-
* // => false
|
287 |
-
*/
|
288 |
-
function isObjectLike(value) {
|
289 |
-
return value != null && typeof value == 'object';
|
290 |
-
}
|
291 |
-
|
292 |
-
module.exports = isObjectLike;
|
293 |
-
|
294 |
-
|
295 |
-
/***/ }),
|
296 |
-
/* 15 */
|
297 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
298 |
-
|
299 |
-
"use strict";
|
300 |
-
__webpack_require__.r(__webpack_exports__);
|
301 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__DO_NOT_USE__ActionTypes", function() { return ActionTypes; });
|
302 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "applyMiddleware", function() { return applyMiddleware; });
|
303 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindActionCreators", function() { return bindActionCreators; });
|
304 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineReducers", function() { return combineReducers; });
|
305 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return compose; });
|
306 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createStore", function() { return createStore; });
|
307 |
-
/* harmony import */ var symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(123);
|
308 |
-
|
309 |
-
|
310 |
-
/**
|
311 |
-
* These are private action types reserved by Redux.
|
312 |
-
* For any unknown actions, you must return the current state.
|
313 |
-
* If the current state is undefined, you must return the initial state.
|
314 |
-
* Do not reference these action types directly in your code.
|
315 |
-
*/
|
316 |
-
var randomString = function randomString() {
|
317 |
-
return Math.random().toString(36).substring(7).split('').join('.');
|
318 |
-
};
|
319 |
-
|
320 |
-
var ActionTypes = {
|
321 |
-
INIT: "@@redux/INIT" + randomString(),
|
322 |
-
REPLACE: "@@redux/REPLACE" + randomString(),
|
323 |
-
PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {
|
324 |
-
return "@@redux/PROBE_UNKNOWN_ACTION" + randomString();
|
325 |
-
}
|
326 |
-
};
|
327 |
-
|
328 |
-
/**
|
329 |
-
* @param {any} obj The object to inspect.
|
330 |
-
* @returns {boolean} True if the argument appears to be a plain object.
|
331 |
-
*/
|
332 |
-
function isPlainObject(obj) {
|
333 |
-
if (typeof obj !== 'object' || obj === null) return false;
|
334 |
-
var proto = obj;
|
335 |
-
|
336 |
-
while (Object.getPrototypeOf(proto) !== null) {
|
337 |
-
proto = Object.getPrototypeOf(proto);
|
338 |
-
}
|
339 |
-
|
340 |
-
return Object.getPrototypeOf(obj) === proto;
|
341 |
-
}
|
342 |
-
|
343 |
-
/**
|
344 |
-
* Creates a Redux store that holds the state tree.
|
345 |
-
* The only way to change the data in the store is to call `dispatch()` on it.
|
346 |
-
*
|
347 |
-
* There should only be a single store in your app. To specify how different
|
348 |
-
* parts of the state tree respond to actions, you may combine several reducers
|
349 |
-
* into a single reducer function by using `combineReducers`.
|
350 |
-
*
|
351 |
-
* @param {Function} reducer A function that returns the next state tree, given
|
352 |
-
* the current state tree and the action to handle.
|
353 |
-
*
|
354 |
-
* @param {any} [preloadedState] The initial state. You may optionally specify it
|
355 |
-
* to hydrate the state from the server in universal apps, or to restore a
|
356 |
-
* previously serialized user session.
|
357 |
-
* If you use `combineReducers` to produce the root reducer function, this must be
|
358 |
-
* an object with the same shape as `combineReducers` keys.
|
359 |
-
*
|
360 |
-
* @param {Function} [enhancer] The store enhancer. You may optionally specify it
|
361 |
-
* to enhance the store with third-party capabilities such as middleware,
|
362 |
-
* time travel, persistence, etc. The only store enhancer that ships with Redux
|
363 |
-
* is `applyMiddleware()`.
|
364 |
-
*
|
365 |
-
* @returns {Store} A Redux store that lets you read the state, dispatch actions
|
366 |
-
* and subscribe to changes.
|
367 |
-
*/
|
368 |
-
|
369 |
-
function createStore(reducer, preloadedState, enhancer) {
|
370 |
-
var _ref2;
|
371 |
-
|
372 |
-
if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {
|
373 |
-
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.');
|
374 |
-
}
|
375 |
-
|
376 |
-
if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {
|
377 |
-
enhancer = preloadedState;
|
378 |
-
preloadedState = undefined;
|
379 |
-
}
|
380 |
-
|
381 |
-
if (typeof enhancer !== 'undefined') {
|
382 |
-
if (typeof enhancer !== 'function') {
|
383 |
-
throw new Error('Expected the enhancer to be a function.');
|
384 |
-
}
|
385 |
-
|
386 |
-
return enhancer(createStore)(reducer, preloadedState);
|
387 |
-
}
|
388 |
-
|
389 |
-
if (typeof reducer !== 'function') {
|
390 |
-
throw new Error('Expected the reducer to be a function.');
|
391 |
-
}
|
392 |
-
|
393 |
-
var currentReducer = reducer;
|
394 |
-
var currentState = preloadedState;
|
395 |
-
var currentListeners = [];
|
396 |
-
var nextListeners = currentListeners;
|
397 |
-
var isDispatching = false;
|
398 |
-
/**
|
399 |
-
* This makes a shallow copy of currentListeners so we can use
|
400 |
-
* nextListeners as a temporary list while dispatching.
|
401 |
-
*
|
402 |
-
* This prevents any bugs around consumers calling
|
403 |
-
* subscribe/unsubscribe in the middle of a dispatch.
|
404 |
-
*/
|
405 |
-
|
406 |
-
function ensureCanMutateNextListeners() {
|
407 |
-
if (nextListeners === currentListeners) {
|
408 |
-
nextListeners = currentListeners.slice();
|
409 |
-
}
|
410 |
-
}
|
411 |
-
/**
|
412 |
-
* Reads the state tree managed by the store.
|
413 |
-
*
|
414 |
-
* @returns {any} The current state tree of your application.
|
415 |
-
*/
|
416 |
-
|
417 |
-
|
418 |
-
function getState() {
|
419 |
-
if (isDispatching) {
|
420 |
-
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.');
|
421 |
-
}
|
422 |
-
|
423 |
-
return currentState;
|
424 |
-
}
|
425 |
-
/**
|
426 |
-
* Adds a change listener. It will be called any time an action is dispatched,
|
427 |
-
* and some part of the state tree may potentially have changed. You may then
|
428 |
-
* call `getState()` to read the current state tree inside the callback.
|
429 |
-
*
|
430 |
-
* You may call `dispatch()` from a change listener, with the following
|
431 |
-
* caveats:
|
432 |
-
*
|
433 |
-
* 1. The subscriptions are snapshotted just before every `dispatch()` call.
|
434 |
-
* If you subscribe or unsubscribe while the listeners are being invoked, this
|
435 |
-
* will not have any effect on the `dispatch()` that is currently in progress.
|
436 |
-
* However, the next `dispatch()` call, whether nested or not, will use a more
|
437 |
-
* recent snapshot of the subscription list.
|
438 |
-
*
|
439 |
-
* 2. The listener should not expect to see all state changes, as the state
|
440 |
-
* might have been updated multiple times during a nested `dispatch()` before
|
441 |
-
* the listener is called. It is, however, guaranteed that all subscribers
|
442 |
-
* registered before the `dispatch()` started will be called with the latest
|
443 |
-
* state by the time it exits.
|
444 |
-
*
|
445 |
-
* @param {Function} listener A callback to be invoked on every dispatch.
|
446 |
-
* @returns {Function} A function to remove this change listener.
|
447 |
-
*/
|
448 |
-
|
449 |
-
|
450 |
-
function subscribe(listener) {
|
451 |
-
if (typeof listener !== 'function') {
|
452 |
-
throw new Error('Expected the listener to be a function.');
|
453 |
-
}
|
454 |
-
|
455 |
-
if (isDispatching) {
|
456 |
-
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.');
|
457 |
-
}
|
458 |
-
|
459 |
-
var isSubscribed = true;
|
460 |
-
ensureCanMutateNextListeners();
|
461 |
-
nextListeners.push(listener);
|
462 |
-
return function unsubscribe() {
|
463 |
-
if (!isSubscribed) {
|
464 |
-
return;
|
465 |
-
}
|
466 |
-
|
467 |
-
if (isDispatching) {
|
468 |
-
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.');
|
469 |
-
}
|
470 |
-
|
471 |
-
isSubscribed = false;
|
472 |
-
ensureCanMutateNextListeners();
|
473 |
-
var index = nextListeners.indexOf(listener);
|
474 |
-
nextListeners.splice(index, 1);
|
475 |
-
};
|
476 |
-
}
|
477 |
-
/**
|
478 |
-
* Dispatches an action. It is the only way to trigger a state change.
|
479 |
-
*
|
480 |
-
* The `reducer` function, used to create the store, will be called with the
|
481 |
-
* current state tree and the given `action`. Its return value will
|
482 |
-
* be considered the **next** state of the tree, and the change listeners
|
483 |
-
* will be notified.
|
484 |
-
*
|
485 |
-
* The base implementation only supports plain object actions. If you want to
|
486 |
-
* dispatch a Promise, an Observable, a thunk, or something else, you need to
|
487 |
-
* wrap your store creating function into the corresponding middleware. For
|
488 |
-
* example, see the documentation for the `redux-thunk` package. Even the
|
489 |
-
* middleware will eventually dispatch plain object actions using this method.
|
490 |
-
*
|
491 |
-
* @param {Object} action A plain object representing “what changed”. It is
|
492 |
-
* a good idea to keep actions serializable so you can record and replay user
|
493 |
-
* sessions, or use the time travelling `redux-devtools`. An action must have
|
494 |
-
* a `type` property which may not be `undefined`. It is a good idea to use
|
495 |
-
* string constants for action types.
|
496 |
-
*
|
497 |
-
* @returns {Object} For convenience, the same action object you dispatched.
|
498 |
-
*
|
499 |
-
* Note that, if you use a custom middleware, it may wrap `dispatch()` to
|
500 |
-
* return something else (for example, a Promise you can await).
|
501 |
-
*/
|
502 |
-
|
503 |
-
|
504 |
-
function dispatch(action) {
|
505 |
-
if (!isPlainObject(action)) {
|
506 |
-
throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');
|
507 |
-
}
|
508 |
-
|
509 |
-
if (typeof action.type === 'undefined') {
|
510 |
-
throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?');
|
511 |
-
}
|
512 |
-
|
513 |
-
if (isDispatching) {
|
514 |
-
throw new Error('Reducers may not dispatch actions.');
|
515 |
-
}
|
516 |
-
|
517 |
-
try {
|
518 |
-
isDispatching = true;
|
519 |
-
currentState = currentReducer(currentState, action);
|
520 |
-
} finally {
|
521 |
-
isDispatching = false;
|
522 |
-
}
|
523 |
-
|
524 |
-
var listeners = currentListeners = nextListeners;
|
525 |
-
|
526 |
-
for (var i = 0; i < listeners.length; i++) {
|
527 |
-
var listener = listeners[i];
|
528 |
-
listener();
|
529 |
-
}
|
530 |
-
|
531 |
-
return action;
|
532 |
-
}
|
533 |
-
/**
|
534 |
-
* Replaces the reducer currently used by the store to calculate the state.
|
535 |
-
*
|
536 |
-
* You might need this if your app implements code splitting and you want to
|
537 |
-
* load some of the reducers dynamically. You might also need this if you
|
538 |
-
* implement a hot reloading mechanism for Redux.
|
539 |
-
*
|
540 |
-
* @param {Function} nextReducer The reducer for the store to use instead.
|
541 |
-
* @returns {void}
|
542 |
-
*/
|
543 |
-
|
544 |
-
|
545 |
-
function replaceReducer(nextReducer) {
|
546 |
-
if (typeof nextReducer !== 'function') {
|
547 |
-
throw new Error('Expected the nextReducer to be a function.');
|
548 |
-
}
|
549 |
-
|
550 |
-
currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.
|
551 |
-
// Any reducers that existed in both the new and old rootReducer
|
552 |
-
// will receive the previous state. This effectively populates
|
553 |
-
// the new state tree with any relevant data from the old one.
|
554 |
-
|
555 |
-
dispatch({
|
556 |
-
type: ActionTypes.REPLACE
|
557 |
-
});
|
558 |
-
}
|
559 |
-
/**
|
560 |
-
* Interoperability point for observable/reactive libraries.
|
561 |
-
* @returns {observable} A minimal observable of state changes.
|
562 |
-
* For more information, see the observable proposal:
|
563 |
-
* https://github.com/tc39/proposal-observable
|
564 |
-
*/
|
565 |
-
|
566 |
-
|
567 |
-
function observable() {
|
568 |
-
var _ref;
|
569 |
-
|
570 |
-
var outerSubscribe = subscribe;
|
571 |
-
return _ref = {
|
572 |
-
/**
|
573 |
-
* The minimal observable subscription method.
|
574 |
-
* @param {Object} observer Any object that can be used as an observer.
|
575 |
-
* The observer object should have a `next` method.
|
576 |
-
* @returns {subscription} An object with an `unsubscribe` method that can
|
577 |
-
* be used to unsubscribe the observable from the store, and prevent further
|
578 |
-
* emission of values from the observable.
|
579 |
-
*/
|
580 |
-
subscribe: function subscribe(observer) {
|
581 |
-
if (typeof observer !== 'object' || observer === null) {
|
582 |
-
throw new TypeError('Expected the observer to be an object.');
|
583 |
-
}
|
584 |
-
|
585 |
-
function observeState() {
|
586 |
-
if (observer.next) {
|
587 |
-
observer.next(getState());
|
588 |
-
}
|
589 |
-
}
|
590 |
-
|
591 |
-
observeState();
|
592 |
-
var unsubscribe = outerSubscribe(observeState);
|
593 |
-
return {
|
594 |
-
unsubscribe: unsubscribe
|
595 |
-
};
|
596 |
-
}
|
597 |
-
}, _ref[symbol_observable__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]] = function () {
|
598 |
-
return this;
|
599 |
-
}, _ref;
|
600 |
-
} // When a store is created, an "INIT" action is dispatched so that every
|
601 |
-
// reducer returns their initial state. This effectively populates
|
602 |
-
// the initial state tree.
|
603 |
-
|
604 |
-
|
605 |
-
dispatch({
|
606 |
-
type: ActionTypes.INIT
|
607 |
-
});
|
608 |
-
return _ref2 = {
|
609 |
-
dispatch: dispatch,
|
610 |
-
subscribe: subscribe,
|
611 |
-
getState: getState,
|
612 |
-
replaceReducer: replaceReducer
|
613 |
-
}, _ref2[symbol_observable__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]] = observable, _ref2;
|
614 |
-
}
|
615 |
-
|
616 |
-
/**
|
617 |
-
* Prints a warning in the console if it exists.
|
618 |
-
*
|
619 |
-
* @param {String} message The warning message.
|
620 |
-
* @returns {void}
|
621 |
-
*/
|
622 |
-
function warning(message) {
|
623 |
-
/* eslint-disable no-console */
|
624 |
-
if (typeof console !== 'undefined' && typeof console.error === 'function') {
|
625 |
-
console.error(message);
|
626 |
-
}
|
627 |
-
/* eslint-enable no-console */
|
628 |
-
|
629 |
-
|
630 |
-
try {
|
631 |
-
// This error was thrown as a convenience so that if you enable
|
632 |
-
// "break on all exceptions" in your console,
|
633 |
-
// it would pause the execution at this line.
|
634 |
-
throw new Error(message);
|
635 |
-
} catch (e) {} // eslint-disable-line no-empty
|
636 |
-
|
637 |
-
}
|
638 |
-
|
639 |
-
function getUndefinedStateErrorMessage(key, action) {
|
640 |
-
var actionType = action && action.type;
|
641 |
-
var actionDescription = actionType && "action \"" + String(actionType) + "\"" || 'an action';
|
642 |
-
return "Given " + actionDescription + ", reducer \"" + key + "\" 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.";
|
643 |
-
}
|
644 |
-
|
645 |
-
function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {
|
646 |
-
var reducerKeys = Object.keys(reducers);
|
647 |
-
var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';
|
648 |
-
|
649 |
-
if (reducerKeys.length === 0) {
|
650 |
-
return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';
|
651 |
-
}
|
652 |
-
|
653 |
-
if (!isPlainObject(inputState)) {
|
654 |
-
return "The " + argumentName + " has unexpected type of \"" + {}.toString.call(inputState).match(/\s([a-z|A-Z]+)/)[1] + "\". Expected argument to be an object with the following " + ("keys: \"" + reducerKeys.join('", "') + "\"");
|
655 |
-
}
|
656 |
-
|
657 |
-
var unexpectedKeys = Object.keys(inputState).filter(function (key) {
|
658 |
-
return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];
|
659 |
-
});
|
660 |
-
unexpectedKeys.forEach(function (key) {
|
661 |
-
unexpectedKeyCache[key] = true;
|
662 |
-
});
|
663 |
-
if (action && action.type === ActionTypes.REPLACE) return;
|
664 |
-
|
665 |
-
if (unexpectedKeys.length > 0) {
|
666 |
-
return "Unexpected " + (unexpectedKeys.length > 1 ? 'keys' : 'key') + " " + ("\"" + unexpectedKeys.join('", "') + "\" found in " + argumentName + ". ") + "Expected to find one of the known reducer keys instead: " + ("\"" + reducerKeys.join('", "') + "\". Unexpected keys will be ignored.");
|
667 |
-
}
|
668 |
-
}
|
669 |
-
|
670 |
-
function assertReducerShape(reducers) {
|
671 |
-
Object.keys(reducers).forEach(function (key) {
|
672 |
-
var reducer = reducers[key];
|
673 |
-
var initialState = reducer(undefined, {
|
674 |
-
type: ActionTypes.INIT
|
675 |
-
});
|
676 |
-
|
677 |
-
if (typeof initialState === 'undefined') {
|
678 |
-
throw new Error("Reducer \"" + key + "\" 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.");
|
679 |
-
}
|
680 |
-
|
681 |
-
if (typeof reducer(undefined, {
|
682 |
-
type: ActionTypes.PROBE_UNKNOWN_ACTION()
|
683 |
-
}) === 'undefined') {
|
684 |
-
throw new Error("Reducer \"" + key + "\" returned undefined when probed with a random type. " + ("Don't try to handle " + ActionTypes.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.");
|
685 |
-
}
|
686 |
-
});
|
687 |
-
}
|
688 |
-
/**
|
689 |
-
* Turns an object whose values are different reducer functions, into a single
|
690 |
-
* reducer function. It will call every child reducer, and gather their results
|
691 |
-
* into a single state object, whose keys correspond to the keys of the passed
|
692 |
-
* reducer functions.
|
693 |
-
*
|
694 |
-
* @param {Object} reducers An object whose values correspond to different
|
695 |
-
* reducer functions that need to be combined into one. One handy way to obtain
|
696 |
-
* it is to use ES6 `import * as reducers` syntax. The reducers may never return
|
697 |
-
* undefined for any action. Instead, they should return their initial state
|
698 |
-
* if the state passed to them was undefined, and the current state for any
|
699 |
-
* unrecognized action.
|
700 |
-
*
|
701 |
-
* @returns {Function} A reducer function that invokes every reducer inside the
|
702 |
-
* passed object, and builds a state object with the same shape.
|
703 |
-
*/
|
704 |
-
|
705 |
-
|
706 |
-
function combineReducers(reducers) {
|
707 |
-
var reducerKeys = Object.keys(reducers);
|
708 |
-
var finalReducers = {};
|
709 |
-
|
710 |
-
for (var i = 0; i < reducerKeys.length; i++) {
|
711 |
-
var key = reducerKeys[i];
|
712 |
-
|
713 |
-
if (false) {}
|
714 |
-
|
715 |
-
if (typeof reducers[key] === 'function') {
|
716 |
-
finalReducers[key] = reducers[key];
|
717 |
-
}
|
718 |
-
}
|
719 |
-
|
720 |
-
var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same
|
721 |
-
// keys multiple times.
|
722 |
-
|
723 |
-
var unexpectedKeyCache;
|
724 |
-
|
725 |
-
if (false) {}
|
726 |
-
|
727 |
-
var shapeAssertionError;
|
728 |
-
|
729 |
-
try {
|
730 |
-
assertReducerShape(finalReducers);
|
731 |
-
} catch (e) {
|
732 |
-
shapeAssertionError = e;
|
733 |
-
}
|
734 |
-
|
735 |
-
return function combination(state, action) {
|
736 |
-
if (state === void 0) {
|
737 |
-
state = {};
|
738 |
-
}
|
739 |
-
|
740 |
-
if (shapeAssertionError) {
|
741 |
-
throw shapeAssertionError;
|
742 |
-
}
|
743 |
-
|
744 |
-
if (false) { var warningMessage; }
|
745 |
-
|
746 |
-
var hasChanged = false;
|
747 |
-
var nextState = {};
|
748 |
-
|
749 |
-
for (var _i = 0; _i < finalReducerKeys.length; _i++) {
|
750 |
-
var _key = finalReducerKeys[_i];
|
751 |
-
var reducer = finalReducers[_key];
|
752 |
-
var previousStateForKey = state[_key];
|
753 |
-
var nextStateForKey = reducer(previousStateForKey, action);
|
754 |
-
|
755 |
-
if (typeof nextStateForKey === 'undefined') {
|
756 |
-
var errorMessage = getUndefinedStateErrorMessage(_key, action);
|
757 |
-
throw new Error(errorMessage);
|
758 |
-
}
|
759 |
-
|
760 |
-
nextState[_key] = nextStateForKey;
|
761 |
-
hasChanged = hasChanged || nextStateForKey !== previousStateForKey;
|
762 |
-
}
|
763 |
-
|
764 |
-
return hasChanged ? nextState : state;
|
765 |
-
};
|
766 |
-
}
|
767 |
-
|
768 |
-
function bindActionCreator(actionCreator, dispatch) {
|
769 |
-
return function () {
|
770 |
-
return dispatch(actionCreator.apply(this, arguments));
|
771 |
-
};
|
772 |
-
}
|
773 |
-
/**
|
774 |
-
* Turns an object whose values are action creators, into an object with the
|
775 |
-
* same keys, but with every function wrapped into a `dispatch` call so they
|
776 |
-
* may be invoked directly. This is just a convenience method, as you can call
|
777 |
-
* `store.dispatch(MyActionCreators.doSomething())` yourself just fine.
|
778 |
-
*
|
779 |
-
* For convenience, you can also pass an action creator as the first argument,
|
780 |
-
* and get a dispatch wrapped function in return.
|
781 |
-
*
|
782 |
-
* @param {Function|Object} actionCreators An object whose values are action
|
783 |
-
* creator functions. One handy way to obtain it is to use ES6 `import * as`
|
784 |
-
* syntax. You may also pass a single function.
|
785 |
-
*
|
786 |
-
* @param {Function} dispatch The `dispatch` function available on your Redux
|
787 |
-
* store.
|
788 |
-
*
|
789 |
-
* @returns {Function|Object} The object mimicking the original object, but with
|
790 |
-
* every action creator wrapped into the `dispatch` call. If you passed a
|
791 |
-
* function as `actionCreators`, the return value will also be a single
|
792 |
-
* function.
|
793 |
-
*/
|
794 |
-
|
795 |
-
|
796 |
-
function bindActionCreators(actionCreators, dispatch) {
|
797 |
-
if (typeof actionCreators === 'function') {
|
798 |
-
return bindActionCreator(actionCreators, dispatch);
|
799 |
-
}
|
800 |
-
|
801 |
-
if (typeof actionCreators !== 'object' || actionCreators === null) {
|
802 |
-
throw new Error("bindActionCreators expected an object or a function, instead received " + (actionCreators === null ? 'null' : typeof actionCreators) + ". " + "Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?");
|
803 |
-
}
|
804 |
-
|
805 |
-
var boundActionCreators = {};
|
806 |
-
|
807 |
-
for (var key in actionCreators) {
|
808 |
-
var actionCreator = actionCreators[key];
|
809 |
-
|
810 |
-
if (typeof actionCreator === 'function') {
|
811 |
-
boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);
|
812 |
-
}
|
813 |
-
}
|
814 |
-
|
815 |
-
return boundActionCreators;
|
816 |
-
}
|
817 |
-
|
818 |
-
function _defineProperty(obj, key, value) {
|
819 |
-
if (key in obj) {
|
820 |
-
Object.defineProperty(obj, key, {
|
821 |
-
value: value,
|
822 |
-
enumerable: true,
|
823 |
-
configurable: true,
|
824 |
-
writable: true
|
825 |
-
});
|
826 |
-
} else {
|
827 |
-
obj[key] = value;
|
828 |
-
}
|
829 |
-
|
830 |
-
return obj;
|
831 |
-
}
|
832 |
-
|
833 |
-
function ownKeys(object, enumerableOnly) {
|
834 |
-
var keys = Object.keys(object);
|
835 |
-
|
836 |
-
if (Object.getOwnPropertySymbols) {
|
837 |
-
keys.push.apply(keys, Object.getOwnPropertySymbols(object));
|
838 |
-
}
|
839 |
-
|
840 |
-
if (enumerableOnly) keys = keys.filter(function (sym) {
|
841 |
-
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
842 |
-
});
|
843 |
-
return keys;
|
844 |
-
}
|
845 |
-
|
846 |
-
function _objectSpread2(target) {
|
847 |
-
for (var i = 1; i < arguments.length; i++) {
|
848 |
-
var source = arguments[i] != null ? arguments[i] : {};
|
849 |
-
|
850 |
-
if (i % 2) {
|
851 |
-
ownKeys(source, true).forEach(function (key) {
|
852 |
-
_defineProperty(target, key, source[key]);
|
853 |
-
});
|
854 |
-
} else if (Object.getOwnPropertyDescriptors) {
|
855 |
-
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
856 |
-
} else {
|
857 |
-
ownKeys(source).forEach(function (key) {
|
858 |
-
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
859 |
-
});
|
860 |
-
}
|
861 |
-
}
|
862 |
-
|
863 |
-
return target;
|
864 |
-
}
|
865 |
-
|
866 |
-
/**
|
867 |
-
* Composes single-argument functions from right to left. The rightmost
|
868 |
-
* function can take multiple arguments as it provides the signature for
|
869 |
-
* the resulting composite function.
|
870 |
-
*
|
871 |
-
* @param {...Function} funcs The functions to compose.
|
872 |
-
* @returns {Function} A function obtained by composing the argument functions
|
873 |
-
* from right to left. For example, compose(f, g, h) is identical to doing
|
874 |
-
* (...args) => f(g(h(...args))).
|
875 |
-
*/
|
876 |
-
function compose() {
|
877 |
-
for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {
|
878 |
-
funcs[_key] = arguments[_key];
|
879 |
-
}
|
880 |
-
|
881 |
-
if (funcs.length === 0) {
|
882 |
-
return function (arg) {
|
883 |
-
return arg;
|
884 |
-
};
|
885 |
-
}
|
886 |
-
|
887 |
-
if (funcs.length === 1) {
|
888 |
-
return funcs[0];
|
889 |
-
}
|
890 |
-
|
891 |
-
return funcs.reduce(function (a, b) {
|
892 |
-
return function () {
|
893 |
-
return a(b.apply(void 0, arguments));
|
894 |
-
};
|
895 |
-
});
|
896 |
-
}
|
897 |
-
|
898 |
-
/**
|
899 |
-
* Creates a store enhancer that applies middleware to the dispatch method
|
900 |
-
* of the Redux store. This is handy for a variety of tasks, such as expressing
|
901 |
-
* asynchronous actions in a concise manner, or logging every action payload.
|
902 |
-
*
|
903 |
-
* See `redux-thunk` package as an example of the Redux middleware.
|
904 |
-
*
|
905 |
-
* Because middleware is potentially asynchronous, this should be the first
|
906 |
-
* store enhancer in the composition chain.
|
907 |
-
*
|
908 |
-
* Note that each middleware will be given the `dispatch` and `getState` functions
|
909 |
-
* as named arguments.
|
910 |
-
*
|
911 |
-
* @param {...Function} middlewares The middleware chain to be applied.
|
912 |
-
* @returns {Function} A store enhancer applying the middleware.
|
913 |
-
*/
|
914 |
-
|
915 |
-
function applyMiddleware() {
|
916 |
-
for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {
|
917 |
-
middlewares[_key] = arguments[_key];
|
918 |
-
}
|
919 |
-
|
920 |
-
return function (createStore) {
|
921 |
-
return function () {
|
922 |
-
var store = createStore.apply(void 0, arguments);
|
923 |
-
|
924 |
-
var _dispatch = function dispatch() {
|
925 |
-
throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');
|
926 |
-
};
|
927 |
-
|
928 |
-
var middlewareAPI = {
|
929 |
-
getState: store.getState,
|
930 |
-
dispatch: function dispatch() {
|
931 |
-
return _dispatch.apply(void 0, arguments);
|
932 |
-
}
|
933 |
-
};
|
934 |
-
var chain = middlewares.map(function (middleware) {
|
935 |
-
return middleware(middlewareAPI);
|
936 |
-
});
|
937 |
-
_dispatch = compose.apply(void 0, chain)(store.dispatch);
|
938 |
-
return _objectSpread2({}, store, {
|
939 |
-
dispatch: _dispatch
|
940 |
-
});
|
941 |
-
};
|
942 |
-
};
|
943 |
-
}
|
944 |
-
|
945 |
-
/*
|
946 |
-
* This is a dummy function to check if the function name has been altered by minification.
|
947 |
-
* If the function has been minified and NODE_ENV !== 'production', warn the user.
|
948 |
-
*/
|
949 |
-
|
950 |
-
function isCrushed() {}
|
951 |
-
|
952 |
-
if (false) {}
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
/***/ }),
|
958 |
-
/* 16 */
|
959 |
-
/***/ (function(module, exports, __webpack_require__) {
|
960 |
-
|
961 |
-
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
|
962 |
-
Copyright (c) 2017 Jed Watson.
|
963 |
-
Licensed under the MIT License (MIT), see
|
964 |
-
http://jedwatson.github.io/classnames
|
965 |
-
*/
|
966 |
-
/* global define */
|
967 |
-
|
968 |
-
(function () {
|
969 |
-
'use strict';
|
970 |
-
|
971 |
-
var hasOwn = {}.hasOwnProperty;
|
972 |
-
|
973 |
-
function classNames () {
|
974 |
-
var classes = [];
|
975 |
-
|
976 |
-
for (var i = 0; i < arguments.length; i++) {
|
977 |
-
var arg = arguments[i];
|
978 |
-
if (!arg) continue;
|
979 |
-
|
980 |
-
var argType = typeof arg;
|
981 |
-
|
982 |
-
if (argType === 'string' || argType === 'number') {
|
983 |
-
classes.push(arg);
|
984 |
-
} else if (Array.isArray(arg) && arg.length) {
|
985 |
-
var inner = classNames.apply(null, arg);
|
986 |
-
if (inner) {
|
987 |
-
classes.push(inner);
|
988 |
-
}
|
989 |
-
} else if (argType === 'object') {
|
990 |
-
for (var key in arg) {
|
991 |
-
if (hasOwn.call(arg, key) && arg[key]) {
|
992 |
-
classes.push(key);
|
993 |
-
}
|
994 |
-
}
|
995 |
-
}
|
996 |
-
}
|
997 |
-
|
998 |
-
return classes.join(' ');
|
999 |
-
}
|
1000 |
-
|
1001 |
-
if ( true && module.exports) {
|
1002 |
-
classNames.default = classNames;
|
1003 |
-
module.exports = classNames;
|
1004 |
-
} else if (true) {
|
1005 |
-
// register as 'classnames', consistent with npm package name
|
1006 |
-
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
|
1007 |
-
return classNames;
|
1008 |
-
}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
|
1009 |
-
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
1010 |
-
} else {}
|
1011 |
-
}());
|
1012 |
-
|
1013 |
-
|
1014 |
-
/***/ }),
|
1015 |
-
/* 17 */
|
1016 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1017 |
-
|
1018 |
-
var isObject = __webpack_require__(24);
|
1019 |
-
module.exports = function (it) {
|
1020 |
-
if (!isObject(it)) throw TypeError(it + ' is not an object!');
|
1021 |
-
return it;
|
1022 |
-
};
|
1023 |
-
|
1024 |
-
|
1025 |
-
/***/ }),
|
1026 |
-
/* 18 */
|
1027 |
-
/***/ (function(module, exports) {
|
1028 |
-
|
1029 |
-
/**
|
1030 |
-
* Checks if `value` is the
|
1031 |
-
* [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
|
1032 |
-
* of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
|
1033 |
-
*
|
1034 |
-
* @static
|
1035 |
-
* @memberOf _
|
1036 |
-
* @since 0.1.0
|
1037 |
-
* @category Lang
|
1038 |
-
* @param {*} value The value to check.
|
1039 |
-
* @returns {boolean} Returns `true` if `value` is an object, else `false`.
|
1040 |
-
* @example
|
1041 |
-
*
|
1042 |
-
* _.isObject({});
|
1043 |
-
* // => true
|
1044 |
-
*
|
1045 |
-
* _.isObject([1, 2, 3]);
|
1046 |
-
* // => true
|
1047 |
-
*
|
1048 |
-
* _.isObject(_.noop);
|
1049 |
-
* // => true
|
1050 |
-
*
|
1051 |
-
* _.isObject(null);
|
1052 |
-
* // => false
|
1053 |
-
*/
|
1054 |
-
function isObject(value) {
|
1055 |
-
var type = typeof value;
|
1056 |
-
return value != null && (type == 'object' || type == 'function');
|
1057 |
-
}
|
1058 |
-
|
1059 |
-
module.exports = isObject;
|
1060 |
-
|
1061 |
-
|
1062 |
-
/***/ }),
|
1063 |
-
/* 19 */
|
1064 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1065 |
-
|
1066 |
-
var global = __webpack_require__(9);
|
1067 |
-
var core = __webpack_require__(10);
|
1068 |
-
var ctx = __webpack_require__(40);
|
1069 |
-
var hide = __webpack_require__(30);
|
1070 |
-
var has = __webpack_require__(36);
|
1071 |
-
var PROTOTYPE = 'prototype';
|
1072 |
-
|
1073 |
-
var $export = function (type, name, source) {
|
1074 |
-
var IS_FORCED = type & $export.F;
|
1075 |
-
var IS_GLOBAL = type & $export.G;
|
1076 |
-
var IS_STATIC = type & $export.S;
|
1077 |
-
var IS_PROTO = type & $export.P;
|
1078 |
-
var IS_BIND = type & $export.B;
|
1079 |
-
var IS_WRAP = type & $export.W;
|
1080 |
-
var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
|
1081 |
-
var expProto = exports[PROTOTYPE];
|
1082 |
-
var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
|
1083 |
-
var key, own, out;
|
1084 |
-
if (IS_GLOBAL) source = name;
|
1085 |
-
for (key in source) {
|
1086 |
-
// contains in native
|
1087 |
-
own = !IS_FORCED && target && target[key] !== undefined;
|
1088 |
-
if (own && has(exports, key)) continue;
|
1089 |
-
// export native or passed
|
1090 |
-
out = own ? target[key] : source[key];
|
1091 |
-
// prevent global pollution for namespaces
|
1092 |
-
exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
|
1093 |
-
// bind timers to global for call from export context
|
1094 |
-
: IS_BIND && own ? ctx(out, global)
|
1095 |
-
// wrap global constructors for prevent change them in library
|
1096 |
-
: IS_WRAP && target[key] == out ? (function (C) {
|
1097 |
-
var F = function (a, b, c) {
|
1098 |
-
if (this instanceof C) {
|
1099 |
-
switch (arguments.length) {
|
1100 |
-
case 0: return new C();
|
1101 |
-
case 1: return new C(a);
|
1102 |
-
case 2: return new C(a, b);
|
1103 |
-
} return new C(a, b, c);
|
1104 |
-
} return C.apply(this, arguments);
|
1105 |
-
};
|
1106 |
-
F[PROTOTYPE] = C[PROTOTYPE];
|
1107 |
-
return F;
|
1108 |
-
// make static versions for prototype methods
|
1109 |
-
})(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
|
1110 |
-
// export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
|
1111 |
-
if (IS_PROTO) {
|
1112 |
-
(exports.virtual || (exports.virtual = {}))[key] = out;
|
1113 |
-
// export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
|
1114 |
-
if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
|
1115 |
-
}
|
1116 |
-
}
|
1117 |
-
};
|
1118 |
-
// type bitmap
|
1119 |
-
$export.F = 1; // forced
|
1120 |
-
$export.G = 2; // global
|
1121 |
-
$export.S = 4; // static
|
1122 |
-
$export.P = 8; // proto
|
1123 |
-
$export.B = 16; // bind
|
1124 |
-
$export.W = 32; // wrap
|
1125 |
-
$export.U = 64; // safe
|
1126 |
-
$export.R = 128; // real proto method for `library`
|
1127 |
-
module.exports = $export;
|
1128 |
-
|
1129 |
-
|
1130 |
-
/***/ }),
|
1131 |
-
/* 20 */
|
1132 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1133 |
-
|
1134 |
-
// Thank's IE8 for his funny defineProperty
|
1135 |
-
module.exports = !__webpack_require__(50)(function () {
|
1136 |
-
return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
|
1137 |
-
});
|
1138 |
-
|
1139 |
-
|
1140 |
-
/***/ }),
|
1141 |
-
/* 21 */
|
1142 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1143 |
-
|
1144 |
-
var Symbol = __webpack_require__(37),
|
1145 |
-
getRawTag = __webpack_require__(222),
|
1146 |
-
objectToString = __webpack_require__(223);
|
1147 |
-
|
1148 |
-
/** `Object#toString` result references. */
|
1149 |
-
var nullTag = '[object Null]',
|
1150 |
-
undefinedTag = '[object Undefined]';
|
1151 |
-
|
1152 |
-
/** Built-in value references. */
|
1153 |
-
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
|
1154 |
-
|
1155 |
-
/**
|
1156 |
-
* The base implementation of `getTag` without fallbacks for buggy environments.
|
1157 |
-
*
|
1158 |
-
* @private
|
1159 |
-
* @param {*} value The value to query.
|
1160 |
-
* @returns {string} Returns the `toStringTag`.
|
1161 |
-
*/
|
1162 |
-
function baseGetTag(value) {
|
1163 |
-
if (value == null) {
|
1164 |
-
return value === undefined ? undefinedTag : nullTag;
|
1165 |
-
}
|
1166 |
-
return (symToStringTag && symToStringTag in Object(value))
|
1167 |
-
? getRawTag(value)
|
1168 |
-
: objectToString(value);
|
1169 |
-
}
|
1170 |
-
|
1171 |
-
module.exports = baseGetTag;
|
1172 |
-
|
1173 |
-
|
1174 |
-
/***/ }),
|
1175 |
-
/* 22 */
|
1176 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1177 |
-
|
1178 |
-
"use strict";
|
1179 |
-
|
1180 |
-
|
1181 |
-
exports.__esModule = true;
|
1182 |
-
|
1183 |
-
var _typeof2 = __webpack_require__(204);
|
1184 |
-
|
1185 |
-
var _typeof3 = _interopRequireDefault(_typeof2);
|
1186 |
-
|
1187 |
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
1188 |
-
|
1189 |
-
exports.default = function (self, call) {
|
1190 |
-
if (!self) {
|
1191 |
-
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
1192 |
-
}
|
1193 |
-
|
1194 |
-
return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self;
|
1195 |
-
};
|
1196 |
-
|
1197 |
-
/***/ }),
|
1198 |
-
/* 23 */
|
1199 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1200 |
-
|
1201 |
-
var anObject = __webpack_require__(17);
|
1202 |
-
var IE8_DOM_DEFINE = __webpack_require__(166);
|
1203 |
-
var toPrimitive = __webpack_require__(112);
|
1204 |
-
var dP = Object.defineProperty;
|
1205 |
-
|
1206 |
-
exports.f = __webpack_require__(20) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
|
1207 |
-
anObject(O);
|
1208 |
-
P = toPrimitive(P, true);
|
1209 |
-
anObject(Attributes);
|
1210 |
-
if (IE8_DOM_DEFINE) try {
|
1211 |
-
return dP(O, P, Attributes);
|
1212 |
-
} catch (e) { /* empty */ }
|
1213 |
-
if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
|
1214 |
-
if ('value' in Attributes) O[P] = Attributes.value;
|
1215 |
-
return O;
|
1216 |
-
};
|
1217 |
-
|
1218 |
-
|
1219 |
-
/***/ }),
|
1220 |
-
/* 24 */
|
1221 |
-
/***/ (function(module, exports) {
|
1222 |
-
|
1223 |
-
module.exports = function (it) {
|
1224 |
-
return typeof it === 'object' ? it !== null : typeof it === 'function';
|
1225 |
-
};
|
1226 |
-
|
1227 |
-
|
1228 |
-
/***/ }),
|
1229 |
-
/* 25 */
|
1230 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1231 |
-
|
1232 |
-
var baseIsNative = __webpack_require__(221),
|
1233 |
-
getValue = __webpack_require__(226);
|
1234 |
-
|
1235 |
-
/**
|
1236 |
-
* Gets the native function at `key` of `object`.
|
1237 |
-
*
|
1238 |
-
* @private
|
1239 |
-
* @param {Object} object The object to query.
|
1240 |
-
* @param {string} key The key of the method to get.
|
1241 |
-
* @returns {*} Returns the function if it's native, else `undefined`.
|
1242 |
-
*/
|
1243 |
-
function getNative(object, key) {
|
1244 |
-
var value = getValue(object, key);
|
1245 |
-
return baseIsNative(value) ? value : undefined;
|
1246 |
-
}
|
1247 |
-
|
1248 |
-
module.exports = getNative;
|
1249 |
-
|
1250 |
-
|
1251 |
-
/***/ }),
|
1252 |
-
/* 26 */
|
1253 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1254 |
-
|
1255 |
-
"use strict";
|
1256 |
-
|
1257 |
-
|
1258 |
-
exports.__esModule = true;
|
1259 |
-
|
1260 |
-
exports.default = function (instance, Constructor) {
|
1261 |
-
if (!(instance instanceof Constructor)) {
|
1262 |
-
throw new TypeError("Cannot call a class as a function");
|
1263 |
-
}
|
1264 |
-
};
|
1265 |
-
|
1266 |
-
/***/ }),
|
1267 |
-
/* 27 */
|
1268 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1269 |
-
|
1270 |
-
"use strict";
|
1271 |
-
|
1272 |
-
|
1273 |
-
exports.__esModule = true;
|
1274 |
-
|
1275 |
-
var _defineProperty = __webpack_require__(205);
|
1276 |
-
|
1277 |
-
var _defineProperty2 = _interopRequireDefault(_defineProperty);
|
1278 |
-
|
1279 |
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
1280 |
-
|
1281 |
-
exports.default = function () {
|
1282 |
-
function defineProperties(target, props) {
|
1283 |
-
for (var i = 0; i < props.length; i++) {
|
1284 |
-
var descriptor = props[i];
|
1285 |
-
descriptor.enumerable = descriptor.enumerable || false;
|
1286 |
-
descriptor.configurable = true;
|
1287 |
-
if ("value" in descriptor) descriptor.writable = true;
|
1288 |
-
(0, _defineProperty2.default)(target, descriptor.key, descriptor);
|
1289 |
-
}
|
1290 |
-
}
|
1291 |
-
|
1292 |
-
return function (Constructor, protoProps, staticProps) {
|
1293 |
-
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
1294 |
-
if (staticProps) defineProperties(Constructor, staticProps);
|
1295 |
-
return Constructor;
|
1296 |
-
};
|
1297 |
-
}();
|
1298 |
-
|
1299 |
-
/***/ }),
|
1300 |
-
/* 28 */
|
1301 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1302 |
-
|
1303 |
-
"use strict";
|
1304 |
-
|
1305 |
-
|
1306 |
-
exports.__esModule = true;
|
1307 |
-
|
1308 |
-
var _setPrototypeOf = __webpack_require__(396);
|
1309 |
-
|
1310 |
-
var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);
|
1311 |
-
|
1312 |
-
var _create = __webpack_require__(400);
|
1313 |
-
|
1314 |
-
var _create2 = _interopRequireDefault(_create);
|
1315 |
-
|
1316 |
-
var _typeof2 = __webpack_require__(204);
|
1317 |
-
|
1318 |
-
var _typeof3 = _interopRequireDefault(_typeof2);
|
1319 |
-
|
1320 |
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
1321 |
-
|
1322 |
-
exports.default = function (subClass, superClass) {
|
1323 |
-
if (typeof superClass !== "function" && superClass !== null) {
|
1324 |
-
throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass)));
|
1325 |
-
}
|
1326 |
-
|
1327 |
-
subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {
|
1328 |
-
constructor: {
|
1329 |
-
value: subClass,
|
1330 |
-
enumerable: false,
|
1331 |
-
writable: true,
|
1332 |
-
configurable: true
|
1333 |
-
}
|
1334 |
-
});
|
1335 |
-
if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;
|
1336 |
-
};
|
1337 |
-
|
1338 |
-
/***/ }),
|
1339 |
-
/* 29 */
|
1340 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
1341 |
-
|
1342 |
-
"use strict";
|
1343 |
-
__webpack_require__.r(__webpack_exports__);
|
1344 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "get", function() { return get; });
|
1345 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "google", function() { return google; });
|
1346 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "config", function() { return config; });
|
1347 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "common", function() { return common; });
|
1348 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "adminUrl", function() { return adminUrl; });
|
1349 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rest", function() { return rest; });
|
1350 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "restNonce", function() { return restNonce; });
|
1351 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dateSettings", function() { return dateSettings; });
|
1352 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "editorConstants", function() { return editorConstants; });
|
1353 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "list", function() { return list; });
|
1354 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tec", function() { return tec; });
|
1355 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "editor", function() { return editor; });
|
1356 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settings", function() { return settings; });
|
1357 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapsAPI", function() { return mapsAPI; });
|
1358 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "priceSettings", function() { return priceSettings; });
|
1359 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tecDateSettings", function() { return tecDateSettings; });
|
1360 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timezoneHtml", function() { return timezoneHtml; });
|
1361 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultTimes", function() { return defaultTimes; });
|
1362 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pro", function() { return pro; });
|
1363 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "editorDefaults", function() { return editorDefaults; });
|
1364 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tickets", function() { return tickets; });
|
1365 |
-
/**
|
1366 |
-
* @todo: handle globals in a better way
|
1367 |
-
*/
|
1368 |
-
var get = function get(key, defaultValue) {
|
1369 |
-
return window[key] || defaultValue;
|
1370 |
-
};
|
1371 |
-
var google = function google() {
|
1372 |
-
return get('google');
|
1373 |
-
};
|
1374 |
-
|
1375 |
-
// Localized Config
|
1376 |
-
var config = function config() {
|
1377 |
-
return get('tribe_editor_config', {});
|
1378 |
-
};
|
1379 |
-
|
1380 |
-
// Common
|
1381 |
-
var common = function common() {
|
1382 |
-
return config().common || {};
|
1383 |
-
};
|
1384 |
-
var adminUrl = function adminUrl() {
|
1385 |
-
return common().adminUrl || '';
|
1386 |
-
};
|
1387 |
-
var rest = function rest() {
|
1388 |
-
return common().rest || {};
|
1389 |
-
};
|
1390 |
-
var restNonce = function restNonce() {
|
1391 |
-
return rest().nonce || {};
|
1392 |
-
};
|
1393 |
-
var dateSettings = function dateSettings() {
|
1394 |
-
return common().dateSettings || {};
|
1395 |
-
};
|
1396 |
-
var editorConstants = function editorConstants() {
|
1397 |
-
return common().constants || {};
|
1398 |
-
};
|
1399 |
-
var list = function list() {
|
1400 |
-
return {
|
1401 |
-
countries: common().countries || {},
|
1402 |
-
us_states: common().usStates || {}
|
1403 |
-
};
|
1404 |
-
};
|
1405 |
-
|
1406 |
-
// TEC
|
1407 |
-
var tec = function tec() {
|
1408 |
-
return config().events || {};
|
1409 |
-
};
|
1410 |
-
var editor = function editor() {
|
1411 |
-
return tec().editor || {};
|
1412 |
-
};
|
1413 |
-
var settings = function settings() {
|
1414 |
-
return tec().settings || {};
|
1415 |
-
};
|
1416 |
-
var mapsAPI = function mapsAPI() {
|
1417 |
-
return tec().googleMap || {};
|
1418 |
-
};
|
1419 |
-
var priceSettings = function priceSettings() {
|
1420 |
-
return tec().priceSettings || {};
|
1421 |
-
};
|
1422 |
-
var tecDateSettings = function tecDateSettings() {
|
1423 |
-
return tec().dateSettings || {};
|
1424 |
-
};
|
1425 |
-
var timezoneHtml = function timezoneHtml() {
|
1426 |
-
return tec().timezoneHTML || '';
|
1427 |
-
};
|
1428 |
-
var defaultTimes = function defaultTimes() {
|
1429 |
-
return tec().defaultTimes || {};
|
1430 |
-
};
|
1431 |
-
|
1432 |
-
// PRO
|
1433 |
-
var pro = function pro() {
|
1434 |
-
return config().eventsPRO || {};
|
1435 |
-
};
|
1436 |
-
var editorDefaults = function editorDefaults() {
|
1437 |
-
return pro().defaults || {};
|
1438 |
-
};
|
1439 |
-
|
1440 |
-
// Tickets
|
1441 |
-
var tickets = function tickets() {
|
1442 |
-
return config().tickets || {};
|
1443 |
-
};
|
1444 |
-
|
1445 |
-
/***/ }),
|
1446 |
-
/* 30 */
|
1447 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1448 |
-
|
1449 |
-
var dP = __webpack_require__(23);
|
1450 |
-
var createDesc = __webpack_require__(51);
|
1451 |
-
module.exports = __webpack_require__(20) ? function (object, key, value) {
|
1452 |
-
return dP.f(object, key, createDesc(1, value));
|
1453 |
-
} : function (object, key, value) {
|
1454 |
-
object[key] = value;
|
1455 |
-
return object;
|
1456 |
-
};
|
1457 |
-
|
1458 |
-
|
1459 |
-
/***/ }),
|
1460 |
-
/* 31 */
|
1461 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1462 |
-
|
1463 |
-
var arrayLikeKeys = __webpack_require__(159),
|
1464 |
-
baseKeys = __webpack_require__(94),
|
1465 |
-
isArrayLike = __webpack_require__(42);
|
1466 |
-
|
1467 |
-
/**
|
1468 |
-
* Creates an array of the own enumerable property names of `object`.
|
1469 |
-
*
|
1470 |
-
* **Note:** Non-object values are coerced to objects. See the
|
1471 |
-
* [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
|
1472 |
-
* for more details.
|
1473 |
-
*
|
1474 |
-
* @static
|
1475 |
-
* @since 0.1.0
|
1476 |
-
* @memberOf _
|
1477 |
-
* @category Object
|
1478 |
-
* @param {Object} object The object to query.
|
1479 |
-
* @returns {Array} Returns the array of property names.
|
1480 |
-
* @example
|
1481 |
-
*
|
1482 |
-
* function Foo() {
|
1483 |
-
* this.a = 1;
|
1484 |
-
* this.b = 2;
|
1485 |
-
* }
|
1486 |
-
*
|
1487 |
-
* Foo.prototype.c = 3;
|
1488 |
-
*
|
1489 |
-
* _.keys(new Foo);
|
1490 |
-
* // => ['a', 'b'] (iteration order is not guaranteed)
|
1491 |
-
*
|
1492 |
-
* _.keys('hi');
|
1493 |
-
* // => ['0', '1']
|
1494 |
-
*/
|
1495 |
-
function keys(object) {
|
1496 |
-
return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
|
1497 |
-
}
|
1498 |
-
|
1499 |
-
module.exports = keys;
|
1500 |
-
|
1501 |
-
|
1502 |
-
/***/ }),
|
1503 |
-
/* 32 */
|
1504 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1505 |
-
|
1506 |
-
var baseKeys = __webpack_require__(94),
|
1507 |
-
getTag = __webpack_require__(43),
|
1508 |
-
isArguments = __webpack_require__(58),
|
1509 |
-
isArray = __webpack_require__(6),
|
1510 |
-
isArrayLike = __webpack_require__(42),
|
1511 |
-
isBuffer = __webpack_require__(59),
|
1512 |
-
isPrototype = __webpack_require__(64),
|
1513 |
-
isTypedArray = __webpack_require__(86);
|
1514 |
-
|
1515 |
-
/** `Object#toString` result references. */
|
1516 |
-
var mapTag = '[object Map]',
|
1517 |
-
setTag = '[object Set]';
|
1518 |
-
|
1519 |
-
/** Used for built-in method references. */
|
1520 |
-
var objectProto = Object.prototype;
|
1521 |
-
|
1522 |
-
/** Used to check objects for own properties. */
|
1523 |
-
var hasOwnProperty = objectProto.hasOwnProperty;
|
1524 |
-
|
1525 |
-
/**
|
1526 |
-
* Checks if `value` is an empty object, collection, map, or set.
|
1527 |
-
*
|
1528 |
-
* Objects are considered empty if they have no own enumerable string keyed
|
1529 |
-
* properties.
|
1530 |
-
*
|
1531 |
-
* Array-like values such as `arguments` objects, arrays, buffers, strings, or
|
1532 |
-
* jQuery-like collections are considered empty if they have a `length` of `0`.
|
1533 |
-
* Similarly, maps and sets are considered empty if they have a `size` of `0`.
|
1534 |
-
*
|
1535 |
-
* @static
|
1536 |
-
* @memberOf _
|
1537 |
-
* @since 0.1.0
|
1538 |
-
* @category Lang
|
1539 |
-
* @param {*} value The value to check.
|
1540 |
-
* @returns {boolean} Returns `true` if `value` is empty, else `false`.
|
1541 |
-
* @example
|
1542 |
-
*
|
1543 |
-
* _.isEmpty(null);
|
1544 |
-
* // => true
|
1545 |
-
*
|
1546 |
-
* _.isEmpty(true);
|
1547 |
-
* // => true
|
1548 |
-
*
|
1549 |
-
* _.isEmpty(1);
|
1550 |
-
* // => true
|
1551 |
-
*
|
1552 |
-
* _.isEmpty([1, 2, 3]);
|
1553 |
-
* // => false
|
1554 |
-
*
|
1555 |
-
* _.isEmpty({ 'a': 1 });
|
1556 |
-
* // => false
|
1557 |
-
*/
|
1558 |
-
function isEmpty(value) {
|
1559 |
-
if (value == null) {
|
1560 |
-
return true;
|
1561 |
-
}
|
1562 |
-
if (isArrayLike(value) &&
|
1563 |
-
(isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||
|
1564 |
-
isBuffer(value) || isTypedArray(value) || isArguments(value))) {
|
1565 |
-
return !value.length;
|
1566 |
-
}
|
1567 |
-
var tag = getTag(value);
|
1568 |
-
if (tag == mapTag || tag == setTag) {
|
1569 |
-
return !value.size;
|
1570 |
-
}
|
1571 |
-
if (isPrototype(value)) {
|
1572 |
-
return !baseKeys(value).length;
|
1573 |
-
}
|
1574 |
-
for (var key in value) {
|
1575 |
-
if (hasOwnProperty.call(value, key)) {
|
1576 |
-
return false;
|
1577 |
-
}
|
1578 |
-
}
|
1579 |
-
return true;
|
1580 |
-
}
|
1581 |
-
|
1582 |
-
module.exports = isEmpty;
|
1583 |
-
|
1584 |
-
|
1585 |
-
/***/ }),
|
1586 |
-
/* 33 */
|
1587 |
-
/***/ (function(module, exports, __webpack_require__) {
|
1588 |
-
|
1589 |
-
"use strict";
|
1590 |
-
|
1591 |
-
|
1592 |
-
exports.__esModule = true;
|
1593 |
-
|
1594 |
-
var _from = __webpack_require__(208);
|
1595 |
-
|
1596 |
-
var _from2 = _interopRequireDefault(_from);
|
1597 |
-
|
1598 |
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
1599 |
-
|
1600 |
-
exports.default = function (arr) {
|
1601 |
-
if (Array.isArray(arr)) {
|
1602 |
-
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
|
1603 |
-
arr2[i] = arr[i];
|
1604 |
-
}
|
1605 |
-
|
1606 |
-
return arr2;
|
1607 |
-
} else {
|
1608 |
-
return (0, _from2.default)(arr);
|
1609 |
-
}
|
1610 |
-
};
|
1611 |
-
|
1612 |
-
/***/ }),
|
1613 |
-
/* 34 */
|
1614 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
1615 |
-
|
1616 |
-
"use strict";
|
1617 |
-
__webpack_require__.r(__webpack_exports__);
|
1618 |
-
var types_namespaceObject = {};
|
1619 |
-
__webpack_require__.r(types_namespaceObject);
|
1620 |
-
__webpack_require__.d(types_namespaceObject, "ADD_FORM", function() { return ADD_FORM; });
|
1621 |
-
__webpack_require__.d(types_namespaceObject, "SET_FORM_FIELDS", function() { return SET_FORM_FIELDS; });
|
1622 |
-
__webpack_require__.d(types_namespaceObject, "CREATE_FORM_DRAFT", function() { return CREATE_FORM_DRAFT; });
|
1623 |
-
__webpack_require__.d(types_namespaceObject, "EDIT_FORM_ENTRY", function() { return EDIT_FORM_ENTRY; });
|
1624 |
-
__webpack_require__.d(types_namespaceObject, "SUBMIT_FORM", function() { return SUBMIT_FORM; });
|
1625 |
-
__webpack_require__.d(types_namespaceObject, "CLEAR_FORM", function() { return CLEAR_FORM; });
|
1626 |
-
__webpack_require__.d(types_namespaceObject, "SET_SAVING_FORM", function() { return SET_SAVING_FORM; });
|
1627 |
-
__webpack_require__.d(types_namespaceObject, "ADD_VOLATILE_ID", function() { return ADD_VOLATILE_ID; });
|
1628 |
-
__webpack_require__.d(types_namespaceObject, "REMOVE_VOLATILE_ID", function() { return REMOVE_VOLATILE_ID; });
|
1629 |
-
var selectors_namespaceObject = {};
|
1630 |
-
__webpack_require__.r(selectors_namespaceObject);
|
1631 |
-
__webpack_require__.d(selectors_namespaceObject, "formSelector", function() { return formSelector; });
|
1632 |
-
__webpack_require__.d(selectors_namespaceObject, "getFormType", function() { return getFormType; });
|
1633 |
-
__webpack_require__.d(selectors_namespaceObject, "getFormEdit", function() { return getFormEdit; });
|
1634 |
-
__webpack_require__.d(selectors_namespaceObject, "getFormCreate", function() { return getFormCreate; });
|
1635 |
-
__webpack_require__.d(selectors_namespaceObject, "getFormSubmit", function() { return getFormSubmit; });
|
1636 |
-
__webpack_require__.d(selectors_namespaceObject, "getFormFields", function() { return getFormFields; });
|
1637 |
-
__webpack_require__.d(selectors_namespaceObject, "getFormSaving", function() { return getFormSaving; });
|
1638 |
-
__webpack_require__.d(selectors_namespaceObject, "getVolatile", function() { return getVolatile; });
|
1639 |
-
var actions_namespaceObject = {};
|
1640 |
-
__webpack_require__.r(actions_namespaceObject);
|
1641 |
-
__webpack_require__.d(actions_namespaceObject, "registerForm", function() { return actions_registerForm; });
|
1642 |
-
__webpack_require__.d(actions_namespaceObject, "clearForm", function() { return actions_clearForm; });
|
1643 |
-
__webpack_require__.d(actions_namespaceObject, "createDraft", function() { return actions_createDraft; });
|
1644 |
-
__webpack_require__.d(actions_namespaceObject, "editEntry", function() { return actions_editEntry; });
|
1645 |
-
__webpack_require__.d(actions_namespaceObject, "setSubmit", function() { return actions_setSubmit; });
|
1646 |
-
__webpack_require__.d(actions_namespaceObject, "setSaving", function() { return actions_setSaving; });
|
1647 |
-
__webpack_require__.d(actions_namespaceObject, "addVolatile", function() { return actions_addVolatile; });
|
1648 |
-
__webpack_require__.d(actions_namespaceObject, "removeVolatile", function() { return actions_removeVolatile; });
|
1649 |
-
__webpack_require__.d(actions_namespaceObject, "sendForm", function() { return actions_sendForm; });
|
1650 |
-
__webpack_require__.d(actions_namespaceObject, "maybeRemoveEntry", function() { return actions_maybeRemoveEntry; });
|
1651 |
-
|
1652 |
-
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/defineProperty.js
|
1653 |
-
var defineProperty = __webpack_require__(200);
|
1654 |
-
var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);
|
1655 |
-
|
1656 |
-
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/extends.js
|
1657 |
-
var helpers_extends = __webpack_require__(4);
|
1658 |
-
var extends_default = /*#__PURE__*/__webpack_require__.n(helpers_extends);
|
1659 |
-
|
1660 |
-
// EXTERNAL MODULE: ./node_modules/redux/es/redux.js
|
1661 |
-
var redux = __webpack_require__(15);
|
1662 |
-
|
1663 |
-
// EXTERNAL MODULE: ./src/modules/data/utils.js
|
1664 |
-
var utils = __webpack_require__(13);
|
1665 |
-
|
1666 |
-
// CONCATENATED MODULE: ./src/modules/data/forms/types.js
|
1667 |
-
/**
|
1668 |
-
* Internal dependencies
|
1669 |
-
*/
|
1670 |
-
|
1671 |
-
|
1672 |
-
var ADD_FORM = utils["a" /* PREFIX_COMMON_STORE */] + '/ADD_FORM';
|
1673 |
-
var SET_FORM_FIELDS = utils["a" /* PREFIX_COMMON_STORE */] + '/SET_FORM_FIELDS';
|
1674 |
-
var CREATE_FORM_DRAFT = utils["a" /* PREFIX_COMMON_STORE */] + '/CREATE_FORM_DRAFT';
|
1675 |
-
var EDIT_FORM_ENTRY = utils["a" /* PREFIX_COMMON_STORE */] + '/EDIT_FORM_ENTRY';
|
1676 |
-
var SUBMIT_FORM = utils["a" /* PREFIX_COMMON_STORE */] + '/SUBMIT_FORM';
|
1677 |
-
var CLEAR_FORM = utils["a" /* PREFIX_COMMON_STORE */] + '/CLEAR_FORM';
|
1678 |
-
var SET_SAVING_FORM = utils["a" /* PREFIX_COMMON_STORE */] + '/SET_SAVING_FORM';
|
1679 |
-
|
1680 |
-
var ADD_VOLATILE_ID = utils["a" /* PREFIX_COMMON_STORE */] + '/ADD_VOLATILE_ID';
|
1681 |
-
var REMOVE_VOLATILE_ID = utils["a" /* PREFIX_COMMON_STORE */] + '/REMOVE_VOLATILE_ID';
|
1682 |
-
// EXTERNAL MODULE: ./src/modules/data/editor/post-types.js
|
1683 |
-
var post_types = __webpack_require__(77);
|
1684 |
-
|
1685 |
-
// CONCATENATED MODULE: ./src/modules/data/forms/reducers/form.js
|
1686 |
-
|
1687 |
-
/**
|
1688 |
-
* Internal dependencies
|
1689 |
-
*/
|
1690 |
-
|
1691 |
-
|
1692 |
-
|
1693 |
-
var DEFAULT_STATE = {
|
1694 |
-
edit: false,
|
1695 |
-
create: false,
|
1696 |
-
submit: false,
|
1697 |
-
saving: false,
|
1698 |
-
fields: {},
|
1699 |
-
type: post_types["EVENT"]
|
1700 |
-
};
|
1701 |
-
|
1702 |
-
/* harmony default export */ var reducers_form = (function () {
|
1703 |
-
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_STATE;
|
1704 |
-
var action = arguments[1];
|
1705 |
-
|
1706 |
-
switch (action.type) {
|
1707 |
-
case ADD_FORM:
|
1708 |
-
return extends_default()({}, state, {
|
1709 |
-
type: action.payload.type
|
1710 |
-
});
|
1711 |
-
case CLEAR_FORM:
|
1712 |
-
return extends_default()({}, state, DEFAULT_STATE, {
|
1713 |
-
type: state.type
|
1714 |
-
});
|
1715 |
-
case CREATE_FORM_DRAFT:
|
1716 |
-
return extends_default()({}, state, {
|
1717 |
-
submit: false,
|
1718 |
-
edit: false,
|
1719 |
-
create: true,
|
1720 |
-
fields: action.payload.fields
|
1721 |
-
});
|
1722 |
-
case SET_SAVING_FORM:
|
1723 |
-
return extends_default()({}, state, {
|
1724 |
-
saving: action.payload.saving
|
1725 |
-
});
|
1726 |
-
case EDIT_FORM_ENTRY:
|
1727 |
-
return extends_default()({}, state, {
|
1728 |
-
create: false,
|
1729 |
-
submit: false,
|
1730 |
-
edit: true,
|
1731 |
-
fields: action.payload.fields
|
1732 |
-
});
|
1733 |
-
case SUBMIT_FORM:
|
1734 |
-
return extends_default()({}, state, {
|
1735 |
-
submit: true
|
1736 |
-
});
|
1737 |
-
default:
|
1738 |
-
return state;
|
1739 |
-
}
|
1740 |
-
});
|
1741 |
-
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/toConsumableArray.js
|
1742 |
-
var toConsumableArray = __webpack_require__(33);
|
1743 |
-
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
|
1744 |
-
|
1745 |
-
// CONCATENATED MODULE: ./src/modules/data/forms/reducers/volatile.js
|
1746 |
-
|
1747 |
-
/**
|
1748 |
-
* Internal dependencies
|
1749 |
-
*/
|
1750 |
-
|
1751 |
-
|
1752 |
-
/* harmony default export */ var reducers_volatile = (function () {
|
1753 |
-
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
1754 |
-
var action = arguments[1];
|
1755 |
-
|
1756 |
-
switch (action.type) {
|
1757 |
-
case ADD_VOLATILE_ID:
|
1758 |
-
return [].concat(toConsumableArray_default()(state), [action.payload.id]);
|
1759 |
-
case REMOVE_VOLATILE_ID:
|
1760 |
-
return state.filter(function (id) {
|
1761 |
-
return id !== action.payload.id;
|
1762 |
-
});
|
1763 |
-
default:
|
1764 |
-
return state;
|
1765 |
-
}
|
1766 |
-
});
|
1767 |
-
// CONCATENATED MODULE: ./src/modules/data/forms/reducers/index.js
|
1768 |
-
|
1769 |
-
|
1770 |
-
// CONCATENATED MODULE: ./src/modules/data/forms/reducer.js
|
1771 |
-
|
1772 |
-
|
1773 |
-
/**
|
1774 |
-
* External dependencies
|
1775 |
-
*/
|
1776 |
-
|
1777 |
-
|
1778 |
-
/**
|
1779 |
-
* Internal dependencies
|
1780 |
-
*/
|
1781 |
-
|
1782 |
-
|
1783 |
-
|
1784 |
-
var reducer_byId = function byId() {
|
1785 |
-
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
1786 |
-
var action = arguments[1];
|
1787 |
-
|
1788 |
-
switch (action.type) {
|
1789 |
-
case ADD_FORM:
|
1790 |
-
case CLEAR_FORM:
|
1791 |
-
case SET_FORM_FIELDS:
|
1792 |
-
case CREATE_FORM_DRAFT:
|
1793 |
-
case EDIT_FORM_ENTRY:
|
1794 |
-
case SUBMIT_FORM:
|
1795 |
-
case SET_SAVING_FORM:
|
1796 |
-
return extends_default()({}, state, defineProperty_default()({}, action.payload.id, reducers_form(state[action.payload.id], action)));
|
1797 |
-
default:
|
1798 |
-
return state;
|
1799 |
-
}
|
1800 |
-
};
|
1801 |
-
|
1802 |
-
/* harmony default export */ var reducer = (Object(redux["combineReducers"])({
|
1803 |
-
byId: reducer_byId,
|
1804 |
-
volatile: reducers_volatile
|
1805 |
-
}));
|
1806 |
-
// EXTERNAL MODULE: ./node_modules/lodash/get.js
|
1807 |
-
var get = __webpack_require__(44);
|
1808 |
-
var get_default = /*#__PURE__*/__webpack_require__.n(get);
|
1809 |
-
|
1810 |
-
// EXTERNAL MODULE: ./node_modules/lodash/isEmpty.js
|
1811 |
-
var isEmpty = __webpack_require__(32);
|
1812 |
-
var isEmpty_default = /*#__PURE__*/__webpack_require__.n(isEmpty);
|
1813 |
-
|
1814 |
-
// EXTERNAL MODULE: ./src/modules/store/middlewares/request/index.js + 4 modules
|
1815 |
-
var request = __webpack_require__(38);
|
1816 |
-
|
1817 |
-
// EXTERNAL MODULE: ./node_modules/reselect/lib/index.js
|
1818 |
-
var lib = __webpack_require__(39);
|
1819 |
-
|
1820 |
-
// CONCATENATED MODULE: ./src/modules/data/forms/selectors.js
|
1821 |
-
/**
|
1822 |
-
* External dependencies
|
1823 |
-
*/
|
1824 |
-
|
1825 |
-
|
1826 |
-
|
1827 |
-
var formSelector = function formSelector(state, props) {
|
1828 |
-
return state.forms.byId[props.name];
|
1829 |
-
};
|
1830 |
-
|
1831 |
-
var getFormType = Object(lib["createSelector"])([formSelector], function (block) {
|
1832 |
-
return block ? block.type : DEFAULT_STATE.type;
|
1833 |
-
});
|
1834 |
-
|
1835 |
-
var getFormEdit = Object(lib["createSelector"])([formSelector], function (block) {
|
1836 |
-
return block ? block.edit : DEFAULT_STATE.edit;
|
1837 |
-
});
|
1838 |
-
|
1839 |
-
var getFormCreate = Object(lib["createSelector"])([formSelector], function (block) {
|
1840 |
-
return block ? block.create : DEFAULT_STATE.create;
|
1841 |
-
});
|
1842 |
-
|
1843 |
-
var getFormSubmit = Object(lib["createSelector"])([formSelector], function (block) {
|
1844 |
-
return block ? block.submit : DEFAULT_STATE.submit;
|
1845 |
-
});
|
1846 |
-
|
1847 |
-
var getFormFields = Object(lib["createSelector"])([formSelector], function (block) {
|
1848 |
-
return block ? block.fields : DEFAULT_STATE.fields;
|
1849 |
-
});
|
1850 |
-
|
1851 |
-
var getFormSaving = Object(lib["createSelector"])([formSelector], function (block) {
|
1852 |
-
return block ? block.saving : DEFAULT_STATE.saving;
|
1853 |
-
});
|
1854 |
-
|
1855 |
-
var getVolatile = function getVolatile(state) {
|
1856 |
-
return state.forms.volatile;
|
1857 |
-
};
|
1858 |
-
// CONCATENATED MODULE: ./src/modules/data/forms/actions.js
|
1859 |
-
|
1860 |
-
/**
|
1861 |
-
* External dependencies
|
1862 |
-
*/
|
1863 |
-
|
1864 |
-
/**
|
1865 |
-
* Internal dependencies
|
1866 |
-
*/
|
1867 |
-
|
1868 |
-
|
1869 |
-
|
1870 |
-
|
1871 |
-
|
1872 |
-
var actions_registerForm = function registerForm(id, type) {
|
1873 |
-
return {
|
1874 |
-
type: ADD_FORM,
|
1875 |
-
payload: {
|
1876 |
-
id: id,
|
1877 |
-
type: type
|
1878 |
-
}
|
1879 |
-
};
|
1880 |
-
};
|
1881 |
-
|
1882 |
-
var actions_clearForm = function clearForm(id) {
|
1883 |
-
return {
|
1884 |
-
type: CLEAR_FORM,
|
1885 |
-
payload: {
|
1886 |
-
id: id
|
1887 |
-
}
|
1888 |
-
};
|
1889 |
-
};
|
1890 |
-
|
1891 |
-
var actions_createDraft = function createDraft(id, fields) {
|
1892 |
-
return {
|
1893 |
-
type: CREATE_FORM_DRAFT,
|
1894 |
-
payload: {
|
1895 |
-
id: id,
|
1896 |
-
fields: fields
|
1897 |
-
}
|
1898 |
-
};
|
1899 |
-
};
|
1900 |
-
|
1901 |
-
var actions_editEntry = function editEntry(id, fields) {
|
1902 |
-
return {
|
1903 |
-
type: EDIT_FORM_ENTRY,
|
1904 |
-
payload: {
|
1905 |
-
id: id,
|
1906 |
-
fields: fields
|
1907 |
-
}
|
1908 |
-
};
|
1909 |
-
};
|
1910 |
-
|
1911 |
-
var actions_setSubmit = function setSubmit(id) {
|
1912 |
-
return {
|
1913 |
-
type: SUBMIT_FORM,
|
1914 |
-
payload: {
|
1915 |
-
id: id
|
1916 |
-
}
|
1917 |
-
};
|
1918 |
-
};
|
1919 |
-
|
1920 |
-
var actions_setSaving = function setSaving(id, saving) {
|
1921 |
-
return {
|
1922 |
-
type: SET_SAVING_FORM,
|
1923 |
-
payload: {
|
1924 |
-
id: id,
|
1925 |
-
saving: saving
|
1926 |
-
}
|
1927 |
-
};
|
1928 |
-
};
|
1929 |
-
|
1930 |
-
var actions_addVolatile = function addVolatile(id) {
|
1931 |
-
return {
|
1932 |
-
type: ADD_VOLATILE_ID,
|
1933 |
-
payload: {
|
1934 |
-
id: id
|
1935 |
-
}
|
1936 |
-
};
|
1937 |
-
};
|
1938 |
-
|
1939 |
-
var actions_removeVolatile = function removeVolatile(id) {
|
1940 |
-
return {
|
1941 |
-
type: REMOVE_VOLATILE_ID,
|
1942 |
-
payload: {
|
1943 |
-
id: id
|
1944 |
-
}
|
1945 |
-
};
|
1946 |
-
};
|
1947 |
-
|
1948 |
-
var actions_sendForm = function sendForm(id) {
|
1949 |
-
var fields = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
1950 |
-
var completed = arguments[2];
|
1951 |
-
return function (dispatch, getState) {
|
1952 |
-
var state = getState();
|
1953 |
-
var props = { name: id };
|
1954 |
-
var type = getFormType(state, props);
|
1955 |
-
var create = getFormCreate(state, props);
|
1956 |
-
var details = getFormFields(state, props);
|
1957 |
-
var saving = getFormSaving(state, props);
|
1958 |
-
|
1959 |
-
if (saving) {
|
1960 |
-
return;
|
1961 |
-
}
|
1962 |
-
|
1963 |
-
var path = create ? '' + type : type + '/' + details.id;
|
1964 |
-
|
1965 |
-
var options = {
|
1966 |
-
path: path,
|
1967 |
-
params: {
|
1968 |
-
method: create ? 'POST' : 'PUT',
|
1969 |
-
body: JSON.stringify(fields)
|
1970 |
-
},
|
1971 |
-
actions: {
|
1972 |
-
start: function start() {
|
1973 |
-
return dispatch(actions_setSaving(id, true));
|
1974 |
-
},
|
1975 |
-
success: function success(_ref) {
|
1976 |
-
var body = _ref.body;
|
1977 |
-
|
1978 |
-
var postID = get_default()(body, 'id', '');
|
1979 |
-
|
1980 |
-
if (create && postID) {
|
1981 |
-
dispatch(actions_addVolatile(postID));
|
1982 |
-
}
|
1983 |
-
completed(body);
|
1984 |
-
dispatch(actions_clearForm(id));
|
1985 |
-
dispatch(actions_setSaving(id, false));
|
1986 |
-
},
|
1987 |
-
error: function error() {
|
1988 |
-
dispatch(actions_clearForm(id));
|
1989 |
-
dispatch(actions_setSaving(id, false));
|
1990 |
-
}
|
1991 |
-
}
|
1992 |
-
};
|
1993 |
-
dispatch(request["actions"].wpRequest(options));
|
1994 |
-
};
|
1995 |
-
};
|
1996 |
-
|
1997 |
-
var actions_deleteEntry = function deleteEntry(dispatch) {
|
1998 |
-
return function (path) {
|
1999 |
-
return function (_ref2) {
|
2000 |
-
var body = _ref2.body;
|
2001 |
-
var id = body.id,
|
2002 |
-
status = body.status;
|
2003 |
-
|
2004 |
-
|
2005 |
-
if ('draft' !== status) {
|
2006 |
-
dispatch(actions_removeVolatile(id));
|
2007 |
-
return;
|
2008 |
-
}
|
2009 |
-
|
2010 |
-
var options = {
|
2011 |
-
path: path,
|
2012 |
-
params: {
|
2013 |
-
method: 'DELETE'
|
2014 |
-
},
|
2015 |
-
actions: {
|
2016 |
-
success: function success() {
|
2017 |
-
return dispatch(actions_removeVolatile(id));
|
2018 |
-
}
|
2019 |
-
}
|
2020 |
-
};
|
2021 |
-
dispatch(request["actions"].wpRequest(options));
|
2022 |
-
};
|
2023 |
-
};
|
2024 |
-
};
|
2025 |
-
|
2026 |
-
var actions_maybeRemoveEntry = function maybeRemoveEntry(id) {
|
2027 |
-
var details = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
2028 |
-
return function (dispatch, getState) {
|
2029 |
-
var state = getState();
|
2030 |
-
var type = getFormType(state, { name: id });
|
2031 |
-
|
2032 |
-
if (isEmpty_default()(details)) {
|
2033 |
-
return;
|
2034 |
-
}
|
2035 |
-
|
2036 |
-
var path = type + '/' + details.id;
|
2037 |
-
var options = {
|
2038 |
-
path: path,
|
2039 |
-
actions: {
|
2040 |
-
success: actions_deleteEntry(dispatch)(path)
|
2041 |
-
}
|
2042 |
-
};
|
2043 |
-
dispatch(request["actions"].wpRequest(options));
|
2044 |
-
};
|
2045 |
-
};
|
2046 |
-
// CONCATENATED MODULE: ./src/modules/data/forms/index.js
|
2047 |
-
/* concated harmony reexport types */__webpack_require__.d(__webpack_exports__, "types", function() { return types_namespaceObject; });
|
2048 |
-
/* concated harmony reexport actions */__webpack_require__.d(__webpack_exports__, "actions", function() { return actions_namespaceObject; });
|
2049 |
-
/* concated harmony reexport selectors */__webpack_require__.d(__webpack_exports__, "selectors", function() { return selectors_namespaceObject; });
|
2050 |
-
/**
|
2051 |
-
* Internal dependencies
|
2052 |
-
*/
|
2053 |
-
|
2054 |
-
|
2055 |
-
|
2056 |
-
|
2057 |
-
|
2058 |
-
|
2059 |
-
/* harmony default export */ var data_forms = __webpack_exports__["default"] = (reducer);
|
2060 |
-
|
2061 |
-
|
2062 |
-
|
2063 |
-
/***/ }),
|
2064 |
-
/* 35 */,
|
2065 |
-
/* 36 */
|
2066 |
-
/***/ (function(module, exports) {
|
2067 |
-
|
2068 |
-
var hasOwnProperty = {}.hasOwnProperty;
|
2069 |
-
module.exports = function (it, key) {
|
2070 |
-
return hasOwnProperty.call(it, key);
|
2071 |
-
};
|
2072 |
-
|
2073 |
-
|
2074 |
-
/***/ }),
|
2075 |
-
/* 37 */
|
2076 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2077 |
-
|
2078 |
-
var root = __webpack_require__(11);
|
2079 |
-
|
2080 |
-
/** Built-in value references. */
|
2081 |
-
var Symbol = root.Symbol;
|
2082 |
-
|
2083 |
-
module.exports = Symbol;
|
2084 |
-
|
2085 |
-
|
2086 |
-
/***/ }),
|
2087 |
-
/* 38 */
|
2088 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
2089 |
-
|
2090 |
-
"use strict";
|
2091 |
-
__webpack_require__.r(__webpack_exports__);
|
2092 |
-
var types_namespaceObject = {};
|
2093 |
-
__webpack_require__.r(types_namespaceObject);
|
2094 |
-
__webpack_require__.d(types_namespaceObject, "WP_REQUEST", function() { return WP_REQUEST; });
|
2095 |
-
var actions_namespaceObject = {};
|
2096 |
-
__webpack_require__.r(actions_namespaceObject);
|
2097 |
-
__webpack_require__.d(actions_namespaceObject, "wpRequest", function() { return actions_wpRequest; });
|
2098 |
-
var utils_namespaceObject = {};
|
2099 |
-
__webpack_require__.r(utils_namespaceObject);
|
2100 |
-
__webpack_require__.d(utils_namespaceObject, "toWpParams", function() { return utils_toWpParams; });
|
2101 |
-
__webpack_require__.d(utils_namespaceObject, "toWPQuery", function() { return utils_toWPQuery; });
|
2102 |
-
__webpack_require__.d(utils_namespaceObject, "getTotalPages", function() { return getTotalPages; });
|
2103 |
-
|
2104 |
-
// EXTERNAL MODULE: ./src/modules/data/utils.js
|
2105 |
-
var utils = __webpack_require__(13);
|
2106 |
-
|
2107 |
-
// CONCATENATED MODULE: ./src/modules/store/middlewares/request/types.js
|
2108 |
-
/**
|
2109 |
-
* Internal dependencies
|
2110 |
-
*/
|
2111 |
-
|
2112 |
-
|
2113 |
-
var WP_REQUEST = utils["a" /* PREFIX_COMMON_STORE */] + '/WP_REQUEST';
|
2114 |
-
// CONCATENATED MODULE: ./src/modules/store/middlewares/request/actions.js
|
2115 |
-
/**
|
2116 |
-
* Internal dependencies
|
2117 |
-
*/
|
2118 |
-
|
2119 |
-
|
2120 |
-
var actions_wpRequest = function wpRequest(meta) {
|
2121 |
-
return {
|
2122 |
-
type: WP_REQUEST,
|
2123 |
-
meta: meta
|
2124 |
-
};
|
2125 |
-
};
|
2126 |
-
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/extends.js
|
2127 |
-
var helpers_extends = __webpack_require__(4);
|
2128 |
-
var extends_default = /*#__PURE__*/__webpack_require__.n(helpers_extends);
|
2129 |
-
|
2130 |
-
// EXTERNAL MODULE: ./node_modules/lodash/isUndefined.js
|
2131 |
-
var isUndefined = __webpack_require__(121);
|
2132 |
-
var isUndefined_default = /*#__PURE__*/__webpack_require__.n(isUndefined);
|
2133 |
-
|
2134 |
-
// EXTERNAL MODULE: ./node_modules/lodash/isEmpty.js
|
2135 |
-
var isEmpty = __webpack_require__(32);
|
2136 |
-
var isEmpty_default = /*#__PURE__*/__webpack_require__.n(isEmpty);
|
2137 |
-
|
2138 |
-
// EXTERNAL MODULE: ./node_modules/querystringify/index.js
|
2139 |
-
var querystringify = __webpack_require__(201);
|
2140 |
-
|
2141 |
-
// CONCATENATED MODULE: ./src/modules/store/middlewares/request/utils.js
|
2142 |
-
|
2143 |
-
|
2144 |
-
/**
|
2145 |
-
* External dependencies
|
2146 |
-
*/
|
2147 |
-
|
2148 |
-
|
2149 |
-
|
2150 |
-
var utils_toWpParams = function toWpParams() {
|
2151 |
-
var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
2152 |
-
|
2153 |
-
var params = extends_default()({
|
2154 |
-
orderby: 'title',
|
2155 |
-
status: ['draft', 'publish'],
|
2156 |
-
order: 'asc',
|
2157 |
-
page: 1
|
2158 |
-
}, args);
|
2159 |
-
|
2160 |
-
if (!isUndefined_default()(params.search) && !isEmpty_default()(params.search)) {
|
2161 |
-
params.orderby = 'relevance';
|
2162 |
-
}
|
2163 |
-
|
2164 |
-
if (isEmpty_default()(params.exclude)) {
|
2165 |
-
delete params.exclude;
|
2166 |
-
}
|
2167 |
-
|
2168 |
-
return params;
|
2169 |
-
};
|
2170 |
-
|
2171 |
-
var utils_toWPQuery = function toWPQuery() {
|
2172 |
-
var args = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
2173 |
-
return Object(querystringify["stringify"])(utils_toWpParams(args));
|
2174 |
-
};
|
2175 |
-
|
2176 |
-
var getTotalPages = function getTotalPages(headers) {
|
2177 |
-
var totalPages = parseInt(headers.get('x-wp-totalpages'), 10);
|
2178 |
-
return isNaN(totalPages) ? 0 : totalPages;
|
2179 |
-
};
|
2180 |
-
// EXTERNAL MODULE: ./node_modules/babel-runtime/regenerator/index.js
|
2181 |
-
var regenerator = __webpack_require__(67);
|
2182 |
-
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);
|
2183 |
-
|
2184 |
-
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/asyncToGenerator.js
|
2185 |
-
var asyncToGenerator = __webpack_require__(122);
|
2186 |
-
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
|
2187 |
-
|
2188 |
-
// EXTERNAL MODULE: ./node_modules/lodash/inRange.js
|
2189 |
-
var inRange = __webpack_require__(202);
|
2190 |
-
var inRange_default = /*#__PURE__*/__webpack_require__.n(inRange);
|
2191 |
-
|
2192 |
-
// EXTERNAL MODULE: ./node_modules/lodash/get.js
|
2193 |
-
var get = __webpack_require__(44);
|
2194 |
-
var get_default = /*#__PURE__*/__webpack_require__.n(get);
|
2195 |
-
|
2196 |
-
// EXTERNAL MODULE: ./node_modules/lodash/noop.js
|
2197 |
-
var noop = __webpack_require__(7);
|
2198 |
-
var noop_default = /*#__PURE__*/__webpack_require__.n(noop);
|
2199 |
-
|
2200 |
-
// EXTERNAL MODULE: ./node_modules/whatwg-fetch/fetch.js
|
2201 |
-
var whatwg_fetch_fetch = __webpack_require__(206);
|
2202 |
-
|
2203 |
-
// EXTERNAL MODULE: ./src/modules/utils/globals.js
|
2204 |
-
var globals = __webpack_require__(29);
|
2205 |
-
|
2206 |
-
// CONCATENATED MODULE: ./src/modules/store/middlewares/request/wp-request.js
|
2207 |
-
|
2208 |
-
|
2209 |
-
|
2210 |
-
|
2211 |
-
|
2212 |
-
/**
|
2213 |
-
* External dependencies
|
2214 |
-
*/
|
2215 |
-
|
2216 |
-
var _this = undefined;
|
2217 |
-
|
2218 |
-
|
2219 |
-
|
2220 |
-
/**
|
2221 |
-
* Internal dependencies
|
2222 |
-
*/
|
2223 |
-
|
2224 |
-
|
2225 |
-
|
2226 |
-
/* harmony default export */ var wp_request = (function () {
|
2227 |
-
return function (next) {
|
2228 |
-
return function () {
|
2229 |
-
var _ref = asyncToGenerator_default()( /*#__PURE__*/regenerator_default.a.mark(function _callee(action) {
|
2230 |
-
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;
|
2231 |
-
|
2232 |
-
return regenerator_default.a.wrap(function _callee$(_context) {
|
2233 |
-
while (1) {
|
2234 |
-
switch (_context.prev = _context.next) {
|
2235 |
-
case 0:
|
2236 |
-
if (!(action.type !== types_namespaceObject.WP_REQUEST)) {
|
2237 |
-
_context.next = 2;
|
2238 |
-
break;
|
2239 |
-
}
|
2240 |
-
|
2241 |
-
return _context.abrupt('return', next(action));
|
2242 |
-
|
2243 |
-
case 2:
|
2244 |
-
_action$meta = action.meta, meta = _action$meta === undefined ? {} : _action$meta;
|
2245 |
-
_meta$path = meta.path, path = _meta$path === undefined ? '' : _meta$path, _meta$params = meta.params, params = _meta$params === undefined ? {} : _meta$params;
|
2246 |
-
|
2247 |
-
|
2248 |
-
next(action);
|
2249 |
-
|
2250 |
-
_rest = Object(globals["rest"])(), _rest$url = _rest.url, url = _rest$url === undefined ? '' : _rest$url, _rest$nonce = _rest.nonce, nonce = _rest$nonce === undefined ? {} : _rest$nonce;
|
2251 |
-
wpRESTNonce = nonce.wp_rest || '';
|
2252 |
-
namespaces = globals["rest"].namespaces || {};
|
2253 |
-
core = namespaces.core || 'wp/v2';
|
2254 |
-
BASE = '' + url + core;
|
2255 |
-
actions = extends_default()({
|
2256 |
-
start: noop_default.a,
|
2257 |
-
success: noop_default.a,
|
2258 |
-
error: noop_default.a,
|
2259 |
-
none: noop_default.a
|
2260 |
-
}, get_default()(meta, 'actions', {}));
|
2261 |
-
|
2262 |
-
if (!(path === '')) {
|
2263 |
-
_context.next = 14;
|
2264 |
-
break;
|
2265 |
-
}
|
2266 |
-
|
2267 |
-
actions.none(path);
|
2268 |
-
return _context.abrupt('return');
|
2269 |
-
|
2270 |
-
case 14:
|
2271 |
-
endpoint = BASE + '/' + path;
|
2272 |
-
|
2273 |
-
|
2274 |
-
actions.start(endpoint, params);
|
2275 |
-
|
2276 |
-
headers = extends_default()({
|
2277 |
-
'Accept': 'application/json',
|
2278 |
-
'Content-Type': 'application/json'
|
2279 |
-
}, get_default()(params, 'headers', {}), {
|
2280 |
-
'X-WP-Nonce': wpRESTNonce
|
2281 |
-
});
|
2282 |
-
_context.prev = 17;
|
2283 |
-
_context.next = 20;
|
2284 |
-
return fetch(endpoint, extends_default()({}, params, {
|
2285 |
-
credentials: 'include',
|
2286 |
-
headers: headers
|
2287 |
-
}));
|
2288 |
-
|
2289 |
-
case 20:
|
2290 |
-
response = _context.sent;
|
2291 |
-
status = response.status;
|
2292 |
-
// inRange includes 200 but excludes 300 from the range so it's from 200 up to 299
|
2293 |
-
|
2294 |
-
if (inRange_default()(status, 200, 300)) {
|
2295 |
-
_context.next = 24;
|
2296 |
-
break;
|
2297 |
-
}
|
2298 |
-
|
2299 |
-
throw response;
|
2300 |
-
|
2301 |
-
case 24:
|
2302 |
-
_context.next = 26;
|
2303 |
-
return response.json();
|
2304 |
-
|
2305 |
-
case 26:
|
2306 |
-
body = _context.sent;
|
2307 |
-
|
2308 |
-
actions.success({ body: body, headers: response.headers });
|
2309 |
-
return _context.abrupt('return', [response, body]);
|
2310 |
-
|
2311 |
-
case 31:
|
2312 |
-
_context.prev = 31;
|
2313 |
-
_context.t0 = _context['catch'](17);
|
2314 |
-
|
2315 |
-
actions.error(_context.t0);
|
2316 |
-
return _context.abrupt('return', _context.t0);
|
2317 |
-
|
2318 |
-
case 35:
|
2319 |
-
case 'end':
|
2320 |
-
return _context.stop();
|
2321 |
-
}
|
2322 |
-
}
|
2323 |
-
}, _callee, _this, [[17, 31]]);
|
2324 |
-
}));
|
2325 |
-
|
2326 |
-
return function (_x) {
|
2327 |
-
return _ref.apply(this, arguments);
|
2328 |
-
};
|
2329 |
-
}();
|
2330 |
-
};
|
2331 |
-
});
|
2332 |
-
// CONCATENATED MODULE: ./src/modules/store/middlewares/request/index.js
|
2333 |
-
/* concated harmony reexport default */__webpack_require__.d(__webpack_exports__, "default", function() { return wp_request; });
|
2334 |
-
/* concated harmony reexport types */__webpack_require__.d(__webpack_exports__, "types", function() { return types_namespaceObject; });
|
2335 |
-
/* concated harmony reexport actions */__webpack_require__.d(__webpack_exports__, "actions", function() { return actions_namespaceObject; });
|
2336 |
-
/* concated harmony reexport utils */__webpack_require__.d(__webpack_exports__, "utils", function() { return utils_namespaceObject; });
|
2337 |
-
/**
|
2338 |
-
* Internal dependencies
|
2339 |
-
*/
|
2340 |
-
|
2341 |
-
|
2342 |
-
|
2343 |
-
|
2344 |
-
|
2345 |
-
|
2346 |
-
|
2347 |
-
/***/ }),
|
2348 |
-
/* 39 */
|
2349 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2350 |
-
|
2351 |
-
"use strict";
|
2352 |
-
|
2353 |
-
|
2354 |
-
exports.__esModule = true;
|
2355 |
-
exports.defaultMemoize = defaultMemoize;
|
2356 |
-
exports.createSelectorCreator = createSelectorCreator;
|
2357 |
-
exports.createStructuredSelector = createStructuredSelector;
|
2358 |
-
function defaultEqualityCheck(a, b) {
|
2359 |
-
return a === b;
|
2360 |
-
}
|
2361 |
-
|
2362 |
-
function areArgumentsShallowlyEqual(equalityCheck, prev, next) {
|
2363 |
-
if (prev === null || next === null || prev.length !== next.length) {
|
2364 |
-
return false;
|
2365 |
-
}
|
2366 |
-
|
2367 |
-
// Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.
|
2368 |
-
var length = prev.length;
|
2369 |
-
for (var i = 0; i < length; i++) {
|
2370 |
-
if (!equalityCheck(prev[i], next[i])) {
|
2371 |
-
return false;
|
2372 |
-
}
|
2373 |
-
}
|
2374 |
-
|
2375 |
-
return true;
|
2376 |
-
}
|
2377 |
-
|
2378 |
-
function defaultMemoize(func) {
|
2379 |
-
var equalityCheck = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultEqualityCheck;
|
2380 |
-
|
2381 |
-
var lastArgs = null;
|
2382 |
-
var lastResult = null;
|
2383 |
-
// we reference arguments instead of spreading them for performance reasons
|
2384 |
-
return function () {
|
2385 |
-
if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {
|
2386 |
-
// apply arguments instead of spreading for performance.
|
2387 |
-
lastResult = func.apply(null, arguments);
|
2388 |
-
}
|
2389 |
-
|
2390 |
-
lastArgs = arguments;
|
2391 |
-
return lastResult;
|
2392 |
-
};
|
2393 |
-
}
|
2394 |
-
|
2395 |
-
function getDependencies(funcs) {
|
2396 |
-
var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;
|
2397 |
-
|
2398 |
-
if (!dependencies.every(function (dep) {
|
2399 |
-
return typeof dep === 'function';
|
2400 |
-
})) {
|
2401 |
-
var dependencyTypes = dependencies.map(function (dep) {
|
2402 |
-
return typeof dep;
|
2403 |
-
}).join(', ');
|
2404 |
-
throw new Error('Selector creators expect all input-selectors to be functions, ' + ('instead received the following types: [' + dependencyTypes + ']'));
|
2405 |
-
}
|
2406 |
-
|
2407 |
-
return dependencies;
|
2408 |
-
}
|
2409 |
-
|
2410 |
-
function createSelectorCreator(memoize) {
|
2411 |
-
for (var _len = arguments.length, memoizeOptions = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
2412 |
-
memoizeOptions[_key - 1] = arguments[_key];
|
2413 |
-
}
|
2414 |
-
|
2415 |
-
return function () {
|
2416 |
-
for (var _len2 = arguments.length, funcs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
2417 |
-
funcs[_key2] = arguments[_key2];
|
2418 |
-
}
|
2419 |
-
|
2420 |
-
var recomputations = 0;
|
2421 |
-
var resultFunc = funcs.pop();
|
2422 |
-
var dependencies = getDependencies(funcs);
|
2423 |
-
|
2424 |
-
var memoizedResultFunc = memoize.apply(undefined, [function () {
|
2425 |
-
recomputations++;
|
2426 |
-
// apply arguments instead of spreading for performance.
|
2427 |
-
return resultFunc.apply(null, arguments);
|
2428 |
-
}].concat(memoizeOptions));
|
2429 |
-
|
2430 |
-
// If a selector is called with the exact same arguments we don't need to traverse our dependencies again.
|
2431 |
-
var selector = defaultMemoize(function () {
|
2432 |
-
var params = [];
|
2433 |
-
var length = dependencies.length;
|
2434 |
-
|
2435 |
-
for (var i = 0; i < length; i++) {
|
2436 |
-
// apply arguments instead of spreading and mutate a local list of params for performance.
|
2437 |
-
params.push(dependencies[i].apply(null, arguments));
|
2438 |
-
}
|
2439 |
-
|
2440 |
-
// apply arguments instead of spreading for performance.
|
2441 |
-
return memoizedResultFunc.apply(null, params);
|
2442 |
-
});
|
2443 |
-
|
2444 |
-
selector.resultFunc = resultFunc;
|
2445 |
-
selector.recomputations = function () {
|
2446 |
-
return recomputations;
|
2447 |
-
};
|
2448 |
-
selector.resetRecomputations = function () {
|
2449 |
-
return recomputations = 0;
|
2450 |
-
};
|
2451 |
-
return selector;
|
2452 |
-
};
|
2453 |
-
}
|
2454 |
-
|
2455 |
-
var createSelector = exports.createSelector = createSelectorCreator(defaultMemoize);
|
2456 |
-
|
2457 |
-
function createStructuredSelector(selectors) {
|
2458 |
-
var selectorCreator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : createSelector;
|
2459 |
-
|
2460 |
-
if (typeof selectors !== 'object') {
|
2461 |
-
throw new Error('createStructuredSelector expects first argument to be an object ' + ('where each property is a selector, instead received a ' + typeof selectors));
|
2462 |
-
}
|
2463 |
-
var objectKeys = Object.keys(selectors);
|
2464 |
-
return selectorCreator(objectKeys.map(function (key) {
|
2465 |
-
return selectors[key];
|
2466 |
-
}), function () {
|
2467 |
-
for (var _len3 = arguments.length, values = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
2468 |
-
values[_key3] = arguments[_key3];
|
2469 |
-
}
|
2470 |
-
|
2471 |
-
return values.reduce(function (composition, value, index) {
|
2472 |
-
composition[objectKeys[index]] = value;
|
2473 |
-
return composition;
|
2474 |
-
}, {});
|
2475 |
-
});
|
2476 |
-
}
|
2477 |
-
|
2478 |
-
/***/ }),
|
2479 |
-
/* 40 */
|
2480 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2481 |
-
|
2482 |
-
// optional / simple context binding
|
2483 |
-
var aFunction = __webpack_require__(53);
|
2484 |
-
module.exports = function (fn, that, length) {
|
2485 |
-
aFunction(fn);
|
2486 |
-
if (that === undefined) return fn;
|
2487 |
-
switch (length) {
|
2488 |
-
case 1: return function (a) {
|
2489 |
-
return fn.call(that, a);
|
2490 |
-
};
|
2491 |
-
case 2: return function (a, b) {
|
2492 |
-
return fn.call(that, a, b);
|
2493 |
-
};
|
2494 |
-
case 3: return function (a, b, c) {
|
2495 |
-
return fn.call(that, a, b, c);
|
2496 |
-
};
|
2497 |
-
}
|
2498 |
-
return function (/* ...args */) {
|
2499 |
-
return fn.apply(that, arguments);
|
2500 |
-
};
|
2501 |
-
};
|
2502 |
-
|
2503 |
-
|
2504 |
-
/***/ }),
|
2505 |
-
/* 41 */
|
2506 |
-
/***/ (function(module, exports) {
|
2507 |
-
|
2508 |
-
module.exports = {};
|
2509 |
-
|
2510 |
-
|
2511 |
-
/***/ }),
|
2512 |
-
/* 42 */
|
2513 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2514 |
-
|
2515 |
-
var isFunction = __webpack_require__(93),
|
2516 |
-
isLength = __webpack_require__(87);
|
2517 |
-
|
2518 |
-
/**
|
2519 |
-
* Checks if `value` is array-like. A value is considered array-like if it's
|
2520 |
-
* not a function and has a `value.length` that's an integer greater than or
|
2521 |
-
* equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
|
2522 |
-
*
|
2523 |
-
* @static
|
2524 |
-
* @memberOf _
|
2525 |
-
* @since 4.0.0
|
2526 |
-
* @category Lang
|
2527 |
-
* @param {*} value The value to check.
|
2528 |
-
* @returns {boolean} Returns `true` if `value` is array-like, else `false`.
|
2529 |
-
* @example
|
2530 |
-
*
|
2531 |
-
* _.isArrayLike([1, 2, 3]);
|
2532 |
-
* // => true
|
2533 |
-
*
|
2534 |
-
* _.isArrayLike(document.body.children);
|
2535 |
-
* // => true
|
2536 |
-
*
|
2537 |
-
* _.isArrayLike('abc');
|
2538 |
-
* // => true
|
2539 |
-
*
|
2540 |
-
* _.isArrayLike(_.noop);
|
2541 |
-
* // => false
|
2542 |
-
*/
|
2543 |
-
function isArrayLike(value) {
|
2544 |
-
return value != null && isLength(value.length) && !isFunction(value);
|
2545 |
-
}
|
2546 |
-
|
2547 |
-
module.exports = isArrayLike;
|
2548 |
-
|
2549 |
-
|
2550 |
-
/***/ }),
|
2551 |
-
/* 43 */
|
2552 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2553 |
-
|
2554 |
-
var DataView = __webpack_require__(256),
|
2555 |
-
Map = __webpack_require__(84),
|
2556 |
-
Promise = __webpack_require__(257),
|
2557 |
-
Set = __webpack_require__(153),
|
2558 |
-
WeakMap = __webpack_require__(154),
|
2559 |
-
baseGetTag = __webpack_require__(21),
|
2560 |
-
toSource = __webpack_require__(138);
|
2561 |
-
|
2562 |
-
/** `Object#toString` result references. */
|
2563 |
-
var mapTag = '[object Map]',
|
2564 |
-
objectTag = '[object Object]',
|
2565 |
-
promiseTag = '[object Promise]',
|
2566 |
-
setTag = '[object Set]',
|
2567 |
-
weakMapTag = '[object WeakMap]';
|
2568 |
-
|
2569 |
-
var dataViewTag = '[object DataView]';
|
2570 |
-
|
2571 |
-
/** Used to detect maps, sets, and weakmaps. */
|
2572 |
-
var dataViewCtorString = toSource(DataView),
|
2573 |
-
mapCtorString = toSource(Map),
|
2574 |
-
promiseCtorString = toSource(Promise),
|
2575 |
-
setCtorString = toSource(Set),
|
2576 |
-
weakMapCtorString = toSource(WeakMap);
|
2577 |
-
|
2578 |
-
/**
|
2579 |
-
* Gets the `toStringTag` of `value`.
|
2580 |
-
*
|
2581 |
-
* @private
|
2582 |
-
* @param {*} value The value to query.
|
2583 |
-
* @returns {string} Returns the `toStringTag`.
|
2584 |
-
*/
|
2585 |
-
var getTag = baseGetTag;
|
2586 |
-
|
2587 |
-
// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.
|
2588 |
-
if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
|
2589 |
-
(Map && getTag(new Map) != mapTag) ||
|
2590 |
-
(Promise && getTag(Promise.resolve()) != promiseTag) ||
|
2591 |
-
(Set && getTag(new Set) != setTag) ||
|
2592 |
-
(WeakMap && getTag(new WeakMap) != weakMapTag)) {
|
2593 |
-
getTag = function(value) {
|
2594 |
-
var result = baseGetTag(value),
|
2595 |
-
Ctor = result == objectTag ? value.constructor : undefined,
|
2596 |
-
ctorString = Ctor ? toSource(Ctor) : '';
|
2597 |
-
|
2598 |
-
if (ctorString) {
|
2599 |
-
switch (ctorString) {
|
2600 |
-
case dataViewCtorString: return dataViewTag;
|
2601 |
-
case mapCtorString: return mapTag;
|
2602 |
-
case promiseCtorString: return promiseTag;
|
2603 |
-
case setCtorString: return setTag;
|
2604 |
-
case weakMapCtorString: return weakMapTag;
|
2605 |
-
}
|
2606 |
-
}
|
2607 |
-
return result;
|
2608 |
-
};
|
2609 |
-
}
|
2610 |
-
|
2611 |
-
module.exports = getTag;
|
2612 |
-
|
2613 |
-
|
2614 |
-
/***/ }),
|
2615 |
-
/* 44 */
|
2616 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2617 |
-
|
2618 |
-
var baseGet = __webpack_require__(143);
|
2619 |
-
|
2620 |
-
/**
|
2621 |
-
* Gets the value at `path` of `object`. If the resolved value is
|
2622 |
-
* `undefined`, the `defaultValue` is returned in its place.
|
2623 |
-
*
|
2624 |
-
* @static
|
2625 |
-
* @memberOf _
|
2626 |
-
* @since 3.7.0
|
2627 |
-
* @category Object
|
2628 |
-
* @param {Object} object The object to query.
|
2629 |
-
* @param {Array|string} path The path of the property to get.
|
2630 |
-
* @param {*} [defaultValue] The value returned for `undefined` resolved values.
|
2631 |
-
* @returns {*} Returns the resolved value.
|
2632 |
-
* @example
|
2633 |
-
*
|
2634 |
-
* var object = { 'a': [{ 'b': { 'c': 3 } }] };
|
2635 |
-
*
|
2636 |
-
* _.get(object, 'a[0].b.c');
|
2637 |
-
* // => 3
|
2638 |
-
*
|
2639 |
-
* _.get(object, ['a', '0', 'b', 'c']);
|
2640 |
-
* // => 3
|
2641 |
-
*
|
2642 |
-
* _.get(object, 'a.b.c', 'default');
|
2643 |
-
* // => 'default'
|
2644 |
-
*/
|
2645 |
-
function get(object, path, defaultValue) {
|
2646 |
-
var result = object == null ? undefined : baseGet(object, path);
|
2647 |
-
return result === undefined ? defaultValue : result;
|
2648 |
-
}
|
2649 |
-
|
2650 |
-
module.exports = get;
|
2651 |
-
|
2652 |
-
|
2653 |
-
/***/ }),
|
2654 |
-
/* 45 */
|
2655 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2656 |
-
|
2657 |
-
// to indexed object, toObject with fallback for non-array-like ES3 strings
|
2658 |
-
var IObject = __webpack_require__(132);
|
2659 |
-
var defined = __webpack_require__(79);
|
2660 |
-
module.exports = function (it) {
|
2661 |
-
return IObject(defined(it));
|
2662 |
-
};
|
2663 |
-
|
2664 |
-
|
2665 |
-
/***/ }),
|
2666 |
-
/* 46 */
|
2667 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2668 |
-
|
2669 |
-
var baseGetTag = __webpack_require__(21),
|
2670 |
-
isObjectLike = __webpack_require__(14);
|
2671 |
-
|
2672 |
-
/** `Object#toString` result references. */
|
2673 |
-
var symbolTag = '[object Symbol]';
|
2674 |
-
|
2675 |
-
/**
|
2676 |
-
* Checks if `value` is classified as a `Symbol` primitive or object.
|
2677 |
-
*
|
2678 |
-
* @static
|
2679 |
-
* @memberOf _
|
2680 |
-
* @since 4.0.0
|
2681 |
-
* @category Lang
|
2682 |
-
* @param {*} value The value to check.
|
2683 |
-
* @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
|
2684 |
-
* @example
|
2685 |
-
*
|
2686 |
-
* _.isSymbol(Symbol.iterator);
|
2687 |
-
* // => true
|
2688 |
-
*
|
2689 |
-
* _.isSymbol('abc');
|
2690 |
-
* // => false
|
2691 |
-
*/
|
2692 |
-
function isSymbol(value) {
|
2693 |
-
return typeof value == 'symbol' ||
|
2694 |
-
(isObjectLike(value) && baseGetTag(value) == symbolTag);
|
2695 |
-
}
|
2696 |
-
|
2697 |
-
module.exports = isSymbol;
|
2698 |
-
|
2699 |
-
|
2700 |
-
/***/ }),
|
2701 |
-
/* 47 */
|
2702 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2703 |
-
|
2704 |
-
var isSymbol = __webpack_require__(46);
|
2705 |
-
|
2706 |
-
/** Used as references for various `Number` constants. */
|
2707 |
-
var INFINITY = 1 / 0;
|
2708 |
-
|
2709 |
-
/**
|
2710 |
-
* Converts `value` to a string key if it's not a string or symbol.
|
2711 |
-
*
|
2712 |
-
* @private
|
2713 |
-
* @param {*} value The value to inspect.
|
2714 |
-
* @returns {string|symbol} Returns the key.
|
2715 |
-
*/
|
2716 |
-
function toKey(value) {
|
2717 |
-
if (typeof value == 'string' || isSymbol(value)) {
|
2718 |
-
return value;
|
2719 |
-
}
|
2720 |
-
var result = (value + '');
|
2721 |
-
return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
|
2722 |
-
}
|
2723 |
-
|
2724 |
-
module.exports = toKey;
|
2725 |
-
|
2726 |
-
|
2727 |
-
/***/ }),
|
2728 |
-
/* 48 */
|
2729 |
-
/***/ (function(module, exports) {
|
2730 |
-
|
2731 |
-
var toString = {}.toString;
|
2732 |
-
|
2733 |
-
module.exports = function (it) {
|
2734 |
-
return toString.call(it).slice(8, -1);
|
2735 |
-
};
|
2736 |
-
|
2737 |
-
|
2738 |
-
/***/ }),
|
2739 |
-
/* 49 */
|
2740 |
-
/***/ (function(module, exports) {
|
2741 |
-
|
2742 |
-
module.exports = true;
|
2743 |
-
|
2744 |
-
|
2745 |
-
/***/ }),
|
2746 |
-
/* 50 */
|
2747 |
-
/***/ (function(module, exports) {
|
2748 |
-
|
2749 |
-
module.exports = function (exec) {
|
2750 |
-
try {
|
2751 |
-
return !!exec();
|
2752 |
-
} catch (e) {
|
2753 |
-
return true;
|
2754 |
-
}
|
2755 |
-
};
|
2756 |
-
|
2757 |
-
|
2758 |
-
/***/ }),
|
2759 |
-
/* 51 */
|
2760 |
-
/***/ (function(module, exports) {
|
2761 |
-
|
2762 |
-
module.exports = function (bitmap, value) {
|
2763 |
-
return {
|
2764 |
-
enumerable: !(bitmap & 1),
|
2765 |
-
configurable: !(bitmap & 2),
|
2766 |
-
writable: !(bitmap & 4),
|
2767 |
-
value: value
|
2768 |
-
};
|
2769 |
-
};
|
2770 |
-
|
2771 |
-
|
2772 |
-
/***/ }),
|
2773 |
-
/* 52 */
|
2774 |
-
/***/ (function(module, exports) {
|
2775 |
-
|
2776 |
-
/**
|
2777 |
-
* This method returns the first argument it receives.
|
2778 |
-
*
|
2779 |
-
* @static
|
2780 |
-
* @since 0.1.0
|
2781 |
-
* @memberOf _
|
2782 |
-
* @category Util
|
2783 |
-
* @param {*} value Any value.
|
2784 |
-
* @returns {*} Returns `value`.
|
2785 |
-
* @example
|
2786 |
-
*
|
2787 |
-
* var object = { 'a': 1 };
|
2788 |
-
*
|
2789 |
-
* console.log(_.identity(object) === object);
|
2790 |
-
* // => true
|
2791 |
-
*/
|
2792 |
-
function identity(value) {
|
2793 |
-
return value;
|
2794 |
-
}
|
2795 |
-
|
2796 |
-
module.exports = identity;
|
2797 |
-
|
2798 |
-
|
2799 |
-
/***/ }),
|
2800 |
-
/* 53 */
|
2801 |
-
/***/ (function(module, exports) {
|
2802 |
-
|
2803 |
-
module.exports = function (it) {
|
2804 |
-
if (typeof it != 'function') throw TypeError(it + ' is not a function!');
|
2805 |
-
return it;
|
2806 |
-
};
|
2807 |
-
|
2808 |
-
|
2809 |
-
/***/ }),
|
2810 |
-
/* 54 */
|
2811 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2812 |
-
|
2813 |
-
var getNative = __webpack_require__(25);
|
2814 |
-
|
2815 |
-
/* Built-in method references that are verified to be native. */
|
2816 |
-
var nativeCreate = getNative(Object, 'create');
|
2817 |
-
|
2818 |
-
module.exports = nativeCreate;
|
2819 |
-
|
2820 |
-
|
2821 |
-
/***/ }),
|
2822 |
-
/* 55 */
|
2823 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2824 |
-
|
2825 |
-
var listCacheClear = __webpack_require__(231),
|
2826 |
-
listCacheDelete = __webpack_require__(232),
|
2827 |
-
listCacheGet = __webpack_require__(233),
|
2828 |
-
listCacheHas = __webpack_require__(234),
|
2829 |
-
listCacheSet = __webpack_require__(235);
|
2830 |
-
|
2831 |
-
/**
|
2832 |
-
* Creates an list cache object.
|
2833 |
-
*
|
2834 |
-
* @private
|
2835 |
-
* @constructor
|
2836 |
-
* @param {Array} [entries] The key-value pairs to cache.
|
2837 |
-
*/
|
2838 |
-
function ListCache(entries) {
|
2839 |
-
var index = -1,
|
2840 |
-
length = entries == null ? 0 : entries.length;
|
2841 |
-
|
2842 |
-
this.clear();
|
2843 |
-
while (++index < length) {
|
2844 |
-
var entry = entries[index];
|
2845 |
-
this.set(entry[0], entry[1]);
|
2846 |
-
}
|
2847 |
-
}
|
2848 |
-
|
2849 |
-
// Add methods to `ListCache`.
|
2850 |
-
ListCache.prototype.clear = listCacheClear;
|
2851 |
-
ListCache.prototype['delete'] = listCacheDelete;
|
2852 |
-
ListCache.prototype.get = listCacheGet;
|
2853 |
-
ListCache.prototype.has = listCacheHas;
|
2854 |
-
ListCache.prototype.set = listCacheSet;
|
2855 |
-
|
2856 |
-
module.exports = ListCache;
|
2857 |
-
|
2858 |
-
|
2859 |
-
/***/ }),
|
2860 |
-
/* 56 */
|
2861 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2862 |
-
|
2863 |
-
var eq = __webpack_require__(70);
|
2864 |
-
|
2865 |
-
/**
|
2866 |
-
* Gets the index at which the `key` is found in `array` of key-value pairs.
|
2867 |
-
*
|
2868 |
-
* @private
|
2869 |
-
* @param {Array} array The array to inspect.
|
2870 |
-
* @param {*} key The key to search for.
|
2871 |
-
* @returns {number} Returns the index of the matched value, else `-1`.
|
2872 |
-
*/
|
2873 |
-
function assocIndexOf(array, key) {
|
2874 |
-
var length = array.length;
|
2875 |
-
while (length--) {
|
2876 |
-
if (eq(array[length][0], key)) {
|
2877 |
-
return length;
|
2878 |
-
}
|
2879 |
-
}
|
2880 |
-
return -1;
|
2881 |
-
}
|
2882 |
-
|
2883 |
-
module.exports = assocIndexOf;
|
2884 |
-
|
2885 |
-
|
2886 |
-
/***/ }),
|
2887 |
-
/* 57 */
|
2888 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2889 |
-
|
2890 |
-
var isKeyable = __webpack_require__(237);
|
2891 |
-
|
2892 |
-
/**
|
2893 |
-
* Gets the data for `map`.
|
2894 |
-
*
|
2895 |
-
* @private
|
2896 |
-
* @param {Object} map The map to query.
|
2897 |
-
* @param {string} key The reference key.
|
2898 |
-
* @returns {*} Returns the map data.
|
2899 |
-
*/
|
2900 |
-
function getMapData(map, key) {
|
2901 |
-
var data = map.__data__;
|
2902 |
-
return isKeyable(key)
|
2903 |
-
? data[typeof key == 'string' ? 'string' : 'hash']
|
2904 |
-
: data.map;
|
2905 |
-
}
|
2906 |
-
|
2907 |
-
module.exports = getMapData;
|
2908 |
-
|
2909 |
-
|
2910 |
-
/***/ }),
|
2911 |
-
/* 58 */
|
2912 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2913 |
-
|
2914 |
-
var baseIsArguments = __webpack_require__(246),
|
2915 |
-
isObjectLike = __webpack_require__(14);
|
2916 |
-
|
2917 |
-
/** Used for built-in method references. */
|
2918 |
-
var objectProto = Object.prototype;
|
2919 |
-
|
2920 |
-
/** Used to check objects for own properties. */
|
2921 |
-
var hasOwnProperty = objectProto.hasOwnProperty;
|
2922 |
-
|
2923 |
-
/** Built-in value references. */
|
2924 |
-
var propertyIsEnumerable = objectProto.propertyIsEnumerable;
|
2925 |
-
|
2926 |
-
/**
|
2927 |
-
* Checks if `value` is likely an `arguments` object.
|
2928 |
-
*
|
2929 |
-
* @static
|
2930 |
-
* @memberOf _
|
2931 |
-
* @since 0.1.0
|
2932 |
-
* @category Lang
|
2933 |
-
* @param {*} value The value to check.
|
2934 |
-
* @returns {boolean} Returns `true` if `value` is an `arguments` object,
|
2935 |
-
* else `false`.
|
2936 |
-
* @example
|
2937 |
-
*
|
2938 |
-
* _.isArguments(function() { return arguments; }());
|
2939 |
-
* // => true
|
2940 |
-
*
|
2941 |
-
* _.isArguments([1, 2, 3]);
|
2942 |
-
* // => false
|
2943 |
-
*/
|
2944 |
-
var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
|
2945 |
-
return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
|
2946 |
-
!propertyIsEnumerable.call(value, 'callee');
|
2947 |
-
};
|
2948 |
-
|
2949 |
-
module.exports = isArguments;
|
2950 |
-
|
2951 |
-
|
2952 |
-
/***/ }),
|
2953 |
-
/* 59 */
|
2954 |
-
/***/ (function(module, exports, __webpack_require__) {
|
2955 |
-
|
2956 |
-
/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(11),
|
2957 |
-
stubFalse = __webpack_require__(247);
|
2958 |
-
|
2959 |
-
/** Detect free variable `exports`. */
|
2960 |
-
var freeExports = true && exports && !exports.nodeType && exports;
|
2961 |
-
|
2962 |
-
/** Detect free variable `module`. */
|
2963 |
-
var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
|
2964 |
-
|
2965 |
-
/** Detect the popular CommonJS extension `module.exports`. */
|
2966 |
-
var moduleExports = freeModule && freeModule.exports === freeExports;
|
2967 |
-
|
2968 |
-
/** Built-in value references. */
|
2969 |
-
var Buffer = moduleExports ? root.Buffer : undefined;
|
2970 |
-
|
2971 |
-
/* Built-in method references for those with the same name as other `lodash` methods. */
|
2972 |
-
var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;
|
2973 |
-
|
2974 |
-
/**
|
2975 |
-
* Checks if `value` is a buffer.
|
2976 |
-
*
|
2977 |
-
* @static
|
2978 |
-
* @memberOf _
|
2979 |
-
* @since 4.3.0
|
2980 |
-
* @category Lang
|
2981 |
-
* @param {*} value The value to check.
|
2982 |
-
* @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
|
2983 |
-
* @example
|
2984 |
-
*
|
2985 |
-
* _.isBuffer(new Buffer(2));
|
2986 |
-
* // => true
|
2987 |
-
*
|
2988 |
-
* _.isBuffer(new Uint8Array(2));
|
2989 |
-
* // => false
|
2990 |
-
*/
|
2991 |
-
var isBuffer = nativeIsBuffer || stubFalse;
|
2992 |
-
|
2993 |
-
module.exports = isBuffer;
|
2994 |
-
|
2995 |
-
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(66)(module)))
|
2996 |
-
|
2997 |
-
/***/ }),
|
2998 |
-
/* 60 */
|
2999 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
3000 |
-
|
3001 |
-
"use strict";
|
3002 |
-
__webpack_require__.r(__webpack_exports__);
|
3003 |
-
var types_namespaceObject = {};
|
3004 |
-
__webpack_require__.r(types_namespaceObject);
|
3005 |
-
__webpack_require__.d(types_namespaceObject, "ADD_PLUGIN", function() { return ADD_PLUGIN; });
|
3006 |
-
__webpack_require__.d(types_namespaceObject, "REMOVE_PLUGIN", function() { return REMOVE_PLUGIN; });
|
3007 |
-
var actions_namespaceObject = {};
|
3008 |
-
__webpack_require__.r(actions_namespaceObject);
|
3009 |
-
__webpack_require__.d(actions_namespaceObject, "addPlugin", function() { return actions_addPlugin; });
|
3010 |
-
__webpack_require__.d(actions_namespaceObject, "removePlugin", function() { return actions_removePlugin; });
|
3011 |
-
var selectors_namespaceObject = {};
|
3012 |
-
__webpack_require__.r(selectors_namespaceObject);
|
3013 |
-
__webpack_require__.d(selectors_namespaceObject, "getPlugins", function() { return getPlugins; });
|
3014 |
-
__webpack_require__.d(selectors_namespaceObject, "hasPlugin", function() { return hasPlugin; });
|
3015 |
-
var constants_namespaceObject = {};
|
3016 |
-
__webpack_require__.r(constants_namespaceObject);
|
3017 |
-
__webpack_require__.d(constants_namespaceObject, "EVENTS_PLUGIN", function() { return EVENTS_PLUGIN; });
|
3018 |
-
__webpack_require__.d(constants_namespaceObject, "EVENTS_PRO_PLUGIN", function() { return EVENTS_PRO_PLUGIN; });
|
3019 |
-
__webpack_require__.d(constants_namespaceObject, "TICKETS", function() { return TICKETS; });
|
3020 |
-
__webpack_require__.d(constants_namespaceObject, "TICKETS_PLUS", function() { return TICKETS_PLUS; });
|
3021 |
-
var proptypes_namespaceObject = {};
|
3022 |
-
__webpack_require__.r(proptypes_namespaceObject);
|
3023 |
-
__webpack_require__.d(proptypes_namespaceObject, "ReactSelectOption", function() { return ReactSelectOption; });
|
3024 |
-
__webpack_require__.d(proptypes_namespaceObject, "ReactSelectOptions", function() { return ReactSelectOptions; });
|
3025 |
-
|
3026 |
-
// EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/toConsumableArray.js
|
3027 |
-
var toConsumableArray = __webpack_require__(33);
|
3028 |
-
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
|
3029 |
-
|
3030 |
-
// EXTERNAL MODULE: ./node_modules/lodash/uniq.js
|
3031 |
-
var uniq = __webpack_require__(198);
|
3032 |
-
var uniq_default = /*#__PURE__*/__webpack_require__.n(uniq);
|
3033 |
-
|
3034 |
-
// CONCATENATED MODULE: ./src/modules/data/plugins/reducer.js
|
3035 |
-
|
3036 |
-
/**
|
3037 |
-
* External dependencies
|
3038 |
-
*/
|
3039 |
-
|
3040 |
-
/**
|
3041 |
-
* Internal dependencies
|
3042 |
-
*/
|
3043 |
-
|
3044 |
-
|
3045 |
-
/* harmony default export */ var reducer = (function () {
|
3046 |
-
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
3047 |
-
var action = arguments[1];
|
3048 |
-
|
3049 |
-
switch (action.type) {
|
3050 |
-
case types_namespaceObject.ADD_PLUGIN:
|
3051 |
-
return uniq_default()([].concat(toConsumableArray_default()(state), [action.payload.name]));
|
3052 |
-
case types_namespaceObject.REMOVE_PLUGIN:
|
3053 |
-
return [].concat(toConsumableArray_default()(state)).filter(function (pluginName) {
|
3054 |
-
return pluginName !== action.payload.name;
|
3055 |
-
});
|
3056 |
-
default:
|
3057 |
-
return state;
|
3058 |
-
}
|
3059 |
-
});
|
3060 |
-
// EXTERNAL MODULE: ./src/modules/data/utils.js
|
3061 |
-
var utils = __webpack_require__(13);
|
3062 |
-
|
3063 |
-
// CONCATENATED MODULE: ./src/modules/data/plugins/types.js
|
3064 |
-
/**
|
3065 |
-
* Internal dependencies
|
3066 |
-
*/
|
3067 |
-
|
3068 |
-
|
3069 |
-
var ADD_PLUGIN = utils["a" /* PREFIX_COMMON_STORE */] + '/ADD_PLUGIN';
|
3070 |
-
var REMOVE_PLUGIN = utils["a" /* PREFIX_COMMON_STORE */] + '/REMOVE_PLUGIN';
|
3071 |
-
// CONCATENATED MODULE: ./src/modules/data/plugins/actions.js
|
3072 |
-
/**
|
3073 |
-
* Internal dependencies
|
3074 |
-
*/
|
3075 |
-
|
3076 |
-
|
3077 |
-
var actions_addPlugin = function addPlugin(name) {
|
3078 |
-
return {
|
3079 |
-
type: ADD_PLUGIN,
|
3080 |
-
payload: {
|
3081 |
-
name: name
|
3082 |
-
}
|
3083 |
-
};
|
3084 |
-
};
|
3085 |
-
|
3086 |
-
var actions_removePlugin = function removePlugin(name) {
|
3087 |
-
return {
|
3088 |
-
type: REMOVE_PLUGIN,
|
3089 |
-
payload: {
|
3090 |
-
name: name
|
3091 |
-
}
|
3092 |
-
};
|
3093 |
-
};
|
3094 |
-
// EXTERNAL MODULE: ./node_modules/lodash/fp/curry.js
|
3095 |
-
var curry = __webpack_require__(199);
|
3096 |
-
var curry_default = /*#__PURE__*/__webpack_require__.n(curry);
|
3097 |
-
|
3098 |
-
// EXTERNAL MODULE: ./node_modules/lodash/includes.js
|
3099 |
-
var includes = __webpack_require__(127);
|
3100 |
-
var includes_default = /*#__PURE__*/__webpack_require__.n(includes);
|
3101 |
-
|
3102 |
-
// CONCATENATED MODULE: ./src/modules/data/plugins/selectors.js
|
3103 |
-
|
3104 |
-
/**
|
3105 |
-
* External dependencies
|
3106 |
-
*/
|
3107 |
-
|
3108 |
-
var getPlugins = function getPlugins(state) {
|
3109 |
-
return state.plugins;
|
3110 |
-
};
|
3111 |
-
|
3112 |
-
var hasPlugin = curry_default()(function (state, plugin) {
|
3113 |
-
return includes_default()(getPlugins(state), plugin);
|
3114 |
-
});
|
3115 |
-
// CONCATENATED MODULE: ./src/modules/data/plugins/constants.js
|
3116 |
-
var EVENTS_PLUGIN = 'events';
|
3117 |
-
var EVENTS_PRO_PLUGIN = 'events-pro';
|
3118 |
-
var TICKETS = 'tickets';
|
3119 |
-
var TICKETS_PLUS = 'tickets-plus';
|
3120 |
-
// EXTERNAL MODULE: ./node_modules/prop-types/index.js
|
3121 |
-
var prop_types = __webpack_require__(0);
|
3122 |
-
var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
|
3123 |
-
|
3124 |
-
// CONCATENATED MODULE: ./src/modules/data/plugins/proptypes.js
|
3125 |
-
/**
|
3126 |
-
* External Dependencies
|
3127 |
-
*/
|
3128 |
-
|
3129 |
-
|
3130 |
-
//
|
3131 |
-
// ─── VENDOR ─────────────────────────────────────────────────────────────────────
|
3132 |
-
//
|
3133 |
-
|
3134 |
-
var ReactSelectOption = prop_types_default.a.shape({
|
3135 |
-
label: prop_types_default.a.string.isRequired,
|
3136 |
-
value: prop_types_default.a.any.isRequired
|
3137 |
-
});
|
3138 |
-
|
3139 |
-
var ReactSelectOptions = prop_types_default.a.arrayOf(ReactSelectOption);
|
3140 |
-
// CONCATENATED MODULE: ./src/modules/data/plugins/index.js
|
3141 |
-
/* concated harmony reexport types */__webpack_require__.d(__webpack_exports__, "types", function() { return types_namespaceObject; });
|
3142 |
-
/* concated harmony reexport actions */__webpack_require__.d(__webpack_exports__, "actions", function() { return actions_namespaceObject; });
|
3143 |
-
/* concated harmony reexport selectors */__webpack_require__.d(__webpack_exports__, "selectors", function() { return selectors_namespaceObject; });
|
3144 |
-
/* concated harmony reexport constants */__webpack_require__.d(__webpack_exports__, "constants", function() { return constants_namespaceObject; });
|
3145 |
-
/* concated harmony reexport proptypes */__webpack_require__.d(__webpack_exports__, "proptypes", function() { return proptypes_namespaceObject; });
|
3146 |
-
/**
|
3147 |
-
* Internal dependencies
|
3148 |
-
*/
|
3149 |
-
|
3150 |
-
|
3151 |
-
|
3152 |
-
|
3153 |
-
|
3154 |
-
|
3155 |
-
|
3156 |
-
/* harmony default export */ var plugins = __webpack_exports__["default"] = (reducer);
|
3157 |
-
|
3158 |
-
|
3159 |
-
/***/ }),
|
3160 |
-
/* 61 */
|
3161 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3162 |
-
|
3163 |
-
"use strict";
|
3164 |
-
|
3165 |
-
var $at = __webpack_require__(210)(true);
|
3166 |
-
|
3167 |
-
// 21.1.3.27 String.prototype[@@iterator]()
|
3168 |
-
__webpack_require__(131)(String, 'String', function (iterated) {
|
3169 |
-
this._t = String(iterated); // target
|
3170 |
-
this._i = 0; // next index
|
3171 |
-
// 21.1.5.2.1 %StringIteratorPrototype%.next()
|
3172 |
-
}, function () {
|
3173 |
-
var O = this._t;
|
3174 |
-
var index = this._i;
|
3175 |
-
var point;
|
3176 |
-
if (index >= O.length) return { value: undefined, done: true };
|
3177 |
-
point = $at(O, index);
|
3178 |
-
this._i += point.length;
|
3179 |
-
return { value: point, done: false };
|
3180 |
-
});
|
3181 |
-
|
3182 |
-
|
3183 |
-
/***/ }),
|
3184 |
-
/* 62 */
|
3185 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3186 |
-
|
3187 |
-
var def = __webpack_require__(23).f;
|
3188 |
-
var has = __webpack_require__(36);
|
3189 |
-
var TAG = __webpack_require__(12)('toStringTag');
|
3190 |
-
|
3191 |
-
module.exports = function (it, tag, stat) {
|
3192 |
-
if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
|
3193 |
-
};
|
3194 |
-
|
3195 |
-
|
3196 |
-
/***/ }),
|
3197 |
-
/* 63 */
|
3198 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3199 |
-
|
3200 |
-
// 7.1.13 ToObject(argument)
|
3201 |
-
var defined = __webpack_require__(79);
|
3202 |
-
module.exports = function (it) {
|
3203 |
-
return Object(defined(it));
|
3204 |
-
};
|
3205 |
-
|
3206 |
-
|
3207 |
-
/***/ }),
|
3208 |
-
/* 64 */
|
3209 |
-
/***/ (function(module, exports) {
|
3210 |
-
|
3211 |
-
/** Used for built-in method references. */
|
3212 |
-
var objectProto = Object.prototype;
|
3213 |
-
|
3214 |
-
/**
|
3215 |
-
* Checks if `value` is likely a prototype object.
|
3216 |
-
*
|
3217 |
-
* @private
|
3218 |
-
* @param {*} value The value to check.
|
3219 |
-
* @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
|
3220 |
-
*/
|
3221 |
-
function isPrototype(value) {
|
3222 |
-
var Ctor = value && value.constructor,
|
3223 |
-
proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
|
3224 |
-
|
3225 |
-
return value === proto;
|
3226 |
-
}
|
3227 |
-
|
3228 |
-
module.exports = isPrototype;
|
3229 |
-
|
3230 |
-
|
3231 |
-
/***/ }),
|
3232 |
-
/* 65 */,
|
3233 |
-
/* 66 */
|
3234 |
-
/***/ (function(module, exports) {
|
3235 |
-
|
3236 |
-
module.exports = function(module) {
|
3237 |
-
if (!module.webpackPolyfill) {
|
3238 |
-
module.deprecate = function() {};
|
3239 |
-
module.paths = [];
|
3240 |
-
// module.parent = undefined by default
|
3241 |
-
if (!module.children) module.children = [];
|
3242 |
-
Object.defineProperty(module, "loaded", {
|
3243 |
-
enumerable: true,
|
3244 |
-
get: function() {
|
3245 |
-
return module.l;
|
3246 |
-
}
|
3247 |
-
});
|
3248 |
-
Object.defineProperty(module, "id", {
|
3249 |
-
enumerable: true,
|
3250 |
-
get: function() {
|
3251 |
-
return module.i;
|
3252 |
-
}
|
3253 |
-
});
|
3254 |
-
module.webpackPolyfill = 1;
|
3255 |
-
}
|
3256 |
-
return module;
|
3257 |
-
};
|
3258 |
-
|
3259 |
-
|
3260 |
-
/***/ }),
|
3261 |
-
/* 67 */
|
3262 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3263 |
-
|
3264 |
-
module.exports = __webpack_require__(282);
|
3265 |
-
|
3266 |
-
|
3267 |
-
/***/ }),
|
3268 |
-
/* 68 */
|
3269 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3270 |
-
|
3271 |
-
// 19.1.2.14 / 15.2.3.14 Object.keys(O)
|
3272 |
-
var $keys = __webpack_require__(168);
|
3273 |
-
var enumBugKeys = __webpack_require__(102);
|
3274 |
-
|
3275 |
-
module.exports = Object.keys || function keys(O) {
|
3276 |
-
return $keys(O, enumBugKeys);
|
3277 |
-
};
|
3278 |
-
|
3279 |
-
|
3280 |
-
/***/ }),
|
3281 |
-
/* 69 */
|
3282 |
-
/***/ (function(module, exports) {
|
3283 |
-
|
3284 |
-
var id = 0;
|
3285 |
-
var px = Math.random();
|
3286 |
-
module.exports = function (key) {
|
3287 |
-
return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
|
3288 |
-
};
|
3289 |
-
|
3290 |
-
|
3291 |
-
/***/ }),
|
3292 |
-
/* 70 */
|
3293 |
-
/***/ (function(module, exports) {
|
3294 |
-
|
3295 |
-
/**
|
3296 |
-
* Performs a
|
3297 |
-
* [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
|
3298 |
-
* comparison between two values to determine if they are equivalent.
|
3299 |
-
*
|
3300 |
-
* @static
|
3301 |
-
* @memberOf _
|
3302 |
-
* @since 4.0.0
|
3303 |
-
* @category Lang
|
3304 |
-
* @param {*} value The value to compare.
|
3305 |
-
* @param {*} other The other value to compare.
|
3306 |
-
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
|
3307 |
-
* @example
|
3308 |
-
*
|
3309 |
-
* var object = { 'a': 1 };
|
3310 |
-
* var other = { 'a': 1 };
|
3311 |
-
*
|
3312 |
-
* _.eq(object, object);
|
3313 |
-
* // => true
|
3314 |
-
*
|
3315 |
-
* _.eq(object, other);
|
3316 |
-
* // => false
|
3317 |
-
*
|
3318 |
-
* _.eq('a', 'a');
|
3319 |
-
* // => true
|
3320 |
-
*
|
3321 |
-
* _.eq('a', Object('a'));
|
3322 |
-
* // => false
|
3323 |
-
*
|
3324 |
-
* _.eq(NaN, NaN);
|
3325 |
-
* // => true
|
3326 |
-
*/
|
3327 |
-
function eq(value, other) {
|
3328 |
-
return value === other || (value !== value && other !== other);
|
3329 |
-
}
|
3330 |
-
|
3331 |
-
module.exports = eq;
|
3332 |
-
|
3333 |
-
|
3334 |
-
/***/ }),
|
3335 |
-
/* 71 */
|
3336 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3337 |
-
|
3338 |
-
var baseCreate = __webpack_require__(72),
|
3339 |
-
isObject = __webpack_require__(18);
|
3340 |
-
|
3341 |
-
/**
|
3342 |
-
* Creates a function that produces an instance of `Ctor` regardless of
|
3343 |
-
* whether it was invoked as part of a `new` expression or by `call` or `apply`.
|
3344 |
-
*
|
3345 |
-
* @private
|
3346 |
-
* @param {Function} Ctor The constructor to wrap.
|
3347 |
-
* @returns {Function} Returns the new wrapped function.
|
3348 |
-
*/
|
3349 |
-
function createCtor(Ctor) {
|
3350 |
-
return function() {
|
3351 |
-
// Use a `switch` statement to work with class constructors. See
|
3352 |
-
// http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist
|
3353 |
-
// for more details.
|
3354 |
-
var args = arguments;
|
3355 |
-
switch (args.length) {
|
3356 |
-
case 0: return new Ctor;
|
3357 |
-
case 1: return new Ctor(args[0]);
|
3358 |
-
case 2: return new Ctor(args[0], args[1]);
|
3359 |
-
case 3: return new Ctor(args[0], args[1], args[2]);
|
3360 |
-
case 4: return new Ctor(args[0], args[1], args[2], args[3]);
|
3361 |
-
case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);
|
3362 |
-
case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);
|
3363 |
-
case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
|
3364 |
-
}
|
3365 |
-
var thisBinding = baseCreate(Ctor.prototype),
|
3366 |
-
result = Ctor.apply(thisBinding, args);
|
3367 |
-
|
3368 |
-
// Mimic the constructor's `return` behavior.
|
3369 |
-
// See https://es5.github.io/#x13.2.2 for more details.
|
3370 |
-
return isObject(result) ? result : thisBinding;
|
3371 |
-
};
|
3372 |
-
}
|
3373 |
-
|
3374 |
-
module.exports = createCtor;
|
3375 |
-
|
3376 |
-
|
3377 |
-
/***/ }),
|
3378 |
-
/* 72 */
|
3379 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3380 |
-
|
3381 |
-
var isObject = __webpack_require__(18);
|
3382 |
-
|
3383 |
-
/** Built-in value references. */
|
3384 |
-
var objectCreate = Object.create;
|
3385 |
-
|
3386 |
-
/**
|
3387 |
-
* The base implementation of `_.create` without support for assigning
|
3388 |
-
* properties to the created object.
|
3389 |
-
*
|
3390 |
-
* @private
|
3391 |
-
* @param {Object} proto The object to inherit from.
|
3392 |
-
* @returns {Object} Returns the new object.
|
3393 |
-
*/
|
3394 |
-
var baseCreate = (function() {
|
3395 |
-
function object() {}
|
3396 |
-
return function(proto) {
|
3397 |
-
if (!isObject(proto)) {
|
3398 |
-
return {};
|
3399 |
-
}
|
3400 |
-
if (objectCreate) {
|
3401 |
-
return objectCreate(proto);
|
3402 |
-
}
|
3403 |
-
object.prototype = proto;
|
3404 |
-
var result = new object;
|
3405 |
-
object.prototype = undefined;
|
3406 |
-
return result;
|
3407 |
-
};
|
3408 |
-
}());
|
3409 |
-
|
3410 |
-
module.exports = baseCreate;
|
3411 |
-
|
3412 |
-
|
3413 |
-
/***/ }),
|
3414 |
-
/* 73 */
|
3415 |
-
/***/ (function(module, exports) {
|
3416 |
-
|
3417 |
-
/**
|
3418 |
-
* Copies the values of `source` to `array`.
|
3419 |
-
*
|
3420 |
-
* @private
|
3421 |
-
* @param {Array} source The array to copy values from.
|
3422 |
-
* @param {Array} [array=[]] The array to copy values to.
|
3423 |
-
* @returns {Array} Returns `array`.
|
3424 |
-
*/
|
3425 |
-
function copyArray(source, array) {
|
3426 |
-
var index = -1,
|
3427 |
-
length = source.length;
|
3428 |
-
|
3429 |
-
array || (array = Array(length));
|
3430 |
-
while (++index < length) {
|
3431 |
-
array[index] = source[index];
|
3432 |
-
}
|
3433 |
-
return array;
|
3434 |
-
}
|
3435 |
-
|
3436 |
-
module.exports = copyArray;
|
3437 |
-
|
3438 |
-
|
3439 |
-
/***/ }),
|
3440 |
-
/* 74 */
|
3441 |
-
/***/ (function(module, exports) {
|
3442 |
-
|
3443 |
-
/** Used as references for various `Number` constants. */
|
3444 |
-
var MAX_SAFE_INTEGER = 9007199254740991;
|
3445 |
-
|
3446 |
-
/** Used to detect unsigned integer values. */
|
3447 |
-
var reIsUint = /^(?:0|[1-9]\d*)$/;
|
3448 |
-
|
3449 |
-
/**
|
3450 |
-
* Checks if `value` is a valid array-like index.
|
3451 |
-
*
|
3452 |
-
* @private
|
3453 |
-
* @param {*} value The value to check.
|
3454 |
-
* @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
|
3455 |
-
* @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
|
3456 |
-
*/
|
3457 |
-
function isIndex(value, length) {
|
3458 |
-
var type = typeof value;
|
3459 |
-
length = length == null ? MAX_SAFE_INTEGER : length;
|
3460 |
-
|
3461 |
-
return !!length &&
|
3462 |
-
(type == 'number' ||
|
3463 |
-
(type != 'symbol' && reIsUint.test(value))) &&
|
3464 |
-
(value > -1 && value % 1 == 0 && value < length);
|
3465 |
-
}
|
3466 |
-
|
3467 |
-
module.exports = isIndex;
|
3468 |
-
|
3469 |
-
|
3470 |
-
/***/ }),
|
3471 |
-
/* 75 */
|
3472 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3473 |
-
|
3474 |
-
var assignValue = __webpack_require__(190),
|
3475 |
-
baseAssignValue = __webpack_require__(191);
|
3476 |
-
|
3477 |
-
/**
|
3478 |
-
* Copies properties of `source` to `object`.
|
3479 |
-
*
|
3480 |
-
* @private
|
3481 |
-
* @param {Object} source The object to copy properties from.
|
3482 |
-
* @param {Array} props The property identifiers to copy.
|
3483 |
-
* @param {Object} [object={}] The object to copy properties to.
|
3484 |
-
* @param {Function} [customizer] The function to customize copied values.
|
3485 |
-
* @returns {Object} Returns `object`.
|
3486 |
-
*/
|
3487 |
-
function copyObject(source, props, object, customizer) {
|
3488 |
-
var isNew = !object;
|
3489 |
-
object || (object = {});
|
3490 |
-
|
3491 |
-
var index = -1,
|
3492 |
-
length = props.length;
|
3493 |
-
|
3494 |
-
while (++index < length) {
|
3495 |
-
var key = props[index];
|
3496 |
-
|
3497 |
-
var newValue = customizer
|
3498 |
-
? customizer(object[key], source[key], key, object, source)
|
3499 |
-
: undefined;
|
3500 |
-
|
3501 |
-
if (newValue === undefined) {
|
3502 |
-
newValue = source[key];
|
3503 |
-
}
|
3504 |
-
if (isNew) {
|
3505 |
-
baseAssignValue(object, key, newValue);
|
3506 |
-
} else {
|
3507 |
-
assignValue(object, key, newValue);
|
3508 |
-
}
|
3509 |
-
}
|
3510 |
-
return object;
|
3511 |
-
}
|
3512 |
-
|
3513 |
-
module.exports = copyObject;
|
3514 |
-
|
3515 |
-
|
3516 |
-
/***/ }),
|
3517 |
-
/* 76 */
|
3518 |
-
/***/ (function(module, exports) {
|
3519 |
-
|
3520 |
-
/**
|
3521 |
-
* A specialized version of `_.map` for arrays without support for iteratee
|
3522 |
-
* shorthands.
|
3523 |
-
*
|
3524 |
-
* @private
|
3525 |
-
* @param {Array} [array] The array to iterate over.
|
3526 |
-
* @param {Function} iteratee The function invoked per iteration.
|
3527 |
-
* @returns {Array} Returns the new mapped array.
|
3528 |
-
*/
|
3529 |
-
function arrayMap(array, iteratee) {
|
3530 |
-
var index = -1,
|
3531 |
-
length = array == null ? 0 : array.length,
|
3532 |
-
result = Array(length);
|
3533 |
-
|
3534 |
-
while (++index < length) {
|
3535 |
-
result[index] = iteratee(array[index], index, array);
|
3536 |
-
}
|
3537 |
-
return result;
|
3538 |
-
}
|
3539 |
-
|
3540 |
-
module.exports = arrayMap;
|
3541 |
-
|
3542 |
-
|
3543 |
-
/***/ }),
|
3544 |
-
/* 77 */
|
3545 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
3546 |
-
|
3547 |
-
"use strict";
|
3548 |
-
__webpack_require__.r(__webpack_exports__);
|
3549 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EVENT", function() { return EVENT; });
|
3550 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VENUE", function() { return VENUE; });
|
3551 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ORGANIZER", function() { return ORGANIZER; });
|
3552 |
-
var EVENT = 'tribe_events';
|
3553 |
-
var VENUE = 'tribe_venue';
|
3554 |
-
var ORGANIZER = 'tribe_organizer';
|
3555 |
-
|
3556 |
-
/***/ }),
|
3557 |
-
/* 78 */
|
3558 |
-
/***/ (function(module, exports) {
|
3559 |
-
|
3560 |
-
// 7.1.4 ToInteger
|
3561 |
-
var ceil = Math.ceil;
|
3562 |
-
var floor = Math.floor;
|
3563 |
-
module.exports = function (it) {
|
3564 |
-
return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
|
3565 |
-
};
|
3566 |
-
|
3567 |
-
|
3568 |
-
/***/ }),
|
3569 |
-
/* 79 */
|
3570 |
-
/***/ (function(module, exports) {
|
3571 |
-
|
3572 |
-
// 7.2.1 RequireObjectCoercible(argument)
|
3573 |
-
module.exports = function (it) {
|
3574 |
-
if (it == undefined) throw TypeError("Can't call method on " + it);
|
3575 |
-
return it;
|
3576 |
-
};
|
3577 |
-
|
3578 |
-
|
3579 |
-
/***/ }),
|
3580 |
-
/* 80 */
|
3581 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3582 |
-
|
3583 |
-
var isObject = __webpack_require__(24);
|
3584 |
-
var document = __webpack_require__(9).document;
|
3585 |
-
// typeof document.createElement is 'object' in old IE
|
3586 |
-
var is = isObject(document) && isObject(document.createElement);
|
3587 |
-
module.exports = function (it) {
|
3588 |
-
return is ? document.createElement(it) : {};
|
3589 |
-
};
|
3590 |
-
|
3591 |
-
|
3592 |
-
/***/ }),
|
3593 |
-
/* 81 */
|
3594 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3595 |
-
|
3596 |
-
// 7.1.15 ToLength
|
3597 |
-
var toInteger = __webpack_require__(78);
|
3598 |
-
var min = Math.min;
|
3599 |
-
module.exports = function (it) {
|
3600 |
-
return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
|
3601 |
-
};
|
3602 |
-
|
3603 |
-
|
3604 |
-
/***/ }),
|
3605 |
-
/* 82 */
|
3606 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3607 |
-
|
3608 |
-
var shared = __webpack_require__(101)('keys');
|
3609 |
-
var uid = __webpack_require__(69);
|
3610 |
-
module.exports = function (key) {
|
3611 |
-
return shared[key] || (shared[key] = uid(key));
|
3612 |
-
};
|
3613 |
-
|
3614 |
-
|
3615 |
-
/***/ }),
|
3616 |
-
/* 83 */
|
3617 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3618 |
-
|
3619 |
-
var mapCacheClear = __webpack_require__(218),
|
3620 |
-
mapCacheDelete = __webpack_require__(236),
|
3621 |
-
mapCacheGet = __webpack_require__(238),
|
3622 |
-
mapCacheHas = __webpack_require__(239),
|
3623 |
-
mapCacheSet = __webpack_require__(240);
|
3624 |
-
|
3625 |
-
/**
|
3626 |
-
* Creates a map cache object to store key-value pairs.
|
3627 |
-
*
|
3628 |
-
* @private
|
3629 |
-
* @constructor
|
3630 |
-
* @param {Array} [entries] The key-value pairs to cache.
|
3631 |
-
*/
|
3632 |
-
function MapCache(entries) {
|
3633 |
-
var index = -1,
|
3634 |
-
length = entries == null ? 0 : entries.length;
|
3635 |
-
|
3636 |
-
this.clear();
|
3637 |
-
while (++index < length) {
|
3638 |
-
var entry = entries[index];
|
3639 |
-
this.set(entry[0], entry[1]);
|
3640 |
-
}
|
3641 |
-
}
|
3642 |
-
|
3643 |
-
// Add methods to `MapCache`.
|
3644 |
-
MapCache.prototype.clear = mapCacheClear;
|
3645 |
-
MapCache.prototype['delete'] = mapCacheDelete;
|
3646 |
-
MapCache.prototype.get = mapCacheGet;
|
3647 |
-
MapCache.prototype.has = mapCacheHas;
|
3648 |
-
MapCache.prototype.set = mapCacheSet;
|
3649 |
-
|
3650 |
-
module.exports = MapCache;
|
3651 |
-
|
3652 |
-
|
3653 |
-
/***/ }),
|
3654 |
-
/* 84 */
|
3655 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3656 |
-
|
3657 |
-
var getNative = __webpack_require__(25),
|
3658 |
-
root = __webpack_require__(11);
|
3659 |
-
|
3660 |
-
/* Built-in method references that are verified to be native. */
|
3661 |
-
var Map = getNative(root, 'Map');
|
3662 |
-
|
3663 |
-
module.exports = Map;
|
3664 |
-
|
3665 |
-
|
3666 |
-
/***/ }),
|
3667 |
-
/* 85 */
|
3668 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3669 |
-
|
3670 |
-
var toFinite = __webpack_require__(157);
|
3671 |
-
|
3672 |
-
/**
|
3673 |
-
* Converts `value` to an integer.
|
3674 |
-
*
|
3675 |
-
* **Note:** This method is loosely based on
|
3676 |
-
* [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
|
3677 |
-
*
|
3678 |
-
* @static
|
3679 |
-
* @memberOf _
|
3680 |
-
* @since 4.0.0
|
3681 |
-
* @category Lang
|
3682 |
-
* @param {*} value The value to convert.
|
3683 |
-
* @returns {number} Returns the converted integer.
|
3684 |
-
* @example
|
3685 |
-
*
|
3686 |
-
* _.toInteger(3.2);
|
3687 |
-
* // => 3
|
3688 |
-
*
|
3689 |
-
* _.toInteger(Number.MIN_VALUE);
|
3690 |
-
* // => 0
|
3691 |
-
*
|
3692 |
-
* _.toInteger(Infinity);
|
3693 |
-
* // => 1.7976931348623157e+308
|
3694 |
-
*
|
3695 |
-
* _.toInteger('3.2');
|
3696 |
-
* // => 3
|
3697 |
-
*/
|
3698 |
-
function toInteger(value) {
|
3699 |
-
var result = toFinite(value),
|
3700 |
-
remainder = result % 1;
|
3701 |
-
|
3702 |
-
return result === result ? (remainder ? result - remainder : result) : 0;
|
3703 |
-
}
|
3704 |
-
|
3705 |
-
module.exports = toInteger;
|
3706 |
-
|
3707 |
-
|
3708 |
-
/***/ }),
|
3709 |
-
/* 86 */
|
3710 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3711 |
-
|
3712 |
-
var baseIsTypedArray = __webpack_require__(248),
|
3713 |
-
baseUnary = __webpack_require__(88),
|
3714 |
-
nodeUtil = __webpack_require__(89);
|
3715 |
-
|
3716 |
-
/* Node.js helper references. */
|
3717 |
-
var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;
|
3718 |
-
|
3719 |
-
/**
|
3720 |
-
* Checks if `value` is classified as a typed array.
|
3721 |
-
*
|
3722 |
-
* @static
|
3723 |
-
* @memberOf _
|
3724 |
-
* @since 3.0.0
|
3725 |
-
* @category Lang
|
3726 |
-
* @param {*} value The value to check.
|
3727 |
-
* @returns {boolean} Returns `true` if `value` is a typed array, else `false`.
|
3728 |
-
* @example
|
3729 |
-
*
|
3730 |
-
* _.isTypedArray(new Uint8Array);
|
3731 |
-
* // => true
|
3732 |
-
*
|
3733 |
-
* _.isTypedArray([]);
|
3734 |
-
* // => false
|
3735 |
-
*/
|
3736 |
-
var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
|
3737 |
-
|
3738 |
-
module.exports = isTypedArray;
|
3739 |
-
|
3740 |
-
|
3741 |
-
/***/ }),
|
3742 |
-
/* 87 */
|
3743 |
-
/***/ (function(module, exports) {
|
3744 |
-
|
3745 |
-
/** Used as references for various `Number` constants. */
|
3746 |
-
var MAX_SAFE_INTEGER = 9007199254740991;
|
3747 |
-
|
3748 |
-
/**
|
3749 |
-
* Checks if `value` is a valid array-like length.
|
3750 |
-
*
|
3751 |
-
* **Note:** This method is loosely based on
|
3752 |
-
* [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
|
3753 |
-
*
|
3754 |
-
* @static
|
3755 |
-
* @memberOf _
|
3756 |
-
* @since 4.0.0
|
3757 |
-
* @category Lang
|
3758 |
-
* @param {*} value The value to check.
|
3759 |
-
* @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
|
3760 |
-
* @example
|
3761 |
-
*
|
3762 |
-
* _.isLength(3);
|
3763 |
-
* // => true
|
3764 |
-
*
|
3765 |
-
* _.isLength(Number.MIN_VALUE);
|
3766 |
-
* // => false
|
3767 |
-
*
|
3768 |
-
* _.isLength(Infinity);
|
3769 |
-
* // => false
|
3770 |
-
*
|
3771 |
-
* _.isLength('3');
|
3772 |
-
* // => false
|
3773 |
-
*/
|
3774 |
-
function isLength(value) {
|
3775 |
-
return typeof value == 'number' &&
|
3776 |
-
value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
|
3777 |
-
}
|
3778 |
-
|
3779 |
-
module.exports = isLength;
|
3780 |
-
|
3781 |
-
|
3782 |
-
/***/ }),
|
3783 |
-
/* 88 */
|
3784 |
-
/***/ (function(module, exports) {
|
3785 |
-
|
3786 |
-
/**
|
3787 |
-
* The base implementation of `_.unary` without support for storing metadata.
|
3788 |
-
*
|
3789 |
-
* @private
|
3790 |
-
* @param {Function} func The function to cap arguments for.
|
3791 |
-
* @returns {Function} Returns the new capped function.
|
3792 |
-
*/
|
3793 |
-
function baseUnary(func) {
|
3794 |
-
return function(value) {
|
3795 |
-
return func(value);
|
3796 |
-
};
|
3797 |
-
}
|
3798 |
-
|
3799 |
-
module.exports = baseUnary;
|
3800 |
-
|
3801 |
-
|
3802 |
-
/***/ }),
|
3803 |
-
/* 89 */
|
3804 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3805 |
-
|
3806 |
-
/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(137);
|
3807 |
-
|
3808 |
-
/** Detect free variable `exports`. */
|
3809 |
-
var freeExports = true && exports && !exports.nodeType && exports;
|
3810 |
-
|
3811 |
-
/** Detect free variable `module`. */
|
3812 |
-
var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
|
3813 |
-
|
3814 |
-
/** Detect the popular CommonJS extension `module.exports`. */
|
3815 |
-
var moduleExports = freeModule && freeModule.exports === freeExports;
|
3816 |
-
|
3817 |
-
/** Detect free variable `process` from Node.js. */
|
3818 |
-
var freeProcess = moduleExports && freeGlobal.process;
|
3819 |
-
|
3820 |
-
/** Used to access faster Node.js helpers. */
|
3821 |
-
var nodeUtil = (function() {
|
3822 |
-
try {
|
3823 |
-
// Use `util.types` for Node.js 10+.
|
3824 |
-
var types = freeModule && freeModule.require && freeModule.require('util').types;
|
3825 |
-
|
3826 |
-
if (types) {
|
3827 |
-
return types;
|
3828 |
-
}
|
3829 |
-
|
3830 |
-
// Legacy `process.binding('util')` for Node.js < 10.
|
3831 |
-
return freeProcess && freeProcess.binding && freeProcess.binding('util');
|
3832 |
-
} catch (e) {}
|
3833 |
-
}());
|
3834 |
-
|
3835 |
-
module.exports = nodeUtil;
|
3836 |
-
|
3837 |
-
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(66)(module)))
|
3838 |
-
|
3839 |
-
/***/ }),
|
3840 |
-
/* 90 */
|
3841 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3842 |
-
|
3843 |
-
var isArray = __webpack_require__(6),
|
3844 |
-
isSymbol = __webpack_require__(46);
|
3845 |
-
|
3846 |
-
/** Used to match property names within property paths. */
|
3847 |
-
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
|
3848 |
-
reIsPlainProp = /^\w*$/;
|
3849 |
-
|
3850 |
-
/**
|
3851 |
-
* Checks if `value` is a property name and not a property path.
|
3852 |
-
*
|
3853 |
-
* @private
|
3854 |
-
* @param {*} value The value to check.
|
3855 |
-
* @param {Object} [object] The object to query keys on.
|
3856 |
-
* @returns {boolean} Returns `true` if `value` is a property name, else `false`.
|
3857 |
-
*/
|
3858 |
-
function isKey(value, object) {
|
3859 |
-
if (isArray(value)) {
|
3860 |
-
return false;
|
3861 |
-
}
|
3862 |
-
var type = typeof value;
|
3863 |
-
if (type == 'number' || type == 'symbol' || type == 'boolean' ||
|
3864 |
-
value == null || isSymbol(value)) {
|
3865 |
-
return true;
|
3866 |
-
}
|
3867 |
-
return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
|
3868 |
-
(object != null && value in Object(object));
|
3869 |
-
}
|
3870 |
-
|
3871 |
-
module.exports = isKey;
|
3872 |
-
|
3873 |
-
|
3874 |
-
/***/ }),
|
3875 |
-
/* 91 */
|
3876 |
-
/***/ (function(module, exports) {
|
3877 |
-
|
3878 |
-
exports.f = {}.propertyIsEnumerable;
|
3879 |
-
|
3880 |
-
|
3881 |
-
/***/ }),
|
3882 |
-
/* 92 */
|
3883 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3884 |
-
|
3885 |
-
"use strict";
|
3886 |
-
|
3887 |
-
// 25.4.1.5 NewPromiseCapability(C)
|
3888 |
-
var aFunction = __webpack_require__(53);
|
3889 |
-
|
3890 |
-
function PromiseCapability(C) {
|
3891 |
-
var resolve, reject;
|
3892 |
-
this.promise = new C(function ($$resolve, $$reject) {
|
3893 |
-
if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
|
3894 |
-
resolve = $$resolve;
|
3895 |
-
reject = $$reject;
|
3896 |
-
});
|
3897 |
-
this.resolve = aFunction(resolve);
|
3898 |
-
this.reject = aFunction(reject);
|
3899 |
-
}
|
3900 |
-
|
3901 |
-
module.exports.f = function (C) {
|
3902 |
-
return new PromiseCapability(C);
|
3903 |
-
};
|
3904 |
-
|
3905 |
-
|
3906 |
-
/***/ }),
|
3907 |
-
/* 93 */
|
3908 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3909 |
-
|
3910 |
-
var baseGetTag = __webpack_require__(21),
|
3911 |
-
isObject = __webpack_require__(18);
|
3912 |
-
|
3913 |
-
/** `Object#toString` result references. */
|
3914 |
-
var asyncTag = '[object AsyncFunction]',
|
3915 |
-
funcTag = '[object Function]',
|
3916 |
-
genTag = '[object GeneratorFunction]',
|
3917 |
-
proxyTag = '[object Proxy]';
|
3918 |
-
|
3919 |
-
/**
|
3920 |
-
* Checks if `value` is classified as a `Function` object.
|
3921 |
-
*
|
3922 |
-
* @static
|
3923 |
-
* @memberOf _
|
3924 |
-
* @since 0.1.0
|
3925 |
-
* @category Lang
|
3926 |
-
* @param {*} value The value to check.
|
3927 |
-
* @returns {boolean} Returns `true` if `value` is a function, else `false`.
|
3928 |
-
* @example
|
3929 |
-
*
|
3930 |
-
* _.isFunction(_);
|
3931 |
-
* // => true
|
3932 |
-
*
|
3933 |
-
* _.isFunction(/abc/);
|
3934 |
-
* // => false
|
3935 |
-
*/
|
3936 |
-
function isFunction(value) {
|
3937 |
-
if (!isObject(value)) {
|
3938 |
-
return false;
|
3939 |
-
}
|
3940 |
-
// The use of `Object#toString` avoids issues with the `typeof` operator
|
3941 |
-
// in Safari 9 which returns 'object' for typed arrays and other constructors.
|
3942 |
-
var tag = baseGetTag(value);
|
3943 |
-
return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
|
3944 |
-
}
|
3945 |
-
|
3946 |
-
module.exports = isFunction;
|
3947 |
-
|
3948 |
-
|
3949 |
-
/***/ }),
|
3950 |
-
/* 94 */
|
3951 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3952 |
-
|
3953 |
-
var isPrototype = __webpack_require__(64),
|
3954 |
-
nativeKeys = __webpack_require__(249);
|
3955 |
-
|
3956 |
-
/** Used for built-in method references. */
|
3957 |
-
var objectProto = Object.prototype;
|
3958 |
-
|
3959 |
-
/** Used to check objects for own properties. */
|
3960 |
-
var hasOwnProperty = objectProto.hasOwnProperty;
|
3961 |
-
|
3962 |
-
/**
|
3963 |
-
* The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
|
3964 |
-
*
|
3965 |
-
* @private
|
3966 |
-
* @param {Object} object The object to query.
|
3967 |
-
* @returns {Array} Returns the array of property names.
|
3968 |
-
*/
|
3969 |
-
function baseKeys(object) {
|
3970 |
-
if (!isPrototype(object)) {
|
3971 |
-
return nativeKeys(object);
|
3972 |
-
}
|
3973 |
-
var result = [];
|
3974 |
-
for (var key in Object(object)) {
|
3975 |
-
if (hasOwnProperty.call(object, key) && key != 'constructor') {
|
3976 |
-
result.push(key);
|
3977 |
-
}
|
3978 |
-
}
|
3979 |
-
return result;
|
3980 |
-
}
|
3981 |
-
|
3982 |
-
module.exports = baseKeys;
|
3983 |
-
|
3984 |
-
|
3985 |
-
/***/ }),
|
3986 |
-
/* 95 */
|
3987 |
-
/***/ (function(module, exports, __webpack_require__) {
|
3988 |
-
|
3989 |
-
var ListCache = __webpack_require__(55),
|
3990 |
-
stackClear = __webpack_require__(250),
|
3991 |
-
stackDelete = __webpack_require__(251),
|
3992 |
-
stackGet = __webpack_require__(252),
|
3993 |
-
stackHas = __webpack_require__(253),
|
3994 |
-
stackSet = __webpack_require__(254);
|
3995 |
-
|
3996 |
-
/**
|
3997 |
-
* Creates a stack cache object to store key-value pairs.
|
3998 |
-
*
|
3999 |
-
* @private
|
4000 |
-
* @constructor
|
4001 |
-
* @param {Array} [entries] The key-value pairs to cache.
|
4002 |
-
*/
|
4003 |
-
function Stack(entries) {
|
4004 |
-
var data = this.__data__ = new ListCache(entries);
|
4005 |
-
this.size = data.size;
|
4006 |
-
}
|
4007 |
-
|
4008 |
-
// Add methods to `Stack`.
|
4009 |
-
Stack.prototype.clear = stackClear;
|
4010 |
-
Stack.prototype['delete'] = stackDelete;
|
4011 |
-
Stack.prototype.get = stackGet;
|
4012 |
-
Stack.prototype.has = stackHas;
|
4013 |
-
Stack.prototype.set = stackSet;
|
4014 |
-
|
4015 |
-
module.exports = Stack;
|
4016 |
-
|
4017 |
-
|
4018 |
-
/***/ }),
|
4019 |
-
/* 96 */
|
4020 |
-
/***/ (function(module, exports) {
|
4021 |
-
|
4022 |
-
/**
|
4023 |
-
* Appends the elements of `values` to `array`.
|
4024 |
-
*
|
4025 |
-
* @private
|
4026 |
-
* @param {Array} array The array to modify.
|
4027 |
-
* @param {Array} values The values to append.
|
4028 |
-
* @returns {Array} Returns `array`.
|
4029 |
-
*/
|
4030 |
-
function arrayPush(array, values) {
|
4031 |
-
var index = -1,
|
4032 |
-
length = values.length,
|
4033 |
-
offset = array.length;
|
4034 |
-
|
4035 |
-
while (++index < length) {
|
4036 |
-
array[offset + index] = values[index];
|
4037 |
-
}
|
4038 |
-
return array;
|
4039 |
-
}
|
4040 |
-
|
4041 |
-
module.exports = arrayPush;
|
4042 |
-
|
4043 |
-
|
4044 |
-
/***/ }),
|
4045 |
-
/* 97 */
|
4046 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4047 |
-
|
4048 |
-
var baseToString = __webpack_require__(169);
|
4049 |
-
|
4050 |
-
/**
|
4051 |
-
* Converts `value` to a string. An empty string is returned for `null`
|
4052 |
-
* and `undefined` values. The sign of `-0` is preserved.
|
4053 |
-
*
|
4054 |
-
* @static
|
4055 |
-
* @memberOf _
|
4056 |
-
* @since 4.0.0
|
4057 |
-
* @category Lang
|
4058 |
-
* @param {*} value The value to convert.
|
4059 |
-
* @returns {string} Returns the converted string.
|
4060 |
-
* @example
|
4061 |
-
*
|
4062 |
-
* _.toString(null);
|
4063 |
-
* // => ''
|
4064 |
-
*
|
4065 |
-
* _.toString(-0);
|
4066 |
-
* // => '-0'
|
4067 |
-
*
|
4068 |
-
* _.toString([1, 2, 3]);
|
4069 |
-
* // => '1,2,3'
|
4070 |
-
*/
|
4071 |
-
function toString(value) {
|
4072 |
-
return value == null ? '' : baseToString(value);
|
4073 |
-
}
|
4074 |
-
|
4075 |
-
module.exports = toString;
|
4076 |
-
|
4077 |
-
|
4078 |
-
/***/ }),
|
4079 |
-
/* 98 */
|
4080 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4081 |
-
|
4082 |
-
var baseGetTag = __webpack_require__(21),
|
4083 |
-
isArray = __webpack_require__(6),
|
4084 |
-
isObjectLike = __webpack_require__(14);
|
4085 |
-
|
4086 |
-
/** `Object#toString` result references. */
|
4087 |
-
var stringTag = '[object String]';
|
4088 |
-
|
4089 |
-
/**
|
4090 |
-
* Checks if `value` is classified as a `String` primitive or object.
|
4091 |
-
*
|
4092 |
-
* @static
|
4093 |
-
* @since 0.1.0
|
4094 |
-
* @memberOf _
|
4095 |
-
* @category Lang
|
4096 |
-
* @param {*} value The value to check.
|
4097 |
-
* @returns {boolean} Returns `true` if `value` is a string, else `false`.
|
4098 |
-
* @example
|
4099 |
-
*
|
4100 |
-
* _.isString('abc');
|
4101 |
-
* // => true
|
4102 |
-
*
|
4103 |
-
* _.isString(1);
|
4104 |
-
* // => false
|
4105 |
-
*/
|
4106 |
-
function isString(value) {
|
4107 |
-
return typeof value == 'string' ||
|
4108 |
-
(!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);
|
4109 |
-
}
|
4110 |
-
|
4111 |
-
module.exports = isString;
|
4112 |
-
|
4113 |
-
|
4114 |
-
/***/ }),
|
4115 |
-
/* 99 */
|
4116 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
4117 |
-
|
4118 |
-
"use strict";
|
4119 |
-
|
4120 |
-
// EXTERNAL MODULE: ./node_modules/redux/es/redux.js
|
4121 |
-
var redux = __webpack_require__(15);
|
4122 |
-
|
4123 |
-
// CONCATENATED MODULE: ./node_modules/deepmerge/dist/es.js
|
4124 |
-
var isMergeableObject = function isMergeableObject(value) {
|
4125 |
-
return isNonNullObject(value)
|
4126 |
-
&& !isSpecial(value)
|
4127 |
-
};
|
4128 |
-
|
4129 |
-
function isNonNullObject(value) {
|
4130 |
-
return !!value && typeof value === 'object'
|
4131 |
-
}
|
4132 |
-
|
4133 |
-
function isSpecial(value) {
|
4134 |
-
var stringValue = Object.prototype.toString.call(value);
|
4135 |
-
|
4136 |
-
return stringValue === '[object RegExp]'
|
4137 |
-
|| stringValue === '[object Date]'
|
4138 |
-
|| isReactElement(value)
|
4139 |
-
}
|
4140 |
-
|
4141 |
-
// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25
|
4142 |
-
var canUseSymbol = typeof Symbol === 'function' && Symbol.for;
|
4143 |
-
var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;
|
4144 |
-
|
4145 |
-
function isReactElement(value) {
|
4146 |
-
return value.$$typeof === REACT_ELEMENT_TYPE
|
4147 |
-
}
|
4148 |
-
|
4149 |
-
function emptyTarget(val) {
|
4150 |
-
return Array.isArray(val) ? [] : {}
|
4151 |
-
}
|
4152 |
-
|
4153 |
-
function cloneUnlessOtherwiseSpecified(value, options) {
|
4154 |
-
return (options.clone !== false && options.isMergeableObject(value))
|
4155 |
-
? deepmerge(emptyTarget(value), value, options)
|
4156 |
-
: value
|
4157 |
-
}
|
4158 |
-
|
4159 |
-
function defaultArrayMerge(target, source, options) {
|
4160 |
-
return target.concat(source).map(function(element) {
|
4161 |
-
return cloneUnlessOtherwiseSpecified(element, options)
|
4162 |
-
})
|
4163 |
-
}
|
4164 |
-
|
4165 |
-
function mergeObject(target, source, options) {
|
4166 |
-
var destination = {};
|
4167 |
-
if (options.isMergeableObject(target)) {
|
4168 |
-
Object.keys(target).forEach(function(key) {
|
4169 |
-
destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);
|
4170 |
-
});
|
4171 |
-
}
|
4172 |
-
Object.keys(source).forEach(function(key) {
|
4173 |
-
if (!options.isMergeableObject(source[key]) || !target[key]) {
|
4174 |
-
destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);
|
4175 |
-
} else {
|
4176 |
-
destination[key] = deepmerge(target[key], source[key], options);
|
4177 |
-
}
|
4178 |
-
});
|
4179 |
-
return destination
|
4180 |
-
}
|
4181 |
-
|
4182 |
-
function deepmerge(target, source, options) {
|
4183 |
-
options = options || {};
|
4184 |
-
options.arrayMerge = options.arrayMerge || defaultArrayMerge;
|
4185 |
-
options.isMergeableObject = options.isMergeableObject || isMergeableObject;
|
4186 |
-
|
4187 |
-
var sourceIsArray = Array.isArray(source);
|
4188 |
-
var targetIsArray = Array.isArray(target);
|
4189 |
-
var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;
|
4190 |
-
|
4191 |
-
if (!sourceAndTargetTypesMatch) {
|
4192 |
-
return cloneUnlessOtherwiseSpecified(source, options)
|
4193 |
-
} else if (sourceIsArray) {
|
4194 |
-
return options.arrayMerge(target, source, options)
|
4195 |
-
} else {
|
4196 |
-
return mergeObject(target, source, options)
|
4197 |
-
}
|
4198 |
-
}
|
4199 |
-
|
4200 |
-
deepmerge.all = function deepmergeAll(array, options) {
|
4201 |
-
if (!Array.isArray(array)) {
|
4202 |
-
throw new Error('first argument should be an array')
|
4203 |
-
}
|
4204 |
-
|
4205 |
-
return array.reduce(function(prev, next) {
|
4206 |
-
return deepmerge(prev, next, options)
|
4207 |
-
}, {})
|
4208 |
-
};
|
4209 |
-
|
4210 |
-
var deepmerge_1 = deepmerge;
|
4211 |
-
|
4212 |
-
/* harmony default export */ var es = (deepmerge_1);
|
4213 |
-
|
4214 |
-
// CONCATENATED MODULE: ./node_modules/@nfen/redux-reducer-injector/es/utils/fp.js
|
4215 |
-
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
|
4216 |
-
|
4217 |
-
|
4218 |
-
|
4219 |
-
/* eslint-disable import/prefer-default-export */
|
4220 |
-
var curry = function curry(fn) {
|
4221 |
-
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
4222 |
-
args[_key - 1] = arguments[_key];
|
4223 |
-
}
|
4224 |
-
|
4225 |
-
return fn.length <= args.length ? fn.apply(undefined, args) : function () {
|
4226 |
-
for (var _len2 = arguments.length, more = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
4227 |
-
more[_key2] = arguments[_key2];
|
4228 |
-
}
|
4229 |
-
|
4230 |
-
return curry.apply(undefined, [fn].concat(args, more));
|
4231 |
-
};
|
4232 |
-
};
|
4233 |
-
|
4234 |
-
var fp_pipe = function pipe() {
|
4235 |
-
for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
4236 |
-
args[_key3] = arguments[_key3];
|
4237 |
-
}
|
4238 |
-
|
4239 |
-
return redux["compose"].apply(undefined, _toConsumableArray(args.reverse()));
|
4240 |
-
};
|
4241 |
-
// CONCATENATED MODULE: ./node_modules/@nfen/redux-reducer-injector/es/reducer.js
|
4242 |
-
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
4243 |
-
|
4244 |
-
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
4245 |
-
|
4246 |
-
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
4247 |
-
|
4248 |
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
4249 |
-
|
4250 |
-
|
4251 |
-
|
4252 |
-
|
4253 |
-
|
4254 |
-
var isFunction = function isFunction(arg) {
|
4255 |
-
return typeof arg === 'function';
|
4256 |
-
};
|
4257 |
-
var isObject = function isObject(arg) {
|
4258 |
-
return arg !== null && (typeof arg === 'undefined' ? 'undefined' : _typeof(arg)) === 'object';
|
4259 |
-
};
|
4260 |
-
|
4261 |
-
var isReducer = function isReducer(reducer) {
|
4262 |
-
return isFunction(reducer);
|
4263 |
-
};
|
4264 |
-
var hasNestedReducer = function hasNestedReducer(reducer) {
|
4265 |
-
return Object.values(reducer).some(isReducer);
|
4266 |
-
};
|
4267 |
-
var shouldCombineNextLevel = function shouldCombineNextLevel(reducer) {
|
4268 |
-
return (isReducer(reducer) || isObject(reducer)) && hasNestedReducer(reducer);
|
4269 |
-
};
|
4270 |
-
|
4271 |
-
/**
|
4272 |
-
* Merge all reducers together
|
4273 |
-
*
|
4274 |
-
* @export
|
4275 |
-
* @param {Object} reducers
|
4276 |
-
* @returns {Object} Merged reducers
|
4277 |
-
*/
|
4278 |
-
var reducer_mergeReducers = function mergeReducers(reducers) {
|
4279 |
-
return reducers.reduce(function (result, reducer) {
|
4280 |
-
return es(result, reducer);
|
4281 |
-
}, {});
|
4282 |
-
};
|
4283 |
-
|
4284 |
-
/**
|
4285 |
-
* Recursively nest reducers
|
4286 |
-
*
|
4287 |
-
* @export
|
4288 |
-
* @param {Object} asyncReducers
|
4289 |
-
* @returns Merged nested reducers
|
4290 |
-
*/
|
4291 |
-
var nestAsyncReducers = fp_pipe(getReducersAtLevel, function (reducers) {
|
4292 |
-
return reducers.filter(isObject);
|
4293 |
-
}, reducer_mergeReducers);
|
4294 |
-
|
4295 |
-
/**
|
4296 |
-
*
|
4297 |
-
*
|
4298 |
-
* @export
|
4299 |
-
* @param {Object} asyncReducers
|
4300 |
-
* @returns Array of possible empty items and reducer objects
|
4301 |
-
*/
|
4302 |
-
function getReducersAtLevel(asyncReducers) {
|
4303 |
-
return Object.entries(asyncReducers).map(function (_ref) {
|
4304 |
-
var _ref2 = _slicedToArray(_ref, 2),
|
4305 |
-
key = _ref2[0],
|
4306 |
-
reducer = _ref2[1];
|
4307 |
-
|
4308 |
-
// Set the key to a combination of the next level
|
4309 |
-
// NOTE: This will replace any reducer already set to this key
|
4310 |
-
if (shouldCombineNextLevel(reducer)) {
|
4311 |
-
return _defineProperty({}, key, Object(redux["combineReducers"])(
|
4312 |
-
// Recursive call
|
4313 |
-
nestAsyncReducers(reducer)));
|
4314 |
-
|
4315 |
-
// No nested levels, then return the reducer
|
4316 |
-
} else if (isReducer(reducer)) {
|
4317 |
-
return _defineProperty({}, key, reducer);
|
4318 |
-
}
|
4319 |
-
});
|
4320 |
-
}
|
4321 |
-
|
4322 |
-
/**
|
4323 |
-
* Create a combined reducer
|
4324 |
-
*
|
4325 |
-
* @param {Object} [initialReducers={}]
|
4326 |
-
* @param {Object} [asyncReducers={}]
|
4327 |
-
* @returns combined reducer
|
4328 |
-
*/
|
4329 |
-
function _createReducer(initialReducers, asyncReducers) {
|
4330 |
-
return Object(redux["combineReducers"])(_extends({}, initialReducers, nestAsyncReducers(asyncReducers)));
|
4331 |
-
}
|
4332 |
-
|
4333 |
-
var reducer_createReducer = curry(_createReducer);
|
4334 |
-
|
4335 |
-
/**
|
4336 |
-
* Setup createReducer with initial reducers
|
4337 |
-
* Will return a new function that will take async reducers to be injected
|
4338 |
-
*
|
4339 |
-
* @export
|
4340 |
-
* @param {Object} initialReducers
|
4341 |
-
* @returns Function
|
4342 |
-
*/
|
4343 |
-
function setupCreateReducer(initialReducers) {
|
4344 |
-
return reducer_createReducer(initialReducers);
|
4345 |
-
}
|
4346 |
-
// EXTERNAL MODULE: ./node_modules/object-path/index.js
|
4347 |
-
var object_path = __webpack_require__(124);
|
4348 |
-
|
4349 |
-
// CONCATENATED MODULE: ./node_modules/@nfen/redux-reducer-injector/es/store.js
|
4350 |
-
var store_slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
4351 |
-
|
4352 |
-
|
4353 |
-
|
4354 |
-
|
4355 |
-
function augmentStore(createReducer, store) {
|
4356 |
-
store.injectedReducers = {};
|
4357 |
-
store.injectReducers = function injectReducers(reducers) {
|
4358 |
-
Object.entries(reducers).forEach(function (_ref) {
|
4359 |
-
var _ref2 = store_slicedToArray(_ref, 2),
|
4360 |
-
key = _ref2[0],
|
4361 |
-
reducer = _ref2[1];
|
4362 |
-
|
4363 |
-
if (!Object(object_path["has"])(store.injectedReducers, key)) {
|
4364 |
-
Object(object_path["set"])(store.injectedReducers, key, reducer);
|
4365 |
-
store.replaceReducer(createReducer(store.injectedReducers));
|
4366 |
-
}
|
4367 |
-
});
|
4368 |
-
};
|
4369 |
-
return store;
|
4370 |
-
}
|
4371 |
-
|
4372 |
-
/* harmony default export */ var es_store = (curry(augmentStore));
|
4373 |
-
// CONCATENATED MODULE: ./node_modules/@nfen/redux-reducer-injector/es/index.js
|
4374 |
-
/* concated harmony reexport setupCreateReducer */__webpack_require__.d(__webpack_exports__, "b", function() { return setupCreateReducer; });
|
4375 |
-
/* concated harmony reexport augmentStore */__webpack_require__.d(__webpack_exports__, "a", function() { return es_store; });
|
4376 |
-
|
4377 |
-
|
4378 |
-
|
4379 |
-
/***/ }),
|
4380 |
-
/* 100 */,
|
4381 |
-
/* 101 */
|
4382 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4383 |
-
|
4384 |
-
var core = __webpack_require__(10);
|
4385 |
-
var global = __webpack_require__(9);
|
4386 |
-
var SHARED = '__core-js_shared__';
|
4387 |
-
var store = global[SHARED] || (global[SHARED] = {});
|
4388 |
-
|
4389 |
-
(module.exports = function (key, value) {
|
4390 |
-
return store[key] || (store[key] = value !== undefined ? value : {});
|
4391 |
-
})('versions', []).push({
|
4392 |
-
version: core.version,
|
4393 |
-
mode: __webpack_require__(49) ? 'pure' : 'global',
|
4394 |
-
copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
|
4395 |
-
});
|
4396 |
-
|
4397 |
-
|
4398 |
-
/***/ }),
|
4399 |
-
/* 102 */
|
4400 |
-
/***/ (function(module, exports) {
|
4401 |
-
|
4402 |
-
// IE 8- don't enum bug keys
|
4403 |
-
module.exports = (
|
4404 |
-
'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
|
4405 |
-
).split(',');
|
4406 |
-
|
4407 |
-
|
4408 |
-
/***/ }),
|
4409 |
-
/* 103 */
|
4410 |
-
/***/ (function(module, exports) {
|
4411 |
-
|
4412 |
-
/**
|
4413 |
-
* Converts `set` to an array of its values.
|
4414 |
-
*
|
4415 |
-
* @private
|
4416 |
-
* @param {Object} set The set to convert.
|
4417 |
-
* @returns {Array} Returns the values.
|
4418 |
-
*/
|
4419 |
-
function setToArray(set) {
|
4420 |
-
var index = -1,
|
4421 |
-
result = Array(set.size);
|
4422 |
-
|
4423 |
-
set.forEach(function(value) {
|
4424 |
-
result[++index] = value;
|
4425 |
-
});
|
4426 |
-
return result;
|
4427 |
-
}
|
4428 |
-
|
4429 |
-
module.exports = setToArray;
|
4430 |
-
|
4431 |
-
|
4432 |
-
/***/ }),
|
4433 |
-
/* 104 */
|
4434 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4435 |
-
|
4436 |
-
var baseSetData = __webpack_require__(177),
|
4437 |
-
createBind = __webpack_require__(322),
|
4438 |
-
createCurry = __webpack_require__(323),
|
4439 |
-
createHybrid = __webpack_require__(179),
|
4440 |
-
createPartial = __webpack_require__(336),
|
4441 |
-
getData = __webpack_require__(183),
|
4442 |
-
mergeData = __webpack_require__(337),
|
4443 |
-
setData = __webpack_require__(185),
|
4444 |
-
setWrapToString = __webpack_require__(187),
|
4445 |
-
toInteger = __webpack_require__(85);
|
4446 |
-
|
4447 |
-
/** Error message constants. */
|
4448 |
-
var FUNC_ERROR_TEXT = 'Expected a function';
|
4449 |
-
|
4450 |
-
/** Used to compose bitmasks for function metadata. */
|
4451 |
-
var WRAP_BIND_FLAG = 1,
|
4452 |
-
WRAP_BIND_KEY_FLAG = 2,
|
4453 |
-
WRAP_CURRY_FLAG = 8,
|
4454 |
-
WRAP_CURRY_RIGHT_FLAG = 16,
|
4455 |
-
WRAP_PARTIAL_FLAG = 32,
|
4456 |
-
WRAP_PARTIAL_RIGHT_FLAG = 64;
|
4457 |
-
|
4458 |
-
/* Built-in method references for those with the same name as other `lodash` methods. */
|
4459 |
-
var nativeMax = Math.max;
|
4460 |
-
|
4461 |
-
/**
|
4462 |
-
* Creates a function that either curries or invokes `func` with optional
|
4463 |
-
* `this` binding and partially applied arguments.
|
4464 |
-
*
|
4465 |
-
* @private
|
4466 |
-
* @param {Function|string} func The function or method name to wrap.
|
4467 |
-
* @param {number} bitmask The bitmask flags.
|
4468 |
-
* 1 - `_.bind`
|
4469 |
-
* 2 - `_.bindKey`
|
4470 |
-
* 4 - `_.curry` or `_.curryRight` of a bound function
|
4471 |
-
* 8 - `_.curry`
|
4472 |
-
* 16 - `_.curryRight`
|
4473 |
-
* 32 - `_.partial`
|
4474 |
-
* 64 - `_.partialRight`
|
4475 |
-
* 128 - `_.rearg`
|
4476 |
-
* 256 - `_.ary`
|
4477 |
-
* 512 - `_.flip`
|
4478 |
-
* @param {*} [thisArg] The `this` binding of `func`.
|
4479 |
-
* @param {Array} [partials] The arguments to be partially applied.
|
4480 |
-
* @param {Array} [holders] The `partials` placeholder indexes.
|
4481 |
-
* @param {Array} [argPos] The argument positions of the new function.
|
4482 |
-
* @param {number} [ary] The arity cap of `func`.
|
4483 |
-
* @param {number} [arity] The arity of `func`.
|
4484 |
-
* @returns {Function} Returns the new wrapped function.
|
4485 |
-
*/
|
4486 |
-
function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {
|
4487 |
-
var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;
|
4488 |
-
if (!isBindKey && typeof func != 'function') {
|
4489 |
-
throw new TypeError(FUNC_ERROR_TEXT);
|
4490 |
-
}
|
4491 |
-
var length = partials ? partials.length : 0;
|
4492 |
-
if (!length) {
|
4493 |
-
bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);
|
4494 |
-
partials = holders = undefined;
|
4495 |
-
}
|
4496 |
-
ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);
|
4497 |
-
arity = arity === undefined ? arity : toInteger(arity);
|
4498 |
-
length -= holders ? holders.length : 0;
|
4499 |
-
|
4500 |
-
if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {
|
4501 |
-
var partialsRight = partials,
|
4502 |
-
holdersRight = holders;
|
4503 |
-
|
4504 |
-
partials = holders = undefined;
|
4505 |
-
}
|
4506 |
-
var data = isBindKey ? undefined : getData(func);
|
4507 |
-
|
4508 |
-
var newData = [
|
4509 |
-
func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,
|
4510 |
-
argPos, ary, arity
|
4511 |
-
];
|
4512 |
-
|
4513 |
-
if (data) {
|
4514 |
-
mergeData(newData, data);
|
4515 |
-
}
|
4516 |
-
func = newData[0];
|
4517 |
-
bitmask = newData[1];
|
4518 |
-
thisArg = newData[2];
|
4519 |
-
partials = newData[3];
|
4520 |
-
holders = newData[4];
|
4521 |
-
arity = newData[9] = newData[9] === undefined
|
4522 |
-
? (isBindKey ? 0 : func.length)
|
4523 |
-
: nativeMax(newData[9] - length, 0);
|
4524 |
-
|
4525 |
-
if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {
|
4526 |
-
bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);
|
4527 |
-
}
|
4528 |
-
if (!bitmask || bitmask == WRAP_BIND_FLAG) {
|
4529 |
-
var result = createBind(func, bitmask, thisArg);
|
4530 |
-
} else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {
|
4531 |
-
result = createCurry(func, bitmask, arity);
|
4532 |
-
} else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {
|
4533 |
-
result = createPartial(func, bitmask, thisArg, partials);
|
4534 |
-
} else {
|
4535 |
-
result = createHybrid.apply(undefined, newData);
|
4536 |
-
}
|
4537 |
-
var setter = data ? baseSetData : setData;
|
4538 |
-
return setWrapToString(setter(result, newData), func, bitmask);
|
4539 |
-
}
|
4540 |
-
|
4541 |
-
module.exports = createWrap;
|
4542 |
-
|
4543 |
-
|
4544 |
-
/***/ }),
|
4545 |
-
/* 105 */
|
4546 |
-
/***/ (function(module, exports) {
|
4547 |
-
|
4548 |
-
/** Used as the internal argument placeholder. */
|
4549 |
-
var PLACEHOLDER = '__lodash_placeholder__';
|
4550 |
-
|
4551 |
-
/**
|
4552 |
-
* Replaces all `placeholder` elements in `array` with an internal placeholder
|
4553 |
-
* and returns an array of their indexes.
|
4554 |
-
*
|
4555 |
-
* @private
|
4556 |
-
* @param {Array} array The array to modify.
|
4557 |
-
* @param {*} placeholder The placeholder to replace.
|
4558 |
-
* @returns {Array} Returns the new array of placeholder indexes.
|
4559 |
-
*/
|
4560 |
-
function replaceHolders(array, placeholder) {
|
4561 |
-
var index = -1,
|
4562 |
-
length = array.length,
|
4563 |
-
resIndex = 0,
|
4564 |
-
result = [];
|
4565 |
-
|
4566 |
-
while (++index < length) {
|
4567 |
-
var value = array[index];
|
4568 |
-
if (value === placeholder || value === PLACEHOLDER) {
|
4569 |
-
array[index] = PLACEHOLDER;
|
4570 |
-
result[resIndex++] = index;
|
4571 |
-
}
|
4572 |
-
}
|
4573 |
-
return result;
|
4574 |
-
}
|
4575 |
-
|
4576 |
-
module.exports = replaceHolders;
|
4577 |
-
|
4578 |
-
|
4579 |
-
/***/ }),
|
4580 |
-
/* 106 */
|
4581 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4582 |
-
|
4583 |
-
var arrayFilter = __webpack_require__(255),
|
4584 |
-
stubArray = __webpack_require__(161);
|
4585 |
-
|
4586 |
-
/** Used for built-in method references. */
|
4587 |
-
var objectProto = Object.prototype;
|
4588 |
-
|
4589 |
-
/** Built-in value references. */
|
4590 |
-
var propertyIsEnumerable = objectProto.propertyIsEnumerable;
|
4591 |
-
|
4592 |
-
/* Built-in method references for those with the same name as other `lodash` methods. */
|
4593 |
-
var nativeGetSymbols = Object.getOwnPropertySymbols;
|
4594 |
-
|
4595 |
-
/**
|
4596 |
-
* Creates an array of the own enumerable symbols of `object`.
|
4597 |
-
*
|
4598 |
-
* @private
|
4599 |
-
* @param {Object} object The object to query.
|
4600 |
-
* @returns {Array} Returns the array of symbols.
|
4601 |
-
*/
|
4602 |
-
var getSymbols = !nativeGetSymbols ? stubArray : function(object) {
|
4603 |
-
if (object == null) {
|
4604 |
-
return [];
|
4605 |
-
}
|
4606 |
-
object = Object(object);
|
4607 |
-
return arrayFilter(nativeGetSymbols(object), function(symbol) {
|
4608 |
-
return propertyIsEnumerable.call(object, symbol);
|
4609 |
-
});
|
4610 |
-
};
|
4611 |
-
|
4612 |
-
module.exports = getSymbols;
|
4613 |
-
|
4614 |
-
|
4615 |
-
/***/ }),
|
4616 |
-
/* 107 */
|
4617 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4618 |
-
|
4619 |
-
var baseMatches = __webpack_require__(258),
|
4620 |
-
baseMatchesProperty = __webpack_require__(266),
|
4621 |
-
identity = __webpack_require__(52),
|
4622 |
-
isArray = __webpack_require__(6),
|
4623 |
-
property = __webpack_require__(272);
|
4624 |
-
|
4625 |
-
/**
|
4626 |
-
* The base implementation of `_.iteratee`.
|
4627 |
-
*
|
4628 |
-
* @private
|
4629 |
-
* @param {*} [value=_.identity] The value to convert to an iteratee.
|
4630 |
-
* @returns {Function} Returns the iteratee.
|
4631 |
-
*/
|
4632 |
-
function baseIteratee(value) {
|
4633 |
-
// Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
|
4634 |
-
// See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
|
4635 |
-
if (typeof value == 'function') {
|
4636 |
-
return value;
|
4637 |
-
}
|
4638 |
-
if (value == null) {
|
4639 |
-
return identity;
|
4640 |
-
}
|
4641 |
-
if (typeof value == 'object') {
|
4642 |
-
return isArray(value)
|
4643 |
-
? baseMatchesProperty(value[0], value[1])
|
4644 |
-
: baseMatches(value);
|
4645 |
-
}
|
4646 |
-
return property(value);
|
4647 |
-
}
|
4648 |
-
|
4649 |
-
module.exports = baseIteratee;
|
4650 |
-
|
4651 |
-
|
4652 |
-
/***/ }),
|
4653 |
-
/* 108 */
|
4654 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4655 |
-
|
4656 |
-
__webpack_require__(286);
|
4657 |
-
var global = __webpack_require__(9);
|
4658 |
-
var hide = __webpack_require__(30);
|
4659 |
-
var Iterators = __webpack_require__(41);
|
4660 |
-
var TO_STRING_TAG = __webpack_require__(12)('toStringTag');
|
4661 |
-
|
4662 |
-
var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
|
4663 |
-
'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
|
4664 |
-
'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
|
4665 |
-
'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
|
4666 |
-
'TextTrackList,TouchList').split(',');
|
4667 |
-
|
4668 |
-
for (var i = 0; i < DOMIterables.length; i++) {
|
4669 |
-
var NAME = DOMIterables[i];
|
4670 |
-
var Collection = global[NAME];
|
4671 |
-
var proto = Collection && Collection.prototype;
|
4672 |
-
if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
|
4673 |
-
Iterators[NAME] = Iterators.Array;
|
4674 |
-
}
|
4675 |
-
|
4676 |
-
|
4677 |
-
/***/ }),
|
4678 |
-
/* 109 */
|
4679 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4680 |
-
|
4681 |
-
var classof = __webpack_require__(110);
|
4682 |
-
var ITERATOR = __webpack_require__(12)('iterator');
|
4683 |
-
var Iterators = __webpack_require__(41);
|
4684 |
-
module.exports = __webpack_require__(10).getIteratorMethod = function (it) {
|
4685 |
-
if (it != undefined) return it[ITERATOR]
|
4686 |
-
|| it['@@iterator']
|
4687 |
-
|| Iterators[classof(it)];
|
4688 |
-
};
|
4689 |
-
|
4690 |
-
|
4691 |
-
/***/ }),
|
4692 |
-
/* 110 */
|
4693 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4694 |
-
|
4695 |
-
// getting tag from 19.1.3.6 Object.prototype.toString()
|
4696 |
-
var cof = __webpack_require__(48);
|
4697 |
-
var TAG = __webpack_require__(12)('toStringTag');
|
4698 |
-
// ES3 wrong here
|
4699 |
-
var ARG = cof(function () { return arguments; }()) == 'Arguments';
|
4700 |
-
|
4701 |
-
// fallback for IE11 Script Access Denied error
|
4702 |
-
var tryGet = function (it, key) {
|
4703 |
-
try {
|
4704 |
-
return it[key];
|
4705 |
-
} catch (e) { /* empty */ }
|
4706 |
-
};
|
4707 |
-
|
4708 |
-
module.exports = function (it) {
|
4709 |
-
var O, T, B;
|
4710 |
-
return it === undefined ? 'Undefined' : it === null ? 'Null'
|
4711 |
-
// @@toStringTag case
|
4712 |
-
: typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
|
4713 |
-
// builtinTag case
|
4714 |
-
: ARG ? cof(O)
|
4715 |
-
// ES3 arguments fallback
|
4716 |
-
: (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
|
4717 |
-
};
|
4718 |
-
|
4719 |
-
|
4720 |
-
/***/ }),
|
4721 |
-
/* 111 */,
|
4722 |
-
/* 112 */
|
4723 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4724 |
-
|
4725 |
-
// 7.1.1 ToPrimitive(input [, PreferredType])
|
4726 |
-
var isObject = __webpack_require__(24);
|
4727 |
-
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
|
4728 |
-
// and the second argument - flag - preferred type is a string
|
4729 |
-
module.exports = function (it, S) {
|
4730 |
-
if (!isObject(it)) return it;
|
4731 |
-
var fn, val;
|
4732 |
-
if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
|
4733 |
-
if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
|
4734 |
-
if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
|
4735 |
-
throw TypeError("Can't convert object to primitive value");
|
4736 |
-
};
|
4737 |
-
|
4738 |
-
|
4739 |
-
/***/ }),
|
4740 |
-
/* 113 */
|
4741 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4742 |
-
|
4743 |
-
var baseFindIndex = __webpack_require__(175),
|
4744 |
-
baseIsNaN = __webpack_require__(243),
|
4745 |
-
strictIndexOf = __webpack_require__(244);
|
4746 |
-
|
4747 |
-
/**
|
4748 |
-
* The base implementation of `_.indexOf` without `fromIndex` bounds checks.
|
4749 |
-
*
|
4750 |
-
* @private
|
4751 |
-
* @param {Array} array The array to inspect.
|
4752 |
-
* @param {*} value The value to search for.
|
4753 |
-
* @param {number} fromIndex The index to search from.
|
4754 |
-
* @returns {number} Returns the index of the matched value, else `-1`.
|
4755 |
-
*/
|
4756 |
-
function baseIndexOf(array, value, fromIndex) {
|
4757 |
-
return value === value
|
4758 |
-
? strictIndexOf(array, value, fromIndex)
|
4759 |
-
: baseFindIndex(array, baseIsNaN, fromIndex);
|
4760 |
-
}
|
4761 |
-
|
4762 |
-
module.exports = baseIndexOf;
|
4763 |
-
|
4764 |
-
|
4765 |
-
/***/ }),
|
4766 |
-
/* 114 */
|
4767 |
-
/***/ (function(module, exports) {
|
4768 |
-
|
4769 |
-
/**
|
4770 |
-
* A faster alternative to `Function#apply`, this function invokes `func`
|
4771 |
-
* with the `this` binding of `thisArg` and the arguments of `args`.
|
4772 |
-
*
|
4773 |
-
* @private
|
4774 |
-
* @param {Function} func The function to invoke.
|
4775 |
-
* @param {*} thisArg The `this` binding of `func`.
|
4776 |
-
* @param {Array} args The arguments to invoke `func` with.
|
4777 |
-
* @returns {*} Returns the result of `func`.
|
4778 |
-
*/
|
4779 |
-
function apply(func, thisArg, args) {
|
4780 |
-
switch (args.length) {
|
4781 |
-
case 0: return func.call(thisArg);
|
4782 |
-
case 1: return func.call(thisArg, args[0]);
|
4783 |
-
case 2: return func.call(thisArg, args[0], args[1]);
|
4784 |
-
case 3: return func.call(thisArg, args[0], args[1], args[2]);
|
4785 |
-
}
|
4786 |
-
return func.apply(thisArg, args);
|
4787 |
-
}
|
4788 |
-
|
4789 |
-
module.exports = apply;
|
4790 |
-
|
4791 |
-
|
4792 |
-
/***/ }),
|
4793 |
-
/* 115 */
|
4794 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4795 |
-
|
4796 |
-
var baseCreate = __webpack_require__(72),
|
4797 |
-
baseLodash = __webpack_require__(116);
|
4798 |
-
|
4799 |
-
/** Used as references for the maximum length and index of an array. */
|
4800 |
-
var MAX_ARRAY_LENGTH = 4294967295;
|
4801 |
-
|
4802 |
-
/**
|
4803 |
-
* Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.
|
4804 |
-
*
|
4805 |
-
* @private
|
4806 |
-
* @constructor
|
4807 |
-
* @param {*} value The value to wrap.
|
4808 |
-
*/
|
4809 |
-
function LazyWrapper(value) {
|
4810 |
-
this.__wrapped__ = value;
|
4811 |
-
this.__actions__ = [];
|
4812 |
-
this.__dir__ = 1;
|
4813 |
-
this.__filtered__ = false;
|
4814 |
-
this.__iteratees__ = [];
|
4815 |
-
this.__takeCount__ = MAX_ARRAY_LENGTH;
|
4816 |
-
this.__views__ = [];
|
4817 |
-
}
|
4818 |
-
|
4819 |
-
// Ensure `LazyWrapper` is an instance of `baseLodash`.
|
4820 |
-
LazyWrapper.prototype = baseCreate(baseLodash.prototype);
|
4821 |
-
LazyWrapper.prototype.constructor = LazyWrapper;
|
4822 |
-
|
4823 |
-
module.exports = LazyWrapper;
|
4824 |
-
|
4825 |
-
|
4826 |
-
/***/ }),
|
4827 |
-
/* 116 */
|
4828 |
-
/***/ (function(module, exports) {
|
4829 |
-
|
4830 |
-
/**
|
4831 |
-
* The function whose prototype chain sequence wrappers inherit from.
|
4832 |
-
*
|
4833 |
-
* @private
|
4834 |
-
*/
|
4835 |
-
function baseLodash() {
|
4836 |
-
// No operation performed.
|
4837 |
-
}
|
4838 |
-
|
4839 |
-
module.exports = baseLodash;
|
4840 |
-
|
4841 |
-
|
4842 |
-
/***/ }),
|
4843 |
-
/* 117 */
|
4844 |
-
/***/ (function(module, exports) {
|
4845 |
-
|
4846 |
-
/**
|
4847 |
-
* A specialized version of `_.forEach` for arrays without support for
|
4848 |
-
* iteratee shorthands.
|
4849 |
-
*
|
4850 |
-
* @private
|
4851 |
-
* @param {Array} [array] The array to iterate over.
|
4852 |
-
* @param {Function} iteratee The function invoked per iteration.
|
4853 |
-
* @returns {Array} Returns `array`.
|
4854 |
-
*/
|
4855 |
-
function arrayEach(array, iteratee) {
|
4856 |
-
var index = -1,
|
4857 |
-
length = array == null ? 0 : array.length;
|
4858 |
-
|
4859 |
-
while (++index < length) {
|
4860 |
-
if (iteratee(array[index], index, array) === false) {
|
4861 |
-
break;
|
4862 |
-
}
|
4863 |
-
}
|
4864 |
-
return array;
|
4865 |
-
}
|
4866 |
-
|
4867 |
-
module.exports = arrayEach;
|
4868 |
-
|
4869 |
-
|
4870 |
-
/***/ }),
|
4871 |
-
/* 118 */
|
4872 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4873 |
-
|
4874 |
-
var overArg = __webpack_require__(160);
|
4875 |
-
|
4876 |
-
/** Built-in value references. */
|
4877 |
-
var getPrototype = overArg(Object.getPrototypeOf, Object);
|
4878 |
-
|
4879 |
-
module.exports = getPrototype;
|
4880 |
-
|
4881 |
-
|
4882 |
-
/***/ }),
|
4883 |
-
/* 119 */
|
4884 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4885 |
-
|
4886 |
-
var Uint8Array = __webpack_require__(164);
|
4887 |
-
|
4888 |
-
/**
|
4889 |
-
* Creates a clone of `arrayBuffer`.
|
4890 |
-
*
|
4891 |
-
* @private
|
4892 |
-
* @param {ArrayBuffer} arrayBuffer The array buffer to clone.
|
4893 |
-
* @returns {ArrayBuffer} Returns the cloned array buffer.
|
4894 |
-
*/
|
4895 |
-
function cloneArrayBuffer(arrayBuffer) {
|
4896 |
-
var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
|
4897 |
-
new Uint8Array(result).set(new Uint8Array(arrayBuffer));
|
4898 |
-
return result;
|
4899 |
-
}
|
4900 |
-
|
4901 |
-
module.exports = cloneArrayBuffer;
|
4902 |
-
|
4903 |
-
|
4904 |
-
/***/ }),
|
4905 |
-
/* 120 */
|
4906 |
-
/***/ (function(module, exports) {
|
4907 |
-
|
4908 |
-
exports.f = Object.getOwnPropertySymbols;
|
4909 |
-
|
4910 |
-
|
4911 |
-
/***/ }),
|
4912 |
-
/* 121 */
|
4913 |
-
/***/ (function(module, exports) {
|
4914 |
-
|
4915 |
-
/**
|
4916 |
-
* Checks if `value` is `undefined`.
|
4917 |
-
*
|
4918 |
-
* @static
|
4919 |
-
* @since 0.1.0
|
4920 |
-
* @memberOf _
|
4921 |
-
* @category Lang
|
4922 |
-
* @param {*} value The value to check.
|
4923 |
-
* @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.
|
4924 |
-
* @example
|
4925 |
-
*
|
4926 |
-
* _.isUndefined(void 0);
|
4927 |
-
* // => true
|
4928 |
-
*
|
4929 |
-
* _.isUndefined(null);
|
4930 |
-
* // => false
|
4931 |
-
*/
|
4932 |
-
function isUndefined(value) {
|
4933 |
-
return value === undefined;
|
4934 |
-
}
|
4935 |
-
|
4936 |
-
module.exports = isUndefined;
|
4937 |
-
|
4938 |
-
|
4939 |
-
/***/ }),
|
4940 |
-
/* 122 */
|
4941 |
-
/***/ (function(module, exports, __webpack_require__) {
|
4942 |
-
|
4943 |
-
"use strict";
|
4944 |
-
|
4945 |
-
|
4946 |
-
exports.__esModule = true;
|
4947 |
-
|
4948 |
-
var _promise = __webpack_require__(284);
|
4949 |
-
|
4950 |
-
var _promise2 = _interopRequireDefault(_promise);
|
4951 |
-
|
4952 |
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
4953 |
-
|
4954 |
-
exports.default = function (fn) {
|
4955 |
-
return function () {
|
4956 |
-
var gen = fn.apply(this, arguments);
|
4957 |
-
return new _promise2.default(function (resolve, reject) {
|
4958 |
-
function step(key, arg) {
|
4959 |
-
try {
|
4960 |
-
var info = gen[key](arg);
|
4961 |
-
var value = info.value;
|
4962 |
-
} catch (error) {
|
4963 |
-
reject(error);
|
4964 |
-
return;
|
4965 |
-
}
|
4966 |
-
|
4967 |
-
if (info.done) {
|
4968 |
-
resolve(value);
|
4969 |
-
} else {
|
4970 |
-
return _promise2.default.resolve(value).then(function (value) {
|
4971 |
-
step("next", value);
|
4972 |
-
}, function (err) {
|
4973 |
-
step("throw", err);
|
4974 |
-
});
|
4975 |
-
}
|
4976 |
-
}
|
4977 |
-
|
4978 |
-
return step("next");
|
4979 |
-
});
|
4980 |
-
};
|
4981 |
-
};
|
4982 |
-
|
4983 |
-
/***/ }),
|
4984 |
-
/* 123 */
|
4985 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
4986 |
-
|
4987 |
-
"use strict";
|
4988 |
-
/* WEBPACK VAR INJECTION */(function(global, module) {/* harmony import */ var _ponyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(197);
|
4989 |
-
/* global window */
|
4990 |
-
|
4991 |
-
|
4992 |
-
var root;
|
4993 |
-
|
4994 |
-
if (typeof self !== 'undefined') {
|
4995 |
-
root = self;
|
4996 |
-
} else if (typeof window !== 'undefined') {
|
4997 |
-
root = window;
|
4998 |
-
} else if (typeof global !== 'undefined') {
|
4999 |
-
root = global;
|
5000 |
-
} else if (true) {
|
5001 |
-
root = module;
|
5002 |
-
} else {}
|
5003 |
-
|
5004 |
-
var result = Object(_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(root);
|
5005 |
-
/* harmony default export */ __webpack_exports__["a"] = (result);
|
5006 |
-
|
5007 |
-
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(125), __webpack_require__(313)(module)))
|
5008 |
-
|
5009 |
-
/***/ }),
|
5010 |
-
/* 124 */
|
5011 |
-
/***/ (function(module, exports, __webpack_require__) {
|
5012 |
-
|
5013 |
-
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (root, factory){
|
5014 |
-
'use strict';
|
5015 |
-
|
5016 |
-
/*istanbul ignore next:cant test*/
|
5017 |
-
if ( true && typeof module.exports === 'object') {
|
5018 |
-
module.exports = factory();
|
5019 |
-
} else if (true) {
|
5020 |
-
// AMD. Register as an anonymous module.
|
5021 |
-
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
|
5022 |
-
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
|
5023 |
-
(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
|
5024 |
-
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
|
5025 |
-
} else {}
|
5026 |
-
})(this, function(){
|
5027 |
-
'use strict';
|
5028 |
-
|
5029 |
-
var toStr = Object.prototype.toString;
|
5030 |
-
function hasOwnProperty(obj, prop) {
|
5031 |
-
if(obj == null) {
|
5032 |
-
return false
|
5033 |
-
}
|
5034 |
-
//to handle objects with null prototypes (too edge case?)
|
5035 |
-
return Object.prototype.hasOwnProperty.call(obj, prop)
|
5036 |
-
}
|
5037 |
-
|
5038 |
-
function isEmpty(value){
|
5039 |
-
if (!value) {
|
5040 |
-
return true;
|
5041 |
-
}
|
5042 |
-
if (isArray(value) && value.length === 0) {
|
5043 |
-
return true;
|
5044 |
-
} else if (typeof value !== 'string') {
|
5045 |
-
for (var i in value) {
|
5046 |
-
if (hasOwnProperty(value, i)) {
|
5047 |
-
return false;
|
5048 |
-
}
|
5049 |
-
}
|
5050 |
-
return true;
|
5051 |
-
}
|
5052 |
-
return false;
|
5053 |
-
}
|
5054 |
-
|
5055 |
-
function toString(type){
|
5056 |
-
return toStr.call(type);
|
5057 |
-
}
|
5058 |
-
|
5059 |
-
function isObject(obj){
|
5060 |
-
return typeof obj === 'object' && toString(obj) === "[object Object]";
|
5061 |
-
}
|
5062 |
-
|
5063 |
-
var isArray = Array.isArray || function(obj){
|
5064 |
-
/*istanbul ignore next:cant test*/
|
5065 |
-
return toStr.call(obj) === '[object Array]';
|
5066 |
-
}
|
5067 |
-
|
5068 |
-
function isBoolean(obj){
|
5069 |
-
return typeof obj === 'boolean' || toString(obj) === '[object Boolean]';
|
5070 |
-
}
|
5071 |
-
|
5072 |
-
function getKey(key){
|
5073 |
-
var intKey = parseInt(key);
|
5074 |
-
if (intKey.toString() === key) {
|
5075 |
-
return intKey;
|
5076 |
-
}
|
5077 |
-
return key;
|
5078 |
-
}
|
5079 |
-
|
5080 |
-
function factory(options) {
|
5081 |
-
options = options || {}
|
5082 |
-
|
5083 |
-
var objectPath = function(obj) {
|
5084 |
-
return Object.keys(objectPath).reduce(function(proxy, prop) {
|
5085 |
-
if(prop === 'create') {
|
5086 |
-
return proxy;
|
5087 |
-
}
|
5088 |
-
|
5089 |
-
/*istanbul ignore else*/
|
5090 |
-
if (typeof objectPath[prop] === 'function') {
|
5091 |
-
proxy[prop] = objectPath[prop].bind(objectPath, obj);
|
5092 |
-
}
|
5093 |
-
|
5094 |
-
return proxy;
|
5095 |
-
}, {});
|
5096 |
-
};
|
5097 |
-
|
5098 |
-
function hasShallowProperty(obj, prop) {
|
5099 |
-
return (options.includeInheritedProps || (typeof prop === 'number' && Array.isArray(obj)) || hasOwnProperty(obj, prop))
|
5100 |
-
}
|
5101 |
-
|
5102 |
-
function getShallowProperty(obj, prop) {
|
5103 |
-
if (hasShallowProperty(obj, prop)) {
|
5104 |
-
return obj[prop];
|
5105 |
-
}
|
5106 |
-
}
|
5107 |
-
|
5108 |
-
function set(obj, path, value, doNotReplace){
|
5109 |
-
if (typeof path === 'number') {
|
5110 |
-
path = [path];
|
5111 |
-
}
|
5112 |
-
if (!path || path.length === 0) {
|
5113 |
-
return obj;
|
5114 |
-
}
|
5115 |
-
if (typeof path === 'string') {
|
5116 |
-
return set(obj, path.split('.').map(getKey), value, doNotReplace);
|
5117 |
-
}
|
5118 |
-
var currentPath = path[0];
|
5119 |
-
var currentValue = getShallowProperty(obj, currentPath);
|
5120 |
-
if (path.length === 1) {
|
5121 |
-
if (currentValue === void 0 || !doNotReplace) {
|
5122 |
-
obj[currentPath] = value;
|
5123 |
-
}
|
5124 |
-
return currentValue;
|
5125 |
-
}
|
5126 |
-
|
5127 |
-
if (currentValue === void 0) {
|
5128 |
-
//check if we assume an array
|
5129 |
-
if(typeof path[1] === 'number') {
|
5130 |
-
obj[currentPath] = [];
|
5131 |
-
} else {
|
5132 |
-
obj[currentPath] = {};
|
5133 |
-
}
|
5134 |
-
}
|
5135 |
-
|
5136 |
-
return set(obj[currentPath], path.slice(1), value, doNotReplace);
|
5137 |
-
}
|
5138 |
-
|
5139 |
-
objectPath.has = function (obj, path) {
|
5140 |
-
if (typeof path === 'number') {
|
5141 |
-
path = [path];
|
5142 |
-
} else if (typeof path === 'string') {
|
5143 |
-
path = path.split('.');
|
5144 |
-
}
|
5145 |
-
|
5146 |
-
if (!path || path.length === 0) {
|
5147 |
-
return !!obj;
|
5148 |
-
}
|
5149 |
-
|
5150 |
-
for (var i = 0; i < path.length; i++) {
|
5151 |
-
var j = getKey(path[i]);
|
5152 |
-
|
5153 |
-
if((typeof j === 'number' && isArray(obj) && j < obj.length) ||
|
5154 |
-
(options.includeInheritedProps ? (j in Object(obj)) : hasOwnProperty(obj, j))) {
|
5155 |
-
obj = obj[j];
|
5156 |
-
} else {
|
5157 |
-
return false;
|
5158 |
-
}
|
5159 |
-
}
|
5160 |
-
|
5161 |
-
return true;
|
5162 |
-
};
|
5163 |
-
|
5164 |
-
objectPath.ensureExists = function (obj, path, value){
|
5165 |
-
return set(obj, path, value, true);
|
5166 |
-
};
|
5167 |
-
|
5168 |
-
objectPath.set = function (obj, path, value, doNotReplace){
|
5169 |
-
return set(obj, path, value, doNotReplace);
|
5170 |
-
};
|
5171 |
-
|
5172 |
-
objectPath.insert = function (obj, path, value, at){
|
5173 |
-
var arr = objectPath.get(obj, path);
|
5174 |
-
at = ~~at;
|
5175 |
-
if (!isArray(arr)) {
|
5176 |
-
arr = [];
|
5177 |
-
objectPath.set(obj, path, arr);
|
5178 |
-
}
|
5179 |
-
arr.splice(at, 0, value);
|
5180 |
-
};
|
5181 |
-
|
5182 |
-
objectPath.empty = function(obj, path) {
|
5183 |
-
if (isEmpty(path)) {
|
5184 |
-
return void 0;
|
5185 |
-
}
|
5186 |
-
if (obj == null) {
|
5187 |
-
return void 0;
|
5188 |
-
}
|
5189 |
-
|
5190 |
-
var value, i;
|
5191 |
-
if (!(value = objectPath.get(obj, path))) {
|
5192 |
-
return void 0;
|
5193 |
-
}
|
5194 |
-
|
5195 |
-
if (typeof value === 'string') {
|
5196 |
-
return objectPath.set(obj, path, '');
|
5197 |
-
} else if (isBoolean(value)) {
|
5198 |
-
return objectPath.set(obj, path, false);
|
5199 |
-
} else if (typeof value === 'number') {
|
5200 |
-
return objectPath.set(obj, path, 0);
|
5201 |
-
} else if (isArray(value)) {
|
5202 |
-
value.length = 0;
|
5203 |
-
} else if (isObject(value)) {
|
5204 |
-
for (i in value) {
|
5205 |
-
if (hasShallowProperty(value, i)) {
|
5206 |
-
delete value[i];
|
5207 |
-
}
|
5208 |
-
}
|
5209 |
-
} else {
|
5210 |
-
return objectPath.set(obj, path, null);
|
5211 |
-
}
|
5212 |
-
};
|
5213 |
-
|
5214 |
-
objectPath.push = function (obj, path /*, values */){
|
5215 |
-
var arr = objectPath.get(obj, path);
|
5216 |
-
if (!isArray(arr)) {
|
5217 |
-
arr = [];
|
5218 |
-
objectPath.set(obj, path, arr);
|
5219 |
-
}
|
5220 |
-
|
5221 |
-
arr.push.apply(arr, Array.prototype.slice.call(arguments, 2));
|
5222 |
-
};
|
5223 |
-
|
5224 |
-
objectPath.coalesce = function (obj, paths, defaultValue) {
|
5225 |
-
var value;
|
5226 |
-
|
5227 |
-
for (var i = 0, len = paths.length; i < len; i++) {
|
5228 |
-
if ((value = objectPath.get(obj, paths[i])) !== void 0) {
|
5229 |
-
return value;
|
5230 |
-
}
|
5231 |
-
}
|
5232 |
-
|
5233 |
-
return defaultValue;
|
5234 |
-
};
|
5235 |
-
|
5236 |
-
objectPath.get = function (obj, path, defaultValue){
|
5237 |
-
if (typeof path === 'number') {
|
5238 |
-
path = [path];
|
5239 |
-
}
|
5240 |
-
if (!path || path.length === 0) {
|
5241 |
-
return obj;
|
5242 |
-
}
|
5243 |
-
if (obj == null) {
|
5244 |
-
return defaultValue;
|
5245 |
-
}
|
5246 |
-
if (typeof path === 'string') {
|
5247 |
-
return objectPath.get(obj, path.split('.'), defaultValue);
|
5248 |
-
}
|
5249 |
-
|
5250 |
-
var currentPath = getKey(path[0]);
|
5251 |
-
var nextObj = getShallowProperty(obj, currentPath)
|
5252 |
-
if (nextObj === void 0) {
|
5253 |
-
return defaultValue;
|
5254 |
-
}
|
5255 |
-
|
5256 |
-
if (path.length === 1) {
|
5257 |
-
return nextObj;
|
5258 |
-
}
|
5259 |
-
|
5260 |
-
return objectPath.get(obj[currentPath], path.slice(1), defaultValue);
|
5261 |
-
};
|
5262 |
-
|
5263 |
-
objectPath.del = function del(obj, path) {
|
5264 |
-
if (typeof path === 'number') {
|
5265 |
-
path = [path];
|
5266 |
-
}
|
5267 |
-
|
5268 |
-
if (obj == null) {
|
5269 |
-
return obj;
|
5270 |
-
}
|
5271 |
-
|
5272 |
-
if (isEmpty(path)) {
|
5273 |
-
return obj;
|
5274 |
-
}
|
5275 |
-
if(typeof path === 'string') {
|
5276 |
-
return objectPath.del(obj, path.split('.'));
|
5277 |
-
}
|
5278 |
-
|
5279 |
-
var currentPath = getKey(path[0]);
|
5280 |
-
if (!hasShallowProperty(obj, currentPath)) {
|
5281 |
-
return obj;
|
5282 |
-
}
|
5283 |
-
|
5284 |
-
if(path.length === 1) {
|
5285 |
-
if (isArray(obj)) {
|
5286 |
-
obj.splice(currentPath, 1);
|
5287 |
-
} else {
|
5288 |
-
delete obj[currentPath];
|
5289 |
-
}
|
5290 |
-
} else {
|
5291 |
-
return objectPath.del(obj[currentPath], path.slice(1));
|
5292 |
-
}
|
5293 |
-
|
5294 |
-
return obj;
|
5295 |
-
}
|
5296 |
-
|
5297 |
-
return objectPath;
|
5298 |
-
}
|
5299 |
-
|
5300 |
-
var mod = factory();
|
5301 |
-
mod.create = factory;
|
5302 |
-
mod.withInheritedProps = factory({includeInheritedProps: true})
|
5303 |
-
return mod;
|
5304 |
-
});
|
5305 |
-
|
5306 |
-
|
5307 |
-
/***/ }),
|
5308 |
-
/* 125 */
|
5309 |
-
/***/ (function(module, exports) {
|
5310 |
-
|
5311 |
-
var g;
|
5312 |
-
|
5313 |
-
// This works in non-strict mode
|
5314 |
-
g = (function() {
|
5315 |
-
return this;
|
5316 |
-
})();
|
5317 |
-
|
5318 |
-
try {
|
5319 |
-
// This works if eval is allowed (see CSP)
|
5320 |
-
g = g || new Function("return this")();
|
5321 |
-
} catch (e) {
|
5322 |
-
// This works if the window reference is available
|
5323 |
-
if (typeof window === "object") g = window;
|
5324 |
-
}
|
5325 |
-
|
5326 |
-
// g can still be undefined, but nothing to do about it...
|
5327 |
-
// We return undefined, instead of nothing here, so it's
|
5328 |
-
// easier to handle this case. if(!global) { ...}
|
5329 |
-
|
5330 |
-
module.exports = g;
|
5331 |
-
|
5332 |
-
|
5333 |
-
/***/ }),
|
5334 |
-
/* 126 */
|
5335 |
-
/***/ (function(module, exports, __webpack_require__) {
|
5336 |
-
|
5337 |
-
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
|
5338 |
-
var anObject = __webpack_require__(17);
|
5339 |
-
var dPs = __webpack_require__(212);
|
5340 |
-
var enumBugKeys = __webpack_require__(102);
|
5341 |
-
var IE_PROTO = __webpack_require__(82)('IE_PROTO');
|
5342 |
-
var Empty = function () { /* empty */ };
|
5343 |
-
var PROTOTYPE = 'prototype';
|
5344 |
-
|
5345 |
-
// Create object with fake `null` prototype: use iframe Object with cleared prototype
|
5346 |
-
var createDict = function () {
|
5347 |
-
// Thrash, waste and sodomy: IE GC bug
|
5348 |
-
var iframe = __webpack_require__(80)('iframe');
|
5349 |
-
var i = enumBugKeys.length;
|
5350 |
-
var lt = '<';
|
5351 |
-
var gt = '>';
|
5352 |
-
var iframeDocument;
|
5353 |
-
iframe.style.display = 'none';
|
5354 |
-
__webpack_require__(133).appendChild(iframe);
|
5355 |
-
iframe.src = 'javascript:'; // eslint-disable-line no-script-url
|
5356 |
-
// createDict = iframe.contentWindow.Object;
|
5357 |
-
// html.removeChild(iframe);
|
5358 |
-
iframeDocument = iframe.contentWindow.document;
|
5359 |
-
iframeDocument.open();
|
5360 |
-
iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
|
5361 |
-
iframeDocument.close();
|
5362 |
-
createDict = iframeDocument.F;
|
5363 |
-
while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
|
5364 |
-
return createDict();
|
5365 |
-
};
|
5366 |
-
|
5367 |
-
module.exports = Object.create || function create(O, Properties) {
|
5368 |
-
var result;
|
5369 |
-
if (O !== null) {
|
5370 |
-
Empty[PROTOTYPE] = anObject(O);
|
5371 |
-
result = new Empty();
|
5372 |
-
Empty[PROTOTYPE] = null;
|
5373 |
-
// add "__proto__" for Object.getPrototypeOf polyfill
|
5374 |
-
result[IE_PROTO] = O;
|
5375 |
-
} else result = createDict();
|
5376 |
-
return Properties === undefined ? result : dPs(result, Properties);
|
5377 |
-
};
|
5378 |
-
|
5379 |
-
|
5380 |
-
/***/ }),
|
5381 |
-
/* 127 */
|
5382 |
-
/***/ (function(module, exports, __webpack_require__) {
|
5383 |
-
|
5384 |
-
var baseIndexOf = __webpack_require__(113),
|
5385 |
-
isArrayLike = __webpack_require__(42),
|
5386 |
-
isString = __webpack_require__(98),
|
5387 |
-
toInteger = __webpack_require__(85),
|
5388 |
-
values = __webpack_require__(364);
|
5389 |
-
|
5390 |
-
/* Built-in method references for those with the same name as other `lodash` methods. */
|
5391 |
-
var nativeMax = Math.max;
|
5392 |
-
|
5393 |
-
/**
|
5394 |
-
* Checks if `value` is in `collection`. If `collection` is a string, it's
|
5395 |
-
* checked for a substring of `value`, otherwise
|
5396 |
-
* [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
|
5397 |
-
* is used for equality comparisons. If `fromIndex` is negative, it's used as
|
5398 |
-
* the offset from the end of `collection`.
|
5399 |
-
*
|
5400 |
-
* @static
|
5401 |
-
* @memberOf _
|
5402 |
-
* @since 0.1.0
|
5403 |
-
* @category Collection
|
5404 |
-
* @param {Array|Object|string} collection The collection to inspect.
|
5405 |
-
* @param {*} value The value to search for.
|
5406 |
-
* @param {number} [fromIndex=0] The index to search from.
|
5407 |
-
* @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.
|
5408 |
-
* @returns {boolean} Returns `true` if `value` is found, else `false`.
|
5409 |
-
* @example
|
5410 |
-
*
|
5411 |
-
* _.includes([1, 2, 3], 1);
|
5412 |
-
* // => true
|
5413 |
-
*
|
5414 |
-
* _.includes([1, 2, 3], 1, 2);
|
5415 |
-
* // => false
|
5416 |
-
*
|
5417 |
-
* _.includes({ 'a': 1, 'b': 2 }, 1);
|
5418 |
-
* // => true
|
5419 |
-
*
|
5420 |
-
* _.includes('abcd', 'bc');
|
5421 |
-
* // => true
|
5422 |
-
*/
|
5423 |
-
function includes(collection, value, fromIndex, guard) {
|
5424 |
-
collection = isArrayLike(collection) ? collection : values(collection);
|
5425 |
-
fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;
|
5426 |
-
|
5427 |
-
var length = collection.length;
|
5428 |
-
if (fromIndex < 0) {
|
5429 |
-
fromIndex = nativeMax(length + fromIndex, 0);
|
5430 |
-
}
|
5431 |
-
return isString(collection)
|
5432 |
-
? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)
|
5433 |
-
: (!!length && baseIndexOf(collection, value, fromIndex) > -1);
|
5434 |
-
}
|
5435 |
-
|
5436 |
-
module.exports = includes;
|
5437 |
-
|
5438 |
-
|
5439 |
-
/***/ }),
|
5440 |
-
/* 128 */
|
5441 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
5442 |
-
|
5443 |
-
"use strict";
|
5444 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EVENT_NAMESPACE; });
|
5445 |
-
/* unused harmony export dispatch */
|
5446 |
-
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return intercept; });
|
5447 |
-
/* harmony import */ var babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);
|
5448 |
-
/* harmony import */ var babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__);
|
5449 |
-
/* harmony import */ var babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27);
|
5450 |
-
/* harmony import */ var babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__);
|
5451 |
-
/* harmony import */ var babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22);
|
5452 |
-
/* harmony import */ var babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__);
|
5453 |
-
/* harmony import */ var babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28);
|
5454 |
-
/* harmony import */ var babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3__);
|
5455 |
-
/* harmony import */ var lodash_noop__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
|
5456 |
-
/* harmony import */ var lodash_noop__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_noop__WEBPACK_IMPORTED_MODULE_4__);
|
5457 |
-
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(2);
|
5458 |
-
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_5__);
|
5459 |
-
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(0);
|
5460 |
-
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);
|
5461 |
-
|
5462 |
-
|
5463 |
-
|
5464 |
-
|
5465 |
-
|
5466 |
-
/* eslint-disable max-len */
|
5467 |
-
/**
|
5468 |
-
* External dependencies
|
5469 |
-
*/
|
5470 |
-
|
5471 |
-
|
5472 |
-
|
5473 |
-
|
5474 |
-
var ESCAPE_KEY = 27;
|
5475 |
-
var EVENT_NAMESPACE = 'tribe:click:proxy';
|
5476 |
-
var dispatch = function dispatch(e) {
|
5477 |
-
e.target.dispatchEvent(new CustomEvent(EVENT_NAMESPACE, { bubbles: true }));
|
5478 |
-
};
|
5479 |
-
var intercept = function intercept(e) {
|
5480 |
-
return e.stopPropagation();
|
5481 |
-
};
|
5482 |
-
|
5483 |
-
/* harmony default export */ __webpack_exports__["b"] = (function (WrappedComponent) {
|
5484 |
-
/**
|
5485 |
-
* Prevents clicks on block or blacklisted DOM elements
|
5486 |
-
* from closing the block
|
5487 |
-
*
|
5488 |
-
* @class WithBlockCloser
|
5489 |
-
* @extends {PureComponent}
|
5490 |
-
*/
|
5491 |
-
var WithBlockCloser = function (_PureComponent) {
|
5492 |
-
babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_3___default()(WithBlockCloser, _PureComponent);
|
5493 |
-
|
5494 |
-
function WithBlockCloser() {
|
5495 |
-
var _ref;
|
5496 |
-
|
5497 |
-
var _temp, _this, _ret;
|
5498 |
-
|
5499 |
-
babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0___default()(this, WithBlockCloser);
|
5500 |
-
|
5501 |
-
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
5502 |
-
args[_key] = arguments[_key];
|
5503 |
-
}
|
5504 |
-
|
5505 |
-
return _ret = (_temp = (_this = babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2___default()(this, (_ref = WithBlockCloser.__proto__ || Object.getPrototypeOf(WithBlockCloser)).call.apply(_ref, [this].concat(args))), _this), _this.nodeRef = react__WEBPACK_IMPORTED_MODULE_5___default.a.createRef(), _this._eventNamespace = EVENT_NAMESPACE, _this._dispatchClickProxyEvent = dispatch, _this._interceptClickProxyEvent = intercept, _this.handleKeyDown = function (e) {
|
5506 |
-
if (e.keyCode === ESCAPE_KEY) {
|
5507 |
-
_this.props.onClose();
|
5508 |
-
}
|
5509 |
-
}, _this.handleClick = function () {
|
5510 |
-
return _this.props.onClose();
|
5511 |
-
}, _temp), babel_runtime_helpers_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2___default()(_this, _ret);
|
5512 |
-
}
|
5513 |
-
|
5514 |
-
/**
|
5515 |
-
* dispatches custom events
|
5516 |
-
*
|
5517 |
-
* @memberof WithBlockCloser
|
5518 |
-
* @param {Event} e event
|
5519 |
-
*/
|
5520 |
-
|
5521 |
-
|
5522 |
-
// Prevent CustomEvents from propagating to document proxy listeners
|
5523 |
-
|
5524 |
-
|
5525 |
-
/**
|
5526 |
-
* keydown handler
|
5527 |
-
*
|
5528 |
-
* @memberof WithBlockCloser
|
5529 |
-
* @param {Event} e event
|
5530 |
-
*/
|
5531 |
-
|
5532 |
-
|
5533 |
-
babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1___default()(WithBlockCloser, [{
|
5534 |
-
key: 'componentDidMount',
|
5535 |
-
value: function componentDidMount() {
|
5536 |
-
this.props.isOpen && this._addEventListeners();
|
5537 |
-
}
|
5538 |
-
}, {
|
5539 |
-
key: 'componentDidUpdate',
|
5540 |
-
value: function componentDidUpdate(prevProps) {
|
5541 |
-
if (prevProps.isOpen !== this.props.isOpen) {
|
5542 |
-
this.props.isOpen ? this._addEventListeners() : this._removeEventListeners();
|
5543 |
-
}
|
5544 |
-
}
|
5545 |
-
}, {
|
5546 |
-
key: 'componentWillUnmount',
|
5547 |
-
value: function componentWillUnmount() {
|
5548 |
-
this._removeEventListeners();
|
5549 |
-
}
|
5550 |
-
}, {
|
5551 |
-
key: '_addEventListeners',
|
5552 |
-
value: function _addEventListeners() {
|
5553 |
-
var _this2 = this;
|
5554 |
-
|
5555 |
-
// Intercept custom events bubbled in block or blacklisted nodes
|
5556 |
-
this.node.addEventListener(this._eventNamespace, this._interceptClickProxyEvent);
|
5557 |
-
this.blacklistedNodes.forEach(function (node) {
|
5558 |
-
return node.addEventListener(_this2._eventNamespace, _this2._interceptClickProxyEvent);
|
5559 |
-
});
|
5560 |
-
|
5561 |
-
// Wait to receive custom events, if not intercepted, then go to click handler
|
5562 |
-
document.addEventListener(this._eventNamespace, this.handleClick);
|
5563 |
-
// Dispatch custom event on regular clicks
|
5564 |
-
document.addEventListener('click', this._dispatchClickProxyEvent);
|
5565 |
-
|
5566 |
-
// Close on certain keypresses
|
5567 |
-
document.addEventListener('keydown', this.handleKeyDown);
|
5568 |
-
}
|
5569 |
-
}, {
|
5570 |
-
key: '_removeEventListeners',
|
5571 |
-
value: function _removeEventListeners() {
|
5572 |
-
var _this3 = this;
|
5573 |
-
|
5574 |
-
this.node.removeEventListener(this._eventNamespace, this._interceptClickProxyEvent);
|
5575 |
-
this.blacklistedNodes.forEach(function (node) {
|
5576 |
-
return node.removeEventListener(_this3._eventNamespace, _this3._interceptClickProxyEvent);
|
5577 |
-
});
|
5578 |
-
|
5579 |
-
document.removeEventListener('keydown', this.handleKeyDown);
|
5580 |
-
document.removeEventListener(this._eventNamespace, this.handleClick);
|
5581 |
-
document.removeEventListener('click', this._dispatchClickProxyEvent);
|
5582 |
-
}
|
5583 |
-
}, {
|
5584 |
-
key: 'render',
|
5585 |
-
value: function render() {
|
5586 |
-
return wp.element.createElement(
|
5587 |
-
'div',
|
5588 |
-
{ ref: this.nodeRef },
|
5589 |
-
wp.element.createElement(WrappedComponent, this.props)
|
5590 |
-
);
|
5591 |
-
}
|
5592 |
-
}, {
|
5593 |
-
key: 'blacklistedNodes',
|
5594 |
-
get: function get() {
|
5595 |
-
var classNames = this.props.classNameClickBlacklist.join(', ');
|
5596 |
-
return Array.from(document.querySelectorAll(classNames));
|
5597 |
-
}
|
5598 |
-
}, {
|
5599 |
-
key: 'node',
|
5600 |
-
get: function get() {
|
5601 |
-
return this.nodeRef.current;
|
5602 |
-
}
|
5603 |
-
}]);
|
5604 |
-
|
5605 |
-
return WithBlockCloser;
|
5606 |
-
}(react__WEBPACK_IMPORTED_MODULE_5__["PureComponent"]);
|
5607 |
-
|
5608 |
-
WithBlockCloser.displayName = 'WithBlockCloser( ' + (WrappedComponent.displayName || WrappedComponent.name || 'Component ');
|
5609 |
-
WithBlockCloser.propTypes = {
|
5610 |
-
onClose: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.func.isRequired,
|
5611 |
-
classNameClickBlacklist: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.string).isRequired,
|
5612 |
-
isOpen: prop_types__WEBPACK_IMPORTED_MODULE_6___default.a.bool.isRequired
|
5613 |
-
};
|
5614 |
-
WithBlockCloser.defaultProps = {
|
5615 |
-
classNameClickBlacklist: ['.edit-post-sidebar'],
|
5616 |
-
onClose: lodash_noop__WEBPACK_IMPORTED_MODULE_4___default.a,
|
5617 |
-
isOpen: false
|
5618 |
-
};
|
5619 |
-
|
5620 |
-
|
5621 |
-
return WithBlockCloser;
|
5622 |
-
});
|
5623 |
-
|
5624 |
-
/***/ }),
|
5625 |
-
/* 129 */
|
5626 |
-
/***/ (function(module, exports, __webpack_require__) {
|
5627 |
-
|
5628 |
-
"use strict";
|
5629 |
-
|
5630 |
-
|
5631 |
-
exports.__esModule = true;
|
5632 |
-
|
5633 |
-
var _isIterable2 = __webpack_require__(405);
|
5634 |
-
|
5635 |
-
var _isIterable3 = _interopRequireDefault(_isIterable2);
|
5636 |
-
|
5637 |
-
var _getIterator2 = __webpack_require__(408);
|
5638 |
-
|
5639 |
-
var _getIterator3 = _interopRequireDefault(_getIterator2);
|
5640 |
-
|
5641 |
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
5642 |
-
|
5643 |
-
exports.default = function () {
|
5644 |
-
function sliceIterator(arr, i) {
|
5645 |
-
var _arr = [];
|
5646 |
-
var _n = true;
|
5647 |
-
var _d = false;
|
5648 |
-
var _e = undefined;
|
5649 |
-
|
5650 |
-
try {
|
5651 |
-
for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {
|
5652 |
-
_arr.push(_s.value);
|
5653 |
-
|
5654 |
-
if (i && _arr.length === i) break;
|
5655 |
-
}
|
5656 |
-
} catch (err) {
|
5657 |
-
_d = true;
|
5658 |
-
_e = err;
|
5659 |
-
} finally {
|
5660 |
-
try {
|
5661 |
-
if (!_n && _i["return"]) _i["return"]();
|
5662 |
-
} finally {
|
5663 |
-
if (_d) throw _e;
|
5664 |
-
}
|
5665 |
-
}
|
5666 |
-
|
5667 |
-
return _arr;
|
5668 |
-
}
|
5669 |
-
|
5670 |
-
return function (arr, i) {
|
5671 |
-
if (Array.isArray(arr)) {
|
5672 |
-
return arr;
|
5673 |
-
} else if ((0, _isIterable3.default)(Object(arr))) {
|
5674 |
-
return sliceIterator(arr, i);
|
5675 |
-
} else {
|
5676 |
-
throw new TypeError("Invalid attempt to destructure non-iterable instance");
|
5677 |
-
}
|
5678 |
-
};
|
5679 |
-
}();
|
5680 |
-
|
5681 |
-
/***/ }),
|
5682 |
-
/* 130 */
|
5683 |
-
/***/ (function(module, exports) {
|
5684 |
-
|
5685 |
-
module.exports = wp.components;
|
5686 |
-
|
5687 |
-
/***/ }),
|
5688 |
-
/* 131 */
|
5689 |
-
/***/ (function(module, exports, __webpack_require__) {
|
5690 |
-
|
5691 |
-
"use strict";
|
5692 |
-
|
5693 |
-
var LIBRARY = __webpack_require__(49);
|
5694 |
-
var $export = __webpack_require__(19);
|
5695 |
-
var redefine = __webpack_require__(167);
|
5696 |
-
var hide = __webpack_require__(30);
|
5697 |
-
var Iterators = __webpack_require__(41);
|
5698 |
-
var $iterCreate = __webpack_require__(211);
|
5699 |
-
var setToStringTag = __webpack_require__(62);
|
5700 |
-
var getPrototypeOf = __webpack_require__(215);
|
5701 |
-
var ITERATOR = __webpack_require__(12)('iterator');
|
5702 |
-
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
|
5703 |
-
var FF_ITERATOR = '@@iterator';
|
5704 |
-
var KEYS = 'keys';
|
5705 |
-
var VALUES = 'values';
|
5706 |
-
|
5707 |
-
var returnThis = function () { return this; };
|
5708 |
-
|
5709 |
-
module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
|
5710 |
-
$iterCreate(Constructor, NAME, next);
|
5711 |
-
var getMethod = function (kind) {
|
5712 |
-
if (!BUGGY && kind in proto) return proto[kind];
|
5713 |
-
switch (kind) {
|
5714 |
-
case KEYS: return function keys() { return new Constructor(this, kind); };
|
5715 |
-
case VALUES: return function values() { return new Constructor(this, kind); };
|
5716 |
-
} return function entries() { return new Constructor(this, kind); };
|
5717 |
-
};
|
5718 |
-
var TAG = NAME + ' Iterator';
|
5719 |
-
var DEF_VALUES = DEFAULT == VALUES;
|
5720 |
-
var VALUES_BUG = false;
|
5721 |
-
var proto = Base.prototype;
|
5722 |
-
var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
|
5723 |
-
var $default = $native || getMethod(DEFAULT);
|
5724 |
-
var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
|
5725 |
-
var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
|
5726 |
-
var methods, key, IteratorPrototype;
|
5727 |
-
// Fix native
|
5728 |
-
if ($anyNative) {
|
5729 |
-
IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
|
5730 |
-
if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
|
5731 |
-
// Set @@toStringTag to native iterators
|
5732 |
-
setToStringTag(IteratorPrototype, TAG, true);
|
5733 |
-
// fix for some old engines
|
5734 |
-
if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
|
5735 |
-
}
|
5736 |
-
}
|
5737 |
-
// fix Array#{values, @@iterator}.name in V8 / FF
|
5738 |
-
if (DEF_VALUES && $native && $native.name !== VALUES) {
|
5739 |
-
VALUES_BUG = true;
|
5740 |
-
$default = function values() { return $native.call(this); };
|
5741 |
-
}
|
5742 |
-
// Define iterator
|
5743 |
-
if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
|
5744 |
-
hide(proto, ITERATOR, $default);
|
5745 |
-
}
|
5746 |
-
// Plug for library
|
5747 |
-
Iterators[NAME] = $default;
|
5748 |
-
Iterators[TAG] = returnThis;
|
5749 |
-
if (DEFAULT) {
|
5750 |
-
methods = {
|
5751 |
-
values: DEF_VALUES ? $default : getMethod(VALUES),
|
5752 |
-
keys: IS_SET ? $default : getMethod(KEYS),
|
5753 |
-
entries: $entries
|
5754 |
-
};
|
5755 |
-
if (FORCED) for (key in methods) {
|
5756 |
-
if (!(key in proto)) redefine(proto, key, methods[key]);
|
5757 |
-
} else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
|
5758 |
-
}
|
5759 |
-
return methods;
|
5760 |
-
};
|
5761 |
-
|
5762 |
-
|
5763 |
-
/***/ }),
|
5764 |
-
/* 132 */
|
5765 |
-
/***/ (function(module, exports, __webpack_require__) {
|
5766 |
-
|
5767 |
-
// fallback for non-array-like ES3 and non-enumerable old V8 strings
|
5768 |
-
var cof = __webpack_require__(48);
|
5769 |
-
// eslint-disable-next-line no-prototype-builtins
|
5770 |
-
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
|
5771 |
-
return cof(it) == 'String' ? it.split('') : Object(it);
|
5772 |
-
};
|
5773 |
-
|
5774 |
-
|
5775 |
-
/***/ }),
|
5776 |
-
/* 133 */
|
5777 |
-
/***/ (function(module, exports, __webpack_require__) {
|
5778 |
-
|
5779 |
-
var document = __webpack_require__(9).document;
|
5780 |
-
module.exports = document && document.documentElement;
|
5781 |
-
|
5782 |
-
|
5783 |
-
/***/ }),
|
5784 |
-
/* 134 */
|
5785 |
-
/***/ (function(module, exports, __webpack_require__) {
|
5786 |
-
|
5787 |
-
// call something on iterator step with safe closing on error
|
5788 |
-
var anObject = __webpack_require__(17);
|
5789 |
-
module.exports = function (iterator, fn, value, entries) {
|
5790 |
-
try {
|
5791 |
-
return entries ? fn(anObject(value)[0], value[1]) : fn(value);
|
5792 |
-
// 7.4.6 IteratorClose(iterator, completion)
|
5793 |
-
} catch (e) {
|
5794 |
-
var ret = iterator['return'];
|
5795 |
-
if (ret !== undefined) anObject(ret.call(iterator));
|
5796 |
-
throw e;
|
5797 |
-
}
|
5798 |
-
};
|
5799 |
-
|
5800 |
-
|
5801 |
-
/***/ }),
|
5802 |
-
/* 135 */
|
5803 |
-
/***/ (function(module, exports, __webpack_require__) {
|
5804 |
-
|
5805 |
-
// check on default Array iterator
|
5806 |
-
var Iterators = __webpack_require__(41);
|
5807 |
-
var ITERATOR = __webpack_require__(12)('iterator');
|
5808 |
-
var ArrayProto = Array.prototype;
|
5809 |
-
|
5810 |
-
module.exports = function (it) {
|
5811 |
-
return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
|
5812 |
-
};
|
5813 |
-
|
5814 |
-
|
5815 |
-
/***/ }),
|
5816 |
-
/* 136 */
|
5817 |
-
/***/ (function(module, exports, __webpack_require__) {
|
5818 |
-
|
5819 |
-
var ITERATOR = __webpack_require__(12)('iterator');
|
5820 |
-
var SAFE_CLOSING = false;
|
5821 |
-
|
5822 |
-
try {
|
5823 |
-
var riter = [7][ITERATOR]();
|
5824 |
-
riter['return'] = function () { SAFE_CLOSING = true; };
|
5825 |
-
// eslint-disable-next-line no-throw-literal
|
5826 |
-
Array.from(riter, function () { throw 2; });
|
5827 |
-
} catch (e) { /* empty */ }
|
5828 |
-
|
5829 |
-
module.exports = function (exec, skipClosing) {
|
5830 |
-
if (!skipClosing && !SAFE_CLOSING) return false;
|
5831 |
-
var safe = false;
|
5832 |
-
try {
|
5833 |
-
var arr = [7];
|
5834 |
-
var iter = arr[ITERATOR]();
|
5835 |
-
iter.next = function () { return { done: safe = true }; };
|
5836 |
-
arr[ITERATOR] = function () { return iter; };
|
5837 |
-
exec(arr);
|
5838 |
-
} catch (e) { /* empty */ }
|
5839 |
-
return safe;
|
5840 |
-
};
|
5841 |
-
|
5842 |
-
|
5843 |
-
/***/ }),
|
5844 |
-
/* 137 */
|
5845 |
-
/***/ (function(module, exports, __webpack_require__) {
|
5846 |
-
|
5847 |
-
/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */
|
5848 |
-
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
|
5849 |
-
|
5850 |
-
module.exports = freeGlobal;
|
5851 |
-
|
5852 |
-
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(125)))
|
5853 |
-
|
5854 |
-
/***/ }),
|
5855 |
-
/* 138 */
|
5856 |
-
/***/ (function(module, exports) {
|
5857 |
-
|
5858 |
-
/** Used for built-in method references. */
|
5859 |
-
var funcProto = Function.prototype;
|
5860 |
-
|
5861 |
-
/** Used to resolve the decompiled source of functions. */
|
5862 |
-
var funcToString = funcProto.toString;
|
5863 |
-
|
5864 |
-
/**
|
5865 |
-
* Converts `func` to its source code.
|
5866 |
-
*
|
5867 |
-
* @private
|
5868 |
-
* @param {Function} func The function to convert.
|
5869 |
-
* @returns {string} Returns the source code.
|
5870 |
-
*/
|
5871 |
-
function toSource(func) {
|
5872 |
-
if (func != null) {
|
5873 |
-
try {
|
5874 |
-
return funcToString.call(func);
|
5875 |
-
} catch (e) {}
|
5876 |
-
try {
|
5877 |
-
return (func + '');
|
5878 |
-
} catch (e) {}
|
5879 |
-
}
|
5880 |
-
return '';
|
5881 |
-
}
|
5882 |
-
|
5883 |
-
module.exports = toSource;
|
5884 |
-
|
5885 |
-
|
5886 |
-
/***/ }),
|
5887 |
-
/* 139 */
|
5888 |
-
/***/ (function(module, exports, __webpack_require__) {
|
5889 |
-
|
5890 |
-
var baseIsEqualDeep = __webpack_require__(260),
|
5891 |
-
isObjectLike = __webpack_require__(14);
|
5892 |
-
|
5893 |
-
/**
|
5894 |
-
* The base implementation of `_.isEqual` which supports partial comparisons
|
5895 |
-
* and tracks traversed objects.
|
5896 |
-
*
|
5897 |
-
* @private
|
5898 |
-
* @param {*} value The value to compare.
|
5899 |
-
* @param {*} other The other value to compare.
|
5900 |
-
* @param {boolean} bitmask The bitmask flags.
|
5901 |
-
* 1 - Unordered comparison
|
5902 |
-
* 2 - Partial comparison
|
5903 |
-
* @param {Function} [customizer] The function to customize comparisons.
|
5904 |
-
* @param {Object} [stack] Tracks traversed `value` and `other` objects.
|
5905 |
-
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
|
5906 |
-
*/
|
5907 |
-
function baseIsEqual(value, other, bitmask, customizer, stack) {
|
5908 |
-
if (value === other) {
|
5909 |
-
return true;
|
5910 |
-
}
|
5911 |
-
if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {
|
5912 |
-
return value !== value && other !== other;
|
5913 |
-
}
|
5914 |
-
return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
|
5915 |
-
}
|
5916 |
-
|
5917 |
-
module.exports = baseIsEqual;
|
5918 |
-
|
5919 |
-
|
5920 |
-
/***/ }),
|
5921 |
-
/* 140 */
|
5922 |
-
/***/ (function(module, exports, __webpack_require__) {
|
5923 |
-
|
5924 |
-
var SetCache = __webpack_require__(151),
|
5925 |
-
arraySome = __webpack_require__(261),
|
5926 |
-
cacheHas = __webpack_require__(152);
|
5927 |
-
|
5928 |
-
/** Used to compose bitmasks for value comparisons. */
|
5929 |
-
var COMPARE_PARTIAL_FLAG = 1,
|
5930 |
-
COMPARE_UNORDERED_FLAG = 2;
|
5931 |
-
|
5932 |
-
/**
|
5933 |
-
* A specialized version of `baseIsEqualDeep` for arrays with support for
|
5934 |
-
* partial deep comparisons.
|
5935 |
-
*
|
5936 |
-
* @private
|
5937 |
-
* @param {Array} array The array to compare.
|
5938 |
-
* @param {Array} other The other array to compare.
|
5939 |
-
* @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.
|
5940 |
-
* @param {Function} customizer The function to customize comparisons.
|
5941 |
-
* @param {Function} equalFunc The function to determine equivalents of values.
|
5942 |
-
* @param {Object} stack Tracks traversed `array` and `other` objects.
|
5943 |
-
* @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
|
5944 |
-
*/
|
5945 |
-
function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {
|
5946 |
-
var isPartial = bitmask & COMPARE_PARTIAL_FLAG,
|
5947 |
-
arrLength = array.length,
|
5948 |
-
othLength = other.length;
|
5949 |
-
|
5950 |
-
if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
|
5951 |
-
return false;
|
5952 |
-
}
|
5953 |
-
// Assume cyclic values are equal.
|
5954 |
-
var stacked = stack.get(array);
|
5955 |
-
if (stacked && stack.get(other)) {
|
5956 |
-
return stacked == other;
|
5957 |
-
}
|
5958 |
-
var index = -1,
|
5959 |
-
result = true,
|
5960 |
-
seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;
|
5961 |
-
|
5962 |
-
stack.set(array, other);
|
5963 |
-
stack.set(other, array);
|
5964 |
-
|
5965 |
-
// Ignore non-index properties.
|
5966 |
-
while (++index < arrLength) {
|
5967 |
-
var arrValue = array[index],
|
5968 |
-
othValue = other[index];
|
5969 |
-
|
5970 |
-
if (customizer) {
|
5971 |
-
var compared = isPartial
|
5972 |
-
? customizer(othValue, arrValue, index, other, array, stack)
|
5973 |
-
: customizer(arrValue, othValue, index, array, other, stack);
|
5974 |
-
}
|
5975 |
-
if (compared !== undefined) {
|
5976 |
-
if (compared) {
|
5977 |
-
continue;
|
5978 |
-
}
|
5979 |
-
result = false;
|
5980 |
-
break;
|
5981 |
-
}
|
5982 |
-
// Recursively compare arrays (susceptible to call stack limits).
|
5983 |
-
if (seen) {
|
5984 |
-
if (!arraySome(other, function(othValue, othIndex) {
|
5985 |
-
if (!cacheHas(seen, othIndex) &&
|
5986 |
-
(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
|
5987 |
-
return seen.push(othIndex);
|
5988 |
-
}
|
5989 |
-
})) {
|
5990 |
-
result = false;
|
5991 |
-
break;
|
5992 |
-
}
|
5993 |
-
} else if (!(
|
5994 |
-
arrValue === othValue ||
|
5995 |
-
equalFunc(arrValue, othValue, bitmask, customizer, stack)
|
5996 |
-
)) {
|
5997 |
-
result = false;
|
5998 |
-
break;
|
5999 |
-
}
|
6000 |
-
}
|
6001 |
-
stack['delete'](array);
|
6002 |
-
stack['delete'](other);
|
6003 |
-
return result;
|
6004 |
-
}
|
6005 |
-
|
6006 |
-
module.exports = equalArrays;
|
6007 |
-
|
6008 |
-
|
6009 |
-
/***/ }),
|
6010 |
-
/* 141 */
|
6011 |
-
/***/ (function(module, exports, __webpack_require__) {
|
6012 |
-
|
6013 |
-
var isObject = __webpack_require__(18);
|
6014 |
-
|
6015 |
-
/**
|
6016 |
-
* Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
|
6017 |
-
*
|
6018 |
-
* @private
|
6019 |
-
* @param {*} value The value to check.
|
6020 |
-
* @returns {boolean} Returns `true` if `value` if suitable for strict
|
6021 |
-
* equality comparisons, else `false`.
|
6022 |
-
*/
|
6023 |
-
function isStrictComparable(value) {
|
6024 |
-
return value === value && !isObject(value);
|
6025 |
-
}
|
6026 |
-
|
6027 |
-
module.exports = isStrictComparable;
|
6028 |
-
|
6029 |
-
|
6030 |
-
/***/ }),
|
6031 |
-
/* 142 */
|
6032 |
-
/***/ (function(module, exports) {
|
6033 |
-
|
6034 |
-
/**
|
6035 |
-
* A specialized version of `matchesProperty` for source values suitable
|
6036 |
-
* for strict equality comparisons, i.e. `===`.
|
6037 |
-
*
|
6038 |
-
* @private
|
6039 |
-
* @param {string} key The key of the property to get.
|
6040 |
-
* @param {*} srcValue The value to match.
|
6041 |
-
* @returns {Function} Returns the new spec function.
|
6042 |
-
*/
|
6043 |
-
function matchesStrictComparable(key, srcValue) {
|
6044 |
-
return function(object) {
|
6045 |
-
if (object == null) {
|
6046 |
-
return false;
|
6047 |
-
}
|
6048 |
-
return object[key] === srcValue &&
|
6049 |
-
(srcValue !== undefined || (key in Object(object)));
|
6050 |
-
};
|
6051 |
-
}
|
6052 |
-
|
6053 |
-
module.exports = matchesStrictComparable;
|
6054 |
-
|
6055 |
-
|
6056 |
-
/***/ }),
|
6057 |
-
/* 143 */
|
6058 |
-
/***/ (function(module, exports, __webpack_require__) {
|
6059 |
-
|
6060 |
-
var castPath = __webpack_require__(144),
|
6061 |
-
toKey = __webpack_require__(47);
|
6062 |
-
|
6063 |
-
/**
|
6064 |
-
* The base implementation of `_.get` without support for default values.
|
6065 |
-
*
|
6066 |
-
* @private
|
6067 |
-
* @param {Object} object The object to query.
|
6068 |
-
* @param {Array|string} path The path of the property to get.
|
6069 |
-
* @returns {*} Returns the resolved value.
|
6070 |
-
*/
|
6071 |
-
function baseGet(object, path) {
|
6072 |
-
path = castPath(path, object);
|
6073 |
-
|
6074 |
-
var index = 0,
|
6075 |
-
length = path.length;
|
6076 |
-
|
6077 |
-
while (object != null && index < length) {
|
6078 |
-
object = object[toKey(path[index++])];
|
6079 |
-
}
|
6080 |
-
return (index && index == length) ? object : undefined;
|
6081 |
-
}
|
6082 |
-
|
6083 |
-
module.exports = baseGet;
|
6084 |
-
|
6085 |
-
|
6086 |
-
/***/ }),
|
6087 |
-
/* 144 */
|
6088 |
-
/***/ (function(module, exports, __webpack_require__) {
|
6089 |
-
|
6090 |
-
var isArray = __webpack_require__(6),
|
6091 |
-
isKey = __webpack_require__(90),
|
6092 |
-
stringToPath = __webpack_require__(165),
|
6093 |
-
toString = __webpack_require__(97);
|
6094 |
-
|
6095 |
-
/**
|
6096 |
-
* Casts `value` to a path array if it's not one.
|
6097 |
-
*
|
6098 |
-
* @private
|
6099 |
-
* @param {*} value The value to inspect.
|
6100 |
-
* @param {Object} [object] The object to query keys on.
|
6101 |
-
* @returns {Array} Returns the cast property path array.
|
6102 |
-
*/
|
6103 |
-
function castPath(value, object) {
|
6104 |
-
if (isArray(value)) {
|
6105 |
-
return value;
|
6106 |
-
}
|
6107 |
-
return isKey(value, object) ? [value] : stringToPath(toString(value));
|
6108 |
-
}
|
6109 |
-
|
6110 |
-
module.exports = castPath;
|
6111 |
-
|
6112 |
-
|
6113 |
-
/***/ }),
|
6114 |
-
/* 145 */
|
6115 |
-
/***/ (function(module, exports, __webpack_require__) {
|
6116 |
-
|
6117 |
-
// 7.3.20 SpeciesConstructor(O, defaultConstructor)
|
6118 |
-
var anObject = __webpack_require__(17);
|
6119 |
-
var aFunction = __webpack_require__(53);
|
6120 |
-
var SPECIES = __webpack_require__(12)('species');
|
6121 |
-
module.exports = function (O, D) {
|
6122 |
-
var C = anObject(O).constructor;
|
6123 |
-
var S;
|
6124 |
-
return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
|
6125 |
-
};
|
6126 |
-
|
6127 |
-
|
6128 |
-
/***/ }),
|
6129 |
-
/* 146 */
|
6130 |
-
/***/ (function(module, exports, __webpack_require__) {
|
6131 |
-
|
6132 |
-
var ctx = __webpack_require__(40);
|
6133 |
-
var invoke = __webpack_require__(292);
|
6134 |
-
var html = __webpack_require__(133);
|
6135 |
-
var cel = __webpack_require__(80);
|
6136 |
-
var global = __webpack_require__(9);
|
6137 |
-
var process = global.process;
|
6138 |
-
var setTask = global.setImmediate;
|
6139 |
-
var clearTask = global.clearImmediate;
|
6140 |
-
var MessageChannel = global.MessageChannel;
|
6141 |
-
var Dispatch = global.Dispatch;
|
6142 |
-
var counter = 0;
|
6143 |
-
var queue = {};
|
6144 |
-
var ONREADYSTATECHANGE = 'onreadystatechange';
|
6145 |
-
var defer, channel, port;
|
6146 |
-
var run = function () {
|
6147 |
-
var id = +this;
|
6148 |
-
// eslint-disable-next-line no-prototype-builtins
|
6149 |
-
if (queue.hasOwnProperty(id)) {
|
6150 |
-
var fn = queue[id];
|
6151 |
-
delete queue[id];
|
6152 |
-
fn();
|
6153 |
-
}
|
6154 |
-
};
|
6155 |
-
var listener = function (event) {
|
6156 |
-
run.call(event.data);
|
6157 |
-
};
|
6158 |
-
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
|
6159 |
-
if (!setTask || !clearTask) {
|
6160 |
-
setTask = function setImmediate(fn) {
|
6161 |
-
var args = [];
|
6162 |
-
var i = 1;
|
6163 |
-
while (arguments.length > i) args.push(arguments[i++]);
|
6164 |
-
queue[++counter] = function () {
|
6165 |
-
// eslint-disable-next-line no-new-func
|
6166 |
-
invoke(typeof fn == 'function' ? fn : Function(fn), args);
|
6167 |
-
};
|
6168 |
-
defer(counter);
|
6169 |
-
return counter;
|
6170 |
-
};
|
6171 |
-
clearTask = function clearImmediate(id) {
|
6172 |
-
delete queue[id];
|
6173 |
-
};
|
6174 |
-
// Node.js 0.8-
|
6175 |
-
if (__webpack_require__(48)(process) == 'process') {
|
6176 |
-
defer = function (id) {
|
6177 |
-
process.nextTick(ctx(run, id, 1));
|
6178 |
-
};
|
6179 |
-
// Sphere (JS game engine) Dispatch API
|
6180 |
-
} else if (Dispatch && Dispatch.now) {
|
6181 |
-
defer = function (id) {
|
6182 |
-
Dispatch.now(ctx(run, id, 1));
|
6183 |
-
};
|
6184 |
-
// Browsers with MessageChannel, includes WebWorkers
|
6185 |
-
} else if (MessageChannel) {
|
6186 |
-
channel = new MessageChannel();
|
6187 |
-
port = channel.port2;
|
6188 |
-
channel.port1.onmessage = listener;
|
6189 |
-
defer = ctx(port.postMessage, port, 1);
|
6190 |
-
// Browsers with postMessage, skip WebWorkers
|
6191 |
-
// IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
|
6192 |
-
} else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
|
6193 |
-
defer = function (id) {
|
6194 |
-
global.postMessage(id + '', '*');
|
6195 |
-
};
|
6196 |
-
global.addEventListener('message', listener, false);
|
6197 |
-
// IE8-
|
6198 |
-
} else if (ONREADYSTATECHANGE in cel('script')) {
|
6199 |
-
defer = function (id) {
|
6200 |
-
html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
|
6201 |
-
html.removeChild(this);
|
6202 |
-
run.call(id);
|
6203 |
-
};
|
6204 |
-
};
|
6205 |
-
// Rest old browsers
|
6206 |
-
} else {
|
6207 |
-
defer = function (id) {
|
6208 |
-
setTimeout(ctx(run, id, 1), 0);
|
6209 |
-
};
|
6210 |
-
}
|
6211 |
-
}
|
6212 |
-
module.exports = {
|
6213 |
-
set: setTask,
|
6214 |
-
clear: clearTask
|
6215 |
-
};
|
6216 |
-
|
6217 |
-
|
6218 |
-
/***/ }),
|
6219 |
-
/* 147 */
|
6220 |
-
/***/ (function(module, exports) {
|
6221 |
-
|
6222 |
-
module.exports = function (exec) {
|
6223 |
-
try {
|
6224 |
-
return { e: false, v: exec() };
|
6225 |
-
} catch (e) {
|
6226 |
-
return { e: true, v: e };
|
6227 |
-
}
|
6228 |
-
};
|
6229 |
-
|
6230 |
-
|
6231 |
-
/***/ }),
|
6232 |
-
/* 148 */
|
6233 |
-
/***/ (function(module, exports, __webpack_require__) {
|
6234 |
-
|
6235 |
-
var anObject = __webpack_require__(17);
|
6236 |
-
var isObject = __webpack_require__(24);
|
6237 |
-
var newPromiseCapability = __webpack_require__
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|