diff --git a/js/dist/forum.js b/js/dist/forum.js index 9fdbdf6f..77d4d899 100644 --- a/js/dist/forum.js +++ b/js/dist/forum.js @@ -1,3 +1,3 @@ /*! For license information please see forum.js.LICENSE.txt */ -(()=>{var t={24:(t,o,e)=>{var n=e(735).default;function r(){"use strict";t.exports=r=function(){return e},t.exports.__esModule=!0,t.exports.default=t.exports;var o,e={},a=Object.prototype,l=a.hasOwnProperty,s=Object.defineProperty||function(t,o,e){t[o]=e.value},i="function"==typeof Symbol?Symbol:{},u=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",p=i.toStringTag||"@@toStringTag";function m(t,o,e){return Object.defineProperty(t,o,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[o]}try{m({},"")}catch(o){m=function(t,o,e){return t[o]=e}}function f(t,o,e,n){var r=o&&o.prototype instanceof w?o:w,a=Object.create(r.prototype),l=new E(n||[]);return s(a,"_invoke",{value:O(t,e,l)}),a}function d(t,o,e){try{return{type:"normal",arg:t.call(o,e)}}catch(t){return{type:"throw",arg:t}}}e.wrap=f;var h="suspendedStart",v="suspendedYield",g="executing",b="completed",y={};function w(){}function P(){}function N(){}var x={};m(x,u,(function(){return this}));var _=Object.getPrototypeOf,V=_&&_(_(L([])));V&&V!==a&&l.call(V,u)&&(x=V);var I=N.prototype=w.prototype=Object.create(x);function A(t){["next","throw","return"].forEach((function(o){m(t,o,(function(t){return this._invoke(o,t)}))}))}function C(t,o){function e(r,a,s,i){var u=d(t[r],t,a);if("throw"!==u.type){var c=u.arg,p=c.value;return p&&"object"==n(p)&&l.call(p,"__await")?o.resolve(p.__await).then((function(t){e("next",t,s,i)}),(function(t){e("throw",t,s,i)})):o.resolve(p).then((function(t){c.value=t,s(c)}),(function(t){return e("throw",t,s,i)}))}i(u.arg)}var r;s(this,"_invoke",{value:function(t,n){function a(){return new o((function(o,r){e(t,n,o,r)}))}return r=r?r.then(a,a):a()}})}function O(t,e,n){var r=h;return function(a,l){if(r===g)throw new Error("Generator is already running");if(r===b){if("throw"===a)throw l;return{value:o,done:!0}}for(n.method=a,n.arg=l;;){var s=n.delegate;if(s){var i=S(s,n);if(i){if(i===y)continue;return i}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===h)throw r=b,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=g;var u=d(t,e,n);if("normal"===u.type){if(r=n.done?b:v,u.arg===y)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=b,n.method="throw",n.arg=u.arg)}}}function S(t,e){var n=e.method,r=t.iterator[n];if(r===o)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=o,S(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=d(r,t.iterator,e.arg);if("throw"===a.type)return e.method="throw",e.arg=a.arg,e.delegate=null,y;var l=a.arg;return l?l.done?(e[t.resultName]=l.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=o),e.delegate=null,y):l:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,y)}function k(t){var o={tryLoc:t[0]};1 in t&&(o.catchLoc=t[1]),2 in t&&(o.finallyLoc=t[2],o.afterLoc=t[3]),this.tryEntries.push(o)}function M(t){var o=t.completion||{};o.type="normal",delete o.arg,t.completion=o}function E(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function L(t){if(t||""===t){var e=t[u];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,a=function e(){for(;++r=0;--r){var a=this.tryEntries[r],s=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var i=l.call(a,"catchLoc"),u=l.call(a,"finallyLoc");if(i&&u){if(this.prev=0;--e){var n=this.tryEntries[e];if(n.tryLoc<=this.prev&&l.call(n,"finallyLoc")&&this.prev=0;--o){var e=this.tryEntries[o];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),M(e),y}},catch:function(t){for(var o=this.tryEntries.length-1;o>=0;--o){var e=this.tryEntries[o];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var r=n.arg;M(e)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:L(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=o),y}},e}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports},735:t=>{function o(e){return t.exports=o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,o(e)}t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports},183:(t,o,e)=>{var n=e(24)();t.exports=n;try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},o={};function e(n){var r=o[n];if(void 0!==r)return r.exports;var a=o[n]={exports:{}};return t[n](a,a.exports,e),a.exports}e.n=t=>{var o=t&&t.__esModule?()=>t.default:()=>t;return e.d(o,{a:o}),o},e.d=(t,o)=>{for(var n in o)e.o(o,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:o[n]})},e.o=(t,o)=>Object.prototype.hasOwnProperty.call(t,o),e.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";e.r(n),e.d(n,{components:()=>wo,extend:()=>Bo,models:()=>Co,states:()=>Oo});const t=flarum.core.compat["forum/app"];var o=e.n(t);const r=flarum.core.compat["common/extend"],a=flarum.core.compat["common/components/Badge"];var l=e.n(a);const s=flarum.core.compat["forum/components/DiscussionList"];var i=e.n(s);const u=flarum.core.compat["common/models/Discussion"];var c=e.n(u);const p=flarum.core.compat["common/utils/classList"];var f=e.n(p);const d=flarum.core.compat["forum/components/DiscussionComposer"];var h=e.n(d);const v=flarum.core.compat["forum/components/ReplyComposer"];var g=e.n(v);function b(t,o,e,n,r,a,l){try{var s=t[a](l),i=s.value}catch(t){return void e(t)}s.done?o(i):Promise.resolve(i).then(n,r)}function y(t){return function(){var o=this,e=arguments;return new Promise((function(n,r){var a=t.apply(o,e);function l(t){b(a,n,r,l,s,"next",t)}function s(t){b(a,n,r,l,s,"throw",t)}l(void 0)}))}}function w(t,o){return w=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,o){return t.__proto__=o,t},w(t,o)}function P(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,w(t,o)}var N=e(183),x=e.n(N);const _=flarum.core.compat["common/components/Modal"];var V=e.n(_);const I=flarum.core.compat["common/Component"];var A=e.n(I);const C=flarum.core.compat["common/components/Button"];var O=e.n(C);const S=flarum.core.compat["common/components/Switch"];var k=e.n(S);const M=flarum.core.compat["common/utils/ItemList"];var E=e.n(M);const L=flarum.core.compat["common/utils/Stream"];var D=e.n(L);const B=flarum.core.compat["common/utils/extractText"];var U=e.n(B);function T(t){return T=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},T(t)}function j(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(j=function(){return!!t})()}function F(t){var o="function"==typeof Map?new Map:void 0;return F=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(o){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==o){if(o.has(t))return o.get(t);o.set(t,e)}function e(){return function(t,o,e){if(j())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,o);var r=new(t.bind.apply(t,n));return e&&w(r,e.prototype),r}(t,arguments,T(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),w(e,t)},F(t)}var q=function(t){function o(o){return t.call(this,o+"")||this}return P(o,t),o}(F(Error)),R=function(){function t(o){this.poll=void 0,this.loading=void 0,this.deleting=void 0,this.expandedGroup=void 0,o||(o=t.createNewPoll()),this.loading=!1,this.deleting=!1,this.poll=o,this.expandedGroup="setup"}t.createNewPoll=function(){var t=o().store.createRecord("polls");return t.pushAttributes({question:"",endDate:"",publicPoll:!1,allowMultipleVotes:!1,hideVotes:!1,allowChangeVote:!1,maxVotes:0}),t.tempOptions=[o().store.createRecord("poll_options"),o().store.createRecord("poll_options")],t};var e=t.prototype;return e.isExpanded=function(t){return this.expandedGroup===t},e.expand=function(t){this.expandedGroup=t,m.redraw()},e.save=function(){var t=y(x().mark((function t(o){return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.loading=!0,m.redraw(),t.prev=2,t.next=5,this.poll.save(o);case 5:this.poll=t.sent,delete this.poll.data.attributes.options;case 7:return t.prev=7,this.loading=!1,m.redraw(),t.finish(7);case 11:case"end":return t.stop()}}),t,this,[[2,,7,11]])})));return function(o){return t.apply(this,arguments)}}(),e.delete=function(){var t=y(x().mark((function t(){return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.loading=!0,m.redraw(),t.prev=2,t.next=5,this.poll.delete();case 5:this.deleting=!0;case 6:return t.prev=6,this.loading=!1,m.redraw(),t.finish(6);case 10:case"end":return t.stop()}}),t,this,[[2,,6,10]])})));return function(){return t.apply(this,arguments)}}(),t}();const H=flarum.core.compat["common/components/Page"];var G=e.n(H);const z=flarum.core.compat["common/components/LoadingIndicator"];var Y=e.n(z);const J=flarum.core.compat["common/components/LinkButton"];var W=e.n(J),K=function(t){function e(){for(var o,e=arguments.length,n=new Array(e),r=0;r0?Math.round(l/a*100):0,u=n.poll,c="number"==typeof l,p=n.loadingOptions||r&&!u.canChangeVote(),d=c?i:Number(s)/((null==(t=u.myVotes())?void 0:t.length)||1)*100,h=m("div",{className:"PollBar","data-selected":!!s,style:"--poll-option-width: "+d+"%"},n.showCheckMarks&&m("label",{className:"PollAnswer-checkbox checkbox"},m("input",{onchange:n.changeVote.bind(n,e),type:"checkbox",checked:s,disabled:p}),m("span",{className:"checkmark"})),m("div",{className:"PollAnswer-text"},m("span",{className:"PollAnswer-text-answer"},e.answer()),s&&!n.showCheckMarks&&ht()("fas fa-check-circle",{className:"PollAnswer-check"}),c&&m("span",{className:f()("PollPercent",100!==i&&"PollPercent--option")},i,"%")),e.imageUrl()?m("img",{className:"PollAnswer-image",src:e.imageUrl(),alt:e.answer()}):null);return m("div",{className:f()("PollOption",r&&"PollVoted",e.imageUrl()&&"PollOption-hasImage"),"data-id":e.id()},c?m(yt(),{text:o().translator.trans("fof-polls.forum.tooltip.votes",{count:l}),onremove:this.hideOptionTooltip},h):h)},n.hideOptionTooltip=function(t){t.attrs.tooltipVisible=!1,t.state.updateVisibility()},e}(A()),Pt=function(t){function o(){return t.apply(this,arguments)||this}P(o,t);var e=o.prototype;return e.view=function(){return m("div",{className:"Poll-options list-layout"},this.pollOptions().toArray())},e.pollOptions=function(){var t=this,o=new(E());return this.attrs.options.forEach((function(e){o.add("option"+e.id(),t.createOptionView(e))})),o},e.createOptionView=function(t){return m(wt,{name:this.attrs.name,option:t,state:this.attrs.state})},o}(A()),Nt=function(t){function o(){for(var o,e=arguments.length,n=new Array(e),r=0;r0},e.overallVoteCount=function(){return this.poll.voteCount()},e.hasVotedFor=function(t){return this.pendingOptions?this.pendingOptions.has(t.id()):this.poll.myVotes().some((function(o){return o.option()===t}))},e.getMaxVotes=function(){var t=this.poll,o=t.allowMultipleVotes()?t.maxVotes():1;return 0===o&&(o=t.options().length),o},e.showButton=function(){return this.useSubmitUI&&this.pendingSubmit},e.changeVote=function(t,e){var n=e.target;if(!o().session.user)return o().modal.show(_t()),void(n.checked=!1);var r=this.pendingOptions||new Set(this.poll.myVotes().map((function(t){return t.option().id()}))),a=r.delete(t.id());if(this.poll.allowMultipleVotes()||r.clear(),a||r.add(t.id()),this.pendingOptions=r.size?r:null,this.pendingSubmit=!!this.pendingOptions,this.useSubmitUI)return this.pendingOptions=r.size?r:null,this.pendingSubmit=!!this.pendingOptions,void m.redraw();this.submit(r,null,(function(){return n.checked=a}))},e.hasSelectedOptions=function(){return this.pendingSubmit},e.onsubmit=function(){var t=this;return this.submit(this.pendingOptions,(function(){t.pendingOptions=null,t.pendingSubmit=!1}))},e.submit=function(t,e,n){var r=this;return void 0===n&&(n=null),this.loadingOptions=!0,m.redraw(),o().request({method:"PATCH",url:o().forum.attribute("apiUrl")+"/fof/polls/"+this.poll.id()+"/votes",body:{data:{optionIds:Array.from(t)}}}).then((function(t){o().store.pushPayload(t),null==e||e()})).catch((function(t){null==n||n(t)})).finally((function(){r.loadingOptions=!1,r.canSeeVoteCount="number"==typeof r.poll.voteCount(),m.redraw()}))},t}(),kt=function(t){function e(){return t.apply(this,arguments)||this}P(e,t);var n=e.prototype;return n.view=function(){var t=this,e=this.attrs.state;return m(O(),{className:"Button Button--primary Poll-submit",loading:e.loadingOptions,onclick:function(o){return t.pollButtonSubmit(e,o)},disabled:!e.hasSelectedOptions()},o().translator.trans("fof-polls.forum.poll.submit_button"))},n.pollButtonSubmit=function(t,o){t.onsubmit()},e}(A());const Mt=flarum.core.compat["common/utils/string"];var Et=function(t){function o(){return t.apply(this,arguments)||this}P(o,t);var e=o.prototype;return e.view=function(){return m("div",{className:"Poll-title-component"},this.pollTitleItems().toArray())},e.pollTitleItems=function(){var t=new(E());return t.add("title",m("h2",{className:"Poll-title"},this.attrs.poll.question())),t},o}(A()),Lt=function(t){function o(){return t.apply(this,arguments)||this}P(o,t);var e=o.prototype;return e.view=function(){if(this.attrs.poll.subtitle())return m("div",{className:"Poll-subtitle-component"},this.pollSubtitleItems().toArray())},e.pollSubtitleItems=function(){var t=new(E());return t.add("subtitle",m("p",{className:"Poll-subtitle"},this.attrs.poll.subtitle())),t},o}(A()),Dt=function(t){function e(){for(var o,e=arguments.length,n=new Array(e),r=0;rt.length)&&(o=t.length);for(var e=0,n=new Array(o);e=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(this.pages);!(o=e()).done;){var n=o.value,r=n.items.indexOf(t);if(-1!==r){n.items.splice(r,1);break}}var a=this.extraPolls.indexOf(t);-1!==a&&this.extraPolls.splice(a),m.redraw()},a.addPoll=function(t){this.removePoll(t),this.extraPolls.unshift(t),m.redraw()},a.getAllItems=function(){return this.extraPolls.concat(t.prototype.getAllItems.call(this))},a.getPages=function(){var o=t.prototype.getPages.call(this);return this.extraPolls.length?[{number:-1,items:this.extraPolls}].concat(o):o},n=e,(r=[{key:"type",get:function(){return"fof/polls"}}])&&Gt(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),e}(Yt()),Qt=function(t){function e(){return t.apply(this,arguments)||this}P(e,t);var n=e.prototype;return n.oninit=function(e){t.prototype.oninit.call(this,e),o().forum.attribute("globalPollsEnabled")?(this.state=new Kt({sort:m.route.param("sort"),filter:m.route.param("filter")}),this.state.refresh(),o().setTitle(U()(o().translator.trans("fof-polls.forum.page.nav")))):m.route.set("/")},n.view=function(){return this.loading?m(Y(),null):this.poll?m("div",{className:"PollsListPage"},m("div",{className:"container"},m(Dt,{poll:this.poll}))):m("div",{className:"PollsListPage"},t.prototype.hero.call(this),m("div",{className:"container"},m("div",{className:"sideNavContainer"},m("nav",{className:"PollsListPage-nav sideNav"},m("ul",null,X()(this.sidebarItems().toArray()))),m("div",{className:"PollsPage-results sideNavOffset"},m("div",{className:"IndexPage-toolbar"},m("ul",{className:"IndexPage-toolbar-view"},X()(this.viewItems().toArray())),m("ul",{className:"IndexPage-toolbar-action"},X()(this.actionItems().toArray()))),m(qt,{state:this.state})))))},n.sidebarItems=function(){var t=this,e=new(E()),n=o().forum.attribute("canStartGlobalPolls");return e.add("newGlobalPoll",m(O(),{icon:"fas fa-edit",className:"Button Button--primary App-primaryControl PollsPage-newPoll",itemClassName:"App-primaryControl",onclick:function(){t.newPollAction()},disabled:!n},o().translator.trans("fof-polls.forum.poll."+(n?"start_poll_button":"cannot_start_poll_button")))),e.add("nav",m(tt(),{buttonClassName:"Button",className:"App-titleControl",accessibleToggleLabel:o().translator.trans("core.forum.index.toggle_sidenav_dropdown_accessible_label")},this.navItems().toArray())),e},n.actionItems=function(){var t=this,e=new(E());return e.add("refresh",O().component({title:o().translator.trans("fof-polls.forum.page.refresh_tooltip"),icon:"fas fa-sync",className:"Button Button--icon",onclick:function(){t.state.refresh()}})),e},n.viewItems=function(){return et().prototype.viewItems()},n.navItems=function(){return et().prototype.navItems()},n.newPollAction=function(){o().session.user?m.route.set(o().route("fof.polls.compose")):o().modal.show(_t())},e}(Bt);const Xt=flarum.core.compat["common/components/Separator"];var Zt=e.n(Xt);const to={controls:function(t,o){var e=this,n=new(E());return["poll","moderation","destructive"].forEach((function(r){var a=e[r+"Controls"](t,o).toArray();a.length&&(a.forEach((function(t){return n.add(t.itemName,t)})),n.add(r+"Separator",m(Zt(),null)))})),n},pollControls:function(t,o){return new(E())},moderationControls:function(t,e){var n=new(E());return t.canEdit()&&n.add("edit",m(O(),{icon:"fas fa-pencil-alt",onclick:this.editAction.bind(this,t)},o().translator.trans("fof-polls.forum.poll_controls.edit_label"))),n},destructiveControls:function(t,e){var n=new(E());return t.canDelete()&&n.add("delete",m(O(),{icon:"far fa-trash-alt",onclick:this.deleteAction.bind(this,t)},o().translator.trans("fof-polls.forum.poll_controls.delete_label"))),n},deleteAction:function(t){var e=this;return y(x().mark((function n(){return x().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(confirm(o().translator.trans("fof-polls.forum.poll_controls.delete_confirmation"))){n.next=2;break}return n.abrupt("return");case 2:return n.abrupt("return",t.delete().then((function(){e.showDeletionAlert(t,"success"),o().current.matches(nt,{id:t.id()})||o().current.matches(Qt,{id:t.id()})?o().history.back():window.location.reload()})).catch((function(){return e.showDeletionAlert(t,"error")})));case 3:case"end":return n.stop()}}),n)})))()},showDeletionAlert:function(t,e){var n={success:"fof-polls.forum.poll_controls.delete_success_message",error:"fof-polls.forum.poll_controls.delete_error_message"}[e];o().alerts.show({type:e},o().translator.trans(n,{poll:t}))},editAction:function(t){m.route.set(o().route("fof.polls.compose",{id:t.id()}))}};function oo(){return oo=Object.assign?Object.assign.bind():function(t){for(var o=1;o').appendTo("body").hide().trigger("click").on("change",(function(e){var n=new FormData;n.append(t.attrs.name,$(e.target)[0].files[0]),t.loading=!0,m.redraw(),o().request({method:"POST",url:t.resourceUrl(),serialize:function(t){return t},body:n}).then(t.success.bind(t),t.failure.bind(t))}))},n.remove=function(){this.loading=!0,m.redraw(),o().request({method:"DELETE",url:this.resourceUrl()}).then(this.success.bind(this),this.failure.bind(this))},n.resourceUrl=function(){var t=o().forum.attribute("apiUrl")+"/fof/polls/"+this.attrs.name,e=this.attrs.poll;return null!=e&&e.exists&&(t+="/"+(null==e?void 0:e.id())),t},n.success=function(t){var o,e;this.loading=!1,this.uploadedImageUrl=null==t?void 0:t.fileUrl,this.fileName=null==t?void 0:t.fileName,null==(o=(e=this.attrs).onUpload)||o.call(e,null==t?void 0:t.fileName),m.redraw()},n.failure=function(t){this.loading=!1,m.redraw()},e}(O()),no=function(t){function e(){for(var o,e=arguments.length,n=new Array(e),r=0;r=2?O().component({type:"button",className:"Button PollModal--button Button--icon",icon:"fas fa-minus",onclick:n>=2?t.removeOption.bind(t,n):""}):"")}))},n.addOption=function(){var t=Math.max(o().forum.attribute("pollMaxOptions"),2);this.options.lengtht.length)&&(o=t.length);for(var e=0,n=new Array(o);e0;return!o().session.user||r.canVote()||r.hasEnded()||n.add("no-permission",m("span",null,m("i",{className:"icon fas fa-times-circle fa-fw"}),o().translator.trans("fof-polls.forum.no_permission"))),r.endDate()&&n.add("end-date",m("span",null,m("i",{class:"icon fas fa-clock fa-fw"}),r.hasEnded()?o().translator.trans("fof-polls.forum.poll_ended"):o().translator.trans("fof-polls.forum.days_remaining",{time:dayjs(r.endDate()).fromNow()}))),r.canVote()&&(n.add("max-votes",m("span",null,m("i",{className:"icon fas fa-poll fa-fw"}),o().translator.trans("fof-polls.forum.max_votes_allowed",{max:t}))),r.canChangeVote()||n.add("cannot-change-vote",m("span",null,m("i",{className:"icon fas fa-"+(a?"times":"exclamation")+"-circle fa-fw"}),o().translator.trans("fof-polls.forum.poll.cannot_change_vote")))),n},n.viewOption=function(t){var e,n,r,a=this.attrs.poll,l=(null==(e=a.myVotes())?void 0:e.length)>0,s=a.voteCount(),i=this.pendingOptions?this.pendingOptions.has(t.id()):null==(n=a.myVotes())||null==n.some?void 0:n.some((function(o){return o.option()===t})),u=t.voteCount(),c=s>0?Math.round(u/s*100):0,p="number"==typeof u,d=this.loadingOptions||l&&!a.canChangeVote(),h=p?c:Number(i)/((null==(r=a.myVotes())?void 0:r.length)||1)*100,v=!o().session.user||!a.hasEnded()&&a.canVote()&&(!l||a.canChangeVote()),g=m("div",{className:"PollBar","data-selected":!!i,style:"--poll-option-width: "+h+"%"},v&&m("label",{className:"PollAnswer-checkbox checkbox"},m("input",{onchange:this.changeVote.bind(this,t),type:"checkbox",checked:i,disabled:d}),m("span",{className:"checkmark"})),m("div",{className:"PollAnswer-text"},m("span",{className:"PollAnswer-text-answer"},t.answer()),i&&!v&&ht()("fas fa-check-circle",{className:"PollAnswer-check"}),p&&m("span",{className:f()("PollPercent",100!==c&&"PollPercent--option")},c,"%")),t.imageUrl()?m("img",{className:"PollAnswer-image",src:t.imageUrl(),alt:t.answer()}):null);return m("div",{className:f()("PollOption",l&&"PollVoted",a.hasEnded()&&"PollEnded",t.imageUrl()&&"PollOption-hasImage"),"data-id":t.id()},p?m(yt(),{text:o().translator.trans("fof-polls.forum.tooltip.votes",{count:u}),onremove:this.hideOptionTooltip},g):g)},n.changeVote=function(t,e){var n,r;if(!o().session.user)return o().modal.show(_t()),void(e.target.checked=!1);var a=this.pendingOptions||new Set(null==(n=(r=this.attrs.poll.myVotes()).map)?void 0:n.call(r,(function(t){return t.option().id()}))),l=a.delete(t.id());return this.attrs.poll.allowMultipleVotes()||a.clear(),l||a.add(t.id()),this.useSubmitUI?(this.pendingOptions=a.size?a:null,void(this.pendingSubmit=!!this.pendingOptions)):this.submit(a,null,(function(){return e.target.checked=l}))},n.onsubmit=function(){var t=this;return this.submit(this.pendingOptions,(function(){t.pendingOptions=null,t.pendingSubmit=!1}))},n.submit=function(t,e,n){var r=this;return this.loadingOptions=!0,m.redraw(),o().request({method:"PATCH",url:o().forum.attribute("apiUrl")+"/fof/polls/"+this.attrs.poll.id()+"/votes",body:{data:{optionIds:Array.from(t)}}}).then((function(t){o().store.pushPayload(t),null==e||e()})).catch((function(t){null==n||n(t)})).finally((function(){r.loadingOptions=!1,m.redraw()}))},n.showVoters=function(){o().modal.show(Ot,{poll:this.attrs.poll,post:this.attrs.post})},n.deletePoll=function(){confirm(U()(o().translator.trans("fof-polls.forum.moderation.delete_confirm")))&&this.attrs.poll.delete().then((function(){m.redraw.sync()}))},n.hideOptionTooltip=function(t){t.attrs.tooltipVisible=!1,t.state.updateVisibility()},n.preventClose=function(t){if(this.pendingOptions)return t.preventDefault(),!0},e}(A()),go=function(t){function o(){for(var o,e=arguments.length,n=new Array(e),r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(o.polls());!(e=n()).done;){var r=e.value;r&&t.push(m(Dt,{poll:r}))}})),(0,r.extend)(io().prototype,"oninit",(function(){var t=this;this.subtree.check((function(){var o=t.attrs.post.polls(),e=null==o||null==o.map?void 0:o.map((function(t){var o,e,n,r,a;return t&&[null==(o=t.data)?void 0:o.attributes,null==(e=(n=t.options()).map)?void 0:e.call(n,(function(t){var o;return null==t||null==(o=t.data)?void 0:o.attributes})),null==(r=(a=t.myVotes()).map)?void 0:r.call(a,(function(t){var o;return null==(o=t.option())?void 0:o.id()}))]}));return JSON.stringify(e)}))})),(0,r.extend)(co().prototype,"oncreate",(function(){o().pusher&&o().pusher.then((function(t){t.channels.main.bind("updatedPollOptions",(function(t){var e=o().store.getById("polls",t.pollId);e&&e.pushAttributes({voteCount:t.pollVoteCount});var n=t.options;for(var r in n){var a=o().store.getById("poll_options",r);a&&void 0!==a.voteCount()&&a.pushAttributes({voteCount:n[r]})}m.redraw()}))}))})),(0,r.extend)(co().prototype,"onremove",(function(){o().pusher&&o().pusher.then((function(t){t.channels.main.unbind("updatedPollOptions")}))})),t=function(t){return o().modal.show(ro,{onsubmit:function(e){return o().store.createRecord("polls").save(oo({},e,{relationships:{post:t}}),{data:{include:"options,myVotes,myVotes.option"}}).then((function(o){var e;return null==(e=t.rawRelationship("polls"))||null==e.push||e.push({type:"polls",id:o.id()}),o}))}})},(0,r.extend)(fo(),"moderationControls",(function(e,n){!n.isHidden()&&n.canStartPoll()&&e.add("addPoll",m(O(),{icon:"fas fa-poll",onclick:t.bind(this,n)},o().translator.trans("fof-polls.forum.moderation.add")))})),(0,r.extend)(et().prototype,"navItems",(function(t){o().forum.attribute("globalPollsEnabled")&&(t.add("fof-polls-showcase",W().component({href:o().route("fof.polls.showcase"),icon:"fas fa-poll"},o().translator.trans("fof-polls.forum.page.nav")),35),o().forum.attribute("canStartGlobalPolls")&&t.add("fof-polls-list",W().component({href:o().route("fof.polls.list"),icon:"fas fa-list"},o().translator.trans("fof-polls.forum.page.nav-all")),32))}))}))})(),module.exports=n})(); +(()=>{var t={24:(t,o,e)=>{var n=e(735).default;function r(){"use strict";t.exports=r=function(){return e},t.exports.__esModule=!0,t.exports.default=t.exports;var o,e={},a=Object.prototype,l=a.hasOwnProperty,s=Object.defineProperty||function(t,o,e){t[o]=e.value},i="function"==typeof Symbol?Symbol:{},u=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",p=i.toStringTag||"@@toStringTag";function m(t,o,e){return Object.defineProperty(t,o,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[o]}try{m({},"")}catch(o){m=function(t,o,e){return t[o]=e}}function f(t,o,e,n){var r=o&&o.prototype instanceof w?o:w,a=Object.create(r.prototype),l=new E(n||[]);return s(a,"_invoke",{value:O(t,e,l)}),a}function d(t,o,e){try{return{type:"normal",arg:t.call(o,e)}}catch(t){return{type:"throw",arg:t}}}e.wrap=f;var h="suspendedStart",v="suspendedYield",g="executing",b="completed",y={};function w(){}function P(){}function N(){}var x={};m(x,u,(function(){return this}));var _=Object.getPrototypeOf,V=_&&_(_(L([])));V&&V!==a&&l.call(V,u)&&(x=V);var I=N.prototype=w.prototype=Object.create(x);function A(t){["next","throw","return"].forEach((function(o){m(t,o,(function(t){return this._invoke(o,t)}))}))}function C(t,o){function e(r,a,s,i){var u=d(t[r],t,a);if("throw"!==u.type){var c=u.arg,p=c.value;return p&&"object"==n(p)&&l.call(p,"__await")?o.resolve(p.__await).then((function(t){e("next",t,s,i)}),(function(t){e("throw",t,s,i)})):o.resolve(p).then((function(t){c.value=t,s(c)}),(function(t){return e("throw",t,s,i)}))}i(u.arg)}var r;s(this,"_invoke",{value:function(t,n){function a(){return new o((function(o,r){e(t,n,o,r)}))}return r=r?r.then(a,a):a()}})}function O(t,e,n){var r=h;return function(a,l){if(r===g)throw new Error("Generator is already running");if(r===b){if("throw"===a)throw l;return{value:o,done:!0}}for(n.method=a,n.arg=l;;){var s=n.delegate;if(s){var i=S(s,n);if(i){if(i===y)continue;return i}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===h)throw r=b,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=g;var u=d(t,e,n);if("normal"===u.type){if(r=n.done?b:v,u.arg===y)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=b,n.method="throw",n.arg=u.arg)}}}function S(t,e){var n=e.method,r=t.iterator[n];if(r===o)return e.delegate=null,"throw"===n&&t.iterator.return&&(e.method="return",e.arg=o,S(t,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=d(r,t.iterator,e.arg);if("throw"===a.type)return e.method="throw",e.arg=a.arg,e.delegate=null,y;var l=a.arg;return l?l.done?(e[t.resultName]=l.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=o),e.delegate=null,y):l:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,y)}function k(t){var o={tryLoc:t[0]};1 in t&&(o.catchLoc=t[1]),2 in t&&(o.finallyLoc=t[2],o.afterLoc=t[3]),this.tryEntries.push(o)}function M(t){var o=t.completion||{};o.type="normal",delete o.arg,t.completion=o}function E(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function L(t){if(t||""===t){var e=t[u];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,a=function e(){for(;++r=0;--r){var a=this.tryEntries[r],s=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var i=l.call(a,"catchLoc"),u=l.call(a,"finallyLoc");if(i&&u){if(this.prev=0;--e){var n=this.tryEntries[e];if(n.tryLoc<=this.prev&&l.call(n,"finallyLoc")&&this.prev=0;--o){var e=this.tryEntries[o];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),M(e),y}},catch:function(t){for(var o=this.tryEntries.length-1;o>=0;--o){var e=this.tryEntries[o];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var r=n.arg;M(e)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:L(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=o),y}},e}t.exports=r,t.exports.__esModule=!0,t.exports.default=t.exports},735:t=>{function o(e){return t.exports=o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t.exports.__esModule=!0,t.exports.default=t.exports,o(e)}t.exports=o,t.exports.__esModule=!0,t.exports.default=t.exports},183:(t,o,e)=>{var n=e(24)();t.exports=n;try{regeneratorRuntime=n}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},o={};function e(n){var r=o[n];if(void 0!==r)return r.exports;var a=o[n]={exports:{}};return t[n](a,a.exports,e),a.exports}e.n=t=>{var o=t&&t.__esModule?()=>t.default:()=>t;return e.d(o,{a:o}),o},e.d=(t,o)=>{for(var n in o)e.o(o,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:o[n]})},e.o=(t,o)=>Object.prototype.hasOwnProperty.call(t,o),e.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};(()=>{"use strict";e.r(n),e.d(n,{components:()=>wo,extend:()=>Uo,models:()=>Co,states:()=>Oo,utils:()=>So});const t=flarum.core.compat["forum/app"];var o=e.n(t);const r=flarum.core.compat["common/extend"],a=flarum.core.compat["common/components/Badge"];var l=e.n(a);const s=flarum.core.compat["forum/components/DiscussionList"];var i=e.n(s);const u=flarum.core.compat["common/models/Discussion"];var c=e.n(u);const p=flarum.core.compat["common/utils/classList"];var f=e.n(p);const d=flarum.core.compat["forum/components/DiscussionComposer"];var h=e.n(d);const v=flarum.core.compat["forum/components/ReplyComposer"];var g=e.n(v);function b(t,o,e,n,r,a,l){try{var s=t[a](l),i=s.value}catch(t){return void e(t)}s.done?o(i):Promise.resolve(i).then(n,r)}function y(t){return function(){var o=this,e=arguments;return new Promise((function(n,r){var a=t.apply(o,e);function l(t){b(a,n,r,l,s,"next",t)}function s(t){b(a,n,r,l,s,"throw",t)}l(void 0)}))}}function w(t,o){return w=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,o){return t.__proto__=o,t},w(t,o)}function P(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,w(t,o)}var N=e(183),x=e.n(N);const _=flarum.core.compat["common/components/Modal"];var V=e.n(_);const I=flarum.core.compat["common/Component"];var A=e.n(I);const C=flarum.core.compat["common/components/Button"];var O=e.n(C);const S=flarum.core.compat["common/components/Switch"];var k=e.n(S);const M=flarum.core.compat["common/utils/ItemList"];var E=e.n(M);const L=flarum.core.compat["common/utils/Stream"];var D=e.n(L);const B=flarum.core.compat["common/utils/extractText"];var U=e.n(B);function T(t){return T=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},T(t)}function j(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(j=function(){return!!t})()}function F(t){var o="function"==typeof Map?new Map:void 0;return F=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(o){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==o){if(o.has(t))return o.get(t);o.set(t,e)}function e(){return function(t,o,e){if(j())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,o);var r=new(t.bind.apply(t,n));return e&&w(r,e.prototype),r}(t,arguments,T(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),w(e,t)},F(t)}var q=function(t){function o(o){return t.call(this,o+"")||this}return P(o,t),o}(F(Error)),R=function(){function t(o){this.poll=void 0,this.loading=void 0,this.deleting=void 0,this.expandedGroup=void 0,o||(o=t.createNewPoll()),this.loading=!1,this.deleting=!1,this.poll=o,this.expandedGroup="setup"}t.createNewPoll=function(){var t=o().store.createRecord("polls");return t.pushAttributes({question:"",endDate:"",publicPoll:!1,allowMultipleVotes:!1,hideVotes:!1,allowChangeVote:!1,maxVotes:0}),t.tempOptions=[o().store.createRecord("poll_options"),o().store.createRecord("poll_options")],t};var e=t.prototype;return e.isExpanded=function(t){return this.expandedGroup===t},e.expand=function(t){this.expandedGroup=t,m.redraw()},e.save=function(){var t=y(x().mark((function t(o){return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.loading=!0,m.redraw(),t.prev=2,t.next=5,this.poll.save(o);case 5:this.poll=t.sent,delete this.poll.data.attributes.options;case 7:return t.prev=7,this.loading=!1,m.redraw(),t.finish(7);case 11:case"end":return t.stop()}}),t,this,[[2,,7,11]])})));return function(o){return t.apply(this,arguments)}}(),e.delete=function(){var t=y(x().mark((function t(){return x().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.loading=!0,m.redraw(),t.prev=2,t.next=5,this.poll.delete();case 5:this.deleting=!0;case 6:return t.prev=6,this.loading=!1,m.redraw(),t.finish(6);case 10:case"end":return t.stop()}}),t,this,[[2,,6,10]])})));return function(){return t.apply(this,arguments)}}(),t}();const H=flarum.core.compat["common/components/Page"];var G=e.n(H);const z=flarum.core.compat["common/components/LoadingIndicator"];var Y=e.n(z);const J=flarum.core.compat["common/components/LinkButton"];var W=e.n(J),K=function(t){function e(){for(var o,e=arguments.length,n=new Array(e),r=0;r0?Math.round(l/a*100):0,u=n.poll,c="number"==typeof l,p=n.loadingOptions||r&&!u.canChangeVote(),d=c?i:Number(s)/((null==(t=u.myVotes())?void 0:t.length)||1)*100,h=m("div",{className:"PollBar","data-selected":!!s,style:"--poll-option-width: "+d+"%"},n.showCheckMarks&&m("label",{className:"PollAnswer-checkbox checkbox"},m("input",{onchange:n.changeVote.bind(n,e),type:"checkbox",checked:s,disabled:p}),m("span",{className:"checkmark"})),m("div",{className:"PollAnswer-text"},this.optionDisplayItems().toArray()),e.imageUrl()?m("img",{className:"PollAnswer-image",src:e.imageUrl(),alt:e.answer()}):null);return m("div",{className:f()("PollOption",r&&"PollVoted",e.imageUrl()&&"PollOption-hasImage"),"data-id":e.id()},c?m(yt(),{text:o().translator.trans("fof-polls.forum.tooltip.votes",{count:l}),onremove:this.hideOptionTooltip},h):h)},n.hideOptionTooltip=function(t){t.attrs.tooltipVisible=!1,t.state.updateVisibility()},n.optionDisplayItems=function(){var t=new(E()),o=this.attrs.option,e=this.attrs.state,n=e.hasVotedFor(o),r=o.voteCount(),a=e.overallVoteCount(),l="number"==typeof r,s=a>0?Math.round(r/a*100):0;return t.add("answer",m("span",{className:"PollAnswer-text-answer"},o.answer())),n&&!e.showCheckMarks&&t.add("check",ht()("fas fa-check-circle",{className:"PollAnswer-check"})),l&&t.add("percent",m("span",{className:f()("PollPercent",100!==s&&"PollPercent--option")},s,"%")),t},e}(A()),Pt=function(t){function o(){return t.apply(this,arguments)||this}P(o,t);var e=o.prototype;return e.view=function(){return m("div",{className:"Poll-options list-layout"},this.pollOptions().toArray())},e.pollOptions=function(){var t=this,o=new(E());return this.attrs.options.forEach((function(e){o.add("option"+e.id(),t.createOptionView(e))})),o},e.createOptionView=function(t){return m(wt,{name:this.attrs.name,option:t,state:this.attrs.state})},o}(A()),Nt=function(t){function o(){for(var o,e=arguments.length,n=new Array(e),r=0;r0},e.overallVoteCount=function(){return this.poll.voteCount()},e.hasVotedFor=function(t){return this.pendingOptions?this.pendingOptions.has(t.id()):this.poll.myVotes().some((function(o){return o.option()===t}))},e.getMaxVotes=function(){var t=this.poll,o=t.allowMultipleVotes()?t.maxVotes():1;return 0===o&&(o=t.options().length),o},e.showButton=function(){return this.useSubmitUI&&this.pendingSubmit},e.changeVote=function(t,e){var n=e.target;if(!o().session.user)return o().modal.show(_t()),void(n.checked=!1);var r=this.pendingOptions||new Set(this.poll.myVotes().map((function(t){return t.option().id()}))),a=r.delete(t.id());if(this.poll.allowMultipleVotes()||r.clear(),a||r.add(t.id()),this.pendingOptions=r.size?r:null,this.pendingSubmit=!!this.pendingOptions,this.useSubmitUI)return this.pendingOptions=r.size?r:null,this.pendingSubmit=!!this.pendingOptions,void m.redraw();this.submit(r,null,(function(){return n.checked=a}))},e.hasSelectedOptions=function(){return this.pendingSubmit},e.onsubmit=function(){var t=this;return this.submit(this.pendingOptions,(function(){t.pendingOptions=null,t.pendingSubmit=!1}))},e.submit=function(t,e,n){var r=this;return void 0===n&&(n=null),this.loadingOptions=!0,m.redraw(),o().request({method:"PATCH",url:o().forum.attribute("apiUrl")+"/fof/polls/"+this.poll.id()+"/votes",body:{data:{optionIds:Array.from(t)}}}).then((function(t){o().store.pushPayload(t),null==e||e()})).catch((function(t){null==n||n(t)})).finally((function(){r.loadingOptions=!1,r.canSeeVoteCount="number"==typeof r.poll.voteCount(),m.redraw()}))},t}(),kt=function(t){function e(){return t.apply(this,arguments)||this}P(e,t);var n=e.prototype;return n.view=function(){var t=this,e=this.attrs.state;return m(O(),{className:"Button Button--primary Poll-submit",loading:e.loadingOptions,onclick:function(o){return t.pollButtonSubmit(e,o)},disabled:!e.hasSelectedOptions()},o().translator.trans("fof-polls.forum.poll.submit_button"))},n.pollButtonSubmit=function(t,o){t.onsubmit()},e}(A());const Mt=flarum.core.compat["common/utils/string"];var Et=function(t){function o(){return t.apply(this,arguments)||this}P(o,t);var e=o.prototype;return e.view=function(){return m("div",{className:"Poll-title-component"},this.pollTitleItems().toArray())},e.pollTitleItems=function(){var t=new(E());return t.add("title",m("h2",{className:"Poll-title"},this.attrs.poll.question())),t},o}(A()),Lt=function(t){function o(){return t.apply(this,arguments)||this}P(o,t);var e=o.prototype;return e.view=function(){if(this.attrs.poll.subtitle())return m("div",{className:"Poll-subtitle-component"},this.pollSubtitleItems().toArray())},e.pollSubtitleItems=function(){var t=new(E());return t.add("subtitle",m("p",{className:"Poll-subtitle"},this.attrs.poll.subtitle())),t},o}(A()),Dt=function(t){function e(){for(var o,e=arguments.length,n=new Array(e),r=0;rt.length)&&(o=t.length);for(var e=0,n=new Array(o);e=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(this.pages);!(o=e()).done;){var n=o.value,r=n.items.indexOf(t);if(-1!==r){n.items.splice(r,1);break}}var a=this.extraPolls.indexOf(t);-1!==a&&this.extraPolls.splice(a),m.redraw()},a.addPoll=function(t){this.removePoll(t),this.extraPolls.unshift(t),m.redraw()},a.getAllItems=function(){return this.extraPolls.concat(t.prototype.getAllItems.call(this))},a.getPages=function(){var o=t.prototype.getPages.call(this);return this.extraPolls.length?[{number:-1,items:this.extraPolls}].concat(o):o},n=e,(r=[{key:"type",get:function(){return"fof/polls"}}])&&Gt(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),e}(Yt()),Qt=function(t){function e(){return t.apply(this,arguments)||this}P(e,t);var n=e.prototype;return n.oninit=function(e){t.prototype.oninit.call(this,e),o().forum.attribute("globalPollsEnabled")?(this.state=new Kt({sort:m.route.param("sort"),filter:m.route.param("filter")}),this.state.refresh(),o().setTitle(U()(o().translator.trans("fof-polls.forum.page.nav")))):m.route.set("/")},n.view=function(){return this.loading?m(Y(),null):this.poll?m("div",{className:"PollsListPage"},m("div",{className:"container"},m(Dt,{poll:this.poll}))):m("div",{className:"PollsListPage"},t.prototype.hero.call(this),m("div",{className:"container"},m("div",{className:"sideNavContainer"},m("nav",{className:"PollsListPage-nav sideNav"},m("ul",null,X()(this.sidebarItems().toArray()))),m("div",{className:"PollsPage-results sideNavOffset"},m("div",{className:"IndexPage-toolbar"},m("ul",{className:"IndexPage-toolbar-view"},X()(this.viewItems().toArray())),m("ul",{className:"IndexPage-toolbar-action"},X()(this.actionItems().toArray()))),m(qt,{state:this.state})))))},n.sidebarItems=function(){var t=this,e=new(E()),n=o().forum.attribute("canStartGlobalPolls");return e.add("newGlobalPoll",m(O(),{icon:"fas fa-edit",className:"Button Button--primary App-primaryControl PollsPage-newPoll",itemClassName:"App-primaryControl",onclick:function(){t.newPollAction()},disabled:!n},o().translator.trans("fof-polls.forum.poll."+(n?"start_poll_button":"cannot_start_poll_button")))),e.add("nav",m(tt(),{buttonClassName:"Button",className:"App-titleControl",accessibleToggleLabel:o().translator.trans("core.forum.index.toggle_sidenav_dropdown_accessible_label")},this.navItems().toArray())),e},n.actionItems=function(){var t=this,e=new(E());return e.add("refresh",O().component({title:o().translator.trans("fof-polls.forum.page.refresh_tooltip"),icon:"fas fa-sync",className:"Button Button--icon",onclick:function(){t.state.refresh()}})),e},n.viewItems=function(){return et().prototype.viewItems()},n.navItems=function(){return et().prototype.navItems()},n.newPollAction=function(){o().session.user?m.route.set(o().route("fof.polls.compose")):o().modal.show(_t())},e}(Bt);const Xt=flarum.core.compat["common/components/Separator"];var Zt=e.n(Xt);const to={controls:function(t,o){var e=this,n=new(E());return["poll","moderation","destructive"].forEach((function(r){var a=e[r+"Controls"](t,o).toArray();a.length&&(a.forEach((function(t){return n.add(t.itemName,t)})),n.add(r+"Separator",m(Zt(),null)))})),n},pollControls:function(t,o){return new(E())},moderationControls:function(t,e){var n=new(E());return t.canEdit()&&n.add("edit",m(O(),{icon:"fas fa-pencil-alt",onclick:this.editAction.bind(this,t)},o().translator.trans("fof-polls.forum.poll_controls.edit_label"))),n},destructiveControls:function(t,e){var n=new(E());return t.canDelete()&&n.add("delete",m(O(),{icon:"far fa-trash-alt",onclick:this.deleteAction.bind(this,t)},o().translator.trans("fof-polls.forum.poll_controls.delete_label"))),n},deleteAction:function(t){var e=this;return y(x().mark((function n(){return x().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(confirm(o().translator.trans("fof-polls.forum.poll_controls.delete_confirmation"))){n.next=2;break}return n.abrupt("return");case 2:return n.abrupt("return",t.delete().then((function(){e.showDeletionAlert(t,"success"),o().current.matches(nt,{id:t.id()})||o().current.matches(Qt,{id:t.id()})?o().history.back():window.location.reload()})).catch((function(){return e.showDeletionAlert(t,"error")})));case 3:case"end":return n.stop()}}),n)})))()},showDeletionAlert:function(t,e){var n={success:"fof-polls.forum.poll_controls.delete_success_message",error:"fof-polls.forum.poll_controls.delete_error_message"}[e];o().alerts.show({type:e},o().translator.trans(n,{poll:t}))},editAction:function(t){m.route.set(o().route("fof.polls.compose",{id:t.id()}))}};function oo(){return oo=Object.assign?Object.assign.bind():function(t){for(var o=1;o').appendTo("body").hide().trigger("click").on("change",(function(e){var n=new FormData;n.append(t.attrs.name,$(e.target)[0].files[0]),t.loading=!0,m.redraw(),o().request({method:"POST",url:t.resourceUrl(),serialize:function(t){return t},body:n}).then(t.success.bind(t),t.failure.bind(t))}))},n.remove=function(){this.loading=!0,m.redraw(),o().request({method:"DELETE",url:this.resourceUrl()}).then(this.success.bind(this),this.failure.bind(this))},n.resourceUrl=function(){var t=o().forum.attribute("apiUrl")+"/fof/polls/"+this.attrs.name,e=this.attrs.poll;return null!=e&&e.exists&&(t+="/"+(null==e?void 0:e.id())),t},n.success=function(t){var o,e;this.loading=!1,this.uploadedImageUrl=null==t?void 0:t.fileUrl,this.fileName=null==t?void 0:t.fileName,null==(o=(e=this.attrs).onUpload)||o.call(e,null==t?void 0:t.fileName),m.redraw()},n.failure=function(t){this.loading=!1,m.redraw()},e}(O()),no=function(t){function e(){for(var o,e=arguments.length,n=new Array(e),r=0;r=2?O().component({type:"button",className:"Button PollModal--button Button--icon",icon:"fas fa-minus",onclick:n>=2?t.removeOption.bind(t,n):""}):"")}))},n.addOption=function(){var t=Math.max(o().forum.attribute("pollMaxOptions"),2);this.options.lengtht.length)&&(o=t.length);for(var e=0,n=new Array(o);e0;return!o().session.user||r.canVote()||r.hasEnded()||n.add("no-permission",m("span",null,m("i",{className:"icon fas fa-times-circle fa-fw"}),o().translator.trans("fof-polls.forum.no_permission"))),r.endDate()&&n.add("end-date",m("span",null,m("i",{class:"icon fas fa-clock fa-fw"}),r.hasEnded()?o().translator.trans("fof-polls.forum.poll_ended"):o().translator.trans("fof-polls.forum.days_remaining",{time:dayjs(r.endDate()).fromNow()}))),r.canVote()&&(n.add("max-votes",m("span",null,m("i",{className:"icon fas fa-poll fa-fw"}),o().translator.trans("fof-polls.forum.max_votes_allowed",{max:t}))),r.canChangeVote()||n.add("cannot-change-vote",m("span",null,m("i",{className:"icon fas fa-"+(a?"times":"exclamation")+"-circle fa-fw"}),o().translator.trans("fof-polls.forum.poll.cannot_change_vote")))),n},n.viewOption=function(t){var e,n,r,a=this.attrs.poll,l=(null==(e=a.myVotes())?void 0:e.length)>0,s=a.voteCount(),i=this.pendingOptions?this.pendingOptions.has(t.id()):null==(n=a.myVotes())||null==n.some?void 0:n.some((function(o){return o.option()===t})),u=t.voteCount(),c=s>0?Math.round(u/s*100):0,p="number"==typeof u,d=this.loadingOptions||l&&!a.canChangeVote(),h=p?c:Number(i)/((null==(r=a.myVotes())?void 0:r.length)||1)*100,v=!o().session.user||!a.hasEnded()&&a.canVote()&&(!l||a.canChangeVote()),g=m("div",{className:"PollBar","data-selected":!!i,style:"--poll-option-width: "+h+"%"},v&&m("label",{className:"PollAnswer-checkbox checkbox"},m("input",{onchange:this.changeVote.bind(this,t),type:"checkbox",checked:i,disabled:d}),m("span",{className:"checkmark"})),m("div",{className:"PollAnswer-text"},m("span",{className:"PollAnswer-text-answer"},t.answer()),i&&!v&&ht()("fas fa-check-circle",{className:"PollAnswer-check"}),p&&m("span",{className:f()("PollPercent",100!==c&&"PollPercent--option")},c,"%")),t.imageUrl()?m("img",{className:"PollAnswer-image",src:t.imageUrl(),alt:t.answer()}):null);return m("div",{className:f()("PollOption",l&&"PollVoted",a.hasEnded()&&"PollEnded",t.imageUrl()&&"PollOption-hasImage"),"data-id":t.id()},p?m(yt(),{text:o().translator.trans("fof-polls.forum.tooltip.votes",{count:u}),onremove:this.hideOptionTooltip},g):g)},n.changeVote=function(t,e){var n,r;if(!o().session.user)return o().modal.show(_t()),void(e.target.checked=!1);var a=this.pendingOptions||new Set(null==(n=(r=this.attrs.poll.myVotes()).map)?void 0:n.call(r,(function(t){return t.option().id()}))),l=a.delete(t.id());return this.attrs.poll.allowMultipleVotes()||a.clear(),l||a.add(t.id()),this.useSubmitUI?(this.pendingOptions=a.size?a:null,void(this.pendingSubmit=!!this.pendingOptions)):this.submit(a,null,(function(){return e.target.checked=l}))},n.onsubmit=function(){var t=this;return this.submit(this.pendingOptions,(function(){t.pendingOptions=null,t.pendingSubmit=!1}))},n.submit=function(t,e,n){var r=this;return this.loadingOptions=!0,m.redraw(),o().request({method:"PATCH",url:o().forum.attribute("apiUrl")+"/fof/polls/"+this.attrs.poll.id()+"/votes",body:{data:{optionIds:Array.from(t)}}}).then((function(t){o().store.pushPayload(t),null==e||e()})).catch((function(t){null==n||n(t)})).finally((function(){r.loadingOptions=!1,m.redraw()}))},n.showVoters=function(){o().modal.show(Ot,{poll:this.attrs.poll,post:this.attrs.post})},n.deletePoll=function(){confirm(U()(o().translator.trans("fof-polls.forum.moderation.delete_confirm")))&&this.attrs.poll.delete().then((function(){m.redraw.sync()}))},n.hideOptionTooltip=function(t){t.attrs.tooltipVisible=!1,t.state.updateVisibility()},n.preventClose=function(t){if(this.pendingOptions)return t.preventDefault(),!0},e}(A()),go=function(t){function o(){for(var o,e=arguments.length,n=new Array(e),r=0;r=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(o.polls());!(e=n()).done;){var r=e.value;r&&t.push(m(Dt,{poll:r}))}})),(0,r.extend)(io().prototype,"oninit",(function(){var t=this;this.subtree.check((function(){var o=t.attrs.post.polls(),e=null==o||null==o.map?void 0:o.map((function(t){var o,e,n,r,a;return t&&[null==(o=t.data)?void 0:o.attributes,null==(e=(n=t.options()).map)?void 0:e.call(n,(function(t){var o;return null==t||null==(o=t.data)?void 0:o.attributes})),null==(r=(a=t.myVotes()).map)?void 0:r.call(a,(function(t){var o;return null==(o=t.option())?void 0:o.id()}))]}));return JSON.stringify(e)}))})),(0,r.extend)(co().prototype,"oncreate",(function(){o().pusher&&o().pusher.then((function(t){t.channels.main.bind("updatedPollOptions",(function(t){var e=o().store.getById("polls",t.pollId);e&&e.pushAttributes({voteCount:t.pollVoteCount});var n=t.options;for(var r in n){var a=o().store.getById("poll_options",r);a&&void 0!==a.voteCount()&&a.pushAttributes({voteCount:n[r]})}m.redraw()}))}))})),(0,r.extend)(co().prototype,"onremove",(function(){o().pusher&&o().pusher.then((function(t){t.channels.main.unbind("updatedPollOptions")}))})),t=function(t){return o().modal.show(ro,{onsubmit:function(e){return o().store.createRecord("polls").save(oo({},e,{relationships:{post:t}}),{data:{include:"options,myVotes,myVotes.option"}}).then((function(o){var e;return null==(e=t.rawRelationship("polls"))||null==e.push||e.push({type:"polls",id:o.id()}),o}))}})},(0,r.extend)(fo(),"moderationControls",(function(e,n){!n.isHidden()&&n.canStartPoll()&&e.add("addPoll",m(O(),{icon:"fas fa-poll",onclick:t.bind(this,n)},o().translator.trans("fof-polls.forum.moderation.add")))})),(0,r.extend)(et().prototype,"navItems",(function(t){o().forum.attribute("globalPollsEnabled")&&(t.add("fof-polls-showcase",W().component({href:o().route("fof.polls.showcase"),icon:"fas fa-poll"},o().translator.trans("fof-polls.forum.page.nav")),35),o().forum.attribute("canStartGlobalPolls")&&t.add("fof-polls-list",W().component({href:o().route("fof.polls.list"),icon:"fas fa-list"},o().translator.trans("fof-polls.forum.page.nav-all")),32))}))}))})(),module.exports=n})(); //# sourceMappingURL=forum.js.map \ No newline at end of file diff --git a/js/dist/forum.js.map b/js/dist/forum.js.map index c3f22cf1..a3320e95 100644 --- a/js/dist/forum.js.map +++ b/js/dist/forum.js.map @@ -1 +1 @@ -{"version":3,"file":"forum.js","mappings":"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","sources":["webpack://@fof/polls/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/typeof.js","webpack://@fof/polls/./node_modules/@babel/runtime/regenerator/index.js","webpack://@fof/polls/webpack/bootstrap","webpack://@fof/polls/webpack/runtime/compat get default export","webpack://@fof/polls/webpack/runtime/define property getters","webpack://@fof/polls/webpack/runtime/hasOwnProperty shorthand","webpack://@fof/polls/webpack/runtime/make namespace object","webpack://@fof/polls/external root \"flarum.core.compat['forum/app']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/extend']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Badge']\"","webpack://@fof/polls/external root \"flarum.core.compat['forum/components/DiscussionList']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/models/Discussion']\"","webpack://@fof/polls/./src/forum/addDiscussionBadge.tsx","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@fof/polls/external root \"flarum.core.compat['forum/components/DiscussionComposer']\"","webpack://@fof/polls/external root \"flarum.core.compat['forum/components/ReplyComposer']\"","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Modal']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/Component']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Button']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Switch']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/ItemList']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/Stream']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/extractText']\"","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://@fof/polls/./src/forum/components/form/FormError.tsx","webpack://@fof/polls/./src/forum/states/PollFormState.ts","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Page']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/LoadingIndicator']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/LinkButton']\"","webpack://@fof/polls/./src/forum/components/ComposePollHero.tsx","webpack://@fof/polls/external root \"flarum.core.compat['common/helpers/listItems']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/SelectDropdown']\"","webpack://@fof/polls/external root \"flarum.core.compat['forum/components/IndexPage']\"","webpack://@fof/polls/./src/forum/components/ComposePollPage.tsx","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/SubtreeRetainer']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Dropdown']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Link']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/helpers/highlight']\"","webpack://@fof/polls/external root \"flarum.core.compat['forum/utils/slidable']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/helpers/icon']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/abbreviateNumber']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Tooltip']\"","webpack://@fof/polls/./src/forum/components/Poll/PollOption.tsx","webpack://@fof/polls/./src/forum/components/Poll/PollOptions.tsx","webpack://@fof/polls/./src/forum/components/Poll/PollImage.tsx","webpack://@fof/polls/external root \"flarum.core.compat['forum/components/LogInModal']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/helpers/avatar']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/helpers/username']\"","webpack://@fof/polls/./src/forum/components/ListVotersModal.tsx","webpack://@fof/polls/./src/forum/states/PollState.ts","webpack://@fof/polls/./src/forum/components/Poll/PollSubmitButton.tsx","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/string']\"","webpack://@fof/polls/./src/forum/components/Poll/PollTitle.tsx","webpack://@fof/polls/./src/forum/components/Poll/PollSubtitle.tsx","webpack://@fof/polls/./src/forum/components/PollView.tsx","webpack://@fof/polls/./src/forum/components/AbstractPollPage.tsx","webpack://@fof/polls/./src/forum/components/PollViewPage.tsx","webpack://@fof/polls/./src/forum/components/Poll/PollListItem.tsx","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Placeholder']\"","webpack://@fof/polls/./src/forum/components/Poll/PollList.tsx","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://@fof/polls/external root \"flarum.core.compat['common/states/PaginatedListState']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/EventEmitter']\"","webpack://@fof/polls/./src/forum/states/PollListState.ts","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://@fof/polls/./src/forum/components/PollsPage.tsx","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Separator']\"","webpack://@fof/polls/./src/forum/utils/PollControls.tsx","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@fof/polls/./src/forum/components/UploadPollImageButton.tsx","webpack://@fof/polls/./src/forum/components/PollForm.tsx","webpack://@fof/polls/./src/forum/components/CreatePollModal.tsx","webpack://@fof/polls/./src/forum/addComposerItems.tsx","webpack://@fof/polls/external root \"flarum.core.compat['forum/components/CommentPost']\"","webpack://@fof/polls/external root \"flarum.core.compat['forum/components/DiscussionPage']\"","webpack://@fof/polls/./src/forum/addPollsToPost.tsx","webpack://@fof/polls/external root \"flarum.core.compat['forum/utils/PostControls']\"","webpack://@fof/polls/./src/forum/components/EditPollModal.tsx","webpack://@fof/polls/./src/forum/components/PostPoll.tsx","webpack://@fof/polls/./src/forum/components/PollShowcaseItem.tsx","webpack://@fof/polls/./src/forum/components/PollShowcase.tsx","webpack://@fof/polls/./src/forum/components/PollsShowcasePage.tsx","webpack://@fof/polls/./src/forum/components/index.ts","webpack://@fof/polls/external root \"flarum.core.compat['common/Model']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/computed']\"","webpack://@fof/polls/./src/forum/models/Poll.ts","webpack://@fof/polls/./src/forum/models/PollOption.ts","webpack://@fof/polls/./src/forum/models/PollVote.ts","webpack://@fof/polls/./src/forum/models/index.ts","webpack://@fof/polls/./src/forum/states/index.ts","webpack://@fof/polls/external root \"flarum.core.compat['common/extenders']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/models/Post']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/models/Forum']\"","webpack://@fof/polls/./src/forum/extend.ts","webpack://@fof/polls/./src/forum/index.ts","webpack://@fof/polls/./src/forum/addPostControls.tsx","webpack://@fof/polls/./src/forum/addNavItem.ts"],"sourcesContent":["var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/app'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Badge'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionList'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Discussion'];","import app from 'flarum/forum/app';\n\nimport { extend } from 'flarum/common/extend';\nimport Badge from 'flarum/common/components/Badge';\nimport DiscussionList from 'flarum/forum/components/DiscussionList';\nimport Discussion from 'flarum/common/models/Discussion';\nimport { PaginatedListRequestParams } from 'flarum/common/states/PaginatedListState';\n\nexport default () => {\n // @ts-ignore\n extend(DiscussionList.prototype, 'requestParams', (params: PaginatedListRequestParams) => {\n (params.include as string[]).push('poll');\n });\n\n extend(Discussion.prototype, 'badges', function (badges) {\n // @ts-ignore\n if (this.hasPoll()) {\n badges.add(\n 'poll',\n Badge.component({\n type: 'poll',\n label: app.translator.trans('fof-polls.forum.tooltip.badge'),\n icon: 'fas fa-poll',\n }),\n 5\n );\n }\n });\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/classList'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionComposer'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/ReplyComposer'];","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Modal'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Switch'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/ItemList'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/Stream'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extractText'];","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}","import { NestedStringArray } from '@askvortsov/rich-icu-message-formatter';\n\nexport default class FormError extends Error {\n constructor(props: NestedStringArray | string) {\n super(props + '');\n }\n}\n","import app from 'flarum/forum/app';\nimport Poll from '../models/Poll';\nimport PollOption from '../models/PollOption';\n\nexport default class PollFormState {\n poll: Poll;\n loading: boolean;\n deleting: boolean;\n expandedGroup: string;\n\n static createNewPoll() {\n const poll = app.store.createRecord('polls');\n\n poll.pushAttributes({\n question: '',\n endDate: '',\n publicPoll: false,\n allowMultipleVotes: false,\n hideVotes: false,\n allowChangeVote: false,\n maxVotes: 0,\n });\n\n poll.tempOptions = [app.store.createRecord('poll_options'), app.store.createRecord('poll_options')];\n\n return poll;\n }\n\n constructor(poll: Poll) {\n if (!poll) {\n poll = PollFormState.createNewPoll();\n }\n\n this.loading = false;\n this.deleting = false;\n this.poll = poll;\n this.expandedGroup = 'setup';\n }\n\n isExpanded(groupKey: string) {\n return this.expandedGroup === groupKey;\n }\n\n expand(groupKey: string) {\n this.expandedGroup = groupKey;\n m.redraw();\n }\n\n async save(data: any) {\n this.loading = true;\n m.redraw();\n\n try {\n this.poll = await this.poll.save(data);\n /**\n * Cleanup attributes:\n * For the saving process, we add the options directly to the attributes.\n * As we currently cannot add new PollOptions as relationships.\n */\n delete this.poll!.data!.attributes!.options;\n } finally {\n this.loading = false;\n m.redraw();\n }\n }\n\n async delete() {\n this.loading = true;\n m.redraw();\n\n try {\n await this.poll.delete();\n this.deleting = true;\n } finally {\n this.loading = false;\n m.redraw();\n }\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Page'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LoadingIndicator'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LinkButton'];","import Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport LinkButton from 'flarum/common/components/LinkButton';\nimport Poll from '../models/Poll';\nimport ItemList from 'flarum/common/utils/ItemList';\n\nexport interface ComposePollHeroAttrs extends ComponentAttrs {\n poll: Poll;\n}\n\nexport default class ComposePollHero extends Component {\n poll!: Poll;\n\n oninit(vnode: Mithril.Vnode): void {\n super.oninit(vnode);\n\n this.poll = this.attrs.poll;\n }\n\n view(): Mithril.Children {\n return (\n
\n
\n
\n

