@blaze-cms/react-page-builder 0.141.0-core-styles.10 → 0.141.0-core-styles.20

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.
Files changed (58) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/lib/components/List/ListRender.js +3 -1
  3. package/lib/components/List/ListRender.js.map +1 -1
  4. package/lib/components/List/helpers/build-query-booster.js +57 -0
  5. package/lib/components/List/helpers/build-query-booster.js.map +1 -0
  6. package/lib/components/List/helpers/index.js +7 -0
  7. package/lib/components/List/helpers/index.js.map +1 -1
  8. package/lib/variants/ThumbnailCarousel/ThumbnailCarousel.js +65 -0
  9. package/lib/variants/ThumbnailCarousel/ThumbnailCarousel.js.map +1 -0
  10. package/lib/variants/ThumbnailCarousel/ThumbnailImage/ThumbnailImage.js +41 -0
  11. package/lib/variants/ThumbnailCarousel/ThumbnailImage/ThumbnailImage.js.map +1 -0
  12. package/lib/variants/ThumbnailCarousel/ThumbnailImage/index.js +11 -0
  13. package/lib/variants/ThumbnailCarousel/ThumbnailImage/index.js.map +1 -0
  14. package/lib/variants/ThumbnailCarousel/ThumbnailImage/useThumbnailImage.js +82 -0
  15. package/lib/variants/ThumbnailCarousel/ThumbnailImage/useThumbnailImage.js.map +1 -0
  16. package/lib/variants/ThumbnailCarousel/index.js +29 -0
  17. package/lib/variants/ThumbnailCarousel/index.js.map +1 -0
  18. package/lib/variants/ThumbnailCarousel/useThumbnailCarousel.js +62 -0
  19. package/lib/variants/ThumbnailCarousel/useThumbnailCarousel.js.map +1 -0
  20. package/lib/variants/index.js +5 -1
  21. package/lib/variants/index.js.map +1 -1
  22. package/lib-es/components/List/ListRender.js +3 -1
  23. package/lib-es/components/List/ListRender.js.map +1 -1
  24. package/lib-es/components/List/helpers/build-query-booster.js +41 -0
  25. package/lib-es/components/List/helpers/build-query-booster.js.map +1 -0
  26. package/lib-es/components/List/helpers/index.js +1 -0
  27. package/lib-es/components/List/helpers/index.js.map +1 -1
  28. package/lib-es/variants/ThumbnailCarousel/ThumbnailCarousel.js +51 -0
  29. package/lib-es/variants/ThumbnailCarousel/ThumbnailCarousel.js.map +1 -0
  30. package/lib-es/variants/ThumbnailCarousel/ThumbnailImage/ThumbnailImage.js +34 -0
  31. package/lib-es/variants/ThumbnailCarousel/ThumbnailImage/ThumbnailImage.js.map +1 -0
  32. package/lib-es/variants/ThumbnailCarousel/ThumbnailImage/index.js +3 -0
  33. package/lib-es/variants/ThumbnailCarousel/ThumbnailImage/index.js.map +1 -0
  34. package/lib-es/variants/ThumbnailCarousel/ThumbnailImage/useThumbnailImage.js +75 -0
  35. package/lib-es/variants/ThumbnailCarousel/ThumbnailImage/useThumbnailImage.js.map +1 -0
  36. package/lib-es/variants/ThumbnailCarousel/index.js +10 -0
  37. package/lib-es/variants/ThumbnailCarousel/index.js.map +1 -0
  38. package/lib-es/variants/ThumbnailCarousel/useThumbnailCarousel.js +42 -0
  39. package/lib-es/variants/ThumbnailCarousel/useThumbnailCarousel.js.map +1 -0
  40. package/lib-es/variants/index.js +4 -1
  41. package/lib-es/variants/index.js.map +1 -1
  42. package/package.json +3 -3
  43. package/src/components/List/ListRender.js +3 -1
  44. package/src/components/List/helpers/build-query-booster.js +35 -0
  45. package/src/components/List/helpers/index.js +1 -0
  46. package/src/variants/ThumbnailCarousel/ThumbnailCarousel.js +55 -0
  47. package/src/variants/ThumbnailCarousel/ThumbnailImage/ThumbnailImage.js +40 -0
  48. package/src/variants/ThumbnailCarousel/ThumbnailImage/index.js +3 -0
  49. package/src/variants/ThumbnailCarousel/ThumbnailImage/useThumbnailImage.js +75 -0
  50. package/src/variants/ThumbnailCarousel/index.js +10 -0
  51. package/src/variants/ThumbnailCarousel/useThumbnailCarousel.js +37 -0
  52. package/src/variants/index.js +5 -1
  53. package/tests/unit/src/components/List/helpers/build-query-booster.test.js +33 -0
  54. package/tests/unit/src/variants/ThumbnailCarousel/ThumbnailCarousel.test.js +29 -0
  55. package/tests/unit/src/variants/ThumbnailCarousel/ThumbnailImage.test.js +45 -0
  56. package/tests/unit/src/variants/ThumbnailCarousel/__snapshots__/ThumbnailCarousel.test.js.snap +76 -0
  57. package/tests/unit/src/variants/ThumbnailCarousel/__snapshots__/ThumbnailImage.test.js.snap +19 -0
  58. package/tests/unit/src/variants/ThumbnailCarousel/mocks.js +64 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ListRender.js","names":["React","useQuery","PropTypes","ListPagination","ListHeader","sortResponseData","LOAD_MORE","useAppSyncEventHook","ListRender","props","variables","actionKey","action","name","itemsToDisplay","itemsPerPageToUse","limitToUse","initialOffset","isInfinite","omitWrappers","paginationType","listComponent","ListComponent","query","url","listAggregations","isAZ","azFilter","displayTotal","data","updatedVariables","eventName","error","loading","fetchMore","message","results","listData","listTotal","total","orderedListData","length","currentListLength","currentPage","Math","ceil","totalDisplay","createElement","Fragment","className","_extends","itemsPerPage","propTypes","string","isRequired","object","number","bool","func","array","defaultProps"],"sources":["../../../src/components/List/ListRender.js"],"sourcesContent":["import React from 'react';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport ListPagination from './components/Pagination';\nimport ListHeader from './components/Header';\nimport { sortResponseData } from '../../helpers';\nimport { LOAD_MORE } from '../../constants';\nimport { useAppSyncEventHook } from '../../hooks';\n\nconst ListRender = props => {\n const {\n variables,\n actionKey,\n action,\n name,\n itemsToDisplay,\n itemsPerPageToUse,\n limitToUse,\n initialOffset,\n isInfinite,\n omitWrappers,\n paginationType,\n listComponent: ListComponent,\n query,\n url,\n listAggregations,\n isAZ,\n azFilter,\n displayTotal\n } = props;\n const { data: updatedVariables } = useAppSyncEventHook({\n eventName: 'list:query-variables',\n data: variables,\n props\n });\n\n const { data = {}, error, loading, fetchMore } = useQuery(action, {\n variables: updatedVariables\n });\n\n if (loading) return '';\n if (error) return error.message;\n if (!data[actionKey] || !data[actionKey].results) return null;\n\n const listData = data[actionKey].results;\n const listTotal = data[actionKey].total;\n const orderedListData = sortResponseData(listData, itemsToDisplay);\n if (!orderedListData || !orderedListData.length) return null;\n const { length: currentListLength } = orderedListData;\n const currentPage = Math.ceil((initialOffset + currentListLength) / itemsPerPageToUse);\n const totalDisplay = limitToUse && listTotal > limitToUse ? limitToUse : listTotal;\n\n return (\n <>\n <span className=\"list-top\" />\n {isAZ && <ListHeader name={name} listAggregations={listAggregations} azFilter={azFilter} />}\n {displayTotal && (\n <div className=\"list_total_results w-full text-left p-4\">Total results: {totalDisplay}</div>\n )}\n <ListComponent\n orderedListData={orderedListData}\n isInfinite={isInfinite}\n initialOffset={initialOffset}\n actionKey={actionKey}\n limitToUse={limitToUse}\n fetchMore={fetchMore}\n omitWrappers={omitWrappers}\n itemsPerPageToUse={itemsPerPageToUse || listData.length}\n listTotal={listTotal}\n currentListLength={currentListLength}\n currentPage={currentPage}\n query={query}\n url={url}\n itemsToDisplay={itemsToDisplay}\n {...props}\n />\n {paginationType !== LOAD_MORE && (\n <ListPagination\n limitToUse={limitToUse}\n itemsPerPage={itemsPerPageToUse}\n listTotal={listTotal}\n name={name}\n isInfinite={isInfinite}\n currentListLength={currentListLength}\n paginationType={paginationType}\n currentPage={currentPage}\n query={query}\n url={url}\n />\n )}\n </>\n );\n};\n\nListRender.propTypes = {\n name: PropTypes.string.isRequired,\n paginationType: PropTypes.string.isRequired,\n variables: PropTypes.object.isRequired,\n actionKey: PropTypes.string.isRequired,\n action: PropTypes.object.isRequired,\n itemsPerPageToUse: PropTypes.number.isRequired,\n limitToUse: PropTypes.number.isRequired,\n initialOffset: PropTypes.number.isRequired,\n isInfinite: PropTypes.bool.isRequired,\n omitWrappers: PropTypes.bool,\n query: PropTypes.object.isRequired,\n url: PropTypes.string.isRequired,\n listComponent: PropTypes.func.isRequired,\n isAZ: PropTypes.bool.isRequired,\n azFilter: PropTypes.string.isRequired,\n listAggregations: PropTypes.array,\n itemsToDisplay: PropTypes.array,\n displayTotal: PropTypes.bool\n};\n\nListRender.defaultProps = {\n omitWrappers: false,\n itemsToDisplay: [],\n listAggregations: [],\n displayTotal: false\n};\n\nexport default ListRender;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,cAAc,MAAM,yBAAyB;AACpD,OAAOC,UAAU,MAAM,qBAAqB;AAC5C,SAASC,gBAAgB,QAAQ,eAAe;AAChD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,mBAAmB,QAAQ,aAAa;AAEjD,MAAMC,UAAU,GAAGC,KAAK,IAAI;EAC1B,MAAM;IACJC,SAAS;IACTC,SAAS;IACTC,MAAM;IACNC,IAAI;IACJC,cAAc;IACdC,iBAAiB;IACjBC,UAAU;IACVC,aAAa;IACbC,UAAU;IACVC,YAAY;IACZC,cAAc;IACdC,aAAa,EAAEC,aAAa;IAC5BC,KAAK;IACLC,GAAG;IACHC,gBAAgB;IAChBC,IAAI;IACJC,QAAQ;IACRC;EACF,CAAC,GAAGnB,KAAK;EACT,MAAM;IAAEoB,IAAI,EAAEC;EAAiB,CAAC,GAAGvB,mBAAmB,CAAC;IACrDwB,SAAS,EAAE,sBAAsB;IACjCF,IAAI,EAAEnB,SAAS;IACfD;EACF,CAAC,CAAC;EAEF,MAAM;IAAEoB,IAAI,GAAG,CAAC,CAAC;IAAEG,KAAK;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAGjC,QAAQ,CAACW,MAAM,EAAE;IAChEF,SAAS,EAAEoB;EACb,CAAC,CAAC;EAEF,IAAIG,OAAO,EAAE,OAAO,EAAE;EACtB,IAAID,KAAK,EAAE,OAAOA,KAAK,CAACG,OAAO;EAC/B,IAAI,CAACN,IAAI,CAAClB,SAAS,CAAC,IAAI,CAACkB,IAAI,CAAClB,SAAS,CAAC,CAACyB,OAAO,EAAE,OAAO,IAAI;EAE7D,MAAMC,QAAQ,GAAGR,IAAI,CAAClB,SAAS,CAAC,CAACyB,OAAO;EACxC,MAAME,SAAS,GAAGT,IAAI,CAAClB,SAAS,CAAC,CAAC4B,KAAK;EACvC,MAAMC,eAAe,GAAGnC,gBAAgB,CAACgC,QAAQ,EAAEvB,cAAc,CAAC;EAClE,IAAI,CAAC0B,eAAe,IAAI,CAACA,eAAe,CAACC,MAAM,EAAE,OAAO,IAAI;EAC5D,MAAM;IAAEA,MAAM,EAAEC;EAAkB,CAAC,GAAGF,eAAe;EACrD,MAAMG,WAAW,GAAGC,IAAI,CAACC,IAAI,CAAC,CAAC5B,aAAa,GAAGyB,iBAAiB,IAAI3B,iBAAiB,CAAC;EACtF,MAAM+B,YAAY,GAAG9B,UAAU,IAAIsB,SAAS,GAAGtB,UAAU,GAAGA,UAAU,GAAGsB,SAAS;EAElF,oBACEtC,KAAA,CAAA+C,aAAA,CAAA/C,KAAA,CAAAgD,QAAA,qBACEhD,KAAA,CAAA+C,aAAA;IAAME,SAAS,EAAC;EAAU,CAAE,CAAC,EAC5BvB,IAAI,iBAAI1B,KAAA,CAAA+C,aAAA,CAAC3C,UAAU;IAACS,IAAI,EAAEA,IAAK;IAACY,gBAAgB,EAAEA,gBAAiB;IAACE,QAAQ,EAAEA;EAAS,CAAE,CAAC,EAC1FC,YAAY,iBACX5B,KAAA,CAAA+C,aAAA;IAAKE,SAAS,EAAC;EAAyC,GAAC,iBAAe,EAACH,YAAkB,CAC5F,eACD9C,KAAA,CAAA+C,aAAA,CAACzB,aAAa,EAAA4B,QAAA;IACZV,eAAe,EAAEA,eAAgB;IACjCtB,UAAU,EAAEA,UAAW;IACvBD,aAAa,EAAEA,aAAc;IAC7BN,SAAS,EAAEA,SAAU;IACrBK,UAAU,EAAEA,UAAW;IACvBkB,SAAS,EAAEA,SAAU;IACrBf,YAAY,EAAEA,YAAa;IAC3BJ,iBAAiB,EAAEA,iBAAiB,IAAIsB,QAAQ,CAACI,MAAO;IACxDH,SAAS,EAAEA,SAAU;IACrBI,iBAAiB,EAAEA,iBAAkB;IACrCC,WAAW,EAAEA,WAAY;IACzBpB,KAAK,EAAEA,KAAM;IACbC,GAAG,EAAEA,GAAI;IACTV,cAAc,EAAEA;EAAe,GAC3BL,KAAK,CACV,CAAC,EACDW,cAAc,KAAKd,SAAS,iBAC3BN,KAAA,CAAA+C,aAAA,CAAC5C,cAAc;IACba,UAAU,EAAEA,UAAW;IACvBmC,YAAY,EAAEpC,iBAAkB;IAChCuB,SAAS,EAAEA,SAAU;IACrBzB,IAAI,EAAEA,IAAK;IACXK,UAAU,EAAEA,UAAW;IACvBwB,iBAAiB,EAAEA,iBAAkB;IACrCtB,cAAc,EAAEA,cAAe;IAC/BuB,WAAW,EAAEA,WAAY;IACzBpB,KAAK,EAAEA,KAAM;IACbC,GAAG,EAAEA;EAAI,CACV,CAEH,CAAC;AAEP,CAAC;AAEDhB,UAAU,CAAC4C,SAAS,GAAG;EACrBvC,IAAI,EAAEX,SAAS,CAACmD,MAAM,CAACC,UAAU;EACjClC,cAAc,EAAElB,SAAS,CAACmD,MAAM,CAACC,UAAU;EAC3C5C,SAAS,EAAER,SAAS,CAACqD,MAAM,CAACD,UAAU;EACtC3C,SAAS,EAAET,SAAS,CAACmD,MAAM,CAACC,UAAU;EACtC1C,MAAM,EAAEV,SAAS,CAACqD,MAAM,CAACD,UAAU;EACnCvC,iBAAiB,EAAEb,SAAS,CAACsD,MAAM,CAACF,UAAU;EAC9CtC,UAAU,EAAEd,SAAS,CAACsD,MAAM,CAACF,UAAU;EACvCrC,aAAa,EAAEf,SAAS,CAACsD,MAAM,CAACF,UAAU;EAC1CpC,UAAU,EAAEhB,SAAS,CAACuD,IAAI,CAACH,UAAU;EACrCnC,YAAY,EAAEjB,SAAS,CAACuD,IAAI;EAC5BlC,KAAK,EAAErB,SAAS,CAACqD,MAAM,CAACD,UAAU;EAClC9B,GAAG,EAAEtB,SAAS,CAACmD,MAAM,CAACC,UAAU;EAChCjC,aAAa,EAAEnB,SAAS,CAACwD,IAAI,CAACJ,UAAU;EACxC5B,IAAI,EAAExB,SAAS,CAACuD,IAAI,CAACH,UAAU;EAC/B3B,QAAQ,EAAEzB,SAAS,CAACmD,MAAM,CAACC,UAAU;EACrC7B,gBAAgB,EAAEvB,SAAS,CAACyD,KAAK;EACjC7C,cAAc,EAAEZ,SAAS,CAACyD,KAAK;EAC/B/B,YAAY,EAAE1B,SAAS,CAACuD;AAC1B,CAAC;AAEDjD,UAAU,CAACoD,YAAY,GAAG;EACxBzC,YAAY,EAAE,KAAK;EACnBL,cAAc,EAAE,EAAE;EAClBW,gBAAgB,EAAE,EAAE;EACpBG,YAAY,EAAE;AAChB,CAAC;AAED,eAAepB,UAAU"}
1
+ {"version":3,"file":"ListRender.js","names":["React","useQuery","PropTypes","ListPagination","ListHeader","sortResponseData","LOAD_MORE","useAppSyncEventHook","buildQueryBooster","ListRender","props","variables","actionKey","action","name","itemsToDisplay","itemsPerPageToUse","limitToUse","initialOffset","isInfinite","omitWrappers","paginationType","listComponent","ListComponent","query","url","listAggregations","isAZ","azFilter","displayTotal","data","updatedVariables","eventName","boostedVariables","error","loading","fetchMore","message","results","listData","listTotal","total","orderedListData","length","currentListLength","currentPage","Math","ceil","totalDisplay","createElement","Fragment","className","_extends","itemsPerPage","propTypes","string","isRequired","object","number","bool","func","array","defaultProps"],"sources":["../../../src/components/List/ListRender.js"],"sourcesContent":["import React from 'react';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\nimport ListPagination from './components/Pagination';\nimport ListHeader from './components/Header';\nimport { sortResponseData } from '../../helpers';\nimport { LOAD_MORE } from '../../constants';\nimport { useAppSyncEventHook } from '../../hooks';\nimport { buildQueryBooster } from './helpers';\n\nconst ListRender = props => {\n const {\n variables,\n actionKey,\n action,\n name,\n itemsToDisplay,\n itemsPerPageToUse,\n limitToUse,\n initialOffset,\n isInfinite,\n omitWrappers,\n paginationType,\n listComponent: ListComponent,\n query,\n url,\n listAggregations,\n isAZ,\n azFilter,\n displayTotal\n } = props;\n const { data: updatedVariables } = useAppSyncEventHook({\n eventName: 'list:query-variables',\n data: variables,\n props\n });\n const boostedVariables = buildQueryBooster(props, updatedVariables);\n\n const { data = {}, error, loading, fetchMore } = useQuery(action, {\n variables: boostedVariables\n });\n\n if (loading) return '';\n if (error) return error.message;\n if (!data[actionKey] || !data[actionKey].results) return null;\n\n const listData = data[actionKey].results;\n const listTotal = data[actionKey].total;\n const orderedListData = sortResponseData(listData, itemsToDisplay);\n if (!orderedListData || !orderedListData.length) return null;\n const { length: currentListLength } = orderedListData;\n const currentPage = Math.ceil((initialOffset + currentListLength) / itemsPerPageToUse);\n const totalDisplay = limitToUse && listTotal > limitToUse ? limitToUse : listTotal;\n\n return (\n <>\n <span className=\"list-top\" />\n {isAZ && <ListHeader name={name} listAggregations={listAggregations} azFilter={azFilter} />}\n {displayTotal && (\n <div className=\"list_total_results w-full text-left p-4\">Total results: {totalDisplay}</div>\n )}\n <ListComponent\n orderedListData={orderedListData}\n isInfinite={isInfinite}\n initialOffset={initialOffset}\n actionKey={actionKey}\n limitToUse={limitToUse}\n fetchMore={fetchMore}\n omitWrappers={omitWrappers}\n itemsPerPageToUse={itemsPerPageToUse || listData.length}\n listTotal={listTotal}\n currentListLength={currentListLength}\n currentPage={currentPage}\n query={query}\n url={url}\n itemsToDisplay={itemsToDisplay}\n {...props}\n />\n {paginationType !== LOAD_MORE && (\n <ListPagination\n limitToUse={limitToUse}\n itemsPerPage={itemsPerPageToUse}\n listTotal={listTotal}\n name={name}\n isInfinite={isInfinite}\n currentListLength={currentListLength}\n paginationType={paginationType}\n currentPage={currentPage}\n query={query}\n url={url}\n />\n )}\n </>\n );\n};\n\nListRender.propTypes = {\n name: PropTypes.string.isRequired,\n paginationType: PropTypes.string.isRequired,\n variables: PropTypes.object.isRequired,\n actionKey: PropTypes.string.isRequired,\n action: PropTypes.object.isRequired,\n itemsPerPageToUse: PropTypes.number.isRequired,\n limitToUse: PropTypes.number.isRequired,\n initialOffset: PropTypes.number.isRequired,\n isInfinite: PropTypes.bool.isRequired,\n omitWrappers: PropTypes.bool,\n query: PropTypes.object.isRequired,\n url: PropTypes.string.isRequired,\n listComponent: PropTypes.func.isRequired,\n isAZ: PropTypes.bool.isRequired,\n azFilter: PropTypes.string.isRequired,\n listAggregations: PropTypes.array,\n itemsToDisplay: PropTypes.array,\n displayTotal: PropTypes.bool\n};\n\nListRender.defaultProps = {\n omitWrappers: false,\n itemsToDisplay: [],\n listAggregations: [],\n displayTotal: false\n};\n\nexport default ListRender;\n"],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ const buildQueryBooster = (props, data) => {
5
+ const {
6
+ recencyBoostProperty
7
+ } = props;
8
+ if (!recencyBoostProperty || !recencyBoostProperty.length) return data;
9
+ const {
10
+ rawQueryStringified = ''
11
+ } = data;
12
+ const parsedRawQuery = JSON.parse(rawQueryStringified);
13
+ const {
14
+ function_score: {
15
+ query,
16
+ functions = []
17
+ } = {}
18
+ } = parsedRawQuery;
19
+ const boostedPropsFunctios = recencyBoostProperty.map(propToBoost => ({
20
+ gauss: {
21
+ [propToBoost]: {
22
+ origin: 'now',
23
+ scale: '30d',
24
+ offset: '7d',
25
+ decay: 0.5
26
+ }
27
+ }
28
+ }));
29
+ const updatedData = {
30
+ function_score: {
31
+ query: functions.length ? query : parsedRawQuery,
32
+ functions: [...functions, ...boostedPropsFunctios],
33
+ boost_mode: 'multiply'
34
+ }
35
+ };
36
+ return _objectSpread(_objectSpread({}, data), {}, {
37
+ rawQueryStringified: JSON.stringify(updatedData)
38
+ });
39
+ };
40
+ export default buildQueryBooster;
41
+ //# sourceMappingURL=build-query-booster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-query-booster.js","names":["buildQueryBooster","props","data","recencyBoostProperty","length","rawQueryStringified","parsedRawQuery","JSON","parse","function_score","query","functions","boostedPropsFunctios","map","propToBoost","gauss","origin","scale","offset","decay","updatedData","boost_mode","_objectSpread","stringify"],"sources":["../../../../src/components/List/helpers/build-query-booster.js"],"sourcesContent":["const buildQueryBooster = (props, data) => {\n const { recencyBoostProperty } = props;\n\n if (!recencyBoostProperty || !recencyBoostProperty.length) return data;\n const { rawQueryStringified = '' } = data;\n\n const parsedRawQuery = JSON.parse(rawQueryStringified);\n const { function_score: { query, functions = [] } = {} } = parsedRawQuery;\n\n const boostedPropsFunctios = recencyBoostProperty.map(propToBoost => ({\n gauss: {\n [propToBoost]: {\n origin: 'now',\n scale: '30d',\n offset: '7d',\n decay: 0.5\n }\n }\n }));\n\n const updatedData = {\n function_score: {\n query: functions.length ? query : parsedRawQuery,\n functions: [...functions, ...boostedPropsFunctios],\n boost_mode: 'multiply'\n }\n };\n\n return {\n ...data,\n rawQueryStringified: JSON.stringify(updatedData)\n };\n};\n\nexport default buildQueryBooster;\n"],"mappings":";;;AAAA,MAAMA,iBAAiB,GAAGA,CAACC,KAAK,EAAEC,IAAI,KAAK;EACzC,MAAM;IAAEC;EAAqB,CAAC,GAAGF,KAAK;EAEtC,IAAI,CAACE,oBAAoB,IAAI,CAACA,oBAAoB,CAACC,MAAM,EAAE,OAAOF,IAAI;EACtE,MAAM;IAAEG,mBAAmB,GAAG;EAAG,CAAC,GAAGH,IAAI;EAEzC,MAAMI,cAAc,GAAGC,IAAI,CAACC,KAAK,CAACH,mBAAmB,CAAC;EACtD,MAAM;IAAEI,cAAc,EAAE;MAAEC,KAAK;MAAEC,SAAS,GAAG;IAAG,CAAC,GAAG,CAAC;EAAE,CAAC,GAAGL,cAAc;EAEzE,MAAMM,oBAAoB,GAAGT,oBAAoB,CAACU,GAAG,CAACC,WAAW,KAAK;IACpEC,KAAK,EAAE;MACL,CAACD,WAAW,GAAG;QACbE,MAAM,EAAE,KAAK;QACbC,KAAK,EAAE,KAAK;QACZC,MAAM,EAAE,IAAI;QACZC,KAAK,EAAE;MACT;IACF;EACF,CAAC,CAAC,CAAC;EAEH,MAAMC,WAAW,GAAG;IAClBX,cAAc,EAAE;MACdC,KAAK,EAAEC,SAAS,CAACP,MAAM,GAAGM,KAAK,GAAGJ,cAAc;MAChDK,SAAS,EAAE,CAAC,GAAGA,SAAS,EAAE,GAAGC,oBAAoB,CAAC;MAClDS,UAAU,EAAE;IACd;EACF,CAAC;EAED,OAAAC,aAAA,CAAAA,aAAA,KACKpB,IAAI;IACPG,mBAAmB,EAAEE,IAAI,CAACgB,SAAS,CAACH,WAAW;EAAC;AAEpD,CAAC;AAED,eAAepB,iBAAiB"}
@@ -9,4 +9,5 @@ export { default as hasRequiredItemListDetails } from './has-required-item-list-
9
9
  export { default as getListComponent } from './get-list-component';
10
10
  export { default as getListQuery } from './get-list-query';
11
11
  export { default as getListSpecificSearchFilter } from './get-list-specific-search-filter';
12
+ export { default as buildQueryBooster } from './build-query-booster';
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","buildPaginationItems","getAzQueryFilter","buildAzAggregations","buildAzUrl","sortAggs","getItemsPerPageToUse","getSortProps","hasRequiredItemListDetails","getListComponent","getListQuery","getListSpecificSearchFilter"],"sources":["../../../../src/components/List/helpers/index.js"],"sourcesContent":["export { default as buildPaginationItems } from './build-pagination-items';\nexport { default as getAzQueryFilter } from './get-az-query-filter';\nexport { default as buildAzAggregations } from './build-az-aggregations';\nexport { default as buildAzUrl } from './build-az-url';\nexport { default as sortAggs } from './sort-aggs';\nexport { default as getItemsPerPageToUse } from './get-items-per-page-to-use';\nexport { default as getSortProps } from './get-sort-props';\nexport { default as hasRequiredItemListDetails } from './has-required-item-list-details';\nexport { default as getListComponent } from './get-list-component';\nexport { default as getListQuery } from './get-list-query';\nexport { default as getListSpecificSearchFilter } from './get-list-specific-search-filter';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,oBAAoB,QAAQ,0BAA0B;AAC1E,SAASD,OAAO,IAAIE,gBAAgB,QAAQ,uBAAuB;AACnE,SAASF,OAAO,IAAIG,mBAAmB,QAAQ,yBAAyB;AACxE,SAASH,OAAO,IAAII,UAAU,QAAQ,gBAAgB;AACtD,SAASJ,OAAO,IAAIK,QAAQ,QAAQ,aAAa;AACjD,SAASL,OAAO,IAAIM,oBAAoB,QAAQ,6BAA6B;AAC7E,SAASN,OAAO,IAAIO,YAAY,QAAQ,kBAAkB;AAC1D,SAASP,OAAO,IAAIQ,0BAA0B,QAAQ,kCAAkC;AACxF,SAASR,OAAO,IAAIS,gBAAgB,QAAQ,sBAAsB;AAClE,SAAST,OAAO,IAAIU,YAAY,QAAQ,kBAAkB;AAC1D,SAASV,OAAO,IAAIW,2BAA2B,QAAQ,mCAAmC"}
1
+ {"version":3,"file":"index.js","names":["default","buildPaginationItems","getAzQueryFilter","buildAzAggregations","buildAzUrl","sortAggs","getItemsPerPageToUse","getSortProps","hasRequiredItemListDetails","getListComponent","getListQuery","getListSpecificSearchFilter","buildQueryBooster"],"sources":["../../../../src/components/List/helpers/index.js"],"sourcesContent":["export { default as buildPaginationItems } from './build-pagination-items';\nexport { default as getAzQueryFilter } from './get-az-query-filter';\nexport { default as buildAzAggregations } from './build-az-aggregations';\nexport { default as buildAzUrl } from './build-az-url';\nexport { default as sortAggs } from './sort-aggs';\nexport { default as getItemsPerPageToUse } from './get-items-per-page-to-use';\nexport { default as getSortProps } from './get-sort-props';\nexport { default as hasRequiredItemListDetails } from './has-required-item-list-details';\nexport { default as getListComponent } from './get-list-component';\nexport { default as getListQuery } from './get-list-query';\nexport { default as getListSpecificSearchFilter } from './get-list-specific-search-filter';\nexport { default as buildQueryBooster } from './build-query-booster';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,oBAAoB,QAAQ,0BAA0B;AAC1E,SAASD,OAAO,IAAIE,gBAAgB,QAAQ,uBAAuB;AACnE,SAASF,OAAO,IAAIG,mBAAmB,QAAQ,yBAAyB;AACxE,SAASH,OAAO,IAAII,UAAU,QAAQ,gBAAgB;AACtD,SAASJ,OAAO,IAAIK,QAAQ,QAAQ,aAAa;AACjD,SAASL,OAAO,IAAIM,oBAAoB,QAAQ,6BAA6B;AAC7E,SAASN,OAAO,IAAIO,YAAY,QAAQ,kBAAkB;AAC1D,SAASP,OAAO,IAAIQ,0BAA0B,QAAQ,kCAAkC;AACxF,SAASR,OAAO,IAAIS,gBAAgB,QAAQ,sBAAsB;AAClE,SAAST,OAAO,IAAIU,YAAY,QAAQ,kBAAkB;AAC1D,SAASV,OAAO,IAAIW,2BAA2B,QAAQ,mCAAmC;AAC1F,SAASX,OAAO,IAAIY,iBAAiB,QAAQ,uBAAuB"}
@@ -0,0 +1,51 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import useThumbnailCarousel from './useThumbnailCarousel';
4
+ import ThumbnailImage from './ThumbnailImage';
5
+ const ThumbnailCarousel = props => {
6
+ const {
7
+ thumbnailsListRef,
8
+ imageIds,
9
+ selectedImageId,
10
+ priorityLimit,
11
+ mainImageButtonClick,
12
+ thumbnailImageClick
13
+ } = useThumbnailCarousel(props);
14
+ return /*#__PURE__*/React.createElement("div", {
15
+ className: "thumbnail-carousel",
16
+ "data-testid": "thumbnail-carousel"
17
+ }, /*#__PURE__*/React.createElement("div", {
18
+ className: "thumbnail-carousel__main_image_container"
19
+ }, /*#__PURE__*/React.createElement("div", {
20
+ id: "previous-button",
21
+ className: "thumbnail-carousel__main_image_container__button",
22
+ role: "button",
23
+ onClick: () => mainImageButtonClick()
24
+ }, /*#__PURE__*/React.createElement("div", {
25
+ className: "arrow arrow--left"
26
+ })), /*#__PURE__*/React.createElement("div", {
27
+ className: "thumbnail-carousel__main_image_container__main-image",
28
+ "data-testid": "thumbnail-main-image",
29
+ ref: thumbnailsListRef
30
+ }, /*#__PURE__*/React.createElement(ThumbnailImage, _extends({}, props, {
31
+ priority: true,
32
+ imageId: selectedImageId
33
+ }))), /*#__PURE__*/React.createElement("div", {
34
+ id: "next-button",
35
+ className: "thumbnail-carousel__main_image_container__button next",
36
+ role: "button",
37
+ onClick: () => mainImageButtonClick(true)
38
+ }, /*#__PURE__*/React.createElement("div", {
39
+ className: "arrow arrow--right"
40
+ }))), /*#__PURE__*/React.createElement("div", {
41
+ className: "thumbnail-carousel__list"
42
+ }, imageIds.map((imageId, index) => /*#__PURE__*/React.createElement(ThumbnailImage, _extends({}, props, {
43
+ key: imageId,
44
+ priority: index < priorityLimit,
45
+ imageId: imageId,
46
+ selectedImageId: selectedImageId,
47
+ handleOnClick: thumbnailImageClick
48
+ })))));
49
+ };
50
+ export default ThumbnailCarousel;
51
+ //# sourceMappingURL=ThumbnailCarousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbnailCarousel.js","names":["React","useThumbnailCarousel","ThumbnailImage","ThumbnailCarousel","props","thumbnailsListRef","imageIds","selectedImageId","priorityLimit","mainImageButtonClick","thumbnailImageClick","createElement","className","id","role","onClick","ref","_extends","priority","imageId","map","index","key","handleOnClick"],"sources":["../../../src/variants/ThumbnailCarousel/ThumbnailCarousel.js"],"sourcesContent":["import React from 'react';\nimport useThumbnailCarousel from './useThumbnailCarousel';\nimport ThumbnailImage from './ThumbnailImage';\n\nconst ThumbnailCarousel = props => {\n const {\n thumbnailsListRef,\n imageIds,\n selectedImageId,\n priorityLimit,\n mainImageButtonClick,\n thumbnailImageClick\n } = useThumbnailCarousel(props);\n\n return (\n <div className=\"thumbnail-carousel\" data-testid=\"thumbnail-carousel\">\n <div className=\"thumbnail-carousel__main_image_container\">\n <div\n id=\"previous-button\"\n className=\"thumbnail-carousel__main_image_container__button\"\n role=\"button\"\n onClick={() => mainImageButtonClick()}>\n <div className=\"arrow arrow--left\" />\n </div>\n <div\n className=\"thumbnail-carousel__main_image_container__main-image\"\n data-testid=\"thumbnail-main-image\"\n ref={thumbnailsListRef}>\n <ThumbnailImage {...props} priority imageId={selectedImageId} />\n </div>\n <div\n id=\"next-button\"\n className=\"thumbnail-carousel__main_image_container__button next\"\n role=\"button\"\n onClick={() => mainImageButtonClick(true)}>\n <div className=\"arrow arrow--right\" />\n </div>\n </div>\n <div className=\"thumbnail-carousel__list\">\n {imageIds.map((imageId, index) => (\n <ThumbnailImage\n {...props}\n key={imageId}\n priority={index < priorityLimit}\n imageId={imageId}\n selectedImageId={selectedImageId}\n handleOnClick={thumbnailImageClick}\n />\n ))}\n </div>\n </div>\n );\n};\n\nexport default ThumbnailCarousel;\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,oBAAoB,MAAM,wBAAwB;AACzD,OAAOC,cAAc,MAAM,kBAAkB;AAE7C,MAAMC,iBAAiB,GAAGC,KAAK,IAAI;EACjC,MAAM;IACJC,iBAAiB;IACjBC,QAAQ;IACRC,eAAe;IACfC,aAAa;IACbC,oBAAoB;IACpBC;EACF,CAAC,GAAGT,oBAAoB,CAACG,KAAK,CAAC;EAE/B,oBACEJ,KAAA,CAAAW,aAAA;IAAKC,SAAS,EAAC,oBAAoB;IAAC,eAAY;EAAoB,gBAClEZ,KAAA,CAAAW,aAAA;IAAKC,SAAS,EAAC;EAA0C,gBACvDZ,KAAA,CAAAW,aAAA;IACEE,EAAE,EAAC,iBAAiB;IACpBD,SAAS,EAAC,kDAAkD;IAC5DE,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAEA,CAAA,KAAMN,oBAAoB,CAAC;EAAE,gBACtCT,KAAA,CAAAW,aAAA;IAAKC,SAAS,EAAC;EAAmB,CAAE,CACjC,CAAC,eACNZ,KAAA,CAAAW,aAAA;IACEC,SAAS,EAAC,sDAAsD;IAChE,eAAY,sBAAsB;IAClCI,GAAG,EAAEX;EAAkB,gBACvBL,KAAA,CAAAW,aAAA,CAACT,cAAc,EAAAe,QAAA,KAAKb,KAAK;IAAEc,QAAQ;IAACC,OAAO,EAAEZ;EAAgB,EAAE,CAC5D,CAAC,eACNP,KAAA,CAAAW,aAAA;IACEE,EAAE,EAAC,aAAa;IAChBD,SAAS,EAAC,uDAAuD;IACjEE,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAEA,CAAA,KAAMN,oBAAoB,CAAC,IAAI;EAAE,gBAC1CT,KAAA,CAAAW,aAAA;IAAKC,SAAS,EAAC;EAAoB,CAAE,CAClC,CACF,CAAC,eACNZ,KAAA,CAAAW,aAAA;IAAKC,SAAS,EAAC;EAA0B,GACtCN,QAAQ,CAACc,GAAG,CAAC,CAACD,OAAO,EAAEE,KAAK,kBAC3BrB,KAAA,CAAAW,aAAA,CAACT,cAAc,EAAAe,QAAA,KACTb,KAAK;IACTkB,GAAG,EAAEH,OAAQ;IACbD,QAAQ,EAAEG,KAAK,GAAGb,aAAc;IAChCW,OAAO,EAAEA,OAAQ;IACjBZ,eAAe,EAAEA,eAAgB;IACjCgB,aAAa,EAAEb;EAAoB,EACpC,CACF,CACE,CACF,CAAC;AAEV,CAAC;AAED,eAAeP,iBAAiB"}
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import LazyImage from '../../../components/LazyImage';
3
+ import useThumbnailImage from './useThumbnailImage';
4
+ const ThumbnailImage = props => {
5
+ const {
6
+ loading,
7
+ error,
8
+ className,
9
+ imageRef,
10
+ imageUrl,
11
+ altText,
12
+ priority,
13
+ handleClick,
14
+ handleEnableLightbox
15
+ } = useThumbnailImage(props);
16
+ if (error) return error.message;
17
+ if (loading) return null;
18
+ return /*#__PURE__*/React.createElement("div", {
19
+ ref: imageRef,
20
+ className: className,
21
+ onClick: handleClick,
22
+ role: "button",
23
+ "data-testid": "thumbnail-image"
24
+ }, /*#__PURE__*/React.createElement(LazyImage, {
25
+ src: imageUrl,
26
+ alt: altText,
27
+ sizeKey: "carousel",
28
+ onClick: handleEnableLightbox,
29
+ role: "button",
30
+ priority: priority
31
+ }));
32
+ };
33
+ export default ThumbnailImage;
34
+ //# sourceMappingURL=ThumbnailImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThumbnailImage.js","names":["React","LazyImage","useThumbnailImage","ThumbnailImage","props","loading","error","className","imageRef","imageUrl","altText","priority","handleClick","handleEnableLightbox","message","createElement","ref","onClick","role","src","alt","sizeKey"],"sources":["../../../../src/variants/ThumbnailCarousel/ThumbnailImage/ThumbnailImage.js"],"sourcesContent":["import React from 'react';\nimport LazyImage from '../../../components/LazyImage';\nimport useThumbnailImage from './useThumbnailImage';\n\nconst ThumbnailImage = props => {\n const {\n loading,\n error,\n className,\n imageRef,\n imageUrl,\n altText,\n priority,\n handleClick,\n handleEnableLightbox\n } = useThumbnailImage(props);\n\n if (error) return error.message;\n if (loading) return null;\n\n return (\n <div\n ref={imageRef}\n className={className}\n onClick={handleClick}\n role=\"button\"\n data-testid=\"thumbnail-image\">\n <LazyImage\n src={imageUrl}\n alt={altText}\n sizeKey=\"carousel\"\n onClick={handleEnableLightbox}\n role=\"button\"\n priority={priority}\n />\n </div>\n );\n};\n\nexport default ThumbnailImage;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,+BAA+B;AACrD,OAAOC,iBAAiB,MAAM,qBAAqB;AAEnD,MAAMC,cAAc,GAAGC,KAAK,IAAI;EAC9B,MAAM;IACJC,OAAO;IACPC,KAAK;IACLC,SAAS;IACTC,QAAQ;IACRC,QAAQ;IACRC,OAAO;IACPC,QAAQ;IACRC,WAAW;IACXC;EACF,CAAC,GAAGX,iBAAiB,CAACE,KAAK,CAAC;EAE5B,IAAIE,KAAK,EAAE,OAAOA,KAAK,CAACQ,OAAO;EAC/B,IAAIT,OAAO,EAAE,OAAO,IAAI;EAExB,oBACEL,KAAA,CAAAe,aAAA;IACEC,GAAG,EAAER,QAAS;IACdD,SAAS,EAAEA,SAAU;IACrBU,OAAO,EAAEL,WAAY;IACrBM,IAAI,EAAC,QAAQ;IACb,eAAY;EAAiB,gBAC7BlB,KAAA,CAAAe,aAAA,CAACd,SAAS;IACRkB,GAAG,EAAEV,QAAS;IACdW,GAAG,EAAEV,OAAQ;IACbW,OAAO,EAAC,UAAU;IAClBJ,OAAO,EAAEJ,oBAAqB;IAC9BK,IAAI,EAAC,QAAQ;IACbP,QAAQ,EAAEA;EAAS,CACpB,CACE,CAAC;AAEV,CAAC;AAED,eAAeR,cAAc"}
@@ -0,0 +1,3 @@
1
+ import ThumbnailImage from './ThumbnailImage';
2
+ export default ThumbnailImage;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["ThumbnailImage"],"sources":["../../../../src/variants/ThumbnailCarousel/ThumbnailImage/index.js"],"sourcesContent":["import ThumbnailImage from './ThumbnailImage';\n\nexport default ThumbnailImage;\n"],"mappings":"AAAA,OAAOA,cAAc,MAAM,kBAAkB;AAE7C,eAAeA,cAAc"}
@@ -0,0 +1,75 @@
1
+ import { useEffect, useRef } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { useGetImages } from '../../../hooks';
4
+ import { getImageData } from '../../../utils';
5
+ const useThumbnailImage = ({
6
+ imageId,
7
+ enableLightbox,
8
+ toggleModal,
9
+ handleSelectedImage,
10
+ priority,
11
+ selectedImageId,
12
+ handleOnClick
13
+ }) => {
14
+ const imageRef = useRef(null);
15
+ const isSelected = selectedImageId === imageId;
16
+ const {
17
+ data = {},
18
+ loading,
19
+ error
20
+ } = useGetImages(imageId);
21
+ useEffect(() => {
22
+ if (imageRef.current && isSelected) {
23
+ imageRef.current.scrollIntoView({
24
+ behavior: 'smooth',
25
+ block: 'start'
26
+ });
27
+ }
28
+ }, [isSelected]);
29
+ const handleEnableLightbox = () => {
30
+ if (!enableLightbox) return;
31
+ toggleModal();
32
+ handleSelectedImage(imageId);
33
+ };
34
+ const handleClick = () => {
35
+ handleOnClick(imageId);
36
+ };
37
+ const {
38
+ url: imageUrl = '',
39
+ data: imageData = {}
40
+ } = data.getFile || {
41
+ getFile: {
42
+ url: '',
43
+ data: {}
44
+ }
45
+ };
46
+ const {
47
+ altText
48
+ } = getImageData({}, imageData);
49
+ const className = selectedImageId === imageId ? 'thumbnail-carousel-image thumbnail-carousel-image--selected' : 'thumbnail-carousel-image';
50
+ return {
51
+ loading,
52
+ error,
53
+ className,
54
+ imageRef,
55
+ imageUrl,
56
+ altText,
57
+ priority,
58
+ handleClick,
59
+ handleEnableLightbox
60
+ };
61
+ };
62
+ useThumbnailImage.propTypes = {
63
+ imageId: PropTypes.string.isRequired,
64
+ selectedImageId: PropTypes.string.isRequired,
65
+ enableLightbox: PropTypes.bool.isRequired,
66
+ toggleModal: PropTypes.func.isRequired,
67
+ handleSelectedImage: PropTypes.func.isRequired,
68
+ priority: PropTypes.bool.isRequired,
69
+ handleOnClick: PropTypes.func
70
+ };
71
+ useThumbnailImage.defaultProps = {
72
+ handleOnClick: () => {}
73
+ };
74
+ export default useThumbnailImage;
75
+ //# sourceMappingURL=useThumbnailImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThumbnailImage.js","names":["useEffect","useRef","PropTypes","useGetImages","getImageData","useThumbnailImage","imageId","enableLightbox","toggleModal","handleSelectedImage","priority","selectedImageId","handleOnClick","imageRef","isSelected","data","loading","error","current","scrollIntoView","behavior","block","handleEnableLightbox","handleClick","url","imageUrl","imageData","getFile","altText","className","propTypes","string","isRequired","bool","func","defaultProps"],"sources":["../../../../src/variants/ThumbnailCarousel/ThumbnailImage/useThumbnailImage.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useGetImages } from '../../../hooks';\nimport { getImageData } from '../../../utils';\n\nconst useThumbnailImage = ({\n imageId,\n enableLightbox,\n toggleModal,\n handleSelectedImage,\n priority,\n selectedImageId,\n handleOnClick\n}) => {\n const imageRef = useRef(null);\n const isSelected = selectedImageId === imageId;\n const { data = {}, loading, error } = useGetImages(imageId);\n\n useEffect(\n () => {\n if (imageRef.current && isSelected) {\n imageRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n },\n [isSelected]\n );\n\n const handleEnableLightbox = () => {\n if (!enableLightbox) return;\n toggleModal();\n handleSelectedImage(imageId);\n };\n\n const handleClick = () => {\n handleOnClick(imageId);\n };\n\n const { url: imageUrl = '', data: imageData = {} } = data.getFile || {\n getFile: { url: '', data: {} }\n };\n const { altText } = getImageData({}, imageData);\n\n const className =\n selectedImageId === imageId\n ? 'thumbnail-carousel-image thumbnail-carousel-image--selected'\n : 'thumbnail-carousel-image';\n\n return {\n loading,\n error,\n className,\n imageRef,\n imageUrl,\n altText,\n priority,\n handleClick,\n handleEnableLightbox\n };\n};\n\nuseThumbnailImage.propTypes = {\n imageId: PropTypes.string.isRequired,\n selectedImageId: PropTypes.string.isRequired,\n enableLightbox: PropTypes.bool.isRequired,\n toggleModal: PropTypes.func.isRequired,\n handleSelectedImage: PropTypes.func.isRequired,\n priority: PropTypes.bool.isRequired,\n handleOnClick: PropTypes.func\n};\n\nuseThumbnailImage.defaultProps = {\n handleOnClick: () => {}\n};\n\nexport default useThumbnailImage;\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,MAAMC,iBAAiB,GAAGA,CAAC;EACzBC,OAAO;EACPC,cAAc;EACdC,WAAW;EACXC,mBAAmB;EACnBC,QAAQ;EACRC,eAAe;EACfC;AACF,CAAC,KAAK;EACJ,MAAMC,QAAQ,GAAGZ,MAAM,CAAC,IAAI,CAAC;EAC7B,MAAMa,UAAU,GAAGH,eAAe,KAAKL,OAAO;EAC9C,MAAM;IAAES,IAAI,GAAG,CAAC,CAAC;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGd,YAAY,CAACG,OAAO,CAAC;EAE3DN,SAAS,CACP,MAAM;IACJ,IAAIa,QAAQ,CAACK,OAAO,IAAIJ,UAAU,EAAE;MAClCD,QAAQ,CAACK,OAAO,CAACC,cAAc,CAAC;QAAEC,QAAQ,EAAE,QAAQ;QAAEC,KAAK,EAAE;MAAQ,CAAC,CAAC;IACzE;EACF,CAAC,EACD,CAACP,UAAU,CACb,CAAC;EAED,MAAMQ,oBAAoB,GAAGA,CAAA,KAAM;IACjC,IAAI,CAACf,cAAc,EAAE;IACrBC,WAAW,CAAC,CAAC;IACbC,mBAAmB,CAACH,OAAO,CAAC;EAC9B,CAAC;EAED,MAAMiB,WAAW,GAAGA,CAAA,KAAM;IACxBX,aAAa,CAACN,OAAO,CAAC;EACxB,CAAC;EAED,MAAM;IAAEkB,GAAG,EAAEC,QAAQ,GAAG,EAAE;IAAEV,IAAI,EAAEW,SAAS,GAAG,CAAC;EAAE,CAAC,GAAGX,IAAI,CAACY,OAAO,IAAI;IACnEA,OAAO,EAAE;MAAEH,GAAG,EAAE,EAAE;MAAET,IAAI,EAAE,CAAC;IAAE;EAC/B,CAAC;EACD,MAAM;IAAEa;EAAQ,CAAC,GAAGxB,YAAY,CAAC,CAAC,CAAC,EAAEsB,SAAS,CAAC;EAE/C,MAAMG,SAAS,GACblB,eAAe,KAAKL,OAAO,GACvB,6DAA6D,GAC7D,0BAA0B;EAEhC,OAAO;IACLU,OAAO;IACPC,KAAK;IACLY,SAAS;IACThB,QAAQ;IACRY,QAAQ;IACRG,OAAO;IACPlB,QAAQ;IACRa,WAAW;IACXD;EACF,CAAC;AACH,CAAC;AAEDjB,iBAAiB,CAACyB,SAAS,GAAG;EAC5BxB,OAAO,EAAEJ,SAAS,CAAC6B,MAAM,CAACC,UAAU;EACpCrB,eAAe,EAAET,SAAS,CAAC6B,MAAM,CAACC,UAAU;EAC5CzB,cAAc,EAAEL,SAAS,CAAC+B,IAAI,CAACD,UAAU;EACzCxB,WAAW,EAAEN,SAAS,CAACgC,IAAI,CAACF,UAAU;EACtCvB,mBAAmB,EAAEP,SAAS,CAACgC,IAAI,CAACF,UAAU;EAC9CtB,QAAQ,EAAER,SAAS,CAAC+B,IAAI,CAACD,UAAU;EACnCpB,aAAa,EAAEV,SAAS,CAACgC;AAC3B,CAAC;AAED7B,iBAAiB,CAAC8B,YAAY,GAAG;EAC/BvB,aAAa,EAAEA,CAAA,KAAM,CAAC;AACxB,CAAC;AAED,eAAeP,iBAAiB"}
@@ -0,0 +1,10 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import ThumbnailCarouselComponent from './ThumbnailCarousel';
5
+ const ThumbnailCarousel = {
6
+ getSettings: componentSettings => _objectSpread({}, componentSettings),
7
+ VariantComponent: ThumbnailCarouselComponent
8
+ };
9
+ export default ThumbnailCarousel;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["ThumbnailCarouselComponent","ThumbnailCarousel","getSettings","componentSettings","_objectSpread","VariantComponent"],"sources":["../../../src/variants/ThumbnailCarousel/index.js"],"sourcesContent":["import ThumbnailCarouselComponent from './ThumbnailCarousel';\n\nconst ThumbnailCarousel = {\n getSettings: componentSettings => ({\n ...componentSettings\n }),\n VariantComponent: ThumbnailCarouselComponent\n};\n\nexport default ThumbnailCarousel;\n"],"mappings":";;;AAAA,OAAOA,0BAA0B,MAAM,qBAAqB;AAE5D,MAAMC,iBAAiB,GAAG;EACxBC,WAAW,EAAEC,iBAAiB,IAAAC,aAAA,KACzBD,iBAAiB,CACpB;EACFE,gBAAgB,EAAEL;AACpB,CAAC;AAED,eAAeC,iBAAiB"}
@@ -0,0 +1,42 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ const _excluded = ["imageIds", "priorityLimit"];
4
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
+ import { useState, useRef } from 'react';
7
+ const useThumbnailCarousel = _ref => {
8
+ let {
9
+ imageIds,
10
+ priorityLimit
11
+ } = _ref,
12
+ props = _objectWithoutProperties(_ref, _excluded);
13
+ const [selectedImageIndex, setSelectedImageIndex] = useState(0);
14
+ const thumbnailsListRef = useRef(null);
15
+ const selectedImageId = imageIds[selectedImageIndex];
16
+ const mainImageButtonClick = next => {
17
+ if (next) {
18
+ const isLast = imageIds.length - 1 === selectedImageIndex;
19
+ const newIndex = isLast ? 0 : selectedImageIndex + 1;
20
+ setSelectedImageIndex(newIndex);
21
+ } else {
22
+ const isFirst = selectedImageIndex === 0;
23
+ const newIndex = isFirst ? imageIds.length - 1 : selectedImageIndex - 1;
24
+ setSelectedImageIndex(newIndex);
25
+ }
26
+ };
27
+ const thumbnailImageClick = id => {
28
+ const newIndex = imageIds.indexOf(id);
29
+ if (newIndex !== -1) setSelectedImageIndex(newIndex);
30
+ };
31
+ return _objectSpread(_objectSpread({}, props), {}, {
32
+ imageIds,
33
+ selectedImageId,
34
+ selectedImageIndex,
35
+ thumbnailsListRef,
36
+ priorityLimit,
37
+ thumbnailImageClick,
38
+ mainImageButtonClick
39
+ });
40
+ };
41
+ export default useThumbnailCarousel;
42
+ //# sourceMappingURL=useThumbnailCarousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThumbnailCarousel.js","names":["useState","useRef","useThumbnailCarousel","_ref","imageIds","priorityLimit","props","_objectWithoutProperties","_excluded","selectedImageIndex","setSelectedImageIndex","thumbnailsListRef","selectedImageId","mainImageButtonClick","next","isLast","length","newIndex","isFirst","thumbnailImageClick","id","indexOf","_objectSpread"],"sources":["../../../src/variants/ThumbnailCarousel/useThumbnailCarousel.js"],"sourcesContent":["import { useState, useRef } from 'react';\n\nconst useThumbnailCarousel = ({ imageIds, priorityLimit, ...props }) => {\n const [selectedImageIndex, setSelectedImageIndex] = useState(0);\n const thumbnailsListRef = useRef(null);\n const selectedImageId = imageIds[selectedImageIndex];\n\n const mainImageButtonClick = next => {\n if (next) {\n const isLast = imageIds.length - 1 === selectedImageIndex;\n const newIndex = isLast ? 0 : selectedImageIndex + 1;\n setSelectedImageIndex(newIndex);\n } else {\n const isFirst = selectedImageIndex === 0;\n const newIndex = isFirst ? imageIds.length - 1 : selectedImageIndex - 1;\n setSelectedImageIndex(newIndex);\n }\n };\n\n const thumbnailImageClick = id => {\n const newIndex = imageIds.indexOf(id);\n if (newIndex !== -1) setSelectedImageIndex(newIndex);\n };\n\n return {\n ...props,\n imageIds,\n selectedImageId,\n selectedImageIndex,\n thumbnailsListRef,\n priorityLimit,\n thumbnailImageClick,\n mainImageButtonClick\n };\n};\n\nexport default useThumbnailCarousel;\n"],"mappings":";;;;;AAAA,SAASA,QAAQ,EAAEC,MAAM,QAAQ,OAAO;AAExC,MAAMC,oBAAoB,GAAGC,IAAA,IAA2C;EAAA,IAA1C;MAAEC,QAAQ;MAAEC;IAAwB,CAAC,GAAAF,IAAA;IAAPG,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;EAC/D,MAAM,CAACC,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGV,QAAQ,CAAC,CAAC,CAAC;EAC/D,MAAMW,iBAAiB,GAAGV,MAAM,CAAC,IAAI,CAAC;EACtC,MAAMW,eAAe,GAAGR,QAAQ,CAACK,kBAAkB,CAAC;EAEpD,MAAMI,oBAAoB,GAAGC,IAAI,IAAI;IACnC,IAAIA,IAAI,EAAE;MACR,MAAMC,MAAM,GAAGX,QAAQ,CAACY,MAAM,GAAG,CAAC,KAAKP,kBAAkB;MACzD,MAAMQ,QAAQ,GAAGF,MAAM,GAAG,CAAC,GAAGN,kBAAkB,GAAG,CAAC;MACpDC,qBAAqB,CAACO,QAAQ,CAAC;IACjC,CAAC,MAAM;MACL,MAAMC,OAAO,GAAGT,kBAAkB,KAAK,CAAC;MACxC,MAAMQ,QAAQ,GAAGC,OAAO,GAAGd,QAAQ,CAACY,MAAM,GAAG,CAAC,GAAGP,kBAAkB,GAAG,CAAC;MACvEC,qBAAqB,CAACO,QAAQ,CAAC;IACjC;EACF,CAAC;EAED,MAAME,mBAAmB,GAAGC,EAAE,IAAI;IAChC,MAAMH,QAAQ,GAAGb,QAAQ,CAACiB,OAAO,CAACD,EAAE,CAAC;IACrC,IAAIH,QAAQ,KAAK,CAAC,CAAC,EAAEP,qBAAqB,CAACO,QAAQ,CAAC;EACtD,CAAC;EAED,OAAAK,aAAA,CAAAA,aAAA,KACKhB,KAAK;IACRF,QAAQ;IACRQ,eAAe;IACfH,kBAAkB;IAClBE,iBAAiB;IACjBN,aAAa;IACbc,mBAAmB;IACnBN;EAAoB;AAExB,CAAC;AAED,eAAeX,oBAAoB"}
@@ -1,2 +1,5 @@
1
- export default {};
1
+ import thumbnailCarousel from './ThumbnailCarousel';
2
+ export default {
3
+ thumbnailCarousel
4
+ };
2
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/variants/index.js"],"sourcesContent":["export default {};\n"],"mappings":"AAAA,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","names":["thumbnailCarousel"],"sources":["../../src/variants/index.js"],"sourcesContent":["import thumbnailCarousel from './ThumbnailCarousel';\n\nexport default {\n thumbnailCarousel\n};\n"],"mappings":"AAAA,OAAOA,iBAAiB,MAAM,qBAAqB;AAEnD,eAAe;EACbA;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/react-page-builder",
3
- "version": "0.141.0-core-styles.10",
3
+ "version": "0.141.0-core-styles.20",
4
4
  "description": "Blaze react page builder",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -32,7 +32,7 @@
32
32
  "@blaze-cms/core-errors-ui": "0.140.2-core-styles.1",
33
33
  "@blaze-cms/image-cdn-react": "0.3.0-alpha.6",
34
34
  "@blaze-cms/nextjs-components": "0.141.0-core-styles.0",
35
- "@blaze-cms/plugin-search-ui": "0.141.0-core-styles.3",
35
+ "@blaze-cms/plugin-search-ui": "0.141.0-core-styles.16",
36
36
  "@blaze-cms/setup-ui": "0.140.2-core-styles.1",
37
37
  "@blaze-cms/utils": "0.140.2-core-styles.1",
38
38
  "@blaze-cms/utils-handlebars": "0.141.0-core-styles.0",
@@ -89,5 +89,5 @@
89
89
  "lib/*",
90
90
  "lib-es/*"
91
91
  ],
