@blaze-cms/react-page-builder 0.124.0-alpha.3 → 0.124.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/lib/application/query/index.js +1 -1
- package/lib/application/query/index.js.map +1 -1
- package/lib/components/SearchContent/index.js +131 -63
- package/lib/components/SearchContent/index.js.map +1 -1
- package/lib/constants/index.js +1 -1
- package/lib/helpers/build-props-query.js +18 -11
- package/lib/helpers/build-props-query.js.map +1 -1
- package/lib-es/application/query/index.js +4 -0
- package/lib-es/application/query/index.js.map +1 -1
- package/lib-es/components/SearchContent/index.js +83 -50
- package/lib-es/components/SearchContent/index.js.map +1 -1
- package/lib-es/helpers/build-props-query.js +11 -2
- package/lib-es/helpers/build-props-query.js.map +1 -1
- package/package.json +2 -2
- package/src/application/query/index.js +4 -0
- package/src/components/SearchContent/index.js +78 -38
- package/src/helpers/build-props-query.js +6 -3
- package/tests/unit/src/helpers/build-props-query.test.js +43 -0
- package/coverage/clover.xml +0 -3149
- package/coverage/coverage-final.json +0 -257
- package/coverage/lcov-report/HOC/index.html +0 -141
- package/coverage/lcov-report/HOC/index.js.html +0 -89
- package/coverage/lcov-report/HOC/withInfiniteScroll.js.html +0 -311
- package/coverage/lcov-report/HOC/withTitle.js.html +0 -185
- package/coverage/lcov-report/PBContext/index.html +0 -111
- package/coverage/lcov-report/PBContext/index.js.html +0 -95
- package/coverage/lcov-report/application/query/index.html +0 -111
- package/coverage/lcov-report/application/query/index.js.html +0 -482
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -79
- package/coverage/lcov-report/components/Banner/Banner.js.html +0 -260
- package/coverage/lcov-report/components/Banner/BannerRender.js.html +0 -464
- package/coverage/lcov-report/components/Banner/helpers.js.html +0 -515
- package/coverage/lcov-report/components/Banner/index.html +0 -156
- package/coverage/lcov-report/components/Banner/index.js.html +0 -89
- package/coverage/lcov-report/components/BlazeLink.js.html +0 -197
- package/coverage/lcov-report/components/Button.js.html +0 -353
- package/coverage/lcov-report/components/Card/Card.js.html +0 -548
- package/coverage/lcov-report/components/Card/CardContainer.js.html +0 -407
- package/coverage/lcov-report/components/Card/CardFactory.js.html +0 -218
- package/coverage/lcov-report/components/Card/CardRender.js.html +0 -806
- package/coverage/lcov-report/components/Card/constants.js.html +0 -89
- package/coverage/lcov-report/components/Card/helpers/get-dynamic-grid-classes.js.html +0 -137
- package/coverage/lcov-report/components/Card/helpers/get-published-listing-url.js.html +0 -92
- package/coverage/lcov-report/components/Card/helpers/index.html +0 -156
- package/coverage/lcov-report/components/Card/helpers/index.js.html +0 -89
- package/coverage/lcov-report/components/Card/helpers/use-dynamic-size-key.js.html +0 -98
- package/coverage/lcov-report/components/Card/index.html +0 -186
- package/coverage/lcov-report/components/Card/index.js.html +0 -89
- package/coverage/lcov-report/components/Carousel/Carousel.js.html +0 -185
- package/coverage/lcov-report/components/Carousel/CarouselImage/CarouselImage.js.html +0 -224
- package/coverage/lcov-report/components/Carousel/CarouselImage/index.html +0 -126
- package/coverage/lcov-report/components/Carousel/CarouselImage/index.js.html +0 -89
- package/coverage/lcov-report/components/Carousel/CarouselRender/CarouselRender.js.html +0 -335
- package/coverage/lcov-report/components/Carousel/CarouselRender/index.html +0 -126
- package/coverage/lcov-report/components/Carousel/CarouselRender/index.js.html +0 -89
- package/coverage/lcov-report/components/Carousel/index.html +0 -126
- package/coverage/lcov-report/components/Carousel/index.js.html +0 -89
- package/coverage/lcov-report/components/ClickWrapper.js.html +0 -191
- package/coverage/lcov-report/components/Code.js.html +0 -155
- package/coverage/lcov-report/components/DataSummary/DataSummaryFactory.js.html +0 -293
- package/coverage/lcov-report/components/DataSummary/DataSummaryRender.js.html +0 -272
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/HeadingLargeSummary.js.html +0 -149
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/HeadingLargeSummaryContent.js.html +0 -134
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/index.html +0 -141
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/index.js.html +0 -89
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummary.js.html +0 -140
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummaryContent.js.html +0 -161
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/index.html +0 -141
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/index.js.html +0 -89
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/LargeSummary/LargeSummary.js.html +0 -140
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/LargeSummary/LargeSummaryContent.js.html +0 -188
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/LargeSummary/index.html +0 -141
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/LargeSummary/index.js.html +0 -89
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/ListSummary/ListSummary.js.html +0 -140
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/ListSummary/ListSummaryContent.js.html +0 -185
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/ListSummary/index.html +0 -141
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/ListSummary/index.js.html +0 -89
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/TextSummary/TextSummary.js.html +0 -140
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/TextSummary/TextSummaryContent.js.html +0 -182
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/TextSummary/index.html +0 -141
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/TextSummary/index.js.html +0 -89
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/index.html +0 -111
- package/coverage/lcov-report/components/DataSummary/DataSummaryTypes/index.js.html +0 -137
- package/coverage/lcov-report/components/DataSummary/helpers/build-props-to-display-with-content.js.html +0 -188
- package/coverage/lcov-report/components/DataSummary/helpers/get-data-summary-query.js.html +0 -131
- package/coverage/lcov-report/components/DataSummary/helpers/get-link-to-published-content.js.html +0 -110
- package/coverage/lcov-report/components/DataSummary/helpers/get-prop-value.js.html +0 -152
- package/coverage/lcov-report/components/DataSummary/helpers/get-value-from-array.js.html +0 -131
- package/coverage/lcov-report/components/DataSummary/helpers/index.html +0 -201
- package/coverage/lcov-report/components/DataSummary/helpers/index.js.html +0 -113
- package/coverage/lcov-report/components/DataSummary/helpers/strip-summary-props-content.js.html +0 -137
- package/coverage/lcov-report/components/DataSummary/index.html +0 -141
- package/coverage/lcov-report/components/DataSummary/index.js.html +0 -89
- package/coverage/lcov-report/components/Image/GlobalLightbox/GlobalLightbox.js.html +0 -674
- package/coverage/lcov-report/components/Image/GlobalLightbox/NavButton.js.html +0 -158
- package/coverage/lcov-report/components/Image/GlobalLightbox/index.html +0 -141
- package/coverage/lcov-report/components/Image/GlobalLightbox/index.js.html +0 -95
- package/coverage/lcov-report/components/Image/Image.js.html +0 -542
- package/coverage/lcov-report/components/Image/ImageDetails.js.html +0 -149
- package/coverage/lcov-report/components/Image/ImageFactory.js.html +0 -260
- package/coverage/lcov-report/components/Image/ImageRender.js.html +0 -299
- package/coverage/lcov-report/components/Image/Lightbox/Lightbox.js.html +0 -311
- package/coverage/lcov-report/components/Image/Lightbox/index.html +0 -126
- package/coverage/lcov-report/components/Image/Lightbox/index.js.html +0 -89
- package/coverage/lcov-report/components/Image/index.html +0 -171
- package/coverage/lcov-report/components/Image/index.js.html +0 -89
- package/coverage/lcov-report/components/Layout/Layout.js.html +0 -227
- package/coverage/lcov-report/components/Layout/constants.js.html +0 -98
- package/coverage/lcov-report/components/Layout/helpers/check-if-row-has-columns.js.html +0 -143
- package/coverage/lcov-report/components/Layout/helpers/get-styles-to-update.js.html +0 -107
- package/coverage/lcov-report/components/Layout/helpers/index.html +0 -141
- package/coverage/lcov-report/components/Layout/helpers/index.js.html +0 -92
- package/coverage/lcov-report/components/Layout/index.html +0 -141
- package/coverage/lcov-report/components/Layout/index.js.html +0 -89
- package/coverage/lcov-report/components/LazyImage/LazyImage.js.html +0 -161
- package/coverage/lcov-report/components/LazyImage/index.html +0 -126
- package/coverage/lcov-report/components/LazyImage/index.js.html +0 -89
- package/coverage/lcov-report/components/List/ListBuilder.js.html +0 -551
- package/coverage/lcov-report/components/List/ListFactory.js.html +0 -569
- package/coverage/lcov-report/components/List/ListRender.js.html +0 -356
- package/coverage/lcov-report/components/List/components/Cards/CardsRender.js.html +0 -305
- package/coverage/lcov-report/components/List/components/Cards/CardsRenderItem.js.html +0 -389
- package/coverage/lcov-report/components/List/components/Cards/CardsRenderWrapper.js.html +0 -173
- package/coverage/lcov-report/components/List/components/Cards/index.html +0 -156
- package/coverage/lcov-report/components/List/components/Cards/index.js.html +0 -89
- package/coverage/lcov-report/components/List/components/Full/FullRender.js.html +0 -242
- package/coverage/lcov-report/components/List/components/Full/FullRenderItem.js.html +0 -344
- package/coverage/lcov-report/components/List/components/Full/index.html +0 -141
- package/coverage/lcov-report/components/List/components/Full/index.js.html +0 -89
- package/coverage/lcov-report/components/List/components/Pagination/Classic.js.html +0 -206
- package/coverage/lcov-report/components/List/components/Pagination/ListPagination.js.html +0 -266
- package/coverage/lcov-report/components/List/components/Pagination/LoadMore.js.html +0 -182
- package/coverage/lcov-report/components/List/components/Pagination/index.html +0 -156
- package/coverage/lcov-report/components/List/components/Pagination/index.js.html +0 -89
- package/coverage/lcov-report/components/List/components/helpers/check-if-should-render-banner.js.html +0 -116
- package/coverage/lcov-report/components/List/components/helpers/check-if-should-render-gtm.js.html +0 -125
- package/coverage/lcov-report/components/List/components/helpers/index.html +0 -141
- package/coverage/lcov-report/components/List/components/helpers/index.js.html +0 -86
- package/coverage/lcov-report/components/List/components/index.html +0 -111
- package/coverage/lcov-report/components/List/components/index.js.html +0 -92
- package/coverage/lcov-report/components/List/constants.js.html +0 -95
- package/coverage/lcov-report/components/List/helpers/build-pagination-items.js.html +0 -182
- package/coverage/lcov-report/components/List/helpers/build-pagination-url.js.html +0 -113
- package/coverage/lcov-report/components/List/helpers/index.html +0 -141
- package/coverage/lcov-report/components/List/helpers/index.js.html +0 -83
- package/coverage/lcov-report/components/List/index.html +0 -171
- package/coverage/lcov-report/components/List/index.js.html +0 -89
- package/coverage/lcov-report/components/Login/Login.js.html +0 -359
- package/coverage/lcov-report/components/Login/index.html +0 -141
- package/coverage/lcov-report/components/Login/index.js.html +0 -89
- package/coverage/lcov-report/components/Login/loginMutation.js.html +0 -113
- package/coverage/lcov-report/components/Modal/Modal.js.html +0 -167
- package/coverage/lcov-report/components/Modal/index.html +0 -126
- package/coverage/lcov-report/components/Modal/index.js.html +0 -89
- package/coverage/lcov-report/components/SearchFilter/SearchFilter/FiltersList.js.html +0 -371
- package/coverage/lcov-report/components/SearchFilter/SearchFilter/MobileBottom.js.html +0 -218
- package/coverage/lcov-report/components/SearchFilter/SearchFilter/MobileTop.js.html +0 -146
- package/coverage/lcov-report/components/SearchFilter/SearchFilter/SearchFilter.js.html +0 -455
- package/coverage/lcov-report/components/SearchFilter/SearchFilter/index.html +0 -171
- package/coverage/lcov-report/components/SearchFilter/SearchFilter/index.js.html +0 -89
- package/coverage/lcov-report/components/SearchFilter/SearchFilterContainer.js.html +0 -398
- package/coverage/lcov-report/components/SearchFilter/components/Checkbox.js.html +0 -368
- package/coverage/lcov-report/components/SearchFilter/components/Range.js.html +0 -401
- package/coverage/lcov-report/components/SearchFilter/components/Select.js.html +0 -245
- package/coverage/lcov-report/components/SearchFilter/components/TextSearch.js.html +0 -206
- package/coverage/lcov-report/components/SearchFilter/components/index.html +0 -171
- package/coverage/lcov-report/components/SearchFilter/components/index.js.html +0 -98
- package/coverage/lcov-report/components/SearchFilter/constants.js.html +0 -239
- package/coverage/lcov-report/components/SearchFilter/helpers/build-new-query.js.html +0 -98
- package/coverage/lcov-report/components/SearchFilter/helpers/build-query-params.js.html +0 -155
- package/coverage/lcov-report/components/SearchFilter/helpers/build-raw-query-stringified.js.html +0 -221
- package/coverage/lcov-report/components/SearchFilter/helpers/calculate-min-max.js.html +0 -119
- package/coverage/lcov-report/components/SearchFilter/helpers/calculate-step.js.html +0 -92
- package/coverage/lcov-report/components/SearchFilter/helpers/check-if-range-updated.js.html +0 -104
- package/coverage/lcov-report/components/SearchFilter/helpers/decode-encode.js.html +0 -95
- package/coverage/lcov-report/components/SearchFilter/helpers/get-display-value.js.html +0 -98
- package/coverage/lcov-report/components/SearchFilter/helpers/get-intersected-prop.js.html +0 -98
- package/coverage/lcov-report/components/SearchFilter/helpers/get-range-value.js.html +0 -155
- package/coverage/lcov-report/components/SearchFilter/helpers/get-search-values.js.html +0 -308
- package/coverage/lcov-report/components/SearchFilter/helpers/get-select-options.js.html +0 -134
- package/coverage/lcov-report/components/SearchFilter/helpers/get-updated-ranges.js.html +0 -101
- package/coverage/lcov-report/components/SearchFilter/helpers/index.html +0 -381
- package/coverage/lcov-report/components/SearchFilter/helpers/index.js.html +0 -200
- package/coverage/lcov-report/components/SearchFilter/helpers/is-device-desktop.js.html +0 -95
- package/coverage/lcov-report/components/SearchFilter/helpers/remove-props-from-updated-ranges.js.html +0 -116
- package/coverage/lcov-report/components/SearchFilter/helpers/remove-updated-ranges.js.html +0 -98
- package/coverage/lcov-report/components/SearchFilter/helpers/set-updated-ranges-in-storage.js.html +0 -113
- package/coverage/lcov-report/components/SearchFilter/helpers/set-updated-ranges.js.html +0 -116
- package/coverage/lcov-report/components/SearchFilter/index.html +0 -141
- package/coverage/lcov-report/components/SearchFilter/index.js.html +0 -89
- package/coverage/lcov-report/components/SearchFilterSort/SearchFilterSort.js.html +0 -233
- package/coverage/lcov-report/components/SearchFilterSort/constants.js.html +0 -98
- package/coverage/lcov-report/components/SearchFilterSort/helpers/handle-sort-update.js.html +0 -158
- package/coverage/lcov-report/components/SearchFilterSort/helpers/index.html +0 -141
- package/coverage/lcov-report/components/SearchFilterSort/helpers/index.js.html +0 -86
- package/coverage/lcov-report/components/SearchFilterSort/helpers/update-sort.js.html +0 -110
- package/coverage/lcov-report/components/SearchFilterSort/index.html +0 -141
- package/coverage/lcov-report/components/SearchFilterSort/index.js.html +0 -89
- package/coverage/lcov-report/components/SocialFollow/SFItem.js.html +0 -152
- package/coverage/lcov-report/components/SocialFollow/SocialFollow.js.html +0 -179
- package/coverage/lcov-report/components/SocialFollow/SocialFollowRender.js.html +0 -182
- package/coverage/lcov-report/components/SocialFollow/index.html +0 -171
- package/coverage/lcov-report/components/SocialFollow/index.js.html +0 -89
- package/coverage/lcov-report/components/SocialFollow/sf.config.js.html +0 -206
- package/coverage/lcov-report/components/TextBlock/TextBlockRender.js.html +0 -113
- package/coverage/lcov-report/components/TextBlock/index.html +0 -126
- package/coverage/lcov-report/components/TextBlock/index.js.html +0 -188
- package/coverage/lcov-report/components/Video/Video.js.html +0 -266
- package/coverage/lcov-report/components/Video/VideoRender.js.html +0 -137
- package/coverage/lcov-report/components/Video/index.html +0 -141
- package/coverage/lcov-report/components/Video/index.js.html +0 -89
- package/coverage/lcov-report/components/Video/providers/Default.js.html +0 -149
- package/coverage/lcov-report/components/Video/providers/JWPlayer/JWPlayerController.js.html +0 -212
- package/coverage/lcov-report/components/Video/providers/JWPlayer/JWPlayerProvider.js.html +0 -311
- package/coverage/lcov-report/components/Video/providers/JWPlayer/index.html +0 -126
- package/coverage/lcov-report/components/Video/providers/YouTube/YouTubeProvider.js.html +0 -179
- package/coverage/lcov-report/components/Video/providers/YouTube/helpers/index.html +0 -111
- package/coverage/lcov-report/components/Video/providers/YouTube/helpers/index.js.html +0 -116
- package/coverage/lcov-report/components/Video/providers/YouTube/index.html +0 -111
- package/coverage/lcov-report/components/Video/providers/get-provider.js.html +0 -131
- package/coverage/lcov-report/components/Video/providers/index.html +0 -141
- package/coverage/lcov-report/components/Video/providers/index.js.html +0 -89
- package/coverage/lcov-report/components/Wrapper.js.html +0 -161
- package/coverage/lcov-report/components/index.html +0 -186
- package/coverage/lcov-report/components/index.js.html +0 -167
- package/coverage/lcov-report/constants/componentsDefaultValues.js.html +0 -143
- package/coverage/lcov-report/constants/index.html +0 -126
- package/coverage/lcov-report/constants/index.js.html +0 -671
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/helpers/build-image-properties.js.html +0 -137
- package/coverage/lcov-report/helpers/build-inherited-filters.js.html +0 -350
- package/coverage/lcov-report/helpers/build-link-extra-props.js.html +0 -119
- package/coverage/lcov-report/helpers/build-props-query.js.html +0 -263
- package/coverage/lcov-report/helpers/build-query-fields.js.html +0 -119
- package/coverage/lcov-report/helpers/build-raw-query-base.js.html +0 -353
- package/coverage/lcov-report/helpers/build-raw-query.js.html +0 -323
- package/coverage/lcov-report/helpers/build-search-values-checkbox-select.js.html +0 -278
- package/coverage/lcov-report/helpers/build-search-values-text.js.html +0 -125
- package/coverage/lcov-report/helpers/build-set-filters.js.html +0 -197
- package/coverage/lcov-report/helpers/check-for-error.js.html +0 -110
- package/coverage/lcov-report/helpers/check-props-to-use.js.html +0 -110
- package/coverage/lcov-report/helpers/check-sort-by.js.html +0 -92
- package/coverage/lcov-report/helpers/entities/constants.js.html +0 -116
- package/coverage/lcov-report/helpers/entities/index.html +0 -111
- package/coverage/lcov-report/helpers/get-banner-data.js.html +0 -92
- package/coverage/lcov-report/helpers/get-click-wrapper-options.js.html +0 -170
- package/coverage/lcov-report/helpers/get-current-offset.js.html +0 -101
- package/coverage/lcov-report/helpers/get-dictionary-match.js.html +0 -116
- package/coverage/lcov-report/helpers/get-display-count-data.js.html +0 -119
- package/coverage/lcov-report/helpers/get-elasticsearch-operator.js.html +0 -95
- package/coverage/lcov-report/helpers/get-entities-with-banner.js.html +0 -107
- package/coverage/lcov-report/helpers/get-entity-data.js.html +0 -113
- package/coverage/lcov-report/helpers/get-entity-render-props.js.html +0 -128
- package/coverage/lcov-report/helpers/get-filter-props.js.html +0 -242
- package/coverage/lcov-report/helpers/get-filter-relation-keys.js.html +0 -107
- package/coverage/lcov-report/helpers/get-generic-props.js.html +0 -113
- package/coverage/lcov-report/helpers/get-generic-render-variables.js.html +0 -200
- package/coverage/lcov-report/helpers/get-image-ids.js.html +0 -185
- package/coverage/lcov-report/helpers/get-inherited-filters.js.html +0 -122
- package/coverage/lcov-report/helpers/get-items-to-display-ids.js.html +0 -110
- package/coverage/lcov-report/helpers/get-modifiers.js.html +0 -137
- package/coverage/lcov-report/helpers/get-not-equal-query.js.html +0 -107
- package/coverage/lcov-report/helpers/get-pagination-index.js.html +0 -107
- package/coverage/lcov-report/helpers/get-parsed-prop-values.js.html +0 -197
- package/coverage/lcov-report/helpers/get-parsed-summary-value.js.html +0 -128
- package/coverage/lcov-report/helpers/get-prop-values.js.html +0 -143
- package/coverage/lcov-report/helpers/get-query-filters.js.html +0 -149
- package/coverage/lcov-report/helpers/get-query-props.js.html +0 -182
- package/coverage/lcov-report/helpers/get-required-schemas.js.html +0 -164
- package/coverage/lcov-report/helpers/get-sanitized-prop-values.js.html +0 -92
- package/coverage/lcov-report/helpers/get-search-filter-type.js.html +0 -101
- package/coverage/lcov-report/helpers/get-sort-by-field-name.js.html +0 -146
- package/coverage/lcov-report/helpers/get-unpublished-entity-name.js.html +0 -113
- package/coverage/lcov-report/helpers/get-updated-filter-by.js.html +0 -158
- package/coverage/lcov-report/helpers/get-wrapped-value-with-link.js.html +0 -155
- package/coverage/lcov-report/helpers/group-entities.js.html +0 -113
- package/coverage/lcov-report/helpers/has-children.js.html +0 -125
- package/coverage/lcov-report/helpers/index.html +0 -1041
- package/coverage/lcov-report/helpers/index.js.html +0 -233
- package/coverage/lcov-report/helpers/inject-banner.js.html +0 -125
- package/coverage/lcov-report/helpers/inject-banners-to-entities.js.html +0 -128
- package/coverage/lcov-report/helpers/inject-multiple-banners/get-banners-for-entities/get-banners-for-entities.js.html +0 -128
- package/coverage/lcov-report/helpers/inject-multiple-banners/get-banners-for-entities/index.html +0 -126
- package/coverage/lcov-report/helpers/inject-multiple-banners/get-banners-for-entities/index.js.html +0 -89
- package/coverage/lcov-report/helpers/inject-multiple-banners/get-banners-for-nodes/get-banners-for-nodes.js.html +0 -131
- package/coverage/lcov-report/helpers/inject-multiple-banners/get-banners-for-nodes/helpers/group-node-entities.js.html +0 -179
- package/coverage/lcov-report/helpers/inject-multiple-banners/get-banners-for-nodes/helpers/index.html +0 -126
- package/coverage/lcov-report/helpers/inject-multiple-banners/get-banners-for-nodes/helpers/index.js.html +0 -89
- package/coverage/lcov-report/helpers/inject-multiple-banners/get-banners-for-nodes/index.html +0 -126
- package/coverage/lcov-report/helpers/inject-multiple-banners/get-banners-for-nodes/index.js.html +0 -89
- package/coverage/lcov-report/helpers/inject-multiple-banners/index.html +0 -126
- package/coverage/lcov-report/helpers/inject-multiple-banners/index.js.html +0 -89
- package/coverage/lcov-report/helpers/inject-multiple-banners/inject-multiple-banners.js.html +0 -119
- package/coverage/lcov-report/helpers/is-browser.js.html +0 -89
- package/coverage/lcov-report/helpers/is-filter-entitys-id.js.html +0 -122
- package/coverage/lcov-report/helpers/is-object.js.html +0 -89
- package/coverage/lcov-report/helpers/is-using-relation-image.js.html +0 -92
- package/coverage/lcov-report/helpers/parse-interval.js.html +0 -89
- package/coverage/lcov-report/helpers/parse-props-to-display.js.html +0 -194
- package/coverage/lcov-report/helpers/remove-extra-items.js.html +0 -119
- package/coverage/lcov-report/helpers/remove-unwanted-characters.js.html +0 -140
- package/coverage/lcov-report/helpers/render-children.js.html +0 -152
- package/coverage/lcov-report/helpers/should-render-waypoint.js.html +0 -92
- package/coverage/lcov-report/helpers/should-show-property.js.html +0 -89
- package/coverage/lcov-report/helpers/sort-response-data.js.html +0 -107
- package/coverage/lcov-report/helpers/split-children.js.html +0 -233
- package/coverage/lcov-report/helpers/update-childrens-parent.js.html +0 -140
- package/coverage/lcov-report/hooks/helpers/RenderList.js.html +0 -233
- package/coverage/lcov-report/hooks/helpers/StoreImages.js.html +0 -215
- package/coverage/lcov-report/hooks/helpers/append-gtm-classname.js.html +0 -188
- package/coverage/lcov-report/hooks/helpers/buildPBComponents.js.html +0 -329
- package/coverage/lcov-report/hooks/helpers/check-banner-insertion-set.js.html +0 -125
- package/coverage/lcov-report/hooks/helpers/constants.js.html +0 -98
- package/coverage/lcov-report/hooks/helpers/get-banner-index.js.html +0 -92
- package/coverage/lcov-report/hooks/helpers/get-lightbox-images.js.html +0 -242
- package/coverage/lcov-report/hooks/helpers/getComponent.js.html +0 -95
- package/coverage/lcov-report/hooks/helpers/index.html +0 -261
- package/coverage/lcov-report/hooks/helpers/index.js.html +0 -89
- package/coverage/lcov-report/hooks/helpers/insert-banners.js.html +0 -362
- package/coverage/lcov-report/hooks/index.html +0 -201
- package/coverage/lcov-report/hooks/index.js.html +0 -98
- package/coverage/lcov-report/hooks/use-get-entity-schema.js.html +0 -167
- package/coverage/lcov-report/hooks/use-get-entity-schemas-as-obj.js.html +0 -113
- package/coverage/lcov-report/hooks/use-get-image-id-from-relation.js.html +0 -143
- package/coverage/lcov-report/hooks/use-get-images.js.html +0 -143
- package/coverage/lcov-report/hooks/use-get-single-entity-schema.js.html +0 -125
- package/coverage/lcov-report/hooks/use-page-builder.js.html +0 -155
- package/coverage/lcov-report/index.html +0 -936
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -170
- package/coverage/lcov-report/utils/component-map.js.html +0 -182
- package/coverage/lcov-report/utils/get-class-modifiers.js.html +0 -287
- package/coverage/lcov-report/utils/get-image-data.js.html +0 -137
- package/coverage/lcov-report/utils/get-props-to-display-modifiers.js.html +0 -92
- package/coverage/lcov-report/utils/index.html +0 -186
- package/coverage/lcov-report/utils/index.js.html +0 -101
- package/coverage/lcov-report/utils/is-object-empty.js.html +0 -89
- package/coverage/lcov.info +0 -7222
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { gql,
|
|
3
|
+
import { gql, useApolloClient } from '@apollo/client';
|
|
4
4
|
import { useRouter } from 'next/router';
|
|
5
5
|
import { getPublishedContent } from '../../application/query';
|
|
6
6
|
import BlazeLink from '../BlazeLink';
|
|
7
7
|
|
|
8
|
+
const logError = error => error;
|
|
9
|
+
|
|
8
10
|
const SearchContent = ({
|
|
9
|
-
|
|
11
|
+
entities,
|
|
10
12
|
searchInputAlignment,
|
|
11
13
|
searchInputWrapperMobile,
|
|
12
14
|
searchInputWrapperDesktop,
|
|
@@ -16,44 +18,70 @@ const SearchContent = ({
|
|
|
16
18
|
}) => {
|
|
17
19
|
const [collapsed, setCollapsed] = useState(collapsible);
|
|
18
20
|
const [searchTerm, setSearchTerm] = useState(null);
|
|
21
|
+
const [data, setData] = useState([]);
|
|
19
22
|
const router = useRouter();
|
|
23
|
+
const client = useApolloClient();
|
|
20
24
|
|
|
21
25
|
const capitalize = s => {
|
|
22
26
|
if (typeof s !== 'string') return '';
|
|
23
27
|
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
24
28
|
};
|
|
25
29
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
React.useEffect(() => {
|
|
31
|
+
if (data && data.length !== 0) return;
|
|
32
|
+
const promises = entities.map(entity => {
|
|
33
|
+
const [a, b] = entity.split('_');
|
|
34
|
+
const entityName = capitalize(a) + capitalize(b);
|
|
35
|
+
const rawQueryStringified = JSON.stringify({
|
|
36
|
+
size: 0,
|
|
37
|
+
query: {
|
|
38
|
+
bool: {
|
|
39
|
+
should: [{
|
|
40
|
+
match: {
|
|
41
|
+
docType: entity
|
|
42
|
+
}
|
|
43
|
+
}],
|
|
44
|
+
minimum_should_match: 1
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
const query = gql`
|
|
49
|
+
${getPublishedContent(entityName)}
|
|
50
|
+
`;
|
|
51
|
+
|
|
52
|
+
try {
|
|
53
|
+
return client.query({
|
|
54
|
+
query,
|
|
55
|
+
variables: {
|
|
56
|
+
rawQueryStringified,
|
|
57
|
+
offset: 0,
|
|
58
|
+
limit: 5
|
|
35
59
|
}
|
|
36
|
-
}
|
|
37
|
-
|
|
60
|
+
});
|
|
61
|
+
} catch (e) {
|
|
62
|
+
return [];
|
|
38
63
|
}
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
try {
|
|
67
|
+
(async () => {
|
|
68
|
+
try {
|
|
69
|
+
const fetchResults = await Promise.all(promises);
|
|
70
|
+
const searchResults = fetchResults.map(result => {
|
|
71
|
+
const {
|
|
72
|
+
data: resultData
|
|
73
|
+
} = result;
|
|
74
|
+
return resultData.searchPublishedContent.results;
|
|
75
|
+
}).flat();
|
|
76
|
+
setData(searchResults);
|
|
77
|
+
} catch (e) {
|
|
78
|
+
logError(e);
|
|
79
|
+
}
|
|
80
|
+
})();
|
|
81
|
+
} catch (e) {
|
|
82
|
+
logError(e);
|
|
39
83
|
}
|
|
40
84
|
});
|
|
41
|
-
const query = gql`
|
|
42
|
-
${getPublishedContent(entityName)}
|
|
43
|
-
`;
|
|
44
|
-
const {
|
|
45
|
-
loading,
|
|
46
|
-
error,
|
|
47
|
-
data
|
|
48
|
-
} = useQuery(query, {
|
|
49
|
-
variables: {
|
|
50
|
-
rawQueryStringified,
|
|
51
|
-
offset: 0,
|
|
52
|
-
limit: 5
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
if (loading) return null;
|
|
56
|
-
if (error) return null;
|
|
57
85
|
|
|
58
86
|
const handleClick = (e, url) => {
|
|
59
87
|
e.preventDefault();
|
|
@@ -66,30 +94,35 @@ const SearchContent = ({
|
|
|
66
94
|
}
|
|
67
95
|
};
|
|
68
96
|
|
|
69
|
-
const renderResults = () =>
|
|
70
|
-
|
|
97
|
+
const renderResults = () => // eslint-disable-next-line no-undef
|
|
98
|
+
data === null || data === void 0 ? void 0 : data.map(dataItem => {
|
|
71
99
|
const {
|
|
72
|
-
|
|
73
|
-
|
|
100
|
+
name,
|
|
101
|
+
image,
|
|
102
|
+
url
|
|
103
|
+
} = dataItem;
|
|
74
104
|
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
105
|
+
if (searchTerm && searchTerm !== '') {
|
|
106
|
+
if (name.includes(searchTerm)) {
|
|
107
|
+
return /*#__PURE__*/React.createElement(BlazeLink, {
|
|
108
|
+
href: url,
|
|
109
|
+
onClick: e => handleClick(e, url)
|
|
110
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
111
|
+
className: "mt-2 mb-1"
|
|
112
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
113
|
+
className: "flex justify-start items-center"
|
|
114
|
+
}, image.url ? /*#__PURE__*/React.createElement("img", {
|
|
115
|
+
src: image.url,
|
|
116
|
+
alt: name,
|
|
117
|
+
className: "w-20 h-14"
|
|
118
|
+
}) : null, /*#__PURE__*/React.createElement("span", {
|
|
119
|
+
className: "ml-2"
|
|
120
|
+
}, name))));
|
|
121
|
+
}
|
|
86
122
|
|
|
87
|
-
|
|
88
|
-
});
|
|
123
|
+
return null;
|
|
89
124
|
}
|
|
90
|
-
|
|
91
|
-
return [];
|
|
92
|
-
};
|
|
125
|
+
});
|
|
93
126
|
|
|
94
127
|
const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';
|
|
95
128
|
return collapsed ? /*#__PURE__*/React.createElement("div", {
|
|
@@ -160,7 +193,7 @@ SearchContent.propTypes = {
|
|
|
160
193
|
placeholder: PropTypes.string,
|
|
161
194
|
isMobile: PropTypes.bool,
|
|
162
195
|
collapsible: PropTypes.bool,
|
|
163
|
-
|
|
196
|
+
entities: PropTypes.array.isRequired
|
|
164
197
|
};
|
|
165
198
|
SearchContent.defaultProps = {
|
|
166
199
|
searchInputAlignment: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/SearchContent/index.js"],"names":["React","useState","PropTypes","gql","useQuery","useRouter","getPublishedContent","BlazeLink","SearchContent","entity","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","collapsible","isMobile","placeholder","collapsed","setCollapsed","searchTerm","setSearchTerm","router","capitalize","s","charAt","toUpperCase","slice","a","b","split","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","loading","error","data","variables","offset","limit","handleClick","e","url","preventDefault","push","handleKeyPress","key","target","value","renderResults","results","searchPublishedContent","map","name","includes","searchResultsMessage","propTypes","string","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst SearchContent = ({\n entity,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n collapsible,\n isMobile,\n placeholder\n}) => {\n const [collapsed, setCollapsed] = useState(collapsible);\n const [searchTerm, setSearchTerm] = useState(null);\n const router = useRouter();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n const [a, b] = entity.split('_');\n\n const entityName = capitalize(a) + capitalize(b);\n\n const rawQueryStringified = JSON.stringify({\n size: 0,\n query: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n });\n\n const query = gql`\n ${getPublishedContent(entityName)}\n `;\n\n const { loading, error, data } = useQuery(query, {\n variables: { rawQueryStringified, offset: 0, limit: 5 }\n });\n\n if (loading) return null;\n if (error) return null;\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyPress = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n router.push(`/search?search_term=${e.target.value}`);\n }\n };\n\n const renderResults = () => {\n // eslint-disable-next-line no-undef\n const { results } = data?.searchPublishedContent;\n\n if (results && searchTerm && searchTerm !== '') {\n return results.map(({ name, url }) => {\n if (name.includes(searchTerm)) {\n return (\n <BlazeLink href={url} onClick={e => handleClick(e, url)}>\n {name}\n </BlazeLink>\n );\n }\n\n return null;\n });\n }\n\n return [];\n };\n\n const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';\n\n return collapsed ? (\n <div className={isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}>\n <div className=\"search-content--collapse__wrapper\">\n <label className=\"search-content--collapse__label\">\n <span className=\"search-content--collapse__icon_wrapper\">\n <svg className=\"search-content--collapse__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"search-content--collapse__input\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`}>\n <div className=\"search-content--expanded__wrapper\">\n <label className=\"search-content--expanded__label\">\n <span className=\"search-content--expanded__icon_wrapper\">\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n onKeyPress={handleKeyPress}\n className=\"search-content--expanded__input\"\n placeholder={placeholder}\n onBlur={() => {\n if (!collapsible) return;\n if (!searchTerm || searchTerm === '') setCollapsed(true);\n }}\n />\n </label>\n </div>\n {data &&\n searchResultsMessage !== '' && (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"text-sm pt-2\">{searchResultsMessage}</div>\n\n <div className=\"search-content--results__message\">\n <div className=\"search-content--results__content\">{renderResults()}</div>\n </div>\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n collapsible: PropTypes.bool,\n entity: PropTypes.string.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n collapsible: false\n};\n\nexport default SearchContent;\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SearchContent/index.js"],"names":["React","useState","PropTypes","gql","useApolloClient","useRouter","getPublishedContent","BlazeLink","logError","error","SearchContent","entities","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","collapsible","isMobile","placeholder","collapsed","setCollapsed","searchTerm","setSearchTerm","data","setData","router","client","capitalize","s","charAt","toUpperCase","slice","useEffect","length","promises","map","entity","a","b","split","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","variables","offset","limit","e","fetchResults","Promise","all","searchResults","result","resultData","searchPublishedContent","results","flat","handleClick","url","preventDefault","push","handleKeyPress","key","target","value","renderResults","dataItem","name","image","includes","searchResultsMessage","propTypes","string","array","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useApolloClient } from '@apollo/client';\n\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst logError = error => error;\n\nconst SearchContent = ({\n entities,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n collapsible,\n isMobile,\n placeholder\n}) => {\n const [collapsed, setCollapsed] = useState(collapsible);\n const [searchTerm, setSearchTerm] = useState(null);\n const [data, setData] = useState([]);\n\n const router = useRouter();\n const client = useApolloClient();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\n React.useEffect(() => {\n if (data && data.length !== 0) return;\n\n const promises = entities.map(entity => {\n const [a, b] = entity.split('_');\n\n const entityName = capitalize(a) + capitalize(b);\n\n const rawQueryStringified = JSON.stringify({\n size: 0,\n query: {\n bool: {\n should: [\n {\n match: {\n docType: entity\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n });\n\n const query = gql`\n ${getPublishedContent(entityName)}\n `;\n\n try {\n return client.query({\n query,\n variables: {\n rawQueryStringified,\n offset: 0,\n limit: 5\n }\n });\n } catch (e) {\n return [];\n }\n });\n\n try {\n (async () => {\n try {\n const fetchResults = await Promise.all(promises);\n const searchResults = fetchResults\n .map(result => {\n const { data: resultData } = result;\n return resultData.searchPublishedContent.results;\n })\n .flat();\n\n setData(searchResults);\n } catch (e) {\n logError(e);\n }\n })();\n } catch (e) {\n logError(e);\n }\n });\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const handleKeyPress = e => {\n if (e.key === 'Enter' && e.target.value !== '') {\n router.push(`/search?search_term=${e.target.value}`);\n }\n };\n\n const renderResults = () =>\n // eslint-disable-next-line no-undef\n data?.map(dataItem => {\n const { name, image, url } = dataItem;\n\n if (searchTerm && searchTerm !== '') {\n if (name.includes(searchTerm)) {\n return (\n <BlazeLink href={url} onClick={e => handleClick(e, url)}>\n <div className=\"mt-2 mb-1\">\n <div className=\"flex justify-start items-center\">\n {image.url ? <img src={image.url} alt={name} className=\"w-20 h-14\" /> : null}\n <span className=\"ml-2\">{name}</span>\n </div>\n </div>\n </BlazeLink>\n );\n }\n\n return null;\n }\n });\n\n const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';\n\n return collapsed ? (\n <div className={isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}>\n <div className=\"search-content--collapse__wrapper\">\n <label className=\"search-content--collapse__label\">\n <span className=\"search-content--collapse__icon_wrapper\">\n <svg className=\"search-content--collapse__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"search-content--collapse__input\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`}>\n <div className=\"search-content--expanded__wrapper\">\n <label className=\"search-content--expanded__label\">\n <span className=\"search-content--expanded__icon_wrapper\">\n <svg className=\"search-content--expanded__icon\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n onKeyPress={handleKeyPress}\n className=\"search-content--expanded__input\"\n placeholder={placeholder}\n onBlur={() => {\n if (!collapsible) return;\n if (!searchTerm || searchTerm === '') setCollapsed(true);\n }}\n />\n </label>\n </div>\n {data &&\n searchResultsMessage !== '' && (\n <div className=\"search-content--results__wrapper\">\n <div className=\"search-content--results__wrapper--message\">\n <div className=\"text-sm pt-2\">{searchResultsMessage}</div>\n\n <div className=\"search-content--results__message\">\n <div className=\"search-content--results__content\">{renderResults()}</div>\n </div>\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n searchInputWrapperMobile: PropTypes.string,\n searchInputWrapperDesktop: PropTypes.string,\n placeholder: PropTypes.string,\n isMobile: PropTypes.bool,\n collapsible: PropTypes.bool,\n entities: PropTypes.array.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n placeholder: '',\n isMobile: false,\n collapsible: false\n};\n\nexport default SearchContent;\n"],"file":"index.js"}
|
|
@@ -13,12 +13,20 @@ const buildPropsQuery = (data, extraProps = [], cardOptions = null) => {
|
|
|
13
13
|
const allProps = [...typeBasedProps, ...extraProps];
|
|
14
14
|
const uniqueProps = [...new Set([...allProps])];
|
|
15
15
|
const basicProps = uniqueProps.filter(prop => prop && !prop.includes('.')).filter((prop, i, arr) => arr.indexOf(prop) === i);
|
|
16
|
-
const complexProps = buildComplexProps(shouldAddCategoryProps, uniqueProps);
|
|
16
|
+
const complexProps = buildComplexProps(shouldAddCategoryProps, uniqueProps, data);
|
|
17
17
|
return [...basicProps, ...complexProps].join(',');
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
const buildComplexProps = (shouldAddCategoryProps, props
|
|
20
|
+
const buildComplexProps = (shouldAddCategoryProps, props, {
|
|
21
|
+
getEntitySchema: {
|
|
22
|
+
relations
|
|
23
|
+
}
|
|
24
|
+
}) => props.filter(prop => prop && prop.includes('.')).map(nested => nested.split('.')[0]).filter((prop, i, arr) => arr.indexOf(prop) === i).map(base => {
|
|
25
|
+
const matchingRelation = relations.find(({
|
|
26
|
+
localField
|
|
27
|
+
}) => localField === base);
|
|
21
28
|
const nestedProps = props.filter((extraProp, i, arr) => extraProp && extraProp.startsWith(`${base}.`) && arr.indexOf(extraProp) === i).map(nested => nested.split('.')[1]);
|
|
29
|
+
if (matchingRelation && !nestedProps.includes('id')) nestedProps.push('id');
|
|
22
30
|
const jointNestedProps = nestedProps.join(',');
|
|
23
31
|
if (base === 'category' && shouldAddCategoryProps) return `${base}{${jointNestedProps}, ${categoryProps}}`;
|
|
24
32
|
|
|
@@ -55,6 +63,7 @@ const getTypeBaseProps = (data, cardOptions, extraPropsHaveCategory) => {
|
|
|
55
63
|
const typeBasedProps = [...defaultProps];
|
|
56
64
|
typeBasedProps.push(...getCategoyProps(shouldAddCategoryProps, hasCategory, hasPreheader));
|
|
57
65
|
typeBasedProps.push(...getContentProps(isContent));
|
|
66
|
+
if (properties.url || dynamicProperties.url) typeBasedProps.push('url');
|
|
58
67
|
|
|
59
68
|
if (displayThumbnail && relations.find(({
|
|
60
69
|
localField
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/helpers/build-props-query.js"],"names":["CATEGORY_ID","ID","PREHEADER_PROP","HEADLINE_PROP","defaultProps","categoryProps","checkProps","props","Object","keys","filter","prop","length","buildPropsQuery","data","extraProps","cardOptions","extraPropsHaveCategory","includes","typeBasedProps","shouldAddCategoryProps","getTypeBaseProps","allProps","uniqueProps","Set","basicProps","i","arr","indexOf","complexProps","buildComplexProps","join","map","nested","split","base","nestedProps","extraProp","startsWith","jointNestedProps","isCard","displayCategory","displayThumbnail","
|
|
1
|
+
{"version":3,"sources":["../../src/helpers/build-props-query.js"],"names":["CATEGORY_ID","ID","PREHEADER_PROP","HEADLINE_PROP","defaultProps","categoryProps","checkProps","props","Object","keys","filter","prop","length","buildPropsQuery","data","extraProps","cardOptions","extraPropsHaveCategory","includes","typeBasedProps","shouldAddCategoryProps","getTypeBaseProps","allProps","uniqueProps","Set","basicProps","i","arr","indexOf","complexProps","buildComplexProps","join","getEntitySchema","relations","map","nested","split","base","matchingRelation","find","localField","nestedProps","extraProp","startsWith","push","jointNestedProps","isCard","displayCategory","displayThumbnail","interfaces","properties","dynamicProperties","isContent","hasCategory","hasPreheader","getCategoyProps","getContentProps","url"],"mappings":"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","sourcesContent":["import { CATEGORY_ID, ID, PREHEADER_PROP, HEADLINE_PROP } from '../constants';\n\nconst defaultProps = [ID, 'name'];\nconst categoryProps = 'id publishedListingPage{id, url}';\n\nconst checkProps = props =>\n !!(props && Object.keys(props).filter(prop => prop === CATEGORY_ID).length);\n\nconst buildPropsQuery = (data, extraProps = [], cardOptions = null) => {\n const extraPropsHaveCategory = !!extraProps.filter(prop => prop.includes('category.')).length;\n\n const { typeBasedProps, shouldAddCategoryProps } = getTypeBaseProps(\n data,\n cardOptions,\n extraPropsHaveCategory\n );\n\n const allProps = [...typeBasedProps, ...extraProps];\n\n const uniqueProps = [...new Set([...allProps])];\n\n const basicProps = uniqueProps\n .filter(prop => prop && !prop.includes('.'))\n .filter((prop, i, arr) => arr.indexOf(prop) === i);\n const complexProps = buildComplexProps(shouldAddCategoryProps, uniqueProps, data);\n return [...basicProps, ...complexProps].join(',');\n};\n\nconst buildComplexProps = (shouldAddCategoryProps, props, { getEntitySchema: { relations } }) =>\n props\n .filter(prop => prop && prop.includes('.'))\n .map(nested => nested.split('.')[0])\n .filter((prop, i, arr) => arr.indexOf(prop) === i)\n .map(base => {\n const matchingRelation = relations.find(({ localField }) => localField === base);\n const nestedProps = props\n .filter(\n (extraProp, i, arr) =>\n extraProp && extraProp.startsWith(`${base}.`) && arr.indexOf(extraProp) === i\n )\n .map(nested => nested.split('.')[1]);\n if (matchingRelation && !nestedProps.includes('id')) nestedProps.push('id');\n\n const jointNestedProps = nestedProps.join(',');\n if (base === 'category' && shouldAddCategoryProps)\n return `${base}{${jointNestedProps}, ${categoryProps}}`;\n if (base.includes('published')) {\n return `${base}{${jointNestedProps},url}`;\n }\n return `${base}{${jointNestedProps}}`;\n });\n\nconst getTypeBaseProps = (data, cardOptions, extraPropsHaveCategory) => {\n const isCard = !!cardOptions;\n const { displayCategory = true, displayThumbnail = true } = cardOptions || {};\n\n const shouldAddCategoryProps =\n (isCard && displayCategory) || (!isCard && !extraPropsHaveCategory);\n\n if (!isCard) return { typeBasedProps: [ID], shouldAddCategoryProps };\n\n const { getEntitySchema } = data;\n const { interfaces, properties, dynamicProperties, relations } = getEntitySchema;\n\n const isContent = !!interfaces.includes('content/content');\n const hasCategory = checkProps(properties) || checkProps(dynamicProperties);\n const hasPreheader = properties[PREHEADER_PROP];\n\n const typeBasedProps = [...defaultProps];\n\n typeBasedProps.push(...getCategoyProps(shouldAddCategoryProps, hasCategory, hasPreheader));\n typeBasedProps.push(...getContentProps(isContent));\n\n if (properties.url || dynamicProperties.url) typeBasedProps.push('url');\n\n if (displayThumbnail && relations.find(({ localField }) => localField === 'image')) {\n typeBasedProps.push('image.id', 'image.url', 'image.data');\n }\n\n return { typeBasedProps, shouldAddCategoryProps };\n};\n\nconst getContentProps = isContent => (isContent ? ['url', 'sponsored', 'featured'] : []);\n\nconst getCategoyProps = (shouldAddCategoryProps, hasCategory, hasPreheader) => {\n if (!shouldAddCategoryProps) return [];\n\n const props = [];\n\n if (hasCategory) {\n props.push('category.name', 'category.listingPageId', 'category.listingPageEntity');\n }\n\n if (hasPreheader) {\n props.push(`${PREHEADER_PROP}{name}`);\n props.push(HEADLINE_PROP);\n }\n\n return props;\n};\n\nexport default buildPropsQuery;\n"],"file":"build-props-query.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.124.0-alpha.
|
|
3
|
+
"version": "0.124.0-alpha.7",
|
|
4
4
|
"description": "Blaze react page builder",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib-es/index.js",
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"lib/*",
|
|
85
85
|
"lib-es/*"
|
|
86
86
|
],
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "45228d668dd07cda68e55330f9028fbacb4a034f"
|
|
88
88
|
}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { gql,
|
|
3
|
+
import { gql, useApolloClient } from '@apollo/client';
|
|
4
|
+
|
|
4
5
|
import { useRouter } from 'next/router';
|
|
5
6
|
import { getPublishedContent } from '../../application/query';
|
|
6
7
|
import BlazeLink from '../BlazeLink';
|
|
7
8
|
|
|
9
|
+
const logError = error => error;
|
|
10
|
+
|
|
8
11
|
const SearchContent = ({
|
|
9
|
-
|
|
12
|
+
entities,
|
|
10
13
|
searchInputAlignment,
|
|
11
14
|
searchInputWrapperMobile,
|
|
12
15
|
searchInputWrapperDesktop,
|
|
@@ -16,44 +19,79 @@ const SearchContent = ({
|
|
|
16
19
|
}) => {
|
|
17
20
|
const [collapsed, setCollapsed] = useState(collapsible);
|
|
18
21
|
const [searchTerm, setSearchTerm] = useState(null);
|
|
22
|
+
const [data, setData] = useState([]);
|
|
23
|
+
|
|
19
24
|
const router = useRouter();
|
|
25
|
+
const client = useApolloClient();
|
|
20
26
|
|
|
21
27
|
const capitalize = s => {
|
|
22
28
|
if (typeof s !== 'string') return '';
|
|
23
29
|
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
24
30
|
};
|
|
25
31
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
React.useEffect(() => {
|
|
33
|
+
if (data && data.length !== 0) return;
|
|
34
|
+
|
|
35
|
+
const promises = entities.map(entity => {
|
|
36
|
+
const [a, b] = entity.split('_');
|
|
37
|
+
|
|
38
|
+
const entityName = capitalize(a) + capitalize(b);
|
|
39
|
+
|
|
40
|
+
const rawQueryStringified = JSON.stringify({
|
|
41
|
+
size: 0,
|
|
42
|
+
query: {
|
|
43
|
+
bool: {
|
|
44
|
+
should: [
|
|
45
|
+
{
|
|
46
|
+
match: {
|
|
47
|
+
docType: entity
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
minimum_should_match: 1
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
});
|
|
29
55
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
56
|
+
const query = gql`
|
|
57
|
+
${getPublishedContent(entityName)}
|
|
58
|
+
`;
|
|
59
|
+
|
|
60
|
+
try {
|
|
61
|
+
return client.query({
|
|
62
|
+
query,
|
|
63
|
+
variables: {
|
|
64
|
+
rawQueryStringified,
|
|
65
|
+
offset: 0,
|
|
66
|
+
limit: 5
|
|
39
67
|
}
|
|
40
|
-
|
|
41
|
-
|
|
68
|
+
});
|
|
69
|
+
} catch (e) {
|
|
70
|
+
return [];
|
|
42
71
|
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
try {
|
|
75
|
+
(async () => {
|
|
76
|
+
try {
|
|
77
|
+
const fetchResults = await Promise.all(promises);
|
|
78
|
+
const searchResults = fetchResults
|
|
79
|
+
.map(result => {
|
|
80
|
+
const { data: resultData } = result;
|
|
81
|
+
return resultData.searchPublishedContent.results;
|
|
82
|
+
})
|
|
83
|
+
.flat();
|
|
84
|
+
|
|
85
|
+
setData(searchResults);
|
|
86
|
+
} catch (e) {
|
|
87
|
+
logError(e);
|
|
88
|
+
}
|
|
89
|
+
})();
|
|
90
|
+
} catch (e) {
|
|
91
|
+
logError(e);
|
|
43
92
|
}
|
|
44
93
|
});
|
|
45
94
|
|
|
46
|
-
const query = gql`
|
|
47
|
-
${getPublishedContent(entityName)}
|
|
48
|
-
`;
|
|
49
|
-
|
|
50
|
-
const { loading, error, data } = useQuery(query, {
|
|
51
|
-
variables: { rawQueryStringified, offset: 0, limit: 5 }
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
if (loading) return null;
|
|
55
|
-
if (error) return null;
|
|
56
|
-
|
|
57
95
|
const handleClick = (e, url) => {
|
|
58
96
|
e.preventDefault();
|
|
59
97
|
router.push(url);
|
|
@@ -65,26 +103,28 @@ const SearchContent = ({
|
|
|
65
103
|
}
|
|
66
104
|
};
|
|
67
105
|
|
|
68
|
-
const renderResults = () =>
|
|
106
|
+
const renderResults = () =>
|
|
69
107
|
// eslint-disable-next-line no-undef
|
|
70
|
-
|
|
108
|
+
data?.map(dataItem => {
|
|
109
|
+
const { name, image, url } = dataItem;
|
|
71
110
|
|
|
72
|
-
|
|
73
|
-
return results.map(({ name, url }) => {
|
|
111
|
+
if (searchTerm && searchTerm !== '') {
|
|
74
112
|
if (name.includes(searchTerm)) {
|
|
75
113
|
return (
|
|
76
114
|
<BlazeLink href={url} onClick={e => handleClick(e, url)}>
|
|
77
|
-
|
|
115
|
+
<div className="mt-2 mb-1">
|
|
116
|
+
<div className="flex justify-start items-center">
|
|
117
|
+
{image.url ? <img src={image.url} alt={name} className="w-20 h-14" /> : null}
|
|
118
|
+
<span className="ml-2">{name}</span>
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
78
121
|
</BlazeLink>
|
|
79
122
|
);
|
|
80
123
|
}
|
|
81
124
|
|
|
82
125
|
return null;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return [];
|
|
87
|
-
};
|
|
126
|
+
}
|
|
127
|
+
});
|
|
88
128
|
|
|
89
129
|
const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';
|
|
90
130
|
|
|
@@ -164,7 +204,7 @@ SearchContent.propTypes = {
|
|
|
164
204
|
placeholder: PropTypes.string,
|
|
165
205
|
isMobile: PropTypes.bool,
|
|
166
206
|
collapsible: PropTypes.bool,
|
|
167
|
-
|
|
207
|
+
entities: PropTypes.array.isRequired
|
|
168
208
|
};
|
|
169
209
|
|
|
170
210
|
SearchContent.defaultProps = {
|
|
@@ -22,23 +22,24 @@ const buildPropsQuery = (data, extraProps = [], cardOptions = null) => {
|
|
|
22
22
|
const basicProps = uniqueProps
|
|
23
23
|
.filter(prop => prop && !prop.includes('.'))
|
|
24
24
|
.filter((prop, i, arr) => arr.indexOf(prop) === i);
|
|
25
|
-
const complexProps = buildComplexProps(shouldAddCategoryProps, uniqueProps);
|
|
26
|
-
|
|
25
|
+
const complexProps = buildComplexProps(shouldAddCategoryProps, uniqueProps, data);
|
|
27
26
|
return [...basicProps, ...complexProps].join(',');
|
|
28
27
|
};
|
|
29
28
|
|
|
30
|
-
const buildComplexProps = (shouldAddCategoryProps, props) =>
|
|
29
|
+
const buildComplexProps = (shouldAddCategoryProps, props, { getEntitySchema: { relations } }) =>
|
|
31
30
|
props
|
|
32
31
|
.filter(prop => prop && prop.includes('.'))
|
|
33
32
|
.map(nested => nested.split('.')[0])
|
|
34
33
|
.filter((prop, i, arr) => arr.indexOf(prop) === i)
|
|
35
34
|
.map(base => {
|
|
35
|
+
const matchingRelation = relations.find(({ localField }) => localField === base);
|
|
36
36
|
const nestedProps = props
|
|
37
37
|
.filter(
|
|
38
38
|
(extraProp, i, arr) =>
|
|
39
39
|
extraProp && extraProp.startsWith(`${base}.`) && arr.indexOf(extraProp) === i
|
|
40
40
|
)
|
|
41
41
|
.map(nested => nested.split('.')[1]);
|
|
42
|
+
if (matchingRelation && !nestedProps.includes('id')) nestedProps.push('id');
|
|
42
43
|
|
|
43
44
|
const jointNestedProps = nestedProps.join(',');
|
|
44
45
|
if (base === 'category' && shouldAddCategoryProps)
|
|
@@ -70,6 +71,8 @@ const getTypeBaseProps = (data, cardOptions, extraPropsHaveCategory) => {
|
|
|
70
71
|
typeBasedProps.push(...getCategoyProps(shouldAddCategoryProps, hasCategory, hasPreheader));
|
|
71
72
|
typeBasedProps.push(...getContentProps(isContent));
|
|
72
73
|
|
|
74
|
+
if (properties.url || dynamicProperties.url) typeBasedProps.push('url');
|
|
75
|
+
|
|
73
76
|
if (displayThumbnail && relations.find(({ localField }) => localField === 'image')) {
|
|
74
77
|
typeBasedProps.push('image.id', 'image.url', 'image.data');
|
|
75
78
|
}
|
|
@@ -33,6 +33,7 @@ describe('get card render props', () => {
|
|
|
33
33
|
dynamicProperties: {}
|
|
34
34
|
}
|
|
35
35
|
};
|
|
36
|
+
|
|
36
37
|
const cardProps = {};
|
|
37
38
|
|
|
38
39
|
it('should be a function', () => {
|
|
@@ -159,4 +160,46 @@ describe('get card render props', () => {
|
|
|
159
160
|
'id,name,url,sponsored,featured,category{name,listingPageId,listingPageEntity, id publishedListingPage{id, url}}'
|
|
160
161
|
);
|
|
161
162
|
});
|
|
163
|
+
|
|
164
|
+
it('should include url if property has url', () => {
|
|
165
|
+
testUrlProperty({ extraProperties: { url: 'url' }, cardProps });
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
it('should include url if dynamic property has url', () => {
|
|
169
|
+
testUrlProperty({ dynamicProperties: { url: 'url' }, cardProps });
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
it('should add id prop to nested relations', () => {
|
|
173
|
+
const _data = {
|
|
174
|
+
getEntitySchema: {
|
|
175
|
+
interfaces: [CONTENT_INTERFACE],
|
|
176
|
+
properties: {
|
|
177
|
+
id: 'id',
|
|
178
|
+
categoryId: 'catId'
|
|
179
|
+
},
|
|
180
|
+
relations: [{ localField: 'address' }],
|
|
181
|
+
dynamicProperties: {}
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
const query = buildPropsQuery(_data, ['address.country'], cardProps);
|
|
185
|
+
expect(query).toEqual(
|
|
186
|
+
'id,name,url,sponsored,featured,category{name,listingPageId,listingPageEntity, id publishedListingPage{id, url}},address{country,id}'
|
|
187
|
+
);
|
|
188
|
+
});
|
|
162
189
|
});
|
|
190
|
+
|
|
191
|
+
function testUrlProperty({ extraProperties = {}, dynamicProperties = {}, cardProps }) {
|
|
192
|
+
const dataWithUrlProperty = {
|
|
193
|
+
getEntitySchema: {
|
|
194
|
+
interfaces: [],
|
|
195
|
+
properties: {
|
|
196
|
+
id: 'id',
|
|
197
|
+
...extraProperties
|
|
198
|
+
},
|
|
199
|
+
relations: [],
|
|
200
|
+
dynamicProperties
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
const query = buildPropsQuery(dataWithUrlProperty, [], cardProps);
|
|
204
|
+
expect(query).toEqual('id,name,url');
|
|
205
|
+
}
|