{app.translator.trans(`fof-polls.forum.compose.${!!this.poll.id() ? 'edit' : 'add'}_title`)}

\n
{this.controlItems().toArray()}
\n
\n
\n
\n );\n }\n\n controlItems(): ItemList {\n const items = new ItemList();\n\n items.add(\n 'edit',\n \n {app.translator.trans('fof-polls.forum.compose.polls_manager')}\n \n );\n\n if (this.poll.exists) {\n items.add(\n 'view',\n \n {app.translator.trans('fof-polls.forum.compose.polls_preview')}\n \n );\n }\n\n return items;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/listItems'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/SelectDropdown'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/IndexPage'];","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Page from 'flarum/common/components/Page';\nimport Poll from '../models/Poll';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport PollForm from './PollForm';\nimport PollFormState from '../states/PollFormState';\nimport ComposePollHero from './ComposePollHero';\nimport Button from 'flarum/common/components/Button';\nimport listItems from 'flarum/common/helpers/listItems';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport SelectDropdown from 'flarum/common/components/SelectDropdown';\nimport IndexPage from 'flarum/forum/components/IndexPage';\n\nexport default class ComposePollPage extends Page {\n poll: Poll | null | undefined = null;\n\n loading: boolean = false;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n if (!app.forum.attribute('globalPollsEnabled')) {\n m.route.set('/');\n return;\n }\n\n // Get the `edit` parameter from the URL\n const editId = m.route.param('id');\n if (editId) {\n this.poll = app.store.getById('poll', editId);\n\n if (!this.poll) {\n this.loading = true;\n\n app.store.find('fof/polls', editId).then((item) => {\n this.poll = item;\n this.loading = false;\n app.setTitle(app.translator.trans(`fof-polls.forum.compose.${!!this.poll?.id() ? 'edit' : 'add'}_title`) as string);\n m.redraw();\n });\n }\n } else {\n this.poll = PollFormState.createNewPoll();\n }\n\n app.history.push('compose-poll', app.translator.trans(`fof-polls.forum.compose.${!!this.poll?.id() ? 'edit' : 'add'}_title`) as string);\n this.bodyClass = 'App--compose-poll';\n app.setTitle(app.translator.trans(`fof-polls.forum.compose.${!!this.poll?.id() ? 'edit' : 'add'}_title`) as string);\n }\n\n view(): Mithril.Children {\n // prevent users from accessing the page if they can't start global polls\n if (!app.forum.attribute('canStartGlobalPolls')) {\n m.route.set('/');\n return;\n }\n\n if (this.loading) {\n return ;\n }\n\n return (\n
\n \n
\n
\n \n
\n \n
\n
\n
\n
\n );\n }\n\n async onsubmit(data: Object, state: PollFormState) {\n const isNew = state.poll.id() === undefined;\n await state.save(data);\n\n const alertAttrs = isNew\n ? {\n type: 'success',\n controls: [\n \n m.route.set(\n app.route('fof.polls.compose', {\n id: state.poll.id(),\n })\n )\n }\n >\n {app.translator.trans('fof-polls.forum.compose.continue_editing')}\n ,\n ],\n }\n : {\n type: 'success',\n };\n\n // Show success alert\n const alertId = app.alerts.show(alertAttrs, app.translator.trans('fof-polls.forum.compose.success'));\n\n // Hide alert after 10 seconds\n setTimeout(() => app.alerts.dismiss(alertId), 10000);\n\n if (isNew) {\n m.route.set(app.route('fof.polls.list'));\n }\n }\n\n sidebarItems(): ItemList {\n const items = new ItemList();\n\n items.add(\n 'nav',\n \n {this.navItems().toArray()}\n \n );\n\n return items;\n }\n\n navItems() {\n return IndexPage.prototype.navItems();\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/SubtreeRetainer'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Dropdown'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Link'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/highlight'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/utils/slidable'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/icon'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/abbreviateNumber'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Tooltip'];","import app from 'flarum/forum/app';\nimport type Mithril from 'mithril';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport PollOptionModel from '../../models/PollOption';\nimport PollState from '../../states/PollState';\nimport Tooltip, { TooltipAttrs } from 'flarum/common/components/Tooltip';\nimport icon from 'flarum/common/helpers/icon';\nimport classList from 'flarum/common/utils/classList';\n\ninterface PollOptionAttrs extends ComponentAttrs {\n option: PollOptionModel;\n name: String;\n state: PollState;\n}\n\nexport default class PollOption extends Component {\n view(): Mithril.Children {\n const option = this.attrs.option;\n const state = this.attrs.state;\n const hasVoted = state.hasVoted();\n const totalVotes = state.overallVoteCount();\n const votes = option.voteCount();\n const voted = state.hasVotedFor(option);\n const percent = totalVotes > 0 ? Math.round((votes / totalVotes) * 100) : 0;\n\n // @ts-ignore\n const poll = state.poll;\n\n // isNaN(null) is false, so we have to check type directly now that API always returns the field\n const canSeeVoteCount = typeof votes === 'number';\n const isDisabled = state.loadingOptions || (hasVoted && !poll.canChangeVote());\n const width = canSeeVoteCount ? percent : (Number(voted) / (poll.myVotes()?.length || 1)) * 100;\n\n const bar = (\n
\n {state.showCheckMarks && (\n \n )}\n\n
\n {option.answer()}\n {voted && !state.showCheckMarks && icon('fas fa-check-circle', { className: 'PollAnswer-check' })}\n {canSeeVoteCount && {percent}%}\n
\n\n {option.imageUrl() ? {option.answer()} : null}\n
\n );\n\n return (\n
\n {canSeeVoteCount ? (\n \n {bar}\n \n ) : (\n bar\n )}\n
\n );\n }\n\n /**\n * Attempting to use the `tooltipVisible` attr on the Tooltip component set to 'false' when no vote count\n * caused the tooltip to break on click. This is a workaround to hide the tooltip when no vote count is available,\n * called on 'onremove' of the Tooltip component. It doesn't always work as intended either, but it does the job.\n */\n hideOptionTooltip(vnode: Mithril.Vnode) {\n vnode.attrs.tooltipVisible = false;\n\n // @ts-ignore\n vnode.state.updateVisibility();\n }\n}\n","import type Mithril from 'mithril';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport PollOption from './PollOption';\nimport PollOptionModel from '../../models/PollOption';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport PollState from '../../states/PollState';\n\ninterface PollOptionsAttrs extends ComponentAttrs {\n options: PollOptionModel[];\n name: String;\n state: PollState;\n}\n\nexport default class PollOptions extends Component {\n view(): Mithril.Children {\n return
{this.pollOptions().toArray()}
;\n }\n\n pollOptions(): ItemList {\n const items = new ItemList();\n\n this.attrs.options.forEach((option: PollOptionModel): void => {\n items.add('option' + option.id(), this.createOptionView(option));\n });\n\n return items;\n }\n\n createOptionView(option: PollOptionModel): Mithril.Children {\n return ;\n }\n}\n","import type Mithril from 'mithril';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Poll from 'src/forum/models/Poll';\nimport ItemList from 'flarum/common/utils/ItemList';\n\ninterface PollImageAttrs extends ComponentAttrs {\n poll: Poll;\n}\n\nexport default class PollImage extends Component {\n imageUrl: string | null = null;\n imageAlt: string | null = null;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.imageUrl = this.attrs.poll.imageUrl();\n this.imageAlt = this.attrs.poll.imageAlt();\n }\n\n view(): Mithril.Children {\n if (!this.imageUrl) {\n return;\n }\n\n return
{this.imageItems().toArray()}
;\n }\n\n imageItems(): ItemList {\n const items = new ItemList();\n\n items.add('image', {this.imageAlt);\n\n return items;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/LogInModal'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/avatar'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/username'];","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Modal, { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport avatar from 'flarum/common/helpers/avatar';\nimport username from 'flarum/common/helpers/username';\nimport Link from 'flarum/common/components/Link';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport PollModel from '../models/Poll';\nimport PollVote from '../models/PollVote';\nimport User from 'flarum/common/models/User';\nimport PollOption from '../models/PollOption';\n\ninterface ListVotersModalAttrs extends IInternalModalAttrs {\n poll: PollModel;\n onsubmit: (data: object) => Promise;\n}\n\nexport default class ListVotersModal extends Modal {\n oninit(vnode: Mithril.Vnode): void {\n super.oninit(vnode);\n\n this.loading = true;\n\n app.store\n .find('fof/polls', this.attrs.poll.id()!, {\n include: 'votes,votes.user,votes.option',\n })\n .then(() => (this.loading = false))\n .finally(() => m.redraw());\n }\n\n className(): string {\n return 'Modal--medium VotesModal';\n }\n\n title(): Mithril.Children {\n return app.translator.trans('fof-polls.forum.votes_modal.title');\n }\n\n content(): Mithril.Children {\n const options = this.attrs.poll.options() as PollOption[];\n return
{this.loading ? : options.map(this.optionContent.bind(this))}
;\n }\n\n optionContent(opt: PollOption): Mithril.Children {\n const votes = (this.attrs.poll.votes() || []).filter((v) => opt.id() === v!.option()!.id()) as PollVote[];\n\n return (\n
\n

{opt.answer()! + ':'}

\n\n {votes.length ? (\n
{votes.map(this.voteContent.bind(this))}
\n ) : (\n

{app.translator.trans('fof-polls.forum.modal.no_voters')}

\n )}\n
\n );\n }\n\n voteContent(vote: PollVote): Mithril.Children {\n const user = vote.user() as User;\n const attrs = user && { href: app.route.user(user) };\n\n return (\n \n {avatar(user)} {username(user)}\n \n );\n }\n}\n","import app from 'flarum/forum/app';\nimport Poll from '../models/Poll';\nimport LogInModal from 'flarum/forum/components/LogInModal';\nimport PollOption from '../models/PollOption';\nimport PollVote from '../models/PollVote';\nimport ListVotersModal from '../components/ListVotersModal';\nimport { ApiPayloadSingle } from 'flarum/common/Store';\n\nexport default class PollState {\n protected poll: Poll;\n protected pendingSubmit: boolean = false;\n protected pendingOptions: Set | null = null;\n public loadingOptions: boolean = false;\n public useSubmitUI: boolean;\n public showCheckMarks: boolean;\n public canSeeVoteCount: boolean;\n\n constructor(poll: Poll) {\n this.poll = poll;\n this.useSubmitUI = !poll?.canChangeVote() && poll?.allowMultipleVotes();\n this.showCheckMarks = !app.session.user || (!poll.hasEnded() && poll.canVote() && (!this.hasVoted() || poll.canChangeVote()));\n this.canSeeVoteCount = typeof poll.voteCount() === 'number';\n this.init();\n }\n\n /**\n * used as en extendable entry point for init customizations\n */\n init(): void {}\n\n isShowResult(): boolean {\n return this.poll.hasEnded() || (this.canSeeVoteCount && this.hasVoted());\n }\n\n hasVoted(): boolean {\n return this.poll.myVotes().length > 0;\n }\n\n overallVoteCount(): number {\n return this.poll.voteCount();\n }\n\n hasVotedFor(option: PollOption): boolean {\n return this.pendingOptions ? this.pendingOptions.has(option.id()!) : this.poll.myVotes().some((vote: PollVote) => vote.option() === option);\n }\n\n getMaxVotes(): number {\n const poll = this.poll;\n let maxVotes = poll.allowMultipleVotes() ? poll.maxVotes() : 1;\n if (maxVotes === 0) maxVotes = poll.options().length;\n return maxVotes;\n }\n\n showButton(): boolean {\n return this.useSubmitUI && this.pendingSubmit;\n }\n\n changeVote(option: PollOption, evt: Event): void {\n const target = evt.target as HTMLInputElement;\n\n if (!app.session.user) {\n app.modal.show(LogInModal);\n target.checked = false;\n return;\n }\n\n const optionIds = this.pendingOptions || new Set(this.poll.myVotes().map((v: PollVote) => v.option()!.id()!));\n const isUnvoting = optionIds.delete(option.id()!);\n const allowsMultiple = this.poll.allowMultipleVotes();\n\n if (!allowsMultiple) {\n optionIds.clear();\n }\n\n if (!isUnvoting) {\n optionIds.add(option.id()!);\n }\n\n this.pendingOptions = optionIds.size ? optionIds : null;\n this.pendingSubmit = !!this.pendingOptions;\n\n if (this.useSubmitUI) {\n this.pendingOptions = optionIds.size ? optionIds : null;\n this.pendingSubmit = !!this.pendingOptions;\n m.redraw();\n return;\n }\n\n this.submit(optionIds, null, () => (target.checked = isUnvoting));\n }\n\n hasSelectedOptions(): boolean {\n return this.pendingSubmit;\n }\n\n onsubmit(): Promise {\n return this.submit(this.pendingOptions!, () => {\n this.pendingOptions = null;\n this.pendingSubmit = false;\n });\n }\n\n submit(optionIds: Set, cb: Function | null, onerror: Function | null = null) {\n this.loadingOptions = true;\n m.redraw();\n\n return app\n .request({\n method: 'PATCH',\n url: `${app.forum.attribute('apiUrl')}/fof/polls/${this.poll.id()}/votes`,\n body: {\n data: {\n optionIds: Array.from(optionIds),\n },\n },\n })\n .then((res: ApiPayloadSingle) => {\n app.store.pushPayload(res);\n cb?.();\n })\n .catch((err) => {\n onerror?.(err);\n })\n .finally(() => {\n this.loadingOptions = false;\n this.canSeeVoteCount = typeof this.poll.voteCount() === 'number';\n m.redraw();\n });\n }\n\n showVoters = () => {\n // Load all the votes only when opening the votes list\n app.modal.show(ListVotersModal, {\n poll: this.poll,\n });\n };\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport PollState from '../../states/PollState';\n\ninterface PollSubmitButtonAttrs extends ComponentAttrs {\n state: PollState;\n}\n\nexport default class PollSubmitButton extends Component {\n view(): Mithril.Children {\n const state = this.attrs.state;\n return (\n this.pollButtonSubmit(state, event)}\n disabled={!state.hasSelectedOptions()}\n >\n {app.translator.trans('fof-polls.forum.poll.submit_button')}\n \n );\n }\n\n /**\n * Event handler for submit button being clicked\n */\n\n pollButtonSubmit(state: PollState, event: Event): void {\n state.onsubmit();\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/string'];","import Component, { ComponentAttrs } from 'flarum/common/Component';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Poll from 'src/forum/models/Poll';\nimport Mithril from 'mithril';\n\nexport interface PollTitleAttrs extends ComponentAttrs {\n poll: Poll;\n}\n\nexport default class PollTitle extends Component {\n view() {\n return
{this.pollTitleItems().toArray()}
;\n }\n\n pollTitleItems(): ItemList {\n const items = new ItemList();\n\n items.add('title',

{this.attrs.poll.question()}

);\n\n return items;\n }\n}\n","import Component, { ComponentAttrs } from 'flarum/common/Component';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Poll from 'src/forum/models/Poll';\nimport Mithril from 'mithril';\n\nexport interface PollSubtitleAttrs extends ComponentAttrs {\n poll: Poll;\n}\n\nexport default class PollSubtitle extends Component {\n view() {\n if (!this.attrs.poll.subtitle()) {\n return;\n }\n\n return
{this.pollSubtitleItems().toArray()}
;\n }\n\n pollSubtitleItems(): ItemList {\n const items = new ItemList();\n\n items.add('subtitle',

{this.attrs.poll.subtitle()}

);\n\n return items;\n }\n}\n","import Mithril from 'mithril';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport app from 'flarum/forum/app';\nimport PollOptions from './Poll/PollOptions';\nimport PollImage from './Poll/PollImage';\nimport PollModel from '../models/Poll';\nimport PollState from '../states/PollState';\nimport Button from 'flarum/common/components/Button';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport PollControls from '../utils/PollControls';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport PollSubmitButton from './Poll/PollSubmitButton';\nimport { slug } from 'flarum/common/utils/string';\nimport classList from 'flarum/common/utils/classList';\nimport PollTitle from './Poll/PollTitle';\nimport PollSubtitle from './Poll/PollSubtitle';\n\ninterface PollAttrs extends ComponentAttrs {\n poll: PollModel;\n}\n\nexport default class PollView extends Component {\n state!: PollState;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n this.state = new PollState(this.attrs.poll);\n }\n\n oncreate(vnode: Mithril.Vnode) {\n super.oncreate(vnode);\n\n this.preventClose = this.preventClose.bind(this);\n window.addEventListener('beforeunload', this.preventClose);\n }\n\n onremove(vnode: Mithril.Vnode) {\n super.onremove(vnode);\n\n window.removeEventListener('beforeunload', this.preventClose);\n }\n\n view(): Mithril.Children {\n const poll = this.attrs.poll;\n const state = this.state;\n const controls = PollControls.controls(poll, this);\n\n controls.add(\n 'view',\n \n );\n\n return (\n
\n {this.controlsView(controls.toArray())}\n
{this.createMainView().toArray()}
\n
\n );\n }\n\n createMainView(): ItemList {\n const items = new ItemList();\n const poll = this.attrs.poll;\n\n items.add('header',
{this.createPollHeader().toArray()}
);\n items.add('content',
{this.createPollContent().toArray()}
);\n items.add('footer',
{this.createPollFooter().toArray()}
);\n\n return items;\n }\n\n createPollHeader(): ItemList {\n const items = new ItemList();\n const poll = this.attrs.poll;\n\n items.add('title', );\n if (poll.subtitle()) items.add('subtitle', );\n\n return items;\n }\n\n createPollContent(): ItemList {\n const items = new ItemList();\n const poll = this.attrs.poll;\n\n if (poll.imageUrl()) {\n items.add('image', );\n }\n\n items.add('form',
{this.createFormItems().toArray()}
);\n\n return items;\n }\n\n createPollFooter(): ItemList {\n const items = new ItemList();\n const state = this.state;\n\n const infoItems = this.infoItems(state.getMaxVotes());\n\n items.add(\n 'sticky',\n
\n {!infoItems.isEmpty() &&
{infoItems.toArray()}
}\n {state.showButton() && }\n
\n );\n\n return items;\n }\n\n createFormItems(): ItemList {\n const items = new ItemList();\n const poll = this.attrs.poll;\n const state = this.state;\n const questionSlug = slug(poll.question());\n\n items.add(\n 'elements',\n
\n {poll.question()}\n \n
\n );\n\n return items;\n }\n\n controlsView(controls: Mithril.ChildArray): Mithril.Children {\n return (\n !!controls.length && (\n \n {controls}\n \n )\n );\n }\n\n infoItems(maxVotes: number) {\n const items = new ItemList();\n const poll = this.attrs.poll;\n\n if (app.session.user && !poll.canVote() && !poll.hasEnded()) {\n items.add(\n 'no-permission',\n \n \n {app.translator.trans('fof-polls.forum.no_permission')}\n \n );\n }\n\n if (poll.endDate()) {\n items.add(\n 'end-date',\n \n \n {poll.hasEnded()\n ? app.translator.trans('fof-polls.forum.poll_ended')\n : app.translator.trans('fof-polls.forum.days_remaining', { time: dayjs(poll.endDate()).fromNow() })}\n \n );\n }\n\n if (poll.canVote()) {\n items.add(\n 'max-votes',\n \n \n {app.translator.trans('fof-polls.forum.max_votes_allowed', { max: maxVotes })}\n \n );\n\n if (!poll.canChangeVote()) {\n items.add(\n 'cannot-change-vote',\n \n \n {app.translator.trans('fof-polls.forum.poll.cannot_change_vote')}\n \n );\n }\n }\n\n return items;\n }\n\n /**\n * Alert before navigating away using browser's 'beforeunload' event\n */\n preventClose = (e: Event): boolean | void => {\n if (this.state.hasSelectedOptions()) {\n e.preventDefault();\n return true;\n }\n };\n}\n","import Page, { IPageAttrs } from 'flarum/common/components/Page';\nimport PollListState from '../states/PollListState';\nimport Poll from '../models/Poll';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport type Mithril from 'mithril';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport listItems from 'flarum/common/helpers/listItems';\nimport app from 'flarum/forum/app';\nimport SelectDropdown from 'flarum/common/components/SelectDropdown';\n\nexport abstract class AbstractPollPage extends Page {\n loading: boolean = false;\n poll: Poll | null | undefined = null;\n polls: Poll[] = [];\n\n view(): Mithril.Children {\n return
{this.pageContent().toArray()}
;\n }\n\n pageContent(): ItemList {\n const items = new ItemList();\n\n items.add('hero', this.hero(), 100);\n items.add('main',
{this.mainContent().toArray()}
, 10);\n\n return items;\n }\n\n mainContent(): ItemList {\n const items = new ItemList();\n\n items.add('sidebar', this.sidebar(), 100);\n items.add('content', this.content(), 10);\n\n return items;\n }\n\n content(): Mithril.Children {\n return
{this.contentItems().toArray()}
;\n }\n\n contentItems(): ItemList {\n const items = new ItemList();\n\n if (this.loading) {\n items.add('loading', );\n }\n\n return items;\n }\n\n hero(): Mithril.Children {\n return IndexPage.prototype.hero();\n }\n\n sidebar(): Mithril.Children {\n return (\n \n );\n }\n\n sidebarItems(): ItemList {\n const items = IndexPage.prototype.sidebarItems();\n\n items.setContent(\n 'nav',\n \n {this.navItems().toArray()}\n \n );\n\n return items;\n }\n\n navItems(): ItemList {\n const items = IndexPage.prototype.navItems();\n\n if (app.initializers.has('flarum-tags')) {\n // remove the tags from the nav items\n items.remove('separator');\n items.remove('moreTags');\n\n // each tag is added using the key \"tag{id}\". We need to remove all of them\n for (const key in items.toObject()) {\n if (key.startsWith('tag') && key !== 'tags') {\n items.remove(key);\n }\n }\n }\n\n return items;\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport PollModel from '../models/Poll';\nimport PollView from './PollView';\nimport { AbstractPollPage } from './AbstractPollPage';\nimport ItemList from 'flarum/common/utils/ItemList';\n\nexport default class PollViewPage extends AbstractPollPage {\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n if (!app.forum.attribute('globalPollsEnabled')) {\n m.route.set('/');\n return;\n }\n\n const editId = m.route.param('id');\n this.poll = app.store.getById('poll', editId);\n\n if (!this.poll) {\n this.loading = true;\n\n app.store.find('fof/polls', editId).then((item) => {\n this.poll = item;\n this.loading = false;\n app.setTitle(this.poll.question());\n m.redraw();\n });\n }\n }\n\n contentItems(): ItemList {\n const items = super.contentItems();\n\n if (!this.loading) {\n items.add('poll', );\n }\n\n return items;\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport type { PollListParams } from '../../states/PollListState';\nimport SubtreeRetainer from 'flarum/common/utils/SubtreeRetainer';\nimport classList from 'flarum/common/utils/classList';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport Link from 'flarum/common/components/Link';\nimport highlight from 'flarum/common/helpers/highlight';\nimport slidable from 'flarum/forum/utils/slidable';\nimport icon from 'flarum/common/helpers/icon';\nimport abbreviateNumber from 'flarum/common/utils/abbreviateNumber';\nimport Poll from '../../models/Poll';\nimport PollControls from '../../utils/PollControls';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport listItems from 'flarum/common/helpers/listItems';\nimport PollViewPage from '../PollViewPage';\n\nexport interface IPollListItemAttrs extends ComponentAttrs {\n poll: Poll;\n params: PollListParams;\n}\n\n/**\n * The `PollListItem` component shows a single poll in the\n * poll list.\n */\nexport default class PollListItem extends Component {\n /**\n * Ensures that the poll will not be redrawn\n * unless new data comes in.\n */\n subtree!: SubtreeRetainer;\n poll!: Poll;\n\n highlightRegExp?: RegExp;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.poll = this.attrs.poll;\n\n this.subtree = new SubtreeRetainer(\n () => this.poll.freshness,\n () => {\n const time = app.session.user && app.session.user.markedAllAsReadAt();\n return time && time.getTime();\n },\n () => this.active()\n );\n }\n\n elementAttrs() {\n return {\n className: classList('PollListItem', {\n active: this.active(),\n 'PollListItem--hidden': this.poll.isHidden(),\n Slidable: 'ontouchstart' in window,\n }),\n };\n }\n\n view() {\n const controls = PollControls.controls(this.poll, this).toArray();\n const attrs = this.elementAttrs();\n\n return (\n
\n {this.controlsView(controls)}\n {this.contentView()}\n {this.slidableUnderneathView()}\n
\n );\n }\n\n controlsView(controls: Mithril.ChildArray): Mithril.Children {\n return (\n !!controls.length && (\n \n {controls}\n \n )\n );\n }\n\n slidableUnderneathView(): Mithril.Children {\n const isUnread = this.poll.isUnread();\n\n return (\n \n {icon('fas fa-check')}\n \n );\n }\n\n contentView(): Mithril.Children {\n // const isUnread = this.poll.isUnread();\n // const isRead = this.poll.isRead();\n\n return (\n //
\n
{this.mainView()}
\n );\n }\n\n mainView(): Mithril.Children {\n return (\n \n

{highlight(this.poll.question(), this.highlightRegExp)}

\n {this.poll.subtitle() &&

{this.poll.subtitle()}

}\n
    {listItems(this.infoItems().toArray())}
\n \n );\n }\n\n // infoView() {\n // return (\n //
\n // {this.poll.subtitle() &&