92
- "gitHead": "67e322293aeb483041c2f4dd4c23fe977a86e120"
92
+ "gitHead": "4e9b6cfffbc04fa32476c3daed008594a54838e9"
93
93
  }
@@ -6,6 +6,7 @@ import ListHeader from './components/Header';
6
6
  import { sortResponseData } from '../../helpers';
7
7
  import { LOAD_MORE } from '../../constants';
8
8
  import { useAppSyncEventHook } from '../../hooks';
9
+ import { buildQueryBooster } from './helpers';
9
10
 
10
11
  const ListRender = props => {
11
12
  const {
@@ -33,9 +34,10 @@ const ListRender = props => {
33
34
  data: variables,
34
35
  props
35
36
  });
37
+ const boostedVariables = buildQueryBooster(props, updatedVariables);
36
38
 
37
39
  const { data = {}, error, loading, fetchMore } = useQuery(action, {
38
- variables: updatedVariables
40
+ variables: boostedVariables
39
41
  });
40
42
 
41
43
  if (loading) return '';
@@ -0,0 +1,35 @@
1
+ const buildQueryBooster = (props, data) => {
2
+ const { recencyBoostProperty } = props;
3
+
4
+ if (!recencyBoostProperty || !recencyBoostProperty.length) return data;
5
+ const { rawQueryStringified = '' } = data;
6
+
7
+ const parsedRawQuery = JSON.parse(rawQueryStringified);
8
+ const { function_score: { query, functions = [] } = {} } = parsedRawQuery;
9
+
10
+ const boostedPropsFunctios = recencyBoostProperty.map(propToBoost => ({
11
+ gauss: {
12
+ [propToBoost]: {
13
+ origin: 'now',
14
+ scale: '30d',
15
+ offset: '7d',
16
+ decay: 0.5
17
+ }
18
+ }
19
+ }));
20
+
21
+ const updatedData = {
22
+ function_score: {
23
+ query: functions.length ? query : parsedRawQuery,
24
+ functions: [...functions, ...boostedPropsFunctios],
25
+ boost_mode: 'multiply'
26
+ }
27
+ };
28
+
29
+ return {
30
+ ...data,
31
+ rawQueryStringified: JSON.stringify(updatedData)
32
+ };
33
+ };
34
+
35
+ export default buildQueryBooster;
@@ -9,3 +9,4 @@ export { default as hasRequiredItemListDetails } from './has-required-item-list-
9
9
  export { default as getListComponent } from './get-list-component';
10
10
  export { default as getListQuery } from './get-list-query';
11
11
  export { default as getListSpecificSearchFilter } from './get-list-specific-search-filter';
12
+ export { default as buildQueryBooster } from './build-query-booster';
@@ -0,0 +1,55 @@
1
+ import React from 'react';
2
+ import useThumbnailCarousel from './useThumbnailCarousel';
3
+ import ThumbnailImage from './ThumbnailImage';
4
+
5
+ const ThumbnailCarousel = props => {
6
+ const {
7
+ thumbnailsListRef,
8
+ imageIds,
9
+ selectedImageId,
10
+ priorityLimit,
11
+ mainImageButtonClick,
12
+ thumbnailImageClick
13
+ } = useThumbnailCarousel(props);
14
+
15
+ return (
16
+ <div className="thumbnail-carousel" data-testid="thumbnail-carousel">
17
+ <div className="thumbnail-carousel__main_image_container">
18
+ <div
19
+ id="previous-button"
20
+ className="thumbnail-carousel__main_image_container__button"
21
+ role="button"
22
+ onClick={() => mainImageButtonClick()}>
23
+ <div className="arrow arrow--left" />
24
+ </div>
25
+ <div
26
+ className="thumbnail-carousel__main_image_container__main-image"
27
+ data-testid="thumbnail-main-image"
28
+ ref={thumbnailsListRef}>
29
+ <ThumbnailImage {...props} priority imageId={selectedImageId} />
30
+ </div>
31
+ <div
32
+ id="next-button"
33
+ className="thumbnail-carousel__main_image_container__button next"
34
+ role="button"
35
+ onClick={() => mainImageButtonClick(true)}>
36
+ <div className="arrow arrow--right" />
37
+ </div>
38
+ </div>
39
+ <div className="thumbnail-carousel__list">
40
+ {imageIds.map((imageId, index) => (
41
+ <ThumbnailImage
42
+ {...props}
43
+ key={imageId}
44
+ priority={index < priorityLimit}
45
+ imageId={imageId}
46
+ selectedImageId={selectedImageId}
47
+ handleOnClick={thumbnailImageClick}
48
+ />
49
+ ))}
50
+ </div>
51
+ </div>
52
+ );
53
+ };
54
+
55
+ export default ThumbnailCarousel;
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import LazyImage from '../../../components/LazyImage';
3
+ import useThumbnailImage from './useThumbnailImage';
4
+
5
+ const ThumbnailImage = props => {
6
+ const {
7
+ loading,
8
+ error,
9
+ className,
10
+ imageRef,
11
+ imageUrl,
12
+ altText,
13
+ priority,
14
+ handleClick,
15
+ handleEnableLightbox
16
+ } = useThumbnailImage(props);
17
+
18
+ if (error) return error.message;
19
+ if (loading) return null;
20
+
21
+ return (
22
+ <div
23
+ ref={imageRef}
24
+ className={className}
25
+ onClick={handleClick}
26
+ role="button"
27
+ data-testid="thumbnail-image">
28
+ <LazyImage
29
+ src={imageUrl}
30
+ alt={altText}
31
+ sizeKey="carousel"
32
+ onClick={handleEnableLightbox}
33
+ role="button"
34
+ priority={priority}
35
+ />
36
+ </div>
37
+ );
38
+ };
39
+
40
+ export default ThumbnailImage;
@@ -0,0 +1,3 @@
1
+ import ThumbnailImage from './ThumbnailImage';
2
+
3
+ export default ThumbnailImage;