├── .nvmrc
├── lang
└── events-gutenberg.pot
├── plugins
├── events-pro
│ ├── src
│ │ ├── styles
│ │ │ ├── editor
│ │ │ │ └── index.js
│ │ │ ├── additional-fields
│ │ │ │ ├── frontend.js
│ │ │ │ └── frontend.pcss
│ │ │ └── admin
│ │ │ │ ├── additional-fields.js
│ │ │ │ └── additional-fields.pcss
│ │ ├── modules
│ │ │ ├── elements
│ │ │ │ ├── panel
│ │ │ │ │ └── style.pcss
│ │ │ │ ├── type-picker
│ │ │ │ │ ├── frequency-select
│ │ │ │ │ │ └── style.pcss
│ │ │ │ │ └── style.pcss
│ │ │ │ ├── from-time-range-picker
│ │ │ │ │ └── style.pcss
│ │ │ │ ├── recurring-to-date-time-picker
│ │ │ │ │ └── style.pcss
│ │ │ │ ├── on-date-picker
│ │ │ │ │ ├── style.pcss
│ │ │ │ │ └── __tests__
│ │ │ │ │ │ └── template.spec.js
│ │ │ │ ├── row
│ │ │ │ │ ├── style.pcss
│ │ │ │ │ ├── __tests__
│ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ └── element.spec.js.snap
│ │ │ │ │ │ └── element.spec.js
│ │ │ │ │ └── element.js
│ │ │ │ ├── single-to-date-time-picker
│ │ │ │ │ └── style.pcss
│ │ │ │ ├── attribute-sync
│ │ │ │ │ ├── __tests__
│ │ │ │ │ │ └── __snapshots__
│ │ │ │ │ │ │ └── template.spec.js.snap
│ │ │ │ │ └── template.js
│ │ │ │ ├── fieldset
│ │ │ │ │ ├── style.pcss
│ │ │ │ │ ├── __tests__
│ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ └── element.spec.js.snap
│ │ │ │ │ │ └── element.spec.js
│ │ │ │ │ └── element.js
│ │ │ │ ├── day-of-week-picker
│ │ │ │ │ ├── style.pcss
│ │ │ │ │ └── day-of-week
│ │ │ │ │ │ └── __tests__
│ │ │ │ │ │ └── element.spec.js
│ │ │ │ ├── series-ends
│ │ │ │ │ └── style.pcss
│ │ │ │ ├── remove-field
│ │ │ │ │ ├── style.pcss
│ │ │ │ │ ├── __tests__
│ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ └── element.spec.js.snap
│ │ │ │ │ │ └── element.spec.js
│ │ │ │ │ └── element.js
│ │ │ │ ├── labeled-row
│ │ │ │ │ ├── style.pcss
│ │ │ │ │ └── __tests__
│ │ │ │ │ │ ├── element.spec.js
│ │ │ │ │ │ └── __snapshots__
│ │ │ │ │ │ └── element.spec.js.snap
│ │ │ │ ├── label
│ │ │ │ │ ├── __tests__
│ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ └── element.spec.js.snap
│ │ │ │ │ │ └── element.spec.js
│ │ │ │ │ ├── style.pcss
│ │ │ │ │ └── element.js
│ │ │ │ ├── add-field
│ │ │ │ │ └── __tests__
│ │ │ │ │ │ ├── element.spec.js
│ │ │ │ │ │ └── __snapshots__
│ │ │ │ │ │ └── element.spec.js.snap
│ │ │ │ ├── exception-add-field
│ │ │ │ │ ├── __tests__
│ │ │ │ │ │ ├── element.spec.js
│ │ │ │ │ │ └── __snapshots__
│ │ │ │ │ │ │ └── element.spec.js.snap
│ │ │ │ │ └── element.js
│ │ │ │ ├── recurring-add-field
│ │ │ │ │ ├── __tests__
│ │ │ │ │ │ ├── element.spec.js
│ │ │ │ │ │ └── __snapshots__
│ │ │ │ │ │ │ └── element.spec.js.snap
│ │ │ │ │ └── element.js
│ │ │ │ ├── month-picker
│ │ │ │ │ └── month-tag
│ │ │ │ │ │ └── __tests__
│ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── element.spec.js.snap
│ │ │ │ │ │ └── element.spec.js
│ │ │ │ └── multi-day-checkbox
│ │ │ │ │ └── __tests__
│ │ │ │ │ ├── element.spec.js
│ │ │ │ │ └── __snapshots__
│ │ │ │ │ └── element.spec.js.snap
│ │ │ ├── data
│ │ │ │ ├── prefix.js
│ │ │ │ ├── blocks
│ │ │ │ │ ├── additional-fields
│ │ │ │ │ │ ├── reducers
│ │ │ │ │ │ │ └── index.js
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── sagas.js
│ │ │ │ │ ├── exception
│ │ │ │ │ │ ├── __tests__
│ │ │ │ │ │ │ ├── types.spec.js
│ │ │ │ │ │ │ ├── options.spec.js
│ │ │ │ │ │ │ └── __snapshots__
│ │ │ │ │ │ │ │ └── options.spec.js.snap
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── recurring
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ └── types.js
│ │ │ │ │ └── reducer.js
│ │ │ │ ├── status
│ │ │ │ │ ├── __tests__
│ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ ├── types.spec.js.snap
│ │ │ │ │ │ │ ├── reducer.spec.js.snap
│ │ │ │ │ │ │ ├── actions.spec.js.snap
│ │ │ │ │ │ │ └── selectors.spec.js.snap
│ │ │ │ │ │ ├── types.spec.js
│ │ │ │ │ │ ├── actions.spec.js
│ │ │ │ │ │ ├── reducer.spec.js
│ │ │ │ │ │ └── selectors.spec.js
│ │ │ │ │ ├── actions.js
│ │ │ │ │ ├── types.js
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── reducer.js
│ │ │ │ │ └── selectors.js
│ │ │ │ ├── ui
│ │ │ │ │ └── index.js
│ │ │ │ ├── reducers.js
│ │ │ │ ├── index.js
│ │ │ │ └── sagas.js
│ │ │ └── blocks
│ │ │ │ └── additional-fields
│ │ │ │ ├── dropdown
│ │ │ │ └── index.js
│ │ │ │ ├── radio
│ │ │ │ └── style.pcss
│ │ │ │ ├── checkbox
│ │ │ │ ├── style.pcss
│ │ │ │ └── settings
│ │ │ │ │ └── style.pcss
│ │ │ │ ├── elements
│ │ │ │ ├── preview
│ │ │ │ │ ├── style.pcss
│ │ │ │ │ └── __tests__
│ │ │ │ │ │ ├── element.test.js
│ │ │ │ │ │ └── __snapshots__
│ │ │ │ │ │ └── element.test.js.snap
│ │ │ │ └── index.js
│ │ │ │ └── index.js
│ │ ├── resources
│ │ │ └── icons
│ │ │ │ ├── arrow.svg
│ │ │ │ └── trash.svg
│ │ ├── views
│ │ │ └── blocks
│ │ │ │ └── additional-fields
│ │ │ │ ├── radio.php
│ │ │ │ ├── text.php
│ │ │ │ ├── checkbox.php
│ │ │ │ ├── dropdown.php
│ │ │ │ ├── textarea.php
│ │ │ │ └── url.php
│ │ └── Tribe
│ │ │ ├── Blocks
│ │ │ └── Additional_Fields.php
│ │ │ └── Template
│ │ │ └── Admin.php
│ ├── .gitignore
│ └── scripts
│ │ └── linkDependencies
├── events
│ ├── src
│ │ ├── modules
│ │ │ ├── blocks
│ │ │ │ ├── event-tags
│ │ │ │ │ └── style.pcss
│ │ │ │ ├── event-category
│ │ │ │ │ └── style.pcss
│ │ │ │ ├── event-datetime
│ │ │ │ │ ├── hooks
│ │ │ │ │ │ └── index.js
│ │ │ │ │ └── human-readable-input
│ │ │ │ │ │ ├── style.pcss
│ │ │ │ │ │ └── __tests__
│ │ │ │ │ │ ├── template.test.js
│ │ │ │ │ │ └── __snapshots__
│ │ │ │ │ │ └── template.test.js.snap
│ │ │ │ └── classic-event-details
│ │ │ │ │ └── event-details-organizers
│ │ │ │ │ └── event-details-organizer
│ │ │ │ │ ├── style.pcss
│ │ │ │ │ └── container.js
│ │ │ ├── editor
│ │ │ │ ├── utils
│ │ │ │ │ └── index.js
│ │ │ │ ├── index.js
│ │ │ │ └── __tests__
│ │ │ │ │ └── post-types.test.js
│ │ │ ├── hoc
│ │ │ │ └── index.js
│ │ │ ├── data
│ │ │ │ ├── search
│ │ │ │ │ ├── reducers
│ │ │ │ │ │ └── index.js
│ │ │ │ │ └── index.js
│ │ │ │ ├── details
│ │ │ │ │ ├── reducers
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── __tests__
│ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ ├── reducer.test.js.snap
│ │ │ │ │ │ │ └── thunks.test.js.snap
│ │ │ │ │ │ └── types.test.js
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── types.js
│ │ │ │ │ └── reducer.js
│ │ │ │ ├── blocks
│ │ │ │ │ ├── organizers
│ │ │ │ │ │ ├── reducers
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── block.js
│ │ │ │ │ │ │ └── classic.js
│ │ │ │ │ │ ├── reducer.js
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ ├── __tests__
│ │ │ │ │ │ │ └── __snapshots__
│ │ │ │ │ │ │ │ └── selectors.test.js.snap
│ │ │ │ │ │ └── types.js
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── classic
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ ├── __tests__
│ │ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ │ └── reducer.test.js.snap
│ │ │ │ │ │ │ └── types.test.js
│ │ │ │ │ │ ├── types.js
│ │ │ │ │ │ ├── selectors.js
│ │ │ │ │ │ ├── actions.js
│ │ │ │ │ │ └── reducer.js
│ │ │ │ │ ├── price
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ ├── types.js
│ │ │ │ │ │ └── selectors.js
│ │ │ │ │ ├── sharing
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── website
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ ├── types.js
│ │ │ │ │ │ ├── __tests__
│ │ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ │ └── reducer.test.js.snap
│ │ │ │ │ │ │ └── types.test.js
│ │ │ │ │ │ ├── selectors.js
│ │ │ │ │ │ ├── actions.js
│ │ │ │ │ │ └── reducer.js
│ │ │ │ │ ├── venue
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ ├── selectors.js
│ │ │ │ │ │ └── types.js
│ │ │ │ │ ├── datetime
│ │ │ │ │ │ └── index.js
│ │ │ │ │ └── reducer.js
│ │ │ │ ├── ui
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── types.js
│ │ │ │ │ ├── selectors.js
│ │ │ │ │ └── __tests__
│ │ │ │ │ │ └── types.test.js
│ │ │ │ ├── reducers.js
│ │ │ │ └── index.js
│ │ │ ├── elements
│ │ │ │ ├── timezone
│ │ │ │ │ └── style.pcss
│ │ │ │ ├── edit-link
│ │ │ │ │ └── style.pcss
│ │ │ │ ├── input
│ │ │ │ │ └── style.pcss
│ │ │ │ ├── loading
│ │ │ │ │ ├── style.pcss
│ │ │ │ │ └── index.js
│ │ │ │ ├── year-month-form
│ │ │ │ │ └── style.pcss
│ │ │ │ ├── upsell
│ │ │ │ │ └── style.pcss
│ │ │ │ ├── terms-list
│ │ │ │ │ └── style.pcss
│ │ │ │ └── google-map
│ │ │ │ │ └── style.pcss
│ │ │ └── icons
│ │ │ │ ├── website.svg
│ │ │ │ ├── tags.svg
│ │ │ │ ├── organizer.svg
│ │ │ │ ├── sharing.svg
│ │ │ │ ├── checkbox-on.svg
│ │ │ │ ├── checkbox-off.svg
│ │ │ │ └── featured-image.svg
│ │ ├── views
│ │ │ ├── silence.php
│ │ │ └── blocks
│ │ │ │ ├── featured-image.php
│ │ │ │ ├── event-tags.php
│ │ │ │ ├── parts
│ │ │ │ └── map.php
│ │ │ │ ├── event-category.php
│ │ │ │ ├── event-price.php
│ │ │ │ ├── event-venue.php
│ │ │ │ └── event-website.php
│ │ └── styles
│ │ │ ├── event-tags
│ │ │ ├── frontend.js
│ │ │ └── frontend.pcss
│ │ │ ├── event-category
│ │ │ ├── frontend.js
│ │ │ └── frontend.pcss
│ │ │ ├── event-datetime
│ │ │ └── frontend.js
│ │ │ ├── event-links
│ │ │ └── frontend.js
│ │ │ ├── event-organizer
│ │ │ ├── frontend.js
│ │ │ └── frontend.pcss
│ │ │ ├── event-price
│ │ │ └── frontend.js
│ │ │ ├── event-venue
│ │ │ └── frontend.js
│ │ │ ├── event-website
│ │ │ ├── frontend.js
│ │ │ └── frontend.pcss
│ │ │ ├── classic-event-details
│ │ │ ├── frontend.js
│ │ │ └── frontend.pcss
│ │ │ └── style.pcss
│ ├── .gitignore
│ └── scripts
│ │ └── linkDependencies
├── tickets
│ ├── .gitignore
│ ├── src
│ │ ├── styles
│ │ │ ├── rsvp
│ │ │ │ └── frontend.js
│ │ │ ├── attendees
│ │ │ │ ├── frontend.js
│ │ │ │ └── frontend.pcss
│ │ │ ├── tickets
│ │ │ │ └── frontend.js
│ │ │ ├── index.js
│ │ │ └── style.pcss
│ │ ├── modules
│ │ │ ├── data
│ │ │ │ ├── blocks
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── ticket
│ │ │ │ │ │ ├── reducers
│ │ │ │ │ │ │ ├── settings
│ │ │ │ │ │ │ │ ├── __tests__
│ │ │ │ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ │ │ │ ├── tmp.spec.js.snap
│ │ │ │ │ │ │ │ │ │ └── settings.spec.js.snap
│ │ │ │ │ │ │ │ │ └── tmp.spec.js
│ │ │ │ │ │ │ │ └── tmp.js
│ │ │ │ │ │ │ └── index.js
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ └── constants.js
│ │ │ │ │ ├── attendees
│ │ │ │ │ │ ├── __tests__
│ │ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ │ ├── reducer.test.js.snap
│ │ │ │ │ │ │ │ └── actions.test.js.snap
│ │ │ │ │ │ │ ├── reducer.test.js
│ │ │ │ │ │ │ └── types.test.js
│ │ │ │ │ │ ├── selectors.js
│ │ │ │ │ │ ├── types.js
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ ├── actions.js
│ │ │ │ │ │ ├── reducer.js
│ │ │ │ │ │ └── sagas.js
│ │ │ │ │ ├── rsvp
│ │ │ │ │ │ ├── reducers
│ │ │ │ │ │ │ └── __tests__
│ │ │ │ │ │ │ │ └── __snapshots__
│ │ │ │ │ │ │ │ └── header-image.test.js.snap
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── reducer.js
│ │ │ │ │ └── sagas.js
│ │ │ │ ├── reducers.js
│ │ │ │ └── index.js
│ │ │ ├── blocks
│ │ │ │ ├── tickets
│ │ │ │ │ ├── controls
│ │ │ │ │ │ └── style.pcss
│ │ │ │ │ ├── action-buttons
│ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ └── settings
│ │ │ │ │ │ │ └── container.js
│ │ │ │ │ ├── __tests__
│ │ │ │ │ │ └── index.test.js
│ │ │ │ │ ├── container
│ │ │ │ │ │ └── style.pcss
│ │ │ │ │ ├── style.pcss
│ │ │ │ │ ├── capacity-table
│ │ │ │ │ │ ├── utils.js
│ │ │ │ │ │ ├── __tests__
│ │ │ │ │ │ │ └── utils.test.js
│ │ │ │ │ │ └── schema.js
│ │ │ │ │ ├── settings
│ │ │ │ │ │ └── container.js
│ │ │ │ │ └── availability
│ │ │ │ │ │ └── style.pcss
│ │ │ │ ├── rsvp
│ │ │ │ │ ├── action-buttons
│ │ │ │ │ │ └── index.js
│ │ │ │ │ ├── __tests__
│ │ │ │ │ │ └── index.test.js
│ │ │ │ │ ├── duration-picker
│ │ │ │ │ │ └── style.pcss
│ │ │ │ │ ├── counters
│ │ │ │ │ │ └── style.pcss
│ │ │ │ │ ├── settings-dashboard
│ │ │ │ │ │ └── style.pcss
│ │ │ │ │ ├── duration
│ │ │ │ │ │ ├── style.pcss
│ │ │ │ │ │ └── template.js
│ │ │ │ │ ├── header-image
│ │ │ │ │ │ └── style.pcss
│ │ │ │ │ ├── attendee-registration
│ │ │ │ │ │ └── style.pcss
│ │ │ │ │ ├── dashboard
│ │ │ │ │ │ └── container.js
│ │ │ │ │ ├── inactive-block
│ │ │ │ │ │ └── container.js
│ │ │ │ │ └── container
│ │ │ │ │ │ └── style.pcss
│ │ │ │ └── ticket
│ │ │ │ │ ├── __tests__
│ │ │ │ │ └── index.test.js
│ │ │ │ │ ├── edit-container
│ │ │ │ │ └── content
│ │ │ │ │ │ ├── attendees-registration
│ │ │ │ │ │ └── style.pcss
│ │ │ │ │ │ └── advanced-options
│ │ │ │ │ │ └── duration
│ │ │ │ │ │ └── __tests__
│ │ │ │ │ │ └── template.test.js
│ │ │ │ │ └── display-container
│ │ │ │ │ ├── status-icon
│ │ │ │ │ └── __tests__
│ │ │ │ │ │ └── __snapshots__
│ │ │ │ │ │ └── element.test.js.snap
│ │ │ │ │ └── display
│ │ │ │ │ └── quantity-bar
│ │ │ │ │ └── __tests__
│ │ │ │ │ └── __snapshots__
│ │ │ │ │ └── bar.test.js.snap
│ │ │ ├── icons
│ │ │ │ ├── rsvp.svg
│ │ │ │ ├── attendees.svg
│ │ │ │ ├── inactive
│ │ │ │ │ └── rsvp.svg
│ │ │ │ └── tickets.svg
│ │ │ └── elements
│ │ │ │ ├── label-with-tooltip
│ │ │ │ └── style.pcss
│ │ │ │ └── index.js
│ │ └── views
│ │ │ └── blocks
│ │ │ ├── tickets
│ │ │ ├── commerce
│ │ │ │ ├── fields-edd.php
│ │ │ │ ├── fields-tpp.php
│ │ │ │ ├── fields-woo.php
│ │ │ │ └── fields.php
│ │ │ ├── extra-available-unlimited.php
│ │ │ ├── icon.php
│ │ │ ├── registration
│ │ │ │ ├── summary
│ │ │ │ │ ├── ticket-title.php
│ │ │ │ │ ├── ticket-icon.php
│ │ │ │ │ ├── ticket-price.php
│ │ │ │ │ ├── ticket-quantity.php
│ │ │ │ │ ├── title.php
│ │ │ │ │ ├── description.php
│ │ │ │ │ ├── tickets.php
│ │ │ │ │ └── content.php
│ │ │ │ ├── content.php
│ │ │ │ └── attendee
│ │ │ │ │ ├── content.php
│ │ │ │ │ └── fields.php
│ │ │ ├── content-title.php
│ │ │ ├── submit-login.php
│ │ │ ├── quantity-add.php
│ │ │ ├── submit-button.php
│ │ │ ├── extra-price.php
│ │ │ ├── quantity-remove.php
│ │ │ ├── quantity-unavailable.php
│ │ │ ├── extra-available-quantity.php
│ │ │ ├── content-description.php
│ │ │ ├── submit.php
│ │ │ ├── extra.php
│ │ │ └── content.php
│ │ │ ├── rsvp
│ │ │ ├── status
│ │ │ │ ├── full.php
│ │ │ │ ├── going.php
│ │ │ │ ├── not-going-icon.php
│ │ │ │ └── going-icon.php
│ │ │ ├── details
│ │ │ │ ├── title.php
│ │ │ │ └── description.php
│ │ │ ├── loader.php
│ │ │ ├── form
│ │ │ │ ├── quantity-minus.php
│ │ │ │ ├── quantity-plus.php
│ │ │ │ ├── submit-login.php
│ │ │ │ ├── error.php
│ │ │ │ ├── submit-button.php
│ │ │ │ ├── quantity.php
│ │ │ │ ├── submit.php
│ │ │ │ ├── name.php
│ │ │ │ └── email.php
│ │ │ ├── form.php
│ │ │ ├── icon.php
│ │ │ ├── messages
│ │ │ │ └── success.php
│ │ │ ├── details.php
│ │ │ ├── content.php
│ │ │ └── status.php
│ │ │ └── attendees
│ │ │ ├── gravatar.php
│ │ │ ├── title.php
│ │ │ └── description.php
│ └── scripts
│ │ └── linkDependencies
└── common
│ ├── src
│ ├── modules
│ │ ├── data
│ │ │ ├── index.js
│ │ │ ├── utils.js
│ │ │ ├── plugins
│ │ │ │ ├── constants.js
│ │ │ │ ├── types.js
│ │ │ │ ├── selectors.js
│ │ │ │ ├── actions.js
│ │ │ │ ├── index.js
│ │ │ │ ├── __tests__
│ │ │ │ │ ├── actions.test.js
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── actions.test.js.snap
│ │ │ │ │ └── types.test.js
│ │ │ │ ├── proptypes.js
│ │ │ │ └── reducer.js
│ │ │ ├── forms
│ │ │ │ ├── reducers
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── volatile.js
│ │ │ │ └── index.js
│ │ │ ├── editor
│ │ │ │ └── post-types.js
│ │ │ ├── __tests__
│ │ │ │ └── utils.test.js
│ │ │ └── reducers.js
│ │ ├── components
│ │ │ ├── form
│ │ │ │ ├── index.js
│ │ │ │ └── select
│ │ │ │ │ └── index.js
│ │ │ ├── plugin-block-hooks
│ │ │ │ ├── index.js
│ │ │ │ └── container.js
│ │ │ ├── prevent-block-close
│ │ │ │ ├── index.js
│ │ │ │ └── __tests__
│ │ │ │ │ └── component.spec.js
│ │ │ └── index.js
│ │ ├── store
│ │ │ ├── middlewares
│ │ │ │ ├── index.js
│ │ │ │ └── request
│ │ │ │ │ ├── actions.js
│ │ │ │ │ ├── types.js
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── __tests__
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ └── actions.test.js.snap
│ │ │ │ │ ├── actions.test.js
│ │ │ │ │ └── types.test.js
│ │ │ └── index.js
│ │ ├── elements
│ │ │ ├── style.pcss
│ │ │ ├── accordion
│ │ │ │ └── style.pcss
│ │ │ ├── placeholder
│ │ │ │ ├── style.pcss
│ │ │ │ ├── __tests__
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── element.test.js.snap
│ │ │ │ │ └── element.test.js
│ │ │ │ └── element.js
│ │ │ ├── block-icon
│ │ │ │ ├── index.js
│ │ │ │ └── style.pcss
│ │ │ ├── heading
│ │ │ │ └── style.pcss
│ │ │ ├── paragraph
│ │ │ │ ├── style.pcss
│ │ │ │ └── __tests__
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ └── element.test.js.snap
│ │ │ │ │ └── element.test.js
│ │ │ ├── input
│ │ │ │ ├── style.pcss
│ │ │ │ ├── __tests__
│ │ │ │ │ └── __snapshots__
│ │ │ │ │ │ └── element.test.js.snap
│ │ │ │ └── element.js
│ │ │ ├── counter
│ │ │ │ └── style.pcss
│ │ │ ├── textarea
│ │ │ │ └── element.js
│ │ │ ├── tooltip
│ │ │ │ └── __tests__
│ │ │ │ │ └── __snapshots__
│ │ │ │ │ └── element.test.js.snap
│ │ │ ├── image
│ │ │ │ ├── element.js
│ │ │ │ └── __tests__
│ │ │ │ │ └── __snapshots__
│ │ │ │ │ └── element.test.js.snap
│ │ │ └── checkbox-input
│ │ │ │ └── style.pcss
│ │ ├── icons
│ │ │ ├── user.svg
│ │ │ ├── close.svg
│ │ │ ├── info.svg
│ │ │ ├── clipboard.svg
│ │ │ ├── tag.svg
│ │ │ ├── index.js
│ │ │ ├── alert.svg
│ │ │ └── cog.svg
│ │ ├── hoc
│ │ │ ├── index.js
│ │ │ ├── __tests__
│ │ │ │ └── __snapshots__
│ │ │ │ │ ├── with-form.test.js.snap
│ │ │ │ │ └── with-store.test.js.snap
│ │ │ └── with-store.js
│ │ └── utils
│ │ │ ├── __tests__
│ │ │ ├── slide.test.js
│ │ │ └── input.test.js
│ │ │ ├── input.js
│ │ │ └── number.js
│ └── Tribe
│ │ └── Meta_Interface.php
│ ├── .gitignore
│ └── scripts
│ └── linkDependencies
├── __mocks__
├── icons.js
├── uniqid.js
├── @wordpress
│ ├── blocks.js
│ ├── element.js
│ ├── i18n.js
│ ├── editor.js
│ ├── data.js
│ └── components.js
└── chrono-node.js
├── .gitattributes
├── webpack
├── externals
│ ├── vendor.js
│ ├── index.js
│ ├── wp.js
│ └── tribe
│ │ └── common.js
├── module
│ └── rules
│ │ ├── javascript.js
│ │ ├── svg.js
│ │ ├── images.js
│ │ └── styles.js
├── entry
│ └── tribe.js
└── utils
│ └── directories.js
├── package-whitelist.json
├── .travis.yml
├── lerna.json
├── postcss.config.js
├── .gitignore
├── jsconfig.json
├── .editorconfig
└── jest.setup.js
/.nvmrc:
--------------------------------------------------------------------------------
1 | 8.9.4
2 |
--------------------------------------------------------------------------------
/lang/events-gutenberg.pot:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/styles/editor/index.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/panel/style.pcss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/blocks/event-tags/style.pcss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/__mocks__/icons.js:
--------------------------------------------------------------------------------
1 | module.exports = '';
2 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/blocks/event-category/style.pcss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/events/src/views/silence.php:
--------------------------------------------------------------------------------
1 | text;
2 |
3 | export default uniqid;
4 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/components/form/index.js:
--------------------------------------------------------------------------------
1 | export { default as Select } from './select';
2 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/components/form/select/index.js:
--------------------------------------------------------------------------------
1 | export { default } from './component';
2 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/blocks/event-datetime/hooks/index.js:
--------------------------------------------------------------------------------
1 | export { default } from './blocks';
2 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/hoc/index.js:
--------------------------------------------------------------------------------
1 | export { default as withDetails } from './with-details';
2 |
--------------------------------------------------------------------------------
/__mocks__/@wordpress/blocks.js:
--------------------------------------------------------------------------------
1 | import noop from 'lodash/noop';
2 |
3 | export const createBlock = noop;
4 |
--------------------------------------------------------------------------------
/plugins/common/.gitignore:
--------------------------------------------------------------------------------
1 | /hoc
2 | /data
3 | /store
4 | /utils
5 | /elements
6 | /icons
7 | /components
8 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/components/plugin-block-hooks/index.js:
--------------------------------------------------------------------------------
1 | export { default } from './container';
2 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/store/middlewares/index.js:
--------------------------------------------------------------------------------
1 | export { default as wpRequest } from './request';
2 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/prefix.js:
--------------------------------------------------------------------------------
1 | export const PREFIX_EVENTS_PRO_STORE = '@@MT/EVENTS-PRO';
2 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/search/reducers/index.js:
--------------------------------------------------------------------------------
1 | export { default as search } from './search';
2 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/components/prevent-block-close/index.js:
--------------------------------------------------------------------------------
1 | export { default } from './component';
2 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/details/reducers/index.js:
--------------------------------------------------------------------------------
1 | export { default as details } from './details';
2 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/blocks/additional-fields/dropdown/index.js:
--------------------------------------------------------------------------------
1 | export { default as Dropdown } from './template';
2 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/style.pcss:
--------------------------------------------------------------------------------
1 | .post-type-tribe_events .editor-styles-wrapper {
2 | max-width: none!important;
3 | }
--------------------------------------------------------------------------------
/plugins/events/src/styles/event-tags/frontend.pcss:
--------------------------------------------------------------------------------
1 | /**
2 | * Event Tags block view styles
3 | *
4 | * @since 0.2.4-alpha
5 | */
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/type-picker/frequency-select/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__frequency-select {
2 | width: 85px;
3 | }
4 |
--------------------------------------------------------------------------------
/plugins/events/src/styles/event-category/frontend.pcss:
--------------------------------------------------------------------------------
1 | /**
2 | * Event Category block view styles
3 | *
4 | * @since 0.2.4-alpha
5 | */
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/index.js:
--------------------------------------------------------------------------------
1 | import reducer from './reducer';
2 | import './sagas';
3 |
4 | export default reducer;
5 |
--------------------------------------------------------------------------------
/webpack/externals/vendor.js:
--------------------------------------------------------------------------------
1 | const vendor = {
2 | 'react-dom': 'ReactDOM',
3 | 'react': 'React',
4 | };
5 |
6 | module.exports = vendor;
7 |
--------------------------------------------------------------------------------
/webpack/module/rules/javascript.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | test: /\.js$/,
3 | exclude: /node_modules/,
4 | use: 'babel-loader',
5 | };
6 |
--------------------------------------------------------------------------------
/package-whitelist.json:
--------------------------------------------------------------------------------
1 | [
2 | "events-gutenberg.php",
3 | "plugins/",
4 | "lang/",
5 | "readme.md",
6 | "readme.txt",
7 | "license.md"
8 | ]
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/plugins/constants.js:
--------------------------------------------------------------------------------
1 | export const EVENTS_PLUGIN = 'events';
2 | export const EVENTS_PRO_PLUGIN = 'events-pro';
3 |
--------------------------------------------------------------------------------
/webpack/module/rules/svg.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | test: /\.(svg)$/,
3 | use: [
4 | 'babel-loader',
5 | 'react-svg-loader',
6 | ],
7 | };
8 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/forms/reducers/index.js:
--------------------------------------------------------------------------------
1 | export { default as form } from './form';
2 | export { default as volatile } from './volatile';
3 |
--------------------------------------------------------------------------------
/plugins/events/src/styles/classic-event-details/frontend.pcss:
--------------------------------------------------------------------------------
1 | /**
2 | * Classic Event Details block view styles
3 | *
4 | * @since 0.2.4-alpha
5 | */
6 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/blocks/additional-fields/radio/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__additional-fields__field--radio {
2 | display: inline-block;
3 | }
4 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/blocks/additional-fields/checkbox/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__additional-fields__field--checkbox {
2 | display: inline-block;
3 | }
4 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/from-time-range-picker/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__from-time-range-picker__multi-day-checkbox {
2 | margin-left: 5px;
3 | }
4 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/recurring-to-date-time-picker/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__recurring-to-date-time-picker__select {
2 | width: 150px;
3 | }
4 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/styles/additional-fields/frontend.pcss:
--------------------------------------------------------------------------------
1 | .tribe-block__additional-field {
2 | padding: 15px 0;
3 | border-bottom: 1px solid #e5e5e5;
4 | }
5 |
--------------------------------------------------------------------------------
/plugins/events/src/views/blocks/featured-image.php:
--------------------------------------------------------------------------------
1 | get( 'post_id' ); ?>
2 |
9 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/accordion/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__accordion__row-content {
2 | max-height: 0;
3 | overflow: hidden;
4 |
5 | &.active {
6 | max-height: none;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/row/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__events-pro__row {
2 | display: flex;
3 | margin-bottom: 15px;
4 |
5 | &:last-child {
6 | margin-bottom: 0;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/elements/input/style.pcss:
--------------------------------------------------------------------------------
1 | input.tribe-editor--valid {
2 | border: 1px solid #e62f2f;
3 |
4 | &:focus {
5 | border: 1px solid #e62f2f;
6 | outline: none;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/single-to-date-time-picker/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__day-picker-input {
2 |
3 | .tribe-editor__single-to-date-time-picker & {
4 | width: 175px;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/tickets/controls/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__tickets-controls-provider {
2 | legend {
3 | font-weight: bold;
4 | margin-bottom: 10px;
5 | padding: 0;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/webpack/module/rules/images.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | test: /\.(png|woff|woff2|eot|ttf)$/,
3 | use: {
4 | loader: 'url-loader',
5 | options: {
6 | limit: 100000,
7 | },
8 | },
9 | };
10 |
--------------------------------------------------------------------------------
/plugins/events-pro/scripts/linkDependencies:
--------------------------------------------------------------------------------
1 | #! /bin/bash
2 |
3 | ln -sf "$(pwd)/src/modules/blocks" "$(pwd)"
4 | ln -sf "$(pwd)/src/modules/data" "$(pwd)"
5 | ln -sf "$(pwd)/src/modules/elements" "$(pwd)"
6 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/blocks/classic-event-details/event-details-organizers/event-details-organizer/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__btn--action {
2 | position: absolute;
3 | right: 0;
4 | top: -5px;
5 | }
6 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/elements/loading/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__spinner-container {
2 | display: flex;
3 | width: 100%;
4 | justify-content: center;
5 | align-items: center;
6 | padding: 20px;
7 | }
8 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/attribute-sync/__tests__/__snapshots__/template.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`AttributeSync should match snapshot 1`] = `null`;
4 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/blocks/event-datetime/human-readable-input/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__date-input {
2 | width: 100%;
3 |
4 | input[type="text"] {
5 | width: 100%;
6 | padding: 10px;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/status/full.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/status/__tests__/__snapshots__/types.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Status types SET_SERIES_QUEUE_STATUS 1`] = `"@@MT/EVENTS-PRO/SET_SERIES_QUEUE_STATUS"`;
4 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "8"
4 | env:
5 | - NODE_ENV=test
6 | install: false
7 | script:
8 | - npm run bootstrap
9 | - npm run test:travis
10 | cache:
11 | directories:
12 | - "node_modules"
13 |
--------------------------------------------------------------------------------
/__mocks__/@wordpress/element.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import Element, { Component } from 'react';
5 | import { compose } from 'redux';
6 |
7 | export {
8 | Element,
9 | Component,
10 | compose,
11 | };
12 |
--------------------------------------------------------------------------------
/__mocks__/@wordpress/i18n.js:
--------------------------------------------------------------------------------
1 | export const __ = ( value ) => value;
2 | export const _n = ( singular, plural, num ) => num <= 1 ? singular : plural;
3 | export const sprintf = ( text, replacement ) => text.replace( /%d|%s/, replacement );
4 |
--------------------------------------------------------------------------------
/plugins/events/src/styles/style.pcss:
--------------------------------------------------------------------------------
1 | /**
2 | * Generic block view styles
3 | *
4 | * @since 0.2.4-alpha
5 | */
6 | .tribe-block {
7 | display: block;
8 |
9 | *, *:before, *:after {
10 | box-sizing: border-box;
11 | }
12 | }
--------------------------------------------------------------------------------
/plugins/tickets/src/styles/style.pcss:
--------------------------------------------------------------------------------
1 | /**
2 | * Generic block view styles
3 | *
4 | * @since 0.2.4-alpha
5 | */
6 | .tribe-block {
7 | display: block;
8 |
9 | *, *:before, *:after {
10 | box-sizing: border-box;
11 | }
12 | }
--------------------------------------------------------------------------------
/plugins/common/src/modules/icons/close.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/rsvp/action-buttons/index.js:
--------------------------------------------------------------------------------
1 | export { default as AttendeesActionButton } from './attendees-action-button/container';
2 | export { default as SettingsActionButton } from './settings-action-button/container';
3 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/extra-available-unlimited.php:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/store/middlewares/request/actions.js:
--------------------------------------------------------------------------------
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 | } );
10 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/store/middlewares/request/types.js:
--------------------------------------------------------------------------------
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`;
7 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/fieldset/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__events-pro__fieldset {
2 | padding: 20px 50px;
3 | border-bottom: 1px solid #e1e3e6;
4 | position: relative;
5 |
6 | &:last-child {
7 | border-bottom-width: 0;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/webpack/externals/index.js:
--------------------------------------------------------------------------------
1 | const wpExternals = require( './wp' );
2 | const vendor = require( './vendor' );
3 | const tribeCommon = require( './tribe/common' );
4 |
5 | module.exports = {
6 | ...wpExternals,
7 | ...vendor,
8 | ...tribeCommon,
9 | };
10 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/blocks/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import * as constants from './constants';
5 | import reducer from './reducer';
6 | import './sagas';
7 |
8 | export default reducer;
9 | export { constants };
10 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/ticket/reducers/settings/__tests__/__snapshots__/tmp.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Temporarily reducer shared capacity 1`] = `
4 | Object {
5 | "sharedCapacity": 100,
6 | }
7 | `;
8 |
--------------------------------------------------------------------------------
/__mocks__/@wordpress/editor.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import React from 'react';
5 |
6 | export const RichText = () => Rich Text
;
7 | export const InspectorControls = ({ children }) => { children }
8 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/icons/info.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/status/actions.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import * as types from './types';
5 |
6 | export const setSeriesQueueStatus = ( payload ) => ( {
7 | type: types.SET_SERIES_QUEUE_STATUS,
8 | payload,
9 | } );
10 |
--------------------------------------------------------------------------------
/__mocks__/@wordpress/data.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { noop } from 'lodash';
5 | import { Component } from 'react';
6 |
7 | export const withSelect = () => ( component ) => component;
8 | export const withDispatch = () => ( component ) => component;
9 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/attendees/__tests__/__snapshots__/reducer.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`[STORE] - Attendees reducer Should set the title value 1`] = `
4 | Object {
5 | "title": "Who's coming?",
6 | }
7 | `;
8 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/store/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import 'regenerator-runtime/runtime';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import configureStore from './configure-store';
10 |
11 | export const store = configureStore();
12 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/tickets/action-buttons/index.js:
--------------------------------------------------------------------------------
1 | export { default as SettingsActionButton } from './settings/container';
2 | export { default as OrdersActionButton } from './orders/container';
3 | export { default as AttendeesActionButton } from './attendees/container';
4 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/details/title.php:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/blocks/additional-fields/elements/preview/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__additional-fields__preview {
2 | font-family: 'Helvetica', 'Arial', 'sans-serif';
3 | }
4 |
5 | .tribe-editor__additional-fields__preview-title {
6 | line-height: 1;
7 | margin: 10px 0;
8 | }
9 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/ticket/reducers/settings/__tests__/__snapshots__/settings.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Settings reducer Shared capacity 1`] = `
4 | Object {
5 | "sharedCapacity": 50,
6 | "tmp": Object {},
7 | }
8 | `;
9 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/reducers.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { combineReducers } from 'redux';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import blocks from './blocks';
10 |
11 | export default combineReducers( {
12 | blocks,
13 | } );
14 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/day-of-week-picker/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__day-of-week-picker {
2 | display: flex;
3 | }
4 |
5 | .tribe-editor__day-of-week-picker__day {
6 | flex: none;
7 | margin-right: 10px;
8 |
9 | &:last-child {
10 | margin-right: 0;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/loader.php:
--------------------------------------------------------------------------------
1 |
9 |
10 | template( 'blocks/rsvp/loader-svg' ); ?>
11 |
12 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/icons/clipboard.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/status/__tests__/__snapshots__/actions.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Status actions setSeriesQueueStatus 1`] = `
4 | Object {
5 | "payload": Object {},
6 | "type": "@@MT/EVENTS-PRO/SET_SERIES_QUEUE_STATUS",
7 | }
8 | `;
9 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/components/index.js:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/lerna.json:
--------------------------------------------------------------------------------
1 | {
2 | "packages": [
3 | "plugins/*"
4 | ],
5 | "version": "independent",
6 | "command": {
7 | "bootstrap": {
8 | "npmClientArgs": ["--no-optional"]
9 | },
10 | "build": {
11 | "npmClientArgs": ["--production", "--no-optional"]
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/plugins/types.js:
--------------------------------------------------------------------------------
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`;
8 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/status/types.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable max-len */
2 | /**
3 | * Internal dependencies
4 | */
5 | import { PREFIX_EVENTS_PRO_STORE } from '@moderntribe/events-pro/data/prefix';
6 |
7 | export const SET_SERIES_QUEUE_STATUS = `${ PREFIX_EVENTS_PRO_STORE }/SET_SERIES_QUEUE_STATUS`;
8 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/form/quantity-minus.php:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/form/quantity-plus.php:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/store/middlewares/request/index.js:
--------------------------------------------------------------------------------
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 };
10 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/icon.php:
--------------------------------------------------------------------------------
1 |
9 |
12 | template( 'blocks/tickets/icon-svg' ); ?>
13 |
14 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/rsvp/__tests__/index.test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import RSVP from '@moderntribe/tickets/blocks/rsvp';
5 |
6 | describe( 'RSVP block declaration', () => {
7 | it( 'register the RSVP block', () => {
8 | expect( RSVP ).toMatchSnapshot();
9 | } );
10 | } );
11 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/rsvp/reducers/__tests__/__snapshots__/header-image.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Header image reducer should set the header image state 1`] = `
4 | Object {
5 | "alt": "test-alt",
6 | "id": 42,
7 | "src": "test-src",
8 | }
9 | `;
10 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/registration/summary/ticket-title.php:
--------------------------------------------------------------------------------
1 |
9 |
10 | name; ?>
11 |
--------------------------------------------------------------------------------
/plugins/common/src/Tribe/Meta_Interface.php:
--------------------------------------------------------------------------------
1 |
10 |
11 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/__tests__/utils.test.js:
--------------------------------------------------------------------------------
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 | } );
11 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/ui/index.js:
--------------------------------------------------------------------------------
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 |
9 | export default reducer;
10 | export { types, actions, selectors };
11 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/remove-field/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__events-pro__remove-field {
2 | background: transparent;
3 | border: 0;
4 | cursor: pointer;
5 | outline: none;
6 | position: absolute;
7 | right: 20px;
8 | top: 20px;
9 |
10 | & svg {
11 | height: 15px;
12 | width: 11px;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/row/__tests__/__snapshots__/element.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Row should render component 1`] = `
4 |
7 |
8 | Test children
9 |
10 |
11 | `;
12 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/hoc/index.js:
--------------------------------------------------------------------------------
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';
6 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/icons/tag.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/status/index.js:
--------------------------------------------------------------------------------
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 |
9 | export default reducer;
10 | export { types, actions, selectors };
11 |
--------------------------------------------------------------------------------
/plugins/events/scripts/linkDependencies:
--------------------------------------------------------------------------------
1 | #! /bin/bash
2 |
3 | ln -sf "$(pwd)"/src/modules/blocks "$(pwd)"
4 | ln -sf "$(pwd)"/src/modules/data "$(pwd)"
5 | ln -sf "$(pwd)"/src/modules/editor "$(pwd)"
6 | ln -sf "$(pwd)"/src/modules/elements "$(pwd)"
7 | ln -sf "$(pwd)"/src/modules/icons "$(pwd)"
8 | ln -sf "$(pwd)"/src/modules/hoc "$(pwd)"
9 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/organizers/reducer.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { combineReducers } from 'redux';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import { classic, blocks } from './reducers';
10 |
11 | export default combineReducers( {
12 | blocks,
13 | classic,
14 | } );
15 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/tickets/__tests__/index.test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import Tickets from '@moderntribe/tickets/blocks/tickets';
5 |
6 | describe( 'Ticket block declaration', () => {
7 | it( 'register the ticket block', () => {
8 | expect( Tickets ).toMatchSnapshot();
9 | } );
10 | } );
11 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/forms/index.js:
--------------------------------------------------------------------------------
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 };
13 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/plugins/selectors.js:
--------------------------------------------------------------------------------
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 ) );
10 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/resources/icons/arrow.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/organizers/index.js:
--------------------------------------------------------------------------------
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 |
9 | export default reducer;
10 | export { types, actions, selectors };
11 |
--------------------------------------------------------------------------------
/plugins/events/src/views/blocks/event-tags.php:
--------------------------------------------------------------------------------
1 | get( 'post_id' );
3 | ?>
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/form/submit-login.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/icon.php:
--------------------------------------------------------------------------------
1 |
9 |
10 | template( 'blocks/rsvp/icon-svg' ); ?>
11 |
12 |
13 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/content-title.php:
--------------------------------------------------------------------------------
1 | get( 'ticket' );
10 | ?>
11 |
14 | name; ?>
15 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/ticket/__tests__/index.test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import TicketBlock from '@moderntribe/tickets/blocks/ticket';
5 |
6 | describe( 'Single ticket block declaration', () => {
7 | test( 'Block declaration', () => {
8 | expect( TicketBlock ).toMatchSnapshot();
9 | } );
10 | } );
11 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/registration/summary/ticket-icon.php:
--------------------------------------------------------------------------------
1 |
9 |
10 | template( 'blocks/tickets/icon-svg' ); ?>
11 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/submit-login.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/fieldset/__tests__/__snapshots__/element.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Fieldset should match snapshot 1`] = `
4 |
11 | `;
12 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/details/__tests__/__snapshots__/reducer.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`[STORE] - Details reducer Should set the details 1`] = `
4 | Object {
5 | "20": Object {
6 | "details": Object {},
7 | "isLoading": false,
8 | "postType": "tribe_events",
9 | },
10 | }
11 | `;
12 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/icons/website.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/tickets/container/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__tickets-body {
2 | .editor-inner-blocks {
3 | .editor-block-list__block {
4 | &.is-hovered,
5 | &.is-selected {
6 |
7 | > .editor-block-list__block-edit::before {
8 | outline: none;
9 | transition: none
10 | }
11 | }
12 | }
13 |
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/webpack/entry/tribe.js:
--------------------------------------------------------------------------------
1 | const { resolve } = require( 'path' );
2 |
3 | const generateEntries = ( source, directoryNames ) => (
4 | directoryNames.reduce( ( result, directory ) => {
5 | result[ directory ] = resolve( source, `src/modules/${ directory }/index.js` );
6 | return result;
7 | }, {} )
8 | );
9 |
10 | module.exports = { generateEntries };
11 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/reducers.js:
--------------------------------------------------------------------------------
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 | } );
16 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/ticket/edit-container/content/attendees-registration/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__ticket__attendee-registration {
2 | margin-top: 30px;
3 | }
4 |
5 | .tribe-editor__ticket__attendee-registration-helper-text {
6 | display: block;
7 | color: #8D949B;
8 | font-size: 12px;
9 | line-height: 14px;
10 | margin-top: 10px;
11 | }
12 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/attendees/selectors.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { createSelector } from 'reselect';
5 |
6 | export const getAttendeesBlock = ( state ) => state.tickets.blocks.attendees;
7 |
8 | export const getTitle = createSelector(
9 | [ getAttendeesBlock ],
10 | ( attendees ) => attendees.title,
11 | );
12 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/attendees/types.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { PREFIX_TICKETS_STORE } from '@moderntribe/tickets/data/utils';
5 |
6 | export const SET_ATTENDEES_INITIAL_STATE = `${ PREFIX_TICKETS_STORE }/SET_ATTENDEES_INITIAL_STATE`;
7 |
8 | export const SET_ATTENDEES_TITLE = `${ PREFIX_TICKETS_STORE }/SET_ATTENDEES_TITLE`;
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/registration/summary/ticket-price.php:
--------------------------------------------------------------------------------
1 |
9 |
10 | get_provider()->get_price_html( $ticket->ID ); ?>
11 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/blocks/additional-fields/elements/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | export { default as Settings } from './settings/container';
5 | export { default as Preview } from './preview/element';
6 | export { default as EditContainer } from './edit-container/element';
7 | export { default as Field } from './field-container/container';
8 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/quantity-add.php:
--------------------------------------------------------------------------------
1 | get( 'ticket' );
10 | ?>
11 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/blocks/sagas.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { store } from '@moderntribe/common/store';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import * as fields from '@moderntribe/events-pro/src/modules/data/blocks/additional-fields';
10 |
11 | [
12 | fields.sagas,
13 | ].forEach( sagas => store.run( sagas ) );
14 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/elements/year-month-form/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__year-month-form {
2 | display: table-caption;
3 | text-align: center;
4 | margin-bottom: 18px;
5 |
6 | .tribe-editor__year-month-form__month,
7 | .tribe-editor__year-month-form__year {
8 | font-size: 16px;
9 | border: none;
10 | box-shadow: 0 1px 0 rgba(0, 0, 0, .1)
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/details/description.php:
--------------------------------------------------------------------------------
1 | show_description() ) {
9 | return;
10 | }
11 | ?>
12 |
13 | description ) ); ?>
14 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/submit-button.php:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/placeholder/style.pcss:
--------------------------------------------------------------------------------
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 | }
13 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/reducers.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { combineReducers } from 'redux';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import ui from './ui';
10 | import blocks from './blocks';
11 | import status from './status';
12 |
13 | export default combineReducers( {
14 | ui,
15 | blocks,
16 | status,
17 | } );
18 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/status/__tests__/__snapshots__/selectors.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Status selectors getProgress 1`] = `60`;
4 |
5 | exports[`Status selectors getStatus 1`] = `
6 | Object {
7 | "done": true,
8 | "progress": 60,
9 | }
10 | `;
11 |
12 | exports[`Status selectors isCompleted 1`] = `true`;
13 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/status/__tests__/types.spec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External Dependencies
3 | */
4 | import * as types from '../types';
5 |
6 | describe( 'Status types', () => {
7 | const keys = Object.keys( types );
8 |
9 | keys.forEach( ( key ) => {
10 | test( key, () => {
11 | expect( types[ key ] ).toMatchSnapshot();
12 | } );
13 | } );
14 | } );
15 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/resources/icons/trash.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/details/index.js:
--------------------------------------------------------------------------------
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 thunks from './thunks';
8 | import * as selectors from './selectors';
9 |
10 | export default reducer;
11 | export { types, actions, thunks, selectors };
12 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/search/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import reducer from './reducer';
5 | import * as actions from './actions';
6 | import * as thunks from './thunks';
7 | import * as types from './types';
8 | import * as selectors from './selectors';
9 |
10 | export default reducer;
11 | export { actions, thunks, types, selectors };
12 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/form/error.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/commerce/fields-tpp.php:
--------------------------------------------------------------------------------
1 | get( 'provider' );
9 | $provider_id = $this->get( 'provider_id' );
10 | ?>
11 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/extra-price.php:
--------------------------------------------------------------------------------
1 | get( 'ticket' );
10 | ?>
11 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = ( { file, options, env } ) => ( { // eslint-disable-line no-unused-vars
2 | plugins: [
3 | require( 'postcss-import' )( { root: file.dirname } ),
4 | require( 'postcss-preset-env' ),
5 | require( 'postcss-nested' ),
6 | require( 'postcss-mixins' ),
7 | require( 'postcss-hexrgba' ),
8 | require( 'css-mqpacker' ),
9 | ],
10 | } );
11 |
--------------------------------------------------------------------------------
/__mocks__/chrono-node.js:
--------------------------------------------------------------------------------
1 | import moment from 'moment';
2 |
3 | export default {
4 | parse: ( label ) => {
5 | const start = label ? moment( label ) : null;
6 | const results = [];
7 | if ( start && start.isValid() ) {
8 | const date = {
9 | date: () => start
10 | }
11 | results.push( { start: date, end: date } );
12 | }
13 | return results;
14 | }
15 | };
16 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/store/middlewares/request/__tests__/__snapshots__/actions.test.js.snap:
--------------------------------------------------------------------------------
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 | `;
12 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/remove-field/__tests__/__snapshots__/element.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`RemoveField should render component 1`] = `
4 |
11 | `;
12 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/classic/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import reducer from './reducer';
5 |
6 | import * as selectors from './selectors';
7 | import * as actions from './actions';
8 | import * as types from './types';
9 | import sagas from './sagas';
10 |
11 | export default reducer;
12 | export { selectors, actions, types, sagas };
13 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/price/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import reducer from './reducer';
5 |
6 | import * as selectors from './selectors';
7 | import * as actions from './actions';
8 | import * as types from './types';
9 | import sagas from './sagas';
10 |
11 | export default reducer;
12 | export { selectors, actions, types, sagas };
13 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/sharing/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import reducer from './reducer';
5 |
6 | import * as selectors from './selectors';
7 | import * as actions from './actions';
8 | import * as types from './types';
9 | import sagas from './sagas';
10 |
11 | export default reducer;
12 | export { selectors, actions, types, sagas };
13 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/website/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import reducer from './reducer';
5 |
6 | import * as selectors from './selectors';
7 | import * as actions from './actions';
8 | import * as types from './types';
9 | import sagas from './sagas';
10 |
11 | export default reducer;
12 | export { selectors, actions, types, sagas };
13 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/quantity-remove.php:
--------------------------------------------------------------------------------
1 | get( 'ticket' );
10 | ?>
11 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/registration/summary/ticket-quantity.php:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/blocks/exception/__tests__/types.spec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal Dependencies
3 | */
4 | import * as types from '../types';
5 |
6 | describe( 'Exception Types', () => {
7 | const keys = Object.keys( types );
8 |
9 | keys.forEach( ( key ) => {
10 | test( key, () => {
11 | expect( types[ key ] ).toMatchSnapshot();
12 | } );
13 | } );
14 | } );
15 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/labeled-row/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__labeled-row__content {
2 | display: flex;
3 | align-items: center;
4 |
5 | & > span {
6 | font-size: 16px;
7 | line-height: 24px;
8 | color: #8D949B;
9 | }
10 |
11 | & > * {
12 | flex: none;
13 | margin-right: 15px;
14 |
15 | &:last-child {
16 | margin-right: 0;
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/attendees/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import reducer from './reducer';
5 |
6 | import * as selectors from './selectors';
7 | import * as actions from './actions';
8 | import * as types from './types';
9 | import sagas from './sagas';
10 |
11 | export default reducer;
12 | export { selectors, actions, types, sagas };
13 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/messages/success.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/registration/summary/title.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/plugins/common/scripts/linkDependencies:
--------------------------------------------------------------------------------
1 | #! /bin/bash
2 |
3 | ln -sf "$(pwd)"/src/modules/hoc "$(pwd)"
4 | ln -sf "$(pwd)"/src/modules/data "$(pwd)"
5 | ln -sf "$(pwd)"/src/modules/store "$(pwd)"
6 | ln -sf "$(pwd)"/src/modules/utils "$(pwd)"
7 | ln -sf "$(pwd)"/src/modules/elements "$(pwd)"
8 | ln -sf "$(pwd)"/src/modules/icons "$(pwd)"
9 | ln -sf "$(pwd)"/src/modules/components "$(pwd)"
10 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/plugins/actions.js:
--------------------------------------------------------------------------------
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 | } );
19 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/blocks/additional-fields/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import reducer from './reducers';
5 | import * as types from './types';
6 | import * as actions from './actions';
7 | import * as selectors from './selectors';
8 | import sagas from './sagas';
9 |
10 | export default reducer;
11 | export { types, actions, selectors, sagas };
12 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/status/__tests__/actions.spec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External Dependencies
3 | */
4 | import * as actions from '../actions';
5 |
6 | describe( 'Status actions', () => {
7 | const keys = Object.keys( actions );
8 |
9 | keys.forEach( ( key ) => {
10 | test( key, () => {
11 | expect( actions[ key ]( {} ) ).toMatchSnapshot();
12 | } );
13 | } );
14 | } );
15 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/reducer.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { combineReducers } from 'redux';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import rsvp from './rsvp';
10 | import ticket from './ticket';
11 | import attendees from './attendees';
12 |
13 | export default combineReducers( {
14 | rsvp,
15 | ticket,
16 | attendees,
17 | } );
18 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/label/__tests__/__snapshots__/element.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Label should match snapshot 1`] = `
4 |
7 |
10 | Test label
11 |
12 |
13 | `;
14 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/quantity-unavailable.php:
--------------------------------------------------------------------------------
1 | get( 'ticket' );
10 | ?>
11 |
14 |
15 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/blocks/exception/__tests__/options.spec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External Dependencies
3 | */
4 | import * as options from '../options';
5 |
6 | describe( 'Exception options', () => {
7 | const keys = Object.keys( options );
8 |
9 | keys.forEach( ( key ) => {
10 | test( key, () => {
11 | expect( options[ key ] ).toMatchSnapshot();
12 | } );
13 | } );
14 | } );
15 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/form/submit-button.php:
--------------------------------------------------------------------------------
1 |
9 |
17 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/commerce/fields-woo.php:
--------------------------------------------------------------------------------
1 | get( 'provider' );
9 | $provider_id = $this->get( 'provider_id' );
10 | ?>
11 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/block-icon/index.js:
--------------------------------------------------------------------------------
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 |
14 |
15 |
16 | );
17 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/heading/style.pcss:
--------------------------------------------------------------------------------
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 | }
17 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/attendees/actions.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import * as types from './types';
5 |
6 | export const setTitle = ( title ) => ( {
7 | type: types.SET_ATTENDEES_TITLE,
8 | payload: {
9 | title,
10 | },
11 | } );
12 |
13 | export const setInitialState = ( payload ) => ( {
14 | type: types.SET_ATTENDEES_INITIAL_STATE,
15 | payload,
16 | } );
17 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/ticket/reducers/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { combineReducers } from 'redux';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import ui from './ui';
10 | import tickets from './tickets';
11 | import settings from './settings/index';
12 |
13 | export default combineReducers( {
14 | ui,
15 | tickets,
16 | settings,
17 | } );
18 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/blocks/additional-fields/index.js:
--------------------------------------------------------------------------------
1 | export { default as Text } from './text/container';
2 | export { default as URL } from './url/container';
3 | export { default as TextArea } from './text-area/container';
4 | export { default as Dropdown } from './dropdown/container';
5 | export { default as Radio } from './radio/container';
6 | export { default as Checkbox } from './checkbox/container';
7 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/details/types.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { PREFIX_EVENTS_STORE } from '@moderntribe/events/data/utils';
5 |
6 | export const SET_DETAILS = `${ PREFIX_EVENTS_STORE }/SET_DETAILS`;
7 | export const SET_DETAILS_POST_TYPE = `${ PREFIX_EVENTS_STORE }/SET_DETAILS_POST_TYPE`;
8 | export const SET_DETAILS_IS_LOADING = `${ PREFIX_EVENTS_STORE }/SET_DETAILS_IS_LOADING`;
9 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/utils/__tests__/slide.test.js:
--------------------------------------------------------------------------------
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 | } );
13 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/venue/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import reducer from './reducer';
5 | import * as selectors from './selectors';
6 | import * as actions from './actions';
7 | import * as types from './types';
8 | import * as utils from './utils';
9 | import sagas from './sagas';
10 |
11 | export default reducer;
12 | export { selectors, actions, types, utils, sagas };
13 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/rsvp/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import * as types from './types';
5 | import * as actions from './actions';
6 | import * as selectors from './selectors';
7 | import * as thunks from './thunks';
8 | import reducer from './reducer';
9 | import sagas from './sagas';
10 |
11 | export default reducer;
12 | export { types, actions, sagas, selectors, thunks };
13 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/extra-available-quantity.php:
--------------------------------------------------------------------------------
1 | get( 'ticket' );
9 | ?>
10 |
11 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/blocks/additional-fields/checkbox/settings/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__additional-fields__divider-settings {
2 | .components-base-control__field {
3 | display: flex;
4 | align-items: center;
5 | }
6 |
7 | .components-base-control__label {
8 | flex: auto;
9 | margin-bottom: 0;
10 | }
11 |
12 | .components-text-control__input {
13 | flex: none;
14 | width: 52px;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/datetime/index.js:
--------------------------------------------------------------------------------
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 thunks from './thunks';
8 | import * as selectors from './selectors';
9 | import sagas from './sagas';
10 |
11 | export default reducer;
12 | export { types, actions, thunks, selectors, sagas };
13 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/blocks/exception/index.js:
--------------------------------------------------------------------------------
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 options from './options';
9 | import sagas from './sagas';
10 |
11 | export default reducer;
12 | export { types, actions, selectors, options, sagas };
13 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/type-picker/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__type-picker__type-select {
2 | width: 195px;
3 |
4 | .tribe-editor__select__option:last-child {
5 | position: relative;
6 | margin-top: 9px;
7 |
8 | &:after {
9 | content: '';
10 | position: absolute;
11 | width: 100%;
12 | height: 1px;
13 | left: 0;
14 | top: -5px;
15 | background-color: #E1E3E6;
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/reducers.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { combineReducers } from 'redux';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import blocks from './blocks';
10 | import ui from './ui';
11 | import search from './search';
12 | import details from './details';
13 |
14 | export default combineReducers( {
15 | blocks,
16 | ui,
17 | search,
18 | details,
19 | } );
20 |
21 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/registration/content.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 | template( 'blocks/tickets/registration/summary/content' ); ?>
12 | template( 'blocks/tickets/registration/attendee/content' ); ?>
13 |
14 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/registration/summary/description.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/status/reducer.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import * as types from './types';
5 |
6 | export const DEFAULT_STATE = {};
7 |
8 | export default ( state = DEFAULT_STATE, action ) => {
9 | switch ( action.type ) {
10 | case types.SET_SERIES_QUEUE_STATUS:
11 | return {
12 | ...state,
13 | ...action.payload,
14 | };
15 | default:
16 | return state;
17 | }
18 | };
19 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/plugins/index.js:
--------------------------------------------------------------------------------
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 };
13 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/add-field/__tests__/element.spec.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 | import AddField from '../element';
4 |
5 | describe( 'AddField', () => {
6 | test( 'should match snapshot', () => {
7 | const component = renderer.create(
8 |
9 | );
10 | expect( component.toJSON() ).toMatchSnapshot();
11 | } );
12 | } );
13 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/content-description.php:
--------------------------------------------------------------------------------
1 | get( 'ticket' );
10 |
11 | if ( ! $ticket->show_description() ) {
12 | return false;
13 | }
14 | ?>
15 |
18 | description; ?>
19 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/website/types.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { PREFIX_EVENTS_STORE } from '@moderntribe/events/data/utils';
5 |
6 | export const SET_INITIAL_STATE = `${ PREFIX_EVENTS_STORE }/WEBSITE_BLOCK/SET_INITIAL_STATE`;
7 |
8 | export const SET_WEBSITE_URL = `${ PREFIX_EVENTS_STORE }/SET_WEBSITE_URL`;
9 |
10 | export const SET_WEBSITE_LABEL = `${ PREFIX_EVENTS_STORE }/SET_WEBSITE_LABEL`;
11 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/ticket/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import reducer from './reducers';
5 |
6 | import * as constants from './constants';
7 | import * as types from './types';
8 | import * as actions from './actions';
9 | import * as selectors from './selectors';
10 | import sagas from './sagas';
11 |
12 | export default reducer;
13 |
14 | export { constants, types, actions, selectors, sagas };
15 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/remove-field/__tests__/element.spec.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 | import RemoveField from '../element';
4 |
5 | describe( 'RemoveField', () => {
6 | test( 'should render component', () => {
7 | const component = renderer.create(
8 |
9 | );
10 | expect( component.toJSON() ).toMatchSnapshot();
11 | } );
12 | } );
13 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/classic/__tests__/__snapshots__/reducer.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`[STORE] - Classic reducer Details title 1`] = `
4 | Object {
5 | "detailsTitle": "Event",
6 | "organizerTitle": "",
7 | }
8 | `;
9 |
10 | exports[`[STORE] - Classic reducer Organizer title 1`] = `
11 | Object {
12 | "detailsTitle": "",
13 | "organizerTitle": "Modern Tribe",
14 | }
15 | `;
16 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/plugins/__tests__/actions.test.js:
--------------------------------------------------------------------------------
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 | } );
15 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/rsvp/counters/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__rsvp-container-header__counters {
2 | flex: none;
3 | display: flex;
4 | }
5 |
6 | .tribe-editor__rsvp-container-header__going-counter,
7 | .tribe-editor__rsvp-container-header__not-going-counter {
8 | flex: none;
9 | }
10 |
11 | .tribe-editor__rsvp-container-header__going-counter {
12 | margin-right: 25px;
13 |
14 | &:last-child {
15 | margin-right: 0;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/rsvp/settings-dashboard/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__settings-dashboard__header-left {
2 |
3 | .tribe-editor__rsvp__settings-dashboard--loading & {
4 |
5 | & > svg {
6 |
7 | &,
8 | & path {
9 | fill: #AEB4BB;
10 | }
11 | }
12 | }
13 | }
14 |
15 | .tribe-editor__settings-dashboard__header-left-text {
16 |
17 | .tribe-editor__rsvp__settings-dashboard--loading & {
18 | color: #AEB4BB;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/status/going.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
14 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/store/middlewares/request/__tests__/actions.test.js:
--------------------------------------------------------------------------------
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 | } );
15 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/label/__tests__/element.spec.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 | import Label from '../element';
4 |
5 | describe( 'Label', () => {
6 | test( 'should match snapshot', () => {
7 | const component = renderer.create(
8 |
11 | );
12 | expect( component.toJSON() ).toMatchSnapshot();
13 | } );
14 | } );
15 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/organizers/__tests__/__snapshots__/selectors.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`[STORE] - Organizers selectors Should return the mapped organizers 1`] = `
4 | Array [
5 | Object {
6 | "block": false,
7 | "id": 98,
8 | },
9 | Object {
10 | "block": false,
11 | "id": 99,
12 | },
13 | Object {
14 | "block": true,
15 | "id": 100,
16 | },
17 | ]
18 | `;
19 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/website/__tests__/__snapshots__/reducer.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`[STORE] - Website reducer Should set the website label 1`] = `
4 | Object {
5 | "label": "Modern Tribe",
6 | "url": undefined,
7 | }
8 | `;
9 |
10 | exports[`[STORE] - Website reducer Should set the website value 1`] = `
11 | Object {
12 | "label": "",
13 | "url": "https://tri.be/",
14 | }
15 | `;
16 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/website/selectors.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { createSelector } from 'reselect';
5 |
6 | export const getWebsiteBlock = ( state ) => state.events.blocks.website;
7 |
8 | export const getUrl = createSelector(
9 | [ getWebsiteBlock ],
10 | ( website ) => website.url,
11 | );
12 |
13 | export const getLabel = createSelector(
14 | [ getWebsiteBlock ],
15 | ( website ) => website.label,
16 | );
17 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/paragraph/style.pcss:
--------------------------------------------------------------------------------
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 | }
25 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/store/middlewares/request/__tests__/types.test.js:
--------------------------------------------------------------------------------
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 | } );
12 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/row/__tests__/element.spec.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 | import Row from '../element';
4 |
5 | describe( 'Row', () => {
6 | test( 'should render component', () => {
7 | const component = renderer.create(
8 |
9 | Test children
10 |
11 | );
12 | expect( component.toJSON() ).toMatchSnapshot();
13 | } );
14 | } );
15 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/icons/tags.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/plugins/proptypes.js:
--------------------------------------------------------------------------------
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 );
16 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/exception-add-field/__tests__/element.spec.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 | import ExceptionAddField from '../element';
4 |
5 | describe( 'ExceptionAddField', () => {
6 | test( 'should match snapshot', () => {
7 | const component = renderer.create(
8 |
9 | );
10 | expect( component.toJSON() ).toMatchSnapshot();
11 | } );
12 | } );
13 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/recurring-add-field/__tests__/element.spec.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 | import RecurringAddField from '../element';
4 |
5 | describe( 'RecurringAddField', () => {
6 | test( 'should match snapshot', () => {
7 | const component = renderer.create(
8 |
9 | );
10 | expect( component.toJSON() ).toMatchSnapshot();
11 | } );
12 | } );
13 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/blocks/event-datetime/human-readable-input/__tests__/template.test.js:
--------------------------------------------------------------------------------
1 | import HumanReadableInput from '../template';
2 |
3 | describe( 'Human readable input', () => {
4 | test( 'render component', () => {
5 | const component = renderer.create(
6 |
10 | );
11 | expect( component.toJSON() ).toMatchSnapshot();
12 | } );
13 | } );
14 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/editor/__tests__/post-types.test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { EVENT, ORGANIZER, VENUE } from '@moderntribe/common/data/editor/post-types';
5 |
6 | describe( 'Tests for post-types.js', () => {
7 | test( 'It should match the TEC post types', () => {
8 | expect( EVENT ).toEqual( 'tribe_events' );
9 | expect( ORGANIZER ).toEqual( 'tribe_organizer' );
10 | expect( VENUE ).toEqual( 'tribe_venue' );
11 | } );
12 | } );
13 |
--------------------------------------------------------------------------------
/plugins/events/src/views/blocks/parts/map.php:
--------------------------------------------------------------------------------
1 |
14 |
15 |
16 |
22 |
23 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/attendees/reducer.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import * as types from './types';
5 |
6 | export const DEFAULT_STATE = {
7 | title: '',
8 | };
9 |
10 | export default ( state = DEFAULT_STATE, action ) => {
11 | switch ( action.type ) {
12 | case types.SET_ATTENDEES_TITLE:
13 | return {
14 | ...state,
15 | title: action.payload.title,
16 | };
17 | default:
18 | return state;
19 | }
20 | };
21 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/status/selectors.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { createSelector } from 'reselect';
5 | import { constants } from '@moderntribe/common/data/plugins';
6 |
7 | export const getStatus = ( state ) => state[ constants.EVENTS_PRO_PLUGIN ].status;
8 |
9 | export const isCompleted = createSelector( getStatus, status => !! status.done );
10 | export const getProgress = createSelector( getStatus, status => status.progress );
11 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/views/blocks/additional-fields/radio.php:
--------------------------------------------------------------------------------
1 | attr( 'isPristine' );
3 | $label = $this->attr( 'label' );
4 | $output = $this->attr( 'output' );
5 |
6 | if ( $is_pristine ) {
7 | return;
8 | }
9 | ?>
10 |
11 | :
12 |
13 |
14 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/views/blocks/additional-fields/text.php:
--------------------------------------------------------------------------------
1 | attr( 'isPristine' );
3 | $label = $this->attr( 'label' );
4 | $output = $this->attr( 'output' );
5 |
6 | if ( $is_pristine ) {
7 | return;
8 | }
9 | ?>
10 |
11 | :
12 |
13 |
14 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/classic/types.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { PREFIX_EVENTS_STORE } from '@moderntribe/events/data/utils';
5 |
6 | export const SET_INITIAL_STATE = `${ PREFIX_EVENTS_STORE }/CLASSIC_BLOCK/SET_INITIAL_STATE`;
7 |
8 | export const SET_CLASSIC_DETAILS_TITLE = `${ PREFIX_EVENTS_STORE }/SET_CLASSIC_DETAILS_TITLE`;
9 | export const SET_CLASSIC_ORGANIZERS_TITLE = `${ PREFIX_EVENTS_STORE }/SET_CLASSIC_ORGANIZERS_TITLE`;
10 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/forms/reducers/volatile.js:
--------------------------------------------------------------------------------
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 | };
16 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/blocks/recurring/index.js:
--------------------------------------------------------------------------------
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 options from './options';
10 | import sagas from './sagas';
11 |
12 | export default reducer;
13 | export { types, actions, selectors, options, constants, sagas };
14 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/fieldset/__tests__/element.spec.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 | import Fieldset from '../element';
4 |
5 | describe( 'Fieldset', () => {
6 | test( 'should match snapshot', () => {
7 | const component = renderer.create(
8 |
11 | );
12 | expect( component.toJSON() ).toMatchSnapshot();
13 | } );
14 | } );
15 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/month-picker/month-tag/__tests__/__snapshots__/element.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`MonthTag should render component 1`] = `
4 |
16 | `;
17 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/views/blocks/additional-fields/checkbox.php:
--------------------------------------------------------------------------------
1 | attr( 'isPristine' );
3 | $label = $this->attr( 'label' );
4 | $output = $this->attr( 'output' );
5 |
6 | if ( $is_pristine ) {
7 | return;
8 | }
9 | ?>
10 |
11 | :
12 |
13 |
14 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/views/blocks/additional-fields/dropdown.php:
--------------------------------------------------------------------------------
1 | attr( 'isPristine' );
3 | $label = $this->attr( 'label' );
4 | $output = $this->attr( 'output' );
5 |
6 | if ( $is_pristine ) {
7 | return;
8 | }
9 | ?>
10 |
11 | :
12 |
13 |
14 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/blocks/event-datetime/human-readable-input/__tests__/__snapshots__/template.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Human readable input render component 1`] = `
4 |
7 |
14 |
15 | `;
16 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import reducer from './reducers';
5 |
6 | import { actions } from '@moderntribe/common/data/plugins';
7 | import { store } from '@moderntribe/common/store';
8 |
9 | export const initStore = () => {
10 | const { dispatch, injectReducers } = store;
11 |
12 | dispatch( actions.addPlugin( 'events' ) );
13 | injectReducers( { events: reducer } );
14 | };
15 |
16 | export const getStore = () => store;
17 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/icons/organizer.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/icons/sharing.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/paragraph/__tests__/__snapshots__/element.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[` default paragraph 1`] = `
4 |
7 | Modern Tribe
8 |
9 | `;
10 |
11 | exports[` smaller paragraph 1`] = `
12 |
15 | Modern Tribe
16 |
17 | `;
18 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/placeholder/__tests__/__snapshots__/element.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[` component Custom Class name attached 1`] = `
4 |
7 | Custom Text
8 |
9 | `;
10 |
11 | exports[` component Default behavior 1`] = `
12 |
15 | Custom Text
16 |
17 | `;
18 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/icons/index.js:
--------------------------------------------------------------------------------
1 | export { default as TEC } from './tec.svg';
2 | export { default as Close } from './close.svg';
3 | export { default as Alert } from './alert.svg';
4 | export { default as Clipboard } from './clipboard.svg';
5 | export { default as Cog } from './cog.svg';
6 | export { default as Info } from './info.svg';
7 | export { default as Pencil } from './pencil.svg';
8 | export { default as Tag } from './tag.svg';
9 | export { default as User } from './user.svg';
10 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/icons/rsvp.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/form/quantity.php:
--------------------------------------------------------------------------------
1 |
9 |
10 | template( 'blocks/rsvp/form/quantity-minus' ); ?>
11 |
12 | template( 'blocks/rsvp/form/quantity-input', array( 'ticket' => $ticket ) ); ?>
13 |
14 | template( 'blocks/rsvp/form/quantity-plus' ); ?>
15 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/registration/summary/tickets.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 | $ticket ) : ?>
12 |
13 | template( 'blocks/tickets/registration/summary/ticket', array( 'ticket' => $ticket, 'key' => $key ) ); ?>
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Directories/files that may be generated by this project
2 | build
3 | plugins/**/src/resources/*/*
4 | !plugins/**/src/resources/js/views
5 | node_modules
6 |
7 | # Directories/files that may appear in your environment
8 | .DS_Store
9 | *.log
10 | phpcs.xml
11 | docker-compose.override.yml
12 | cypress.env.json
13 | .idea
14 | /node_modules/
15 | npm-debug.log
16 | yarn-error.log
17 | .vscode
18 | yarn.lock
19 | stats.json
20 | report.html
21 | !/plugins/common/src/resources/icons/
22 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/plugins/__tests__/__snapshots__/actions.test.js.snap:
--------------------------------------------------------------------------------
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 | `;
20 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/rsvp/duration/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__rsvp-duration {
2 | display: flex;
3 | align-items: flex-start;
4 | padding-top: 30px;
5 |
6 |
7 | .tribe-editor__timepicker-label-container {
8 | border-width: 1px;
9 | border-color: #e1e3e6;
10 |
11 | .tribe-editor__btn-input {
12 | padding-top: 11px;
13 | padding-bottom: 10px;
14 | font-size: 14px;
15 | }
16 |
17 | input[type="time"]:focus {
18 | box-shadow: none;
19 | }
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/rsvp/header-image/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__image-upload__title {
2 |
3 | .tribe-editor__rsvp__settings-dashboard--loading & {
4 | color: #AEB4BB;
5 | }
6 | }
7 |
8 | .tribe-editor__image-upload__description {
9 |
10 | .tribe-editor__rsvp__settings-dashboard--loading & {
11 | color: #AEB4BB;
12 | }
13 | }
14 |
15 | .tribe-editor__image-upload__image {
16 |
17 | .tribe-editor__rsvp__settings-dashboard--loading & {
18 | opacity: 0.5;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/attendees/description.php:
--------------------------------------------------------------------------------
1 | get( 'post_id' );
9 | $attendees_total = count( $attendees );
10 | $message = _n( 'One person is attending %2$s', '%d people are attending %s', $attendees_total, 'events-gutenberg' );
11 | ?>
12 |
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES6",
4 | "module": "commonjs",
5 | "jsx": "react",
6 | "allowSyntheticDefaultImports": true,
7 | "baseUrl": "./plugins",
8 | "paths": {
9 | "@moderntribe/*": ["./*/src/modules"]
10 | }
11 | },
12 | "include": [
13 | "plugins"
14 | ],
15 | "exclude": [
16 | "**/node_modules/*",
17 | "**/resources/*",
18 | "**/Tribe/*"
19 | ]
20 | }
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/input/style.pcss:
--------------------------------------------------------------------------------
1 | /* increased specificity required to override gutenberg editor styles */
2 | input.tribe-editor__input {
3 |
4 | /* @todo: type=number is in input styles because this list will grow (common input styles) */
5 | &[type=number] {
6 | color: #000000;
7 | font-size: 16px;
8 | line-height: 24px;
9 | border: 1px solid #E1E3E6;
10 | padding: 7px 15px;
11 | height: 40px;
12 |
13 | &:disabled {
14 | color: #AEB4BB;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/classic/selectors.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { createSelector } from 'reselect';
5 |
6 | export const classicSelector = ( state ) => state.events.blocks.classic;
7 |
8 | export const detailsTitleSelector = createSelector(
9 | [ classicSelector ],
10 | ( values ) => values.detailsTitle,
11 | );
12 |
13 | export const organizerTitleSelector = createSelector(
14 | [ classicSelector ],
15 | ( values ) => values.organizerTitle,
16 | );
17 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/counter/style.pcss:
--------------------------------------------------------------------------------
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 | }
23 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/elements/loading/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import React from 'react';
5 | import classNames from 'classnames';
6 |
7 | /**
8 | * Wordpress dependencies
9 | */
10 | import { Spinner } from '@wordpress/components';
11 |
12 | import './style.pcss';
13 |
14 | export default ( { className } ) => {
15 | return (
16 |
17 |
18 |
19 | );
20 | };
21 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/sagas.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { store } from '@moderntribe/common/store';
5 | import { sagas as RSVPSagas } from '@moderntribe/tickets/data/blocks/rsvp';
6 | import { sagas as TicketSagas } from '@moderntribe/tickets/data/blocks/ticket';
7 | import { sagas as AttendeesSagas } from '@moderntribe/tickets/data/blocks/attendees';
8 |
9 | [
10 | RSVPSagas,
11 | TicketSagas,
12 | AttendeesSagas
13 | ].forEach( sagas => store.run( sagas ) );
14 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/registration/summary/content.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 | template( 'blocks/tickets/registration/summary/title' ); ?>
12 |
13 | template( 'blocks/tickets/registration/summary/description' ); ?>
14 |
15 | template( 'blocks/tickets/registration/summary/tickets' ); ?>
16 |
17 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/views/blocks/additional-fields/textarea.php:
--------------------------------------------------------------------------------
1 | attr( 'isPristine' );
3 | $label = $this->attr( 'label' );
4 | $output = $this->attr( 'output' );
5 |
6 | if ( $is_pristine ) {
7 | return;
8 | }
9 | ?>
10 |
11 |
:
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/plugins/events/src/styles/event-website/frontend.pcss:
--------------------------------------------------------------------------------
1 | /**
2 | * Website block view styles
3 | *
4 | * @since 0.2.4-alpha
5 | */
6 |
7 | .tribe-block__event-website {
8 | a {
9 | align-items: center;
10 | border: 1px solid #e1e3e6;
11 | background-color: #009fd4;
12 | color: #fff;
13 | display: inline-flex;
14 | font-size: 1.125rem;
15 | justify-content: center;
16 | min-height: 54px;
17 | padding: 0 20px;
18 | max-width: 100%;
19 |
20 | &:hover {
21 | color: #fff;
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/tickets/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__tickets-container {
2 | color: #545D66;
3 | font-family: Helvetica, sans-serif, arial;
4 |
5 | .editor-inserter {
6 | display: none;
7 | }
8 |
9 | .editor-block-list__block {
10 | font-family: inherit;
11 | }
12 | }
13 |
14 | .tribe-editor__tickets-container--loading {
15 | display: flex;
16 | align-items: center;
17 | justify-content: center;
18 | padding: 20px;
19 |
20 | .components-spinner {
21 | flex: none;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset=utf - 8
5 | end_of_line = lf
6 | insert_final_newline = true
7 | trim_trailing_whitespace = true
8 |
9 | [*.php]
10 | indent_style = tab
11 | indent_size = 4
12 | end_of_line = lf
13 |
14 | [*.{js,jsx}]
15 | indent_style = tab
16 | end_of_line = lf
17 | spaces_within_imports = true
18 | indent_size = 2
19 |
20 | [*.{css,pcss}]
21 | indent_style = tab
22 | end_of_line = lf
23 | indent_size = 4
24 |
25 | [*.{json,yml}]
26 | indent_style = space
27 | indent_size = 2
28 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/hoc/__tests__/__snapshots__/with-form.test.js.snap:
--------------------------------------------------------------------------------
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 |
17 | With Form!
18 |
19 | `;
20 |
--------------------------------------------------------------------------------
/plugins/tickets/src/styles/attendees/frontend.pcss:
--------------------------------------------------------------------------------
1 | /**
2 | * Attendees block view styles
3 | *
4 | * @since TBD
5 | */
6 | .tribe-block__attendees {
7 | margin-top: 30px;
8 | margin-bottom: 30px;
9 |
10 | img {
11 | border-radius: 100%;
12 | width: 60px;
13 | height: 60px;
14 | }
15 | }
16 |
17 | .tribe-block__attendees__title {
18 | display: block;
19 | font-style: normal;
20 | font-family: 'Helvetica', sans-serif, arial;
21 | font-size: 21px;
22 | font-weight: bold;
23 | line-height: normal;
24 | }
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/registration/attendee/content.php:
--------------------------------------------------------------------------------
1 |
9 |
12 | $ticket ) : ?>
13 | template( 'blocks/tickets/registration/attendee/fields', array( 'ticket' => $ticket, 'key' => $key ) ); ?>
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/plugins/__tests__/types.test.js:
--------------------------------------------------------------------------------
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 | } );
13 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/views/blocks/additional-fields/url.php:
--------------------------------------------------------------------------------
1 | attr( 'isPristine' );
3 | $label = $this->attr( 'label' );
4 | $output = $this->attr( 'output' );
5 |
6 | if ( $is_pristine ) {
7 | return;
8 | }
9 | ?>
10 |
14 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/elements/upsell/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__subtitle__footer-upsell {
2 | padding: 15px 22px;
3 | background-color: #e7f5fa;
4 | border-top: 1px solid #e3e4e8;
5 | }
6 |
7 | p.tribe-editor__subtitle__footer-upsell-text {
8 | font-size: 16px;
9 | font-style: normal;
10 | font-family: Helvetica, sans-serif, arial;
11 | font-weight: normal;
12 | line-height: 1.3;
13 | color: #191e22;
14 | margin: 0;
15 | }
16 |
17 | .tribe-editor__subtitle__footer-upsell-link {
18 | color: #191e22;
19 | }
20 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/icons/checkbox-on.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/website/actions.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import * as types from './types';
5 |
6 | export const setWebsite = ( url ) => ( {
7 | type: types.SET_WEBSITE_URL,
8 | payload: {
9 | url,
10 | },
11 | } );
12 |
13 | export const setLabel = ( label ) => ( {
14 | type: types.SET_WEBSITE_LABEL,
15 | payload: {
16 | label,
17 | },
18 | } );
19 |
20 | export const setInitialState = ( props ) => ( {
21 | type: types.SET_INITIAL_STATE,
22 | payload: props,
23 | } );
24 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/textarea/element.js:
--------------------------------------------------------------------------------
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 |
14 | );
15 |
16 | Textarea.propTypes = {
17 | className: PropTypes.string,
18 | };
19 |
20 | export default Textarea;
21 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/labeled-row/__tests__/element.spec.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 | import LabeledRow from '../element';
4 |
5 | describe( 'LabeledRow', () => {
6 | test( 'should render component', () => {
7 | const component = renderer.create(
8 |
12 | Test
13 |
14 | );
15 | expect( component.toJSON() ).toMatchSnapshot();
16 | } );
17 | } );
18 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/details/__tests__/__snapshots__/thunks.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`[STORE] - Details thunks Should fetching details for non loading block 1`] = `
4 | Array [
5 | Object {
6 | "meta": Object {
7 | "actions": Object {
8 | "error": [Function],
9 | "start": [Function],
10 | "success": [Function],
11 | },
12 | "path": "undefined/20",
13 | },
14 | "type": "@@MT/COMMON/WP_REQUEST",
15 | },
16 | ]
17 | `;
18 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/status/not-going-icon.php:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/submit.php:
--------------------------------------------------------------------------------
1 | get_provider()->login_required();
10 | ?>
11 |
12 | template( 'blocks/tickets/submit-login' ); ?>
13 |
14 | template( 'blocks/tickets/submit-button' ); ?>
15 |
--------------------------------------------------------------------------------
/webpack/externals/wp.js:
--------------------------------------------------------------------------------
1 | const wp = [
2 | 'blocks',
3 | 'components',
4 | 'date',
5 | 'editor',
6 | 'element',
7 | 'i18n',
8 | 'utils',
9 | 'data',
10 | ];
11 |
12 | // Puts @wordpress/[dependency] on the window object as window.wp.[dependency]
13 | const externals = wp.reduce(
14 | ( result, dependency ) => {
15 | result[ `@wordpress/${ dependency }` ] = {
16 | var: `wp.${ dependency }`,
17 | root: [ 'wp', dependency ],
18 | };
19 | return result;
20 | },
21 | {}
22 | );
23 |
24 | module.exports = externals;
25 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/ui/types.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { PREFIX_EVENTS_STORE } from '@moderntribe/events/data/utils';
5 |
6 | export const SET_DASHBOARD_DATE_TIME = `${ PREFIX_EVENTS_STORE }/SET_DASHBOARD_DATE_TIME`;
7 | export const TOGGLE_DASHBOARD_DATE_TIME = `${ PREFIX_EVENTS_STORE }/TOGGLE_DASHBOARD_DATE_TIME`;
8 |
9 | export const SET_DASHBOARD_PRICE = `${ PREFIX_EVENTS_STORE }/SET_DASHBOARD_PRICE`;
10 |
11 | export const SET_VISIBLE_MONTH = `${ PREFIX_EVENTS_STORE }/SET_VISIBLE_MONTH`;
12 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/details.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 | template( 'blocks/rsvp/details/title', array( 'ticket' => $ticket ) ); ?>
12 |
13 | template( 'blocks/rsvp/details/description', array( 'ticket' => $ticket ) ); ?>
14 |
15 | template( 'blocks/rsvp/details/availability', array( 'ticket' => $ticket ) ); ?>
16 |
17 |
--------------------------------------------------------------------------------
/webpack/utils/directories.js:
--------------------------------------------------------------------------------
1 | const { lstatSync, readdirSync } = require( 'fs' );
2 | const { join } = require( 'path' );
3 |
4 | const isDirectory = source => lstatSync( source ).isDirectory();
5 | const getDirectories = source => (
6 | readdirSync( source ).map( name => join( source, name ) ).filter( isDirectory )
7 | );
8 | const getDirectoryNames = source => (
9 | getDirectories( source ).map( file => {
10 | return file.replace( /^.*\//, '' );
11 | } )
12 | );
13 |
14 | module.exports = { getDirectories, getDirectoryNames };
15 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/month-picker/month-tag/__tests__/element.spec.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 | import MonthTag from '../element';
4 |
5 | describe( 'MonthTag', () => {
6 | test( 'should render component', () => {
7 | const component = renderer.create(
8 |
12 | Modern Tribe
13 |
14 | );
15 | expect( component.toJSON() ).toMatchSnapshot();
16 | } );
17 | } );
18 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/details/reducer.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import * as types from './types';
5 | import { details } from './reducers';
6 |
7 | export default ( state = {}, action ) => {
8 | switch ( action.type ) {
9 | case types.SET_DETAILS:
10 | case types.SET_DETAILS_IS_LOADING:
11 | case types.SET_DETAILS_POST_TYPE:
12 | return {
13 | ...state,
14 | [ action.payload.id ]: details( state[ action.payload.id ], action ),
15 | };
16 | default:
17 | return state;
18 | }
19 | };
20 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/icons/checkbox-off.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/ticket/edit-container/content/advanced-options/duration/__tests__/template.test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import React from 'react';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import TicketDurationPicker from './../template';
10 |
11 | describe( 'Ticket Duration picker and label', () => {
12 | test( 'default properties', () => {
13 | const component = renderer.create( );
14 | expect( component.toJSON() ).toMatchSnapshot();
15 | } );
16 | } );
17 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/form/submit.php:
--------------------------------------------------------------------------------
1 | login_required();
10 | ?>
11 |
12 | template( 'blocks/rsvp/form/submit-login' ); ?>
13 |
14 | template( 'blocks/rsvp/form/submit-button' ); ?>
15 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/components/prevent-block-close/__tests__/component.spec.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import PreventBlockClose from '../component';
3 |
4 | describe( 'PreventBlockClose', () => {
5 | test( 'should match snapshot', () => {
6 | const component = mount(
7 |
8 | Test children
9 |
10 | );
11 | const child = component.find( 'span' );
12 | expect( child ).toHaveLength( 1 );
13 | expect( child.text() ).toEqual( "Test children" );
14 | } );
15 | } );
16 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/block-icon/style.pcss:
--------------------------------------------------------------------------------
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 | }
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/label/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__events-pro__label {
2 | align-items: center;
3 | color: #8d949b;
4 | display: flex;
5 | flex: 0 0 125px;
6 | font-family: "SF Pro Display", Helvetica;
7 | font-size: 15px;
8 | font-weight: 700;
9 | line-height: 18px;
10 | letter-spacing: 0.38px;
11 |
12 | &:after {
13 | content: '';
14 | background-color: #e1e3e6;
15 | flex: 1;
16 | height: 1px;
17 | margin: 0 10px;
18 | }
19 | }
20 |
21 | .tribe-editor__events-pro__label-text {
22 | flex: none;
23 | }
24 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/on-date-picker/__tests__/template.spec.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 | import OnDatePicker from '../template';
4 |
5 | describe( 'OnDatePicker', () => {
6 | test( 'should render component', () => {
7 | const component = renderer.create(
8 |
13 | );
14 | expect( component.toJSON() ).toMatchSnapshot();
15 | } );
16 | } );
17 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/row/element.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External Dependencies
3 | */
4 | import React from 'react';
5 | import PropTypes from 'prop-types';
6 | import classnames from 'classnames';
7 | import './style.pcss';
8 |
9 | const Row = ( { children, className } ) => (
10 |
11 | { children }
12 |
13 | );
14 |
15 | Row.propTypes = {
16 | children: PropTypes.node.isRequired,
17 | className: PropTypes.string,
18 | };
19 |
20 | export default Row;
21 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/utils/input.js:
--------------------------------------------------------------------------------
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 | };
13 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/blocks/reducer.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { combineReducers } from 'redux';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import recurring from '@moderntribe/events-pro/data/blocks/recurring/reducer';
10 | import exception from '@moderntribe/events-pro/data/blocks/exception/reducer';
11 | import additionalFields from '@moderntribe/events-pro/data/blocks/additional-fields';
12 |
13 | export default combineReducers( {
14 | recurring,
15 | exception,
16 | additionalFields,
17 | } );
18 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/website/__tests__/types.test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { types } from '@moderntribe/events/data/blocks/website';
5 | import { PREFIX_EVENTS_STORE } from '@moderntribe/events/data/utils';
6 |
7 | describe( '[STORE] - Website types', () => {
8 | it( 'Should match the types values', () => {
9 | expect( types.SET_WEBSITE_URL ).toBe( `${ PREFIX_EVENTS_STORE }/SET_WEBSITE_URL` );
10 | expect( types.SET_WEBSITE_LABEL ).toBe( `${ PREFIX_EVENTS_STORE }/SET_WEBSITE_LABEL` );
11 | } );
12 | } );
13 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/icons/featured-image.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/ui/selectors.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { createSelector } from 'reselect';
5 |
6 | export const getUI = ( state ) => state.events.ui;
7 |
8 | export const getDashboardDateTimeOpen = createSelector(
9 | [ getUI ],
10 | ( ui ) => ui.dashboardDateTimeOpen
11 | );
12 |
13 | export const getDashboardPriceOpen = createSelector(
14 | [ getUI ],
15 | ( ui ) => ui.dashboardPriceOpen
16 | );
17 |
18 | export const getVisibleMonth = createSelector(
19 | [ getUI ],
20 | ( ui ) => ui.visibleMonth
21 | );
22 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/tickets/capacity-table/utils.js:
--------------------------------------------------------------------------------
1 | import identity from 'lodash/identity';
2 |
3 | /**
4 | * Create a series of strings into a single string with parenthesis around it, making sure removes
5 | * any empty string as well
6 | *
7 | * @param {array} items an array of strings
8 | * @returns {string} return a new label string if items has any valid string
9 | */
10 | export const toLabel = ( items = [] ) => {
11 | const label = items.filter( identity ).join( ', ' );
12 | return label.length ? ` ( ${ label } ) ` : '';
13 | }
14 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/attendees/__tests__/__snapshots__/actions.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`[STORE] - Attendees actions Should set initial state 1`] = `
4 | Object {
5 | "payload": Object {},
6 | "type": "@@MT/TICKETS/SET_ATTENDEES_INITIAL_STATE",
7 | }
8 | `;
9 |
10 | exports[`[STORE] - Attendees actions Should set the attendees Title 1`] = `
11 | Object {
12 | "payload": Object {
13 | "title": "Who's coming?",
14 | },
15 | "type": "@@MT/TICKETS/SET_ATTENDEES_TITLE",
16 | }
17 | `;
18 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/ticket/reducers/settings/__tests__/tmp.spec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import tmp, { DEFAULT_STATE } from '../tmp';
5 | import { actions } from '@moderntribe/tickets/data/blocks/ticket';
6 |
7 | describe( 'Temporarily reducer', () => {
8 | test( 'default state', () => {
9 | expect( tmp( undefined, {} ) ).toBe( DEFAULT_STATE );
10 | } );
11 |
12 | test( 'shared capacity', () => {
13 | expect( tmp( DEFAULT_STATE, actions.setTempSharedCapacity( 100 ) ) ).toMatchSnapshot();
14 | } );
15 | } );
16 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/content.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 | template( 'blocks/rsvp/details', array( 'ticket' => $ticket ) ); ?>
13 | template( 'blocks/rsvp/status', array( 'ticket' => $ticket ) ); ?>
14 |
15 |
16 | template( 'blocks/rsvp/form', array( 'ticket' => $ticket ) ); ?>
17 |
18 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/hoc/__tests__/__snapshots__/with-store.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`HOC - With Store Should add the store property 1`] = `
4 |
18 | `;
19 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/classic/actions.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import * as types from './types';
5 |
6 | export const setDetailsTitle = ( title ) => ( {
7 | type: types.SET_CLASSIC_DETAILS_TITLE,
8 | payload: {
9 | title,
10 | },
11 | } );
12 |
13 | export const setOrganizerTitle = ( title ) => ( {
14 | type: types.SET_CLASSIC_ORGANIZERS_TITLE,
15 | payload: {
16 | title,
17 | },
18 | } );
19 |
20 | export const setInitialState = ( props ) => ( {
21 | type: types.SET_INITIAL_STATE,
22 | payload: props,
23 | } );
24 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/elements/terms-list/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__terms--empty {
2 | color: #8D949B;
3 | }
4 |
5 | .tribe-editor__terms__label {
6 | display: block;
7 | font-size: 16px;
8 | }
9 |
10 | .tribe-editor__terms__list {
11 | list-style: none;
12 | }
13 |
14 | .tribe-editor__terms__list-item {
15 | display: inline-block;
16 | margin-right: 4px;
17 | }
18 |
19 | .tribe-editor__terms__list-item-link {
20 | color: #009fd4;
21 | }
22 |
23 | .spinner {
24 |
25 | .tribe-editor__terms & {
26 | display: block;
27 | float: none;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/commerce/fields.php:
--------------------------------------------------------------------------------
1 | get( 'provider' );
10 | $provider_id = $this->get( 'provider_id' );
11 | $this->template( 'blocks/tickets/commerce/fields-' . $provider_id, array( 'provider' => $provider, 'provider_id' => $provider_id ) );
12 | ?>
13 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/blocks/additional-fields/elements/preview/__tests__/element.test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import React from 'react';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import Preview from '../element';
10 |
11 | describe( '', () => {
12 | test( 'default params', () => {
13 | const component = renderer.create(
14 |
15 | The Next Generation of Digital Agency
16 | ,
17 | );
18 | expect( component.toJSON() ).toMatchSnapshot();
19 | } );
20 | } );
21 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/ticket/reducers/settings/tmp.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import * as types from '@moderntribe/tickets/data/blocks/ticket/types';
5 |
6 | export const DEFAULT_STATE = {
7 | sharedCapacity: '',
8 | };
9 |
10 | export default ( state = DEFAULT_STATE, action ) => {
11 | switch ( action.type ) {
12 | case types.SET_TICKET_TMP_TICKET_SHARED_CAPACITY:
13 | return {
14 | ...state,
15 | sharedCapacity: action.payload.sharedCapacity,
16 | };
17 |
18 | default:
19 | return state;
20 | }
21 | };
22 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/blocks/classic-event-details/event-details-organizers/event-details-organizer/container.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { compose } from 'redux';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import { withStore } from '@moderntribe/common/hoc';
10 | import { withDetails } from '@moderntribe/events/hoc';
11 | import EventDetailsOrganizer from './template';
12 |
13 | /**
14 | * Module Code
15 | */
16 |
17 | export default compose(
18 | withStore(),
19 | withDetails( 'organizerId' )
20 | )( EventDetailsOrganizer );
21 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/ticket/constants.js:
--------------------------------------------------------------------------------
1 | export const TC = 'tribe-commerce';
2 | export const EDD = 'edd';
3 | export const WOO = 'woo';
4 |
5 | export const TC_CLASS = 'Tribe__Tickets__Commerce__PayPal__Main';
6 | export const EDD_CLASS = 'Tribe__Tickets_Plus__Commerce__EDD__Main';
7 | export const WOO_CLASS = 'Tribe__Tickets_Plus__Commerce__WooCommerce__Main';
8 |
9 | export const PROVIDER_CLASS_TO_PROVIDER_MAPPING = {
10 | [ TC_CLASS ]: TC,
11 | [ EDD_CLASS ]: EDD,
12 | [ WOO_CLASS ]: WOO,
13 | };
14 |
15 | export const PROVIDER_TYPES = [ TC, EDD, WOO ];
16 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import reducer from './reducers';
5 |
6 | import { actions } from '@moderntribe/common/data/plugins';
7 | import { store } from '@moderntribe/common/store';
8 |
9 | export const initStore = () => {
10 | const { dispatch, injectReducers } = store;
11 | // TODO: use `constants` from `recurrence` branch to add the plugin name into the constants.
12 | dispatch( actions.addPlugin( 'tickets' ) );
13 | injectReducers( { tickets: reducer } );
14 | };
15 |
16 | export const getStore = () => store;
17 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/data/plugins/reducer.js:
--------------------------------------------------------------------------------
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 | };
21 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/add-field/__tests__/__snapshots__/element.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`AddField should match snapshot 1`] = `
4 |
20 | `;
21 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/fieldset/element.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External Dependencies
3 | */
4 | import React from 'react';
5 | import PropTypes from 'prop-types';
6 | import classnames from 'classnames';
7 | import './style.pcss';
8 |
9 | const Fieldset = ( { children, className } ) => (
10 |
13 | );
14 |
15 | Fieldset.propTypes = {
16 | children: PropTypes.node.isRequired,
17 | className: PropTypes.string,
18 | };
19 |
20 | export default Fieldset;
21 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/rsvp/attendee-registration/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__rsvp__attendee-registration {
2 | margin-top: 30px;
3 | }
4 |
5 | .tribe-editor__label-with-link .tribe-editor__labeled-item__label {
6 |
7 | .tribe-editor__rsvp-container--disabled & {
8 | color: #AEB4BB;
9 | }
10 | }
11 |
12 | .tribe-editor__rsvp__attendee-registration-helper-text {
13 | display: block;
14 | color: #8D949B;
15 | font-size: 12px;
16 | line-height: 14px;
17 | margin-top: 10px;
18 |
19 | .tribe-editor__rsvp-container--disabled & {
20 | color: #AEB4BB;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/tickets/capacity-table/__tests__/utils.test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { toLabel } from './../utils';
5 |
6 | describe( 'toLabel', () => {
7 | test( 'Empty items', () => {
8 | expect( toLabel() ).toBe( '' )
9 | expect( toLabel( [] ) ).toBe( '' );
10 | expect( toLabel( [ '', false, 0 ] ) ).toBe( '' );
11 | } );
12 |
13 | test( 'List of names', () => {
14 | expect( toLabel( [ 'Modern' ] ) ).toBe( ' ( Modern ) ' );
15 | expect( toLabel( [ 'Modern', 'Tribe' ] ) ).toBe( ' ( Modern, Tribe ) ' );
16 | } );
17 | } );
18 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/elements/label-with-tooltip/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__label-with-tooltip {
2 | display: flex;
3 | align-items: center;
4 | }
5 |
6 | .tribe-editor__labeled-item__label {
7 | font-weight: bold;
8 |
9 | .tribe-editor__label-with-tooltip & {
10 | flex: none;
11 | }
12 | }
13 |
14 | .tribe-editor__label-with-tooltip__tooltip-label {
15 | flex: none;
16 | background-color: transparent;
17 | border: none;
18 | padding: 0;
19 | margin-top: -2px;
20 | display: inline-flex;
21 | align-items: center;
22 |
23 | & > * {
24 | flex: none;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/icons/alert.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/venue/selectors.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { createSelector } from 'reselect';
5 |
6 | export const venueBlockSelector = ( state ) => state.events.blocks.venue;
7 | export const getVenue = createSelector(
8 | [ venueBlockSelector ],
9 | ( block ) => block.venue,
10 | );
11 |
12 | export const getshowMapLink = createSelector(
13 | [ venueBlockSelector ],
14 | ( block ) => block.showMapLink,
15 | );
16 |
17 | export const getshowMap = createSelector(
18 | [ venueBlockSelector ],
19 | ( block ) => block.showMap,
20 | );
21 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/placeholder/element.js:
--------------------------------------------------------------------------------
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 |
15 | { children }
16 |
17 | );
18 |
19 | Placeholder.propTypes = {
20 | children: PropTypes.node.isRequired,
21 | };
22 |
23 | export default Placeholder;
24 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/status/__tests__/reducer.spec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import * as actions from '../actions';
5 | import reducer, { DEFAULT_STATE } from '../reducer';
6 |
7 | describe( '[STORE] - Status reducer', () => {
8 | it( 'Should return the default state', () => {
9 | expect( reducer( undefined, {} ) ).toEqual( DEFAULT_STATE );
10 | } );
11 |
12 | it( 'Should set status', () => {
13 | const current = reducer( DEFAULT_STATE, actions.setSeriesQueueStatus( { cool: true } ) );
14 | expect( current ).toMatchSnapshot();
15 | } );
16 | } );
17 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/registration/attendee/fields.php:
--------------------------------------------------------------------------------
1 | get( 'ticket' );
10 |
11 | $meta = Tribe__Tickets_Plus__Main::instance()->meta();
12 | $fields = $meta->get_meta_fields_by_ticket( $ticket->ID );
13 |
14 | ?>
15 |
16 | template( 'blocks/tickets/registration/attendee/fields/' . $field->type , array( 'ticket' => $ticket, 'field' => $field ) ); ?>
17 |
18 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/hoc/with-store.js:
--------------------------------------------------------------------------------
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 ;
22 | };
23 |
24 | return WithStore;
25 |
26 | };
27 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/website/reducer.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import * as types from './types';
5 |
6 | export const DEFAULT_STATE = {
7 | url: undefined,
8 | label: '',
9 | };
10 |
11 | export default ( state = DEFAULT_STATE, action ) => {
12 | switch ( action.type ) {
13 | case types.SET_WEBSITE_URL:
14 | return {
15 | ...state,
16 | url: action.payload.url,
17 | };
18 | case types.SET_WEBSITE_LABEL:
19 | return {
20 | ...state,
21 | label: action.payload.label,
22 | };
23 | default:
24 | return state;
25 | }
26 | };
27 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/extra.php:
--------------------------------------------------------------------------------
1 | get( 'ticket' );
11 |
12 | $context = array(
13 | 'ticket' => $ticket,
14 | 'key' => $this->get( 'key' ),
15 | );
16 | ?>
17 |
23 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/icons/cog.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/reducer.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { combineReducers } from 'redux';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import datetime from './datetime';
10 | import organizers from './organizers';
11 | import price from './price';
12 | import website from './website';
13 | import venue from './venue';
14 | import classic from './classic';
15 | import sharing from './sharing';
16 |
17 | export default combineReducers( {
18 | datetime,
19 | classic,
20 | venue,
21 | organizers,
22 | price,
23 | website,
24 | sharing,
25 | } );
26 |
--------------------------------------------------------------------------------
/plugins/events/src/styles/event-organizer/frontend.pcss:
--------------------------------------------------------------------------------
1 | /**
2 | * Organizer block view styles
3 | *
4 | * @since 0.2.4-alpha
5 | */
6 | .tribe-block__organizer__details {
7 | margin: 15px 0;
8 | position: relative;
9 |
10 | h3 {
11 | font-weight: bold;
12 | font-size: 1.3125rem;
13 | color: #000;
14 | font-family: 'Helvetica', 'sans-serif';
15 | margin-bottom: 4px;
16 | margin-top: 0;
17 | }
18 |
19 | p {
20 | font-size: 1rem;
21 | color: #545D66;
22 | margin-bottom: 2px;
23 | margin-top: 0;
24 | font-weight: normal;
25 | font-family: 'Helvetica', 'sans-serif';
26 | }
27 | }
--------------------------------------------------------------------------------
/plugins/common/src/modules/utils/__tests__/input.test.js:
--------------------------------------------------------------------------------
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 | } );
21 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/organizers/reducers/block.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import * as types from './../types';
5 |
6 | export const DEFAULT_STATE = {
7 | organizer: null,
8 | };
9 |
10 | export default ( state = DEFAULT_STATE, action ) => {
11 | switch ( action.type ) {
12 | case types.ADD_ORGANIZER_BLOCK:
13 | return {
14 | ...state,
15 | organizer: action.payload.organizer,
16 | };
17 | case types.REMOVE_ORGANIZER_BLOCK:
18 | return {
19 | ...state,
20 | ...DEFAULT_STATE,
21 | };
22 | default:
23 | return state;
24 | }
25 | };
26 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/rsvp/duration/template.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import React from 'react';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import RSVPDurationLabel from '@moderntribe/tickets/blocks/rsvp/duration-label/container';
10 | import RSVPDurationPicker from '@moderntribe/tickets/blocks/rsvp/duration-picker/container';
11 | import './style.pcss';
12 |
13 | const RSVPDuration = () => (
14 |
15 |
16 |
17 |
18 | );
19 |
20 | export default RSVPDuration;
21 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/tooltip/__tests__/__snapshots__/element.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Tooltip Element renders a tooltip 1`] = `
4 |
5 |
6 | here is the tooltip text
7 |
8 |
9 | bottom left
10 |
11 |
12 |
20 |
21 |
22 | `;
23 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/status.php:
--------------------------------------------------------------------------------
1 |
9 |
10 | is_in_stock() ) : ?>
11 |
12 | template( 'blocks/rsvp/status/going', array( 'ticket' => $ticket ) ); ?>
13 | template( 'blocks/rsvp/status/not-going', array( 'ticket' => $ticket ) ); ?>
14 |
15 |
16 | template( 'blocks/rsvp/status/full', array( 'ticket' => $ticket ) ); ?>
17 |
18 |
19 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/blocks/additional-fields/elements/preview/__tests__/__snapshots__/element.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[` default params 1`] = `
4 |
7 |
10 | Modern Tribe
11 |
12 |
15 | The Next Generation of Digital Agency
16 |
17 |
18 | `;
19 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/recurring-add-field/element.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import React from 'react';
5 | import PropTypes from 'prop-types';
6 | import { __ } from '@wordpress/i18n';
7 |
8 | /**
9 | * Internal dependencies
10 | */
11 | import AddField from '@moderntribe/events-pro/elements/add-field/element';
12 |
13 | const RecurringAddField = ( props ) => {
14 | return (
15 |
16 | { __( 'Add Rule', 'events-gutenberg' ) }
17 |
18 | );
19 | };
20 |
21 | RecurringAddField.propTypes = {};
22 |
23 | export default RecurringAddField;
24 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/classic/__tests__/types.test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { types } from '@moderntribe/events/data/blocks/classic';
5 | import { PREFIX_EVENTS_STORE } from '@moderntribe/events/data/utils';
6 |
7 | describe( '[STORE] - Classic types', () => {
8 | it( 'Should return the types values', () => {
9 | expect( types.SET_CLASSIC_ORGANIZERS_TITLE )
10 | .toBe( `${ PREFIX_EVENTS_STORE }/SET_CLASSIC_ORGANIZERS_TITLE` );
11 | expect( types.SET_CLASSIC_DETAILS_TITLE )
12 | .toBe( `${ PREFIX_EVENTS_STORE }/SET_CLASSIC_DETAILS_TITLE` );
13 | } );
14 | } );
15 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/price/types.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { PREFIX_EVENTS_STORE } from '@moderntribe/events/data/utils';
5 |
6 | export const SET_INITIAL_STATE = `${ PREFIX_EVENTS_STORE }/PRICE_BLOCK/SET_INITIAL_STATE`;
7 |
8 | export const SET_PRICE_COST = `${ PREFIX_EVENTS_STORE }/SET_PRICE_COST`;
9 |
10 | export const SET_PRICE_SYMBOL = `${ PREFIX_EVENTS_STORE }/SET_PRICE_SYMBOL`;
11 |
12 | export const SET_PRICE_POSITION = `${ PREFIX_EVENTS_STORE }/SET_PRICE_POSITION`;
13 |
14 | export const SET_PRICE_DESCRIPTION = `${ PREFIX_EVENTS_STORE }/SET_PRICE_DESCRIPTION`;
15 |
--------------------------------------------------------------------------------
/jest.setup.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import moment from 'moment-timezone';
5 | import React from 'react';
6 | import renderer from 'react-test-renderer';
7 | import $ from 'jquery';
8 | import Enzyme, { shallow, render, mount } from 'enzyme';
9 | import Adapter from 'enzyme-adapter-react-16';
10 |
11 | Enzyme.configure( { adapter: new Adapter() } );
12 |
13 | global.jQuery = $;
14 | global.$ = $;
15 | global.wp = {
16 | element: React,
17 | };
18 | global.shallow = shallow;
19 | global.render = render;
20 | global.mount = mount;
21 | global.renderer = renderer;
22 |
23 | moment.tz.setDefault( 'UTC' );
24 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import reducer from './reducers';
5 |
6 | import { actions, constants } from '@moderntribe/common/data/plugins';
7 | import { store } from '@moderntribe/common/store';
8 | import '@moderntribe/events-pro/data/sagas';
9 |
10 | const { EVENTS_PRO_PLUGIN } = constants;
11 |
12 | export const initStore = () => {
13 | const { dispatch, injectReducers } = store;
14 |
15 | dispatch( actions.addPlugin( EVENTS_PRO_PLUGIN ) );
16 | injectReducers( { [ EVENTS_PRO_PLUGIN ]: reducer } );
17 | };
18 |
19 | export const getStore = () => store;
20 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/exception-add-field/element.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import React from 'react';
5 | import PropTypes from 'prop-types';
6 | import { __ } from '@wordpress/i18n';
7 |
8 | /**
9 | * Internal dependencies
10 | */
11 | import AddField from '@moderntribe/events-pro/elements/add-field/element';
12 |
13 | const ExceptionAddField = ( props ) => {
14 | return (
15 |
16 | { __( 'Add Exception', 'events-gutenberg' ) }
17 |
18 | );
19 | };
20 |
21 | ExceptionAddField.propTypes = {};
22 |
23 | export default ExceptionAddField;
24 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/label/element.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External Dependencies
3 | */
4 | import React from 'react';
5 | import PropTypes from 'prop-types';
6 | import classnames from 'classnames';
7 | import './style.pcss';
8 |
9 | const Label = ( { children, className } ) => (
10 |
11 | { children }
12 |
13 | );
14 |
15 | Label.propTypes = {
16 | children: PropTypes.node.isRequired,
17 | className: PropTypes.string,
18 | };
19 |
20 | export default Label;
21 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/image/element.js:
--------------------------------------------------------------------------------
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 |
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;
29 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/paragraph/__tests__/element.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import Paragraph, { SIZES } from '../element';
4 |
5 | describe( '', () => {
6 | test( 'default paragraph', () => {
7 | const component = renderer.create(
8 | Modern Tribe,
9 | );
10 | expect( component.toJSON() ).toMatchSnapshot();
11 | } );
12 |
13 | test( 'smaller paragraph', () => {
14 | const component = renderer.create(
15 | Modern Tribe,
16 | );
17 | expect( component.toJSON() ).toMatchSnapshot();
18 | } );
19 | } );
20 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/sagas.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { store } from '@moderntribe/common/store';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import * as recurring from '@moderntribe/events-pro/data/blocks/recurring';
10 | import * as exception from '@moderntribe/events-pro/data/blocks/exception';
11 | import syncer from '@moderntribe/events-pro/data/shared/sync';
12 | import queueStatus from '@moderntribe/events-pro/data/status/sagas';
13 |
14 | [
15 | syncer,
16 | queueStatus,
17 | recurring.sagas,
18 | exception.sagas,
19 | ].forEach( sagas => store.run( sagas ) );
20 |
21 |
--------------------------------------------------------------------------------
/plugins/events/src/views/blocks/event-category.php:
--------------------------------------------------------------------------------
1 |
2 | get( 'post_id' ),
5 | array(
6 | 'before' => '',
7 | 'sep' => ', ',
8 | 'after' => '',
9 | 'label' => null, // An appropriate plural/singular label will be provided
10 | 'label_before' => '
',
11 | 'label_after' => '',
12 | 'wrap_before' => '',
13 | 'wrap_after' => '',
14 | )
15 | );
16 | ?>
17 |
18 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/styles/admin/additional-fields.pcss:
--------------------------------------------------------------------------------
1 | .tribe-custom-field-gutenberg-checkbox {
2 | background: transparent;
3 | border: 1px solid #B4B7BA;
4 | width: 16px;
5 | height: 16px;
6 | padding: 0;
7 | margin: 0;
8 | font: 400 21px/1 dashicons;
9 | speak: none;
10 | -webkit-font-smoothing: antialiased;
11 | -moz-osx-font-smoothing: grayscale;
12 |
13 | &:focus {
14 | border-color: #5b9dd9;
15 | box-shadow: 0 0 2px rgba(30, 140, 190, .8);
16 | outline: none;
17 | }
18 |
19 | &--checked:after {
20 | content: "\f147";
21 | margin: -3px 0 0 -4px;
22 | color: #1e8cbe;
23 | float: left;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/organizers/reducers/classic.js:
--------------------------------------------------------------------------------
1 | import { uniq } from 'lodash';
2 | /**
3 | * Internal dependencies
4 | */
5 | import * as types from './../types';
6 |
7 | export default ( state = [], action ) => {
8 | switch ( action.type ) {
9 | case types.ADD_CLASSIC_ORGANIZERS:
10 | return uniq( [ ...state, action.payload.organizer ] );
11 | case types.REMOVE_CLASSIC_ORGANIZERS:
12 | return state.filter( ( organizer ) => organizer !== action.payload.id );
13 | case types.SET_CLASSIC_ORGANIZERS:
14 | return [ ...action.payload.organizers ];
15 | default:
16 | return state;
17 | }
18 | };
19 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/status/going-icon.php:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/webpack/externals/tribe/common.js:
--------------------------------------------------------------------------------
1 | const { getDirectoryNames } = require( '../../utils/directories' );
2 | const { resolve } = require( 'path' );
3 |
4 | const directories = getDirectoryNames(
5 | resolve( __dirname, '../../../plugins/common/src/modules' )
6 | );
7 |
8 | const generateExternals = ( entries ) => (
9 | entries.reduce(
10 | ( result, entry ) => {
11 | result[ `@moderntribe/common/${ entry }` ] = {
12 | var: `tribe.common.${ entry }`,
13 | root: [ 'tribe', 'common', entry ],
14 | };
15 | return result;
16 | },
17 | {}
18 | )
19 | );
20 |
21 | module.exports = generateExternals( directories );
22 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/components/plugin-block-hooks/container.js:
--------------------------------------------------------------------------------
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 );
22 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/checkbox-input/style.pcss:
--------------------------------------------------------------------------------
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 | }
26 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/recurring-add-field/__tests__/__snapshots__/element.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`RecurringAddField should match snapshot 1`] = `
4 |
22 | `;
23 |
--------------------------------------------------------------------------------
/plugins/events/src/views/blocks/event-price.php:
--------------------------------------------------------------------------------
1 | attr( 'cost' );
9 | $cost_description = $this->attr( 'costDescription' );
10 | ?>
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/rsvp/dashboard/container.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { connect } from 'react-redux';
5 | import { compose } from 'redux';
6 |
7 | /**
8 | * Internal dependencies
9 | */
10 | import RSVPDashboard from './template';
11 | import { selectors } from '@moderntribe/tickets/data/blocks/rsvp';
12 | import { withStore } from '@moderntribe/common/hoc';
13 |
14 | const mapStateToProps = ( state ) => ( {
15 | isSettingsOpen: selectors.getRSVPSettingsOpen( state ),
16 | } );
17 |
18 | export default compose(
19 | withStore(),
20 | connect( mapStateToProps ),
21 | )( RSVPDashboard );
22 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/rsvp/inactive-block/container.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { connect } from 'react-redux';
5 | import { compose } from 'redux';
6 |
7 | /**
8 | * Internal dependencies
9 | */
10 | import RSVPInactiveBlock from './template';
11 | import { selectors } from '@moderntribe/tickets/data/blocks/rsvp';
12 | import { withStore } from '@moderntribe/common/hoc';
13 |
14 | const mapStateToProps = ( state ) => ( {
15 | created: selectors.getRSVPCreated( state ),
16 | } );
17 |
18 | export default compose(
19 | withStore(),
20 | connect( mapStateToProps ),
21 | )( RSVPInactiveBlock );
22 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/attendees/__tests__/reducer.test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { actions } from '@moderntribe/tickets/data/blocks/attendees';
5 | import reducer, { DEFAULT_STATE } from '@moderntribe/tickets/data/blocks/attendees/reducer';
6 |
7 | describe( '[STORE] - Attendees reducer', () => {
8 | it( 'Should return the default state', () => {
9 | expect( reducer( undefined, {} ) ).toEqual( DEFAULT_STATE );
10 | } );
11 |
12 | it( 'Should set the title value', () => {
13 | expect( reducer( DEFAULT_STATE, actions.setTitle( "Who's coming?" ) ) ).toMatchSnapshot();
14 | } );
15 | } );
16 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/elements/index.js:
--------------------------------------------------------------------------------
1 | export { default as ActionButton } from './action-button/element';
2 | export { default as ActionDashboard } from './action-dashboard/element';
3 | export { default as ContainerPanel } from './container-panel/element';
4 | export { default as DateTimeRangePicker } from './date-time-range-picker/element';
5 | export { default as LabelWithTooltip } from './label-with-tooltip/element';
6 | export { default as NumericLabel } from './numeric-label/element';
7 | export { default as InactiveBlock } from './inactive-block/element';
8 | export { default as SettingsDashboard } from './settings-dashboard/element';
9 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/Tribe/Blocks/Additional_Fields.php:
--------------------------------------------------------------------------------
1 | get_block_names();
16 | foreach ( $blocks as $block ) {
17 | $field = new Tribe__Gutenberg__Events_Pro__Blocks__Additional_Field( $block );
18 | $field->register();
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/exception-add-field/__tests__/__snapshots__/element.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`ExceptionAddField should match snapshot 1`] = `
4 |
22 | `;
23 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/organizers/types.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { PREFIX_EVENTS_STORE } from '@moderntribe/events/data/utils';
5 |
6 | export const SET_CLASSIC_ORGANIZERS = `${ PREFIX_EVENTS_STORE }/SET_CLASSIC_ORGANIZERS`;
7 | export const REMOVE_CLASSIC_ORGANIZERS = `${ PREFIX_EVENTS_STORE }/REMOVE_CLASSIC_ORGANIZERS`;
8 | export const ADD_CLASSIC_ORGANIZERS = `${ PREFIX_EVENTS_STORE }/ADD_CLASSIC_ORGANIZERS`;
9 |
10 | export const ADD_ORGANIZER_BLOCK = `${ PREFIX_EVENTS_STORE }/ADD_ORGANIZER_BLOCK`;
11 | export const REMOVE_ORGANIZER_BLOCK = `${ PREFIX_EVENTS_STORE }/REMOVE_ORGANIZER_BLOCK`;
12 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/ticket/display-container/status-icon/__tests__/__snapshots__/element.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Ticket Icon render the disabled ticket icon 1`] = `
4 |
5 | Ticket Inactive
6 |
7 | `;
8 |
9 | exports[`Ticket Icon render the ticket icon 1`] = `
10 |
11 | Ticket Active
12 |
13 | `;
14 |
15 | exports[`Ticket Icon render the unlimited icon 1`] = `
16 |
17 | Clock Active
18 |
19 | `;
20 |
21 | exports[`Ticket Icon render the unlimited icon when is disabled 1`] = `
22 |
23 | Clock Inactive
24 |
25 | `;
26 |
--------------------------------------------------------------------------------
/webpack/module/rules/styles.js:
--------------------------------------------------------------------------------
1 | const MiniCssExtractPlugin = require( 'mini-css-extract-plugin' );
2 |
3 | const isProduction = process.env.NODE_ENV === 'production';
4 | const postfix = isProduction ? 'min.css' : 'css';
5 |
6 | const plugin = () => new MiniCssExtractPlugin( {
7 | filename: `src/resources/css/app/[name].${postfix}`,
8 | } );
9 |
10 | const loaders = [
11 | MiniCssExtractPlugin.loader,
12 | { loader: 'css-loader', options: { importLoaders: 1 } },
13 | { loader: 'postcss-loader' },
14 | ];
15 |
16 | module.exports = {
17 | plugin,
18 | loaders,
19 | rule: {
20 | test: /\.(p?css)$/,
21 | use: loaders,
22 | },
23 | };
24 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/input/__tests__/__snapshots__/element.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Input element Should render the component 1`] = `
4 |
8 | `;
9 |
10 | exports[`Input element Should render the component with class 1`] = `
11 |
15 | `;
16 |
17 | exports[`Input element Should render the component with extra props 1`] = `
18 |
23 | `;
24 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/input/element.js:
--------------------------------------------------------------------------------
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 |
23 | );
24 |
25 | Input.propTypes = {
26 | className: PropTypes.string,
27 | type: PropTypes.string.isRequired,
28 | };
29 |
30 | export default Input;
31 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/placeholder/__tests__/element.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Placeholder from '../element';
3 |
4 | describe( ' component', () => {
5 | test( 'Default behavior', () => {
6 | const component = renderer.create(
7 | Custom Text
8 | );
9 | expect( component.toJSON() ).toMatchSnapshot();
10 | } );
11 |
12 | test( 'Custom Class name attached', () => {
13 | const component = renderer.create(
14 | Custom Text
15 | );
16 | expect( component.toJSON() ).toMatchSnapshot();
17 | } );
18 | } );
19 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/blocks/exception/__tests__/__snapshots__/options.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Exception options EXCEPTION_OCCURRENCE_OPTIONS 1`] = `
4 | Array [
5 | Object {
6 | "label": "Daily",
7 | "value": "daily",
8 | },
9 | Object {
10 | "label": "Weekly",
11 | "value": "weekly",
12 | },
13 | Object {
14 | "label": "Monthly",
15 | "value": "monthly",
16 | },
17 | Object {
18 | "label": "Yearly",
19 | "value": "yearly",
20 | },
21 | Object {
22 | "label": "Single Exception",
23 | "value": "single",
24 | },
25 | ]
26 | `;
27 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/ticket/display-container/display/quantity-bar/__tests__/__snapshots__/bar.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[` render percentage with children 1`] = `
4 |
12 | test
13 |
14 | `;
15 |
16 | exports[` render percentage with custom class name 1`] = `
17 |
25 | `;
26 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/attendees/sagas.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External Dependencies
3 | */
4 | import { put, all, takeEvery } from 'redux-saga/effects';
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import * as types from './types';
10 | import { DEFAULT_STATE } from './reducer';
11 | import * as actions from './actions';
12 |
13 | export function* setInitialState( action ) {
14 | const { get } = action.payload;
15 |
16 | yield put( actions.setTitle( get( 'title', DEFAULT_STATE.title ) ) );
17 | }
18 |
19 | export default function* watchers() {
20 | yield takeEvery( types.SET_ATTENDEES_INITIAL_STATE, setInitialState );
21 | }
22 |
--------------------------------------------------------------------------------
/__mocks__/@wordpress/components.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { noop } from 'lodash';
5 |
6 | export const withAPIData = () => noop;
7 | export const Spinner = () => "🏃♂️";
8 | export const Modal = ( { title, children } ) => (
9 |
10 | { title }
11 | { children }
12 |
13 | );
14 | export const Dashicon = ( { className, icon } ) => { icon };
15 | export const Dropdown = () => Dropdown;
16 | export const Tooltip = () => Tooltip;
17 | export const PanelBody = ({ children }) => { children }
18 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/elements/google-map/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__map {
2 | background-color: #F7F1E1;
3 |
4 | &--static {
5 | display: flex;
6 | align-items: center;
7 | justify-content: center;
8 |
9 | img {
10 | z-index: 2;
11 | }
12 | }
13 |
14 | &--interactive {
15 | width: 100%;
16 | display: flex;
17 | align-items: center;
18 | justify-content: center;
19 | height: 100%;
20 | flex: 1;
21 | }
22 |
23 | &--dynamic {
24 | width: 100%;
25 | height: 100%;
26 | z-index: 2;
27 | }
28 |
29 | .tribe-editor__venue--has-map & {
30 | width: 49%;
31 | flex-basis: 49%;
32 | min-height: 270px;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/plugins/events/src/views/blocks/event-venue.php:
--------------------------------------------------------------------------------
1 | get( 'post_id' );
9 |
10 | $map = tribe_get_embedded_map() ? 'tribe-block__venue--has-map' : '';
11 | ?>
12 |
13 |
14 |
15 | template( 'blocks/parts/venue' ); ?>
16 | template( 'blocks/parts/map' ); ?>
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/details/__tests__/types.test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { types } from '@moderntribe/events/data/details';
5 | import { PREFIX_EVENTS_STORE } from '@moderntribe/events/data/utils';
6 |
7 | describe( '[STORE] - Details types', () => {
8 | it( 'Should return the types values', () => {
9 | expect( types.SET_DETAILS_POST_TYPE ).toBe( `${ PREFIX_EVENTS_STORE }/SET_DETAILS_POST_TYPE` );
10 | expect( types.SET_DETAILS_IS_LOADING )
11 | .toBe( `${ PREFIX_EVENTS_STORE }/SET_DETAILS_IS_LOADING` );
12 | expect( types.SET_DETAILS ).toBe( `${ PREFIX_EVENTS_STORE }/SET_DETAILS` );
13 | } );
14 | } );
15 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/data/blocks/attendees/__tests__/types.test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { types } from '@moderntribe/tickets/data/blocks/attendees';
5 | import { PREFIX_TICKETS_STORE } from '@moderntribe/tickets/data/utils';
6 |
7 | describe( '[STORE] - Attendees types', () => {
8 | it( 'Attendees initial state', () => {
9 | expect( types.SET_ATTENDEES_INITIAL_STATE ).toBe( `${ PREFIX_TICKETS_STORE }/SET_ATTENDEES_INITIAL_STATE` );
10 | } );
11 |
12 | it( 'Should match the types values', () => {
13 | expect( types.SET_ATTENDEES_TITLE ).toBe( `${ PREFIX_TICKETS_STORE }/SET_ATTENDEES_TITLE` );
14 | } );
15 | } );
16 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/icons/attendees.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/multi-day-checkbox/__tests__/element.spec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import React from 'react';
5 | import { noop } from 'lodash';
6 |
7 | /**
8 | * Internal dependencies
9 | */
10 | import { MultiDayCheckbox } from '@moderntribe/events-pro/elements';
11 |
12 | describe( 'Multi Day Checkbox Element', () => {
13 | it( 'renders multi day checkbox', () => {
14 | const component = renderer.create(
15 |
20 | );
21 | expect( component.toJSON() ).toMatchSnapshot();
22 | } );
23 | } );
24 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/classic/reducer.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import * as types from './types';
5 |
6 | export const DEFAULT_STATE = {
7 | detailsTitle: '',
8 | organizerTitle: '',
9 | };
10 |
11 | export default ( state = DEFAULT_STATE, action ) => {
12 | switch ( action.type ) {
13 | case types.SET_CLASSIC_DETAILS_TITLE:
14 | return {
15 | ...state,
16 | detailsTitle: action.payload.title,
17 | };
18 |
19 | case types.SET_CLASSIC_ORGANIZERS_TITLE:
20 | return {
21 | ...state,
22 | organizerTitle: action.payload.title,
23 | };
24 |
25 | default:
26 | return state;
27 | }
28 | };
29 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/icons/inactive/rsvp.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/tickets/content.php:
--------------------------------------------------------------------------------
1 | get( 'ticket' );
11 |
12 | $context = array(
13 | 'ticket' => $ticket,
14 | 'key' => $this->get( 'key' ),
15 | );
16 | ?>
17 |
20 | template( 'blocks/tickets/content-title', $context ); ?>
21 | template( 'blocks/tickets/content-description', $context ); ?>
22 | template( 'blocks/tickets/opt-out', $context ); ?>
23 |
24 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/ui/__tests__/types.test.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { types } from '@moderntribe/events/data/ui';
5 | import { PREFIX_EVENTS_STORE } from '@moderntribe/events/data/utils';
6 |
7 | describe( '[STORE] - UI types', () => {
8 | it( 'Should match the types values', () => {
9 | expect( types.SET_DASHBOARD_DATE_TIME )
10 | .toBe( `${ PREFIX_EVENTS_STORE }/SET_DASHBOARD_DATE_TIME` );
11 | expect( types.TOGGLE_DASHBOARD_DATE_TIME )
12 | .toBe( `${ PREFIX_EVENTS_STORE }/TOGGLE_DASHBOARD_DATE_TIME` );
13 | expect( types.SET_VISIBLE_MONTH ).toBe( `${ PREFIX_EVENTS_STORE }/SET_VISIBLE_MONTH` );
14 | } );
15 | } );
16 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/rsvp/container/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__rsvp-container {
2 |
3 | }
4 |
5 | .tribe-editor__container-panel__icon {
6 |
7 | .tribe-editor__rsvp-container & {
8 | display: flex;
9 | flex-direction: column;
10 | align-items: center;
11 |
12 | & > svg {
13 | flex: none;
14 | }
15 | }
16 | }
17 |
18 | .tribe-editor__rsvp-container__icon-label {
19 | color: #434343;
20 | flex: none;
21 | font-family: Helvetica, sans-serif, arial;
22 | font-weight: bold;
23 | font-size: 16px;
24 | line-height: 19px;
25 | letter-spacing: 0.05px;
26 |
27 | .tribe-editor__rsvp-container--disabled & {
28 | color: #AEB4BB;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/Tribe/Template/Admin.php:
--------------------------------------------------------------------------------
1 | set_template_origin( tribe( 'gutenberg' ) );
16 |
17 | // todo: update to the plugins directory only
18 | $this->set_template_folder( 'plugins/events-pro/src/admin-view' );
19 |
20 | // Configures this templating class extract variables
21 | $this->set_template_context_extract( true );
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/remove-field/element.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import React from 'react';
5 | import PropTypes from 'prop-types';
6 |
7 | /**
8 | * Internal dependencies
9 | */
10 | import TrashIcon from '@moderntribe/events-pro/src/resources/icons/trash.svg';
11 | import './style.pcss';
12 |
13 | const RemoveField = ( { onClick } ) => (
14 |
21 | );
22 |
23 | RemoveField.propTypes = {
24 | onClick: PropTypes.func.isRequired,
25 | };
26 |
27 | export default RemoveField;
28 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/venue/types.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { PREFIX_EVENTS_STORE } from '@moderntribe/events/data/utils';
5 |
6 | export const SET_INITIAL_STATE = `${ PREFIX_EVENTS_STORE }/VENUE_BLOCK/SET_INITIAL_STATE`;
7 |
8 | export const SET_VENUE = `${ PREFIX_EVENTS_STORE }/SET_VENUE`;
9 |
10 | export const TOGGLE_VENUE_MAP = `${ PREFIX_EVENTS_STORE }/TOGGLE_VENUE_MAP`;
11 | export const SET_VENUE_MAP = `${ PREFIX_EVENTS_STORE }/SET_VENUE_MAP`;
12 |
13 | export const TOGGLE_VENUE_MAP_LINK = `${ PREFIX_EVENTS_STORE }/TOGGLE_VENUE_MAP_LINK`;
14 | export const SET_VENUE_MAP_LINK = `${ PREFIX_EVENTS_STORE }/SET_VENUE_MAP_LINK`;
15 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/elements/image/__tests__/__snapshots__/element.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Image Element renders image 1`] = `
4 |
9 | `;
10 |
11 | exports[`Image Element renders image with class 1`] = `
12 |
17 | `;
18 |
19 | exports[`Image Element renders image with extra props 1`] = `
20 |
27 | `;
28 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/status/__tests__/selectors.spec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External Dependencies
3 | */
4 | import * as selectors from '../selectors';
5 | import { constants } from '@moderntribe/common/data/plugins';
6 |
7 | describe( 'Status selectors', () => {
8 | let state;
9 | beforeEach( () => {
10 | state = {
11 | [ constants.EVENTS_PRO_PLUGIN ]: {
12 | status: {
13 | done: true,
14 | progress: 60,
15 | },
16 | },
17 | };
18 | } );
19 |
20 | const keys = Object.keys( selectors );
21 |
22 | keys.forEach( ( key ) => {
23 | test( key, () => {
24 | expect( selectors[ key ]( state ) ).toMatchSnapshot();
25 | } );
26 | } );
27 | } );
28 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/icons/tickets.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/form/name.php:
--------------------------------------------------------------------------------
1 |
18 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/data/blocks/recurring/types.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable max-len */
2 | /**
3 | * Internal dependencies
4 | */
5 | import { PREFIX_EVENTS_PRO_STORE } from '@moderntribe/events-pro/data/prefix';
6 |
7 | export const ADD_RULE_FIELD = `${ PREFIX_EVENTS_PRO_STORE }/ADD_RULE_FIELD`;
8 | export const ADD_RULE = `${ PREFIX_EVENTS_PRO_STORE }/ADD_RULE`;
9 | export const REMOVE_RULE_FIELD = `${ PREFIX_EVENTS_PRO_STORE }/REMOVE_RULE_FIELD`;
10 | export const REMOVE_RULE = `${ PREFIX_EVENTS_PRO_STORE }/REMOVE_RULE`;
11 | export const EDIT_RULE = `${ PREFIX_EVENTS_PRO_STORE }/EDIT_RULE`;
12 | export const SYNC_RULES_FROM_DB = `${ PREFIX_EVENTS_PRO_STORE }/SYNC_RULES_FROM_DB`;
13 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/labeled-row/__tests__/__snapshots__/element.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`LabeledRow should render component 1`] = `
4 |
7 |
10 |
13 | hello
14 |
15 |
16 |
23 |
24 | `;
25 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/tickets/action-buttons/settings/container.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { connect } from 'react-redux';
5 | import { compose } from 'redux';
6 |
7 | /**
8 | * Internal dependencies
9 | */
10 | import SettingsActionButton from './template';
11 |
12 | import { actions } from '@moderntribe/tickets/data/blocks/ticket';
13 | import { withStore } from '@moderntribe/common/hoc';
14 |
15 | const mapDispatchToProps = ( dispatch ) => ( {
16 | onClick: () => dispatch( actions.openSettings() ),
17 | } );
18 |
19 | export default compose(
20 | withStore(),
21 | connect( null, mapDispatchToProps ),
22 | )( SettingsActionButton );
23 |
24 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/tickets/settings/container.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { connect } from 'react-redux';
5 | import { compose } from 'redux';
6 |
7 | /**
8 | * Internal dependencies
9 | */
10 | import TicketsSettingsDashboard from './template';
11 |
12 | import { actions } from '@moderntribe/tickets/data/blocks/ticket';
13 | import { withStore } from '@moderntribe/common/hoc';
14 |
15 | const mapDispatchToProps = ( dispatch ) => ( {
16 | onCloseClick: () => dispatch( actions.closeSettings() ),
17 | } );
18 |
19 | export default compose(
20 | withStore(),
21 | connect( null, mapDispatchToProps ),
22 | )( TicketsSettingsDashboard );
23 |
24 |
--------------------------------------------------------------------------------
/plugins/tickets/src/views/blocks/rsvp/form/email.php:
--------------------------------------------------------------------------------
1 |
19 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/day-of-week-picker/day-of-week/__tests__/element.spec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import React from 'react';
5 | import { noop } from 'lodash';
6 |
7 | /**
8 | * Internal dependencies
9 | */
10 | import DayOfWeek from '../element';
11 |
12 | describe( 'Day Of Week Element', () => {
13 | it( 'renders day of week', () => {
14 | const component = renderer.create(
15 |
23 | );
24 | expect( component.toJSON() ).toMatchSnapshot();
25 | } );
26 | } );
27 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/multi-day-checkbox/__tests__/__snapshots__/element.spec.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Multi Day Checkbox Element renders multi day checkbox 1`] = `
4 |
7 |
14 |
20 |
21 | `;
22 |
--------------------------------------------------------------------------------
/plugins/events/src/modules/data/blocks/price/selectors.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import { createSelector } from 'reselect';
5 |
6 | export const getPriceBlock = ( state ) => state.events.blocks.price;
7 |
8 | export const getPrice = createSelector(
9 | [ getPriceBlock ],
10 | ( block ) => block.cost,
11 | );
12 |
13 | export const getSymbol = createSelector(
14 | [ getPriceBlock ],
15 | ( block ) => block.symbol,
16 | );
17 |
18 | export const getPosition = createSelector(
19 | [ getPriceBlock ],
20 | ( block ) => block.position,
21 | );
22 |
23 | export const getDescription = createSelector(
24 | [ getPriceBlock ],
25 | ( block ) => block.description,
26 | );
27 |
--------------------------------------------------------------------------------
/plugins/events/src/views/blocks/event-website.php:
--------------------------------------------------------------------------------
1 | attr( 'href' ) || ! $this->attr( 'urlLabel' ) ) {
10 | return;
11 | }
12 |
13 | $target = apply_filters( 'tribe_get_event_website_link_target', '_self' );
14 | ?>
15 |
24 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/tickets/availability/style.pcss:
--------------------------------------------------------------------------------
1 | .tribe-editor__availability {
2 | text-align: right;
3 | font-size: 0.9375rem;
4 | padding: 16px 0 0;
5 |
6 | .tribe-editor__numeric-label {
7 | color: #545D66;
8 | font-family: Helvetica, sans-serif, arial;
9 | }
10 |
11 | .tribe-editor__numeric-label--count {
12 | font-weight: bold;
13 | }
14 | }
15 |
16 | .tribe-editor__availability--separator {
17 | padding-left: 15px;
18 | padding-right: 15px;
19 | color: #545D66;
20 | font-family: Helvetica, sans-serif, arial;
21 | }
22 |
23 | .tribe-editor__availability--disabled {
24 | pointer-events: none;
25 |
26 | span {
27 | color: #AEB4BB;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/plugins/tickets/src/modules/blocks/tickets/capacity-table/schema.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types';
2 |
3 | export default PropTypes.arrayOf(
4 | PropTypes.shape( {
5 | title: PropTypes.string,
6 | capacity: PropTypes.oneOfType( [ PropTypes.number, PropTypes.string ] ),
7 | } ),
8 | )
9 |
10 | export const getValues = ( items ) => (
11 | items.reduce( ( accumulator, item ) => {
12 | if ( item.title ) {
13 | accumulator.names.push( item.title );
14 | }
15 | const capacity = parseInt( item.capacity, 10 );
16 | if ( 'capacity' in item && ! isNaN( capacity ) ) {
17 | accumulator.total += capacity;
18 | }
19 | return accumulator;
20 | }, { names: [], total: 0 } )
21 | )
22 |
--------------------------------------------------------------------------------
/plugins/common/src/modules/utils/number.js:
--------------------------------------------------------------------------------
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 | };
23 |
--------------------------------------------------------------------------------
/plugins/events-pro/src/modules/elements/attribute-sync/template.js:
--------------------------------------------------------------------------------
1 | /**
2 | * External dependencies
3 | */
4 | import React, { Component } from 'react';
5 | import PropTypes from 'prop-types';
6 |
7 | export default class AttributeSync extends Component {
8 | static propTypes = {
9 | clientId: PropTypes.string.isRequired,
10 | initialize: PropTypes.func.isRequired,
11 | cancel: PropTypes.func.isRequired,
12 | }
13 |
14 | componentDidMount() {
15 | this.props.initialize();
16 | }
17 |
18 | shouldComponentUpdate() {
19 | return false; // Never update
20 | }
21 |
22 | componentWillUnmount() {
23 | this.props.cancel();
24 | }
25 |
26 | render() {
27 | return null;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------