{this.poll.subtitle()}

}\n //
    {listItems(this.infoItems().toArray())}
\n //
\n // );\n // }\n\n oncreate(vnode: Mithril.VnodeDOM) {\n super.oncreate(vnode);\n\n // If we're on a touch device, set up the discussion row to be slidable.\n // This allows the user to drag the row to either side of the screen to\n // reveal controls.\n if ('ontouchstart' in window) {\n const slidableInstance = slidable(this.element);\n\n this.$('.PollListItem-controls').on('hidden.bs.dropdown', () => slidableInstance.reset());\n }\n }\n\n onbeforeupdate(vnode: Mithril.VnodeDOM) {\n super.onbeforeupdate(vnode);\n\n return this.subtree.needsRebuild();\n }\n\n /**\n * Determine whether or not the discussion is currently being viewed.\n */\n active() {\n return app.current.matches(PollViewPage, { poll: this.poll });\n }\n\n /**\n * Mark the poll as read.\n */\n markAsRead() {\n if (this.poll.isUnread()) {\n this.poll.save({ lastVotedNumber: this.poll.voteCount() });\n m.redraw();\n }\n }\n\n infoItems(): ItemList {\n const items = new ItemList();\n const active = !this.poll.hasEnded();\n const activeView = this.poll.endDate()\n ? [\n icon('fas fa-clock'),\n ' ',\n active\n ? app.translator.trans('fof-polls.forum.days_remaining', { time: dayjs(this.poll.endDate()).fromNow() })\n : app.translator.trans('fof-polls.forum.poll_ended'),\n ]\n : [icon('fas fa-infinity'), ' ', app.translator.trans('fof-polls.forum.poll_never_ends')];\n\n items.add('active', {activeView});\n\n const voteCount = this.poll.voteCount();\n if (voteCount !== undefined) {\n items.add(\n 'voteCount',\n \n {icon('fas fa-poll fa-fw')}\n {[\n ' ',\n app.translator.trans('fof-polls.forum.polls_count', {\n count: abbreviateNumber(voteCount),\n }),\n ]}\n ,\n 70\n );\n }\n\n return items;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Placeholder'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport PollListItem from './PollListItem';\nimport Button from 'flarum/common/components/Button';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport Placeholder from 'flarum/common/components/Placeholder';\nimport classList from 'flarum/common/utils/classList';\nimport PollListState from '../../states/PollListState';\n\nexport interface PollListAttrs extends ComponentAttrs {\n state: PollListState;\n}\n\n/**\n * The `PollList` component displays a list of polls.\n */\nexport default class PollList extends Component {\n view() {\n const state = this.attrs.state;\n const params = state.getParams();\n const isLoading = state.isInitialLoading() || state.isLoadingNext();\n\n let loading;\n\n if (isLoading) {\n loading = ;\n } else if (state.hasNext()) {\n loading = (\n \n );\n }\n\n if (state.isEmpty()) {\n const text = app.translator.trans('fof-polls.forum.polls_list.empty_text');\n return (\n
\n \n
\n );\n }\n\n return (\n
\n
    \n {state.getPages().map((pg) => {\n return pg.items.map((poll) => (\n
  • \n \n
  • \n ));\n })}\n
\n
{loading}
\n
\n );\n }\n}\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/states/PaginatedListState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/EventEmitter'];","import app from 'flarum/forum/app';\nimport PaginatedListState, { Page, PaginatedListParams, PaginatedListRequestParams } from 'flarum/common/states/PaginatedListState';\nimport Poll from '../models/Poll';\nimport { ApiResponsePlural } from 'flarum/common/Store';\nimport EventEmitter from 'flarum/common/utils/EventEmitter';\n\nexport interface PollListParams extends PaginatedListParams {\n sort?: string;\n}\n\nconst globalEventEmitter = new EventEmitter();\n\nexport default class PollListState

