mediacms/static/js/search.js
2025-10-03 11:24:29 +03:00

1 line
19 KiB
JavaScript

!function(){var e,t={463:function(e,t,n){"use strict";n.d(t,{c:function(){return s}});var r=n(4571),i=n.n(r);function s(e,t){let n=i()(e,{});return""!==n.origin&&"null"!==n.origin&&n.origin||(n=i()(t+"/"+e.replace(/^\//g,""),{})),n.toString()}},977:function(e,t,n){"use strict";n.d(t,{A:function(){return i}});var r=n(7143);function i(e,t){return r.register(e[t].bind(e)),e}},1702:function(e,t,n){"use strict";n.d(t,{R:function(){return s},e:function(){return a}});var r=n(6403),i=n(8354);const s=function(e,t,n){return void 0===e[t]||(0,i.tR)(e[t])?null:(0,r.m)(["Invalid prop `"+t+"` of type `"+typeof e[t]+"` supplied to `"+(n||"N/A")+"`, expected `positive integer or zero` ("+e[t]+")."])},a=function(e,t,n){return void 0===e[t]||(0,i.q6)(e[t])?null:(0,r.m)(["Invalid prop `"+t+"` of type `"+typeof e[t]+"` supplied to `"+(n||"N/A")+"`, expected `positive integer` ("+e[t]+")."])}},1838:function(e,t,n){"use strict";n.r(t),n.d(t,{BrowserEvents:function(){return r.GT},PositiveInteger:function(){return m.e},PositiveIntegerOrZero:function(){return m.R},addClassname:function(){return r.zc},cancelAnimationFrame:function(){return r.uU},csrfToken:function(){return u.G},deleteRequest:function(){return h.Fb},error:function(){return d.z},exportStore:function(){return s.A},formatInnerLink:function(){return a.c},formatManagementTableDate:function(){return l.n},formatViewsNumber:function(){return o.A},getRequest:function(){return h.iq},greaterCommonDivision:function(){return f.p7},hasClassname:function(){return r.CX},imageExtension:function(){return c.t},isGt:function(){return f.en},isInteger:function(){return f.Fq},isNumber:function(){return f.Et},isPositive:function(){return f.ep},isPositiveInteger:function(){return f.q6},isPositiveIntegerOrZero:function(){return f.tR},isPositiveNumber:function(){return f.F5},isZero:function(){return f.be},logErrorAndReturnError:function(){return i.m},logWarningAndReturnError:function(){return i.g},postRequest:function(){return h.MB},publishedOnDate:function(){return p.A},putRequest:function(){return h.zi},quickSort:function(){return g.g},removeClassname:function(){return r.qk},replaceString:function(){return y.u},requestAnimationFrame:function(){return r.xi},supportsSvgAsImg:function(){return r.kN},translateString:function(){return v.g},warn:function(){return d.R}});var r=n(1134),i=n(6403),s=n(977),a=n(463),l=n(8482),o=n(4632),u=n(5393),c=n(1554),d=n(8004),f=n(8354),m=n(1702),p=n(7673),g=n(1453),h=n(9659),v=n(4036),y=n(4470)},1936:function(e,t,n){"use strict";n.d(t,{PageHeader:function(){return r.z},PageMain:function(){return i.P},PageSidebar:function(){return s.E}});var r=n(1254),i=n(3212),s=n(795);n(1470)},2855:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MediaListWrapper=void 0;var i=r(n(9471)),s=n(6190);n(5050),t.MediaListWrapper=function(e){var t=e.title,n=e.viewAllLink,r=e.viewAllText,a=e.className,l=e.style,o=e.children;return i.default.createElement("div",{className:(a?a+" ":"")+"media-list-wrapper",style:l},i.default.createElement(s.MediaListRow,{title:t,viewAllLink:n,viewAllText:r},o||null))}},3818:function(e,t,n){"use strict";n(9471);var r=n(8713),i=n.n(r);i().string,i().array.isRequired,i().string,i().number,i().number,i().number,i().func,i().func},4685:function(e,t,n){"use strict";n.d(t,{ItemListAsync:function(){return f}});var r=n(9471),i=n(8713),s=n.n(i),a=n(5338),l=n(4737),o=n(2495),u=n(4433),c=n(5633);function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d.apply(null,arguments)}function f(e){const[t,n,i,s,l,f,m,p,g,h,v]=(0,a.useItemListSync)(e);return(0,r.useEffect)(()=>(s(new c.B(e.pageItems,e.maxItems,e.firstItemRequestUrl,e.requestUrl,p,g)),()=>{i&&(i.cancelAll(),s(null))}),[]),t?n.length?r.createElement("div",{className:l.listOuter},h(),r.createElement("div",{ref:f,className:"items-list-wrap"},r.createElement("div",{ref:m,className:l.list},n.map((t,n)=>r.createElement(u.c,d({key:n},(0,u.k)(e,t,n)))))),v()):null:r.createElement(o.e,{className:l.listOuter})}f.propTypes={...l.k.propTypes,items:s().array,requestUrl:s().string.isRequired,firstItemRequestUrl:s().string},f.defaultProps={...l.k.defaultProps,requestUrl:null,firstItemRequestUrl:null,pageItems:24}},5245:function(e,t,n){"use strict";var r=n(2985),i=n(9471),s=n(8790),a=n(7460),l=n(7664),o=n(2855),u=n(7731),c=n(5338);function d(e){return i.createElement("div",{className:"media-filter-option"},i.createElement("button",{className:e.selected?"active":"",onClick:function(){e.onSelect(e.id)}},e.label))}function f(e){const[t,n]=(0,i.useState)(e.default);function r(t){n(t),"function"==typeof e.onSelect&&e.onSelect(t)}return i.createElement("div",{className:"media-filter-option-list"},function(t){const n=[];let s=0;for(;s<e.items.length;)e.hideOptionOnSelect?e.items[s].id!==t&&n.push(i.createElement(d,{key:e.items[s].id,id:e.items[s].id,label:e.items[s].label,selected:e.items[s].id===t,onSelect:r})):n.push(i.createElement(d,{key:e.items[s].id,id:e.items[s].id,label:e.items[s].label,selected:e.items[s].id===t,onSelect:r})),s+=1;return n}(t))}function m(e){const[t,n,r,s,a,o]=(0,c.useMediaFilter)(e.default),[u,d]=(0,i.useState)(e.label);return(0,i.useEffect)(()=>{if(s.current.tryToHide(),e.updateTriggerButtonOnChange){let t=0;for(;t<e.options.length;){if(n===e.options[t].id){d(e.options[t].label);break}t+=1}}"function"==typeof e.onSelect&&e.onSelect(n)},[n]),i.createElement("div",{ref:t,className:"media-filter"},i.createElement(o,{contentRef:s},i.createElement("button",{className:"popup-trigger","aria-label":"Filter"},i.createElement("span",{className:"filter-button-label"},i.createElement("span",{className:"filter-button-label-text"},u),i.createElement(l.MaterialIcon,{type:"arrow_drop_down"})))),i.createElement(a,{contentRef:s},i.createElement("div",{className:"main-options"},i.createElement(l.PopupMain,null,i.createElement(f,{items:e.options,default:n,onSelect:r,hideOptionOnSelect:e.hideOptionOnSelect})))))}function p(e){const[t,n,r,s,a,o]=(0,c.useMediaFilter)(e.default);return(0,i.useEffect)(()=>{s.current.tryToHide(),"function"==typeof e.onSelect&&e.onSelect(n)},[n]),i.createElement("div",{ref:t,className:"media-filter"},i.createElement(o,{contentRef:s},i.createElement("button",{className:"popup-trigger","aria-label":"Filter"},i.createElement(l.MaterialIcon,{type:"sort"}),i.createElement("span",{className:"filter-button-label"},i.createElement("span",{className:"filter-button-label-text"},e.label)))),i.createElement(a,{contentRef:s},i.createElement("div",{className:"main-options"},i.createElement(l.PopupMain,null,i.createElement(f,{items:e.options,default:n,onSelect:r})))))}const g=[{id:"all",label:"All media types"},{id:"video",label:"Video"},{id:"audio",label:"Audio"},{id:"image",label:"Images"},{id:"pdf",label:"Pdf"}],h=[{id:"date_added_desc",label:"Upload date (newest)"},{id:"date_added_asc",label:"Upload date (oldest)"},{id:"most_views",label:"View count"},{id:"most_likes",label:"Like count"}];function v(e){const[t,n]=(0,i.useState)("all"),[r,s]=(0,i.useState)("date_added_desc"),[a,l]=(0,i.useState)({sort_by:null,ordering:null,media_type:null});function o(){const e={...a,media_type:null,sort_by:null,ordering:null};switch(t){case"video":e.media_type="video";break;case"audio":e.media_type="audio";break;case"image":e.media_type="image";break;case"pdf":e.media_type="pdf"}switch(r){case"most_views":e.sort_by="views",e.ordering=null;break;case"most_likes":e.sort_by="likes",e.ordering=null;break;case"date_added_asc":e.sort_by=null,e.ordering="asc"}l(e)}return(0,i.useEffect)(()=>{o()},[t,r]),(0,i.useEffect)(()=>{"function"==typeof e.onFiltersUpdate&&e.onFiltersUpdate(a)},[a]),(0,i.useEffect)(()=>{o()},[]),i.createElement("div",{className:"media-filters-row"},i.createElement("div",{className:"media-filters-row-inner"},i.createElement("div",{className:"media-type-filters"},i.createElement(m,{label:g[0].label,default:g[0].id,options:g,onSelect:function(e){n(e)},updateTriggerButtonOnChange:!0,hideOptionOnSelect:!0})),i.createElement("div",{className:"media-filters-sort"},i.createElement(p,{label:"SORT BY",default:h[0].id,options:h,onSelect:function(e){s(e)},updateTriggerButtonOnChange:!1,hideOptionOnSelect:!1}))))}var y=n(8713),b=n.n(y);const _={media_type:[{id:"all",title:"All"},{id:"video",title:"Video"},{id:"audio",title:"Audio"},{id:"image",title:"Image"},{id:"pdf",title:"Pdf"}],upload_date:[{id:"all",title:"All"},{id:"today",title:"Today"},{id:"this_week",title:"This week"},{id:"this_month",title:"This month"},{id:"this_year",title:"This year"}],sort_by:[{id:"date_added_desc",title:"Upload date (newest)"},{id:"date_added_asc",title:"Upload date (oldest)"},{id:"most_views",title:"View count"},{id:"most_likes",title:"Like count"}]};function E(e){const[t,n]=(0,i.useState)(e.hidden),[r,s]=(0,i.useState)("all"),[o,u]=(0,i.useState)("all"),[c,d]=(0,i.useState)("date_added_desc"),f=(0,i.useRef)(null),m=(0,i.useRef)(null);function p(){t||(f.current.style.height=24+m.current.offsetHeight+"px")}function g(t){const n={media_type:r,upload_date:o,sort_by:c};switch(t.currentTarget.getAttribute("filter")){case"media_type":n.media_type=t.currentTarget.getAttribute("value"),e.onFiltersUpdate(n),s(n.media_type);break;case"upload_date":n.upload_date=t.currentTarget.getAttribute("value"),e.onFiltersUpdate(n),u(n.upload_date);break;case"sort_by":n.sort_by=t.currentTarget.getAttribute("value"),e.onFiltersUpdate(n),d(n.sort_by)}}return(0,i.useEffect)(()=>{n(e.hidden),p()},[e.hidden]),(0,i.useEffect)(()=>(a.PageStore.on("window_resize",p),()=>a.PageStore.removeListener("window_resize",p)),[]),i.createElement("div",{ref:f,className:"mi-filters-row"+(t?" hidden":"")},i.createElement("div",{ref:m,className:"mi-filters-row-inner"},i.createElement("div",{className:"mi-filter"},i.createElement("div",{className:"mi-filter-title"},"MEDIA TYPE"),i.createElement("div",{className:"mi-filter-options"},i.createElement(l.FilterOptions,{id:"media_type",options:_.media_type,selected:r,onSelect:g}))),i.createElement("div",{className:"mi-filter"},i.createElement("div",{className:"mi-filter-title"},"UPLOAD DATE"),i.createElement("div",{className:"mi-filter-options"},i.createElement(l.FilterOptions,{id:"upload_date",options:_.upload_date,selected:o,onSelect:g}))),i.createElement("div",{className:"mi-filter"},i.createElement("div",{className:"mi-filter-title"},"SORT BY"),i.createElement("div",{className:"mi-filter-options"},i.createElement(l.FilterOptions,{id:"sort_by",options:_.sort_by,selected:c,onSelect:g})))))}E.propTypes={hidden:b().bool},E.defaultProps={hidden:!1};var S=n(9479),w=n(1838);class I extends S.Y{constructor(e){super(e,"search-results"),this.state={validQuery:!1,requestUrl:null,filterArgs:"",resultsTitle:null,resultsCount:null,searchQuery:a.SearchFieldStore.get("search-query"),searchCategories:a.SearchFieldStore.get("search-categories"),searchTags:a.SearchFieldStore.get("search-tags"),hiddenFilters:!0},this.getCountFunc=this.getCountFunc.bind(this),this.updateRequestUrl=this.updateRequestUrl.bind(this),this.onFilterArgsUpdate=this.onFilterArgsUpdate.bind(this),this.onToggleFiltersClick=this.onToggleFiltersClick.bind(this),this.onFiltersUpdate=this.onFiltersUpdate.bind(this),this.didMount=!1,this.updateRequestUrl()}componentDidMount(){this.didMount=!0}onToggleFiltersClick(){this.setState({hiddenFilters:!this.state.hiddenFilters})}onFiltersUpdate(e){const t={media_type:null,upload_date:null,sort_by:null,ordering:null};switch(e.media_type){case"video":case"audio":case"image":case"pdf":t.media_type=e.media_type}switch(e.upload_date){case"today":case"this_week":case"this_month":case"this_year":t.upload_date=e.upload_date}switch(e.sort_by){case"most_views":t.sort_by="views";break;case"most_likes":t.sort_by="likes";break;case"date_added_asc":t.ordering="asc"}const n=[];for(let e in t)null!==t[e]&&n.push(e+"="+t[e]);this.setState({filterArgs:n.length?"&"+n.join("&"):""},function(){this.updateRequestUrl()})}updateRequestUrl(){const e=this.state.searchQuery||this.state.searchCategories||this.state.searchTags;let t=null;null!==this.state.resultsCount&&(e?this.state.searchCategories?(t=null===this.state.resultsCount||0===this.state.resultsCount?"No":this.state.resultsCount,t+=" "+(0,w.translateString)("media in category")+' "'+this.state.searchCategories+'"'):this.state.searchTags?(t=null===this.state.resultsCount||0===this.state.resultsCount?"No":this.state.resultsCount,t+=" "+(0,w.translateString)("media in tag")+' "'+this.state.searchTags+'"'):t=null===this.state.resultsCount||0===this.state.resultsCount?(0,w.translateString)("No results for")+' "'+this.state.searchQuery+'"':this.state.resultsCount+" result"+(1<this.state.resultsCount?"s":"")+' for "'+this.state.searchQuery+'"':t='No results for "'+this.state.searchQuery+'"');const n=(this.state.searchQuery||"")+(this.state.searchTags?"&t="+this.state.searchTags:"")+(this.state.searchCategories?"&c="+this.state.searchCategories:""),r=s.ApiUrlContext._currentValue.search.query+n+this.state.filterArgs;this.didMount?this.setState({validQuery:e,requestUrl:r,resultsTitle:t}):(this.state.validQuery=e,this.state.requestUrl=r,this.state.resultsTitle=t)}onFilterArgsUpdate(e){const t=[];for(let n in e)null!==e[n]&&t.push(n+"="+e[n]);this.setState({filterArgs:t.length?"&"+t.join("&"):""},function(){this.updateRequestUrl()})}getCountFunc(e){this.setState({resultsCount:e},function(){this.updateRequestUrl()})}pageContent(){const e=a.PageStore.get("config-options").pages.search.advancedFilters;return i.createElement(o.MediaListWrapper,{className:"search-results-wrap items-list-hor",title:null===this.state.resultsTitle?null:this.state.resultsTitle},e?i.createElement(l.FiltersToggleButton,{onClick:this.onToggleFiltersClick}):null,e?i.createElement(E,{hidden:this.state.hiddenFilters,onFiltersUpdate:this.onFiltersUpdate}):null,e?null:i.createElement(v,{onFiltersUpdate:this.onFilterArgsUpdate}),this.state.validQuery?i.createElement(u.LazyLoadItemListAsync,{key:this.state.requestUrl,singleLinkContent:!1,horizontalItemsOrientation:!0,itemsCountCallback:this.getCountFunc,requestUrl:this.state.requestUrl,preferSummary:!0,hideViews:!a.PageStore.get("config-media-item").displayViews,hideAuthor:!a.PageStore.get("config-media-item").displayAuthor,hideDate:!a.PageStore.get("config-media-item").displayPublishDate}):null)}}(0,r.C)("page-search",I)},5633:function(e,t,n){"use strict";n.d(t,{B:function(){return s}});var r=n(7460),i=n(1838);function s(e,t,n,s,a,l){const o={maxItems:t||255,pageItems:e?Math.min(t,e):1},u={totalItems:0,totalPages:0,nextRequestUrl:(0,i.formatInnerLink)(s,r.PageStore.get("config-site").url)},c={pageItems:0,requestResponse:!1};let d=null;const f=[],m=[];function p(e){let t,n;if(e=isNaN(e)?o.pageItems:e,c.pageItems&&c.pageItems<=m.length?(t=c.pageItems,n=!1,c.pageItems=0):(t=Math.min(e,m.length),n=e>m.length&&!!u.nextRequestUrl,c.pageItems=n?e-m.length:0),t){let e=0;for(;e<t;)f.push(m.shift()),e+=1;"function"==typeof l&&l(f)}n&&g()}function g(e){c.requestResponse=!0,(0,i.getRequest)(u.nextRequestUrl,!1,function(t){if(c.requestResponse=!1,!t||!t.data)return;let n=t.data,r=void 0!==n.results?n.results:n,i=0;for(;i<r.length&&o.maxItems>m.length;)null!==d&&d===r[i].url||m.push(r[i]),i+=1;u.nextRequestUrl=n.next&&o.maxItems>m.length?n.next:null,e&&(u.totalItems=n.count?n.count:m.length,u.totalItems=Math.min(o.maxItems,u.totalItems),u.totalPages=Math.ceil(u.totalItems/o.pageItems),"function"==typeof a&&a(u.totalItems)),p()}),u.nextRequestUrl=null}return null!=n?(0,i.getRequest)((0,i.formatInnerLink)(n,r.PageStore.get("config-site").url),!1,function(e){if(e&&e.data){let t=e.data,n=void 0!==t.results?t.results:t;n.length&&(d=n[0].url,f.push(n[0]))}g(!0)}):g(!0),{loadItems:function(e){!c.requestResponse&&f.length<u.totalItems&&p(e)},totalPages:function(){return u.totalPages},loadedAllItems:function(){return f.length===u.totalItems},cancelAll:function(){a=null,l=null}}}},6403:function(e,t,n){"use strict";n.d(t,{g:function(){return a},m:function(){return s}});var r=n(8004);function i(e,t,n){let r;switch(n){case TypeError:case RangeError:case SyntaxError:case ReferenceError:r=new n(t[0]);break;default:r=new Error(t[0])}return e(r.message,...t.slice(1)),r}function s(e,t){return i(r.z,e,t)}function a(e,t){return i(r.R,e,t)}},7143:function(e,t,n){const r=n(2063).Dispatcher;e.exports=new r},7731:function(e,t,n){"use strict";n.d(t,{LazyLoadItemListAsync:function(){return d}});var r=n(9471),i=n(7460),s=n(5338),a=n(4685),l=n(2495),o=n(4433),u=n(5633);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(null,arguments)}function d(e){const[t,n,a,d,f,m,p,g,h,v,y,b,_]=(0,s.useItemListLazyLoad)(e);return(0,r.useEffect)(()=>(d(new u.B(e.pageItems,e.maxItems,e.firstItemRequestUrl,e.requestUrl,m,p)),i.PageStore.on("window_scroll",g),i.PageStore.on("document_visibility_change",h),g(),()=>{i.PageStore.removeListener("window_scroll",g),i.PageStore.removeListener("document_visibility_change",h),a&&(a.cancelAll(),d(null))}),[]),n?t.length?r.createElement("div",{className:f.listOuter},b(),r.createElement("div",{ref:v,className:"items-list-wrap"},r.createElement("div",{ref:y,className:f.list},t.map((t,n)=>r.createElement(o.c,c({key:n},(0,o.k)(e,t,n)))))),_()):null:r.createElement(l.e,{className:f.listOuter})}d.propTypes={...a.ItemListAsync.propTypes},d.defaultProps={...a.ItemListAsync.defaultProps,pageItems:2}},8004:function(e,t,n){"use strict";n.d(t,{R:function(){return s},z:function(){return a}});var r=n(5697);const i=(...e)=>r[e[0]](...e.slice(1)),s=(...e)=>i("warn",...e),a=(...e)=>i("error",...e)},9479:function(e,t,n){"use strict";n.d(t,{Y:function(){return l}});var r=n(9471),i=n(285),s=n(1936),a=n(7664);class l extends r.PureComponent{constructor(e,t){super(e),void 0!==t&&i.PageActions.initPage(t)}render(){return r.createElement(r.Fragment,null,r.createElement(s.PageMain,null,this.pageContent()),r.createElement(a.Notifications,null))}}}},n={};function r(e){var i=n[e];if(void 0!==i)return i.exports;var s=n[e]={exports:{}};return t[e].call(s.exports,s,s.exports,r),s.exports}r.m=t,e=[],r.O=function(t,n,i,s){if(!n){var a=1/0;for(c=0;c<e.length;c++){n=e[c][0],i=e[c][1],s=e[c][2];for(var l=!0,o=0;o<n.length;o++)(!1&s||a>=s)&&Object.keys(r.O).every(function(e){return r.O[e](n[o])})?n.splice(o--,1):(l=!1,s<a&&(a=s));if(l){e.splice(c--,1);var u=i();void 0!==u&&(t=u)}}return t}s=s||0;for(var c=e.length;c>0&&e[c-1][2]>s;c--)e[c]=e[c-1];e[c]=[n,i,s]},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.j=187,function(){var e={187:0};r.O.j=function(t){return 0===e[t]};var t=function(t,n){var i,s,a=n[0],l=n[1],o=n[2],u=0;if(a.some(function(t){return 0!==e[t]})){for(i in l)r.o(l,i)&&(r.m[i]=l[i]);if(o)var c=o(r)}for(t&&t(n);u<a.length;u++)s=a[u],r.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return r.O(c)},n=self.webpackChunkmediacms_frontend=self.webpackChunkmediacms_frontend||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}();var i=r.O(void 0,[276],function(){return r(5245)});i=r.O(i)}();