extends PaginatedListState {\n protected extraPolls: Poll[] = [];\n protected eventEmitter: EventEmitter;\n\n constructor(params: P, page: number = 1) {\n super(params, page, 20);\n\n this.eventEmitter = globalEventEmitter.on('poll.deleted', this.deletePoll.bind(this));\n }\n\n get type(): string {\n return 'fof/polls';\n }\n\n requestParams(): PaginatedListRequestParams {\n const params = {\n include: this.params.include || ['options', 'votes'],\n filter: this.params.filter || {},\n sort: this.sortMap()[this.params.sort ?? ''],\n };\n\n if (this.params.q) {\n params.filter.q = this.params.q;\n }\n\n return params;\n }\n\n protected loadPage(page: number = 1): Promise> {\n const preloadedPolls = app.preloadedApiDocument();\n\n if (preloadedPolls) {\n this.initialLoading = false;\n\n return Promise.resolve(preloadedPolls);\n }\n\n return super.loadPage(page);\n }\n\n clear(): void {\n super.clear();\n\n this.extraPolls = [];\n }\n\n /**\n * Get a map of sort keys (which appear in the URL, and are used for\n * translation) to the API sort value that they represent.\n */\n sortMap() {\n const map: any = {};\n\n if (this.params.q) {\n map.relevance = '';\n }\n map.newest = '-createdAt';\n map.oldest = 'createdAt';\n\n return map;\n }\n\n /**\n * In the last request, has the user searched for a poll?\n */\n isSearchResults(): boolean {\n return !!this.params.q;\n }\n\n removePoll(poll: Poll): void {\n this.eventEmitter.emit('poll.deleted', poll);\n }\n\n deletePoll(poll: Poll): void {\n for (const page of this.pages) {\n const index = page.items.indexOf(poll);\n\n if (index !== -1) {\n page.items.splice(index, 1);\n break;\n }\n }\n\n const index = this.extraPolls.indexOf(poll);\n\n if (index !== -1) {\n this.extraPolls.splice(index);\n }\n\n m.redraw();\n }\n\n /**\n * Add a poll to the top of the list.\n */\n addPoll(poll: Poll): void {\n this.removePoll(poll);\n this.extraPolls.unshift(poll);\n\n m.redraw();\n }\n\n protected getAllItems(): Poll[] {\n return this.extraPolls.concat(super.getAllItems());\n }\n\n public getPages(): Page[] {\n const pages = super.getPages();\n\n if (this.extraPolls.length) {\n return [\n {\n number: -1,\n items: this.extraPolls,\n },\n ...pages,\n ];\n }\n\n return pages;\n }\n}\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport listItems from 'flarum/common/helpers/listItems';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Page, { IPageAttrs } from 'flarum/common/components/Page';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport PollList from './Poll/PollList';\nimport LogInModal from 'flarum/forum/components/LogInModal';\nimport extractText from 'flarum/common/utils/extractText';\nimport PollListState from '../states/PollListState';\nimport Button from 'flarum/common/components/Button';\nimport SelectDropdown from 'flarum/common/components/SelectDropdown';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport PollModel from '../models/Poll';\nimport PollView from './PollView';\nimport { AbstractPollPage } from './AbstractPollPage';\n\nexport default class PollsPage extends AbstractPollPage {\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n if (!app.forum.attribute('globalPollsEnabled')) {\n m.route.set('/');\n return;\n }\n\n this.state = new PollListState({\n sort: m.route.param('sort'),\n filter: m.route.param('filter'),\n });\n\n this.state.refresh();\n\n app.setTitle(extractText(app.translator.trans('fof-polls.forum.page.nav')));\n }\n\n view(): Mithril.Children {\n if (this.loading) {\n return ;\n }\n\n if (this.poll) {\n return (\n

\n
\n \n
\n
\n );\n }\n\n return (\n
\n {super.hero()}\n
\n
\n \n
\n
\n
    {listItems(this.viewItems().toArray())}
\n
    {listItems(this.actionItems().toArray())}
\n
\n \n
\n
\n
\n
\n );\n }\n\n sidebarItems(): ItemList {\n const items = new ItemList();\n const canStartPoll = app.forum.attribute('canStartGlobalPolls');\n\n items.add(\n 'newGlobalPoll',\n {\n this.newPollAction();\n }}\n disabled={!canStartPoll}\n >\n {app.translator.trans(`fof-polls.forum.poll.${canStartPoll ? 'start_poll_button' : 'cannot_start_poll_button'}`)}\n \n );\n\n items.add(\n 'nav',\n \n {this.navItems().toArray()}\n \n );\n\n return items;\n }\n\n actionItems(): ItemList {\n const items = new ItemList();\n\n items.add(\n 'refresh',\n Button.component({\n title: app.translator.trans('fof-polls.forum.page.refresh_tooltip'),\n icon: 'fas fa-sync',\n className: 'Button Button--icon',\n onclick: () => {\n this.state.refresh();\n },\n })\n );\n\n return items;\n }\n\n viewItems() {\n return IndexPage.prototype.viewItems();\n }\n\n navItems() {\n return IndexPage.prototype.navItems();\n }\n\n /**\n * Change to create new poll page\n */\n newPollAction(): void {\n if (!app.session.user) {\n app.modal.show(LogInModal);\n return;\n }\n\n m.route.set(app.route('fof.polls.compose'));\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Separator'];","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Poll from '../models/Poll';\nimport Component from 'flarum/common/Component';\nimport ComposePollPage from '../components/ComposePollPage';\nimport PollsPage from '../components/PollsPage';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Separator from 'flarum/common/components/Separator';\nimport Button from 'flarum/common/components/Button';\n\n/**\n * The `UserControls` utility constructs a list of buttons for a user which\n * perform actions on it.\n */\nexport default {\n /**\n * Get a list of controls for a user.\n */\n controls(poll: Poll, context: Component): ItemList {\n const items = new ItemList();\n\n ['poll', 'moderation', 'destructive'].forEach((section) => {\n const controls = (this[section + 'Controls'](poll, context) as ItemList).toArray();\n if (controls.length) {\n controls.forEach((item) => items.add(item.itemName, item));\n items.add(section + 'Separator', );\n }\n });\n\n return items;\n },\n\n /**\n * Get controls for direct modifcation actions on polls (e.g. vote, view voters).\n */\n pollControls(poll: Poll, context: Component): ItemList {\n return new ItemList();\n },\n\n /**\n * Get controls for a user pertaining to moderation (e.g. suspend, edit).\n */\n moderationControls(poll: Poll, context: Component): ItemList {\n const items = new ItemList();\n\n if (poll.canEdit()) {\n items.add(\n 'edit',\n \n );\n }\n\n return items;\n },\n\n /**\n * Get controls for a user which are destructive (e.g. delete).\n * @protected\n */\n destructiveControls(poll: Poll, context: Component): ItemList {\n const items = new ItemList();\n\n if (poll.canDelete()) {\n items.add(\n 'delete',\n \n );\n }\n\n return items;\n },\n\n /**\n * Delete the user.\n */\n async deleteAction(poll: Poll): Promise {\n if (!confirm(app.translator.trans(`fof-polls.forum.poll_controls.delete_confirmation`) as string)) {\n return;\n }\n\n return poll\n .delete()\n .then(() => {\n this.showDeletionAlert(poll, 'success');\n if (app.current.matches(ComposePollPage, { id: poll.id() }) || app.current.matches(PollsPage, { id: poll.id() })) {\n app.history.back();\n } else {\n window.location.reload();\n }\n })\n .catch(() => this.showDeletionAlert(poll, 'error'));\n },\n\n /**\n * Show deletion alert of poll\n */\n showDeletionAlert(poll: Poll, type: string): void {\n const message = {\n success: `fof-polls.forum.poll_controls.delete_success_message`,\n error: `fof-polls.forum.poll_controls.delete_error_message`,\n }[type]!;\n\n app.alerts.show({ type }, app.translator.trans(message, { poll: poll }));\n },\n\n /**\n * Edit the poll.\n */\n editAction(poll: Poll): void {\n m.route.set(app.route('fof.polls.compose', { id: poll.id() }));\n },\n};\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import app from 'flarum/forum/app';\nimport Button, { IButtonAttrs } from 'flarum/common/components/Button';\nimport classList from 'flarum/common/utils/classList';\nimport type Mithril from 'mithril';\nimport Poll from '../models/Poll';\n\nexport interface UploadPollImageButtonAttrs extends IButtonAttrs {\n className?: string;\n loading?: boolean;\n name: string;\n onclick: () => void;\n poll?: Poll | null;\n onUpload: (fileName: string | null | undefined) => void;\n}\n\nexport interface PollUploadObject {\n fileUrl: string;\n fileName: string;\n}\n\nexport default class UploadPollImageButton extends Button {\n loading: boolean = false;\n uploadedImageUrl: string | undefined = undefined;\n fileName: string | undefined = undefined;\n\n view(vnode: Mithril.Vnode) {\n this.attrs.loading = this.loading;\n this.attrs.className = classList(this.attrs.className, 'Button');\n\n if (this.attrs.poll?.imageUrl() || this.uploadedImageUrl) {\n const imageUrl = this.uploadedImageUrl || this.attrs.poll?.imageUrl();\n this.attrs.onclick = this.remove.bind(this);\n\n return (\n
\n

\n \"\"\n

\n

{super.view({ ...vnode, children: app.translator.trans('fof-polls.forum.upload_image.remove_button') })}

\n
\n );\n } else {\n this.attrs.onclick = this.upload.bind(this);\n }\n\n return super.view({ ...vnode, children: app.translator.trans('fof-polls.forum.upload_image.upload_button') });\n }\n\n /**\n * Prompt the user to upload an image.\n */\n upload() {\n if (this.loading) return;\n\n const $input = $('');\n\n $input\n .appendTo('body')\n .hide()\n .trigger('click')\n .on('change', (e) => {\n const body = new FormData();\n body.append(this.attrs.name, $(e.target)[0].files[0]);\n\n this.loading = true;\n m.redraw();\n\n app\n .request({\n method: 'POST',\n url: this.resourceUrl(),\n serialize: (raw) => raw,\n body,\n })\n .then(this.success.bind(this), this.failure.bind(this));\n });\n }\n\n /**\n * Remove the image.\n */\n remove() {\n this.loading = true;\n m.redraw();\n\n app\n .request({\n method: 'DELETE',\n url: this.resourceUrl(),\n })\n .then(this.success.bind(this), this.failure.bind(this));\n }\n\n resourceUrl() {\n let url = app.forum.attribute('apiUrl') + '/fof/polls/' + this.attrs.name;\n const poll = this.attrs.poll;\n\n if (poll?.exists) url += '/' + poll?.id();\n\n return url;\n }\n\n /**\n * After a successful upload/removal, redraw the page.\n *\n * @param {PollUploadObject} response\n * @protected\n */\n success(response: PollUploadObject | null) {\n this.loading = false;\n this.uploadedImageUrl = response?.fileUrl;\n this.fileName = response?.fileName;\n\n this.attrs.onUpload?.(response?.fileName);\n m.redraw();\n }\n\n /**\n * If upload/removal fails, stop loading.\n *\n * @param {object} response\n * @protected\n */\n failure(response: object) {\n this.loading = false;\n m.redraw();\n }\n}\n","import Component, { ComponentAttrs } from 'flarum/common/Component';\nimport type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Button from 'flarum/common/components/Button';\nimport Switch from 'flarum/common/components/Switch';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Stream from 'flarum/common/utils/Stream';\nimport extractText from 'flarum/common/utils/extractText';\nimport FormError from './form/FormError';\nimport PollFormState from '../states/PollFormState';\nimport PollControls from '../utils/PollControls';\nimport PollModel from '../models/Poll';\nimport PollOption from '../models/PollOption';\nimport UploadPollImageButton from './UploadPollImageButton';\nimport Poll from '../models/Poll';\nimport Tooltip from 'flarum/common/components/Tooltip';\n\ninterface PollFormAttrs extends ComponentAttrs {\n poll: PollModel;\n onsubmit: (data: object, state: PollFormState) => Promise;\n}\n\nexport default class PollForm extends Component {\n protected options: PollOption[] = [];\n protected optionAnswers: Stream[] = [];\n protected optionImageUrls: Stream[] = [];\n protected question: Stream;\n protected subtitle: Stream;\n protected pollImage: Stream;\n protected imageAlt: Stream;\n protected endDate: Stream;\n protected publicPoll: Stream;\n protected allowMultipleVotes: Stream;\n protected hideVotes: Stream;\n protected allowChangeVote: Stream;\n protected maxVotes: Stream;\n protected datepickerMinDate: string = '';\n\n oninit(vnode: Mithril.Vnode): void {\n super.oninit(vnode);\n this.state = new PollFormState(this.attrs.poll);\n\n // state handles poll initialization\n const poll = this.state.poll;\n\n this.options = (poll.tempOptions ?? poll.options()) as PollOption[];\n this.optionAnswers = this.options.map((o) => Stream(o.answer()));\n this.optionImageUrls = this.options.map((o) => Stream(o.imageUrl()));\n\n this.question = Stream(poll.question());\n this.subtitle = Stream(poll.subtitle());\n this.pollImage = Stream(poll.imageUrl());\n this.imageAlt = Stream(poll.imageAlt());\n this.endDate = Stream(this.formatDate(poll.endDate()));\n this.publicPoll = Stream(poll.publicPoll());\n this.allowMultipleVotes = Stream(poll.allowMultipleVotes());\n this.hideVotes = Stream(poll.hideVotes());\n this.allowChangeVote = Stream(poll.allowChangeVote());\n this.maxVotes = Stream(poll.maxVotes() || 0);\n\n // Set minimum date for datepicker to current date\n this.datepickerMinDate = this.formatDate() as string;\n\n // Replace minimum of 'today' for poll end date only if the poll is not already closed\n if (this.endDate() && dayjs(poll.endDate).isAfter(dayjs())) {\n // We know that endDate is set, so we can safely cast the result to string\n this.datepickerMinDate = this.formatDate(poll.endDate()) as string;\n }\n }\n\n view(): Mithril.Children {\n return (\n
\n
{this.fields().toArray()}
\n
\n );\n }\n\n fields(): ItemList {\n const items = new ItemList();\n\n items.add(\n 'question',\n
\n \n\n \n
,\n 100\n );\n\n items.add(\n 'subtitle',\n
\n \n\n \n
,\n 95\n );\n\n items.add(\n 'poll_image',\n
\n \n

{app.translator.trans('fof-polls.forum.modal.poll_image.help')}

\n \n \n
,\n 90\n );\n\n if (this.pollImage()) {\n items.add(\n 'poll_image_alt',\n
\n \n\n \n\n

{app.translator.trans('fof-polls.forum.modal.poll_image.alt_help_text')}

\n
,\n 90\n );\n }\n\n items.add(\n 'answers',\n
\n \n\n {this.displayOptions()}\n\n \n
,\n 80\n );\n\n items.add(\n 'date',\n
\n \n\n
\n \n {Button.component({\n className: 'Button PollModal--button Button--icon',\n icon: 'fas fa-times',\n onclick: this.endDate.bind(this, null),\n })}\n
\n\n {this.endDate() && (\n

\n \n  \n {dayjs(this.endDate()).isBefore(dayjs())\n ? app.translator.trans('fof-polls.forum.poll_ended')\n : app.translator.trans('fof-polls.forum.days_remaining', { time: dayjs(this.endDate()).fromNow() })}\n

\n )}\n
,\n 40\n );\n\n items.add(\n 'public',\n
\n {Switch.component(\n {\n state: this.publicPoll() || false,\n onchange: this.publicPoll,\n },\n app.translator.trans('fof-polls.forum.modal.public_poll_label')\n )}\n
,\n 20\n );\n\n items.add(\n 'hide-votes',\n
\n \n {app.translator.trans('fof-polls.forum.modal.hide_votes_label')}\n \n
,\n 20\n );\n\n items.add(\n 'allow-change-vote',\n
\n \n {app.translator.trans('fof-polls.forum.modal.allow_change_vote_label')}\n \n
,\n 20\n );\n\n items.add(\n 'allow-multiple-votes',\n
\n {Switch.component(\n {\n state: this.allowMultipleVotes() || false,\n onchange: this.allowMultipleVotes,\n },\n app.translator.trans('fof-polls.forum.modal.allow_multiple_votes_label')\n )}\n
,\n 15\n );\n\n if (this.allowMultipleVotes()) {\n items.add(\n 'max-votes',\n
\n \n\n \n\n

{app.translator.trans('fof-polls.forum.modal.max_votes_help')}

\n
,\n 15\n );\n }\n\n items.add(\n 'submit',\n
\n \n {this.state.poll.exists && (\n \n {app.translator.trans('fof-polls.forum.modal.delete')}\n \n )}\n
,\n -10\n );\n\n return items;\n }\n\n displayOptions() {\n return Object.keys(this.options).map((option, i) => (\n
\n
\n \n {app.forum.attribute('allowPollOptionImage') ? (\n \n ) : null}\n
\n {i >= 2\n ? Button.component({\n type: 'button',\n className: 'Button PollModal--button Button--icon',\n icon: 'fas fa-minus',\n onclick: i >= 2 ? this.removeOption.bind(this, i) : '',\n })\n : ''}\n
\n ));\n }\n\n addOption() {\n const max = Math.max(app.forum.attribute('pollMaxOptions'), 2);\n\n if (this.options.length < max) {\n this.options.push(app.store.createRecord('poll_options'));\n this.optionAnswers.push(Stream(''));\n this.optionImageUrls.push(Stream(''));\n } else {\n alert(extractText(app.translator.trans('fof-polls.forum.modal.max', { max })));\n }\n }\n\n removeOption(i: number): void {\n this.options.splice(i, 1);\n this.optionAnswers.splice(i, 1);\n this.optionImageUrls.splice(i, 1);\n }\n\n data(): object {\n if (this.question() === '') {\n throw new FormError(app.translator.trans('fof-polls.forum.modal.include_question'));\n }\n\n if (this.options.length < 2) {\n throw new FormError(app.translator.trans('fof-polls.forum.modal.min'));\n }\n\n const pollExists = this.state.poll.exists;\n const options = this.options.map((option, i) => {\n option.pushAttributes({\n answer: this.optionAnswers[i](),\n imageUrl: this.optionImageUrls[i](),\n });\n\n return pollExists ? option.data : option.data.attributes;\n });\n\n return {\n question: this.question(),\n subtitle: this.subtitle(),\n pollImage: this.pollImage(),\n imageAlt: this.imageAlt(),\n endDate: this.dateToTimestamp(this.endDate()) ?? false,\n publicPoll: this.publicPoll(),\n hideVotes: this.hideVotes(),\n allowChangeVote: this.allowChangeVote(),\n allowMultipleVotes: this.allowMultipleVotes(),\n maxVotes: this.maxVotes(),\n options,\n };\n }\n\n async onsubmit(event: Event) {\n event.preventDefault();\n\n try {\n await this.attrs.onsubmit(this.data(), this.state);\n } catch (error) {\n if (error instanceof FormError) {\n app.alerts.show({ type: 'error' }, error.message);\n } else {\n console.error(error);\n // Show error alert\n app.alerts.show({ type: 'error' }, app.translator.trans('fof-polls.forum.modal.error'));\n }\n }\n }\n\n async delete(): Promise {\n this.state.loading = true;\n try {\n await PollControls.deleteAction(this.state.poll);\n this.state.deleting = true;\n } finally {\n this.state.loading = false;\n m.redraw();\n }\n }\n\n formatDate(date: Date | string | false | undefined | null = undefined, def: Date | false = false): string | false {\n const dayjsDate = dayjs(date);\n\n if (date === false || !dayjsDate.isValid()) return def !== false ? this.formatDate(def) : false;\n\n return dayjsDate.format('YYYY-MM-DDTHH:mm');\n }\n\n dateToTimestamp(date: Date | false): string | null {\n const dayjsDate = dayjs(date);\n\n if (!date || !dayjsDate.isValid()) return null;\n\n return dayjsDate.format();\n }\n\n pollImageUploadSuccess(fileName: string | null | undefined): void {\n this.pollImage(fileName);\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Modal, { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport PollForm from './PollForm';\nimport PollModel from '../models/Poll';\nimport PollFormState from '../states/PollFormState';\n\ninterface CreatePollModalAttrs extends IInternalModalAttrs {\n poll: PollModel;\n onsubmit: (data: object) => Promise;\n}\n\nexport default class CreatePollModal extends Modal {\n title(): Mithril.Children {\n return app.translator.trans('fof-polls.forum.modal.add_title');\n }\n\n className(): string {\n return 'PollDiscussionModal Modal--medium';\n }\n\n content(): Mithril.Children {\n return [\n
\n \n
,\n ];\n }\n\n async onFormSubmit(data: object, state: PollFormState): Promise {\n this.hide();\n await this.attrs.onsubmit(data);\n }\n}\n","import app from 'flarum/forum/app';\n\nimport { extend } from 'flarum/common/extend';\nimport classList from 'flarum/common/utils/classList';\nimport DiscussionComposer from 'flarum/forum/components/DiscussionComposer';\nimport ReplyComposer from 'flarum/forum/components/ReplyComposer';\nimport CreatePollModal from './components/CreatePollModal';\nimport Poll from './models/Poll';\nimport PollOption from './models/PollOption';\nimport { ModelAttributes } from 'flarum/common/Model';\nimport PollModelAttributes from './models/PollModelAttributes';\n\nfunction toPoll(data: PollModelAttributes) {\n if (data) {\n const poll = app.store.createRecord('polls');\n\n poll.tempOptions = data.options.map((option: ModelAttributes) => {\n const pollOption = app.store.createRecord('poll_options');\n pollOption.pushAttributes(option);\n return pollOption;\n });\n poll.pushAttributes(data);\n\n return poll;\n }\n return data;\n}\n\nexport const addToComposer = (composer: ComponentClass) => {\n // @ts-ignore\n composer.prototype.addPoll = function () {\n app.modal.show(CreatePollModal, {\n poll: toPoll(this.composer.fields.poll),\n onsubmit: (poll: PollModelAttributes) => (this.composer.fields.poll = poll),\n });\n };\n\n // Add button to DiscussionComposer header\n extend(composer.prototype, 'headerItems', function (items) {\n const discussion = this.composer.body?.attrs?.discussion;\n\n // @ts-ignore\n const canStartPoll = discussion?.canStartPoll() ?? app.forum.canStartPolls();\n\n if (canStartPoll) {\n items.add(\n 'polls',\n \n \n {app.translator.trans(`fof-polls.forum.composer_discussion.${this.composer.fields.poll ? 'edit' : 'add'}_poll`)}\n \n ,\n 1\n );\n }\n });\n\n extend(composer.prototype, 'data', function (data) {\n if (this.composer.fields.poll) {\n data.poll = this.composer.fields.poll;\n }\n });\n};\n\nexport default () => {\n addToComposer(DiscussionComposer);\n addToComposer(ReplyComposer);\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/CommentPost'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionPage'];","import app from 'flarum/forum/app';\n\nimport { extend } from 'flarum/common/extend';\nimport CommentPost from 'flarum/forum/components/CommentPost';\nimport PollView from './components/PollView';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport Poll from './models/Poll';\nimport Post from 'flarum/common/models/Post';\nimport PollOption from './models/PollOption';\n\ninterface PollPost extends Post {\n polls: () => Poll[];\n}\n\ninterface PusherPollDto {\n pollId: string;\n pollVoteCount: number;\n options: { [key: string]: number };\n}\n\nexport default () => {\n extend(CommentPost.prototype, 'content', function (content) {\n const post = this.attrs.post as PollPost;\n\n if ((!post.isHidden() || this.revealContent) && post.polls()) {\n for (const poll of post.polls()) {\n if (poll) {\n content.push();\n }\n }\n }\n });\n\n extend(CommentPost.prototype, 'oninit', function () {\n this.subtree.check(() => {\n const polls = (this.attrs.post as PollPost).polls();\n\n const checks = polls?.map?.(\n (poll) =>\n poll && [\n poll.data?.attributes,\n poll.options().map?.((option) => option?.data?.attributes),\n poll.myVotes().map?.((vote) => vote.option()?.id()),\n ]\n );\n\n return JSON.stringify(checks);\n });\n });\n\n extend(DiscussionPage.prototype, 'oncreate', function () {\n // @ts-ignore\n if (app.pusher) {\n // @ts-ignore\n app.pusher.then((binding) => {\n // We will listen for updates to all polls and options\n // Even if that model is not in the current discussion, it doesn't really matter\n binding.channels.main.bind('updatedPollOptions', (data: PusherPollDto) => {\n const poll = app.store.getById('polls', data['pollId']);\n\n if (poll) {\n poll.pushAttributes({\n voteCount: data['pollVoteCount'],\n });\n\n // Not redrawing here, as the option below should trigger the redraw already\n }\n\n const changedOptions = data['options'];\n\n for (const optionId in changedOptions) {\n const option = app.store.getById('poll_options', optionId);\n\n if (option && option.voteCount() !== undefined) {\n option.pushAttributes({\n voteCount: changedOptions[optionId],\n });\n }\n }\n\n m.redraw();\n });\n });\n }\n });\n\n extend(DiscussionPage.prototype, 'onremove', function () {\n // @ts-ignore\n if (app.pusher) {\n // @ts-ignore\n app.pusher.then((binding) => {\n binding.channels.main.unbind('updatedPollOptions');\n });\n }\n });\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/utils/PostControls'];","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport CreatePollModal from './CreatePollModal';\nimport PollFormState from '../states/PollFormState';\n\nexport default class EditPollModal extends CreatePollModal {\n title(): Mithril.Children {\n return app.translator.trans('fof-polls.forum.modal.edit_title');\n }\n\n async onFormSubmit(data: object, state: PollFormState): Promise {\n await state.save(data);\n\n // Show success alert\n const alertId = app.alerts.show(\n {\n type: 'success',\n },\n app.translator.trans('fof-polls.forum.compose.success')\n );\n\n // Hide alert after 10 seconds\n setTimeout(() => app.alerts.dismiss(alertId), 10000);\n }\n}\n","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport LogInModal from 'flarum/forum/components/LogInModal';\nimport ListVotersModal from './ListVotersModal';\nimport classList from 'flarum/common/utils/classList';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Tooltip from 'flarum/common/components/Tooltip';\nimport icon from 'flarum/common/helpers/icon';\nimport EditPollModal from './EditPollModal';\nimport Poll from '../models/Poll';\nimport type Mithril from 'mithril';\nimport PollOption from '../models/PollOption';\nimport Post from 'flarum/common/models/Post';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport interface PostPollAttrs extends ComponentAttrs {\n poll: Poll;\n post?: Post;\n}\n\nexport default class PostPoll extends Component {\n loadingOptions: boolean = false;\n useSubmitUI!: boolean;\n pendingSubmit: boolean = false;\n pendingOptions: any;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.useSubmitUI = !this.attrs.poll?.canChangeVote() && this.attrs.poll?.allowMultipleVotes();\n this.pendingOptions = null;\n }\n\n oncreate(vnode: Mithril.Vnode) {\n super.oncreate(vnode);\n\n this.preventClose = this.preventClose.bind(this);\n window.addEventListener('beforeunload', this.preventClose);\n }\n\n onremove(vnode: Mithril.Vnode) {\n super.onremove(vnode);\n\n window.removeEventListener('beforeunload', this.preventClose);\n }\n\n view() {\n const poll = this.attrs.poll;\n const options = poll.options() || [];\n let maxVotes = poll.allowMultipleVotes() ? poll.maxVotes() : 1;\n\n if (maxVotes === 0) maxVotes = options.length;\n\n const infoItems = this.infoItems(maxVotes);\n\n return (\n
\n
\n
\n

{poll.question()}

\n {poll.subtitle() &&

{poll.subtitle()}

}\n
\n\n
\n {poll.canSeeVoters() && (\n \n
\n
\n\n
\n
{options.map(this.viewOption.bind(this))}
\n\n
\n {!infoItems.isEmpty() &&
{infoItems.toArray()}
}\n\n {this.useSubmitUI && this.pendingSubmit && (\n \n )}\n
\n
\n
\n );\n }\n\n infoItems(maxVotes: number) {\n const items = new ItemList();\n const poll = this.attrs.poll;\n const hasVoted = poll.myVotes()?.length > 0;\n\n if (app.session.user && !poll.canVote() && !poll.hasEnded()) {\n items.add(\n 'no-permission',\n \n \n {app.translator.trans('fof-polls.forum.no_permission')}\n \n );\n }\n\n if (poll.endDate()) {\n items.add(\n 'end-date',\n \n \n {poll.hasEnded()\n ? app.translator.trans('fof-polls.forum.poll_ended')\n : app.translator.trans('fof-polls.forum.days_remaining', { time: dayjs(poll.endDate()).fromNow() })}\n \n );\n }\n\n if (poll.canVote()) {\n items.add(\n 'max-votes',\n \n \n {app.translator.trans('fof-polls.forum.max_votes_allowed', { max: maxVotes })}\n \n );\n\n if (!poll.canChangeVote()) {\n items.add(\n 'cannot-change-vote',\n \n \n {app.translator.trans('fof-polls.forum.poll.cannot_change_vote')}\n \n );\n }\n }\n\n return items;\n }\n\n viewOption(opt: PollOption) {\n const poll = this.attrs.poll;\n const hasVoted = poll.myVotes()?.length > 0;\n const totalVotes = poll.voteCount();\n\n const voted = this.pendingOptions ? this.pendingOptions.has(opt.id()) : poll.myVotes()?.some?.((vote) => vote.option() === opt);\n const votes = opt.voteCount();\n const percent = totalVotes > 0 ? Math.round((votes / totalVotes) * 100) : 0;\n\n // isNaN(null) is false, so we have to check type directly now that API always returns the field\n const canSeeVoteCount = typeof votes === 'number';\n const isDisabled = this.loadingOptions || (hasVoted && !poll.canChangeVote());\n const width = canSeeVoteCount ? percent : (Number(voted) / (poll.myVotes()?.length || 1)) * 100;\n\n const showCheckmark = !app.session.user || (!poll.hasEnded() && poll.canVote() && (!hasVoted || poll.canChangeVote()));\n\n const bar = (\n
\n {showCheckmark && (\n \n )}\n\n
\n {opt.answer()}\n {voted && !showCheckmark && icon('fas fa-check-circle', { className: 'PollAnswer-check' })}\n {canSeeVoteCount && {percent}%}\n
\n\n {opt.imageUrl() ? {opt.answer()} : null}\n
\n );\n\n return (\n \n {canSeeVoteCount ? (\n \n {bar}\n \n ) : (\n bar\n )}\n
\n );\n }\n\n changeVote(option: PollOption, evt: Event) {\n if (!app.session.user) {\n app.modal.show(LogInModal);\n evt.target.checked = false;\n return;\n }\n\n const optionIds = this.pendingOptions || new Set(this.attrs.poll.myVotes().map?.((v) => v.option().id()));\n const isUnvoting = optionIds.delete(option.id());\n const allowsMultiple = this.attrs.poll.allowMultipleVotes();\n\n if (!allowsMultiple) {\n optionIds.clear();\n }\n\n if (!isUnvoting) {\n optionIds.add(option.id());\n }\n\n if (this.useSubmitUI) {\n this.pendingOptions = optionIds.size ? optionIds : null;\n this.pendingSubmit = !!this.pendingOptions;\n return;\n }\n\n return this.submit(optionIds, null, () => (evt.target.checked = isUnvoting));\n }\n\n onsubmit() {\n return this.submit(this.pendingOptions, () => {\n this.pendingOptions = null;\n this.pendingSubmit = false;\n });\n }\n\n submit(optionIds, cb, onerror) {\n this.loadingOptions = true;\n m.redraw();\n\n return app\n .request({\n method: 'PATCH',\n url: `${app.forum.attribute('apiUrl')}/fof/polls/${this.attrs.poll.id()}/votes`,\n body: {\n data: {\n optionIds: Array.from(optionIds),\n },\n },\n })\n .then((res) => {\n app.store.pushPayload(res);\n cb?.();\n })\n .catch((err) => {\n onerror?.(err);\n })\n .finally(() => {\n this.loadingOptions = false;\n\n m.redraw();\n });\n }\n\n showVoters() {\n // Load all the votes only when opening the votes list\n app.modal.show(ListVotersModal, {\n poll: this.attrs.poll,\n post: this.attrs.post,\n });\n }\n\n deletePoll() {\n if (confirm(extractText(app.translator.trans('fof-polls.forum.moderation.delete_confirm')))) {\n this.attrs.poll.delete().then(() => {\n m.redraw.sync();\n });\n }\n }\n\n /**\n * Attempting to use the `tooltipVisible` attr on the Tooltip component set to 'false' when no vote count\n * caused the tooltip to break on click. This is a workaround to hide the tooltip when no vote count is available,\n * called on 'onremove' of the Tooltip component. It doesn't always work as intended either, but it does the job.\n */\n hideOptionTooltip(vnode: Mithril.Vnode) {\n vnode.attrs.tooltipVisible = false;\n vnode.state.updateVisibility();\n }\n\n /**\n * Alert before navigating away using browser's 'beforeunload' event\n */\n preventClose(e) {\n if (this.pendingOptions) {\n e.preventDefault();\n return true;\n }\n }\n}\n","import Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Poll from '../models/Poll';\nimport type Mithril from 'mithril';\nimport PollView from './PollView';\n\nexport interface PollShowcaseItemAttrs extends ComponentAttrs {\n poll: Poll;\n}\n\nexport default class PollShowcaseItem extends Component {\n poll!: Poll;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.poll = this.attrs.poll;\n }\n\n view() {\n return (\n
\n \n
\n );\n }\n}\n","import Component, { ComponentAttrs } from 'flarum/common/Component';\nimport PollListState from '../states/PollListState';\nimport type Mithril from 'mithril';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport PollShowcaseItem from './PollShowcaseItem';\nimport Placeholder from 'flarum/common/components/Placeholder';\nimport app from 'flarum/forum/app';\n\nexport interface PollListAttrs extends ComponentAttrs {\n state: PollListState;\n}\n\nexport default class PollShowcase extends Component {\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.attrs.state.refresh();\n }\n\n view(): Mithril.Children {\n return (\n
\n
\n

{app.translator.trans('fof-polls.forum.showcase.active-polls')}

\n {this.showcaseItems().toArray()}\n {this.showcaseItems().toArray().length === 0 && }\n
\n
\n

{app.translator.trans('fof-polls.forum.showcase.ended-polls')}

\n {this.endedItems().toArray()}\n {this.endedItems().toArray().length === 0 && }\n
\n
\n );\n }\n\n showcaseItems(): ItemList {\n const items = new ItemList();\n\n this.attrs.state.getPages().map((page) => {\n page.items.map((poll) => {\n if (!poll.hasEnded()) {\n items.add('poll-active-' + poll.id(), );\n }\n });\n });\n\n return items;\n }\n\n endedItems(): ItemList {\n const items = new ItemList();\n\n this.attrs.state.getPages().map((page) => {\n page.items.map((poll) => {\n if (poll.hasEnded()) {\n items.add('poll-ended-' + poll.id(), );\n }\n });\n });\n\n return items;\n }\n}\n","import app from 'flarum/forum/app';\nimport { IPageAttrs } from 'flarum/common/components/Page';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Mithril from 'mithril';\nimport PollListState from '../states/PollListState';\nimport extractText from 'flarum/common/utils/extractText';\nimport Button from 'flarum/common/components/Button';\nimport LogInModal from 'flarum/forum/components/LogInModal';\nimport { AbstractPollPage } from './AbstractPollPage';\nimport PollShowcase from './PollShowcase';\n\nexport default class PollsShowcasePage extends AbstractPollPage {\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n if (!app.forum.attribute('globalPollsEnabled')) {\n m.route.set('/');\n return;\n }\n\n this.state = new PollListState({\n sort: m.route.param('sort'),\n filter: m.route.param('filter'),\n include: this.includeParams(),\n });\n\n this.state.refresh();\n\n app.setTitle(extractText(app.translator.trans('fof-polls.forum.page.nav')));\n }\n\n includeParams(): string[] {\n return ['options', 'votes', 'myVotes', 'myVotes.option'];\n }\n\n contentItems(): ItemList {\n const items = super.contentItems();\n\n if (!this.loading) {\n items.add('poll-showcase', );\n }\n\n return items;\n }\n\n sidebarItems(): ItemList {\n const items = super.sidebarItems();\n const canStartPoll = app.forum.attribute('canStartGlobalPolls');\n\n if (canStartPoll) {\n items.remove('newDiscussion');\n items.add(\n 'newGlobalPoll',\n {\n this.newPollAction();\n }}\n disabled={!canStartPoll}\n >\n {app.translator.trans(`fof-polls.forum.poll.${canStartPoll ? 'start_poll_button' : 'cannot_start_poll_button'}`)}\n ,\n 100\n );\n }\n\n return items;\n }\n\n newPollAction(): void {\n if (!app.session.user) {\n app.modal.show(LogInModal);\n return;\n }\n\n m.route.set(app.route('fof.polls.compose'));\n }\n}\n","import CreatePollModal from './CreatePollModal';\nimport PostPoll from './PostPoll';\nimport EditPollModal from './EditPollModal';\nimport ListVotersModal from './ListVotersModal';\nimport PollForm from './PollForm';\nimport ComposePollHero from './ComposePollHero';\nimport ComposePollPage from './ComposePollPage';\nimport PollsPage from './PollsPage';\nimport PollView from './PollView';\nimport PollViewPage from './PollViewPage';\nimport PollSubmitButton from './Poll/PollSubmitButton';\nimport PollOptions from './Poll/PollOptions';\nimport PollsShowcasePage from './PollsShowcasePage';\nimport PollShowcase from './PollShowcase';\nimport PollShowcaseItem from './PollShowcaseItem';\nimport { AbstractPollPage } from './AbstractPollPage';\nimport PollTitle from './Poll/PollTitle';\nimport PollSubtitle from './Poll/PollSubtitle';\nimport PollImage from './Poll/PollImage';\n\nexport const components = {\n CreatePollModal,\n PostPoll,\n EditPollModal,\n ListVotersModal,\n PollForm,\n ComposePollHero,\n ComposePollPage,\n PollsPage,\n PollView,\n PollViewPage,\n PollSubmitButton,\n PollOptions,\n PollsShowcasePage,\n PollShowcase,\n PollShowcaseItem,\n AbstractPollPage,\n PollTitle,\n PollSubtitle,\n PollImage,\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Model'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/computed'];","import Model from 'flarum/common/Model';\nimport PollOption from './PollOption';\nimport PollVote from './PollVote';\nimport computed from 'flarum/common/utils/computed';\n\nexport default class Poll extends Model {\n public tempOptions: PollOption[] | undefined;\n\n question() {\n return Model.attribute('question').call(this);\n }\n\n subtitle() {\n return Model.attribute('subtitle').call(this);\n }\n\n imageUrl() {\n return Model.attribute('imageUrl').call(this);\n }\n\n imageAlt() {\n return Model.attribute('imageAlt').call(this);\n }\n\n hasEnded() {\n return Model.attribute('hasEnded').call(this);\n }\n\n endDate() {\n return Model.attribute('endDate', Model.transformDate).call(this);\n }\n\n publicPoll() {\n return Model.attribute('publicPoll').call(this);\n }\n\n hideVotes() {\n return Model.attribute('hideVotes').call(this);\n }\n\n allowChangeVote() {\n return Model.attribute('allowChangeVote').call(this);\n }\n\n allowMultipleVotes() {\n return Model.attribute('allowMultipleVotes').call(this);\n }\n\n maxVotes() {\n return Model.attribute('maxVotes').call(this);\n }\n\n voteCount() {\n return Model.attribute('voteCount').call(this);\n }\n\n canVote() {\n return Model.attribute('canVote').call(this);\n }\n\n canEdit() {\n return Model.attribute('canEdit').call(this);\n }\n\n canDelete() {\n return Model.attribute('canDelete').call(this);\n }\n\n canSeeVoters() {\n return Model.attribute('canSeeVoters').call(this);\n }\n\n canChangeVote() {\n return Model.attribute('canChangeVote').call(this);\n }\n\n options() {\n const options = Model.hasMany('options').call(this);\n return options ? (options as PollOption[]) : [];\n }\n\n votes() {\n return Model.hasMany('votes').call(this);\n }\n\n myVotes(): PollVote[] {\n const myVotes = Model.hasMany('myVotes').call(this);\n return myVotes ? (myVotes as PollVote[]) : [];\n }\n\n isGlobal() {\n return Model.attribute('isGlobal').call(this);\n }\n\n isHidden() {\n return computed('hiddenAt', (hiddenAt) => !!hiddenAt).call(this);\n }\n\n // TODO: These two don't make sense as of now\n isUnread() {\n return false;\n }\n\n apiEndpoint() {\n /** @ts-ignore */\n return `/fof/polls${this.exists ? `/${this.data.id}` : ''}`;\n }\n}\n","import Model from 'flarum/common/Model';\nimport Poll from './Poll';\nimport PollVote from './PollVote';\n\nexport default class PollOption extends Model {\n answer() {\n return Model.attribute('answer').call(this);\n }\n\n imageUrl() {\n return Model.attribute('imageUrl').call(this);\n }\n\n voteCount() {\n return Model.attribute('voteCount').call(this);\n }\n\n poll() {\n return Model.hasOne('polls').call(this);\n }\n\n votes() {\n return Model.hasMany('votes').call(this);\n }\n\n apiEndpoint() {\n /** @ts-ignore */\n return `/fof/polls/answers${this.exists ? `/${this.data.id}` : ''}`;\n }\n}\n","import Model from 'flarum/common/Model';\nimport Poll from './Poll';\nimport PollOption from './PollOption';\nimport User from 'flarum/common/models/User';\n\nexport default class PollVote extends Model {\n poll() {\n return Model.hasOne('poll').call(this);\n }\n\n option() {\n const result = Model.hasOne('option').call(this);\n return result === false ? null : result;\n }\n\n user() {\n return Model.hasOne('user').call(this);\n }\n\n pollId() {\n return Model.attribute('pollId').call(this);\n }\n\n optionId() {\n return Model.attribute('optionId').call(this);\n }\n\n apiEndpoint() {\n return `/fof/polls/${this.pollId()}/vote`;\n }\n}\n","import Poll from './Poll';\nimport PollOption from './PollOption';\nimport PollVote from './PollVote';\n\nexport const models = {\n Poll,\n PollOption,\n PollVote,\n};\n","import PollFormState from './PollFormState';\nimport PollListState from './PollListState';\nimport PollState from './PollState';\n\nexport const states = {\n PollFormState,\n PollListState,\n PollState,\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extenders'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Post'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Forum'];","import Extend from 'flarum/common/extenders';\nimport Post from 'flarum/common/models/Post';\nimport Forum from 'flarum/common/models/Forum';\nimport Discussion from 'flarum/common/models/Discussion';\nimport Poll from './models/Poll';\nimport PollOption from './models/PollOption';\nimport PollVote from './models/PollVote';\nimport PollsPage from './components/PollsPage';\nimport ComposePollPage from './components/ComposePollPage';\nimport PollViewPage from './components/PollViewPage';\nimport PollsShowcasePage from './components/PollsShowcasePage';\n\nexport default [\n new Extend.Routes() //\n .add('fof.polls.showcase', '/polls', PollsShowcasePage)\n .add('fof.polls.list', '/polls/all', PollsPage)\n .add('fof.polls.view', '/polls/view/:id', PollViewPage)\n .add('fof.polls.compose', '/polls/composer', ComposePollPage),\n\n new Extend.Store() //\n .add('polls', Poll)\n .add('poll_options', PollOption)\n .add('poll_votes', PollVote),\n\n new Extend.Model(Post) //\n .hasMany('polls')\n .attribute('canStartPoll'),\n\n new Extend.Model(Forum) //\n .attribute('canStartPolls'),\n\n new Extend.Model(Discussion) //\n .attribute('hasPoll')\n .attribute('canStartPoll'),\n];\n","import app from 'flarum/forum/app';\n\nimport addDiscussionBadge from './addDiscussionBadge';\nimport addComposerItems from './addComposerItems';\nimport addPollsToPost from './addPollsToPost';\nimport addPostControls from './addPostControls';\nimport addNavItem from './addNavItem';\n\nexport * from './components';\nexport * from './models';\nexport * from './states';\n\napp.initializers.add('fof/polls', () => {\n addDiscussionBadge();\n addComposerItems();\n addPollsToPost();\n addPostControls();\n addNavItem();\n});\n\nexport { default as extend } from './extend';\n","import app from 'flarum/forum/app';\n\nimport { extend } from 'flarum/common/extend';\nimport PostControls from 'flarum/forum/utils/PostControls';\nimport CreatePollModal from './components/CreatePollModal';\nimport Button from 'flarum/common/components/Button';\nimport Post from 'flarum/common/models/Post';\nimport PollModelAttributes from './models/PollModelAttributes';\n\nexport default () => {\n const createPoll = (post: Post) =>\n app.modal.show(CreatePollModal, {\n onsubmit: (data: PollModelAttributes) =>\n app.store\n .createRecord('polls')\n .save(\n {\n ...data,\n relationships: {\n post,\n },\n },\n {\n data: {\n include: 'options,myVotes,myVotes.option',\n },\n }\n )\n .then((poll) => {\n // @ts-ignore\n post.rawRelationship('polls')?.push?.({ type: 'polls', id: poll.id() });\n\n return poll;\n }),\n });\n\n extend(PostControls, 'moderationControls', function (items, post) {\n // @ts-ignore\n if (!post.isHidden() && post.canStartPoll()) {\n items.add(\n 'addPoll',\n \n );\n }\n });\n};\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport LinkButton from 'flarum/common/components/LinkButton';\n\nexport default function addNavItem() {\n extend(IndexPage.prototype, 'navItems', (items) => {\n if (!app.forum.attribute('globalPollsEnabled')) {\n return;\n }\n\n items.add(\n 'fof-polls-showcase',\n LinkButton.component(\n {\n href: app.route('fof.polls.showcase'),\n icon: 'fas fa-poll',\n },\n app.translator.trans('fof-polls.forum.page.nav')\n ),\n 35\n );\n\n const showAllGlobalPolls = app.forum.attribute('canStartGlobalPolls');\n\n if (showAllGlobalPolls) {\n items.add(\n 'fof-polls-list',\n LinkButton.component(\n {\n href: app.route('fof.polls.list'),\n icon: 'fas fa-list',\n },\n app.translator.trans('fof-polls.forum.page.nav-all')\n ),\n 32\n );\n }\n });\n}\n"],"names":["_typeof","require","_regeneratorRuntime","module","exports","e","__esModule","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","this","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","key","get","obj","prop","flarum","core","compat","asyncGeneratorStep","gen","reject","_next","_throw","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","_setPrototypeOf","bind","_inheritsLoose","subClass","superClass","_getPrototypeOf","_isNativeReflectConstruct","Boolean","valueOf","Reflect","construct","_wrapNativeSuper","Class","_cache","Map","toString","indexOf","isNativeFunction","has","set","Wrapper","isNativeReflectConstruct","FormError","_Error","props","PollFormState","poll","loading","deleting","expandedGroup","createNewPoll","app","createRecord","pushAttributes","question","endDate","publicPoll","allowMultipleVotes","hideVotes","allowChangeVote","maxVotes","tempOptions","_proto","isExpanded","groupKey","expand","m","redraw","save","_save","_callee","data","_context","attributes","options","_x","_delete2","_callee2","_context2","ComposePollHero","_Component","_this","_len","Array","_key","concat","oninit","vnode","attrs","view","className","trans","id","controlItems","toArray","items","ItemList","add","LinkButton","icon","itemClassName","href","exists","Component","ComposePollPage","_Page","_this$poll","_this$poll2","_this2","attribute","editId","route","param","getById","find","item","_this2$poll","bodyClass","LoadingIndicator","listItems","sidebarItems","PollForm","onsubmit","_onsubmit","state","isNew","alertAttrs","alertId","controls","Button","onclick","show","setTimeout","dismiss","_x2","SelectDropdown","buttonClassName","accessibleToggleLabel","navItems","IndexPage","Page","PollOption","_poll$myVotes","option","hasVoted","totalVotes","overallVoteCount","votes","voteCount","voted","hasVotedFor","percent","Math","round","canSeeVoteCount","isDisabled","loadingOptions","canChangeVote","width","Number","myVotes","bar","style","showCheckMarks","onchange","changeVote","checked","disabled","answer","classList","imageUrl","src","alt","Tooltip","text","count","onremove","hideOptionTooltip","tooltipVisible","updateVisibility","PollOptions","pollOptions","createOptionView","PollImage","imageAlt","imageItems","_this$imageAlt","ListVotersModal","_Modal","include","title","content","map","optionContent","opt","filter","voteContent","vote","user","Link","avatar","username","Modal","PollState","pendingSubmit","pendingOptions","useSubmitUI","showVoters","hasEnded","canVote","init","isShowResult","some","getMaxVotes","showButton","evt","target","LogInModal","optionIds","Set","isUnvoting","clear","size","submit","hasSelectedOptions","cb","onerror","_this3","url","body","from","res","pushPayload","PollSubmitButton","event","pollButtonSubmit","PollTitle","pollTitleItems","PollSubtitle","subtitle","pollSubtitleItems","PollView","preventClose","preventDefault","oncreate","window","addEventListener","removeEventListener","PollControls","controlsView","createMainView","createPollHeader","createPollContent","createPollFooter","createFormItems","infoItems","isEmpty","questionSlug","slug","Dropdown","menuClassName","class","time","dayjs","fromNow","max","AbstractPollPage","polls","pageContent","hero","mainContent","sidebar","contentItems","setContent","remove","toObject","startsWith","PollViewPage","_AbstractPollPage","PollListItem","subtree","highlightRegExp","SubtreeRetainer","freshness","markedAllAsReadAt","getTime","active","elementAttrs","isHidden","Slidable","contentView","slidableUnderneathView","isUnread","markAsRead","mainView","highlight","slidableInstance","slidable","element","$","on","onbeforeupdate","needsRebuild","matches","lastVotedNumber","activeView","abbreviateNumber","PollList","params","getParams","isLoading","isInitialLoading","isLoadingNext","hasNext","loadNext","Placeholder","isSearchResults","getPages","pg","toPropertyKey","toPrimitive","String","_defineProperties","descriptor","globalEventEmitter","EventEmitter","PollListState","_PaginatedListState","page","extraPolls","eventEmitter","deletePoll","ReferenceError","_assertThisInitialized","Constructor","protoProps","requestParams","_this$params$sort","sort","sortMap","q","loadPage","preloadedPolls","initialLoading","relevance","newest","oldest","removePoll","emit","_step","_iterator","_createForOfIteratorHelperLoose","pages","index","splice","addPoll","unshift","getAllItems","number","PaginatedListState","PollsPage","refresh","extractText","viewItems","actionItems","canStartPoll","newPollAction","context","section","itemName","Separator","pollControls","moderationControls","canEdit","editAction","destructiveControls","canDelete","deleteAction","confirm","showDeletionAlert","back","location","reload","message","success","_extends","assign","source","UploadPollImageButton","_Button","uploadedImageUrl","fileName","_this$attrs$poll","_this$attrs$poll2","children","upload","appendTo","hide","trigger","FormData","append","files","resourceUrl","serialize","raw","failure","response","_this$attrs$onUpload","_this$attrs","fileUrl","onUpload","optionAnswers","optionImageUrls","pollImage","datepickerMinDate","_poll$tempOptions","Stream","formatDate","isAfter","fields","bidi","pollImageUploadSuccess","required","displayOptions","addOption","min","isBefore","Switch","placeholder","removeOption","alert","_this$dateToTimestamp","pollExists","dateToTimestamp","t0","console","date","def","dayjsDate","isValid","format","CreatePollModal","onFormSubmit","_onFormSubmit","toPoll","pollOption","addToComposer","composer","extend","_this$composer$body","_discussion$canStartP","discussion","canStartPolls","EditPollModal","_CreatePollModal","PostPoll","canSeeVoters","viewOption","_poll$myVotes2","_poll$myVotes3","_poll$myVotes4","showCheckmark","_this$attrs$poll$myVo","_this$attrs$poll$myVo2","post","sync","PollShowcaseItem","PollShowcase","showcaseItems","endedItems","PollsShowcasePage","includeParams","components","Poll","_Model","Model","isGlobal","computed","hiddenAt","apiEndpoint","PollVote","result","pollId","optionId","models","states","Extend","Post","hasMany","Forum","Discussion","createPoll","DiscussionList","badges","hasPoll","Badge","label","DiscussionComposer","ReplyComposer","CommentPost","revealContent","check","checks","_poll$data","_poll$options$map","_poll$options","_poll$myVotes$map","_option$data","_vote$option","JSON","stringify","DiscussionPage","binding","channels","main","changedOptions","unbind","relationships","_post$rawRelationship","rawRelationship","PostControls"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"forum.js","mappings":"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","sources":["webpack://@fof/polls/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/typeof.js","webpack://@fof/polls/./node_modules/@babel/runtime/regenerator/index.js","webpack://@fof/polls/webpack/bootstrap","webpack://@fof/polls/webpack/runtime/compat get default export","webpack://@fof/polls/webpack/runtime/define property getters","webpack://@fof/polls/webpack/runtime/hasOwnProperty shorthand","webpack://@fof/polls/webpack/runtime/make namespace object","webpack://@fof/polls/external root \"flarum.core.compat['forum/app']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/extend']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Badge']\"","webpack://@fof/polls/external root \"flarum.core.compat['forum/components/DiscussionList']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/models/Discussion']\"","webpack://@fof/polls/./src/forum/addDiscussionBadge.tsx","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/classList']\"","webpack://@fof/polls/external root \"flarum.core.compat['forum/components/DiscussionComposer']\"","webpack://@fof/polls/external root \"flarum.core.compat['forum/components/ReplyComposer']\"","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Modal']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/Component']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Button']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Switch']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/ItemList']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/Stream']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/extractText']\"","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://@fof/polls/./src/forum/components/form/FormError.tsx","webpack://@fof/polls/./src/forum/states/PollFormState.ts","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Page']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/LoadingIndicator']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/LinkButton']\"","webpack://@fof/polls/./src/forum/components/ComposePollHero.tsx","webpack://@fof/polls/external root \"flarum.core.compat['common/helpers/listItems']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/SelectDropdown']\"","webpack://@fof/polls/external root \"flarum.core.compat['forum/components/IndexPage']\"","webpack://@fof/polls/./src/forum/components/ComposePollPage.tsx","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/SubtreeRetainer']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Dropdown']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Link']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/helpers/highlight']\"","webpack://@fof/polls/external root \"flarum.core.compat['forum/utils/slidable']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/helpers/icon']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/abbreviateNumber']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Tooltip']\"","webpack://@fof/polls/./src/forum/components/Poll/PollOption.tsx","webpack://@fof/polls/./src/forum/components/Poll/PollOptions.tsx","webpack://@fof/polls/./src/forum/components/Poll/PollImage.tsx","webpack://@fof/polls/external root \"flarum.core.compat['forum/components/LogInModal']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/helpers/avatar']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/helpers/username']\"","webpack://@fof/polls/./src/forum/components/ListVotersModal.tsx","webpack://@fof/polls/./src/forum/states/PollState.ts","webpack://@fof/polls/./src/forum/components/Poll/PollSubmitButton.tsx","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/string']\"","webpack://@fof/polls/./src/forum/components/Poll/PollTitle.tsx","webpack://@fof/polls/./src/forum/components/Poll/PollSubtitle.tsx","webpack://@fof/polls/./src/forum/components/PollView.tsx","webpack://@fof/polls/./src/forum/components/AbstractPollPage.tsx","webpack://@fof/polls/./src/forum/components/PollViewPage.tsx","webpack://@fof/polls/./src/forum/components/Poll/PollListItem.tsx","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Placeholder']\"","webpack://@fof/polls/./src/forum/components/Poll/PollList.tsx","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://@fof/polls/external root \"flarum.core.compat['common/states/PaginatedListState']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/EventEmitter']\"","webpack://@fof/polls/./src/forum/states/PollListState.ts","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://@fof/polls/./src/forum/components/PollsPage.tsx","webpack://@fof/polls/external root \"flarum.core.compat['common/components/Separator']\"","webpack://@fof/polls/./src/forum/utils/PollControls.tsx","webpack://@fof/polls/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@fof/polls/./src/forum/components/UploadPollImageButton.tsx","webpack://@fof/polls/./src/forum/components/PollForm.tsx","webpack://@fof/polls/./src/forum/components/CreatePollModal.tsx","webpack://@fof/polls/./src/forum/addComposerItems.tsx","webpack://@fof/polls/external root \"flarum.core.compat['forum/components/CommentPost']\"","webpack://@fof/polls/external root \"flarum.core.compat['forum/components/DiscussionPage']\"","webpack://@fof/polls/./src/forum/addPollsToPost.tsx","webpack://@fof/polls/external root \"flarum.core.compat['forum/utils/PostControls']\"","webpack://@fof/polls/./src/forum/components/EditPollModal.tsx","webpack://@fof/polls/./src/forum/components/PostPoll.tsx","webpack://@fof/polls/./src/forum/components/PollShowcaseItem.tsx","webpack://@fof/polls/./src/forum/components/PollShowcase.tsx","webpack://@fof/polls/./src/forum/components/PollsShowcasePage.tsx","webpack://@fof/polls/./src/forum/components/index.ts","webpack://@fof/polls/external root \"flarum.core.compat['common/Model']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/utils/computed']\"","webpack://@fof/polls/./src/forum/models/Poll.ts","webpack://@fof/polls/./src/forum/models/PollOption.ts","webpack://@fof/polls/./src/forum/models/PollVote.ts","webpack://@fof/polls/./src/forum/models/index.ts","webpack://@fof/polls/./src/forum/states/index.ts","webpack://@fof/polls/./src/forum/utils/index.ts","webpack://@fof/polls/external root \"flarum.core.compat['common/extenders']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/models/Post']\"","webpack://@fof/polls/external root \"flarum.core.compat['common/models/Forum']\"","webpack://@fof/polls/./src/forum/extend.ts","webpack://@fof/polls/./src/forum/index.ts","webpack://@fof/polls/./src/forum/addPostControls.tsx","webpack://@fof/polls/./src/forum/addNavItem.ts"],"sourcesContent":["var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/app'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extend'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Badge'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionList'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Discussion'];","import app from 'flarum/forum/app';\n\nimport { extend } from 'flarum/common/extend';\nimport Badge from 'flarum/common/components/Badge';\nimport DiscussionList from 'flarum/forum/components/DiscussionList';\nimport Discussion from 'flarum/common/models/Discussion';\nimport { PaginatedListRequestParams } from 'flarum/common/states/PaginatedListState';\n\nexport default () => {\n // @ts-ignore\n extend(DiscussionList.prototype, 'requestParams', (params: PaginatedListRequestParams) => {\n (params.include as string[]).push('poll');\n });\n\n extend(Discussion.prototype, 'badges', function (badges) {\n // @ts-ignore\n if (this.hasPoll()) {\n badges.add(\n 'poll',\n Badge.component({\n type: 'poll',\n label: app.translator.trans('fof-polls.forum.tooltip.badge'),\n icon: 'fas fa-poll',\n }),\n 5\n );\n }\n });\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/classList'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionComposer'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/ReplyComposer'];","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Modal'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Component'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Button'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Switch'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/ItemList'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/Stream'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/extractText'];","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}","import { NestedStringArray } from '@askvortsov/rich-icu-message-formatter';\n\nexport default class FormError extends Error {\n constructor(props: NestedStringArray | string) {\n super(props + '');\n }\n}\n","import app from 'flarum/forum/app';\nimport Poll from '../models/Poll';\nimport PollOption from '../models/PollOption';\n\nexport default class PollFormState {\n poll: Poll;\n loading: boolean;\n deleting: boolean;\n expandedGroup: string;\n\n static createNewPoll() {\n const poll = app.store.createRecord('polls');\n\n poll.pushAttributes({\n question: '',\n endDate: '',\n publicPoll: false,\n allowMultipleVotes: false,\n hideVotes: false,\n allowChangeVote: false,\n maxVotes: 0,\n });\n\n poll.tempOptions = [app.store.createRecord('poll_options'), app.store.createRecord('poll_options')];\n\n return poll;\n }\n\n constructor(poll: Poll) {\n if (!poll) {\n poll = PollFormState.createNewPoll();\n }\n\n this.loading = false;\n this.deleting = false;\n this.poll = poll;\n this.expandedGroup = 'setup';\n }\n\n isExpanded(groupKey: string) {\n return this.expandedGroup === groupKey;\n }\n\n expand(groupKey: string) {\n this.expandedGroup = groupKey;\n m.redraw();\n }\n\n async save(data: any) {\n this.loading = true;\n m.redraw();\n\n try {\n this.poll = await this.poll.save(data);\n /**\n * Cleanup attributes:\n * For the saving process, we add the options directly to the attributes.\n * As we currently cannot add new PollOptions as relationships.\n */\n delete this.poll!.data!.attributes!.options;\n } finally {\n this.loading = false;\n m.redraw();\n }\n }\n\n async delete() {\n this.loading = true;\n m.redraw();\n\n try {\n await this.poll.delete();\n this.deleting = true;\n } finally {\n this.loading = false;\n m.redraw();\n }\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Page'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LoadingIndicator'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/LinkButton'];","import Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport LinkButton from 'flarum/common/components/LinkButton';\nimport Poll from '../models/Poll';\nimport ItemList from 'flarum/common/utils/ItemList';\n\nexport interface ComposePollHeroAttrs extends ComponentAttrs {\n poll: Poll;\n}\n\nexport default class ComposePollHero extends Component {\n poll!: Poll;\n\n oninit(vnode: Mithril.Vnode): void {\n super.oninit(vnode);\n\n this.poll = this.attrs.poll;\n }\n\n view(): Mithril.Children {\n return (\n
\n
\n
\n

{app.translator.trans(`fof-polls.forum.compose.${!!this.poll.id() ? 'edit' : 'add'}_title`)}

\n
{this.controlItems().toArray()}
\n
\n
\n
\n );\n }\n\n controlItems(): ItemList {\n const items = new ItemList();\n\n items.add(\n 'edit',\n \n {app.translator.trans('fof-polls.forum.compose.polls_manager')}\n \n );\n\n if (this.poll.exists) {\n items.add(\n 'view',\n \n {app.translator.trans('fof-polls.forum.compose.polls_preview')}\n \n );\n }\n\n return items;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/listItems'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/SelectDropdown'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/IndexPage'];","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Page from 'flarum/common/components/Page';\nimport Poll from '../models/Poll';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport PollForm from './PollForm';\nimport PollFormState from '../states/PollFormState';\nimport ComposePollHero from './ComposePollHero';\nimport Button from 'flarum/common/components/Button';\nimport listItems from 'flarum/common/helpers/listItems';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport SelectDropdown from 'flarum/common/components/SelectDropdown';\nimport IndexPage from 'flarum/forum/components/IndexPage';\n\nexport default class ComposePollPage extends Page {\n poll: Poll | null | undefined = null;\n\n loading: boolean = false;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n if (!app.forum.attribute('globalPollsEnabled')) {\n m.route.set('/');\n return;\n }\n\n // Get the `edit` parameter from the URL\n const editId = m.route.param('id');\n if (editId) {\n this.poll = app.store.getById('poll', editId);\n\n if (!this.poll) {\n this.loading = true;\n\n app.store.find('fof/polls', editId).then((item) => {\n this.poll = item;\n this.loading = false;\n app.setTitle(app.translator.trans(`fof-polls.forum.compose.${!!this.poll?.id() ? 'edit' : 'add'}_title`) as string);\n m.redraw();\n });\n }\n } else {\n this.poll = PollFormState.createNewPoll();\n }\n\n app.history.push('compose-poll', app.translator.trans(`fof-polls.forum.compose.${!!this.poll?.id() ? 'edit' : 'add'}_title`) as string);\n this.bodyClass = 'App--compose-poll';\n app.setTitle(app.translator.trans(`fof-polls.forum.compose.${!!this.poll?.id() ? 'edit' : 'add'}_title`) as string);\n }\n\n view(): Mithril.Children {\n // prevent users from accessing the page if they can't start global polls\n if (!app.forum.attribute('canStartGlobalPolls')) {\n m.route.set('/');\n return;\n }\n\n if (this.loading) {\n return ;\n }\n\n return (\n
\n \n
\n
\n \n
\n \n
\n
\n
\n
\n );\n }\n\n async onsubmit(data: Object, state: PollFormState) {\n const isNew = state.poll.id() === undefined;\n await state.save(data);\n\n const alertAttrs = isNew\n ? {\n type: 'success',\n controls: [\n \n m.route.set(\n app.route('fof.polls.compose', {\n id: state.poll.id(),\n })\n )\n }\n >\n {app.translator.trans('fof-polls.forum.compose.continue_editing')}\n ,\n ],\n }\n : {\n type: 'success',\n };\n\n // Show success alert\n const alertId = app.alerts.show(alertAttrs, app.translator.trans('fof-polls.forum.compose.success'));\n\n // Hide alert after 10 seconds\n setTimeout(() => app.alerts.dismiss(alertId), 10000);\n\n if (isNew) {\n m.route.set(app.route('fof.polls.list'));\n }\n }\n\n sidebarItems(): ItemList {\n const items = new ItemList();\n\n items.add(\n 'nav',\n \n {this.navItems().toArray()}\n \n );\n\n return items;\n }\n\n navItems() {\n return IndexPage.prototype.navItems();\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/SubtreeRetainer'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Dropdown'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Link'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/highlight'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/utils/slidable'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/icon'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/abbreviateNumber'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Tooltip'];","import app from 'flarum/forum/app';\nimport Mithril from 'mithril';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport PollOptionModel from '../../models/PollOption';\nimport PollState from '../../states/PollState';\nimport Tooltip, { TooltipAttrs } from 'flarum/common/components/Tooltip';\nimport icon from 'flarum/common/helpers/icon';\nimport classList from 'flarum/common/utils/classList';\nimport ItemList from 'flarum/common/utils/ItemList';\n\ninterface PollOptionAttrs extends ComponentAttrs {\n option: PollOptionModel;\n name: String;\n state: PollState;\n}\n\nexport default class PollOption extends Component {\n view(): Mithril.Children {\n const option = this.attrs.option;\n const state = this.attrs.state;\n const hasVoted = state.hasVoted();\n const totalVotes = state.overallVoteCount();\n const votes = option.voteCount();\n const voted = state.hasVotedFor(option);\n const percent = totalVotes > 0 ? Math.round((votes / totalVotes) * 100) : 0;\n\n // @ts-ignore\n const poll = state.poll;\n\n // isNaN(null) is false, so we have to check type directly now that API always returns the field\n const canSeeVoteCount = typeof votes === 'number';\n const isDisabled = state.loadingOptions || (hasVoted && !poll.canChangeVote());\n const width = canSeeVoteCount ? percent : (Number(voted) / (poll.myVotes()?.length || 1)) * 100;\n\n const bar = (\n
\n {state.showCheckMarks && (\n \n )}\n\n
{this.optionDisplayItems().toArray()}
\n\n {option.imageUrl() ? {option.answer()} : null}\n
\n );\n\n return (\n
\n {canSeeVoteCount ? (\n \n {bar}\n \n ) : (\n bar\n )}\n
\n );\n }\n\n /**\n * Attempting to use the `tooltipVisible` attr on the Tooltip component set to 'false' when no vote count\n * caused the tooltip to break on click. This is a workaround to hide the tooltip when no vote count is available,\n * called on 'onremove' of the Tooltip component. It doesn't always work as intended either, but it does the job.\n */\n hideOptionTooltip(vnode: Mithril.Vnode) {\n vnode.attrs.tooltipVisible = false;\n\n // @ts-ignore\n vnode.state.updateVisibility();\n }\n\n optionDisplayItems(): ItemList {\n const items = new ItemList();\n const option = this.attrs.option;\n const state = this.attrs.state;\n const voted = state.hasVotedFor(option);\n const votes = option.voteCount();\n const totalVotes = state.overallVoteCount();\n const canSeeVoteCount = typeof votes === 'number';\n const percent = totalVotes > 0 ? Math.round((votes / totalVotes) * 100) : 0;\n\n items.add('answer', {option.answer()});\n\n voted && !state.showCheckMarks && items.add('check', icon('fas fa-check-circle', { className: 'PollAnswer-check' }));\n\n canSeeVoteCount && items.add('percent', {percent}%);\n\n return items;\n }\n}\n","import type Mithril from 'mithril';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport PollOption from './PollOption';\nimport PollOptionModel from '../../models/PollOption';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport PollState from '../../states/PollState';\n\ninterface PollOptionsAttrs extends ComponentAttrs {\n options: PollOptionModel[];\n name: String;\n state: PollState;\n}\n\nexport default class PollOptions extends Component {\n view(): Mithril.Children {\n return
{this.pollOptions().toArray()}
;\n }\n\n pollOptions(): ItemList {\n const items = new ItemList();\n\n this.attrs.options.forEach((option: PollOptionModel): void => {\n items.add('option' + option.id(), this.createOptionView(option));\n });\n\n return items;\n }\n\n createOptionView(option: PollOptionModel): Mithril.Children {\n return ;\n }\n}\n","import type Mithril from 'mithril';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Poll from 'src/forum/models/Poll';\nimport ItemList from 'flarum/common/utils/ItemList';\n\ninterface PollImageAttrs extends ComponentAttrs {\n poll: Poll;\n}\n\nexport default class PollImage extends Component {\n imageUrl: string | null = null;\n imageAlt: string | null = null;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.imageUrl = this.attrs.poll.imageUrl();\n this.imageAlt = this.attrs.poll.imageAlt();\n }\n\n view(): Mithril.Children {\n if (!this.imageUrl) {\n return;\n }\n\n return
{this.imageItems().toArray()}
;\n }\n\n imageItems(): ItemList {\n const items = new ItemList();\n\n items.add('image', {this.imageAlt);\n\n return items;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/LogInModal'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/avatar'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/helpers/username'];","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Modal, { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport avatar from 'flarum/common/helpers/avatar';\nimport username from 'flarum/common/helpers/username';\nimport Link from 'flarum/common/components/Link';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport PollModel from '../models/Poll';\nimport PollVote from '../models/PollVote';\nimport User from 'flarum/common/models/User';\nimport PollOption from '../models/PollOption';\n\ninterface ListVotersModalAttrs extends IInternalModalAttrs {\n poll: PollModel;\n onsubmit: (data: object) => Promise;\n}\n\nexport default class ListVotersModal extends Modal {\n oninit(vnode: Mithril.Vnode): void {\n super.oninit(vnode);\n\n this.loading = true;\n\n app.store\n .find('fof/polls', this.attrs.poll.id()!, {\n include: 'votes,votes.user,votes.option',\n })\n .then(() => (this.loading = false))\n .finally(() => m.redraw());\n }\n\n className(): string {\n return 'Modal--medium VotesModal';\n }\n\n title(): Mithril.Children {\n return app.translator.trans('fof-polls.forum.votes_modal.title');\n }\n\n content(): Mithril.Children {\n const options = this.attrs.poll.options() as PollOption[];\n return
{this.loading ? : options.map(this.optionContent.bind(this))}
;\n }\n\n optionContent(opt: PollOption): Mithril.Children {\n const votes = (this.attrs.poll.votes() || []).filter((v) => opt.id() === v!.option()!.id()) as PollVote[];\n\n return (\n
\n

{opt.answer()! + ':'}

\n\n {votes.length ? (\n
{votes.map(this.voteContent.bind(this))}
\n ) : (\n

{app.translator.trans('fof-polls.forum.modal.no_voters')}

\n )}\n
\n );\n }\n\n voteContent(vote: PollVote): Mithril.Children {\n const user = vote.user() as User;\n const attrs = user && { href: app.route.user(user) };\n\n return (\n \n {avatar(user)} {username(user)}\n \n );\n }\n}\n","import app from 'flarum/forum/app';\nimport Poll from '../models/Poll';\nimport LogInModal from 'flarum/forum/components/LogInModal';\nimport PollOption from '../models/PollOption';\nimport PollVote from '../models/PollVote';\nimport ListVotersModal from '../components/ListVotersModal';\nimport { ApiPayloadSingle } from 'flarum/common/Store';\n\nexport default class PollState {\n protected poll: Poll;\n protected pendingSubmit: boolean = false;\n protected pendingOptions: Set | null = null;\n public loadingOptions: boolean = false;\n public useSubmitUI: boolean;\n public showCheckMarks: boolean;\n public canSeeVoteCount: boolean;\n\n constructor(poll: Poll) {\n this.poll = poll;\n this.useSubmitUI = !poll?.canChangeVote() && poll?.allowMultipleVotes();\n this.showCheckMarks = !app.session.user || (!poll.hasEnded() && poll.canVote() && (!this.hasVoted() || poll.canChangeVote()));\n this.canSeeVoteCount = typeof poll.voteCount() === 'number';\n this.init();\n }\n\n /**\n * used as en extendable entry point for init customizations\n */\n init(): void {}\n\n isShowResult(): boolean {\n return this.poll.hasEnded() || (this.canSeeVoteCount && this.hasVoted());\n }\n\n hasVoted(): boolean {\n return this.poll.myVotes().length > 0;\n }\n\n overallVoteCount(): number {\n return this.poll.voteCount();\n }\n\n hasVotedFor(option: PollOption): boolean {\n return this.pendingOptions ? this.pendingOptions.has(option.id()!) : this.poll.myVotes().some((vote: PollVote) => vote.option() === option);\n }\n\n getMaxVotes(): number {\n const poll = this.poll;\n let maxVotes = poll.allowMultipleVotes() ? poll.maxVotes() : 1;\n if (maxVotes === 0) maxVotes = poll.options().length;\n return maxVotes;\n }\n\n showButton(): boolean {\n return this.useSubmitUI && this.pendingSubmit;\n }\n\n changeVote(option: PollOption, evt: Event): void {\n const target = evt.target as HTMLInputElement;\n\n if (!app.session.user) {\n app.modal.show(LogInModal);\n target.checked = false;\n return;\n }\n\n const optionIds = this.pendingOptions || new Set(this.poll.myVotes().map((v: PollVote) => v.option()!.id()!));\n const isUnvoting = optionIds.delete(option.id()!);\n const allowsMultiple = this.poll.allowMultipleVotes();\n\n if (!allowsMultiple) {\n optionIds.clear();\n }\n\n if (!isUnvoting) {\n optionIds.add(option.id()!);\n }\n\n this.pendingOptions = optionIds.size ? optionIds : null;\n this.pendingSubmit = !!this.pendingOptions;\n\n if (this.useSubmitUI) {\n this.pendingOptions = optionIds.size ? optionIds : null;\n this.pendingSubmit = !!this.pendingOptions;\n m.redraw();\n return;\n }\n\n this.submit(optionIds, null, () => (target.checked = isUnvoting));\n }\n\n hasSelectedOptions(): boolean {\n return this.pendingSubmit;\n }\n\n onsubmit(): Promise {\n return this.submit(this.pendingOptions!, () => {\n this.pendingOptions = null;\n this.pendingSubmit = false;\n });\n }\n\n submit(optionIds: Set, cb: Function | null, onerror: Function | null = null) {\n this.loadingOptions = true;\n m.redraw();\n\n return app\n .request({\n method: 'PATCH',\n url: `${app.forum.attribute('apiUrl')}/fof/polls/${this.poll.id()}/votes`,\n body: {\n data: {\n optionIds: Array.from(optionIds),\n },\n },\n })\n .then((res: ApiPayloadSingle) => {\n app.store.pushPayload(res);\n cb?.();\n })\n .catch((err) => {\n onerror?.(err);\n })\n .finally(() => {\n this.loadingOptions = false;\n this.canSeeVoteCount = typeof this.poll.voteCount() === 'number';\n m.redraw();\n });\n }\n\n showVoters = () => {\n // Load all the votes only when opening the votes list\n app.modal.show(ListVotersModal, {\n poll: this.poll,\n });\n };\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport PollState from '../../states/PollState';\n\ninterface PollSubmitButtonAttrs extends ComponentAttrs {\n state: PollState;\n}\n\nexport default class PollSubmitButton extends Component {\n view(): Mithril.Children {\n const state = this.attrs.state;\n return (\n this.pollButtonSubmit(state, event)}\n disabled={!state.hasSelectedOptions()}\n >\n {app.translator.trans('fof-polls.forum.poll.submit_button')}\n \n );\n }\n\n /**\n * Event handler for submit button being clicked\n */\n\n pollButtonSubmit(state: PollState, event: Event): void {\n state.onsubmit();\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/string'];","import Component, { ComponentAttrs } from 'flarum/common/Component';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Poll from 'src/forum/models/Poll';\nimport Mithril from 'mithril';\n\nexport interface PollTitleAttrs extends ComponentAttrs {\n poll: Poll;\n}\n\nexport default class PollTitle extends Component {\n view() {\n return
{this.pollTitleItems().toArray()}
;\n }\n\n pollTitleItems(): ItemList {\n const items = new ItemList();\n\n items.add('title',

{this.attrs.poll.question()}

);\n\n return items;\n }\n}\n","import Component, { ComponentAttrs } from 'flarum/common/Component';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Poll from 'src/forum/models/Poll';\nimport Mithril from 'mithril';\n\nexport interface PollSubtitleAttrs extends ComponentAttrs {\n poll: Poll;\n}\n\nexport default class PollSubtitle extends Component {\n view() {\n if (!this.attrs.poll.subtitle()) {\n return;\n }\n\n return
{this.pollSubtitleItems().toArray()}
;\n }\n\n pollSubtitleItems(): ItemList {\n const items = new ItemList();\n\n items.add('subtitle',

{this.attrs.poll.subtitle()}

);\n\n return items;\n }\n}\n","import Mithril from 'mithril';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport app from 'flarum/forum/app';\nimport PollOptions from './Poll/PollOptions';\nimport PollImage from './Poll/PollImage';\nimport PollModel from '../models/Poll';\nimport PollState from '../states/PollState';\nimport Button from 'flarum/common/components/Button';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport PollControls from '../utils/PollControls';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport PollSubmitButton from './Poll/PollSubmitButton';\nimport { slug } from 'flarum/common/utils/string';\nimport classList from 'flarum/common/utils/classList';\nimport PollTitle from './Poll/PollTitle';\nimport PollSubtitle from './Poll/PollSubtitle';\n\ninterface PollAttrs extends ComponentAttrs {\n poll: PollModel;\n}\n\nexport default class PollView extends Component {\n state!: PollState;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n this.state = new PollState(this.attrs.poll);\n }\n\n oncreate(vnode: Mithril.Vnode) {\n super.oncreate(vnode);\n\n this.preventClose = this.preventClose.bind(this);\n window.addEventListener('beforeunload', this.preventClose);\n }\n\n onremove(vnode: Mithril.Vnode) {\n super.onremove(vnode);\n\n window.removeEventListener('beforeunload', this.preventClose);\n }\n\n view(): Mithril.Children {\n const poll = this.attrs.poll;\n const state = this.state;\n const controls = PollControls.controls(poll, this);\n\n (poll.publicPoll() || poll.canEdit()) &&\n controls.add(\n 'view',\n \n );\n\n return (\n
\n {this.controlsView(controls.toArray())}\n
{this.createMainView().toArray()}
\n
\n );\n }\n\n createMainView(): ItemList {\n const items = new ItemList();\n const poll = this.attrs.poll;\n\n items.add('header',
{this.createPollHeader().toArray()}
);\n items.add('content',
{this.createPollContent().toArray()}
);\n items.add('footer',
{this.createPollFooter().toArray()}
);\n\n return items;\n }\n\n createPollHeader(): ItemList {\n const items = new ItemList();\n const poll = this.attrs.poll;\n\n items.add('title', );\n if (poll.subtitle()) items.add('subtitle', );\n\n return items;\n }\n\n createPollContent(): ItemList {\n const items = new ItemList();\n const poll = this.attrs.poll;\n\n if (poll.imageUrl()) {\n items.add('image', );\n }\n\n items.add('form',
{this.createFormItems().toArray()}
);\n\n return items;\n }\n\n createPollFooter(): ItemList {\n const items = new ItemList();\n const state = this.state;\n\n const infoItems = this.infoItems(state.getMaxVotes());\n\n items.add(\n 'sticky',\n
\n {!infoItems.isEmpty() &&
{infoItems.toArray()}
}\n {state.showButton() && }\n
\n );\n\n return items;\n }\n\n createFormItems(): ItemList {\n const items = new ItemList();\n const poll = this.attrs.poll;\n const state = this.state;\n const questionSlug = slug(poll.question());\n\n items.add(\n 'elements',\n
\n {poll.question()}\n \n
\n );\n\n return items;\n }\n\n controlsView(controls: Mithril.ChildArray): Mithril.Children {\n return (\n !!controls.length && (\n \n {controls}\n \n )\n );\n }\n\n infoItems(maxVotes: number) {\n const items = new ItemList();\n const poll = this.attrs.poll;\n\n if (app.session.user && !poll.canVote() && !poll.hasEnded()) {\n items.add(\n 'no-permission',\n \n \n {app.translator.trans('fof-polls.forum.no_permission')}\n \n );\n }\n\n if (poll.endDate()) {\n items.add(\n 'end-date',\n \n \n {poll.hasEnded()\n ? app.translator.trans('fof-polls.forum.poll_ended')\n : app.translator.trans('fof-polls.forum.days_remaining', { time: dayjs(poll.endDate()).fromNow() })}\n \n );\n }\n\n if (poll.canVote()) {\n items.add(\n 'max-votes',\n \n \n {app.translator.trans('fof-polls.forum.max_votes_allowed', { max: maxVotes })}\n \n );\n\n if (!poll.canChangeVote()) {\n items.add(\n 'cannot-change-vote',\n \n \n {app.translator.trans('fof-polls.forum.poll.cannot_change_vote')}\n \n );\n }\n }\n\n return items;\n }\n\n /**\n * Alert before navigating away using browser's 'beforeunload' event\n */\n preventClose = (e: Event): boolean | void => {\n if (this.state.hasSelectedOptions()) {\n e.preventDefault();\n return true;\n }\n };\n}\n","import Page, { IPageAttrs } from 'flarum/common/components/Page';\nimport PollListState from '../states/PollListState';\nimport Poll from '../models/Poll';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport type Mithril from 'mithril';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport listItems from 'flarum/common/helpers/listItems';\nimport app from 'flarum/forum/app';\nimport SelectDropdown from 'flarum/common/components/SelectDropdown';\n\nexport abstract class AbstractPollPage extends Page {\n loading: boolean = false;\n poll: Poll | null | undefined = null;\n polls: Poll[] = [];\n\n view(): Mithril.Children {\n return
{this.pageContent().toArray()}
;\n }\n\n pageContent(): ItemList {\n const items = new ItemList();\n\n items.add('hero', this.hero(), 100);\n items.add('main',
{this.mainContent().toArray()}
, 10);\n\n return items;\n }\n\n mainContent(): ItemList {\n const items = new ItemList();\n\n items.add('sidebar', this.sidebar(), 100);\n items.add('content', this.content(), 10);\n\n return items;\n }\n\n content(): Mithril.Children {\n return
{this.contentItems().toArray()}
;\n }\n\n contentItems(): ItemList {\n const items = new ItemList();\n\n if (this.loading) {\n items.add('loading', );\n }\n\n return items;\n }\n\n hero(): Mithril.Children {\n return IndexPage.prototype.hero();\n }\n\n sidebar(): Mithril.Children {\n return (\n \n );\n }\n\n sidebarItems(): ItemList {\n const items = IndexPage.prototype.sidebarItems();\n\n items.setContent(\n 'nav',\n \n {this.navItems().toArray()}\n \n );\n\n return items;\n }\n\n navItems(): ItemList {\n const items = IndexPage.prototype.navItems();\n\n if (app.initializers.has('flarum-tags')) {\n // remove the tags from the nav items\n items.remove('separator');\n items.remove('moreTags');\n\n // each tag is added using the key \"tag{id}\". We need to remove all of them\n for (const key in items.toObject()) {\n if (key.startsWith('tag') && key !== 'tags') {\n items.remove(key);\n }\n }\n }\n\n return items;\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport PollModel from '../models/Poll';\nimport PollView from './PollView';\nimport { AbstractPollPage } from './AbstractPollPage';\nimport ItemList from 'flarum/common/utils/ItemList';\n\nexport default class PollViewPage extends AbstractPollPage {\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n if (!app.forum.attribute('globalPollsEnabled')) {\n m.route.set('/');\n return;\n }\n\n const editId = m.route.param('id');\n this.poll = app.store.getById('poll', editId);\n\n if (!this.poll) {\n this.loading = true;\n\n app.store.find('fof/polls', editId).then((item) => {\n this.poll = item;\n this.loading = false;\n app.setTitle(this.poll.question());\n m.redraw();\n });\n }\n }\n\n contentItems(): ItemList {\n const items = super.contentItems();\n\n if (!this.loading) {\n items.add('poll', );\n }\n\n return items;\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport type { PollListParams } from '../../states/PollListState';\nimport SubtreeRetainer from 'flarum/common/utils/SubtreeRetainer';\nimport classList from 'flarum/common/utils/classList';\nimport Dropdown from 'flarum/common/components/Dropdown';\nimport Link from 'flarum/common/components/Link';\nimport highlight from 'flarum/common/helpers/highlight';\nimport slidable from 'flarum/forum/utils/slidable';\nimport icon from 'flarum/common/helpers/icon';\nimport abbreviateNumber from 'flarum/common/utils/abbreviateNumber';\nimport Poll from '../../models/Poll';\nimport PollControls from '../../utils/PollControls';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport listItems from 'flarum/common/helpers/listItems';\nimport PollViewPage from '../PollViewPage';\n\nexport interface IPollListItemAttrs extends ComponentAttrs {\n poll: Poll;\n params: PollListParams;\n}\n\n/**\n * The `PollListItem` component shows a single poll in the\n * poll list.\n */\nexport default class PollListItem extends Component {\n /**\n * Ensures that the poll will not be redrawn\n * unless new data comes in.\n */\n subtree!: SubtreeRetainer;\n poll!: Poll;\n\n highlightRegExp?: RegExp;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.poll = this.attrs.poll;\n\n this.subtree = new SubtreeRetainer(\n () => this.poll.freshness,\n () => {\n const time = app.session.user && app.session.user.markedAllAsReadAt();\n return time && time.getTime();\n },\n () => this.active()\n );\n }\n\n elementAttrs() {\n return {\n className: classList('PollListItem', {\n active: this.active(),\n 'PollListItem--hidden': this.poll.isHidden(),\n Slidable: 'ontouchstart' in window,\n }),\n };\n }\n\n view() {\n const controls = PollControls.controls(this.poll, this).toArray();\n const attrs = this.elementAttrs();\n\n return (\n
\n {this.controlsView(controls)}\n {this.contentView()}\n {this.slidableUnderneathView()}\n
\n );\n }\n\n controlsView(controls: Mithril.ChildArray): Mithril.Children {\n return (\n !!controls.length && (\n \n {controls}\n \n )\n );\n }\n\n slidableUnderneathView(): Mithril.Children {\n const isUnread = this.poll.isUnread();\n\n return (\n \n {icon('fas fa-check')}\n \n );\n }\n\n contentView(): Mithril.Children {\n // const isUnread = this.poll.isUnread();\n // const isRead = this.poll.isRead();\n\n return (\n //
\n
{this.mainView()}
\n );\n }\n\n mainView(): Mithril.Children {\n return (\n \n

{highlight(this.poll.question(), this.highlightRegExp)}

\n {this.poll.subtitle() &&

{this.poll.subtitle()}

}\n
    {listItems(this.infoItems().toArray())}
\n \n );\n }\n\n // infoView() {\n // return (\n //
\n // {this.poll.subtitle() &&

{this.poll.subtitle()}

}\n //
    {listItems(this.infoItems().toArray())}
\n //
\n // );\n // }\n\n oncreate(vnode: Mithril.VnodeDOM) {\n super.oncreate(vnode);\n\n // If we're on a touch device, set up the discussion row to be slidable.\n // This allows the user to drag the row to either side of the screen to\n // reveal controls.\n if ('ontouchstart' in window) {\n const slidableInstance = slidable(this.element);\n\n this.$('.PollListItem-controls').on('hidden.bs.dropdown', () => slidableInstance.reset());\n }\n }\n\n onbeforeupdate(vnode: Mithril.VnodeDOM) {\n super.onbeforeupdate(vnode);\n\n return this.subtree.needsRebuild();\n }\n\n /**\n * Determine whether or not the discussion is currently being viewed.\n */\n active() {\n return app.current.matches(PollViewPage, { poll: this.poll });\n }\n\n /**\n * Mark the poll as read.\n */\n markAsRead() {\n if (this.poll.isUnread()) {\n this.poll.save({ lastVotedNumber: this.poll.voteCount() });\n m.redraw();\n }\n }\n\n infoItems(): ItemList {\n const items = new ItemList();\n const active = !this.poll.hasEnded();\n const activeView = this.poll.endDate()\n ? [\n icon('fas fa-clock'),\n ' ',\n active\n ? app.translator.trans('fof-polls.forum.days_remaining', { time: dayjs(this.poll.endDate()).fromNow() })\n : app.translator.trans('fof-polls.forum.poll_ended'),\n ]\n : [icon('fas fa-infinity'), ' ', app.translator.trans('fof-polls.forum.poll_never_ends')];\n\n items.add('active', {activeView});\n\n const voteCount = this.poll.voteCount();\n if (voteCount !== undefined) {\n items.add(\n 'voteCount',\n \n {icon('fas fa-poll fa-fw')}\n {[\n ' ',\n app.translator.trans('fof-polls.forum.polls_count', {\n count: abbreviateNumber(voteCount),\n }),\n ]}\n ,\n 70\n );\n }\n\n return items;\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Placeholder'];","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport PollListItem from './PollListItem';\nimport Button from 'flarum/common/components/Button';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport Placeholder from 'flarum/common/components/Placeholder';\nimport classList from 'flarum/common/utils/classList';\nimport PollListState from '../../states/PollListState';\n\nexport interface PollListAttrs extends ComponentAttrs {\n state: PollListState;\n}\n\n/**\n * The `PollList` component displays a list of polls.\n */\nexport default class PollList extends Component {\n view() {\n const state = this.attrs.state;\n const params = state.getParams();\n const isLoading = state.isInitialLoading() || state.isLoadingNext();\n\n let loading;\n\n if (isLoading) {\n loading = ;\n } else if (state.hasNext()) {\n loading = (\n \n );\n }\n\n if (state.isEmpty()) {\n const text = app.translator.trans('fof-polls.forum.polls_list.empty_text');\n return (\n
\n \n
\n );\n }\n\n return (\n
\n
    \n {state.getPages().map((pg) => {\n return pg.items.map((poll) => (\n
  • \n \n
  • \n ));\n })}\n
\n
{loading}
\n
\n );\n }\n}\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/states/PaginatedListState'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/EventEmitter'];","import app from 'flarum/forum/app';\nimport PaginatedListState, { Page, PaginatedListParams, PaginatedListRequestParams } from 'flarum/common/states/PaginatedListState';\nimport Poll from '../models/Poll';\nimport { ApiResponsePlural } from 'flarum/common/Store';\nimport EventEmitter from 'flarum/common/utils/EventEmitter';\n\nexport interface PollListParams extends PaginatedListParams {\n sort?: string;\n}\n\nconst globalEventEmitter = new EventEmitter();\n\nexport default class PollListState

extends PaginatedListState {\n protected extraPolls: Poll[] = [];\n protected eventEmitter: EventEmitter;\n\n constructor(params: P, page: number = 1) {\n super(params, page, 20);\n\n this.eventEmitter = globalEventEmitter.on('poll.deleted', this.deletePoll.bind(this));\n }\n\n get type(): string {\n return 'fof/polls';\n }\n\n requestParams(): PaginatedListRequestParams {\n const params = {\n include: this.params.include || ['options', 'votes'],\n filter: this.params.filter || {},\n sort: this.sortMap()[this.params.sort ?? ''],\n };\n\n if (this.params.q) {\n params.filter.q = this.params.q;\n }\n\n return params;\n }\n\n protected loadPage(page: number = 1): Promise> {\n const preloadedPolls = app.preloadedApiDocument();\n\n if (preloadedPolls) {\n this.initialLoading = false;\n\n return Promise.resolve(preloadedPolls);\n }\n\n return super.loadPage(page);\n }\n\n clear(): void {\n super.clear();\n\n this.extraPolls = [];\n }\n\n /**\n * Get a map of sort keys (which appear in the URL, and are used for\n * translation) to the API sort value that they represent.\n */\n sortMap() {\n const map: any = {};\n\n if (this.params.q) {\n map.relevance = '';\n }\n map.newest = '-createdAt';\n map.oldest = 'createdAt';\n\n return map;\n }\n\n /**\n * In the last request, has the user searched for a poll?\n */\n isSearchResults(): boolean {\n return !!this.params.q;\n }\n\n removePoll(poll: Poll): void {\n this.eventEmitter.emit('poll.deleted', poll);\n }\n\n deletePoll(poll: Poll): void {\n for (const page of this.pages) {\n const index = page.items.indexOf(poll);\n\n if (index !== -1) {\n page.items.splice(index, 1);\n break;\n }\n }\n\n const index = this.extraPolls.indexOf(poll);\n\n if (index !== -1) {\n this.extraPolls.splice(index);\n }\n\n m.redraw();\n }\n\n /**\n * Add a poll to the top of the list.\n */\n addPoll(poll: Poll): void {\n this.removePoll(poll);\n this.extraPolls.unshift(poll);\n\n m.redraw();\n }\n\n protected getAllItems(): Poll[] {\n return this.extraPolls.concat(super.getAllItems());\n }\n\n public getPages(): Page[] {\n const pages = super.getPages();\n\n if (this.extraPolls.length) {\n return [\n {\n number: -1,\n items: this.extraPolls,\n },\n ...pages,\n ];\n }\n\n return pages;\n }\n}\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport listItems from 'flarum/common/helpers/listItems';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Page, { IPageAttrs } from 'flarum/common/components/Page';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport PollList from './Poll/PollList';\nimport LogInModal from 'flarum/forum/components/LogInModal';\nimport extractText from 'flarum/common/utils/extractText';\nimport PollListState from '../states/PollListState';\nimport Button from 'flarum/common/components/Button';\nimport SelectDropdown from 'flarum/common/components/SelectDropdown';\nimport LoadingIndicator from 'flarum/common/components/LoadingIndicator';\nimport PollModel from '../models/Poll';\nimport PollView from './PollView';\nimport { AbstractPollPage } from './AbstractPollPage';\n\nexport default class PollsPage extends AbstractPollPage {\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n if (!app.forum.attribute('globalPollsEnabled')) {\n m.route.set('/');\n return;\n }\n\n this.state = new PollListState({\n sort: m.route.param('sort'),\n filter: m.route.param('filter'),\n });\n\n this.state.refresh();\n\n app.setTitle(extractText(app.translator.trans('fof-polls.forum.page.nav')));\n }\n\n view(): Mithril.Children {\n if (this.loading) {\n return ;\n }\n\n if (this.poll) {\n return (\n

\n
\n \n
\n
\n );\n }\n\n return (\n
\n {super.hero()}\n
\n
\n \n
\n
\n
    {listItems(this.viewItems().toArray())}
\n
    {listItems(this.actionItems().toArray())}
\n
\n \n
\n
\n
\n
\n );\n }\n\n sidebarItems(): ItemList {\n const items = new ItemList();\n const canStartPoll = app.forum.attribute('canStartGlobalPolls');\n\n items.add(\n 'newGlobalPoll',\n {\n this.newPollAction();\n }}\n disabled={!canStartPoll}\n >\n {app.translator.trans(`fof-polls.forum.poll.${canStartPoll ? 'start_poll_button' : 'cannot_start_poll_button'}`)}\n \n );\n\n items.add(\n 'nav',\n \n {this.navItems().toArray()}\n \n );\n\n return items;\n }\n\n actionItems(): ItemList {\n const items = new ItemList();\n\n items.add(\n 'refresh',\n Button.component({\n title: app.translator.trans('fof-polls.forum.page.refresh_tooltip'),\n icon: 'fas fa-sync',\n className: 'Button Button--icon',\n onclick: () => {\n this.state.refresh();\n },\n })\n );\n\n return items;\n }\n\n viewItems() {\n return IndexPage.prototype.viewItems();\n }\n\n navItems() {\n return IndexPage.prototype.navItems();\n }\n\n /**\n * Change to create new poll page\n */\n newPollAction(): void {\n if (!app.session.user) {\n app.modal.show(LogInModal);\n return;\n }\n\n m.route.set(app.route('fof.polls.compose'));\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/components/Separator'];","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Poll from '../models/Poll';\nimport Component from 'flarum/common/Component';\nimport ComposePollPage from '../components/ComposePollPage';\nimport PollsPage from '../components/PollsPage';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Separator from 'flarum/common/components/Separator';\nimport Button from 'flarum/common/components/Button';\n\n/**\n * The `UserControls` utility constructs a list of buttons for a user which\n * perform actions on it.\n */\nexport default {\n /**\n * Get a list of controls for a user.\n */\n controls(poll: Poll, context: Component): ItemList {\n const items = new ItemList();\n\n ['poll', 'moderation', 'destructive'].forEach((section) => {\n const controls = (this[section + 'Controls'](poll, context) as ItemList).toArray();\n if (controls.length) {\n controls.forEach((item) => items.add(item.itemName, item));\n items.add(section + 'Separator', );\n }\n });\n\n return items;\n },\n\n /**\n * Get controls for direct modifcation actions on polls (e.g. vote, view voters).\n */\n pollControls(poll: Poll, context: Component): ItemList {\n const items = new ItemList();\n\n return items;\n },\n\n /**\n * Get controls for a user pertaining to moderation (e.g. suspend, edit).\n */\n moderationControls(poll: Poll, context: Component): ItemList {\n const items = new ItemList();\n\n if (poll.canEdit()) {\n items.add(\n 'edit',\n \n );\n }\n\n return items;\n },\n\n /**\n * Get controls for a user which are destructive (e.g. delete).\n * @protected\n */\n destructiveControls(poll: Poll, context: Component): ItemList {\n const items = new ItemList();\n\n if (poll.canDelete()) {\n items.add(\n 'delete',\n \n );\n }\n\n return items;\n },\n\n /**\n * Delete the poll.\n */\n async deleteAction(poll: Poll): Promise {\n if (!confirm(app.translator.trans(`fof-polls.forum.poll_controls.delete_confirmation`) as string)) {\n return;\n }\n\n return poll\n .delete()\n .then(() => {\n this.showDeletionAlert(poll, 'success');\n if (app.current.matches(ComposePollPage, { id: poll.id() }) || app.current.matches(PollsPage, { id: poll.id() })) {\n app.history.back();\n } else {\n window.location.reload();\n }\n })\n .catch(() => this.showDeletionAlert(poll, 'error'));\n },\n\n /**\n * Show deletion alert of poll\n */\n showDeletionAlert(poll: Poll, type: string): void {\n const message = {\n success: `fof-polls.forum.poll_controls.delete_success_message`,\n error: `fof-polls.forum.poll_controls.delete_error_message`,\n }[type]!;\n\n app.alerts.show({ type }, app.translator.trans(message, { poll: poll }));\n },\n\n /**\n * Edit the poll.\n */\n editAction(poll: Poll): void {\n m.route.set(app.route('fof.polls.compose', { id: poll.id() }));\n },\n};\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import app from 'flarum/forum/app';\nimport Button, { IButtonAttrs } from 'flarum/common/components/Button';\nimport classList from 'flarum/common/utils/classList';\nimport type Mithril from 'mithril';\nimport Poll from '../models/Poll';\n\nexport interface UploadPollImageButtonAttrs extends IButtonAttrs {\n className?: string;\n loading?: boolean;\n name: string;\n onclick: () => void;\n poll?: Poll | null;\n onUpload: (fileName: string) => void;\n}\n\nexport interface PollUploadObject {\n fileUrl: string;\n fileName: string;\n}\n\nexport default class UploadPollImageButton extends Button {\n loading: boolean = false;\n uploadedImageUrl: string | undefined = undefined;\n fileName: string | undefined = undefined;\n\n view(vnode: Mithril.Vnode) {\n this.attrs.loading = this.loading;\n this.attrs.className = classList(this.attrs.className, 'Button');\n\n if (this.attrs.poll?.imageUrl() || this.uploadedImageUrl) {\n const imageUrl = this.uploadedImageUrl || this.attrs.poll?.imageUrl();\n this.attrs.onclick = this.remove.bind(this);\n\n return (\n
\n

\n \"\"\n

\n

{super.view({ ...vnode, children: app.translator.trans('fof-polls.forum.upload_image.remove_button') })}

\n
\n );\n } else {\n this.attrs.onclick = this.upload.bind(this);\n }\n\n return super.view({ ...vnode, children: app.translator.trans('fof-polls.forum.upload_image.upload_button') });\n }\n\n /**\n * Prompt the user to upload an image.\n */\n upload() {\n if (this.loading) return;\n\n const $input = $('');\n\n $input\n .appendTo('body')\n .hide()\n .trigger('click')\n .on('change', (e) => {\n const body = new FormData();\n body.append(this.attrs.name, $(e.target)[0].files[0]);\n\n this.loading = true;\n m.redraw();\n\n app\n .request({\n method: 'POST',\n url: this.resourceUrl(),\n serialize: (raw) => raw,\n body,\n })\n .then(this.success.bind(this), this.failure.bind(this));\n });\n }\n\n /**\n * Remove the image.\n */\n remove() {\n this.loading = true;\n m.redraw();\n\n app\n .request({\n method: 'DELETE',\n url: this.resourceUrl(),\n })\n .then(this.success.bind(this), this.failure.bind(this));\n }\n\n resourceUrl() {\n let url = app.forum.attribute('apiUrl') + '/fof/polls/' + this.attrs.name;\n const poll = this.attrs.poll;\n\n if (poll?.exists) url += '/' + poll?.id();\n\n return url;\n }\n\n /**\n * After a successful upload/removal, redraw the page.\n *\n * @param {PollUploadObject} response\n * @protected\n */\n success(response: PollUploadObject) {\n this.loading = false;\n this.uploadedImageUrl = response?.fileUrl;\n this.fileName = response?.fileName;\n\n this.attrs.onUpload?.(response?.fileName);\n m.redraw();\n }\n\n /**\n * If upload/removal fails, stop loading.\n *\n * @param {object} response\n * @protected\n */\n failure(response: object) {\n this.loading = false;\n m.redraw();\n }\n}\n","import Component, { ComponentAttrs } from 'flarum/common/Component';\nimport type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Button from 'flarum/common/components/Button';\nimport Switch from 'flarum/common/components/Switch';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Stream from 'flarum/common/utils/Stream';\nimport extractText from 'flarum/common/utils/extractText';\nimport FormError from './form/FormError';\nimport PollFormState from '../states/PollFormState';\nimport PollControls from '../utils/PollControls';\nimport PollModel from '../models/Poll';\nimport PollOption from '../models/PollOption';\nimport UploadPollImageButton from './UploadPollImageButton';\nimport Poll from '../models/Poll';\nimport Tooltip from 'flarum/common/components/Tooltip';\n\ninterface PollFormAttrs extends ComponentAttrs {\n poll: PollModel;\n onsubmit: (data: object, state: PollFormState) => Promise;\n}\n\nexport default class PollForm extends Component {\n protected options: PollOption[] = [];\n protected optionAnswers: Stream[] = [];\n protected optionImageUrls: Stream[] = [];\n protected question: Stream;\n protected subtitle: Stream;\n protected pollImage: Stream;\n protected imageAlt: Stream;\n protected endDate: Stream;\n protected publicPoll: Stream;\n protected allowMultipleVotes: Stream;\n protected hideVotes: Stream;\n protected allowChangeVote: Stream;\n protected maxVotes: Stream;\n protected datepickerMinDate: string = '';\n\n oninit(vnode: Mithril.Vnode): void {\n super.oninit(vnode);\n this.state = new PollFormState(this.attrs.poll);\n\n // state handles poll initialization\n const poll = this.state.poll;\n\n this.options = (poll.tempOptions ?? poll.options()) as PollOption[];\n this.optionAnswers = this.options.map((o) => Stream(o.answer()));\n this.optionImageUrls = this.options.map((o) => Stream(o.imageUrl()));\n\n this.question = Stream(poll.question());\n this.subtitle = Stream(poll.subtitle());\n this.pollImage = Stream(poll.imageUrl());\n this.imageAlt = Stream(poll.imageAlt());\n this.endDate = Stream(this.formatDate(poll.endDate()));\n this.publicPoll = Stream(poll.publicPoll());\n this.allowMultipleVotes = Stream(poll.allowMultipleVotes());\n this.hideVotes = Stream(poll.hideVotes());\n this.allowChangeVote = Stream(poll.allowChangeVote());\n this.maxVotes = Stream(poll.maxVotes() || 0);\n\n // Set minimum date for datepicker to current date\n this.datepickerMinDate = this.formatDate() as string;\n\n // Replace minimum of 'today' for poll end date only if the poll is not already closed\n if (this.endDate() && dayjs(poll.endDate).isAfter(dayjs())) {\n // We know that endDate is set, so we can safely cast the result to string\n this.datepickerMinDate = this.formatDate(poll.endDate()) as string;\n }\n }\n\n view(): Mithril.Children {\n return (\n
\n
{this.fields().toArray()}
\n
\n );\n }\n\n fields(): ItemList {\n const items = new ItemList();\n\n items.add(\n 'question',\n
\n \n\n \n
,\n 100\n );\n\n items.add(\n 'subtitle',\n
\n \n\n \n
,\n 95\n );\n\n items.add(\n 'poll_image',\n
\n \n

{app.translator.trans('fof-polls.forum.modal.poll_image.help')}

\n \n \n
,\n 90\n );\n\n if (this.pollImage()) {\n items.add(\n 'poll_image_alt',\n
\n \n\n \n\n

{app.translator.trans('fof-polls.forum.modal.poll_image.alt_help_text')}

\n
,\n 90\n );\n }\n\n items.add(\n 'answers',\n
\n \n\n {this.displayOptions()}\n\n \n
,\n 80\n );\n\n items.add(\n 'date',\n
\n \n\n
\n \n {Button.component({\n className: 'Button PollModal--button Button--icon',\n icon: 'fas fa-times',\n onclick: this.endDate.bind(this, null),\n })}\n
\n\n {this.endDate() && (\n

\n \n  \n {dayjs(this.endDate()).isBefore(dayjs())\n ? app.translator.trans('fof-polls.forum.poll_ended')\n : app.translator.trans('fof-polls.forum.days_remaining', { time: dayjs(this.endDate()).fromNow() })}\n

\n )}\n
,\n 40\n );\n\n items.add(\n 'public',\n
\n {Switch.component(\n {\n state: this.publicPoll() || false,\n onchange: this.publicPoll,\n },\n app.translator.trans('fof-polls.forum.modal.public_poll_label')\n )}\n
,\n 20\n );\n\n items.add(\n 'hide-votes',\n
\n \n {app.translator.trans('fof-polls.forum.modal.hide_votes_label')}\n \n
,\n 20\n );\n\n items.add(\n 'allow-change-vote',\n
\n \n {app.translator.trans('fof-polls.forum.modal.allow_change_vote_label')}\n \n
,\n 20\n );\n\n items.add(\n 'allow-multiple-votes',\n
\n {Switch.component(\n {\n state: this.allowMultipleVotes() || false,\n onchange: this.allowMultipleVotes,\n },\n app.translator.trans('fof-polls.forum.modal.allow_multiple_votes_label')\n )}\n
,\n 15\n );\n\n if (this.allowMultipleVotes()) {\n items.add(\n 'max-votes',\n
\n \n\n \n\n

{app.translator.trans('fof-polls.forum.modal.max_votes_help')}

\n
,\n 15\n );\n }\n\n items.add(\n 'submit',\n
\n \n {this.state.poll.exists && (\n \n {app.translator.trans('fof-polls.forum.modal.delete')}\n \n )}\n
,\n -10\n );\n\n return items;\n }\n\n displayOptions() {\n return Object.keys(this.options).map((option, i) => (\n
\n
\n \n {app.forum.attribute('allowPollOptionImage') ? (\n \n ) : null}\n
\n {i >= 2\n ? Button.component({\n type: 'button',\n className: 'Button PollModal--button Button--icon',\n icon: 'fas fa-minus',\n onclick: i >= 2 ? this.removeOption.bind(this, i) : '',\n })\n : ''}\n
\n ));\n }\n\n addOption() {\n const max = Math.max(app.forum.attribute('pollMaxOptions'), 2);\n\n if (this.options.length < max) {\n this.options.push(app.store.createRecord('poll_options'));\n this.optionAnswers.push(Stream(''));\n this.optionImageUrls.push(Stream(''));\n } else {\n alert(extractText(app.translator.trans('fof-polls.forum.modal.max', { max })));\n }\n }\n\n removeOption(i: number): void {\n this.options.splice(i, 1);\n this.optionAnswers.splice(i, 1);\n this.optionImageUrls.splice(i, 1);\n }\n\n data(): object {\n if (this.question() === '') {\n throw new FormError(app.translator.trans('fof-polls.forum.modal.include_question'));\n }\n\n if (this.options.length < 2) {\n throw new FormError(app.translator.trans('fof-polls.forum.modal.min'));\n }\n\n const pollExists = this.state.poll.exists;\n const options = this.options.map((option, i) => {\n option.pushAttributes({\n answer: this.optionAnswers[i](),\n imageUrl: this.optionImageUrls[i](),\n });\n\n return pollExists ? option.data : option.data.attributes;\n });\n\n return {\n question: this.question(),\n subtitle: this.subtitle(),\n pollImage: this.pollImage(),\n imageAlt: this.imageAlt(),\n endDate: this.dateToTimestamp(this.endDate()) ?? false,\n publicPoll: this.publicPoll(),\n hideVotes: this.hideVotes(),\n allowChangeVote: this.allowChangeVote(),\n allowMultipleVotes: this.allowMultipleVotes(),\n maxVotes: this.maxVotes(),\n options,\n };\n }\n\n async onsubmit(event: Event) {\n event.preventDefault();\n\n try {\n await this.attrs.onsubmit(this.data(), this.state);\n } catch (error) {\n if (error instanceof FormError) {\n app.alerts.show({ type: 'error' }, error.message);\n } else {\n console.error(error);\n // Show error alert\n app.alerts.show({ type: 'error' }, app.translator.trans('fof-polls.forum.modal.error'));\n }\n }\n }\n\n async delete(): Promise {\n this.state.loading = true;\n try {\n await PollControls.deleteAction(this.state.poll);\n this.state.deleting = true;\n } finally {\n this.state.loading = false;\n m.redraw();\n }\n }\n\n formatDate(date: Date | string | false | undefined | null = undefined, def: Date | false = false): string | false {\n const dayjsDate = dayjs(date);\n\n if (date === false || !dayjsDate.isValid()) return def !== false ? this.formatDate(def) : false;\n\n return dayjsDate.format('YYYY-MM-DDTHH:mm');\n }\n\n dateToTimestamp(date: Date | false): string | null {\n const dayjsDate = dayjs(date);\n\n if (!date || !dayjsDate.isValid()) return null;\n\n return dayjsDate.format();\n }\n\n pollImageUploadSuccess(fileName: string | null | undefined): void {\n this.pollImage(fileName);\n }\n}\n","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport Modal, { IInternalModalAttrs } from 'flarum/common/components/Modal';\nimport PollForm from './PollForm';\nimport PollModel from '../models/Poll';\nimport PollFormState from '../states/PollFormState';\n\ninterface CreatePollModalAttrs extends IInternalModalAttrs {\n poll: PollModel;\n onsubmit: (data: object) => Promise;\n}\n\nexport default class CreatePollModal extends Modal {\n title(): Mithril.Children {\n return app.translator.trans('fof-polls.forum.modal.add_title');\n }\n\n className(): string {\n return 'PollDiscussionModal Modal--medium';\n }\n\n content(): Mithril.Children {\n return [\n
\n \n
,\n ];\n }\n\n async onFormSubmit(data: object, state: PollFormState): Promise {\n this.hide();\n await this.attrs.onsubmit(data);\n }\n}\n","import app from 'flarum/forum/app';\n\nimport { extend } from 'flarum/common/extend';\nimport classList from 'flarum/common/utils/classList';\nimport DiscussionComposer from 'flarum/forum/components/DiscussionComposer';\nimport ReplyComposer from 'flarum/forum/components/ReplyComposer';\nimport CreatePollModal from './components/CreatePollModal';\nimport Poll from './models/Poll';\nimport PollOption from './models/PollOption';\nimport { ModelAttributes } from 'flarum/common/Model';\nimport PollModelAttributes from './models/PollModelAttributes';\n\nfunction toPoll(data: PollModelAttributes) {\n if (data) {\n const poll = app.store.createRecord('polls');\n\n poll.tempOptions = data.options.map((option: ModelAttributes) => {\n const pollOption = app.store.createRecord('poll_options');\n pollOption.pushAttributes(option);\n return pollOption;\n });\n poll.pushAttributes(data);\n\n return poll;\n }\n return data;\n}\n\nexport const addToComposer = (composer: ComponentClass) => {\n // @ts-ignore\n composer.prototype.addPoll = function () {\n app.modal.show(CreatePollModal, {\n poll: toPoll(this.composer.fields.poll),\n onsubmit: (poll: PollModelAttributes) => (this.composer.fields.poll = poll),\n });\n };\n\n // Add button to DiscussionComposer header\n extend(composer.prototype, 'headerItems', function (items) {\n const discussion = this.composer.body?.attrs?.discussion;\n\n // @ts-ignore\n const canStartPoll = discussion?.canStartPoll() ?? app.forum.canStartPolls();\n\n if (canStartPoll) {\n items.add(\n 'polls',\n \n \n {app.translator.trans(`fof-polls.forum.composer_discussion.${this.composer.fields.poll ? 'edit' : 'add'}_poll`)}\n \n ,\n 1\n );\n }\n });\n\n extend(composer.prototype, 'data', function (data) {\n if (this.composer.fields.poll) {\n data.poll = this.composer.fields.poll;\n }\n });\n};\n\nexport default () => {\n addToComposer(DiscussionComposer);\n addToComposer(ReplyComposer);\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/CommentPost'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/components/DiscussionPage'];","import app from 'flarum/forum/app';\n\nimport { extend } from 'flarum/common/extend';\nimport CommentPost from 'flarum/forum/components/CommentPost';\nimport PollView from './components/PollView';\nimport DiscussionPage from 'flarum/forum/components/DiscussionPage';\nimport Poll from './models/Poll';\nimport Post from 'flarum/common/models/Post';\nimport PollOption from './models/PollOption';\n\ninterface PollPost extends Post {\n polls: () => Poll[];\n}\n\ninterface PusherPollDto {\n pollId: string;\n pollVoteCount: number;\n options: { [key: string]: number };\n}\n\nexport default () => {\n extend(CommentPost.prototype, 'content', function (content) {\n const post = this.attrs.post as PollPost;\n\n if ((!post.isHidden() || this.revealContent) && post.polls()) {\n for (const poll of post.polls()) {\n if (poll) {\n content.push();\n }\n }\n }\n });\n\n extend(CommentPost.prototype, 'oninit', function () {\n this.subtree.check(() => {\n const polls = (this.attrs.post as PollPost).polls();\n\n const checks = polls?.map?.(\n (poll) =>\n poll && [\n poll.data?.attributes,\n poll.options().map?.((option) => option?.data?.attributes),\n poll.myVotes().map?.((vote) => vote.option()?.id()),\n ]\n );\n\n return JSON.stringify(checks);\n });\n });\n\n extend(DiscussionPage.prototype, 'oncreate', function () {\n // @ts-ignore\n if (app.pusher) {\n // @ts-ignore\n app.pusher.then((binding) => {\n // We will listen for updates to all polls and options\n // Even if that model is not in the current discussion, it doesn't really matter\n binding.channels.main.bind('updatedPollOptions', (data: PusherPollDto) => {\n const poll = app.store.getById('polls', data['pollId']);\n\n if (poll) {\n poll.pushAttributes({\n voteCount: data['pollVoteCount'],\n });\n\n // Not redrawing here, as the option below should trigger the redraw already\n }\n\n const changedOptions = data['options'];\n\n for (const optionId in changedOptions) {\n const option = app.store.getById('poll_options', optionId);\n\n if (option && option.voteCount() !== undefined) {\n option.pushAttributes({\n voteCount: changedOptions[optionId],\n });\n }\n }\n\n m.redraw();\n });\n });\n }\n });\n\n extend(DiscussionPage.prototype, 'onremove', function () {\n // @ts-ignore\n if (app.pusher) {\n // @ts-ignore\n app.pusher.then((binding) => {\n binding.channels.main.unbind('updatedPollOptions');\n });\n }\n });\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['forum/utils/PostControls'];","import type Mithril from 'mithril';\nimport app from 'flarum/forum/app';\nimport CreatePollModal from './CreatePollModal';\nimport PollFormState from '../states/PollFormState';\n\nexport default class EditPollModal extends CreatePollModal {\n title(): Mithril.Children {\n return app.translator.trans('fof-polls.forum.modal.edit_title');\n }\n\n async onFormSubmit(data: object, state: PollFormState): Promise {\n await state.save(data);\n\n // Show success alert\n const alertId = app.alerts.show(\n {\n type: 'success',\n },\n app.translator.trans('fof-polls.forum.compose.success')\n );\n\n // Hide alert after 10 seconds\n setTimeout(() => app.alerts.dismiss(alertId), 10000);\n }\n}\n","import app from 'flarum/forum/app';\nimport Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Button from 'flarum/common/components/Button';\nimport LogInModal from 'flarum/forum/components/LogInModal';\nimport ListVotersModal from './ListVotersModal';\nimport classList from 'flarum/common/utils/classList';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Tooltip from 'flarum/common/components/Tooltip';\nimport icon from 'flarum/common/helpers/icon';\nimport EditPollModal from './EditPollModal';\nimport Poll from '../models/Poll';\nimport type Mithril from 'mithril';\nimport PollOption from '../models/PollOption';\nimport Post from 'flarum/common/models/Post';\nimport extractText from 'flarum/common/utils/extractText';\n\nexport interface PostPollAttrs extends ComponentAttrs {\n poll: Poll;\n post?: Post;\n}\n\nexport default class PostPoll extends Component {\n loadingOptions: boolean = false;\n useSubmitUI!: boolean;\n pendingSubmit: boolean = false;\n pendingOptions: any;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.useSubmitUI = !this.attrs.poll?.canChangeVote() && this.attrs.poll?.allowMultipleVotes();\n this.pendingOptions = null;\n }\n\n oncreate(vnode: Mithril.Vnode) {\n super.oncreate(vnode);\n\n this.preventClose = this.preventClose.bind(this);\n window.addEventListener('beforeunload', this.preventClose);\n }\n\n onremove(vnode: Mithril.Vnode) {\n super.onremove(vnode);\n\n window.removeEventListener('beforeunload', this.preventClose);\n }\n\n view() {\n const poll = this.attrs.poll;\n const options = poll.options() || [];\n let maxVotes = poll.allowMultipleVotes() ? poll.maxVotes() : 1;\n\n if (maxVotes === 0) maxVotes = options.length;\n\n const infoItems = this.infoItems(maxVotes);\n\n return (\n
\n
\n
\n

{poll.question()}

\n {poll.subtitle() &&

{poll.subtitle()}

}\n
\n\n
\n {poll.canSeeVoters() && (\n \n
\n
\n\n
\n
{options.map(this.viewOption.bind(this))}
\n\n
\n {!infoItems.isEmpty() &&
{infoItems.toArray()}
}\n\n {this.useSubmitUI && this.pendingSubmit && (\n \n )}\n
\n
\n
\n );\n }\n\n infoItems(maxVotes: number) {\n const items = new ItemList();\n const poll = this.attrs.poll;\n const hasVoted = poll.myVotes()?.length > 0;\n\n if (app.session.user && !poll.canVote() && !poll.hasEnded()) {\n items.add(\n 'no-permission',\n \n \n {app.translator.trans('fof-polls.forum.no_permission')}\n \n );\n }\n\n if (poll.endDate()) {\n items.add(\n 'end-date',\n \n \n {poll.hasEnded()\n ? app.translator.trans('fof-polls.forum.poll_ended')\n : app.translator.trans('fof-polls.forum.days_remaining', { time: dayjs(poll.endDate()).fromNow() })}\n \n );\n }\n\n if (poll.canVote()) {\n items.add(\n 'max-votes',\n \n \n {app.translator.trans('fof-polls.forum.max_votes_allowed', { max: maxVotes })}\n \n );\n\n if (!poll.canChangeVote()) {\n items.add(\n 'cannot-change-vote',\n \n \n {app.translator.trans('fof-polls.forum.poll.cannot_change_vote')}\n \n );\n }\n }\n\n return items;\n }\n\n viewOption(opt: PollOption) {\n const poll = this.attrs.poll;\n const hasVoted = poll.myVotes()?.length > 0;\n const totalVotes = poll.voteCount();\n\n const voted = this.pendingOptions ? this.pendingOptions.has(opt.id()) : poll.myVotes()?.some?.((vote) => vote.option() === opt);\n const votes = opt.voteCount();\n const percent = totalVotes > 0 ? Math.round((votes / totalVotes) * 100) : 0;\n\n // isNaN(null) is false, so we have to check type directly now that API always returns the field\n const canSeeVoteCount = typeof votes === 'number';\n const isDisabled = this.loadingOptions || (hasVoted && !poll.canChangeVote());\n const width = canSeeVoteCount ? percent : (Number(voted) / (poll.myVotes()?.length || 1)) * 100;\n\n const showCheckmark = !app.session.user || (!poll.hasEnded() && poll.canVote() && (!hasVoted || poll.canChangeVote()));\n\n const bar = (\n
\n {showCheckmark && (\n \n )}\n\n
\n {opt.answer()}\n {voted && !showCheckmark && icon('fas fa-check-circle', { className: 'PollAnswer-check' })}\n {canSeeVoteCount && {percent}%}\n
\n\n {opt.imageUrl() ? {opt.answer()} : null}\n
\n );\n\n return (\n \n {canSeeVoteCount ? (\n \n {bar}\n \n ) : (\n bar\n )}\n
\n );\n }\n\n changeVote(option: PollOption, evt: Event) {\n if (!app.session.user) {\n app.modal.show(LogInModal);\n evt.target.checked = false;\n return;\n }\n\n const optionIds = this.pendingOptions || new Set(this.attrs.poll.myVotes().map?.((v) => v.option().id()));\n const isUnvoting = optionIds.delete(option.id());\n const allowsMultiple = this.attrs.poll.allowMultipleVotes();\n\n if (!allowsMultiple) {\n optionIds.clear();\n }\n\n if (!isUnvoting) {\n optionIds.add(option.id());\n }\n\n if (this.useSubmitUI) {\n this.pendingOptions = optionIds.size ? optionIds : null;\n this.pendingSubmit = !!this.pendingOptions;\n return;\n }\n\n return this.submit(optionIds, null, () => (evt.target.checked = isUnvoting));\n }\n\n onsubmit() {\n return this.submit(this.pendingOptions, () => {\n this.pendingOptions = null;\n this.pendingSubmit = false;\n });\n }\n\n submit(optionIds, cb, onerror) {\n this.loadingOptions = true;\n m.redraw();\n\n return app\n .request({\n method: 'PATCH',\n url: `${app.forum.attribute('apiUrl')}/fof/polls/${this.attrs.poll.id()}/votes`,\n body: {\n data: {\n optionIds: Array.from(optionIds),\n },\n },\n })\n .then((res) => {\n app.store.pushPayload(res);\n cb?.();\n })\n .catch((err) => {\n onerror?.(err);\n })\n .finally(() => {\n this.loadingOptions = false;\n\n m.redraw();\n });\n }\n\n showVoters() {\n // Load all the votes only when opening the votes list\n app.modal.show(ListVotersModal, {\n poll: this.attrs.poll,\n post: this.attrs.post,\n });\n }\n\n deletePoll() {\n if (confirm(extractText(app.translator.trans('fof-polls.forum.moderation.delete_confirm')))) {\n this.attrs.poll.delete().then(() => {\n m.redraw.sync();\n });\n }\n }\n\n /**\n * Attempting to use the `tooltipVisible` attr on the Tooltip component set to 'false' when no vote count\n * caused the tooltip to break on click. This is a workaround to hide the tooltip when no vote count is available,\n * called on 'onremove' of the Tooltip component. It doesn't always work as intended either, but it does the job.\n */\n hideOptionTooltip(vnode: Mithril.Vnode) {\n vnode.attrs.tooltipVisible = false;\n vnode.state.updateVisibility();\n }\n\n /**\n * Alert before navigating away using browser's 'beforeunload' event\n */\n preventClose(e) {\n if (this.pendingOptions) {\n e.preventDefault();\n return true;\n }\n }\n}\n","import Component, { ComponentAttrs } from 'flarum/common/Component';\nimport Poll from '../models/Poll';\nimport type Mithril from 'mithril';\nimport PollView from './PollView';\n\nexport interface PollShowcaseItemAttrs extends ComponentAttrs {\n poll: Poll;\n}\n\nexport default class PollShowcaseItem extends Component {\n poll!: Poll;\n\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.poll = this.attrs.poll;\n }\n\n view() {\n return (\n
\n \n
\n );\n }\n}\n","import Component, { ComponentAttrs } from 'flarum/common/Component';\nimport PollListState from '../states/PollListState';\nimport type Mithril from 'mithril';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport PollShowcaseItem from './PollShowcaseItem';\nimport Placeholder from 'flarum/common/components/Placeholder';\nimport app from 'flarum/forum/app';\n\nexport interface PollListAttrs extends ComponentAttrs {\n state: PollListState;\n}\n\nexport default class PollShowcase extends Component {\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n this.attrs.state.refresh();\n }\n\n view(): Mithril.Children {\n return (\n
\n
\n

{app.translator.trans('fof-polls.forum.showcase.active-polls')}

\n {this.showcaseItems().toArray()}\n {this.showcaseItems().toArray().length === 0 && }\n
\n
\n

{app.translator.trans('fof-polls.forum.showcase.ended-polls')}

\n {this.endedItems().toArray()}\n {this.endedItems().toArray().length === 0 && }\n
\n
\n );\n }\n\n showcaseItems(): ItemList {\n const items = new ItemList();\n\n this.attrs.state.getPages().map((page) => {\n page.items.map((poll) => {\n if (!poll.hasEnded()) {\n items.add('poll-active-' + poll.id(), );\n }\n });\n });\n\n return items;\n }\n\n endedItems(): ItemList {\n const items = new ItemList();\n\n this.attrs.state.getPages().map((page) => {\n page.items.map((poll) => {\n if (poll.hasEnded()) {\n items.add('poll-ended-' + poll.id(), );\n }\n });\n });\n\n return items;\n }\n}\n","import app from 'flarum/forum/app';\nimport { IPageAttrs } from 'flarum/common/components/Page';\nimport ItemList from 'flarum/common/utils/ItemList';\nimport Mithril from 'mithril';\nimport PollListState from '../states/PollListState';\nimport extractText from 'flarum/common/utils/extractText';\nimport Button from 'flarum/common/components/Button';\nimport LogInModal from 'flarum/forum/components/LogInModal';\nimport { AbstractPollPage } from './AbstractPollPage';\nimport PollShowcase from './PollShowcase';\n\nexport default class PollsShowcasePage extends AbstractPollPage {\n oninit(vnode: Mithril.Vnode) {\n super.oninit(vnode);\n\n if (!app.forum.attribute('globalPollsEnabled')) {\n m.route.set('/');\n return;\n }\n\n this.state = new PollListState({\n sort: m.route.param('sort'),\n filter: m.route.param('filter'),\n include: this.includeParams(),\n });\n\n this.state.refresh();\n\n app.setTitle(extractText(app.translator.trans('fof-polls.forum.page.nav')));\n }\n\n includeParams(): string[] {\n return ['options', 'votes', 'myVotes', 'myVotes.option'];\n }\n\n contentItems(): ItemList {\n const items = super.contentItems();\n\n if (!this.loading) {\n items.add('poll-showcase', );\n }\n\n return items;\n }\n\n sidebarItems(): ItemList {\n const items = super.sidebarItems();\n const canStartPoll = app.forum.attribute('canStartGlobalPolls');\n\n if (canStartPoll) {\n items.remove('newDiscussion');\n items.add(\n 'newGlobalPoll',\n {\n this.newPollAction();\n }}\n disabled={!canStartPoll}\n >\n {app.translator.trans(`fof-polls.forum.poll.${canStartPoll ? 'start_poll_button' : 'cannot_start_poll_button'}`)}\n ,\n 100\n );\n }\n\n return items;\n }\n\n newPollAction(): void {\n if (!app.session.user) {\n app.modal.show(LogInModal);\n return;\n }\n\n m.route.set(app.route('fof.polls.compose'));\n }\n}\n","import CreatePollModal from './CreatePollModal';\nimport PostPoll from './PostPoll';\nimport EditPollModal from './EditPollModal';\nimport ListVotersModal from './ListVotersModal';\nimport PollForm from './PollForm';\nimport ComposePollHero from './ComposePollHero';\nimport ComposePollPage from './ComposePollPage';\nimport PollsPage from './PollsPage';\nimport PollView from './PollView';\nimport PollViewPage from './PollViewPage';\nimport PollSubmitButton from './Poll/PollSubmitButton';\nimport PollOption from './Poll/PollOption';\nimport PollOptions from './Poll/PollOptions';\nimport PollsShowcasePage from './PollsShowcasePage';\nimport PollShowcase from './PollShowcase';\nimport PollShowcaseItem from './PollShowcaseItem';\nimport { AbstractPollPage } from './AbstractPollPage';\nimport PollTitle from './Poll/PollTitle';\nimport PollSubtitle from './Poll/PollSubtitle';\nimport PollImage from './Poll/PollImage';\n\nexport const components = {\n CreatePollModal,\n PostPoll,\n EditPollModal,\n ListVotersModal,\n PollForm,\n ComposePollHero,\n ComposePollPage,\n PollsPage,\n PollView,\n PollViewPage,\n PollSubmitButton,\n PollOption,\n PollOptions,\n PollsShowcasePage,\n PollShowcase,\n PollShowcaseItem,\n AbstractPollPage,\n PollTitle,\n PollSubtitle,\n PollImage,\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/Model'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/utils/computed'];","import Model from 'flarum/common/Model';\nimport PollOption from './PollOption';\nimport PollVote from './PollVote';\nimport computed from 'flarum/common/utils/computed';\n\nexport default class Poll extends Model {\n public tempOptions: PollOption[] | undefined;\n\n question() {\n return Model.attribute('question').call(this);\n }\n\n subtitle() {\n return Model.attribute('subtitle').call(this);\n }\n\n imageUrl() {\n return Model.attribute('imageUrl').call(this);\n }\n\n imageAlt() {\n return Model.attribute('imageAlt').call(this);\n }\n\n hasEnded() {\n return Model.attribute('hasEnded').call(this);\n }\n\n endDate() {\n return Model.attribute('endDate', Model.transformDate).call(this);\n }\n\n publicPoll() {\n return Model.attribute('publicPoll').call(this);\n }\n\n hideVotes() {\n return Model.attribute('hideVotes').call(this);\n }\n\n allowChangeVote() {\n return Model.attribute('allowChangeVote').call(this);\n }\n\n allowMultipleVotes() {\n return Model.attribute('allowMultipleVotes').call(this);\n }\n\n maxVotes() {\n return Model.attribute('maxVotes').call(this);\n }\n\n voteCount() {\n return Model.attribute('voteCount').call(this);\n }\n\n canVote() {\n return Model.attribute('canVote').call(this);\n }\n\n canEdit() {\n return Model.attribute('canEdit').call(this);\n }\n\n canDelete() {\n return Model.attribute('canDelete').call(this);\n }\n\n canSeeVoters() {\n return Model.attribute('canSeeVoters').call(this);\n }\n\n canChangeVote() {\n return Model.attribute('canChangeVote').call(this);\n }\n\n options() {\n const options = Model.hasMany('options').call(this);\n return options ? (options as PollOption[]) : [];\n }\n\n votes() {\n return Model.hasMany('votes').call(this);\n }\n\n myVotes(): PollVote[] {\n const myVotes = Model.hasMany('myVotes').call(this);\n return myVotes ? (myVotes as PollVote[]) : [];\n }\n\n isGlobal() {\n return Model.attribute('isGlobal').call(this);\n }\n\n isHidden() {\n return computed('hiddenAt', (hiddenAt) => !!hiddenAt).call(this);\n }\n\n // TODO: These two don't make sense as of now\n isUnread() {\n return false;\n }\n\n apiEndpoint() {\n /** @ts-ignore */\n return `/fof/polls${this.exists ? `/${this.data.id}` : ''}`;\n }\n}\n","import Model from 'flarum/common/Model';\nimport Poll from './Poll';\nimport PollVote from './PollVote';\n\nexport default class PollOption extends Model {\n answer() {\n return Model.attribute('answer').call(this);\n }\n\n imageUrl() {\n return Model.attribute('imageUrl').call(this);\n }\n\n voteCount() {\n return Model.attribute('voteCount').call(this);\n }\n\n poll() {\n return Model.hasOne('polls').call(this);\n }\n\n votes() {\n return Model.hasMany('votes').call(this);\n }\n\n apiEndpoint() {\n /** @ts-ignore */\n return `/fof/polls/answers${this.exists ? `/${this.data.id}` : ''}`;\n }\n}\n","import Model from 'flarum/common/Model';\nimport Poll from './Poll';\nimport PollOption from './PollOption';\nimport User from 'flarum/common/models/User';\n\nexport default class PollVote extends Model {\n poll() {\n return Model.hasOne('poll').call(this);\n }\n\n option() {\n const result = Model.hasOne('option').call(this);\n return result === false ? null : result;\n }\n\n user() {\n return Model.hasOne('user').call(this);\n }\n\n pollId() {\n return Model.attribute('pollId').call(this);\n }\n\n optionId() {\n return Model.attribute('optionId').call(this);\n }\n\n apiEndpoint() {\n return `/fof/polls/${this.pollId()}/vote`;\n }\n}\n","import Poll from './Poll';\nimport PollOption from './PollOption';\nimport PollVote from './PollVote';\n\nexport const models = {\n Poll,\n PollOption,\n PollVote,\n};\n","import PollFormState from './PollFormState';\nimport PollListState from './PollListState';\nimport PollState from './PollState';\n\nexport const states = {\n PollFormState,\n PollListState,\n PollState,\n};\n","import PollControls from './PollControls';\n\nexport const utils = {\n PollControls,\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/extenders'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Post'];","const __WEBPACK_NAMESPACE_OBJECT__ = flarum.core.compat['common/models/Forum'];","import Extend from 'flarum/common/extenders';\nimport Post from 'flarum/common/models/Post';\nimport Forum from 'flarum/common/models/Forum';\nimport Discussion from 'flarum/common/models/Discussion';\nimport Poll from './models/Poll';\nimport PollOption from './models/PollOption';\nimport PollVote from './models/PollVote';\nimport PollsPage from './components/PollsPage';\nimport ComposePollPage from './components/ComposePollPage';\nimport PollViewPage from './components/PollViewPage';\nimport PollsShowcasePage from './components/PollsShowcasePage';\n\nexport default [\n new Extend.Routes() //\n .add('fof.polls.showcase', '/polls', PollsShowcasePage)\n .add('fof.polls.list', '/polls/all', PollsPage)\n .add('fof.polls.view', '/polls/view/:id', PollViewPage)\n .add('fof.polls.compose', '/polls/composer', ComposePollPage),\n\n new Extend.Store() //\n .add('polls', Poll)\n .add('poll_options', PollOption)\n .add('poll_votes', PollVote),\n\n new Extend.Model(Post) //\n .hasMany('polls')\n .attribute('canStartPoll'),\n\n new Extend.Model(Forum) //\n .attribute('canStartPolls'),\n\n new Extend.Model(Discussion) //\n .attribute('hasPoll')\n .attribute('canStartPoll'),\n];\n","import app from 'flarum/forum/app';\n\nimport addDiscussionBadge from './addDiscussionBadge';\nimport addComposerItems from './addComposerItems';\nimport addPollsToPost from './addPollsToPost';\nimport addPostControls from './addPostControls';\nimport addNavItem from './addNavItem';\n\nexport * from './components';\nexport * from './models';\nexport * from './states';\nexport * from './utils';\n\napp.initializers.add('fof/polls', () => {\n addDiscussionBadge();\n addComposerItems();\n addPollsToPost();\n addPostControls();\n addNavItem();\n});\n\nexport { default as extend } from './extend';\n","import app from 'flarum/forum/app';\n\nimport { extend } from 'flarum/common/extend';\nimport PostControls from 'flarum/forum/utils/PostControls';\nimport CreatePollModal from './components/CreatePollModal';\nimport Button from 'flarum/common/components/Button';\nimport Post from 'flarum/common/models/Post';\nimport PollModelAttributes from './models/PollModelAttributes';\n\nexport default () => {\n const createPoll = (post: Post) =>\n app.modal.show(CreatePollModal, {\n onsubmit: (data: PollModelAttributes) =>\n app.store\n .createRecord('polls')\n .save(\n {\n ...data,\n relationships: {\n post,\n },\n },\n {\n data: {\n include: 'options,myVotes,myVotes.option',\n },\n }\n )\n .then((poll) => {\n // @ts-ignore\n post.rawRelationship('polls')?.push?.({ type: 'polls', id: poll.id() });\n\n return poll;\n }),\n });\n\n extend(PostControls, 'moderationControls', function (items, post) {\n // @ts-ignore\n if (!post.isHidden() && post.canStartPoll()) {\n items.add(\n 'addPoll',\n \n );\n }\n });\n};\n","import app from 'flarum/forum/app';\nimport { extend } from 'flarum/common/extend';\nimport IndexPage from 'flarum/forum/components/IndexPage';\nimport LinkButton from 'flarum/common/components/LinkButton';\n\nexport default function addNavItem() {\n extend(IndexPage.prototype, 'navItems', (items) => {\n if (!app.forum.attribute('globalPollsEnabled')) {\n return;\n }\n\n items.add(\n 'fof-polls-showcase',\n LinkButton.component(\n {\n href: app.route('fof.polls.showcase'),\n icon: 'fas fa-poll',\n },\n app.translator.trans('fof-polls.forum.page.nav')\n ),\n 35\n );\n\n const showAllGlobalPolls = app.forum.attribute('canStartGlobalPolls');\n\n if (showAllGlobalPolls) {\n items.add(\n 'fof-polls-list',\n LinkButton.component(\n {\n href: app.route('fof.polls.list'),\n icon: 'fas fa-list',\n },\n app.translator.trans('fof-polls.forum.page.nav-all')\n ),\n 32\n );\n }\n });\n}\n"],"names":["_typeof","require","_regeneratorRuntime","module","exports","e","__esModule","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","this","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","definition","key","get","obj","prop","flarum","core","compat","asyncGeneratorStep","gen","reject","_next","_throw","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","_setPrototypeOf","bind","_inheritsLoose","subClass","superClass","_getPrototypeOf","_isNativeReflectConstruct","Boolean","valueOf","Reflect","construct","_wrapNativeSuper","Class","_cache","Map","toString","indexOf","isNativeFunction","has","set","Wrapper","isNativeReflectConstruct","FormError","_Error","props","PollFormState","poll","loading","deleting","expandedGroup","createNewPoll","app","createRecord","pushAttributes","question","endDate","publicPoll","allowMultipleVotes","hideVotes","allowChangeVote","maxVotes","tempOptions","_proto","isExpanded","groupKey","expand","m","redraw","save","_save","_callee","data","_context","attributes","options","_x","_delete2","_callee2","_context2","ComposePollHero","_Component","_this","_len","Array","_key","concat","oninit","vnode","attrs","view","className","trans","id","controlItems","toArray","items","ItemList","add","LinkButton","icon","itemClassName","href","exists","Component","ComposePollPage","_Page","_this$poll","_this$poll2","_this2","attribute","editId","route","param","getById","find","item","_this2$poll","bodyClass","LoadingIndicator","listItems","sidebarItems","PollForm","onsubmit","_onsubmit","state","isNew","alertAttrs","alertId","controls","Button","onclick","show","setTimeout","dismiss","_x2","SelectDropdown","buttonClassName","accessibleToggleLabel","navItems","IndexPage","Page","PollOption","_poll$myVotes","option","hasVoted","totalVotes","overallVoteCount","votes","voteCount","voted","hasVotedFor","percent","Math","round","canSeeVoteCount","isDisabled","loadingOptions","canChangeVote","width","Number","myVotes","bar","style","showCheckMarks","onchange","changeVote","checked","disabled","optionDisplayItems","imageUrl","src","alt","answer","classList","Tooltip","text","count","onremove","hideOptionTooltip","tooltipVisible","updateVisibility","PollOptions","pollOptions","createOptionView","PollImage","imageAlt","imageItems","_this$imageAlt","ListVotersModal","_Modal","include","title","content","map","optionContent","opt","filter","voteContent","vote","user","Link","avatar","username","Modal","PollState","pendingSubmit","pendingOptions","useSubmitUI","showVoters","hasEnded","canVote","init","isShowResult","some","getMaxVotes","showButton","evt","target","LogInModal","optionIds","Set","isUnvoting","clear","size","submit","hasSelectedOptions","cb","onerror","_this3","url","body","from","res","pushPayload","PollSubmitButton","event","pollButtonSubmit","PollTitle","pollTitleItems","PollSubtitle","subtitle","pollSubtitleItems","PollView","preventClose","preventDefault","oncreate","window","addEventListener","removeEventListener","PollControls","canEdit","controlsView","createMainView","createPollHeader","createPollContent","createPollFooter","createFormItems","infoItems","isEmpty","questionSlug","slug","Dropdown","menuClassName","class","time","dayjs","fromNow","max","AbstractPollPage","polls","pageContent","hero","mainContent","sidebar","contentItems","setContent","remove","toObject","startsWith","PollViewPage","_AbstractPollPage","PollListItem","subtree","highlightRegExp","SubtreeRetainer","freshness","markedAllAsReadAt","getTime","active","elementAttrs","isHidden","Slidable","contentView","slidableUnderneathView","isUnread","markAsRead","mainView","highlight","slidableInstance","slidable","element","$","on","onbeforeupdate","needsRebuild","matches","lastVotedNumber","activeView","abbreviateNumber","PollList","params","getParams","isLoading","isInitialLoading","isLoadingNext","hasNext","loadNext","Placeholder","isSearchResults","getPages","pg","toPropertyKey","toPrimitive","String","_defineProperties","descriptor","globalEventEmitter","EventEmitter","PollListState","_PaginatedListState","page","extraPolls","eventEmitter","deletePoll","ReferenceError","_assertThisInitialized","Constructor","protoProps","requestParams","_this$params$sort","sort","sortMap","q","loadPage","preloadedPolls","initialLoading","relevance","newest","oldest","removePoll","emit","_step","_iterator","_createForOfIteratorHelperLoose","pages","index","splice","addPoll","unshift","getAllItems","number","PaginatedListState","PollsPage","refresh","extractText","viewItems","actionItems","canStartPoll","newPollAction","context","section","itemName","Separator","pollControls","moderationControls","editAction","destructiveControls","canDelete","deleteAction","confirm","showDeletionAlert","back","location","reload","message","success","_extends","assign","source","UploadPollImageButton","_Button","uploadedImageUrl","fileName","_this$attrs$poll","_this$attrs$poll2","children","upload","appendTo","hide","trigger","FormData","append","files","resourceUrl","serialize","raw","failure","response","_this$attrs$onUpload","_this$attrs","fileUrl","onUpload","optionAnswers","optionImageUrls","pollImage","datepickerMinDate","_poll$tempOptions","Stream","formatDate","isAfter","fields","bidi","pollImageUploadSuccess","required","displayOptions","addOption","min","isBefore","Switch","placeholder","removeOption","alert","_this$dateToTimestamp","pollExists","dateToTimestamp","t0","console","date","def","dayjsDate","isValid","format","CreatePollModal","onFormSubmit","_onFormSubmit","toPoll","pollOption","addToComposer","composer","extend","_this$composer$body","_discussion$canStartP","discussion","canStartPolls","EditPollModal","_CreatePollModal","PostPoll","canSeeVoters","viewOption","_poll$myVotes2","_poll$myVotes3","_poll$myVotes4","showCheckmark","_this$attrs$poll$myVo","_this$attrs$poll$myVo2","post","sync","PollShowcaseItem","PollShowcase","showcaseItems","endedItems","PollsShowcasePage","includeParams","components","Poll","_Model","Model","isGlobal","computed","hiddenAt","apiEndpoint","PollVote","result","pollId","optionId","models","states","utils","Extend","Post","hasMany","Forum","Discussion","createPoll","DiscussionList","badges","hasPoll","Badge","label","DiscussionComposer","ReplyComposer","CommentPost","revealContent","check","checks","_poll$data","_poll$options$map","_poll$options","_poll$myVotes$map","_option$data","_vote$option","JSON","stringify","DiscussionPage","binding","channels","main","changedOptions","unbind","relationships","_post$rawRelationship","rawRelationship","PostControls"],"sourceRoot":""} \ No newline at end of file